IP容忍和信令互通的制作方法

文档序号:16310758发布日期:2018-12-19 05:16阅读:171来源:国知局
互联网协议(ip)版本4(ipv4)是一种通过互联网提供通信能力的网络层协议。在ipv4中,每个ip地址都是32位长,允许43亿个唯一地址来标识设备。现在有这么多的移动通信设备在使用中,在ipv4的地址用尽之前需要额外的ip地址。互联网协议版本6(ipv6)作为对ipv4的替代,通过改变分配地址的方式,增大了可用ip地址的数量。在ipv6中,ip地址长度为128位。针对会话发起协议(sip)的现有注释请求(rfc)指出,较新的ipv6方案需要考虑ipv4的地址,而较旧的ipv4实现也必须支持ipv4和ipv6这两者。尽管许多较新的实现在管理地址(administeredaddress)为ipv4或ipv6时支持两种类型的ip地址,但这种方法并不通用。换句话说,在某些情况下,当被配置为ipv6设备时,较新的实现将不支持消息中的ipv4地址;并且当被配置为ipv4设备时不支持ipv6地址。而且,大多数较旧的实现(其数量较多且仅支持ipv4)不容忍在sip消息传递中使用ipv6地址。如果ipv6地址包含在sip消息中,则此类实现可能无法正常工作,或者在最坏的情况下可能会崩溃,而不是处理ipv6寻址。需要一种识别ip版本不容忍的方法,以便在混合的ipv4/ipv6环境中提供更好的互通。技术实现要素:这些和其他需求可通过本公开的各种实施例和配置来解决。在尝试在第一通信实体和第二通信实体之间建立通信会话时,接收第一消息。例如,第一消息可以是sipinvite消息。基于来自第一通信实体和/或第二通信实体的注册消息,确定第一通信实体或第二通信实体中的至少一个是互联网协议(ip)版本不容忍的。响应于确定第一通信实体或第二通信实体中的至少一个是ip版本不容忍的,适配消息(例如,sipinvite消息)中的一个或多个ip地址,以便建立通信会话。该适配删除一个或多个ip地址/将其更改为不同的ip版本,以确保正确的ip兼容性。短语“至少一个”、“一个或多个”、“或”和“和/或”是在操作中既是连接又是分离的开放式表达。例如,表达“a、b和c中的至少一个”、“a、b或c中的至少一个”、“a、b和c中的一个或多个”、“a、b或c中的一个或多个”、“a、b和/或c”和“a、b或c”中的每一个都表示单独的a、单独的b、单独的c、a和b一起、a和c一起、b和c一起或a、b和c一起。术语“一”或“一个”实体是指一个或多个该实体。如此,术语“一”(或“一个”)、“一个或多个”和“至少一个”在本文中可以互换使用。还应该指出,术语“包括”、“包含”和“具有”可以互换使用。如本文所使用的,术语“自动”及其变体指的是任何过程或操作,其通常是连续的或半连续的,当执行过程或操作时无需人工输入的物质即可完成。然而,如果在执行过程或操作之前接收到输入,则过程或操作可以是自动的,即使过程或操作的执行使用了人工输入的物质或非物质。如果人工输入会影响过程或操作的执行方式,那么这些输入被认为是物质的。同意过程或操作的执行的人工输入不被视为“物质的”。本公开的各方面可以呈现完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施例的形式,所有前述的各项在本文中都可以一般性地称为“电路”、“模块”或“系统”。可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子的、磁性的、光学的、电磁的、红外的或半导体系统、装置或设备,或前述的各项的任何适当的组合。计算机可读存储介质的更具体的实例(非穷举列表)将包括以下内容:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、光纤、便携式光盘只读存储器(cd-rom)、光存储设备、磁存储设备或前述的各项的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是任何包含或存储由指令执行系统、装置或设备使用或与其结合使用的程序的有形介质。计算机可读信号介质可以包括其中(例如在基带中或者作为载波的一部分)包含有计算机可读程序代码的传播数据信号。这样的传播信号可以呈现多种形式中的任何形式,包括但不限于电磁、光学或其任何适当的组合。计算机可读信号介质可以是不是计算机可读存储介质并且可以传送、传播或传输供指令执行系统、装置或设备使用或与其结合使用的程序的任何计算机可读介质。体现在计算机可读介质上的程序代码可以使用任何适当的介质来传输,所述介质包括但不限于无线、有线、光缆、rf等,或前述的各项的任何适当组合。如本文所使用的,术语“确定”、“计算”及其变体可互换使用,并且包括任何类型的方法、过程、数学运算或技术。在此使用的术语“装置”应给予根据35u.s.c.第6段,第112(f)节和/或第112节的其最宽的可能解释。因此,包含术语“装置”的权利要求应涵盖本文阐述的所有结构、材料或动作及其所有等同物。进一步,结构、材料或动作及其等同物应包括
发明内容、附图说明、具体实施方式、摘要和权利要求本身中描述的所有内容。如本文所使用的术语“通信实体”可以是作为对话中的端点的任何实体。通信实体可以是通信端点、背靠背用户代理、通信系统、sip用户代理(sipua)和/或等等。对话是通信实体之间的具有其自己的连接标识符的通信会话(例如,如图4-5所讨论的)。例如,在sip中,对话具有用于每个sip对话的唯一会话标识符。本文所公开的sip消息类型,诸如sipinvite(邀请)消息、sip200ok消息、sipack消息、sipnotify(通知)消息、sipregister(注册)消息、sippublish(发布)消息、sip488notacceptablehere(这里不接受sip488)消息、sipsubscribe(订阅)消息、sipnotify(通知)消息、sippublish(发布)消息和/或等等,都基于根据sip标准定义的标准sip消息。本公开描述了这些消息中的一些可以被修改以便在不同通信实体之间提供ip容忍。当在此引用标准sip消息传递时,本领域的普通技术人员将认识到这些消息的范围限于sip协议,除非另有说明。前述的内容是是为提供对本公开的一些方面的理解的简化概述。本
发明内容既不是对本公开及其各种实施例的广泛的,也不是穷举的概述。本
发明内容既不旨在标识本公开的关键要素,也不旨在描绘本公开的范围,而是以简化的形式呈现本公开的选定概念作为对以下呈现的更详细描述的介绍。如将认识到的,本公开的其他实施例可以单独或组合使用一个或多个上述特征或下面详细描述的特征。而且,虽然本公开是以示例性实施例的形式给出的,但应该理解的是,本公开的各个方面可以分别要求保护。附图说明图1是用于处理ip版本不容忍的第一说明性系统的说明性框图。图2是用于处理通信系统之间的ip版本不容忍的第二说明性系统的说明性框图。图3是具有ip容忍/不容忍的通信端点之间的通信会话中的消息传递流的说明性框图。图4是用于处理会话发起协议(sip)通信会话中的ip版本容忍/不容忍的过程的流程图。图5是用于处理具有有序背靠背用户代理的会话发起协议(sip)通信会话中的ip版本容忍/不容忍的过程的流程图。图6是用于用单个记录地址注册用户的多个通信端点的过程的流程图。图7是用于呼叫分叉过程的流程图,其中使用单个记录地址注册用户的多个通信端点。具体实施方式图1是用于处理ip版本不容忍的第一说明性系统100的说明性框图。第一说明性系统100包括通信端点101a-101n、网络110和通信系统120。通信端点101a-101n可以是或可以包括可在网络110上通信的任何通信端点设备,诸如个人计算机(pc)、电话、视频系统、蜂窝电话、个人数字助理(pda)、平板设备、笔记本设备、网络服务器、媒体服务器、智能电话和/或等等。通信端点101a-101n是通信会话结束于其上的设备。通信端点101a-101n不是促成和/或中继网络中的通信会话的网络元件,例如通信管理器或路由器。如图1所示,任何数量的通信端点101a-101n都可以连接到网络110。通信端点101a-101n可以是会话发起协议(sip)用户代理(sipua)。通信端点101a还包括处理器102a、ip协议栈103a和网络接口104a。虽然未示出,但通信端点101b-101n也可以以与通信端点101a相似配置而包括元件102-104。处理器102a可以是或可以包括任何硬件处理器,诸如微处理器、微控制器、数字信令处理器(dsp)、专用处理器、多核处理器和/或等等。处理器102a可以处理软件/固件指令以实现本文所描述的通信端点101过程。ip协议栈103a可以是或可以包括可用来支持互联网协议(ip)的任何固件/软件。ip协议栈103a可以支持ipv4、ipv6或两者的组合。ip协议栈103a可以进一步支持其他ip版本以及其他协议栈。例如,通信端点101a可以支持sip、h.323、web实时通信(webrtc)协议、会话描述协议(sdp)、实时通信协议(rtcp)和/或等等。网络接口104a可以是或可以包括允许通信端点101在网络110上通信的任何硬件接口,诸如以太网接口、wifi接口、蜂窝接口、光纤接口、无线接口和/或等等。网络110可以是或可以包括任何可发送和接收电子通信的通信设备的集合,诸如互联网、广域网(wan)、局域网(lan)、ip网络电话(voip)、公共交换电话网(pstn)、分组交换网络、电路交换网络、蜂窝网络、这些网络的组合等。网络110可以使用各种电子协议,诸如以太网、互联网协议(ip)、会话发起协议(sip)、h.323、视频协议、webrtc、综合业务数字网络(isdn)等等。因此,网络110是被配置为经由分组和/或电路交换通信传送消息的电子通信网络。通信系统120可以是或可以包括与可以管理网络110上的通信的软件/固件相耦合的任何硬件系统,诸如通信管理器、会话管理器、专用交换分机(pbx)、路由器、交换机、代理服务器121、中心局交换机和/或等等。通信系统120还包括代理服务器121、处理器122、ip协议栈123、网络接口124、一个或多个背靠背用户代理(b2bua)125和ip版本管理器126。代理服务器121可以是或可以包括可管理通信端点101a-101n之间的通信会话的任何代理服务器。在一个实施例中,代理服务器121可以是sip代理服务器。sip代理服务器121可以管理两个或更多个通信端点101之间的通信会话(即,单个sip对话)。处理器122可以是或可以包括任何硬件处理器。例如,处理器122可以与处理器102相同或相似。ip协议栈123可以与通信端点101中的ip协议栈103相同或不同。ip协议栈123支持ipv4和ipv6这两者,而ip协议栈103可以仅支持ipv4或ipv6中的一者或两者。网络接口124可以与网络接口104相同或不同。网络接口124可以包括多个网络接口124。例如,网络接口124可以包括wifi和以太网接口。背靠背用户代理(b2bua)125可以是或者可以包括插入到两个或更多个通信端点101a-101n之间的通信会话中的任何应用程序(application)。例如,b2bua125可以是呼叫记录应用程序、呼叫转移应用程序、呼叫分叉应用程序、转录(transcription)应用程序、转译(translation)应用程序和/或等等。b2bua125可以是ip不容忍的。例如,b2bua125可能在sip消息传递中仅支持ipv4或ipv6。尽管在通信系统120中示出了b2bua125,但是在其他实施例中,b2bua125可以与通信系统120分开,诸如在sip代理服务器或其他sip实体中。ip版本管理器126可以是或可以包括可管理互联网协议的不同版本的任何固件/软件。例如,ip版本管理器126可以在ipv4与ipv6(或ipv6与ipv4)寻址之间进行交换,以保护ip不容忍的通信端点101和ip不容忍的b2bua125。图2是用于处理通信系统120之间的ip版本不容忍的第二说明性系统200的说明性框图。第二说明性系统200包括通信端点101a-101n、网络110a-110c和通信系统102a-120b。图2是通信系统120可以分布在何处的说明性示例。例如,网络110b可以是互联网,网络110a和110c可以是公司网络。在图2中,作为对通信端点101a-101n的附加,一个或多个通信系统120a-120b可以是ip不容忍的。例如,通信系统120a(例如代理服务器121)可以使用ipv4/ipv6,通信系统120b可以仅使用ipv4。在图2中,还可以存在其他设备(未示出)。例如,防火墙可以存在于通信系统120a/120b和网络110b之间。图3是具有ip容忍/不容忍的通信端点101a-101n(通信实体)之间的通信会话中的消息传递流的说明性框图。使用通信端点101a-101n来讨论图3的过程。如本文所讨论的,并且在权利要求中,通信端点101可以是通信实体。然而,在一些实施例中,图3的过程可以是在两个非通信端点之间(例如,如图2所示,其中通信会话可以涉及两个通信系统120,或者其中一个通信实体是b2bua125)。另选地,通信实体中只有一个可以是通信端点101,诸如通信端点101与媒体服务器/b2bua125之间的通信会话。如本文中所定义的,ip容忍/不容忍是通信实体(例如通信端点101、b2bua125、应用程序、通信系统120、代理服务器121和/或其他设备(例如网关、会话边界控制器等))无法在应用层接收和/或响应于不同ip版本的消息的情况。sip、h.323、webrtc、h.624、g711和/或等等是应用层协议的示例。在应用层处理不同的ip版本不同于在网络层处理不同的ip版本(例如,如在iso7层模型中定义的)。ip是网络层协议。网络层上不同版本的ip(特别是ipv4/ipv6)之间的适配是众所周知的,不在本专利申请的范围内。如果设备或应用程序是ip不容忍的,则通信系统120改变一个或多个出站(outbound)消息302/306,以确保可以适当地建立通信会话。以下列出了不同类型的ip容忍/不容忍。·ipv4不容忍:这些通信实体只可以以通过ipv4连接的信令接受和生成ipv4地址。ipv4不容忍的设备/应用程序无法发送/接收包含ipv6地址的消息。·ipv6不容忍:这些通信实体只可以以通过ipv6连接的信令接受和生成ipv6地址。ipv6不容忍的设备/应用程序无法发送/接收包含ipv4地址的消息。·ipv4容忍:作为对ipv4地址的附加,这些通信实体还可以以通过ipv4连接的信令接受和生成ipv6地址。·ipv6容忍:作为对ipv6地址的附加,这些通信实体还可以以通过ipv6连接的信令接受和生成ipv4地址。·ipv46不容忍:这些通信实体支持ipv4和ipv6地址这两者:这些通信实体可以以通过ipv4连接的信令接受和生成仅ipv4地址;以及通过ipv6连接,接受和生成仅ipv6地址。(这种分类仅适用于sip通信实体)·ipv46容忍:这些通信实体支持ipv4和ipv6地址这两者:它们可以以通过ipv6连接的信令接受并生成ipv4地址;以及,通过ipv4连接,接受和生成ipv6地址。(这种分类仅适用于sip通信实体)。下面,在表1中列出了ip容忍/不容忍以及通信系统120是否需要改变一个或多个出站消息302/306以确保ip版本兼容性的不同组合。表1基于表1,通信系统120(代理服务器121/ip版本管理器126)根据需要改变出站消息302/306。在一些实施例中,适配可以是仅适配出站消息302和/或306内的ip地址的部分。在一些情况下,入站消息300和/或304可以包括ipv4和ipv6寻址两者。例如,在具有三方或更多方的电话会议中,ipv4容忍通信端点101可与ipv6不容忍通信端点101和ipv4不容忍通信端点101两者进行会议。在这种情况下,发往ipv6不容忍通信端点101和ipv4不容忍通信端点101的入站消息300/304中的一些或全部可以包含ipv4和ipv6地址两者。在这些情况下,代理服务器121/ip版本管理器126可以根据需要适配ip地址,以确保ip版本互操作性。适配可以包括删除部分报头、参数等,以便确保互操作性。例如,假设通信端点101a是ipv6不容忍通信实体,通信端点101n是ipv4不容忍通信实体。在该示例中,通信系统120将入站消息300的ip版本(ipv6)改变为出站消息302中的ipv4。通信系统120通过在应用层(例如,iso7层模型)处替换/删除ip地址来改变ip版本。例如,通过改变/删除sip消息中的ipv6地址。同样,通信系统120将入站消息304的ip版本(ipv4)改变为出站消息302中的ipv6。在上面的示例中,对于通信端点101a和101n之间的通信会话仅存在单个通信会话(即,具有单个会话标识符的对话)。另选地,如果通信端点101a是ipv6不容忍的,通信端点101n是ipv6不容忍的,则通信系统120不需要改变出站消息302/306中任一个中的ip地址,因为通信端点101a和101n两者都是ipv6不容忍的。在这种情况下,假定消息仅包含ipv6地址,因为通信端点101a和101n两者都是ipv6不容忍的。图4是用于处理会话发起协议(sip)通信会话中的ip版本不容忍的过程的流程图。说明性地,通信端点101a-101n、ip协议栈103/123、网络接口104/124、通信系统120a-120b、代理服务器121、b2bua125和ip版本管理器126是存储的程序所控制的实体,例如计算机或微处理器,其通过执行存储在诸如存储器或盘之类的计算机可读存储介质中的程序指令来执行图3-7的方法和本文所述的过程。尽管图3-7中所描述的方法是以特定顺序示出的,但是本领域技术人员将认识到,图3-7中的步骤可以以不同的顺序实现和/或在多线程环境中实现。此外,基于实现方式,可以省略或添加各种步骤。使用sip消息来描述图4-7的过程。然而,本领域的普通技术人员将会认识到,可以对图4-7的流程图采用类似的消息,诸如h.323、webrtc、h.624、g711等中的消息。该过程开始于步骤400,此时通信端点101n向代理服务器121/ip版本管理器126发送指出通信端点101n是ipv6不容忍的sipregister消息。代理服务器121/ip版本管理器126在步骤401中向通信端点101n发送sip200ok。在步骤402中,通信端点101a向代理服务器121/ip版本管理器126发送指出通信端点101a是ipv4不容忍的sipregister消息。代理服务器121/ip版本管理器126在步骤403中向通信端点101a发送sip200ok。ip版本管理器126在步骤404中将通信端点101a和101n的ip容忍类型存储在存储器中(例如,存储在数据库中)。在一个实施例中,通信端点101a和101n在contact报头中,在步骤400和402的sipregister消息中发送ip版本不容忍信息。另选地,通信端点101a和101n可在步骤400和402的sipregister消息中的其他字段中发送ip版本不容忍信息。另选地,注册过程可以使用其他消息,诸如siprefer消息、sipoptions消息、sipinvite消息,sipsubscribe消息和/或等等。作为对使用sipregister消息进行注册的附加,可以以各种其他方式用特定类型的ip容忍/不容忍来标识通信端点101。例如,ip版本管理器126可以标识特定的电话或设备类型,并基于列表将电话/设备类型与特定类型的ip版本容忍/不容忍类型相关联。另选地,对于未注册的较旧设备,管理员可以从管理终端(未示出)管理ip容忍/不容忍类型。代理服务器121/ip版本管理器126在步骤406中接收使用ipv4地址的sipinvite消息。例如,sipinvite消息中的sip“to”和/或“from”报头可以具有ipv4ip地址。在一种实现中,sipfrom:报头可以如下所示:from:“joe@xyz.com”<sip:10000@10.172.0.2>。代理服务器121/ip版本管理器126在步骤408中将32位sip地址10.172.0.2适配为128位ipv6地址。例如,适配的sipfrom报头可以如下所示:from:“joe@xyz.com”<sip:10000@fe80:0:0:0:202:b3ff:fe1e:8329>。ipv6地址是通信系统120的地址。本例使用本地ipv6地址。然而,在其他实施例中,可以使用ipv6全局地址。代理服务器121/ip版本管理器126在步骤410中将具有适配的ipv6地址的经适配的sipinvite消息发送到通信端点101n。通信端点101n在步骤412中发送sip200ok消息。在步骤412的sip200ok消息中,通信端点101n在sipcontact报头中使用通信系统120的ipv6地址(fe80:0:0:0:202:b3ff:fe1e:8329)(例如to:“joe@xyz.com”<sip:10000@fe80:0:0:0:202:b3ff:fe1e:8329)。代理服务器121/ip版本管理器126在步骤414中将步骤412的sip200ok消息适配回ip地址10.172.0.2。例如,步骤416的sip200ok消息中的sipfrom:字段将如下所示:from:“joe@xyz.com”<sip:10000@10.172.0.2。代理服务器121/ip版本管理器126在步骤416中向通信端点101a发送经适配的sip200ok消息。响应于步骤416的sip200ok消息,通信端点101a在步骤418中向代理服务器121/ip版本管理器126发送sipack消息。代理服务器121/ip版本管理器126在步骤420中以与在步骤408中描述的相同方式适配(如果需要)sipack消息(将sipfrom报头替换为ipv6地址)。在步骤422中,将经适配的sipack消息发送到通信端点101n。接着在步骤424中建立通信会话(例如,语音呼叫)。在此示例中,仅存在通信端点101a和101n之间的单个sip对话。通信端点101a和101n之间的通信会话具有单个会话标识符(其不同于电话号码)。使用sipinvite消息、sip200ok消息和sipack消息来描述图4的过程。然而,在标准sip中,在呼叫建立中还可能涉及其他类型的消息,诸如sipcancel、sipinfo、sip180ringing、sipcancel、sipoptions、sipprak、sippublish、siptrying、sipcallisbeingforwarded(sip呼叫正在被转发)、sipqueued(sip排队)、sipsessioninprogress(sip会话正在进行中)和/或等等。必要时可对这些类型的消息使用类似的适配。图5是用于在具有有序(sequenced)背靠背用户代理的会话发起协议(sip)通信会话中处理ip版本容忍/不容忍的过程的流程图。图5的过程类似于图4的过程,但附加了已添加到呼叫流的sipb2bua125。在图5中,对于sip消息传递,b2bua125是ipv6不容忍的。另外,通信端点101a和101n是ipv4不容忍的。在sip中,当b2bua125被添加到信令消息流中时,通常所有的sip信令消息流经b2bua125,如图5所示。当b2bua125被添加到信令呼叫流时,b2bua125创建两个单独的对话:1)sip对话1——来自通信端点101a和b2bua125,以及2)sip对话2——来自b2bua125和通信端点101n。在这种情况下,存在具有单独的会话标识符的两个单独的通信会话(即,根据在siprfc3261“sip:sessioninitiationprotocoljune,2002”(其通过引用并入本文)中所描述的标准sip消息传递)。该过程开始于步骤500,此时通信端点101n向ip版本管理器126发送指出通信端点101n是ipv4不容忍的sipregister消息。同样,在步骤502中,通信端点101a向ip版本管理器126发送指出通信端点101n是ipv4不容忍的sipregister消息。在该示例性实施例中,b2bua125还在步骤504中向ip版本管理器126发送sipregister消息,指出b2bua125是ipv6不容忍的。然而,在另一个实施例中,b2bua125可以经由管理员注册其ip不容忍性。响应于消息500、502和504,ip版本管理器126在步骤506中将通信端点101a和101n的ip不容忍类型以及b2bua125的ip不容忍类型存储在存储器中(例如,存储在数据库)。通信端点101a在步骤508中使用ipv4地址发送sipinvite消息。代理服务器121/ip版本管理器126在步骤510中适配sipinvite消息(例如,如上面的步骤408所述)。代理服务器121/ip版本管理器126在步骤512中将经适配的sipinvite消息(适配到ipv6)发送到b2bua125。b2bua125在步骤514中向代理服务器121/ip版本管理器126发送sipinvite消息(在步骤510中适配到ipv6)。在步骤516中,代理服务器121/ip版本管理器126将步骤514的sipinvite消息适配回ipv4。代理服务器121/ip版本管理器126在步骤518中将经适配的sipinvite消息(适配回ipv4)发送到通信端点101n。该过程重复图4的过程,带有附加步骤,即在步骤520中通过b2bua125发送sip200ok消息(即,从101n→120→125→120→101a)以及sipack消息(从101a→120→125→120→101n)。接着,在步骤522中建立通信会话。讨论了图5的过程,在该过程中,在通信会话522中涉及单个b2bua125。在sip中,多于一个的b2bua125可以被排序到通信会话中。在这种情况下,在步骤516之后,代理服务器121/ip版本管理器126将向第二b2bua125发送经适配的sipinvite消息。接着,第二b2bua125将sipinvite消息发送回代理服务器121/ip版本管理器126。对于每个额外的b2bua125,将重复该过程。以上描述内容描述了特定的sip消息(例如,sipinvite消息、sip200ok消息和sipack消息)和使用ip地址的特定sip报头(例如,sipto和from报头)。然而,该过程可以在存在ip不容忍的任何sip消息中将ipv4转换为ipv6,并将ipv6转换为ipv4。在一个实施例中,利用其中注册sipua(例如通信实体)不兼容的sip第三方注册,在sipcontact报头中传递的sipav.sig.iptolerance参数可能具有与另一个注册通信实体不兼容的ip地址。在这种情况下,如果存在ip版本不兼容性,则可能需要ip适配。在一个实施例中,如果第三方注册sipua(例如,通信端点101)被托管在未注册的另一服务器上,则将基于标识ip容忍/不容忍类型的专有报头的存在,来建立注册sipua的ip地址。对于由第一方sipua创建的sip对话创建请求(例如,sipinvite消息、sipsubscribe消息和siprefer消息),注册的sipua本身发起sip对话创建请求。ip版本管理器126使用sipcontact报头中的ip版本。在一个实施例中,根据需要适配sip报头中的sip统一资源标识符(uri)以确保ip版本互操作性。例如,sipnotify可以包括使用ip地址的sipuri。对于sipinvite消息和sipsubscribe消息,可以使用任何公知的参数来传送ip版本不容忍信息。另外,通信系统120可以在转发消息之前将ip版本不容忍信息作为转义(escaped)参数插入。在sip中,转义字符(新名称百分号编码(newnamepercentencoding))用于转换uri中不允许的uri中字符。例如,在uri的参数中不允许使用空白符;因此,将空白符转换为百分号编码,以便字符串显示为连续的。ip版本管理器126解码空白符。例如,假设发送通信实体具有uri“doug@example;param=hellothere”。由于存在将使uri解析失败的空白符(hello和there之间),所以在发送之前,发送方将把“hellothere”转义(或百分号编码)为hello%20there。所得到的uri将如下所示:doug@example;param=hello%20there。如所见,在编码之后,uri中没有空白符;作为替代,空白符已被替换为%20,这是空白符的十六进制表示。与此类似,还有其他字符(称为特殊字符)必须进行百分号编码:例如,":"/"/"/"?"/"#"/"["/"]"/"@"。request-uri可以包含av-nouri参数,因为该适配使用av-nouri来在适配期间存储av-ouri参数的原始值。由于这可以出现在contact报头中,并且contact报头可以放置在新请求的request-uri中,所以适配可能需要将av-norui转换回av-ouri。这可能是对于实现而言特定的适配。如果实现将原始参数值(将要适配的参数的)存储在不同名称的参数中,那么如果实现在初始请求的请求-uri中看到它,实现将不得不撤消这一点。对于其中出站分支是ipv4不容忍且入站分支是ipv4容忍或出站分支是ipv6不容忍且入站分支ipv6容忍的sipinvite消息,通信系统120存储sipinvite消息,并从sipinvite消息中除去siprecord-route报头,并插入其自己的与下一分支的ip地址类型匹配的ip地址。对于相应的响应(例如,sip200ok消息),在入站分支中,通信系统120检查siprecord-route报头的内容。如果通信系统120在请求期间(在sipinvite消息中)修改了报头,则通信系统120恢复siprecord-route报头。上述过程也用于mid-dialog消息。例如,record-route报头可以通过修改ip地址或者除去全部报头来进行适配。无论哪种方式都可以防止向通信端点101发送具有错误ip地址类型的record-route报头。如果出站分支是ipv4不容忍的并且入站分支是ipv4容忍的,或者出站分支是ipv6不容忍的并且入站分支是ipv6容忍的,则通信系统120从消息中除去sipvia报头。通信系统120插入其自己的与下一跳的ip版本相匹配的ip地址。在入站处理期间,通信系统120检查sipvia报头的内容。如果sipvia报头已被修改,则通信系统120在处理消息之前恢复sipvia报头。record-route报头中与下一跳上的ip版本相匹配的ip地址的更改和恢复过程也适用于recordroute的sipvia报头。通信系统120可以除去地址,接着在另一方向上加回,或者通过替换ip地址并接着在相反的方向上恢复回原始地址来适配它们。如果通信实体不支持history-info报头中的targeted-to-uri的ip版本,则通信系统120适配siphistory-info报头。通信系统120在转发请求之前,插入其自己的ip地址作为targeted-to-uri地址,并添加原始uri地址(包括端口号)作为转义参数'ohiaddr'。对于siprefer消息,如果通信实体不支持refer-to报头中的uri的ip版本,则在出站分支处转发请求之前,通信系统120将其自己的ip地址作为uri地址插入到refer-to报头,并在特定参数中添加原始uri地址(包括端口号)。user-part(用户部分)和除传输(transport)参数以外的所有参数都保留在新的refer-to报头中。对于初始请求(例如,sipinvite消息),代理服务器121/ip版本管理器126将自己的地址作为uri地址插入到request-uri中,并且在向下游转发请求之前将原始uri地址作为转义参数的一部分进行广告。user-part和参数保留在新的request-uri中。例如,如果request-uri是sip:xyz@[2620::123]:old-port;param1=xyz,所得到的request-uri将如下所示:sip:xyz@192.168.1.1:new-port;param1=xyz;av-oraddr=escaped([2620::123]:old-port)。在入站分支处,一旦接收到初始请求,且该初始请求在request-uri中的域部分和av-oraddr参数中具有通信系统120的ip地址,则ip版本管理器126恢复request-uri的原始域和端口,并删除插入的参数。对于mid-dialog请求,如果入站请求在请求uri中包含通信系统的地址,则ip版本管理器126在转发请求之前删除通信管理器的地址并用ip版本管理器126插入的参数(即av-ocaddr或av-oraddr)中的地址替换它。(注意:在mid-dialog请求处理期间的这种反向操作是由在初始请求处理时完成的contact报头或request-uri适配产生的)。例如,如果mid-dialog请求的request-uri是xyz@192.168.1.1:new-port;param1=xyz;av-oraddr=escaped([2620::123]:old-port),其中[192.168.1.1]是通信系统的地址,则ip版本管理器126除去通信管理器的地址,并恢复原始地址,并以request-urixyz@[2620::123]:old-port;param1=xyz向上游转发请求。当涉及多个通信系统120时,上游通信系统120根据需要进行适配(例如,如表1所述),以确保通信系统120之间的互操作性。例如,对于从ipv6容忍通信系统120a发送到ipv4不容忍通信系统120b的sipinvite消息,对于sipinvite消息,通信系统120a将ipv6地址适配为ipv4地址。同样,对于从通信系统120b发送的sip200ok消息,通信系统120a将sip200ok消息适配到ipv6地址。图6是用于用单个记录地址注册用户的多个通信端点101的过程的流程图。例如,用户可能拥有bob@companyxyz.com的记录地址。在此示例中,用户(bob)具有四个通信端点101a-101n,这些通信端点以记录地址bob@companyxyz.com进行注册。该过程开始于步骤600,此时通信端点101a在步骤600中向代理服务器121/ip版本管理器126发送sipregister消息。在此示例中,通信端点101注册它是ipv4不容忍的。作为响应,代理服务器121/ip版本管理器126在步骤602中发送sip200ok消息。发送到通信端点101a的(步骤602的)sip200ok消息包含通信端点101a和101c的ip地址(无ipv6地址)。从步骤602的sip200ok消息中除去通信端点101b(ipv6不容忍)和101n(ipv6容忍)的ip地址。由于通信端点101a是ipv4版本不容忍的,因此它不能消耗通信端点101b和101n的ipv6联系地址。通信端点101b在步骤604中向代理服务器121/ip版本管理器126发送sipregister消息。步骤604的sipregister消息指出通信端点101b是ipv6不容忍的。作为响应,代理服务器121/ip版本管理器126在步骤606中发送sip200ok消息。发送到通信端点101b的(步骤606的)sip200ok消息包含通信端点101b和101n的ip地址(无ipv4地址)。因为通信端点101b不能消耗ipv4地址,所以通信端点101a(ipv4不容忍)和101c(ipv4容忍)的ip地址被从在步骤606中发送的sip200ok消息中除去。通信端点101c在步骤608中向代理服务器121/ip版本管理器126发送sipregister消息。步骤608的sipregister消息指出通信端点101c是ipv4容忍的。作为响应,代理服务器121/ip版本管理器126在步骤610中发送sip200ok消息。发送到通信端点101c的sip200ok消息(步骤610)包含通信端点101a-101n的ip地址,因为通信端点101c可以处理两种类型的ip版本(ipv4和ipv6)。通信端点101c在步骤612中向代理服务器121/ip版本管理器126发送sipregister消息。步骤612的sipregister消息指出通信端点101c是ipv6容忍的。作为响应,代理服务器121/ip版本管理器126在步骤614中发送sip200ok。发送到通信端点101n的sip200ok消息(步骤614)包含通信端点101a-101n的ip地址,因为通信端点101n可以处理两种类型的ip版本(ipv4和ipv6)。图7是用于呼叫分叉的过程的流程图,其中使用单个记录地址注册用户的多个通信端点101。图7的过程基于图6的注册。在步骤700中,在代理服务器121/ip版本管理器126处从通信端点101x(另一个通信端点101)接收sipinvite消息。通信端点101x是ipv4不容忍的。在此示例中,步骤700的sipinvite消息在步骤702和704中被分叉到通信端点101a和101c,这些通信端点101a和101c仅是与记录地址相关联的支持ipv4的通信端点101。在步骤705中,该呼叫在通信端点101c处被应答。这会导致sip200ok消息(具有ipv4地址)在步骤706中从通信端点101c发送到代理服务器121/ip版本管理器126。响应于sip200ok消息,代理服务器121/ip版本管理器126在步骤708中向通信端点101a发送sipcancel消息以取消该分叉呼叫的该分支。代理服务器121/ip版本管理器126在步骤710中将sip200ok消息发送到通信端点101x(具有ipv4地址)。通信端点101x在步骤712中向代理服务器121/ip版本管理器126发送sipack消息。sipack消息使用ipv4地址。代理服务器121/ip版本管理器126在步骤714中将sipack消息(具有ipv4地址)发送到通信端点101c。接着,在步骤716中建立通信会话。在上面的实例中,sipinvite消息仅分叉到支持ipv4的通信端点101a和101c。然而,在其他实施例中,sipinvite消息可以被分叉到每个通信端点101a-101n。在这种情况下,发送到通信端点101b的分叉的sipinvite消息(ipv6不容忍)将不得不根据表1进行适配,以用ipv6寻址来替换ipv4寻址。同样,来自通信端点101b的sip200ok消息(如果被应答)将不得不被适配。类似的过程可以用于服务器集群。例如,在传入的通信请求可以基于负载被引导到不同的服务器的情况下,代替分叉,传入请求由通信系统120指引以与特定服务器通信。基于发送该请求(例如,sipinvite消息)的通信实体的ip容忍类型,可以适配不同的入站和出站消息以在传入请求的发送方与所选择的服务器之间提供ip版本兼容性。ip版本不容忍也可以适用于串行分叉。如果来自“集群”的最初选择的服务器不能处理该请求,则代理服务器121可以将该请求路由(顺序地将其分叉)到集群中的备用服务器。如果每个服务器支持不同的地址系列连接,则在发生此类备用路由/分叉时,可能必须重新适配请求。本文所描述的处理器的实例可以包括但不限于800和801、具有4glte集成和64位计算的610和615、具有64位体系结构的a7处理器、m7运动协处理器、系列、酷睿tm系列处理器、至强tm系列处理器、凌动tm系列处理器、系列处理器、i5-4670k和i7-4770k22nmhaswell、酷睿tmi5-3570k22nmivybridge、fxtm系列处理器、fx-4300、fx-6300和fx-835032nmvishera、kaveri处理器、德州仪jacintoc6000tm汽车信息娱乐处理器、omap汽车级移动处理器、cortextm-m处理器、cortex-a和926ej-stm处理器、其他行业等效处理器中的至少一种,并且可以使用任何已知或未来开发的标准、指令集、库和/或体系结构来执行计算功能。本文所讨论的任何步骤、功能和操作可以连续且自动地执行。然而,为了避免不必要地模糊本公开,前面的描述省略了许多已知的结构和设备。这种省略不被解释为对要求保护的公开的范围的限制。阐述了具体细节以提供对本公开的理解。然而应该理解的是,本公开可以以超出本文阐述的具体细节的各种方式来实践。此外,尽管本文示出的示例性实施例示出了并置的系统的各种组件,但是系统的某些组件可以远程定位,位于分布式网络110(例如lan和/或互联网)的远处部分,或者位于专用系统内。因此,应该理解的是,系统的组件可以被组合到一个或多个设备中或者并置在分布式网络的特定节点上,例如模拟和/或数字电信网络、分组交换网络或电路交换网络。从前面的描述中可以理解,并且出于计算效率的原因,可以将系统的组件安排在组件的分布式网络内的任何位置而不影响系统的操作。例如,各种组件可以位于交换机中,诸如pbx和媒体服务器、网关、一个或多个通信设备中、在一个或多个用户房屋中,或其一些组合。类似地,系统的一个或多个功能部分可以分布在电信设备和相关联的计算设备之间。此外,还应该理解的是,连接元件的各种链路可以是有线或无线链路或其任何组合,或者任何其他已知的或以后开发的能够向已连接的元件提供数据和/或来往于已连接的元件提供和/或传递数据的元件。这些有线或无线链路也可以是安全链路,并且可以能够传送加密信息。例如,用作链路的传输介质可以是用于电信号的任何合适的载体,包括同轴电缆、铜线和光纤,并且可以呈现声波或光波的形式,例如在进行无线电和红外数据通信中产生的那些波。而且,虽然是参考特定事件序列讨论和说明流程图的,但是应当理解,可以在不实质性地影响本公开的操作的情况下对该序列进行改变、添加和省略。可以使用本公开的许多变化和修改。可以提供本公开的一些特征而不提供其他特征。在又一个实施例中,本公开的系统和方法可以结合专用计算机、编程的微处理器或微控制器和外围集成电路元件、asic或其他集成电路、数字信号处理器、(诸如分立元件电路、可编程逻辑器件之类的)硬连线电子或逻辑电路或门阵列(诸如pld、pla、fpga、pal)、专用计算机、任何相当的装置等等来实现。通常,能够实施本文所示的方法的任何设备或装置可以用于实现本公开的各个方面。可以用于本公开的示例性硬件包括计算机、手持设备、电话(例如,蜂窝式、能上互联网的、数字式、模拟式、混合型等)以及本领域已知的其他硬件。这些设备中的一些包括处理器(例如,单个或多个微处理器)、存储器、非易失性存储器、输入设备和输出设备。此外,还可以构建替代软件实现,包括但不限于分布式处理或组件/对象分布式处理、并行处理或虚拟机处理,以实现本文所述的方法。在又一个实施例中,所公开的方法可以容易地结合使用对象或面向对象的软件开发环境的软件来实现,软件开发环境提供可以在各种计算机或工作站平台上使用的便携式源代码。另选地,所公开的系统可以使用标准逻辑电路或vlsi设计部分地或完全地以硬件来实现。是使用软件还是使用硬件来实现根据本公开的系统取决于对系统、特定功能以及正在使用的特定软件或硬件系统或微处理器或微计算机系统的速度和/或效率要求。在又一个实施例中,所公开的方法可以部分地实现为软件,软件可以存储在存储介质上,在编程的通用计算机上执行,并与控制器和存储器、专用计算机、微处理器等协作。在这些情况下,本公开的系统和方法可以作为嵌入在个人计算机上的程序(诸如小程序、或cgi脚本),作为驻留在服务器或计算机工作站上的资源,作为嵌入在专用测量系统、系统组件等上的例程来实现。该系统还可以通过将系统和/或方法物理地结合到软件和/或硬件系统中来实现。尽管本公开参考特定标准和协议描述了在实施例中实施的组件和功能,但是本公开不限于这些标准和协议。本文未提及的其他类似标准和协议存在并被认为包括在本公开内容中。此外,本文提及的标准和协议以及本文未提及的其他类似标准和协议周期性地被具有基本相同功能的更快或更有效的等同物所取代。具有相同功能的这种替换标准和协议被认为是包含在本公开中的等同物。本公开在各种实施例、配置和方面中包括基本上如本文描绘和描述的组件、方法、过程、系统和/或装置,包括各种实施例,子组合和其子集。本领域技术人员将理解在理解本公开之后如何制造和使用本文公开的系统和方法。在各种实施例、配置和方面中,本公开包括提供不存在本文未描绘和/或描述的项目的装置和过程,或在本文的各种实施例、配置或方面中,包括不存在可能已经在以前的装置或过程中使用的项目,例如用于提高性能、实现简易性和/或降低实现成本。本公开的前述讨论是出于说明和描述的目的给出的。前述内容并非意图将本公开限制于本文公开的一种或多种形式。在例如前述的“具体实施方式”中,为了使本公开简化,本公开的各种特征在一个或多个实施例、配置或方面中被组合在一起。本公开的实施例、配置或方面的特征在除以上讨论的那些之外的替代实施例、配置或方面中可以组合在一起。本公开的这种方法不应被解释为反映所要求保护的公开需要比每个权利要求中明确列举的更多特征的意图。相反,如权利要求所反映的,发明方面在于少于单个前述公开的实施例、配置或方面的所有特征。因此,权利要求在此被并入本“具体实施方式”中,每个权利要求本身作为本公开的单独的优选实施例。此外,虽然对本公开的描述已经包括了对一个或多个实施例、配置或方面的描述,但是某些变型和修改、其他变型、组合和修改也在本公开的范围内,例如,在本领域技术人员理解了本公开之后,这可能在他们的技术和知识范围内。本公开旨在获得权利,所述权利包括在允许的范围内的替代实施例、配置或方面,包括与所要求保护的那些结构、功能、范围或步骤的替代的、可互换的和/或等效的结构、功能、范围或步骤,无论这些替代的、可互换的和/或等效的结构、功能、范围或步骤是否在本文中公开,并且不旨在公开地贡献任何可取得专利的主题。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1