一种sip会话刷新过程中协商更新时间的方法

文档序号:7688842阅读:1071来源:国知局
专利名称:一种sip会话刷新过程中协商更新时间的方法
技术领域
本发明涉及通信领域,更具体地涉及一种SIP会话刷新过程中减少网络流量的方法。
背景技术
当前许多通信系统中控制层采用会话启动协议(Session InitiationProtocol,简称SIP)作为控制信令。SIP在RFC4028中定义了一种会话刷新机制。支持RFC4028的终端会周期性的发送对话请求(re-INVITE)或刷新请求(UPDATE)用来保持会话的活动。会话更新请求的间隔通过RFC4028的协商机制决定。如果在间隔内没有收到会话更新请求,该会话被认为已经终止。终端发送一个结束会话(BYE)消息,有状态代理服务器则将该呼叫的所有状态移除。 在SIP会话刷新机制中,SIP消息体扩展了两个头字段会话持续时间(Session-Expires,简称SE),会话允许的最小持续时间(Min-SE,简称MSE)和以及一个新的响应码(422,表示会话定时器持续时间太短)。 图1是SIP会话的系统参考框架。整个呼叫模型包括用户代理客户端(User AgentClient,简称UAC)101、SIP代理服务器A(SIP Proxy A,简称Proxy A) 102、SIP代理服务器B(SIP Proxy B,简称Proxy B) 103、用户代理服务端(User Agent Server,简称UAS) 104。其中UAC为呼叫发起方,UAS为呼叫接收方。SIP信令从UAC路由到UAS不一定是仅经过两个SIP代理服务器。此处假定为两个。 根据SIP会话刷新机制的要求,UAC在发起呼叫时会携带本地配置的SE,如果SE的间隔太低(低于代理服务器要维护的MSE头字段的值),那么代理服务器将拒绝这个请求并返回一个422响应。该响应包含一个MSE头字段表明它所支持的最小会话间隔。UAC收到422响应后。再次尝试发送请求,这次请求中包含了 SE头字段,其值等于先前接收到的所有422响应中最大的MSE头字段值。同样包含MSE头字段,其值等于先前接收到的所有422响应中最大的MSE头字段值。这样一来,SE和MSE就能满足所经过的所有代理服务器的约束条件。 现有技术中,会话流程以及对422响应的处理过程如附图2所示,包括以下步骤
S201,当UAC发起呼叫,向Proxy A发送呼叫请求,消息中包含会话持续时间SE,例如,设置为100秒; S202, Proxy A收到呼叫请求时,发现会话间隔小于本地所允许的最小值3600,因此ProxyA用一个422响应来拒绝请求,设置MSE为3600 ;
S203, UAC发送会话确认消息到Proxy A ; S204,UAC重新发送呼叫请求。这次,请求中包含了一个MSE头字段值为422响应的带的3600, SE头字段的值也为3600 ; S205,由于现在的会话间隔值Proxy A可以接受,Proxy A将这个请求前向发送到Proxy B j
S206, Proxy B收到呼叫请求时,发现会话间隔小于本地所允许的最小值4000,因此Proxy B用一个422响应来拒绝请求,设置MSE为4000 ;
S207, Proxy A发送会话确认消息到Proxy B ;
S208, Proxy A转发422响应到UAC ;
S209, UAC发送会话确认消息到Proxy A ; S210,UAC重新发送呼叫请求。这次,请求中包含了一个MSE头字段值为422响应带的4000, SE头字段的值也为4000 ; S211,由于现在的会话间隔值Proxy A可以接受,Proxy A将这个请求前向发送到Proxy B j S212,由于现在的会话间隔值Proxy B也可以接受,Proxy B将这个请求前向发送至lj UAS ; S213, UAS收到呼叫请求消息,检查SE的值自己可以接受,返回200响应消息,同
时带有协商好的SE的值为4000 ; S214, Proxy B转发200响应到Proxy A ; S215, Proxy A转发200响应到UAC,呼叫建立。 从上述过程中可以看出,会话刷新机制的协商过程可能会多次返回422响应到UAC,导致UAC不得不用422响应中新的SE来重新发起呼叫,而如果用户挂断电话后,下次继续呼叫被叫时,不得不又重复以上的协商机制。这样多次交互中,使得网络带宽急剧浪费,另外用户呼叫振铃,和接通的时长明显增长,用户体验降低。如果呼叫繁忙的情况下,会严重影响网络处理性能。

发明内容
本发明所要解决的技术问题是提供一种SIP会话刷新过程中协商更新时间的方法,应用于包括用户代理客户端UAC、用户代理服务端UAS和设置于UAC与UAS之间的至少一代理服务器的系统中,其特征在于包括如下步骤 101UAC向UAS发起会话请求的会话时,UAC查找并获得UAC与UAS会话的会话持续时间关联表SPT中的路由会话持续时间SE信息; 102向UAC和UAS之间的所述至少一代理服务器发起会话请求,会话请求中包括所述UAC获得的SE信息; 103所述至少一代理服务器获取所述SE信息,对照所述至少一代理服务器所允许的会话持续时间最小值MSE,如果所述SE大于等于所述MSE,则转发直至到达UAS ;如果所述SE小于等于所述MSE,所述至少一代理服务器发送拒绝请求响应消息至UAC,拒绝请求响应消息中包括所述MSE的时间信息,执行102步骤; 104UAS收到会话请求,将SE信息返回200响应消息给所述UAC,并且更新SPT表中的相应的SE信息更新。 进一步地,其特征在于,所述的会话持续时间关联表SPT包括被叫标识,呼叫路径上的代理服务器以及相应的SE信息。 进一步地,所述UAS的标识信息是SIP URI标志。 进一步地,其特征在于,所述SPT表在UAC启动或注册后清空。
4
进一步地,其特征在于,步骤101中,所述UAC查找UAC与UAS会话的会话持续时 间关联表SPT失败,则UAC根据本地设置的SE信息发起会话请求; 进一步地,其特征在于,步骤103后,如果UAC中没有所述SPT表,则UAC插入所述 SPT表。 与现有技术相比,由于本发明在SIP会话刷新协商过程中,UAC采用了针对UASSIP URI来分别存储SE值的方法,因此克服现有会话刷新机制过程中多次交互产生422响应的 弊端。减小SIP消息交互流量,降低呼叫响应时间,提高用户体验。


图1为现有技术的SIP呼叫的参考框架示意图;
图2为现有技术的SIP呼叫会话刷新协商流程图;
图3为本发明的SIP初次呼叫会话刷新协商流程图;
图4为本发明的第二次呼叫UAS的呼叫流程图;
图5为本发明的UAS发生漫游后的协商流程图。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步详细的说明。 为了实现本发明的目的,在UAC本地保持一张会话持续时间关联表(SEPOLICY
TABLE,简称SPT),此表项包括被叫标识,例如被叫的SIP统一资源标识符(SIP Uniform
Resource Identifier,简称SIP URI),呼叫路径上的Proxy以及他们相应的SE信息。UAC
启动或注册后此SPT为空。 请注意SPT表项中是包括了路径上所有Proxy的SE信息,还是为其中一个Proxy 的及其相应的SE信息? 图3是对于一个指定的被叫,初次SIP呼叫会话刷新协商,并且建立SPT表的流程 图。在这个流程中,UAC与UAS会话协商过程中确定的SE信息被保存在UAC的SPT表中。 具体地,这个流程包括以下步骤 S301,当UAC发起呼叫,查找本地SPT,假设此次呼叫是UAC启动或者注册后的第一
次向此UAS的呼叫。查找SPT未找到UAS的SIP URI。向Proxy A发送呼叫请求消息,呼叫
请求消息中包含本地策略默认的会话持续时间SE信息,例如,设置为100秒; S302, Proxy A收到呼叫请求时,发现会话间隔小于本地所允许的最小值3600,因
此Proxy A用一个422响应来拒绝请求,设置MSE为3600 ; S303, UAC发送会话确认消息到Proxy A ; S304,UAC重新发送呼叫请求。这次,请求中包含了一个MSE头字段值为422响应 的带的3600, SE头字段的值也为3600 ; S305,由于现在的会话间隔值Proxy A可以接受,Proxy A将这个请求前向发送到 Proxy B j S306, Proxy B收到呼叫请求时,发现会话间隔小于本地所允许的最小值4000,因 此Proxy B用一个422响应来拒绝请求,设置MSE为4000 ;
S307, Proxy A发送会话确认消息到Proxy B ;
S308, Proxy A转发422响应到UAC ;
S309, UAC发送会话确认消息到Proxy A ; S310,UAC重新发送呼叫请求。这次,请求中包含了一个MSE头字段值为422响应 带的4000, SE头字段的值也为4000 ; S211,由于现在的会话间隔值Proxy A可以接受,Proxy A将这个请求前向发送到 Proxy B j S312,由于现在的会话间隔值Proxy B也可以接受,Proxy B将这个请求前向发送 至lj UAS ; S313, UAS收到呼叫请求消息,检查SE的值自己可以接受,返回200响应消息,同
时带有协商好的SE的值为4000 ; S314, Proxy B转发200响应到Proxy A ; S315,Proxy A转发200响应到UAC,UAC收到后,发现2000K回应中携带SE头域, 根据被叫SIP URI查找SPT,没有找到,插入一项,SIPURI和SE值分别为此被叫的SIP URI 和2000K回应中的SE头域的值4000。 图4是再次呼叫图3中相同的UAS的呼叫流程图。因为在图3的流程图中,UAC已 经获得了合适的SE信息并且保存在与该UAS关联的STP表中,所以,这个再次呼叫过程减 少了 SE协商的过程。具体地,流程包括以下步骤 S401,当UAC发起呼叫时,查找本地SPT,根据被叫SIP URI找到对应的SE值为 4000,发起呼叫,消息中包含会话刷新协商时间SE为4000秒; S402, PROXY A检查消息,发现SE值大于本地最低值限制,直接转发呼叫到PROXY B ; S403, PROXY B检查消息,发现SE值大于本地最低值限制,直接转发呼叫到UAS ;
S404, UAS带协商好的SE值回应2000K消息连同UAS得SIP URI信息到PROXY B ;
S405, PROXY B转发回应2000K消息到PROXY A ; S406, PROXY A转发回应2000K消息到UAC, UAC收到带SE头域的2000K回应消息。 根据UAS的SIP URI更新SPT表中的该SIP URI的SE值为最新SE值4000,会话刷新协商 成功。 从上述过程可以看出,UAC在一开始就具有了合适的SE值,省却了和呼叫路径上 的ProxyA, ProxyB的SE协商过程。 图5所表示的情形是,当在图3所表述的流程中,即使UAC已经保存了关于的STP 表格,因为UAS发生了位置的变化,而这种变化是的呼叫路径上的代理服务器发生变化(在 图5中的Prxoy C),如何协商SE信息。它包括以下步骤 S501,当UAC发起呼叫时,查找本地SPT,根据被叫SIP URI找到对应的SE值为
4000,发起呼叫到PROXY A,消息中包含会话刷新协商时间SE为4000秒; S502,由于UAS发生了漫游,PROXY A将呼叫请求中转到PROXY C处理; S503,由于PR0XY C发现会话间隔小于本地所允许的最小值6000,因此Proxy C用
一个422响应来拒绝请求,设置MSE为6000 ; S504, Proxy A转发422响应到UAC ; S505, PROXY A发送会话确认消息到Proxy C ;
S506, UAC发送会话确认消息到Proxy A ; S507,UAC重新发送呼叫请求。这次,请求中包含了一个MSE头字段值为422响应 带的6000, SE头字段的值也为6000 ; S508,由于现在的会话间隔值Proxy A可以接受,Proxy A将这个请求前向发送到 Proxy C j S509,由于现在的会话间隔值Proxy C也可以接受,Proxy B将这个请求前向发送 至lj UAS ; S510, UAS收到呼叫请求消息,检查SE的值自己可以接受,返回200响应消息,同
时带有协商好的SE的值为6000 ; S511, Proxy C转发200响应到ProxyA ; S512,Proxy A转发200响应到UAC,UAC收到带SE头域的2000K回应消息。根据 SIP URI更新SPT表中的该SIP URI的SE值为最新SE值6000,会话刷新协商成功。
在现有技术中UAC的SE值总是由本地策略设置的。如果本地策略值比呼叫经过的 路由路径的要求值小,每次呼叫最要返回多余的422响应占用网络带宽,如果本地策略值 设置的非常大,比经过的路由路径的要求值大很多,虽然不会有422响应产生,但这可能导 致会话刷新迟钝而失去意义。在本实施例中改进为UAC的SE值是根据UAS的路由路径所 动态决定的。从而可以避免对此用户的后续呼叫产生422响应。即提高了呼叫响应速度, 又减少网络流量负担。 综上所述,采用本发明方法,应用于SIP呼叫会话刷新协商过程,UAC 采用了针 对UASSIP URI来分别存储SE值的方法,因此克服现有会话刷新机制过程中多次交互产生 422响应的弊端。减小SIP消息交互流量,降低呼叫响应时间,提高用户体验。
权利要求
一种SIP会话刷新过程中协商更新时间的方法,应用于包括用户代理客户端UAC、用户代理服务端UAS和设置于UAC与UAS之间的至少一代理服务器的系统中,其特征在于包括如下步骤101UAC向UAS发起会话请求的会话时,UAC查找并获得UAC与UAS会话的会话持续时间关联表SPT中的路由会话持续时间SE信息;102向UAC和UAS之间的所述至少一代理服务器发起会话请求,会话请求中包括所述UAC获得的SE信息;103所述至少一代理服务器获取所述SE信息,对照所述至少一代理服务器所允许的会话持续时间最小值MSE,如果所述SE信息大于等于所述MSE,则转发直至到达UAS;如果所述SE信息小于等于所述MSE,所述至少一代理服务器发送拒绝请求响应消息至UAC,拒绝请求响应消息中包括所述MSE,并将所述MSE作为UAC的新的SE信息,执行102步骤;104UAS收到会话请求,返回响应消息给所述UAC,响应消息中包括所述SE信息,并且根据所述SE信息更新SPT表中的SE信息。
2. 如权利要求1所述的方法,其特征在于,所述的会话持续时间关联表SPT包括被叫标 识,呼叫路径上的代理服务器以及相应的SE信息。
3. 如权利要求2所述的方法,其特征在于,所述被叫标示为UAS的标识信息,S卩SIP URI 标志。
4. 如权利要求1所述的方法,其特征在于,所述SPT表在UAC启动或注册后清空。
5. 如权利要求1所述的方法,其特征在于,步骤101中,若关联表SPT为空,则UAC根据选择默认的SE信息。
全文摘要
本发明公开了一种SIP会话刷新过程中协商更新时间的方法,包括步骤UAC向UAS发起会话请求的会话时,UAC查找并获得UAC与UAS会话的会话持续时间关联表SPT中的路由会话持续时间SE信息,向UAC和UAS之间的所述至少一代理服务器发起会话请求,所述至少一代理服务器获取所述SE信息,对照所述至少一代理服务器所允许的会话持续时间最小值MSE,如果所述SE大于等于所述MSE,则转发直至到达UAS;如果所述SE小于等于所述MSE,将MSE作为新的SE返回UAC重新发起会话,当UAS收到会话请求,将把收到的SE信息返回给SPT表中。这样可以减小SIP消息交互流量,降低呼叫响应时间,提高用户体验。
文档编号H04L29/06GK101741807SQ200810068478
公开日2010年6月16日 申请日期2008年11月19日 优先权日2008年11月19日
发明者任鹏, 苏登军 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1