SIP与RTP综合应用1

说起来真尴尬,邮电出身,搞了10来年图像网络音视频方面的开发,竟然不懂sip,振作精神,再来研究一下。

SIP是一个会话协议,很多大企业都在用,通信行业的一个标准(不过从个人角度不喜欢这个协议格式,罗嗦).

其业务逻辑比较,简单地来说如下:

User Agent                                                   Server

                 ------------------REGISTER----------->

                 <----------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和WinPcap (抓包工具)

然后,用x-lite拨打其他的客户端或SIP话机,用抓包工具抓出相关的数据包,先看流程,然后再看包结构。

后面附上一个介绍SIP的PPT,写的非常好,可能是台湾方面出品,以前收集的。是个.rar文件,因为这里只能上传图片,所以改名为.jpg再上传,下载后把.jpg去掉解压就可以了。

 

更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值