在VoLTE实际分析问题过程中,需要查看SIP信令中AMR协商相关字段等,因此了解AMR关键信元的含义和作用至关重要。
1)Octet-align:AMR分为Octet-aligned(字节对齐)模式和Bandwidth-efficient(带宽节省)模式。字节对齐模式指payloadheader、table of content和speech frame都是字节对齐的,目的是为了便于处理。带宽节省模式是指只有整个payload是字节对齐的,所以要省去一些填充字节的位。在SDP中,如果不携带Octet-aligned参数,或者携带Octet-align=0,则表示带宽节省模式;如果携带Octet-align=1,则表示字节对齐方式。
2)Mode-set:支持的速率集合。速率集合是指支持AMR的那些速率模式(模式内容对应AMR报文的FT字段)。对于AMR,取值范围为0~7。SID(Silence IDicate,8)帧和No DATA(15)不包含于此,但也可以使用。对于AMRWB,取值范围为0~8,SID(9)、SPEECH_LOST(14)、No DATA(15)不包含于此,但也可以使用。
3)Mode-change-period:速率调整间隔,每隔多少个帧块后,允许(发送端的)编解码模式变化一次(这是对远端发送能力的一个限制协商,描述的是本端的接收能力),取值为1或者2,分别对应一帧和两帧。
4)Offer或Answer为GSM网络(FR AMR/HR AMR):Mode-change-period=2,只有Offer携带Mode-change-capability=2或Mode-change-period=1时,Answer才能携带mode-change-period=2。
5)Mode-change-capability:该字段=1表示不支持和每两帧改变一次速率的终端互通。如果不带该字段,则视为=1。该字段=2表示终端可以支持和只能每两帧改变一次速率的终端互通。
6)速率切换能力指示:指示本端是否有能力控制编解码模式的变化(描述的是本端的发送能力),取值为1或2。取值为1时表示不限制切换间隔,取值为2时表示切换间隔必须为2。
7)Mode-change-neighbor:如果该值为1,则表示只能在相邻的速率上改变。例如,只能从4.75~5.15kbit/s,而不能进行4.75~12.2kbit/s的跳变。(www.xing528.com)
8)Max-red:如果采取冗余模式,则发送方会发一个主帧,过一段时间再发一个冗余帧,该值是指这两个帧之间的时间间隔。
9)Channels:多通道语音,如同立体声,就是用多个通道来模拟不同方向上的声音,产生较好的自然音质。AMR可以在一帧数据包中携带多个通道的语音包,按顺序排列。通道数和排列顺序可以在SDP中指定。
10)Interleaving:在一个RTP包中可以存放多个AMR payload包,以提高传输效率(节省了包头)。然而,这样做的坏处是一旦丢包,则会丢几个连续的语音包,语音质量下降。Interleaving就是连续的包交错放到不同的RTP包里,如1、10、20、40放到包1,2、11、21,41放到包2,12、22、32、42放到包3。这样一个RTP包丢了,丢的就不是连续的包,对语音质量的影响有限。Interleaving只在字节对齐模式下才能使用。
11)Ptime:打包时长,一般为20ms。
12)Maxptime:最大打包时长,时长为帧的整数倍,单位为ms。如果该参数不携带,则认为可以支持任意打包时长。该参数与Ptime不同,Maxptime是控制RTP包的最大帧数的,这里帧包括语音帧、静音帧及无数据帧(字节对齐交织方式会携带)。若RTP包包含多个通道数为N,每个通道帧为M,则Maxptime为20ms×N×M;Ptime的含义是每隔多长时间进行打包,是每语音帧的整数倍,RTP包含多个通道,由于打包时间点相同,因此和是否包含多个通道无关。Maxptime不会影响网络的互通,但是会影响系统性能,Maxptime越大,性能影响越大。
13)CRC:用于决定净荷是否进行CRC校验,一般为1表示需要,媒体流会携带校验位。
14)Robust-sorting:用于决定是否进行鲁棒排序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。