要做个SIP软电话,收集了一些这方面的资料,做下参考.
要在windows或者linux平台下开发基于SIP的软电话,需要以下软件
服务器端软件: 注册多个客户端到服务器上,可以进行通话测试
SIP客户端软件:主要用于测试,可以对别人已经完成的客户端进行抓包,以比对自己程序的发包数据
SIP协议栈:基于某个现成的SIP协议栈来开发会加快开发进度
RTP栈:传输语言或者视频数据的协议栈
抓包测试工具:调试网络程序最有效的办法
以下介绍这些软件主要以开源软件为主
一 服务器端软件
1. Asterisk:Linux系统下开源的IPPBX,功能强大稳定,主要用c语言开发。配置稍麻烦。 http://www.asterisk.org/
2. Vocal:Linux系统下开源的SIP服务器端。可以作为IPPBX也可以作为运营系统。很多voip虚拟运营商都用这个作为自己的运营系统。提供BS结构的管理界面。http://www.vovida.org/
3. YATE:跨平台(Linux,Windows)的开源SIP服务器端。在windows下安装非常简单。其他方面没有进行过测试。http://yate.null.ro/pmwiki/
4. SER:Linux平台下重量级的SIP服务器断。功能比较丰富,也是很多voip虚拟运营商的系统选择。不过据说配置比较麻烦,具体没有试过。http://www.iptel.org/ser/
5. sipX:Linux平台下的SIP服务器。这个好像不能作为客户端再次注册到其他SIP服务器上。提供BS结构的管理界面。 http://www.sipfoundry.org
二 SIP客户端软件
1. Windows Messenger 5.1:微软出的SIP客户端,操作方便。
2. YATE Client:跨平台(Linux,Windows)的开源SIP客户端软件。安装方便,功能简单。http://yate.null.ro/pmwiki/
3. xten:windows平台下的SIP软电话。功能齐全,使用方便。http://www.xten.com/
三 SIP协议栈
1. osip:跨平台的开源SIP协议栈。用c语言实现,体积小。http://www.gnu.org/software/osip/
2. exosip:对osip进行封装,使其方便SIP客户端软件开发。同样开源跨平台。http://savannah.nongnu.org/projects/exosip/
3. sipXtackLib:由SIPfoundry提供的开源跨平台的SIP协议栈,功能齐全。C++开发,已经被用于开发数个商业SIP终端。http://www.sipfoundry.org
四 RTP栈
1. JRTPLIB: 开源的跨平台rtp栈,用C++语言开发,使用方便。http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
五 抓包测试工具
1. Wireshark:非常有名的开源跨平台网络抓包工具,以前叫做Ethereal。http://www.wireshark.org/