虚拟网关的制作方法

文档序号:7748400阅读:264来源:国知局
专利名称:虚拟网关的制作方法
技术领域
本发明通常涉及通过通信网络传输数据的方法和设备,且尤其涉及通过使用分组交换协议,例如网际协议的通信网络传输语音和其他数据的方法和设备。
背景技术
当在两个使用者设备之间通过基于网际协议(IP)的通信网络建立双向语音对话时,其活动典型地由第三个设备进行协调。这种协调设备的例子包括呼叫协调器,用以在两个IP地址之间建立通信连接,从而协助处理语音传输。
当两个使用者设备在相同的网络地址转换(NAT)设备之后且具有不同的公共映射IP地址,呼叫协调设备可能不能确定两个使用者设备是在相同的NAT设备之后。因此,协调设备不能继续建立呼叫。
此外,当两个设备位于相同的防火墙之后时,它们不能使用它们映射的公共IP地址进行通信。通常,由于标准安全策略,防火墙将丢弃任何指向网络内部IP地址的外发信息包。如果通信传输的目的地位于网络内部,这些安全策略会阻止传输越出网络。然而,当在这些情况下建立双向语音呼叫时,这种类型的连接正是呼叫协调器或其他协调设备试图建立的。
而且,这个问题可能比表面上看起来更加普遍。例如,单个实体可能作为多个网络的防火墙,从而阻止相同防火墙的使用者建立基于IP的语音连接。在一些情况下,使用者甚至可能没有意识到他们位于相同的防火墙或者NAT之后。
另外,位于相同的NAT之后的两个设备可能属于使用相同专用网络ID的不同的专用网络,因此不能通过它们的专用地址进行通信。
本发明因此针对这些问题开发一种在基于IP的通信网络中任何两个或多个端点之间建立通信线路的方法和设备,不论这两个或多个端点是否位于相同的或不同的NAT设备或者防火墙之后。

发明内容
本发明通过提供虚拟网关,在位于相同或不同的网络地址转换设备或者防火墙之后的多个端点之间桥联语音和相应的信令传输,解决这些和其他的问题。
根据本发明示例的实施例,当工作于电话会议模式时,虚拟网关也可以作为混合器,用以处理位于或不位于相同的网络地址转换设备或防火墙之后的多个端点。在这种模式下,虚拟网关将进入方的信息包和进入方的其他信息包混合,从而所有的外发的信息包包括了来自所有其他源的语音(或其他)数据。
尽管这里描述的实施例用于基于IP的语音(VoIP)连接和应用,然而当两个或多个端点试图建立通信信道且它们的IP地址并不适合通信应用时其他的应用也可能存在。
此外,当实施例针对位于相同或不同的NAT设备或防火墙之后的两个端点解决问题时,在所有的情况下采用这些实施例,甚至在例如两个或多个端点没有位于防火墙或者NAT设备之后的时候,会防止由于缺少端点位置信息而出现的问题。而且,实施例解除该信息需求,因而允许更加普遍的实现。


图1描述的是依照本发明的一个方面,通过基于IP的通信网络执行双向语音电话呼叫的方法的示例实施例。
图2描述的是依照本发明的另一个方面,通过基于IP的通信网络执行电话会议呼叫的方法的示例实施例。
图3描述的是依照本发明的另一个方面,用于执行基于IP的语音连接的系统的示例实施例。
图4描述的是依照本发明的另一个方面,用于执行基于IP的语音连接的另一种设备的示例实施例。
具体实施例方式
值得注意的是,任何这里提及的“一个实施例”或者“实施例”意味着与实施例有关的特定的特征、结构或者特性至少包含在本发明的一种实施例中。说明书中不同地方出现的短语“在一个实施例中”并不需要全部指相同的实施例。
本发明提供了在可能位于或不位于相同的或者不同的网络地址转换(NAT)设备或者防火墙之后的两个端点之间建立通信信道的方法和设备。建立这种通信信道的设备的一种可能的实现方式这里称为虚拟网关。
一般地,对于试图使用适合于通信信道的网际协议(IP)地址建立通信信道,并且在要建立的通信信道的两个端点之间建立交叉连接的设备,虚拟网关担当代理。当创建通信信道的设备从一个端点接收建立信道的请求时,通信信道创建设备(例如,分组电缆呼叫代理)可能联系虚拟网关并提供端点信息(例如端点IP地址和服务端口)。然后虚拟网关为每一个端点提供IP地址和端口,并在这个IP地址和端口之间建立交叉连接,从而从源端点进入的信息包自动地转发至目标端点,反之亦然。
虚拟网关可能为每一个端点提供唯一的IP地址和端口。可选地,虚拟网关可能为所有的端点提供单一的IP地址和端口,这种情况下,虚拟网关将使用进入的信息包的源ID来确定信息包指向哪一个端点。
对于超过两个端点的情况,虚拟网关将对接收的语音信息包执行混合功能。例如,在三个端点的情况下,从端点1和2接收的语音信息包将混合在一起并发送给端点3;类似地,从端点1和3接收的语音信息包将混合在一起并发送给端点2;从端点2和3接收的语音信息包将混合在一起并发送给端点1。超过三个端点时发生类似的混合过程。
因而,使用虚拟网关,可以建立用于多个端点的线路,允许呼叫信令和语音传输。也可能存在其他的应用,其中,希望在两个或多个可能位于或者不位于相同的或不同的NAT设备或者防火墙之后的端点之间建立通信信道。此外,尽管这里讨论的实施例针对语音信息包,这里的实施例对于任何涉及在多个端点问建立信道的应用同样适用,其中在端点之间传输的信息包包括非语音数据,但是需要与语音信息包类似的连接和性能。
参考图1,描述的是依照本发明的一个方面,在通过基于IP的通信网络建立双向电话呼叫的过程10的示例实施例。在双向呼叫模式中,呼叫协调器(例如,分组电缆NCS呼叫代理或者其他类似设备)向虚拟网关传递所发现的端点信息,包括公共IP地址(步骤11)。虚拟网关在那两个公共IP地址之间建立内部交叉连接(步骤12)。然后虚拟网关将往回向呼叫协调器提供交叉连接ID,包含它本身的公共IP地址和特定的服务端口(步骤13)。如上面所述,这个公共的IP地址和服务端口对于每个端点可能是唯一或者相同的。在后面一种情况下,虚拟网关使用进入的信息包的源ID确定正确的外发端口。然后呼叫协调器将向每一个端点传送交叉连接ID(步骤14)。随后端点将使用这个交叉连接ID完成指向其他端点的进一步的呼叫信令和语音传输。
参考图2,描述的是依照本发明的另一个方面,通过基于IP的通信网络建立多方呼叫(例如会议呼叫)的过程20的示例实施例。在多方会议模式中,呼叫协调器在多个端点加入会议的时候收集端点的信息。当参加者加入会议时,端点信息将传送给提供混合功能的虚拟网关(步骤21)。虚拟网关在那些公共的IP地址之间建立交叉连接(步骤22)。与双向呼叫类似,虚拟网关将向呼叫协调器提供会议交叉连接ID(步骤23)。如上面所述,这个公共的IP地址和服务端口对于每个端点可能是唯一或者相同的。在后面一种情况下,虚拟网关使用进入的信息包的源ID确定正确的外发端口。然后会议交叉连接ID将传送给每一个参加的端点(步骤24)。随后端点将使用这个会议交叉连接ID完成指向其他端点的进一步的呼叫信号和语音传输。
所有其他的类型5特性,例如呼叫等待,呼叫转移等,能利用呼叫协调器、虚拟网关和端点之间的交互作用实现。虚拟网关概念不仅协助呼叫协调器建立连接,而且为分组电缆域间呼叫建立提供了普遍的机制。
参考图3,描述的是依照本发明的另一个方面实现上述方法的系统的示例实施例30。标准电话(模拟或者数字的)31通过个人计算机32或类似设备与因特网(或者其他基于IP的通信网络)33连接。PC32可能是简单的处理器或者类似作为接口连接电话到因特网的设备,例如语音使能电缆调制解调器。另一个标准电话36类似地通过另一个计算机35或类似设备与因特网33连接。另外的电话38a-38n可能直接或者通过另外的计算机与因特网连接(未图示)。虚拟网关37和呼叫协调器34同样与因特网连接。呼叫协调器包括能在一台与因特网33连接的服务器上运行的软件程序。已知的呼叫协调器的例子包括分组电缆呼叫代理,Net2Phone呼叫控制器等。
虚拟网关37的一种可能的实施例是在连接到因特网的服务器上运行的软件程序。呼叫协调器运行的服务器可能与虚拟网关运行的服务器相同,或者两个服务器可能不同,甚至在地理位置上并不接近。
虚拟网关的使用的例子如图4所示,图中描述了依照本发明的另一个方面的示例系统40。两个语音使能电缆调制解调器(例如SB3500设备,摩托罗拉多媒体终端适配器(MTA)产品)50,51通过DCM49,一种摩托罗拉电缆调制解调器终端系统产品连接到路由器48。依次地,路由器48与位于防火墙/NAT47外部且与因特网45连接的路由器46连接。电话41,42与两个SB3500设备连接。
在系统40中,两个SB3500设备50,51位于相同的NAT/防火墙47之后。SB3500设备50具有内部IP地址10.10.17.134和公共的IP地址207.103.20.204。SB3500设备51具有内部IP地址10.10.17.135和公共的IP地址207.103.20.205。
建立呼叫时,呼叫协调器43向IP地址例如为168.84.33.4的虚拟网关44传递公共的IP地址。然后虚拟网关创建内部的交叉连接,从而自动地将来自于IP地址和端口207.103.20.20429152的进入的信息包连接到IP地址和协议为207.103.20.20529152的另一个设备51。类似地,虚拟网关创建内部的交叉连接,从而自动地将来自于IP地址和端口207.103.20.20529152的进入的信息包连接到IP地址和协议为207.103.20.20429152的第一设备50。随后虚拟网关向呼叫协调器43传送IP地址和端口(例如168.84.33.45900),并转发到对应的设备50,51。来自这两个设备的信息包将传送至虚拟网关44指定的IP地址和端口。因此,来自设备50的进入的信息包通过虚拟网关自动发送到另一个设备51,反之亦然。
当建立多方会议呼叫时,呼叫协调器43向虚拟网关44传送公共的IP地址和端口。然后虚拟网关创建内部的交叉连接,从而自动将来自于一个IP地址和端口的进入的信息包连接到所有其他的由呼叫协调器43指定的IP地址和端口。为了这样实现,虚拟网关对语音信息包执行混合功能,即从除了某一个源以外的所有源获取语音并创建新的合成语音信息包,然后转发至语音未包含在内的那个单元。这个过程对每一个源重复执行。
例如,我们假设呼叫协调器试图在三个IP地址和端口之间建立会议呼叫(1)207.103.20.20429152;(2)207.103.20.20529152;和(3)207.105.20.9539447。在混合功能中,来自(1)和(3)的语音混合在一起并发送到(2)。类似地,来自(1)和(2)的语音混合在一起并发送到(3)。同样,来自(2)和(3)的语音混合在一起并发送到(1)。在连接中混合过程连续发生。
如前所述,虚拟网关在这些进入的IP地址和端口之间建立交叉连接,并向用于发送数据至其的设备传送IP地址和端口。例如,虚拟网关向呼叫协调器传送168.84.33.458998,然后呼叫协调器将该IP地址和端口转发至建立呼叫的三个设备。因此,来自每一个设备的信息包都能通过虚拟网关自动发送到参加会议呼叫的其他设备。
这里公开的实施例允许了通过因特网或者其他计算机网络的低成本的电话呼叫。这些实施例使低成本的IP语音通信成为可能。其他应用包括非语音特定的应用,例如电话会议、白板应用和任何其他需要第三方服务器协调的应用。
这里讨论的方法或设备的实施例针对的是位于相同的NAT或防火墙之后的两个端点。然而,当没有合适的通信信道时这些相同的方法和实施例可适用且应该使用。例如,当双方位于相同的或不同的NAT设备或防火墙之后时,实施例可以适用。此外,当两个端点位于相同的NAT之后时,实施例可以适用。不幸的是,由于NAT配置可能分配不同的公共IP地址,它可能会阻止呼叫协调器获悉这些。因此,当对于两个端点是否位于相同的或不同的NAT之后存在疑问时,实施例也可适用。更进一步,实施例可能适用于所有情况,从而防止在依赖使用者的基础上的问题的出现。在会议模式中,如果任何两个(或多个)设备位于相同的或者不同的NAT之后,甚至如果一些其他的设备可能不在相同的或者不同的NAT之后时,实施例仍然适用。
尽管这里特定地说明并描述了各种各样的实施例,但在没有背离本发明精神和意图范围的前提下,对本发明的任何修改和变种均在上面的教导和所附权利要求的范围内。此外,这些例子并不认为是对由权利要求保护的本发明的修改和变种的限制,而仅仅是可能的变种的说明。
权利要求
1.一种用于在基于IP的网络上建立通信信道的方法,包括接收关于要在至少两个端点之间建立的所需通信信道的端点信息,其中所述的端点信息包括所述至少两个端点中每一个的至少一个公共IP地址;在至少两个公共IP地址之间创建交叉连接;和向至少两个端点提供交叉连接ID。
2.如权利要求1所述的方法,其中,所述交叉连接ID包括公共IP地址和端口ID。
3.如权利要求2所述的方法,其中,所述至少两个端点中的每一个分配有公共IP地址和端口的唯一组合。
4.如权利要求2所述的方法,其中,所述至少两个端点中的每一个分配有公共IP地址和端口的相同组合。
5.如权利要求1所述的方法,其中,从试图在至少两个端点之间建立通信信道的中间设备接收端点信息。
6.如权利要求1所述的方法,更进一步包括在交叉连接ID指定的IP地址和端口,从至少两个端点中第一端点接收一个或多个信息包。
7.如权利要求6所述的方法,更进一步包括将从所述IP地址和端口接收的来自第一端点的一个或多个信息包转发到寻址到至少两个端点中第二端点的外发端口。
8.如权利要求7所述的方法,更进一步包括从第一端点向第二端点转发一个或多个信息包。
9.如权利要求8所述的方法,更进一步包括在交叉连接ID指定的IP地址和端口,从第二端点接收一个或多个信息包。
10.如权利要求9所述的方法,更进一步包括将从所述IP地址和端口接收的来自第二端点的一个或多个信息包转发到寻址到第一端点的外发端口。
11.如权利要求10所述的方法,更进一步包括从第二端点向第一端点转发一个或多个信息包。
12.一种用于在基于IP的网络上至少三个端点之间建立通信信道的方法,包括接收关于要在至少三个端点之间建立的所需通信信道的端点信息,其中所述的端点信息包括所述至少三个端点中每一个端点的至少一个公共IP地址;在至少三个公共IP地址之间创建交叉连接;和向至少三个端点提供交叉连接ID。
13.如权利要求12所述的方法,其中,从试图在至少三个端点之间建立通信信道的中间设备接收所述端点信息。
14.如权利要求13所述的方法,更进一步包括在交叉连接ID指定的IP地址和端口,从至少三个端点中第一端点接收一个或多个信息包。
15.如权利要求14所述的方法,更进一步包括在交叉连接ID指定的IP地址和端口,从至少三个端点中第二端点接收一个或多个信息包。
16.如权利要求15所述的方法,更进一步包括在交叉连接ID指定的IP地址和端口,从至少三个端点中第三端点接收一个或多个信息包。
17.如权利要求16所述的方法,更进一步包括将来自第一和第二端点的一个或多个语音信息包混合,用以创建一个或多个信息包的第一混合集合;将来自第一和第三端点的一个或多个语音信息包混合,用以创建一个或多个信息包的第二混合集合;和将来自第二和第三端点的一个或多个语音信息包混合,用以创建一个或多个信息包的第三混合集合。
18.如权利要求17所述的方法,更进一步包括将一个或多个信息包的第一混合集合输出到寻址到第三端点的端口将一个或多个信息包的第二混合集合输出到寻址到第二端点的端口;和将一个或多个信息包的第三混合集合输出到寻址到第一端点的端口。
19.如权利要求18所述的方法,更进一步包括将一个或多个信息包的第一混合集合转发至第三端点;将一个或多个信息包的第二混合集合转发至第二端点;和将一个或多个信息包的第三混合集合转发至第一端点;
20.如权利要求12所述的方法,其中,所述交叉连接ID包括公共IP地址和端口ID。
21.如权利要求12所述的方法,其中,所述至少三个端点中的每一个端点分配有公共IP地址和端口的唯一组合。
22.如权利要求12所述的方法,其中,所述至少三个端点中的每一个端点分配有公共IP地址和端口的相同组合。
23.一种用于在基于IP的网络上建立通信信道的设备,包括与基于IP的网络连接并在两个或更多端点之间建立连接的呼叫协调器;和与基于IP的网络连接的服务器,所述服务器从呼叫协调器接收关于要在至少两个端点之间建立的所需通信信道的端点信息,其中所述的端点信息包括所述至少两个端点中每一个端点的至少一个公共IP地址,所述服务器在至少两个公共IP地址之间创建交叉连接,且所述服务器通过呼叫协调器向至少两个端点提供交叉连接ID。
24.如权利要求23所述的设备,其中,所述服务器将来自第一和第二端点的一个或多个语音信息包混合,用以创建一个或多个信息包的第一混合集合;将来自第一和第三端点的一个或多个语音信息包混合,用以创建一个或多个信息包的第二混合集合;和将来自第二和第三端点的一个或多个语音信息包混合,用以创建一个或多个信息包的第三混合集合。
25.如权利要求24所述的设备,其中,所述服务器将一个或多个信息包的第一混合集合输出到寻址到第三端点的端口,且将一个或多个信息包的第一混合集合转发到第三端点;将一个或多个信息包的第二混合集合输出到寻址到第二端点的端口,且将一个或多个信息包的第二混合集合转发到第二端点;和将一个或多个信息包的第三混合集合输出到寻址到第一端点的端口,且将一个或多个信息包的第三混合集合转发到第一端点。
全文摘要
在位于相同或不同的NAT或者防火墙之后的多个端点之间,通过虚拟网关(VG)桥联语音和相应的信令传输。VG使用的方法(图1)包括在已接收的公共IP地址(12,图1)之间建立交叉连接,并向呼叫协调器(13,图1)提供交叉连接ID。且呼叫协调器将所述的ID传递给每一个端点(14)。
文档编号H04L29/12GK1586049SQ02822541
公开日2005年2月23日 申请日期2002年11月13日 优先权日2001年11月13日
发明者方正, 克里斯蒂安·卡尔皮科 申请人:通用仪表公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1