SIP相关

让人想犯罪 __ 提交于 2020-01-21 15:45:37

SDP包
其中的Connection Information 后面的192.168.11.105 就是RTP的IP地址
audio 后面的5100 就是RTP 的端口。
RTP/AVP 后面的0 8 101 表示支持的编码 0 表示G.711 Ulaw, 8表示G.711的Alaw,101 是表示
支持电话按键事件
后面的很多Media Attribute 是对媒体属性的具体描述。
总结一下:SDP 的核心有几个:
A.说明媒体的来源IP地址
B.说明媒体的来源的端口port
C.说明自己有哪些媒体能力(能说几个语言)
D.包括对dtmf 按键的是否支持是说明。
一旦两个软电话要对话,就要对比交换上面这些信息。比如FreeSwitch默认要求rfc2833模式的
DTMF按键(上面抓包里面的rtpmap:101 telephone-event/8000),但是假如软电话上没有设置rfc2833的
DTMF,那么SDP就没有101,协商就不会成功,从而导致通话无法建立。

编码占用带宽
VOIP的数据包包括SIP 数据包和RTP 数据包,SIP只是传输控制命令,跟RTP的语音媒体数据包比较
起来简直就是九牛一毛,完全可以忽略不计。
下面仅仅计算RTP的数据包
RTP的数据包=以太网地址+IP类型+IP包头+UDP包头+RTP包头+语音编码之后的负载
以太网地址12字节
IP类型2字节
IP数据包头:20字节
UDP协议的报头: 8个字节
RTP包头是12字节这些合计是54B 大小是固定开销,只要使用RTP,无论啥编码器都是必须的,
以大多数的编码器每个包20ms,每秒50个RTP包计算,这个开销每秒是54508=20.8kbps 是固
定的开销。再加上语音编码的负载就是总开销。

以 G.711 alaw 编码器为例以 G.711 alaw 编码器为例
语音负载:160字节:一个包20ms,8K的采样频率,每个采样点使用alaw 编码之后是1个字节。
因此20ms的语音在编码之后的负载是160 字节。
总共是12+2+20+8+12+160=214字节
1秒的语音就是214(1000/20)=21450=10700字节,按照流量计算就是10700*8/1024=84Kpbs 左右。

以 G.729 编码器为例:
假如是G.729. 一个包20ms其它不变,只是语音编码之后变成了20字节,因此语音负载是20字节,
可以算出来:总共是12+2+20+8+12+20=74字节

29Kpbs语音就是74(1000/20)=7450=3700字节,按照流量计算就是3700*8/1024=29Kpbs 左右。
如何理解VOIP 里面的DTMF 按键?
VOIP里面的dtmf按键传输模式和PSTN里面的DTMF 按键传输模式不大一样,
PSTN环境一下DTMF 按键是跟随语音流,一起传输模式的,可以理解为IN BAND(带内)
VOIP里面的dtmf 基本上有3种传输模式:
A.跟 pstn 一样的带内DTMF(inband),这个传输模式在使用G.711编码的时候是可以的。在使用其
它高压缩编码的时候不建议采用这种。
B.按照rfc2833 格式编码的DTMF按键传输模式,这种模式下 DTMF也是跟随rtp 流一起的,但是
又不大一样,有自己的特殊编码,大约10-12个包左右。如下图表示dtmf按键的 6:

目前,这种情况使用的比较多。缺点,按键之后大多数的软电话或者系统会导致数秒的语音停顿,比
如voip 的ivr 提示用户:按键开始录音,用户按#,然后开始说:1,2,3,4,5,6。。。
系统录制下来的语音可能1,2,3 都丢了,只有4,5,6…
C.在 sip 信令里面传输的sip-info模式。不跟媒体rtp 语音流一起走。而是在sip 消息上进行传输。
这个比较高级,有些软电话或者系统不支持。
上面 3种FS都支持,甚至可以同时支持里面的几种。比如同时支持2833和sip info

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!