方案选型:
- linphone:仅适合双方通话
- webrtc
- doubango:适合多方通话,回声消除功能略差
ios实现客户端:voip push + callkit
android实现客户端:android系统自带sip接口
sip server: opensips/kamailio + asterisk/freeswitch能够构建超大容量的VOIP平台,
技术方案:
- voip - sip
- webrtc
- xmpp
- mqtt
相关开源软件:
- Speex:是一套主要针对语音的开源免费,无专利保护的音频压缩格式。[http://www.speex.org] 目前最新的版本是Speex 1.2rc2 and SpeexDSP 1.2rc3。它的特点有:
- 窄带(8kHz),宽带(16kHz)和超宽带(32kHz)压缩于同一位流。
- 强化立体编码
- 数据包丢失隐蔽
- 可变比特率(VBR)
- 语音捕捉(VAD)
- 非连续传输(DTX)
- 定点运算
- 感官回声消除(AEC)
- 噪音屏蔽
- react-native-webrtc:支持ios/android系统
- Linphone:是一种开源的IP语音电话(或SIP电话),可以通过互联网与人们进行免费的语音,视频和文本即时通讯。它使用SIP协议(互联网电话的开放标准),可以与任何SIP VoIP运营商一起使用,包括一些免费的SIP音频/视频服务http://www.linphone.org,
- idoubs:doubango for ios基于doubango(Doubango 是一个基于3GPP IMS/RCS 并能用于嵌入式和桌面系统的开源框架。该框架使用ANSCI-C编写,具有很好的可移植性。并且已经被设计成非常轻便且能有效的工作在低内存和低处理能力的嵌入式系统上。苹果系统上的idoubs功能就是基于此框架编写) .音视频编码格式大部分都支持(H264(video),VP8(video),iLBC(audio),PCMA,PCMU,G722,G729)。NAT支持ICE(stun+turn)
官方网站:https://github.com/DoubangoTelecom/imsdroid http://www.doubango.org/ - imsdroid: doubango for android
- csipsimple
- Openfire:是开源的、基于可拓展通讯和表示协议(XMPP)、采用Java编程语言开发的实时协作服务器。 Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。
- WebRTC:名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术。现在许多SDK都是使用WebRTC作为框架来实现。
官方网站:https://webrtc.org/
其他可参考第三方商用sdk:
http://sdk.anychat.cn/html/price.html
http://developer.juphoon.com/home/voip
https://cloud.tencent.com/product/trtc
https://dev.yunxin.163.com/docs/product/音视频通话/SDK开发集成/Linux开发集成/sdk库文件下载