基于sip协议的软电话代码.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于sip协议的软电话代码

基于sip协议的软电话代码 篇一:基于SIP协议的音视频的软件开发 基于SIP协议的音视频的软件开发 前言 在VoIP中,我们知道SIP协议有很大的用处。这里,我们就针对SIP协议,来看看SIP软电话开发环境的建立都需要知道哪方面的知识。那么首先我们来看看这个开发平台的条件。要在windows或者linux平台下开发基于SIP软电话,需要以下软件。 服务器端软件: 注册多个客户端到服务器上,可以进行通话测试 SIP客户端软件:主要用于测试,可以对别人已经完成的客户端进行抓包,以比对自己程序的发包数据 SIP协议栈:基于某个现成的SIP协议栈来开发会加快开发进度 RTP栈:传输语言或者视频数据的协议栈 抓包测试工具:调试网络程序最有效的办法 以下介绍这些软件主要以开源软件为主 一 服务器端软件 1. Asterisk:Linux系统下开源的IPPBX,功能强大稳定,主要用c语言开发。配置稍麻烦。 2. Vocal:Linux系统下开源的SIP服务器端。可以作为IPPBX也可以作为运营系统。很多voip虚拟运营商都用这个作为自己的运营系统。提供BS结构的管理界面。 3. YATE:跨平台(Linux,Windows)的开源SIP服务器端。在windows下安装非常简单。其他方面没有进行过测试。 4. SER:Linux平台下重量级的SIP服务器断。功能比较丰富,也是很多voip虚拟运营商的系统选择。不过据说配置比较麻烦,具体没有试过。 5. sipX:Linux平台下的SIP服务器。这个好像不能作为客户端再次注册到其他SIP服务器上。提供BS结构的管理界面。 二 SIP客户端软件 1. Windows Messenger 5.1:微软出的SIP客户端,操作方便。 2. YATE Client:跨平台(Linux,Windows)的开源SIP客户端软件。安装方便,功能简单。 3. xten:windows平台下的SIP软电话。功能齐全,使用方便。 三 SIP协议栈 1. osip:跨平台的开源SIP协议栈。用c语言实现,体积小。 2. exosip:对osip进行封装,使其方便SIP客户端软件开发。同样开源跨平台。 3. sipXtackLib:由SIPfoundry提供的开源跨平台的SIP协议栈,功能齐全。C++开发,已经被用于开发数个商业SIP终端。 四 RTP栈 1. JRTPLIB: 开源的跨平台rtp栈,用C++语言开发,使用方便。 五 抓包测试工具 1. Wireshark:非常有名的开源跨平台网络抓包工具,以前叫做Ethereal。 内容: SIP是一个会话协议,很多大企业都在用,通信行业的一个标准(不过从个人角度不喜欢这个协议格式,罗嗦). 其业务逻辑比较,简单地来说如下: User Agent Server ------------------REGISTER----------- lt;----------401(407) Unauthorized-- ----------REG(带上用户口令)----------- ---------------200 OK 1 Bindings--- 双方交互几次,注册成功。 因为Sip 通信一般采用UDP,所以有个 保活的问题,一般每隔两三分钟再向server注册一下。server也可能每隔一两分钟向客户发Unauthorized,让客户再刷新一下登录。 登录成功后,某个客户端向另一个客户端发起呼叫,通过服务器中转命令。简单来讲,这个和IM的原理是一样的。对方同意接收呼叫后,把媒体端口通知给 server 及对方。到了这里,有IM开发经验的人,自然就知道下一步怎么做了:如果想P2P直连的话,就先穿透NAT打洞,否则就通过Server中转。 很明显,SIP会话和现有的IM类似,但效率或效果上来讲差的很多,比如登录保活, 还是同名用户同时登录等等,都处理的不够好。不过SIP是电信协议,最初是用在VOIP和可视电话上,环境比IM简单地多,所以这个协议足够用了,估计名字中的S也是因为这个原因。 sip呼叫成功,建立连接之后,媒体传输(音视频)是通过RTP协议进行的。简单地说,采集到声音和视频,先按指定编码方面编码,比如音频编码成 g711,视频编码成h263,然后根据RFC相关协议加上包头用UDP向指定发送出去。对方收到后先解包,再解码,然后播放。 如果想了解SIP的详细工作流程,可以这样: 1 找一个外网的sip server (如果有经验,可以用yate2,或Trixbox等自己搭建) 2 安装x-lite ( 很不错的sip软电话客户端,如果安装eyeBeam更好,带视频) 3 安装ethereal和

文档评论(0)

1045141460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档