代理服务器的制作方法

文档序号:7796883阅读:247来源:国知局
专利名称:代理服务器的制作方法
技术领域
本发明的领域为电信领域,更具体地,为IP电话领域。
背景技术
人们越来越多地使用因特网协议(IP)网络作为对于大量服务与应用的统一支持手段。对于选择该协议的诸多运营商来说,IP承担了联合者的角色,用来使先前分离的服务相互扶持。因特网协议的IPv4版本已经使用几年了。为了满足此类通信服务施加的限制,更具体地,为了适应地址方面的需求增长,运营商与网络装备制造商联合起来,制定了新一代通信协议,称为IPv6,其由现在处于成熟得足以使之可以设想在运营商网络中的运行部署的开发阶段的规格以及分析文档定义。但是,引入该新一代协议造成了显著的问题,这些问题涉及需要保证IPv6协议与已经部署在IP网络中的IPv4协议之间的互操作性与互连(interwork)。在现有技术的当前阶段,人们已经提出了对这些问题的解决方案,但是这些解决方案具有以下缺点,其运行不仅在“服务”级上(具体在应用层上),而且在“传输”级上(在IP层上)。在传输层中, 因特网工程特别工作组(IEFT)已经提出并且标准化了一些机制,例如NAP-PT技术,以及各种隧道技术,其将IPv6数据封装在IPv4数据报中或者相反。另外,必须更新与适配体系结构与服务平台,以使之能够在位于不同类型(IPv4 与IPv6) IP环境中的客户端之间的互连对于最终用户来说尽可能地透明。在其他多媒体活动中,IEFT已经标准化了会话起始协议(SIP),其主要功能为发起、修改、以及终结多媒体会话。SIP为本发明应用的一个有趣的例子。其基于服务描述协议(SDP),用来产生对与相关会话有关的参数的描述。一旦呼叫双方之间的协商成功,则双方可以通过激活实时传输协议(RTP)来交换媒体流。RTP会话参数通过SIP信令消息(主要在SDP部分)预先商定。它们主要是在要设置的通信链路任一端处使用的终点地址与端口号。自从在请求评论(RFC) 2543中描述了 SIP的第一个版本以来,其就与IPv6兼容。 在理论上,SIP的实现会容易地解码IPv4与IPv6地址,其可以被引入到诸如“CONTACT”(联系)头部等特定字段或者SDP部分的头部中。但是,如果两个终端都无法在相同的IP环境下联系,即,如果一个具有IPv4地址而另一个具有IPv6地址,则存在此类地址可能会阻止设置SIP呼叫。由此,当IPv4用户代理发起与IPv6用户代理A (其在IPv4定位服务器(也称为“注册方”R)处注册)的IP会话时,结果的SIP消息交换如图Ia所示,其中寻求联系第二用户代理B的第一用户代理A使用其特有IPv4地址向代理服务器PS发送“ INVITE”(邀请)消息。此处,代理服务器PS附属于只有IPv4的环境。一旦代理服务器PS收到该消息,则代理服务器向定位服务器(也称为注册服务器)提交查询,以取得第二用户代理B的地址。在当前假设下,该地址为IPv6地址,并且由于代理服务器PS属于只有IPv4类型,所以代理服务器PS不知道到该目的地的路由。然后,向用户代理A发送错误消息,以指示不可能在第一用户代理A与第二用户代理B之间设置SIP会话。该错误消息为图Ia中所示的 “ (2)404 No Route” (无路由)消息。如果现在假设代理服务器PS可以联系第一用户代理A的定位地址与第二用户代理B的定位地址,则会发生另一 SIP消息交换,其中第二用户代理B试图第一用户代理A,如图Ib所示。在这种情况下,代理服务器PS将从第二用户代理B收到的“INVITE”消息路由传送给第一用户代理A的定位地址。该“INVITE”消息包含SDP提议,其在第二用户代理B提议的编解码器(编码器/解码器)之外,还描述了第二用户代理B可以用来发送和接收RTP 流的RTP端口号与地址。在图Ib中,该地址是IPv6地址。由此,当第一用户代理A收到该 “INVITE”消息时,其只能拒绝开放会话,因为其是IPv4客户端。依赖于其如何实现,其最多可以向回发送错误信息,以指示其不支持到第二用户代理B的IP地址的网络连接。由此, 在以上参照图Ia与图Ib描述的任何一个例子中,都无法设置SIP会话。不同类型的IP地址共存可能会影响与以上以图形显示和描述的那些呼叫不同的呼叫。由此,到双栈(DS)客户端的呼叫在媒体流交换中也可能会无法终结,其中DS用户代理能够处理IPv4与IPv6地址类型两者。这是因为基本SIP适于指示用来发送或者接收媒体流的仅一个IP地址。为了克服这个问题,RFC 4092引入新的语义特征,包括“sdp-anat” 标志,以使用户代理能够宣布和/或发现一或多个地址类型。由此,DS用户代理可以在其 STP提议中指示其IPv4地址与IPv6地址两者。通过这种技术,来自或者去向DS用户代理并且去向或者来自单版本客户端(即仅与IPv4协议兼容、或者仅与IPv6协议兼容的客户端)的所有呼叫可以成功地终结SIP会话。在意图传送给定呼叫的通信链路末端处的两个节点为单版本节点的情况下,相关的SIP电话服务运营商可以使用应用层网关(ALG)应用,来修改SDP提议,以保证所支持的地址类型和在收到的SIP消息中包含的类型之间的一致性。为此目的,SIP服务器使用关于传输层的、并且不是SIP所特有的信息,来路由传送呼叫,或者决定使用ALG应用来改变 SDP提议的内容。SIP服务器的此类行为未被标准覆盖。一般地讲,电信业还没有详细地研究与互连两个异构用户代理(即不同IP类型的用户代理)相关的问题。具体地,除在RFC 4091与RFC 4092中描述的ANAT提议(其解决了部分问题)之外,没有IETF文档描述SIP服务器的行为来路由传送连接在两个不同IP 环境下的两个用户代理的呼叫。另外,现有技术具有以下缺点-使用ALG应用与附加功能未被文档化;代理服务器PS没有RFC3261指定的手段来促进该任务;-代理服务器PS必须使用来自网络层(在本文档中也称为传输层)的信息来进行关于服务层的判定;因此,其必须考虑消息的源地址之外的、用来联系代理服务器的地址, 或者检查SDP部分;这会造成使代理(其被预先配置来仅处理服务级信息)性能下降的风险;
-使用这些地址未被优化获得成功的会话的一种方法为使参与呼叫的两个用户代理都能够具有两种类型的地址,从而SDP协商总会成功,但是这会造成优化对运营商可用地址空间的利用的问题(尤其在IPv4中)。-解决方案不通用由代理服务器PS进行呼叫路由传送与干涉的想法依赖于在传输层上部署的互连解决方案。-代理服务器PS无法确定用户代理属于IPv4、IPv6、还是DS类型。本发明人通过实践得到以下结论尽管从以上研究中出现了需求,但是在现有技术的当前状态下,没有简单的方法来使IP通信网络中的通信部件能够识别与给定用户代理关联的地址类型,这就解释了为什么人们当前研究的管理异构节点之间的呼叫的大部分技术都有不足之处,并且没有处理使能异构呼叫的服务需求。在提出使之能够容易地识别给定用户代理支持的地址类型的传送方法时,本发明提供了一种没有以上缺点的解决方案。

发明内容
本发明的用来在异构节点之间传送数据的方法特征在于,该方法包含以下步骤 在设置所述节点之间的通信会话之前,在一个所述节点中,将类型指示符插入到由用户代理发送的消息中,所述类型指示符表示与所述用户代理关联的地址的类型。本发明提供了一种快速方式来识别必须相互通信的两种类型的用户代理之间不兼容的风险,并且考虑到如果必要则克服此类不兼容性。具体地,本发明使诸如上述的代理服务器能够迅速识别必须相互通信的两种类型的用户代理,从而使所述服务器能够识别、并且在适当的地方部署有效地设置那些代理之间的通信会话所需的资源,而不管这些代理是否属于相同类型。此处称用户代理的“类型”指用户代理能够通过容纳它的SIP节点的(多个)网络接口使用的因特网协议的一或多个版本(例如IPv4、IPv6)。如果节点A所容纳的用户代理类型与节点B所容纳的用户代理类型不同,则称两个节点A与B是异构的。由此,本发明的协议可以进一步包含以下步骤根据三种IP类型纯IPv4、纯 IPv6、或者双栈,归类发送类型指示符的用户代理。在本发明的一个特定实施例中,由所述用户代理提出执行所述插入步骤。这使用户代理能够将其发送或者接收的呼叫限于对应的网络接口与因特网协议类型。有利的是,类型指示符可以采用编码数字值的形式,其表示IPv4协议、IPv6协议、 或者双栈(IPv4+IPv6)协议。此类数字值可以非常容易地以几个比特编码,因此实现本发明不会造成出于呼叫目的而交换的消息量的任何显著增加。在本发明的第一有利变体中,上述方法进一步包含以下步骤与相关用户代理的标识符一起存储所述类型指示符。在诸多情况中,该存储步骤在数据库中创建并且更新着参考表,用来容易地直接识别与为其存储了类型指示符的每个用户代理关联的IP地址类型。该数据库可以由每个用户代理自发地在初始化连接时馈送,或者通过周期性地更新来馈送,并且由定位服务器管理,用户代理在初始化通信会话时或者在注册周期过期时在该定位服务器注册。在本发明的可以替换或者与第一变体结合使用的第二有利变体中,上述方法进一步可以包含在关联于发送了所述邀请消息的用户代理的类型指示符与关联于所述邀请消息的目的地用户代理的类型指示符之间不兼容的情况下,转换在邀请进入与用户代理的通信的消息中包含的地址的步骤。根据本发明的这一变体,简单地比较与主叫和被叫用户代理关联的类型指示符使之即使在试图建立主叫和被叫方之间的连接之前就能够补偿其间的任何不兼容。例如,有利的是,本发明用于称为VoIPdP上语音)的IP电话应用,或者一般地编组在交谈服务的名目之下。这样,本发明解决了 RFC 3162定义的、并且为IPv4客户端与IPv6客户端两者都部署的、基于SIP的信令服务的一般问题。这些服务可以是语音、视频、现场(presence)等等服务。如上所述,本发明提出了一种简单的机制,有利于在一个附属于IPv4域、另一个附属于IPv6域的异构客户端之间设置SIP会话。通过使用本发明,SIP代理服务器能够路由传送SIP呼叫,并且能够进行干预以修改(或使之修改)SIP消息中传送的、RFC 2327定义的SID提议的内容,从而使之能够在异构节点之间设置会话。相反,如果不实现本发明,则SIP代理服务器必须访问应用层之外的信息,具体为涉及网络层的信息,以指导其选择呼叫路由和优化对ALG应用(其负责修改 SIP消息以获得成功的SIP会话)的使用。如果不使用同构协议栈,则在SIP服务器和ALG 应用不干预的情况下,某些SIP会话无法发生。本发明允许互连异构SIP节点,并且简化以及因此促进了 SIP电信系统中的呼叫路由。具体地,本发明优化了对IP地址的使用,并且不要求SIP代理服务器对SIP消息的处理以依赖于来自传输层的信息来判定服务器收到的SIP消息所要求的处理。在此处所参考的应用例子特有的一种实施例中,可以将类型指示符插入到SIP查询消息中包含的“CONTACT”字段中。将类型指示符引入查询消息会通知定位服务器以及代理服务器用户代理中可用的网络接口所支持的IP地址的类型。另外,代理服务器然后可以使用该类型指示符来处理查询消息,从而将其路由传送到其目的地,而不用访问网络层中的信息。将上述本发明第一变体调换应用到该例子会得到用户代理将其类型指示符插入到"REGISTER”消息中。由此,当收到“REGISTER”消息时,定位服务器行进到存储注册地址、注册过期地址、以及类型指示符。其也可以存储其他数据。将上述本发明第二变体调换应用到该例子会得到在关联于发送了所述“INVITE” 消息的用户代理的类型指示符与关联于所述“INVITE”消息的目的地用户代理的类型指示符之间不兼容的情况下,代理服务器转换在“ INVITE”消息中包含的地址。具体地,如果发送和接收“INVITE”消息的用户代理属于不同类型,则会产生此类不兼容性。在本发明的此类应用中,在不同类型的两个用户代理之间,必须使用应用层上的网关进行呼叫路由处理以修改呼叫消息的代理服务器执行根据以下进行此类处理-或者根据在由定位服务器更新的、并且包含主叫和被叫用户代理类型的性质的注册数据库中存储的分类;-或者根据在包含被叫用户代理类型的性质的注册数据库中存储的分类、以及在主叫用户代理发送的“INVITE”消息中包含的类型指示符。从以上描述可以看出,作为通过其在上述应用中的实现而直接获得的产品,本发明还涉及承载包含表示与发送该消息的用户代理关联的IP地址的性质的类型指示符的查询消息的任何信号,该消息例如可以为“REGISTER”、"INVITE”、或者“2000K”消息。具体地, 可以将类型指示符插入到“CONTACT”字段中。本发明的硬件方面涉及一种在异构节点之间传送数据的系统,特征在于该系统包含用于以下的部件在设置所述节点之间的通信会话之前,在一个所述节点中,将类型指示符插入到由用户代理发送的消息中,所述类型指示符表示与该用户代理关联的地址的类型。本发明的硬件方面还涉及形成这样的数据传送系统的终端,包括用于以下的部件在所述节点中,将类型指示符插入到由用户代理发送的消息中,所述类型指示符表示与该用户代理关联的地址的类型。本发明的硬件方面的一种变体涉及上述的传送系统,进一步包含用于以下的部件根据发送查询消息的代理的类型指示符、以及用来存储所述分类的数据库,分类与归类所述用户代理。本发明的硬件方面的另一种变体涉及上述的传送系统,进一步包含用于以下的部件比较主叫用户代理与被叫用户代理所特有的类型指示符。构成用来实现本发明的部件的本发明的另一方面涉及一种计算机程序,包含一系列程序代码指令,当所述程序在计算机中执行时,用来执行上述方法的特定步骤。具体地,本发明提供一种代理服务器,具有用于在主叫用户代理与被叫用户代理之间路由SIP呼叫的装置,其特征在于它还包括以下装置-用于识别所述两个用户代理的IP地址类型(IPv4、IPv6、或者包含IPv4与IPv6 的双栈)的装置,所述识别基于为了当前或以前的呼叫,由主叫用户代理发送的SIP查询消息中包含的 “CONTACT”字段中包含的IP地址类型指示符;在包含被叫用户代理类型的注册数据库中存储的分类,-用于识别以及在合适时部署在那两个用户代理之间有效建立通信会话所必需的资源的装置。代理服务器还包括以下装置用于基于由位置服务器更新的注册数据库中存储的分类识别所述主叫和被叫用户代理的类型、并包含所述两个用户代理的类型的装置。代理服务器还包括以下装置用于对在相互具有不同的类型的两个用户代理之间的SIP消息中传送的SDP提议的内容进行修改或使其被修改的装置。


从以下结合附图的作为非限定性例子给出的描述,可以更好地理解本发明,其中
图Ia与Ib涉及现有技术;图2作为说明显示本发明方法的基本步骤的流程图;图3作为说明显示注册IPv4与IPv6用户代理的第一个例子;图4作为说明显示注册双栈用户代理的第二个例子;以及图5显示本发明的系统,用来互连异构SIP节点,其在以下情况下运行用户代理发送“REGISTER”(注册)消息给定位服务器,并且“ INVITE”(邀请)消息中转通过代理服务器。
具体实施例方式以下参照图2及随后的附图,更详细地描述本发明的方法。一般来说,例如由IPv4、IPv6、或者双栈(DS)混合IP终端形成的每个异构节点都包括特定类型的用户代理UA,该类型对应于用户代理通过相关终端可用的(多个)网络接口能够使用的IP的版本。如图2所示,本发明的方法,在步骤10,在用户代理UA发送的查询消息M中插入类型指示符“atypes”。在该插入之后,查询消息表示为M( “atypes”)。此类查询消息例如包括至定位服务器(也称为“注册方”)R的注册消息。也可以有发送给代理服务器PS的消息,例如提示进入与另一用户代理的通信的消息。在发送(1 其中插入了类型指示符的消息之后,本发明的方法根据查询消息 M( "atypes")包含的时间指示符“atypes”,处理(11)查询消息M( “atypes”)。该处理在单元12中进行,单元12可以为用于注册消息的定位服务器或者用于提示进入与另一用户代理的通信的消息的代理服务器。在代理服务器12中进行的处理11路由传送该消息,代理服务器12不必访问传输层中的信息。具体地,类型指示符“atypes”显然包含编码数字数据,其表示发送该消息的用户代理可用的网络接口以及因特网协议的性质,从而将该信息提供给定位服务器与代理服务器12 -以使定位服务器12能够行进到注册11与用户代理的标识符相关的类型指示符, 从而维护提供关于可能试图通信的各种用户代理的类型的信息的数据库
-以使代理服务器12能够在无法访问用来发送M("atypes")消息的传输层中的任何信息的情况下进行路由传送11。以下参照图3与图4描述图2所示的本发明的方法的步骤10的实现的例子。在一种特定类型的实施例中,将类型指示符“atypes”插入到SIP查询(具体有 “REGISTER”和“INVITE”查询)的“CONTACT”(联系)字段中。为了说明该指示符的定义, 以下指示了 RFC 3162定义的“CONTACT”字段的描述ABNF。在以下描述ABNF中,现有技术中公知的、并且在RFC 3162中描述的元素为普通字体,而附加的描述性元素为粗体。以下表Tl列出了全部新描述ABNF。表 Tl
8Contact=( Contact / MmM) HCOLON
(STAR / (contact-param "COMMA contact-param))) COMMA atypes
contact-param=(name-addr / addr-spec) *(SEMI contact-params)
name-addr=[display-name] LAQUOT addr-spec RAQUOT
addr-spec=SIP-URI / SIPS-URI / absoluteURI
display-name=* (token LWS)/ quoted-string
contact-params=c-p-q / c-p-expires / contact-extension
c-p-q= q EQUAL qvalue
c-p-expires= expires》EQUAL delta-seconds
contact-extension=generic-param
delta-seconds=1 *DIGIT
atypes= atypes EQUAL 4/6/0用户代理可能将呼入的或者呼出的呼叫限制在-其IPv4 接 口上;-其IPv6 接 口上;-或者两种类型的接口上,如果其配备有双栈(此)接ロ(即与两种协议版本IPv4 与IPv6都兼容的接ロ)的话。该操作通过类型指示符“atypes"来通知。可以配置用户代理,从而通过将类型指示符“atypes”设置为适当的值,不宣布有 效的可用性。请注意只有当所配置的地址之ー属于全局范围(IPv6协议区分“链路局部” 与“全局”类型地址)吋,才将IPv6接ロ看做为可用的。局部范围的地址无法被路由传送 到局域网之外,这与全部范围的地址不同,其可以被路由传送到局域网之外(即连接到局 域网之外)。在注册期间,SIP用户代理发送具有在表Tl中列出的包含附加头部“atypes” 的扩展“CONTACT”字段的“REGISTER”消息,“atypes”可以取以下值-4,如果用户仅支持IPv4 ;-6,如果用户仅支持IPv6 ;-0,如果用户具有双栈功能。在用户代理发送给注册服务器R的“REGISTER”消息中,用户代理可以通过将 “atypes”类型指示符设置为4 (例如,即使用户代理属于双栈(此)类型),向代理服务器PS 指示其仅支持IPv4协议,或者通过将“atypes”类型指示符设置为6,向代理服务器PS指示 其仅支持IPv6协议,或者通过将“atypes”类型指示符设置为0,向代理服务器PS指示其支 持双栈协议。在图3中,R与R6分別指示与用户代理A与B相关的定位服务器。IPv4用户代理的例子假定用户代理A为IPv4用户代理,具有地址192. 165. 25. 2。如图3所示,用户代 理A向定位服务器R发送表T2中列出的“(I)REGISTEWfig 表 T2REGISTERsip:r.test.evi SIP/2.0
Via:SIP/2.0/UDP 192.165.25.2:5062;branch=z9hG4bK00e31d6ed
Max-Forwards:70
Content-Length:0
To:A <sip:A@test.evi>
From:A <sip: A@test.evi >;tag=ed3833bd7363e68
Call-ID:a8a83b610ae5d242289dfclc78b7fld8@test
CSeq:1830746364 REGISTER
Contact:A <sip:A@192.165.25.2:5062>;expires=900, atypes=4
注册服务器R以表T3中列出的“(2) 2000Κ”消息回应用户代理A 表Τ3
SIP/2.0 200 OK
Call-ID:a8a83b610ae5d242289dfclc78b7fld8@evi.biz
CSeq:1830746365 REGISTER
From:A <sip: A@test. evi>;tag=ed3 83 3bd7363e68
To:A <sip:A@test.evi>;tag=3ab7fe89d998709
Via:SIP/2.0/UDP 192.165.25.2:5062;branch=z9hG4bK00e31d6ed
Content-Length:0
Contact:A <sip:A@192.165.25.2:5062>;expires=900, atypes=4
IPv6用户代理的例子
假定用户代理B为IPv6用户代理,具有地址2001:688: Iffb:ff80:: 2。如图3所
示,用户代理B向定位服务器R6发送表T4中列出的“(1) REGISTER”消息
表T4
REGISTER Via:
Max-Forwards:
Content-Length:
To:
From:
Call-ID:
CSeq:
Contact:
sip:r6.test.evi SIP/2.0 SIP/2.0/UDP :5062;branch=z9hG4bK00e31d6ed
70
0
B <sip:B@test.evi>
B <sip:B@test.evi >;tag=ed3833bd7363e68 a8a83b610ae5d242289dfclc78b7fld8@test.evi 1830746364 REGISTER
B <sip:B@[2001:688:lffb:ff80::2]:5062>;expires=900, atypes=6
注册服务器R以表T5中列出的‘ 表T5
(2) 2000K”消息回应以确认注册SIP/2.0 200 OK
Call-ID:a8a83b610ae5d242289dfclc78b7fld8@evi.biz
CSeq:1830746365 REGISTER
From:B <sip:B@test.evi >;tag=ed3833bd7363e68
To:B <sip:B@test.evi >;tag=3ab7fe89d998709
Via:SIP/2.0/UDP[2001:688:lffb:ff80::2]:5062;branch=z9hG4bK00e31d6ed
Content-Length:0
Contact:B <sip:B@[2001:688:lffb:ff80::2]:5062>;expires=900, atypes=6“CONTACT”字段中的IP地址可以为与类型指示符字段“atypes”中指示的类型不同的类型的唯一地址。将类型指示符“atypes”设置为6的用户代理可以在“CONTACT”字段中使用IPv4地址,或者将类型指示符“atypes”设置为O的用户代理可以仅宣布一个地址,而非两个地址,如下所述。在“CONTACT”字段中包含的地址由SIP代理服务器使用来路由传送信令消息。媒体消息通过IPv6接口传送给用户代理,因为用户代理已经向其代理服务器PS宣布为IPv6用户代理(根据插入到其发送给代理服务器的消息中的类型指示符, 或者根据定位服务器为该用户代理存储的类型指示符)。在“CONTACT”字段中R有一个地址的DS用户代理的例子参照图4,假定用户代理为双栈(DS)用户代理,具有地址2001:688: lffb:ff80::2 /192. 168. 25. 5。如图 4 所示-在注册阶段期间,DS用户代理向其定位服务器R发送表T6中列出的“(1) REGISTER” 消息表T6REGISTERsip:r.test.evi SIP/2.0
Via:SIP/2.0/UDP 192.168.25.5:5062;branch=z9hG4bK00e31d6ed
Max-Forwards:70
Content-Length:0
To:DS <sip:DS@test.evi>
From:DS <sip:DS@test.evi >;tag=ed3833bd7363e68
Call-ID:a8a83b610ae5d242289dfclc78b7fld8@test.evi
CSeq:1830746364 REGISTER
Contact:DS <sip:DS@192.168.25.5:5062>;expires=900, atypes=0定位服务器R6以表T7中列出的“ Ο)2000Κ”消息回应,以确认注册 表Τ7
Call-ID:a8a83b610ae5d242289dfclc78b7fld8@evi.biz
CSeq:1830746365 REGISTER
From:DS <sip:DS@test.evi >;tag=ed3833bd7363e68
To:DS <sip:DS@test.evi >;tag=3ab7fe89d998709
Via:SIP/2.0/UDP 192.168.25.5:5062;branch=z9hG4bK00e31d6ed
Content-Length:0
Contact:DS <sip:DS@192.168.25.5:5062>;expires=900, atypes=0指示符“atypes”的处理当收到“REGISTER”消息时,定位服务器R还存储记录的地址(AOR)、注册过期时间、以及类型指示符“atypes”。该数据(也可能有其他数据)被存储在定位服务器管理的注册数据库中。其可能由来自同一用户代理的其他“REGISTER”消息更新。该处理替代了最初在RFC 3261中指定的处理。使用来自类型指示符“atypes”的信息,定位服务器将其用户代理分为三类-纯IPv4;-纯IPv6;-双栈(DS)。代理服务器通过简单地询问定位服务器管理的注册数据库,就可访问该分类。代理服务器还可以通过简单地读取用户代理插入到给代理服务器的消息中的类型指示符,来进行该分类,如下所述。用户代理还可以在其发送“INVITE”消息时设置类型指示符“atypes”。在以下情况(情况-1)下,代理服务器PS必须在不修改SIP消息的内容的前提下发送SIP消息-IPv4 至 IPv4;-IPv6 至 IPv6;-IPv4 至 DS 以及 DS 至 IPv4 ;-IPv6 至 DS 以及 DS 至 IPv6 ;-DS 至 DS在上述情况-1的情况下,称用户代理为兼容的,这是因为其属于相同类型(或者更一般地,对于DS用户代理来说,因为其至少有一个类型是相同的),并且因此能够使用相同的IP版本进行对话。只有在以下情况(情况-2)下,才修改SIP消息,该SIP消息在修改之后使相同类型的被叫与主叫用户代理的IP地址可用-IPv6 至 IPv4;-IPv4 至 IPv6。在上述情况-2的情况下,称用户代理为不兼容的,这是因为其不属于相同类型, 并且因此不能通信。对于呼叫路由传送以及确定使用ALG应用或者修改SIP消息以获得不同类型的两个用户代理之间的成功的会话,代理服务器(PQ可以
-或者检查定位服务器维护的注册数据库在这种情况下,代理服务器PS询问定位服务器R,以询问主叫和被叫用户代理类型。然后在为情况-2的一部分的情形下,代理服务器PS可以确定修改SIP消息的SDP内容,以使与被叫方支持的地址类型一致。图5中所示的例子通过IPv4用户代理A与IPv6 用户代理B之间的呼叫,显示了这种操作模式。互连IPv4与IPv6网络的功能由节点IN表示,节点IN作为中继站,并且具体地执行IPv4数据报与IPv6数据报之间的协议转换。假设用户代理B为IPv6用户代理。在服务开始时,用户代理B通过将类型指示符 "atypes"设置为6,在定位服务器R上注册,并且用户代理A通过将类型指示符“atypes” 设置为4,在定位服务器R上注册。为了简单起见,在图5中未显示该初始注册阶段。在IPv6环境下中,通过IPv6地址知道用户代理B,该IPv6地址被IPv6_IPv4互连机制(例如NAT-PT机制)转换为IPv4地址。然后,识别用户代理B为IPv6用户代理,识别用户代理A为IPv4用户代理。如果用户代理A试图设置与用户代理B的会话,则交换以下SIP消息-RE⑴用户代理A向代理服务器PS发送“INVITE”消息;-RE (2)代理服务器PS询问定位服务器R,以得到用户代理B的定位地址以及在注册阶段指示的用户代理A与B的类型指示符“atypes” ;-RE(3)定位服务器R回送用户代理B的地址、用户代理B的类型指示符 “atypes”、以及用户代理A的类型指示符“atypes” ;-RE (4)代理服务器PS比较用户代理A与B的两个类型指示符“atypes”。根据定位服务器R上可用的类型分类,代理服务器PS验证A为IPv4用户代理,B为IPv6用户代理。然后,代理服务器PS启动适配机制,以修改用户代理A的初始SDP提议,从而其包含 IPv6地址。然后,代理服务器PS将修改的“ INVITE”消息发送给定位服务器R所指示的用户代理B的地址。如果没有该程序,则代理服务器PS将无法将呼叫路由传送给用户代理B,也无法启动将消息正确地路由传送给用户代理B所必须的适配功能。代理服务器PS会把查询回送给用户代理B而不修改它,并且在这种情况下,将不会发生用户代理A与B之间的SIP会话。(参看图lb)-或者检查注册数据库、以及在“INVITE”消息中传送的类型指示符“atypes”在这种情况下,代理服务器PS询问定位服务器R,以得到被叫用户代理B的类型。 主叫用户代理A的类型从其发送的“INVITE”消息判断。然后,代理服务器PS确定修改SIP 消息的内容,以使之与被叫用户代理B支持的地址类型一致;该情况为情况-2情况的一部分。对于该选项,用户代理可以限制对于每个会话使用的地址的类型。参照图5描述的例子通过IPv4用户代理与IPv6用户代理之间的呼叫显示了这种其他操作模式。假设用户代理B为IPv6用户代理。在服务开始时,用户代理B通过将类型指示符 “atypes”设置为6,在定位服务器R上注册,并且用户代理A通过将类型指示符“atypes”设置为4,在定位服务器R上注册。此处,识别用户代理B为IPv6用户代理,识别用户代理A 为IPv4用户代理。如果用户代理A试图设置与用户代理B的会话,则交换以下SIP消息-I(I)用户代理A向代理服务器PS发送“INVITE”消息;-1(2)代理服务器PS询问定位服务器R,以得到用户代理B的定位地址以及在注册阶段指示的用户代理B的类型指示符“atypes”;-1(3)定位服务器R回送用户代理B的地址、以及用户代理B的类型指示符 "atypes";-1(4)代理服务器PS从“1(1) INVITE”查询中提取用户代理A的类型指示符 “atypes”,并且将其与用户代理B的类型指示符“atypes”进行比较。根据定位服务器R上可用的类型分类,代理服务器PS验证用户代理A为IPv4用户代理,用户代理B为IPv6用户代理。然后,代理服务器PS启动适配机制,以修改用户代理A的初始SDP提议,从而其包含IPv6地址。然后,代理服务器PS将修改的“INVITE”消息发送给定位服务器R所指示的用户代理B的地址。为了使用图5中所示的协议,有利的是,代理服务器PS包含模块M1,用来比较与主叫用户代理和被叫用户代理相关的类型指示符。如果模块Ml确定主叫用户代理和被叫用户代理属于不同类型,则代理服务器PS激活模块M2,以调用资源来修改主叫用户代理的IP 地址。代理服务器PS外部的修改资源在图5中未显示。可以计算机程序形式实现模块M1 与M2。为了简单起见,在图5中以相同的数字字母标记指示它们。本发明还包括计算机程序Mtl,由计算机或者专用设备(例如IP终端的IPv4、IPv6、 或者双栈用户代理)执行。当执行计算机程序Mtl时,其代码指令在用户代理UA发送的查询消息中插入表示该用户代理US中可用的网络接口所支持的一或多个IP地址的类型的类型指示符“atypes”,如上所述以及图2、3、4所示。如上所述,本发明还包括计算机程序M1J2,其包括一系列指令,由计算机或者专用设备(例如代理服务器PQ执行。当执行程序M1J2时,这些指令处理用户代理向代理服务器发送的、并且包含表示该用户代理中可用的网络接口所支持的一或多个IP地址的类型的类型指示符“atypes”的查询消息。在不访问在传输层中包含的信息的情况下,这种处理将查询消息路由传送到其目的地,如上所述以及图2至5所示。如上所述,本发明还包括计算机程序M3,其包括代码指令,由计算机或者专用设备 (例如定位服务器R)执行。当执行程序M3时,这些指令从用户代理发送的注册消息中提取类型指示符,并且在注册数据库中与用户代理的标识符相关地存储该类型指示符。这些指令还将用户代理分类为三个IP类别之一(IPv4、IPv6、双栈),如上所述以及图2至5所示。
权利要求
1.一种代理服务器,具有用于在主叫用户代理与被叫用户代理之间路由SIP呼叫的装置,其特征在于它还包括以下装置-用于识别所述两个用户代理的IP地址类型(IPv4、IPv6、或者包含IPv4与IPv6的双栈)的装置,所述识别基于为了当前或以前的呼叫,由主叫用户代理发送的SIP查询消息中包含的“CONTACT”字段中包含的IP地址类型指示符;在包含被叫用户代理类型的注册数据库中存储的分类,-用于识别以及在合适时部署在那两个用户代理之间有效建立通信会话所必需的资源的装置。
2.如权利要求1所述的代理服务器,其特征在于它还包括以下装置用于基于由位置服务器更新的注册数据库中存储的分类识别所述主叫和被叫用户代理的类型、并包含所述两个用户代理的类型的装置。
3.如权利要求1所述的代理服务器,其特征在于它还包括以下装置用于对在相互具有不同的类型的两个用户代理之间的SIP消息中传送的SDP提议的内容进行修改或使其被修改的装置。
全文摘要
本发明涉及一种一种代理服务器,具有用于在主叫用户代理与被叫用户代理之间路由SIP呼叫的装置,其特征在于它还包括以下装置-用于识别所述两个用户代理的IP地址类型(IPv4、IPv6、或者包含IPv4与IPv6的双栈)的装置,所述识别基于为了当前或以前的呼叫,由主叫用户代理发送的SIP查询消息中包含的“CONTACT”字段中包含的IP地址类型指示符;在包含被叫用户代理类型的注册数据库中存储的分类;以及-用于识别以及在合适时部署在那两个用户代理之间有效建立通信会话所必需的资源的装置。
文档编号H04L29/08GK102413147SQ201110440378
公开日2012年4月11日 申请日期2007年2月15日 优先权日2006年2月28日
发明者穆罕麦德.鲍卡代尔, 约恩.诺伊斯特 申请人:法国电信公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1