一种会话发起协议终端编解码算法动态协商的方法及系统的制作方法

文档序号:7687703阅读:206来源:国知局
专利名称:一种会话发起协议终端编解码算法动态协商的方法及系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种基于IP网络和以会话发起协议 (Session Initiation Protocol, SIP)作为控制信令的语音通信系统中的SIP终端编 解码算法动态协商的方法及系统。
背景技术
在基于IP网络和以SIP作为控制信令的语音通信系统中,以往的流程往往 是会话双方(SIP终端之间,或者SIP终端与媒体网关(MediaGateway, MGW) 之间)在开始通话,即建立媒体通道进行媒体交换之前,预先进行媒体协商。协 商的方式是在SIP消息中携带会话描述协议(Session Description Protocol, SDP) 消息体,用以描述SIP终端的媒体能力信息,包括语音或视频使用的编解码算法、 IP地址和媒体流使用的端口等等;并利用SDP协议的提供/应答 (OFFER/ANSWER)机制,实现与对端之间的媒体协商。协商完成之后开始通话 并进行媒体交互,在这之后进行交互的语音编解码算法都是采用协商确定的算 法。
基于IP的语音通信,媒体流都是在分组交换网上传送,每一路通话都占用 一定的网络带宽资源。在话务量不高或者网络带宽资源足够丰富的情况下,能够 保证媒体流的实时和无损传输;当网络上一个端点到另一端点的话路媒体流过多 时,该网络就会出现拥塞。拥塞后的网络在其上传送的所有媒体流就会出现丢包 过多,时延过大,导致在该网络上承载的正常语音通话语音质量下降,严重时甚 至会导致通话无法正常进行。解决该问题的理想办法是建设足够大带宽的分组交 换网,使其不会产生拥塞,但这样做一方面成本过高,另一方面巨大带宽的分组 网大多时间话务量不高时其上面只传送很少的媒体流,产生巨大的浪费。
在网络上传输的语音数据是在终端采集后按照一定的编码算法进行压縮,然 后通过实时传输协议(Realtime Transport Protocol, RTP)发送到对端;再由对端 用相应的解码算法进行解码还原。由于语音编解码技术的不断进步,现在能够选 择的编解码算法非常之多,如G711A、 G711u、 (1729、 G723.1、 (1726、 G728、 AMR、 iLBC、 Speex等等。终端支持的可用于媒体协商的编解码算法也有很多
5种。不同的编码算法,数据压縮比例有高有低,同样的语音数据,得到的压縮后 数据有大有小。例如,G711、 G729和G723.1三种编解码算法,压縮后的纯语 音数据量(不考虑RTP和IP包头)在网络上传输的速率分别为64Kbps (bitper second,位每秒)、8Kbps和5.3Kbps。明显地,同样带宽情况下,低速率的编解 码格式能传送更多的话路。然而低速率传送的语音在话音质量会有一些的下降, 例如对于G711、 G729和G723.1三种算法,反映语音编码质量的平均意见值 (Mean Opinion Score, MOS)分别为4.1、 3.92和3.8。
传统的动态语音编解码切换方法, 一般是在网络侧进行,由媒体网关监视是 否发生拥塞,当检测到出现拥塞时,向软交换上报网络拥塞事件,软交换对该网 关上以后新建立的呼叫切换为低速率的编解码格式,拥塞严重时会对新呼叫建立 进行限制。再有对己建立的呼叫向媒体网关下命令向低速率强行切换。这种方法 如果有一侧网关不支持低速率的编解码格式,媒体流就会中断。因此迫切需要一 种方法,当话路不多时,以高速率的编解码格式传送媒体流,提供给用户清晰、 高质量的语音业务;而当网络出现拥塞时,动态调整媒体流的编解码格式到低速 率的格式,降低网络上的媒体流量,避免出现网络拥塞而影响业务;同时保证被 调整的媒体流降低到低速率的格式后,虽然清晰度稍有下降,但仍能保持继续进 行而不中断。
另外,传统的语音编解码切换方法,往往只考虑交换侧的网络资源状况,而 在呼叫通道上,从端到端的所有传输环节都可能造成媒体包的丢失。媒体协商的 主体是终端与终端之间,或者终端与媒体网关之间,对于终端支持的语音编解码 算法信息在终端侧最完整。因此若能由终端检测和统计对端发过来的媒体流,就 能够反映和预测未来整个呼叫通道上的网络资源状况;还可根据本端支持的编解 码算法信息,进行调整后发起新的媒体协商,以动态地适应网络资源状况。

发明内容
本发明所要解决的技术问题是,提供一种SIP终端编解码算法动态协商的方 法,并在此基础上提供一种SIP终端编解码算法动态协商的系统,以解决现有切 换语音编解码技术中存在的不能从终端发起、未对端到端的RTP流实时检测和 统计的问题。
本发明所述一种SIP终端编解码算法动态协商的方法,包括以下步骤 步骤A: SIP终端对收到的媒体流进行实时检测,并周期性统计媒体流的丢
6包数量,计算一定周期内的网络丢包率;
步骤B: SIP终端基于历史时段的网络丢包率对本端支持的语音编解码算法 进行排序;
步骤C:判断编解码算法列表是否发生变化,若是,则SIP终端发出包含有 新的编解码算法列表的请求消息,与通话对端进行媒体协商;协商成功后,双方 以新的编解码格式进行通讯;否则,执行步骤A。
所述SIP终端是指SIP电话、PC客户端或者其它支持SIP协议的终端。
所述通话对端是指通话对方的SIP终端或者媒体网关MGW。
所述步骤A进一步包括
步骤Al:通话开始时,SIP终端设置收包计数器和丢包计数器;并设置检 测步长以及预测周期
步骤A2:通话进行过程中,SIP终端在步长范围对接收到的语音RTP包进 行检测,记录一个步长内相同负荷值的所有RTP包头部的序列号(Sequence Number)字段;每收到一个RTP包,收包计数器加1,并计算前后两个RTP包序 列号的差值,若差值不为l,则丢包计数器增加该差值减l;
步骤A3:计算一个步长内的丢包率,记录该值将收包计数器和丢包计数 器清零;并判断步长累计时间是否到达预测周期,若是,则提交丢包率统计数据 记录;否则,执行步骤A2。
步骤A3中所述丢包率的值为丢包计数器的值除以收包计数器的值和丢包计 数器的值的和。
步骤A2中所述相同负荷值的所有RTP包是指同一类型的所有RTP包。 所述步骤B进一步包括
步骤B1:根据丢包率计算一个检测周期内的丢包率均值和丢包率方差其 中,丢包率均值代表一定周期内网络资源状况平均水平,丢包率方差代表网络资 源的稳定性;以此对未来时段的网络资源状况进行预测;
步骤B2:判断丢包率均值的大小,若丢包率均值大于设定的丢包率阈值上 限,则按照占用带宽的高低调整本地的语音编解码算法列表,其中占用带宽低的 算法设置为高优先级;若丢包率均值小于设定的丢包率阈值下限,且丢包率方差 小于设定的方差阈值,则按照占用带宽的高低调整本地的语音编解码算法列表, 其中占用带宽高的算法设置为高优先级;否则,本地的语音编解码算法列表不变;
步骤B3:判断本地的语音编解码算法列表是否发生变化,若是,则存储变化后的算法优先级列表。
步骤B2中所述丢包率阈值上限的值在运行过程中可根据实际的网络状况, 以及SIP终端支持的编解码算法占用带宽的情况进行修正。
步骤B2中所述丢包率阈值下限的值在运行过程中可根据实际的网络状况, 以及SIP终端支持的编解码算法占用带宽的情况进行修正。
步骤B2中所述方差阈值在运行过程中可根据实际的网络状况,以及SIP终 端支持的编解码算法占用带宽的情况进行修正。
所述步骤C进一步包括
步骤C1:若本地的语音编解码算法列表发生变化,则通过SIP协议的请求 消息与通话对端重新发起媒体协商,该消息携带的SDP消息体中包含了重新调 整优先级后的编解码算法列表;
步骤C2:通话对端收到该消息后,按照收到消息中的算法优先级顺序及本 地支持的编解码算法确定最终的编解码算法;然后返回200OK消息,其中包含 携带该算法信息的SDP消息体;
步骤C3:请求消息发起端收到200OK并确认后,双方后续的语音媒体交互 以新的编解码格式进行。
步骤C2中所述最终的编解码算法是通话对端通过提取SDP消息中的编解码 算法信息,与本地支持的编解码算法取交集,然后按照收到消息中的算法优先级 顺序选择交集中优先级高的编解码算法确定的。
本发明所述SIP终端编解码算法动态协商的系统,包括
检测单元,用于通话过程中检测接收到的RTP包,记录包头的序列号字段;
统计单元,用于获取并统计来自检测单元的数据,在一个步长内计算网络丢
包率;并计算预测周期内丢包率的均值和方差;
预测单元,用于根据统计单元得到的数据,预测未来时段的网络资源状况,
包括判断丢包率均值是否在设定的丢包率阈值范围内;参考丢包率方差和阈值的 值,进行决策是否调整编解码算法的优先级列表;
存储单元,用于在编解码算法的优先级发生变化时,存储变化后的优先级列
表;
执行单元,用于在预测单元发出指令后,携带变化后存储单元中的编解码算 法优先级列表作为SDP消息体,发起新的媒体协商,并负责随后的信令交互。 本发明所述的方法和系统,即可用于下一代网络(Next Generation NetworkNGN)环境,此时与所述SIP终端进行信令交互的网络侧设备是软交换(Soft Switch, SS);另外也可用于IP多媒体子系统(IP Multimedia Subsystem, IMS)环 境,此时与所述SIP终端进行信令交互的网络侧设备是服务-呼叫会话控制功能 (Serving-Call Session Control Function, S-CSCF)。
采用本发明所述方法和系统,与现有技术相比,能够在呼叫终端侧实时地对 RTP流进行检测和统计,动态调整会话采用的编解码算法以适应网络资源状况, 使用户得到最佳的语音质量体验。


图1是实现本发明所述方法的系统结构图2是实现本发明所述方法,对端是SIP终端时的进行信令交互的示意图; 图3是实现本发明所述方法,对端是媒体网关时的进行信令交互的示意图。
具体实施例方式
下面将通过附图对本发明做进一步详细说明。
如图1所示,为实现本发明所述的方法,SIP终端(SIP User Equipment, SIP
UE)需要增加本发明所述的系统,图中
11检测单元,用于通话过程中检测接收到的RTP包,记录包头的序列号字
段;
12统计单元,用于获取检测单元提供的数据进行统计,并在一个步长内计 算网络丢包率;在经过多个步长达到预测周期以后,计算该周期内丢包率的均值
和方差;
13预测单元,用于根据统计单元得到的数据,预测未来时段的网络资源状 况;判断丢包率均值是否在设定的丢包率阈值范围之外,并参考丢包率方差和阈 值的值,进行决策是否调整编解码算法的优先级列表;
14执行单元,用于在预测单元发出指令后,携带变化后存储单元中的编解 码算法优先级列表作为SDP消息体,发起新的媒体协商,并负责随后的信令交 互。
15存储单元,用于当编解码算法的优先级列表发生变化时,存储变化后的 优先级列表。
如图2所示,是本发明的一个经简化的应用环境。在网络侧只列出了与本实施例紧密相关的网元,它们与SIP终端一起进行信令交互实现本发明。在NGN 环境下进行呼叫控制的是SS,在IMS环境下进行呼叫控制的是S-CSCF,以下 说明以NGN环境为例。
图2所示是两个SIP UE——21-UE1和23-UE2之间通话,其中媒体流不经 过MGW直接到达对端。UE之间的信令交互经过22-SS。图中,假设UE1支持 的语音编解码算法包括5种格式,它们构成UE1当前的编解码格式列表 CodecList—old{Codec_l, Codec—2, Codec—3, Codec_4, Codec_5}。UEl与UE2建立 呼叫进行媒体协商的时候假设协商的结果是Codec—1;通话开始之后UE1与UE2 以Codec—1作为编解码方式互相发送媒体流。
在通话开始时候,UE1设置收包计数器PacketCounter和丢包计数器 LoseCounter;同时设置丢包率的阈值下限RateHold一down和阈值上限 RateHold—up,以及丢包率方差的阈值VarHold;还需要设置对RTP包的统计步 长Delta,预测周期Period;其中,Period为若干个Delta: Period = n*Delta。
步骤201 ,通话过程中UE1与UE2以Codec—1作为编解码格式互相发送RTP包。
步骤202,为本发明的核心部分,细分为以下子步骤
a) 对收到的RTP进行实时检测,每收到一个RTP包,PacketCounter增1; 判断相邻RTP包的包头Sequence Number字段的值,如果相差不为1,则 LoseCounter增加该差值减1;
b) 时间达到检测步长 Delta 后,计算丢包率 ri=LoseCounter/(PacketCounterfLoseCounter),其中i-l,2,…,n;然后将计数器 PacketCounter和LoseCounter清零,返回步骤a)继续进行;
c) 判断时间是否达到预测周期Delta,若是,则执行步骤d);否则,执行 步骤a);
d) 计算该周期内的丢包率均值Avr和方差Var;其中,Avr代表一定周期内 网络资源状况平均水平,Var代表网络资源的稳定性;以此对未来时段的网络资 源状况进行预测;
e) 判断Avr与RateHold_down和RateHold_up的关系若Avr大于 RateHold_up,则按照占用带宽的高低调整本地的语音编解码算法的优先级,其 中占用带宽低的算法设置为高优先级;若Avr小于RateHold—down并且Var小于 VarHold,则调整语音编解码算法的优先级,其中占用带宽高的算法设置为高优先级
f)判断UE1的编解码算法列表CodecList是否发生改变;若没有改变,返回步骤a)重新开始执行;否则执行步骤203,发起新的媒体协商。
步骤203, UE1以新的编解码算法列表CodecList—new作为SDP消息体通过re-INVITE发起新的媒体协商;
步骤204, SS收到以后转发到UE2;
步骤205, UE2根据收到的新的编解码算法优先列表,结合本端支持的编解码算法,确定后续交互的媒体格式,放在200OK的SDP消息体中返回给SS;步骤206, SS转发给UE1;步骤207-208, UE1发出ACK确认;
步骤209, UE1与UE2之间以新的编解码算法交互媒体流。
例如,经过步骤202后,UE1得到新的媒体优先级列表CodecList_new{Codec_3, Codec—4, Codec—1, Codec—2, Codec—5} ; UE2收到re-INVITE以后根据本端支持的编解码格式确定以Codec—3作为最终的媒体格式,在这之后的通话中双方将以Codec—3格式的媒体进行交互。
以上步骤中使用的几个阈值RateHold一down、 RateHold—up和VarHold,即可以由用户在初始化的时候进行设置;也可以根据实际的网络状况以及本端支持的编解码算法占用带宽情况,在运行过程中进行修正,以得到最适合的值,使得在一定带宽下能够得到最优的语音质量。
图3所示的情况与图2不同之处是UE进行媒体交互的直接对象是MGW,通过MGW与通话对方进行媒体交互。这种情况下SS与MGW的信令交互(步骤304)是通过媒体网关控制协议(Media Gateway Control Protocol, MGCP)进行的,其它的步骤与图2所示情况基本相似,在此不再赘述。
以上描述的实施例是说明性的而不是限制性的,本发明还可有其他多种实施例,在不脱离本发明的精神和范围的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种会话发起协议终端编解码算法动态协商的方法,其特征在于,包括以下步骤步骤A会话发起协议终端对收到的媒体流进行实时检测,并周期性统计媒体流的丢包数量,计算一定周期内的网络丢包率;步骤B会话发起协议终端基于历史时段的网络丢包率对本端支持的语音编解码算法进行排序;步骤C判断编解码算法列表是否发生变化,若是,则会话发起协议终端发出包含有新的编解码算法列表的请求消息,与通话对端进行媒体协商;协商成功后,双方以新的编解码格式进行通讯;否则,执行步骤A。
2、 如权利要求1所述的会话发起协议终端编解码算法动态协商的方法,其 特征在于,所述通话对端是指通话对方的会话发起协议终端或者媒体网关。
3、 如权利要求1所述的会话发起协议终端编解码算法动态协商的方法,其 特征在于,所述步骤A进一步包括步骤Al:通话开始时,会话发起协议终端设置收包计数器和丢包计数器; 并设置检测步长以及预测周期;步骤A2:通话进行过程中,会话发起协议终端在步长范围对接收到的语音 实时传输协议包进行检测,记录一个步长内相同负荷值的所有实时传输协议包头 部的序列号字段;每收到一个实时传输协议包,收包计数器加l,并计算前后两 个实时传输协议包序列号的差值,若差值不为1,则丢包计数器增加该差值减1;步骤A3:计算一个步长内的丢包率,记录该值,将收包计数器和丢包计数 器清零;并判断步长累计时间是否到达预测周期,若是,则提交丢包率统计数据 记录;否则,执行步骤A2。
4、 如权利要求1所述的会话发起协议终端编解码算法动态协商的方法,其 特征在于,所述步骤B进一步包括步骤B1:根据丢包率计算一个检测周期内的丢包率均值和丢包率方差; 步骤B2:判断丢包率均值的大小,若丢包率均值大于设定的丢包率阈值上限,则按照占用带宽的高低调整本地的语音编解码算法列表,其中占用带宽低的算法设置为高优先级;若丢包率均值小于设定的丢包率阈值下限,且丢包率方差 小于设定的方差阈值,则按照占用带宽的高低调整本地的语音编解码算法列表, 其中占用带宽高的算法设置为高优先级;否则,本地的语音编解码算法列表不变;步骤B3:判断本地的语音编解码算法列表是否发生变化,若是,则存储变 化后的算法优先级列表。
5、 如权利要求1所述的会话发起协议终端编解码算法动态协商的方法,其 特征在于,所述步骤C进一步包括-步骤Cl:若本地的语音编解码算法列表发生变化,则通过会话发起协议协 议的请求消息与通话对端重新发起媒体协商,该消息携带的会话描述协议消息体 中包含了重新调整优先级后的编解码算法列表;步骤C2:通话对端收到该消息后,按照收到消息中的算法优先级顺序及本 地支持的编解码算法确定最终的编解码算法;然后返回200OK消息,其中包含 携带该算法信息的会话描述协议消息体;步骤C3:请求消息发起端收到200OK并确认后,双方后续的语音媒体交互 以新的编解码格式进行。
6、 如权利要求3所述的会话发起协议终端编解码算法动态协商的方法,其 特征在于,步骤A3中所述丢包率的值为丢包计数器的值除以收包计数器的值和 丢包计数器的值的和。
7、 如权利要求4所述的会话发起协议终端编解码算法动态协商的方法,其 特征在于,步骤B2中所述丢包率阈值上、下限的值在运行过程中可根据实际的 网络状况,以及SIP终端支持的编解码算法占用带宽的情况进行修正。
8、 如权利要求4所述的会话发起协议终端编解码算法动态协商的方法,其 特征在于,步骤B2中所述方差阈值在运行过程中可根据实际的网络状况,以及 SIP终端支持的编解码算法占用带宽的情况进行修正。
9、 如权利要求5所述的会话发起协议终端编解码算法动态协商的方法,其 特征在于,步骤C2所述最终的编解码算法是通话对端通过提取会话描述协议消息中的编解码算法信息,与本地支持的编解码算法取交集,然后按照收到消息中 的算法优先级顺序选择交集中优先级高的编解码算法确定的。
10、 一种会话发起协议终端编解码算法动态协商的系统,其特征在于,包括检测单元,用于通话过程中检测接收到的实时传输协议包,记录包头的序列 号字段;统计单元,用于获取并统计来自检测单元的数据,在一个步长内计算网络丢包率;并计算预测周期内丢包率的均值和方差;预测单元,用于根据统计单元得到的数据,预测未来时段的网络资源状况, 包括判断丢包率均值是否在设定的丢包率阈值范围内;参考丢包率方差和阈值的 值,进行决策是否调整编解码算法的优先级列表;存储单元,用于在编解码算法的优先级发生变化时,存储变化后的优先级列表;执行单元,用于在预测单元发出指令后,携带变化后存储单元中的编解码算 法优先级列表作为会话描述协议消息体,发起新的媒体协商,并负责随后的信令 交互。
全文摘要
本发明涉及一种会话发起协议终端编解码算法动态协商的方法,该方法通过会话发起协议终端在呼叫过程中对收到的媒体流进行实时检测,周期性统计媒体流的丢包率;并基于历史时段的网络丢包率对语音编解码算法进行排序,然后主动发起与通话对端或者媒体网关的媒体协商,成功后双方以新的编解码格式进行通讯;本发明还在上述方法的基础上提供一种会话发起协议终端编解码算法动态协商的系统,该系统包括检测单元,统计单元,预测单元,存储单元以及执行单元。本发明能够在呼叫终端侧实时地对实时传输协议流进行检测和统计,动态调整会话采用的编解码算法以适应网络资源状况,使用户得到最佳的语音质量体验。
文档编号H04L1/00GK101483494SQ200810065149
公开日2009年7月15日 申请日期2008年1月7日 优先权日2008年1月7日
发明者张继栋, 昊 董, 邓加琼 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1