多个IP语音接入设备汇聚接入的方法
技术领域:
本发明涉及一种IP语音通讯的方法,尤其涉及一种多个IP语音接入设备汇聚接入的方法。
背景技术:
MGCP(Media Gateway Control Protocol,媒体网关控制协议)是IETF(internet工程工作组)较早定义的媒体网关控制协议,主要从功能的角度定义媒体网关控制器和媒体网关之间的行为,实现比较简单,事件交互的机制也比较简单。MGCP具有实现简单等特点。随着技术的不断研究和推进,传统电路交换网和互联网正在相互融合起来,这正是下一代网络的实现目标。并且,下一代网络的逐渐成熟,使得电信网的核心部分成为单一的分组网络成为可能。而对下一代网络中的重要部分语音传输的研究正越来越深入,也即分组语音技术VoIP(Voice over Internet Protocol,语音因特网协议)。而下一代网络技术已经日渐成熟,在这样的形式下,MGCP在IP(Internet Protocol,因特网协议)语音领域被广泛应用起来。
当前,由于网际网络的IPv4 IP地址的紧缺,以及网络使用团体出于网络安全的考虑,构筑了自己的私网,使私网与公网隔离。因此,公网中的设备无法直接访问私网中的设备,私网中的网络设备也无法直接访问公共网络。MGCP是媒体网关控制协议,在通过MGCP消息创建VoIP通话连接的时候,MGCP消息中指示了接入网关的RTP通道信息,包括IP地址和端口号,由于MGCP是位于UDP(用户数据报协议)的数据区,传统的网关、NAT和Socket代理设备不会对应用层的数据进行处理,因而导致语音流无法在私、公网间交换,从而引起呼叫的无法建立,单通等一系列问题。同时因为IPv4 IP地址资源的紧张,导致网络使用团体很难提供足够的IP地址资源来将团体内部大量小端口IP语音接入设备接入MGC,从而阻碍了IP语音通信技术的推广和应用。
发明内容:
针对现有媒体网关控制方法中所存在的问题和不足,本发明的目的是提供多个IP语音接入设备汇聚接入的方法。
本发明是这样实现的:一种多个IP语音接入设备汇聚接入的方法,包括以下步骤:
在MGC上接入若干VMG(Virtual Media Gateway,虚拟媒体网关),为每个VMG指定相应的域名,并为其分配一公网IP地址和端口号、一私网IP地址和端口号,该二地址分别用于公网通讯和私网通讯,每个VMG连接有若干IP语音接入设备;
为所述VMG设定与之连接的MGC的信息,该信息包括有该MGC的IP地址和MGCP端口号;
将与所述VMG连接的IP语音接入设备的基本信息添加到该VMG的IP语音接入设备配置表中,其中,IP语音接入设备的基本信息包括有IP语音接入设备的地址范围、各自的域名及MGCP端口号;
添加IP语音接入设备的端点标识,并将该端点标识指定在VMG中对应的端点标识上,建立一一对应的关系;将所述MGC和IP语音接入设备各自的IP地址和MGCP端口号分别绑定到所述公网IP地址和端口号、私网IP地址和端口号上。
进一步地,所述VMG包括有:
数据库模块,记录数据的转发规则和方法,同时记录与之连接的MGC和IP语音接入设备的IP地址及MGCP端口号信息,并记录各IP语音接入设备的端点标识,以及与这些端点标识各与对应的VMG的端点标识的映射关系;
RTP报文收发和处理模块,用于RTP报文收发和处理;
RTP通道,用于在不同网络间转发RTP报文的端口组合;
MGCP报文收发模块,用于MGCP报文的收发;
MGCP协议解析模块,负责解析MGCP报文;
MGCP协议业务处理模块,用于对MGCP报文解析的结果进行处理;
MGCP报文收发模块从开放的MGCP端口上收到MGCP报文后,转入MGCP协议解析模块,对MGCP报文进行解析,然后进入MGCP协议业务处理模块,对MGCP报文处理完毕后,修改VMG中记录的各个状态值,MGCP报文收发模块将需要发出的MGCP报文从特定的MGCP端口发出;当RTP报文收发和处理模块从通道的一端收到RTP报文时,从通道的另一端发送。
进一步地,所述MGCP报文收发模块、RTP报文收发和处理模块均是基于IP/UDP协议的。
进一步地,所述IP语音接入设备具体为AG、IAD。
本发明通过在MGC和IP语音接入设备之间设置VMG,将多个IP语音接入设备汇聚接入该VMG内,可以在现有的MGC、软交换、IP语音接入设备不做任何改动、更换的情况下完成同一网络、不同网络之间的MGCP报文处理。并且可以用于隔离IP语音接入设备和软交换设备,从而保护软交换设备的安全。本发明具有良好的可控性和开放性,可以方便进行功能扩展和二次开发,能解决通过同一个VMG接入多个MGC的问题,同时也能实现将多个IP语音接入设备用一个IP地址接入MGC,多个IP语音接入设备通过一个VMG分别接入到若干个指定的MGC中。
附图说明:
下面结合附图,对本发明作出详细描述。
图1为本发明的组网结构示意图;
图2为本发明的VMG端口与IP语音接入设备物理端口的映射关系示意图;
图3为本发明的VMG收到MGC发出的MGCP命令处理流程图示意图;
图4为本发明的VMG收到IP语音接入设备发出的MGCP命令处理流程示意图;
图5为本发明的VMG收到MGC回复的MGCP命令后响应流程示意图;
图6为本发明的VMG收到IP语音接入设备回复的MGCP命令后响应流程示意图。
具体实施方式:
VMG是一个通过收发、解析、处理MGCP、RTP报文来协助MGC和IP语音接入设备完成MGCP、RTP报文交换的功能结合体,具体可以做成一个物理设备或者模块。VMG通常包含有数据库模块,记录了数据转发的规则和方法以及必要的MGC和IP语音接入设备的信息,这些信息包括有IP语音接入设备的地址范围、各自的域名及MGCP端口号等,MGC的IP地址、域名及MGCP端口号等;基于IP/UDP协议的MGCP报文收发模块;MGCP协议解析模块,负责解析MGCP报文;MGCP协议业务处理模块,用于对MGCP报文解析的结果进行处理;RTP报文收发和处理模块,用于RTP报文收发和处理;RTP通道,用于在不同网络间转发RTP报文的一组端口。一个通道分别有两个端口,每个端口面向一个网络,当一个端口收到RTP报文后,将报文从另外一个端口转发出去。本发明正是基于VMG来完成单一IP地址接入多个IP语音接入设备,进而实现了多个IP语音接入设备汇聚接入。
本发明的虚拟媒体网关(VMG)是作为一个逻辑实体存在的。VMG对于MGC来说相当于IP语音接入设备(AG、IAD等语音接入设备),对在IP语音接入设备来说是MGC,通过将多个IP语音接入设备的MGC指定为同一个VMG即可完成通过基于VMG来完成单一IP地址接入多个IP语音接入设备。对真实的MGC来说,真正的IP语音接入设备是透明的,而对于真实的IP语音接入设备来说,真正的MGC同样是透明。通过创建多个VMG可方便的实现若干个IP语音接入设备混合接入若干个MGC中去。
如图2所示,每一个IP语音接入设备的一个端点将会被映射到相应的VMG的端点标识上。多个IP语音接入设备的端点标识将共享一个VMG的域名,即对于MGC只知道VMG上的端点标识,但是不知道这些端点标识在真正的IP语音接入设备上的分布情况,也不知道这些IP语音接入设备的真实域名。
如图1所示,其中,实线表示MGCP报文交换途径,虚线表示公私网RTP报文交换途径,点划线表示私网内RTP报文交换途径。本发明这样实现的:
按照RFC2705所规定的MGCP协议标准,根据具体应用创建若干个VMG对象;
根据MGC中对VMG的设置数据,为VMG指定相应的域名;
为每个VMG分配一个同MGC通讯的IP地址和端口号、一个和IP语音接入设备通讯的IP地址和端口号;为VMG设定MGC的信息,主要是IP地址和MGCP端口号;
将IP语音接入设备的基本信息如IP接入地址范围,域名,MGCP端口号等,添加到VMG的接入设备配置表中;
如图2所示,再添加AG、IAD的端点标识,并指定在VMG中对应的端点标识,使之建立一一对应的映射关系;
分别将开放给MGC和IP语音接入设备的IP地址和端口绑定到VMG上,即VMG对象开放两个UDP端口,一个用于和MGC交换MGCP报文,一个用于和IP语音接入设备交换MGCP报文;
当VMG收到MGC的MGCP命令后,根据端点名查找到对应的IP语音接入网关以及对应的端点名,将VMG的端点和域名替换为对应IP语音接入设备的端点和域名;如果是CRCX/MDCX命令且带有RTP信息,提取出RTP信息,用此RTP信息创建或者设置相关的RTP通道,然后用RTP通道面向IP语音接入设备的RTP端口信息替换MGCP报文中的RTP信息,将处理后的MGCP报文发往IP语音接入设备;
当VMG收到IP语音接入设备的MGCP命令后,产生一个事务ID替换原IP语音接入设备MGCP报文中的事务ID(因为不同的接入设备之间发出的MGCP报文中的事务ID会重复,所以这里需要进行一次替换;替换为VMG的事务ID),替换IP语音接入设备的端点标识和域名替换为对应的VMG的端点标识和域名;
当VMG收到MGC的回复的MGCP响应后,查找响应的相关的IP语音接入设备,将事务ID替换为原事务ID,发往IP语音接入设备;
当VMG收到IP语音接入设备回复的MGCP响应后,检查是否是对CRCX的回应且带有RTP信息,如果有,则提取出RTP信息,用此RTP信息创建或者设置相关的RTP通道,然后用RTP通道面向公网的RTP端口信息替换MGCP报文中的RTP信息,将处理后的MGCP报文发往MGC。
本发明对于一个VMG对象的MGCP报文处理流程分四种情况:收到MGC发出的MGCP命令时;收到IP语音接入设备发出的MGCP命令时;收到MGC回复的MGCP响应时;收到IP语音接入设备回复的MGCP响应时。以下分别进行说明。
如图3所示,VMG对象收到MGC发出的MGCP命令后,查找MGCP报文中所指端点标识对应的IP语音接入设备及在改接入设备上对应的端点名称;替换MGCP报文中的域名为IP语音接入设备的域名;替换MGCP报文中的端点名为其对应的IP语音接入设备的端点名;如果是CRCX,MDCX,检测是否有RTP信息,如果有则进行相关的RTP通道创建或者设置,并把MGCP报文中的RTP信息替换为RTP通道面向私网内的端口的信息;如果是DLCX命令,删除与之相关的RTP通道,将新生成的MGCP报文发往IP语音接入设备。
如图4所示,VMG对象收到IP语音接入设备发出的MGCP命令后,查找该IP语音接入设备的域名和MGCP报文中所指端点标识对应的VMG的端点名;因不同的IP语音接入设备之间发出的MGCP报文中的事务ID会重复,所以这里需要进行一次替换,需要生成一个事务ID,去替换MGCP报文中的事务ID,记录VMG的事务ID对应的IP语音接入设备和IP语音接入设备发出的原事务ID的关联关系,以便在收到MGC响应的时候找到对应的IP语音接入设备和相关信息;替换MGCP报文中的域名为VMG的域名,替换MGCP报文中的端点名为其对应的VMG的端点名;将新生成的MGCP报文发往到MGC。
如图5所示,VMG对象收到MGC回复的MGCP响应后,查找到MGCP报文中的事务ID相关的IP语音接入设备和其发出的原始事务ID,用IP语音接入设备发出的原事务ID替换MGCP报文中的事务ID,并删除该事务ID相关的记录,将新的MGCP报文转发到IP语音接入设备。
如图6所示,VMG对象收到IP语音接入设备回复的MGCP响应后。检查该回复是否是对CRCX命令的回复,如果是且含有RTP信息,则取出RTP信息,用此信息创建或者设置相关的RTP通道,然后将报文中的RTP信息替换为RTP通道中面向外部IP语音接入设备的RTP端口信息,将处理后的MGCP报文转发到MGC。