发明名称 基于NAT-PT的SIP应用层网关的实现方法
摘要 本发明公开一种基于NAT-PT的SIP应用层网关的实现方法,用以在IPv4网络和IPv6网络间转换SIP报文,包括以下步骤:获取SIP报文的标识号、长度;解析消息头第一行,判断SIP报文的类型是请求报文还是响应报文;如果是请求报文,执行请求报文处理流程;如果是响应报文,执行响应报文处理流程。本发明通过转换信息表来记录IP地址和端口转换,通过状态机来管理报文转换中的状态,以及通过地址前缀和地址池来实现IPv4地址到IPv6地址(或者相反)的转换,实现了在IPv4网络和IPv6网络间SIP报文的转换。
申请公布号 CN101257435B 申请公布日期 2011.08.17
申请号 CN200710037713.5 申请日期 2007.02.28
申请人 上海亿人通信终端有限公司 发明人 杨兵;李存
分类号 H04L12/56(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L12/56(2006.01)I
代理机构 上海专利商标事务所有限公司 31100 代理人 左一平
主权项 基于NAT‑PT的SIP应用层网关的实现方法,用以在IPv4网络和IPv6网络间转换SIP报文,其特征在于,包括以下步骤:a.获取SIP报文的标识号、长度;b.解析消息头第一行,判断SIP报文的类型是请求报文还是响应报文;c.如果是请求报文,执行请求报文处理流程,包括:c1.对于INVITE报文和Register报文,执行下列步骤:对报文消息体进行处理,以对消息体中IP地址和端口进行转换;对报文消息头进行处理,以对消息头中IP地址和端口进行转换;建立包含报文标识号,IP地址、端口转换信息条目的转换信息表;根据报文类型为所述转换信息条目设置会话状态标志;c2.对于非INVITE或Register报文,执行下列步骤:根据标识号查找转换信息表;根据查找到的转换信息条目对报文中的IP地址和端口进行转换;根据报文类型为所述转换信息条目设置会话状态标志;d.如果是响应报文,执行响应报文处理流程,包括:根据标识号查找转换信息表,根据查找到的转换信息对报文中的IP地址和端口进行转换;根据响应报文的响应代码和所查找到的转换信息的会话状态标志,修改所述查找到的转换信息,其中所述步骤c1中,对报文消息体进行处理的流程包括:判断所述报文是IPv4报文还是IPv6报文;对于IPv4报文,执行下列步骤:提取消息体中的IPv4地址和端口;以所述IP地址和端口分别查找一静态映射表和动态映射表;根据找到的映射条目中的IPv6地址和端口替换消息体中的IPv4地址和端口;以及更改报文消息头的内容长度;对于IPv6报文,执行下列步骤: 提取消息体中的IPv6地址和端口;以所述IP地址和端口分别查找一转换信息表,若找到对应的转换信息条目,则利用其中的IPv4地址和端口替换消息体中的IPv6地址和端口;若找不到对应的转换信息条目,则以所述IP地址和端口分别查找一静态映射表和一前缀表,利用找到的映射条目中的IPv4地址和端口替换消息体中的IPv6地址和端口;以及更改报文消息头的内容长度;对于IPv4报文,以IP地址和端口查找一静态映射表和动态映射表的步骤包括:判断所述报文是IPv4报文还是IPv6报文;查找动态映射表中是否有匹配的IP地址和端口,若有,则返回相应的IPv6地址,若没有,进入下一步骤;查找静态映射表中是否有匹配的IP地址和端口,若有,则返回相应的IPv6地址,若没有,进入下一步骤;以及根据一前缀表为IPv4地址添加前缀,组成IPv6地址;对于IPv6报文,以IP地址和端口查找一静态映射表和前缀表的步骤包括:判断所述报文是IPv4报文还是IPv6报文;查找前缀表中是否有匹配的IP地址,若有,则返回IPv4地址,若没有,则进入下一步骤;查找静态映射表中是否有匹配的IP地址和端口,若有,则返回相应的IPv4地址,若没有,进入下一步骤;以及从一包含一组IPv4地址和端口的地址池中选择一IPv4地址和端口。
地址 201206 上海市浦东新区川桥路500号