媒体网关控制协议消息可靠传送机制的实现方法

文档序号:7906605阅读:237来源:国知局
专利名称:媒体网关控制协议消息可靠传送机制的实现方法
技术领域
本发明涉及IP网络电话中媒体网关控制协议(Meadia Gateway ControlProtocolMGCP),特别是媒体网关控制协议消息可靠传送机制的实现方法。
MGCP协议应用在媒体网关控制器(Meadia Gateway ControllerMGC)和媒体网关(Meadia GatewayMG)之间,并且分离网关结构对于IP电话的大规模应用,特别是IP电话进入家庭具有十分重要的意义,因此,MGCP协议正受到广泛的重视。IETF网关控制工作组(MEAGCO)在该协议的基础提出了MEAGCO协议,ITU-T SG16也在该协议的基础上指定了相应的建议(H.248)。
在媒体网关控制协议(Meadia Gateway Control Protocol,以下称MGCP协议)的RFC2705建议中提到,由于MGCP协议是在UDP上传送,MGCP消息可能会丢失。如果没有及时收到响应,MGCP会重发命令。对于大多数命令来说,重复执行此命令会产生混乱,例如,多次执行创建连接命令会使网关状态成为不可预测。为此,命令传输过程必须保证同一命令只执行一次。在RFC文档中,定义该特性为“At Most Once”。
本发明的实现方法是在媒体网关控制协议栈中至少增设尚未收到响应的媒体网关控制器(MGC)命令表、正在处理的媒体网关(MG)命令表和已发出响应的媒体网关(MG)命令表当MGCP发送模块发送命令时,将该命令记录于媒体网关控制器(MGC)命令表中,当MGCP发送响应消息时,将其记录于已发出响应的媒体网关(MG)命令表中,并删除正在处理的媒体网关(MG)命令表中的相应项;当MGCP消息接收模块接收到MGCP命令时,首先在已发出响应的媒体网关(MG)命令表中进行查找,如果有匹配项则根据该匹配项内容重发响应消息,否则再对正在处理的媒体网关(MG)命令表进行查找,如果正在处理的媒体网关(MG)命令表中有匹配项则放弃该命令,否则在该表记录该项;当MGCP消息接收模块接收到MGCP响应消息时,则在尚未收到响应的媒体网关控制器(MGC)命令表查找,如果找到匹配项则传递该响应消息,否则放弃该消息。
通过本发明,实现了以下几点同一个MGCP消息最多执行一次。MGCP发送端在发送MGCP命令之后,正确处理MGCP接收端回送的响应。MGCP接受端在接收到MGCP命令之后,正确处理该命令,并且回送正确响应。由于本发明简单,而且实现了对MGCP消息的高效率处理,可支持电信级设备大容量通信。
表二和表三分别是正在处理的MG命令表和已发出响应的MG命令表,这两张表的存储结构都是采用以事务ID为索引的链表结构,如图2所示。这种结构有一个事先分配好的,大小为65535(事务ID的最大值)的数组结构。此数组中每一个元素的值是指向一个链表头的指针,而这个元素的数组下标正好等于此事务ID。如果空闲,指针为NULL。这样可以根据MG的事务ID做索引直接找到对应的链表,然后以IP地址做主键,在链表中找到对应的结构。在下面的例子中,数组下标等于M和N的数组元素指向两个不同的链表头,这两个链表的事务ID分别等于M和N。
对上述三个表的操作如下当MGCP处理模块从上层模块接收到MGCP消息之后,对该消息进行编码,编码完成之后发送给消息的接收方。然后,判断该消息的类型,如果该消息是MGCP命令,则向表一插入一个表项;如果该消息为MGCP响应消息,则以TransID和IP地址为主键,删除表二中相应的表项,在表三插入新的表项,表示已处理完接收的命令并给该命令的发送方发送响应消息。
当MGCP消息接收模块从网络中接收到MGCP消息包时,首先进行解码,解码完成之后,判断消息类型A、如果是MGCP命令,则以TransID和源IP地址为主键查表三。如果在表三有匹配项,则表示该命令已被处理完但命令的发送方未收到响应消息而重发的命令,因此,不再处理该命令,而是根据表三中的内容重发响应,结束处理流程;如果在表三中没有匹配项,则以TransID和源IP地址为主键查表二,如果在表二中有匹配项,表示该命令已接收过且正在处理中,因此放弃该命令消息,结束消息处理流程;如果在表二中没有匹配项,则可以判断,该消息是一个新命令消息,则在表二中插入一个新表项,并将该消息传递给上层消息模块,结束消息处理流程。
B、如果是响应消息,则以TransID为索引查找表一,如果在表一中没有匹配项,则说明该消息为错误消息,放弃;如果在表一中有匹配,则可以判断该消息为合法的响应消息,将该消息传递给上层协议栈调用模块,结束处理。
对于表一中的MGCP命令项,如果在规定的时间内未收到响应消息,则按重发机制重发相应的命令。对其中已超过设定时间的表项给予删除。
权利要求
1.一种媒体网关控制协议(MGCP)消息可靠传送机制的实现方法,其特征在于在媒体网关控制协议栈中至少增设尚未收到响应的媒体网关控制器(MGC)命令表、正在处理的媒体网关(MG)命令表和已发出响应的媒体网关(MG)命令表当MGCP发送模块发送命令时,将该命令记录于媒体网关控制器(MGC)命令表中,当MGCP发送响应消息时,将其记录于已发出响应的媒体网关(MG)命令表中,并删除正在处理的媒体网关(MG)命令表中的相应项;当MGCP消息接收模块接收到MGCP命令时,首先在已发出响应的媒体网关(MG)命令表中进行查找,如果有匹配项则根据该匹配项内容重发响应消息,否则再对正在处理的媒体网关(MG)命令表进行查找,如果正在处理的媒体网关(MG)命令表中有匹配项则放弃该命令,否则在该表记录该项;当MGCP消息接收模块接收到MGCP响应消息时,则在尚未收到响应的媒体网关控制器(MGC)命令表查找,如果找到匹配项则传递该响应消息,否则放弃该消息。
2.根据权利要求1所述的实现方法,其特征在于尚未收到响应的媒体网关控制器(MGC)命令表采用链表结构,其中的记录项用处理事务标识符(TransactionID)做索引。
3.根据权利要求1或2所述的实现方法,其特征在于尚未收到响应的媒体网关控制器(MGC)命令表中的项在超过设定时间时被删除。
4.根据权利要求1所述的实现方法,其特征在于正在处理的媒体网关(MG)命令表和已发出响应的媒体网关(MG)命令表采用链表结构,其中的记录项用事务标识符做索引。
全文摘要
本发明公开了一种媒体网关控制协议(MGCP)消息可靠传送机制的实现方法,该方法是在媒体网关控制协议栈中增设尚未收到响应的MGC命令表、正在处理的MG命令表和已发出响应的MG命令表。当MGCP发送模块发送命令时,将该命令记录于MGC命令表中,当MGCP发送响应消息时,将其记录于已发出响应的MG命令表中;当接收到MGCP命令时先在已发出响应的MG命令表中查找匹配项,根据查表的不同结果进行不同的处理;当接收到MGCP响应消息时,则在尚未收到响应的MGC命令表查找,如果找到匹配项则传递该响应消息,否则放弃该消息。本发明保证了同一个MGCP消息最多执行一次,而且实现了对MGCP消息的高效率处理,可支持电信级设备大容量通信。
文档编号H04M11/06GK1457182SQ0211899
公开日2003年11月19日 申请日期2002年5月10日 优先权日2002年5月10日
发明者冒晓鸣 申请人:北京艾尼通科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1