一种媒体协商异常时媒体状态回退的方法

文档序号:7691576阅读:125来源:国知局

专利名称::一种媒体协商异常时媒体状态回退的方法
技术领域
:本发明涉及通信领域,尤其涉及一种媒体协商异常时媒体状态回退的方法。
背景技术
:在会话初始协议(SIP)中,Re-INVITE是在一个现存对话中发出的新的INVITE请求,可以通过Re-INVITE请求修改地址、端口,增加、删除媒体流等。在使用SIP和会话描述协议(SDP)建立会话的过程中,存在Re-INVITE事务失败的情况。如果在Re-INVITE事务内已经完成J某体协商的交互,此时媒体状态的确定将存在争议。媒体协商是指在控制信道上,完成终端能力协商、主从确定、打开相应的逻辑通道和发送通道服用表等一系列的过程,具体参见H.245协议标准。媒体协商是通过一方在消息中携带Offer(携带媒体描述提供)发送给接收方,发起媒体协商,接收方向发送方返回携带Answer(媒体描述应答)的消息对消息发送方发起的协商进行应答。图l所示为建立会话后,Re-INVITE事务的流程,包括以下步骤1:会话建立后,UAC(客户端)向UAS(服务端)发送Re-INVITE消息,在消息中携带Offer,在发起Re-INVITE消息之前的々某体状态定为sessionstate1(媒体状态1);2:UAS在第一条可靠传输的临时响应(lxx-rel)中携带Answer,完成本次媒体协商的交互,此时的媒体状态定为sessionstate2(媒体状态2);3:UAS向UAC发送含振铃语义的180消息,180消息可能通过一个回铃音,或者屏幕上的一个消息提示UAC,同时UAS提示其使用者存在媒体切换的请求;4体切换请求时,由UAS向UAC发送除2xx以外的其它最终响应,如4xx、5xx和6xx等,表明本次Re-INVITE事务失败;5:UAC向服务端UAS发送ACK(确认字符)作为最终响应的确认。目前存在的主要问题在于,Re-INVITE事务失败后的媒体状态无法确定,根据RFC3261,Re-INVITE事务失败后,媒体状态应该回退到Re-INVITE事务发起之前的状态,即图1中的sessionstate1;而根据RFC3264,—次媒体协商交互完成之后,已确定媒体状态的变迁,Re-INVITE事务失败后,媒体状态应回退到图1中的sessionstate2。在IETFDraft(draft-ietf-sipping-sip-offeranswer-03)中,对上述争议也有类似上文的描述,并且指出,该问题的解决方法需要IETFSIP工作组进一步研究。在媒体协商发生异常时,需要回退到异常发生前的^某体状态的意愿是一致的,但无法确定回退的媒体状态,如果参与会话的网元对需要回退的媒体状态理解不一致,回退之后,仍旧无法恢复媒体面的通话。
发明内容本发明要解决的技术问题是提供一种媒体协商异常时媒体状态回退的方法,在媒体协商发生异常时,参与会话的网元能够确定回退的^某体状态,恢复媒体面的通话。为解决上述技术问题,本发明的一种媒体协商异常时媒体状态回退的方法,包括如下步骤a:参与会话的网元对媒体协商异常时回退的媒体状态类型进行协商;b:当媒体协商发生异常时,参与会话的网元根据回退的媒体状态类型,选择语义强度不低于该回退的媒体状态类型的媒体协商异常发生前的媒体状态回退。进一步地,在步骤a中,通过在SDP中扩展对回退的媒体状态类型进行标识的属性,以进行回退的媒体状态类型的协商。进一步地,通过在网元间进行媒体状态协商的交互消息,携带在SDP中扩展的对回退的媒体状态类型进^f亍标识的属性,对回退的媒体状态类型进行协商。进一步地,在会话建立时,通过在网元间建立会话的INVITE消息和对该INVITE消息进行响应的消息携带在SDP中扩展的对回退的媒体状态类型进行标识的属性,对回退的媒体状态类型进行协商。进一步地,在会话建立后,通过Re-INVITE消息及lxx-rel消息,或PRACK消息及200OK消息,或UPDATE消息及200OK消息,携带在SDP中扩展的对回退的媒体状态类型进行标识的属性,对回退的媒体状态类型进行协商。进一步地,媒体状态类型包括非稳态、非最终确认的稳态和最终确认的稳态。进一步地,非稳态是指,通过INVITE事务内的信令携带Offer/Answer进行交互而建立的媒体状态,该媒体状态尚未得到INVITE事务的最终响应的确i人。进一步地,非最终确认的稳态是指,在INVITE事务最终确认之前,通过非INVITE事务的信令携带Offer/Answer进行交互而建立的媒体状态。进一步地,最终确认的稳态是指,通过INVITE事务内的信令携带Offer/Answer进行交互而建立的媒体状态,并得到INVITE事务的2xx消息的最终响应确认,或在INVITE事务进行的过程之外,通过非INVITE事务的信令携带Offer/Answer进行交互而建立的媒体状态。进一步地,在步骤b中,参与会话的网元根据回退的媒体状态类型,选择距媒体协商异常发生最近一次的语义强度不低于回退的媒体状态类型的媒体协商异常发生前的媒体状态回退。综上所述,本发明通过在SDP中扩展一种属性,用于表示力某体协商异常时,媒体状态回退的指示,并在媒体协商过程中携带该扩展属性对异常发生时回退的媒体状态类型进行协商,当发生媒体协商异常时,参与会话的网元根据协商好的回退的媒体状态类型,选择回退的媒体状态,并各自回退到选择的媒体状态,从而保证了媒体协商异常时,双方媒体状态的一致性,恢复了媒体面的通话,并且具有兼容不支持该SDP属性扩展的网元的能力。图1为媒体状态协商的流程图;图2为本发明方法的流程图;图3为本发明第一示例的媒体状态与媒体状态类型对应的示意图;图4为本发明第二示例的信令流程图;图5为本发明第二示例的媒体状态与媒体状态类型对应的示意图。具体实施方式本发明结合携带Offer/Answer等SDP的SIP信令的特点,对其建立的媒体状态进行类属划分,将媒体状态划分为不同的媒体状态类型。需要强调的是,从集合的观点看,对由SIP信令建立的媒体状态进行类属划分时,只要满足划分后的媒体状态类型的并集能够包含实际应用中可能存在的各种媒体状态即可。在媒体协商发生异常之前,各网元对异常发生时回退的媒体状态类型进行协商,即确定异常发生时需要回退到哪一媒体状态类型,该过程通过会话建立(或修改)过程中的媒体协商过程进行。当异常发生时,各网元根据协商好的媒体状态类型选择回退的媒体状态,并单独回退到选择的J某体状态。以下结合附图对本发明的具体实施方式进行说明本实施例中将会话建立过程中所采用的媒体状态划分为三种基本类型,包括ST—NONSTABLE(nonstablesessionstate,非稳态)、ST—NON—FINAL—CFM(non-finalconfirmedsessionstate,非最终确认的稳态和ST—FINAL—CFM(finalconfirmedsessionstate,最终确认的稳态),其中ST—NONSTABLE定义为通过INVITE事务内的信令携带Offer/Answer进行交互而建立的媒体状态,从时域上看,该媒体状态还没有得到INVITE的最终响应的确i^。ST一NON一FINAL—CFM定义为在INVITE事务最终确认之前,通过非INVITE事务的信令携带Offer/Answer进行交互而确认的媒体状态,例如INVITE事务进行过程中,通过UPDATE/200OK而建立的々某体状态。ST—FINAL一CFM定义为通过INVITE事务内的信令携带Offer/Answer进行交互而确认的纟某体状态,并得到INVITE的2xx最终响应确i人,或INVITE事务进行的过程之外,通过非INVITE事务的信令携带Offer/Answer进行交互而建立的媒体状态。由于ST—FINAL—CFM可以代替ST—NONSTABLE和ST—NON—FINAL—CFM;ST—NON—FINAL—CFM可代替ST—NONSTABLE;因此,ST—NONSTABLE、ST—NON—FINAL—CFM和ST—FINAL—CFM三种媒体状态类型的回退语义由弱依次趋强。图2所示为本发明方法的流程图,该方法包含如下步骤201:参与会话的网元对媒体协商发生异常时回退的媒体状态类型进行协商;通过扩展一种SDP属性rollbacklevel标识回退的媒体状态类型,对交互的双方指示协商的媒体状态类型。依据RFC4566中对SDP属性定义的格式a=<attribute>:<value>,定义标识回退的媒体状态类型的格式为a=rollbacklevel:<value>,其中value的值可选为ST—NONSTABLE、ST—NON—FINAL_CFM、ST—FINAL—CFM。回退的媒体状态的类型是通过在那些参与会话的网元间协商i某体状态的交互消息中携带rollbacklevel属性完成的。可以在会话建立时,通过建立会话的INVITE消息携带Offer,在Offer中携带rollbacklevel属性,对INVITE消息进行响应的消息携带Answer,在Answer中携带rollbacklevel属性进行协商,或会话建立后,通过其它携带Offer/Answer的信令完成回退的媒体状态类型的协商,如可通过携带Offer的Re-INVITE信令和携带Answer的lxx-rel信令、PRACK消息和200OK消息、UPDATE消息和200OK消息等进行协商。协商时通过SDP携带回退的媒体状态类型,而不采用在SIP头(SIPHeader)中携带,优势体现在如下两个方面媒体指示的粒度更细SDP的内容可以针对每个具体的媒体成分,而如果在SIP头中携带,仅是会话级的,即仅针对会话内所有的媒体成分。具有兼容性RFC4566中将SDP定义为,对于不能识别的属性(attributes),需要跳过,而不影响对SDP其余内容的识别,所以通过扩展SDP,可以具有兼容不支持该扩展的网元的能力,即具有向下兼容的能力。媒体协商过程中,在填写rollbacklevel属性时,Answer中携带的rollbacklevel,其语义不能弱于Offer中携带的rollbacklevel的语义。如果Answer中携带了语义更弱的rollbacklevel,则媒体协商提供方(Offerer)应该认为々某体协商应答方(Answerer)不支持该rollbacklevel属性。如果媒体协商应答方(Answerer)不能满足不弱于媒体协商提供方(Offerer)的语义的要求,则不能(MUSTNOT)在Answer中携带rollbacklevel属性。兼容性具体操作如果媒体协商应答方不在Answer中携带rollbacklevel,则表示其不能支持该功能。异常发生后,媒体协商提供方(Offerer)将无法确定回退的媒体状态类型,因为媒体协商应答方(Answerer)没有明确的指示,此时i某体协商4是供方(Offerer)可以发起新的Offer,通过额外的信令,按其对媒体状态的理解,刷新媒体状态。202:在媒体协商异常时,参与会话的各网元选择最近一次的,其语义强度不低于已协商的媒体状态类型的媒体状态,并各自回退到该媒体状态。为便于描述,定义协商好的rollbacklevel属性值为rollbacklevelvalue,实际中rollbacklevelvalue为ST—NONSTABLE、ST—NON—FINAL—CFM、ST—FINAL—CFM其中之一。假设异常发生时,需要寻找的回退的媒体状态为state,则参与会话的各网元只需要在时域上遍历媒体状态的序列,查找到最近的一次满足语义大于或等于rollbacklevdvalue的语义的媒体状态,该媒体状态即为确定的回退状态state。选择语义强度不低于已协商好的媒体状态类型的媒体状态回退,是因为如果rollbacklevelvalue协商为ST—NON—FINAL—CFM,而异常发生点之前的状态为ST—FINAL—CFM,此时只要回退到ST—FINAL—CFM状态即可,也就是说因为ST—FINAL—CFM语义比ST—NON—FINAL—CFM强,所以ST_FINAL—CFM可以代替ST—NON—FINAL—CFM。下面结合两个应用示例进一步详细说明上述实施例,参照图1及图3所示,在图3中,媒体状态类型下面的数字表示该媒体状态在时间轴上的序号,1对应sessionstate1,2对应sessionstate2,1属于ST—FINAL—CFM,2属于ST—NONSTABLE;a:会话建立后,即处于sessionstatel时,UAC向UAS发送Re-INVITE信令,在Re-INVITE中携带Offer,Offer中携带a=rollbacklevel:ST—FINAL—CFM;b:UAS向UAC返回lxx-rel,在lxx-rel中携带Answer,Answer中也携带a=rollbacklevel:ST—FINAL—CFM;此时,UAC与UAS对媒体协商异常时回退的媒体状态类型协商成功,协商结果为异常时回退到类型ST—FINAL_CFM,并同时完成了sessionstate2的协商。UAS发送180表示振铃(PRACK为对180的确认消息,200OK是PRACK消息的响应);d:UAS向UAC发送失败消息(4xx/5xx/6xx其中之一的失败消息),即媒体协商发生异常;e:UAC发送失败消息的确认消息(ACK);f:媒体协商发生异常时,即在sessionstate2之后,UAC与UAS根据协商好的回退的媒体状态类型ST_FINAL_CFM,查找最近的语义大于或等于ST—FINAL—CFM的媒体状态,可以从图3中看到,应该是虚框对应的媒体状态,即sessionstate1,其属于ST—FINAL—CFM类型语义与协商好的媒体状态类型相同,因此,UAC与UAS各自回退到sessionstate1。如果Re-INVITE与lxx-rel的协商结果为ST—NONSTABLE,对照图3,在媒体协商发生异常时,UAC与UAS查找最近的语义大于或等于ST_NONSTABLE的媒体状态,从图3中看到,应该是sessionstate2,UAC与UAS各自回退到sessionstate2。下面再通过一个应用示例对上述实施例进行说明,参照图4及图5所示,其中sessionstate1属于ST—FINAL—CFM,sessionstate2、3、4、5均属于ST—NONSTABLE;A:会话建立后,处于sessionstate1时,UAC向UAS发送Re-INVITE信令,在Re-INVITE信令中携带Offer,UAS向UAC返回lxx-rel,在lxx-rel中携带Answer,此时处于sessionstate2;B:在接收到lxx-rel后,UAC向UAS发送PRACK,在PRACK中携带Offer;UAS向UAC发送对PRACK响应的200OK,在200OK中携带Answer,此时处于sessionstate3;C:UAS向UAC发送UPDATE信令,在UPDATE信令中携带Offer,UAC向UAS返回对UPDATE信令应答的200OK,200OK中携带Answer,此时处于sessionstate4;D:UAS向UAC发送180振铃消息,UAC向UAS返回该180振铃消息的PRACK,在PRACK中携带Offer,UAS向UAC发送应答PRACK的200OK,在200OK中携带Answer,此时处于sessionstate5;E:UAS向UAC发送失败消息(4xx/5xx/6xx—类的失败消息),即,媒体协商发生异常;F:UAC向UAS发送失败消息的确认消息(ACK);G:媒体协商发生异常后,当UAC与UAS协商的异常处理结果为ST_NONSTABLE时,贝'JUAC与UAS查找最近的一个不"i吾义小于ST—NONSTABLE的媒体状态,即为sessionstate5,UAC与UAS各自回退到sessionstate5。如果UAC与UAS协商的异常处理结果为ST_NON—FINAL—CFM,则UAC与UAS查找最近的一个语义不小于ST—NON—FINAL—CFM的媒体状态,即为sessionstate1,UAC与UAS各自回退到sessionstate1。如果UAC与UAS协商的异常处理结果为ST—FINAL—CFM,则UAC与UAS查找最近的一个语义不小于ST—FINAL—CFM的媒体状态,即为sessionstate1,UAC与UAS各自回退到sessionstate1。本示例中,回退的J某体状态类型的协商可以通过会话建立时的INVITE消息携带Offer,响应INVITE消息的消息携带Answer完成;也可以通过上述A-D中任何一次媒体协商来完成回退的媒体状态类型的协商。图4中的sessionstate3、sessionstate4、sessionstate5在々某体类型的类属划分上都属于ST—NON—FINAL_CFM,但是它们分别为不同的媒体状态,t匕:i口sessionstate3可以只有音步贞,sessionstate4專交sessionstate3土曾力口了#见频,sessionstate5又将^L频去除,只有音频。当然,本发明还可有其它实施例,在不背离本发明精神及其实质的情况形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。权利要求1、一种媒体协商异常时媒体状态回退的方法,包括如下步骤a参与会话的网元对媒体协商异常时回退的媒体状态类型进行协商;b当媒体协商发生异常时,参与会话的网元根据回退的媒体状态类型,选择语义强度不低于该回退的媒体状态类型的媒体协商异常发生前的媒体状态回退。2、如权利要求l所述的方法,其特征在于,在步骤a中,通过在SDP中扩展对回退的媒体状态类型进行标识的属性,以进行回退的媒体状态类型的协商。3、如权利要求2所述的方法,其特征在于,通过在所述网元间进行媒体状态协商的交互消息,携带所述在SDP中扩展的对回退的媒体状态类型进行标识的属性,对回退的媒体状态类型进行协商。4、如权利要求3所述的方法,其特征在于,在会话建立时,通过在网元间建立会话的INVITE消息和对该INVITE消息进行响应的消息携带所述在SDP中扩展的对回退的媒体状态类型进行标识的属性,对回退的媒体状态类型进行协商。5、如权利要求3所述的方法,其特征在于,在会话建立后,通过Re-INVITE消息及lxx-rel消息,或PRACK消息及200OK消息,或UPDATE消息及200OK消息,携带所述在SDP中扩展的对回退的媒体状态类型进行标识的属性,对回退的々某体状态类型进行协商。6、如权利要求l所述的方法,其特征在于,所述^某体状态类型包括非稳态、非最终确认的稳态和最终确认的稳态。7、如权利要求6所述的方法,其特征在于,所述非稳态是指,通过INVITE事务内的信令携带Offer/Answer进行交互而建立的媒体状态,该媒体状态尚未得到INVITE事务的最终响应的确认。8、如权利要求6所述的方法,其特征在于,所述非最终确认的稳态是指,在INVITE事务最终确认之前,通过非INVITE事务的信令携带Offer/Answer进行交互而建立的纟某体状态。9、如权利要求6所述的方法,其特征在于,所述最终确认的稳态是指,通过INVITE事务内的信令携带Offer/Answer进行交互而建立的媒体状态,并得到INVITE事务的2xx消息的最终响应确认,或在INVITE事务进行的过程之外,通过非INVITE事务的信令携带Offer/Answer进行交互而建立的媒体状态。10、如权利要求l所述的方法,其特征在于,在步骤b中,参与会话的网元根据回退的媒体状态类型,选择距媒体协商异常发生最近一次的语义强度不低于回退的媒体状态类型的媒体协商异常发生前的媒体状态回退。全文摘要本发明公开了一种媒体协商异常时媒体状态回退的方法,包括如下步骤a参与会话的网元对媒体协商异常时回退的媒体状态类型进行协商;b当媒体协商发生异常时,参与会话的网元根据回退的媒体状态类型,选择语义强度不低于该回退的媒体状态类型的媒体协商异常发生前的媒体状态回退。本发明通过在SDP中扩展一种属性,用于表示媒体协商异常时,媒体状态回退的指示,当发生媒体协商异常时,参与会话的网元根据协商好的回退的媒体状态类型,选择回退的媒体状态,并各自回退到选择的媒体状态,从而保证了媒体协商异常时,双方媒体状态的一致性,恢复了媒体面的通话,并且具有兼容不支持该SDP属性扩展的网元的能力。文档编号H04L12/58GK101257499SQ20081009371公开日2008年9月3日申请日期2008年4月16日优先权日2008年4月16日发明者扬高申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1