若要编制一个支持语音视频的SIP软电话,至少需要以下组件及相关技术:
1. SIP协议栈:主要用于会话的建立,修改以及终止。
开源SIP协议栈:
[1]The GNU oSIP library - http://www.gnu.org/software/osip/
[2] reSIProcate - http://www.resiprocate.org/Main_Page
[3] libmsip - http://www.minisip.org/download.html
[4] Sofia - SIP - http://sofia-sip.sourceforge.net/
[5] pjsip - http://www.pjsip.org/
更多的内容可参考网站:http://www.pernau.at/kd/voip/index.html
2. SDP协议栈:主要用于会话的媒体协商。
3. RTP协议栈:为数据提供了具有实时特征的端对端传送服务。
[1] jrtplib - http://lumumba.luc.ac.be/jori/jrtplib/jrtplib.html
[2] ortp - http://www.linphone.org/ortp
[3] GNU ccRTP - http://www.gnu.org/software/ccrtp
更多的内容可参考网站:http://www.pernau.at/kd/voip/index.html
4. 音频编解码库:主要用于对音频数据编解码,以适应网络传输。
G.711 A-law
G.711 Mu-law
GSM
G729
Speex - http://www.speex.org/
还有好多,不一一列举。
5. 视频编解码库:主要用于对视频数据编解码,以适应网络传输。
Xvid - http://www.xvid.org/
X264 - http://www.videolan.org/developers/x264.html
Ffmpeg - http://ffmpeg.org/
6. 界面皮肤及操作库:主要用于软电话界面的显示以及逻辑的控制。
7. 音频数据处理库:对音频数据的基本处理,例如通过声卡获取,然后播放等。
8. 视频数据处理库:对视频数据的基本处理,例如通过显卡获取,然后播放等。
9. NAT以及防火墙穿越技术:穿越私网和防火墙。
10. 防窃听防封杀加密技术:防黑客窃听,防有关部门封杀