CN101197820B - IPv6 SIP终端与IPv4 SIP终端通讯的方法 - Google Patents

IPv6 SIP终端与IPv4 SIP终端通讯的方法 Download PDF

Info

Publication number
CN101197820B
CN101197820B CN2006101621071A CN200610162107A CN101197820B CN 101197820 B CN101197820 B CN 101197820B CN 2006101621071 A CN2006101621071 A CN 2006101621071A CN 200610162107 A CN200610162107 A CN 200610162107A CN 101197820 B CN101197820 B CN 101197820B
Authority
CN
China
Prior art keywords
sip
ipv4
address
terminal
ipv6
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2006101621071A
Other languages
English (en)
Other versions
CN101197820A (zh
Inventor
赖敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN2006101621071A priority Critical patent/CN101197820B/zh
Publication of CN101197820A publication Critical patent/CN101197820A/zh
Application granted granted Critical
Publication of CN101197820B publication Critical patent/CN101197820B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种IPv6 SIP终端与IPv4 SIP终端通讯的方法,为解决现有技术中多个IPv6终端无法使用同一个IPv4地址通讯的问题而发明。该IPv6 SIP终端与IPv4 SIP终端通讯的方法包括:在IPv4网络内,将IPv6 SIP终端的用户名和IPv6 SIP终端所属的SIP网关在IPv4网络中的IPv4地址,作为IPv6 SIP终端的地址与IPv4 SIP终端通讯; 在IPv6网络内,将IPv6 SIP终端的用户名和IPv6地址作为IPv6 SIP终端的地址与IPv4 SIP终端通讯。实现了在IPv6家庭网络中使用同一IPv4地址与外部IPv4网络通讯,用于IPv6初期与现有IPv4网络共存的网络部署。

Description

IPv6SIP终端与IPv4SIP终端通讯的方法 
技术领域
本发明涉及网络通信领域,特别涉及一种IPv6(因特网协议版本6)网络在部署初期与现有的IPv4(因特网协议版本4)网络进行通讯的方法。 
背景技术
与IPv4协议相比,IPv6具备的一系列先进特性,例如充足的地址空间、自动配置、改进的移动性以及安全性,使其更便于家庭网络的构建。随着IPv6网络部署步伐的加快,将来的家庭网络势必会构建在IPv6之上。但是IPv6网络的部署是一个循序渐进的过程,我们不能指望一夜之间所有的网络全都变成基于IPv6的网络。因此在部署初期,必然是一个IPv6与IPv4共存的时期。这样一来,对部署基于IPv6的家庭网络就很可能会出现这样一种情况(如图1所示):我们部署的IPv6家庭网络仅仅是一个IPv6网络孤岛,它通过一个具有IPv6/IPv4双栈的家庭网关设备来与外部IPv4网络中的IPv4节点进行通讯,或跨过IPv4网络来与其它IPv6网络进行通讯。 
在这种IPv4和IPv6网络共存的情况下,对于IPv6家庭网络中必不可少的基于SIP(初始会话协议)的VoIPv6(Voice over IPv6)终端而言,如何与目前正广泛使用于IPv4网络的SIP VoIP(Voice over Internet Protocol)终端进行正常通讯,就成为一个值得考虑的问题。目前,NAT-PT是一种常用的IPv6与IPv4互相通信的方法,NAT-PT是附带协议转换的网络地址转换器,通过修改协议报头来转换网络地址,使IPv4节点和IPv6节点互通。与一些隧道技术不同,NAT-PT只要求在IPv4和IPv6之间互联的网络转换设备上启用,协议转换的目的是实现IPv4和IPv6协议头之间的转换,地址转换则是为了让IPv4和IPv6网络中的主机互相识别对方。但是由于以下三个原因,它对于我们上面提出的问题并不适用: 
(1)SIP是为了建立媒体会话的应用层协议。当遇到NAT-PT这类协议时就会遇到一些麻烦,因为在SIP包的有效载荷中包含着用于建立会话的地址。NAT-PT是与应用无关的,它仅会对IP包头中的地址进行映射,而不会对SIP包的有效载荷中的地址进行探测。 
(2)NAT-PT的基本思想是为需要进行IPv6与IPv4通信的节点,动态或静态的建立一种一一映射的关系。当将来IPv6家庭网络进行实际部署时,可供分配的IPv4地址必然已是极度匮乏,而家庭网络中又往往会有若干个SIP终端以及可以基于SIP进行通话的其它设备 (如PC)。因此我们不可能为家庭网络中所有这类IPv6设备在与外界IPv4对端进行通话时各分配一个IPv4地址,因此NAT-PT和SIP-ALG组合的解决方案也并不适用此处。较好的方法是所有这类IPv6设备在与外界IPv4对端进行通话时,都使用同一个IPv4地址。 
(3)基于第二点,我们似乎可以用NAPT-PT(带端口号的NAT-PT)来解决这个问题。但答案是否定的。在用NAPT-PT+SIP-ALG或用NAT-PT+SIP-ALG来实现IPv6与IPv4网络中SIP终端之间通话的方法中,在INVITE邀请消息的To头域中用“user@域名”的方式,用域名屏蔽了IPv6与IPv4在地址上的差异。但通常家庭网络是不具有域名的,这样IPv4网络中仅支持IPv4的SIP终端是无法用域名的方式来屏蔽IPv6地址的,它是不能用“user@IPv6地址”的方式直接发起呼叫的。因此用NAPT-PT+SIP-ALG或用NAT-PT+SIP-ALG来实现IPv6与IPv4网络中SIP终端之间通话的方法也不适用于此处。 
发明内容
为克服上述缺陷,本发明的目的在于提供一种IPv6家庭网络中的多个基于SIP的VoIPv6终端,和其外部位于IPv4网络中的基于SIP的VoIP对端,在不使用域名且仅使用一个IPv4地址的情况下进行通讯的IPv6终端与IPv4终端通讯的方法。 
为达到上述发明目的,本发明采用如下技术方案:该IPv6SIP终端与IPv4SIP终端通讯的方法包括: 
在IPv4网络内,将IPv6SIP终端的用户名和IPv6SIP终端所属的SIP网关在IPv4网络中的IPv4地址,作为IPv6SIP终端的地址与IPv4SIP终端通讯; 
在IPv6网络内,将IPv6SIP终端的用户名和IPv6地址作为IPv6SIP终端的地址与IPv4SIP终端通讯。 
其中,IPv6SIP终端为发送端,IPv4SIP终端为接收端时,会话建立阶段具体为: 
(21)IPv6SIP终端向SIP网关发送包括用户名和IPv6地址的SIP消息; 
(22)SIP网关将收到的SIP消息中的IPv6地址映射为IPv4地址后发送到接收端,并建立会话映射表。 
其中,所述的将收到的SIP消息中的IPv6地址映射为IPv4地址具体为: 
(31)SIP网关在会话映射表中记录下发送端的IPv6地址和接收端的IPv4地址的映射关系; 
(32)将目的地址由接收端的IPv4地址映射出的IPv6地址还原为IPv4地址,将源地址 由发送端的IPv6地址映射为SIP网关在IPv4网络中的IPv4地址。 
其中,IPv6SIP终端为接收端,IPv4SIP终端为发送端时,会话建立阶段具体为: 
(41)IPv4SIP终端向SIP网关发送包括用户名和IPv4地址的SIP消息, 
(42)SIP网关将收到的SIP消息中的IPv4地址映射为IPv6地址后发送到接收端,并建立会话映射表。 
其中,所述的将收到的SIP消息中的IPv4地址映射为IPv6地址具体为: 
(51)SIP网关依据接收端的用户名在会话映射表中查找接收端的IPv6地址; 
(52)将目的地址由SIP网关在IPv4网络中的IPv4地址,映射为查找到的IPv6地址,将源地址由发送端的IPv4地址映射为IPv6地址。 
其中,正常通话阶段通过实时传送协议互发消息, 
IPv6SIP终端向IPv4SIP终端发送数据包时,具体为: 
(A1)发送端将数据包的源地址和源端口号分别填写为发送端的IPv6地址和接收端口号,将目的地址和目的端口号分别填写为接收端的IPv4地址映射出的IPv6地址和接收端口号,并将数据包发送到SIP网关; 
(B1)SIP网关根据会话建立阶段建立的会话映射表,将源地址和源端口号替换为SIP网关在IPv4网络中的IPv4地址和SIP网关的接收端口号,将目的地址和目的端口号替换为接收端的IPv4地址和接收端口号,并发送到接收端; 
IPv4SIP终端向IPv6SIP终端发送数据包时,具体为: 
(A2)发送端将数据包的源地址和源端口号分别填写为发送端的IPv4地址和接收端口号,将目的地址和目的端口号分别填写为接收端所属SIP网关在IPv4网络中的IPv4地址和接收端口号,并将数据包发送到SIP网关; 
(B2)SIP网关根据会话建立阶段建立的会话映射表,将源地址和源端口号替换为发送端的IPv4地址映射出的IPv6地址和接收端口号,将目的地址和目的端口号替换为接收端的IPv6地址和接收端口号,并发送到接收端。 
其中,所述的会话映射表中记录SIP网关内的每一个IPv6终端的状态信息,该状态信息包括当前会话状态、会话双方的地址信息以及会话的发起方。 
其中,在通话结束后,将会话映射表中对应的映射关系删除,该删除操作至少包括:将当前会话状态修改为未通话状态。 
由上述技术方案所描述的IPv6SIP终端与IPv4SIP终端通讯的方法,由于IPv6网络内 部的SIP终端通过SIP网关在IPv4网络中的IPv4地址与外部IPv4网络通讯,外部的IPv4SIP终端通过IPv6网关内的SIP终端的用户名不同来识别通讯对端。本发明对通常的IPv6/IPv4双栈家庭网关进行了改进,增加了用于处理SIP会话的SIP网关以及由此SIP网关维护的记录IPv6家庭网络中所有SIP终端当前通话状态的会话映射表。通过在家庭网关中增加的会话映射表、SIP网关和NAPT-PT相互配合,以此来实现不具有域名的IPv6家庭网络,仅使用一个IPv4地址就可以实现家庭网络中的多个基于SIP的VoIPv6终端,和其外部位于IPv4网络中的基于SIP的VoIP对端同时进行通讯。 
附图说明
图1是IPv6家庭网络中SIP终端与外部IPv4SIP终端的通讯概图; 
图2为本发明中使用的SIP网关的会话映射表的结构示例; 
图3为本发明中使用的会话映射表状态一; 
图4为本发明的实施例A4向A6发送INVITE消息的地址映射前后的示意图; 
图5为本发明中使用的会话映射表状态二; 
图6为本发明实施例A6发向A4的OK消息的地址映射前后的示意图; 
图7为本发明中使用的会话映射表状态三; 
图8为本发明中使用的SIP网关建立的NAPT-PT映射表项; 
图9为本发明正常通话阶段的地址和端口映射示意图; 
图10为本发明结束通话后,删除SIP网关建立的NAPT-PT映射表项; 
图11为本发明会话建立、正常通话和通话结束的全过程。 
具体实施方式
下面结合附图对本发明IPv6SIP终端与IPv4SIP终端通讯的方法进行详细描述。 
本发明的核心思想是:在IPv6家庭网络的家庭网关中增加一个SIP网关,并由此SIP网关维护一个用于记录所有会话状态的会话映射表(如图2所示),该会话映射表主要包括会话的发起者、会话双方的地址信息和当前的会话状态。IPv6家庭网关中的SIP网关在IPv6家庭网络内部与外部通话的建立过程、正常通话过程和通话结束过程中起到一种过渡和中转的作用。此SIP网关根据SIP数据包的源地址或目标地址在会话映射表中进行查询,对SIP消息而言,根据查询到的对端地址更改此SIP数据包包含的SIP消息中的地址信息,使所有在该家庭网关内的终端都使用家庭网关的IPv4地址与外部IPv4网络通讯,从而实现整个IPv6 家庭网络中的所有SIP终端可以在只使用一个IPv4地址的情况下同时与其外部位于IPv4网络中的基于SIP的VoIP对端进行通话。同时以“用户名@IPv6家庭网关在IPv4网络中的接口地址”形式向IPv4网络中的SIP终端提供会话建立的对端地址,以此在不使用域名的情况下进行两者的会话通讯。对外部的IPv4网络而言,IPv6家庭网络中的不同的SIP终端是用不同的用户名来区分的。 
IPv6家庭网络中的SIP终端向外部IPv4网络中的SIP终端发送SIP消息的过程如下(以SIP终端A6向A4发送SIP消息为例,如图1所示): 
第一步,SIP终端A6构建一个需要发送的SIP消息。在SIP消息的目的地址中添上被叫方A4的IPv4地址映射出的IPv6地址,即在To头域中添上“0::IPv4地址”,Request-URI中也包含同样的地址。在SIP消息的源地址中添上主叫方A6的名字和IPv6地址,即在From头域中添上主叫方A6的名字和IPv6地址,消息头中Call-ID包含了这个呼叫的标识符,标识符由一个伪随机串和主叫方A6的IPv6地址生成。 
第二步,A6将此SIP消息发送给此IPv6家庭网络中家庭网关,家庭网关通过数据包的目的端口号5060来为SIP网关识别SIP包,当家庭网关收到A6的SIP消息时,因为承载该消息的SIP包具有特定的目的端口号而将该SIP消息转交给家庭网关中的SIP网关。 
第三步,SIP网关收到A6的SIP消息后,需要完成以下三个步骤: 
1、SIP网关首先在会话映射表中记录下此INVITE消息发起方A6的IPv6地址和消息接收方A4的IPv4地址的映射关系,并填写会话映射表中的其他内容,具体内容如图2所示。 
2、会话映射表建立完成以后,SIP网关需要对承载此SIP消息的SIP包进行修改。对SIP消息的消息头部而言,需要将To头域中被叫方A4的IPv4地址映射出的IPv6地址还原为IPv4地址,Request-URI中包含的同样的地址也要还原为IPv4地址。然后将From头域中A6的IPv6地址更改为家庭网关在IPv4网中的接口地址,同时,消息头中Call-ID项中主叫方A6的IPv6地址也同样需要更改为家庭网关在IPv4网中的IPv4接口地址。对SIP消息的消息体而言,SDP会话描述的媒体信息部分中的媒体地址和地址类型也需要更改为家庭网关在IPv4网中的地址。对SDP有效载荷进行的这种修改很可能会变更SDP有效载荷的长度,因此SIP消息头部中的消息内容长度字段也必须进行相应的修改。 
3、修改完成后,SIP网关将此修改后的SIP消息转发给处于IPv4网络中的接收端,即此例中的SIP终端A4。 
IPv4网络中的SIP终端向IPv6家庭网络中的SIP终端发送SIP消息的过程如下(以SIP 终端A4向A6发送SIP消息为例,如图1所示): 
第一步,SIP终端A4构建一个需要发送的SIP消息。在To头域中添上接收方A6的用户名和所在家庭网络的家庭网关在IPv4网中的IPv4接口地址。在From头域中添上发送方A4的名字和IPv4地址,消息头中Call-ID包含了这个呼叫的标识符,标识符由一个伪随机串和主叫方A4的IPv4地址生成。 
第二步,A4将此SIP消息发送给此IPv6家庭网络中的家庭网关。当家庭网关收到A4的SIP消息时,因为承载该消息的SIP包具有特定的目的端口号而将该SIP消息转交给家庭网关中的SIP网关。 
第三步,SIP网关收到A4的SIP消息后,需要完成以下步骤: 
1、SIP网关根据收到的SIP消息头的To头域中的A6的用户名在如图2所示的SIP网关的会话映射表中查找A6的IPv6地址。 
2、用查找到的A6的IPv6地址替换SIP消息头的To头域中的IPv4地址,Request-URI中包含的相同地址也要进行替换。 
3、将From头域中的A4的IPv4地址改为此IPv4地址映射出的IPv6地址,将消息头中Call-ID项中的IPv4地址也替换为A4的IPv4地址映射出的IPv6地址。 
4、SIP网关将修改后的SIP消息转发给SIP终端A6。 
以上就是会话建立阶段的步骤,包括IPv4SIP终端或IPv6SIP终端作为主叫方两种情况,虽然他们建立会话的过程有所不同,但是这两种情况在会话建立完成后进入的正常通话过程是一样的,具体如下: 
会话建立完成后进入正常通话过程中,双方通过RTP协议(Real-time TransportProtocol,实时传送协议)互发消息来进行通话。此时承载语音的数据包通过NAPT-PT协议来穿越IPv6和IPv4的边界。位于IPv6家庭网络中的SIP终端A6向它的位于家庭网络外的IPv4对端SIP终端A4发送承载着语音信息的UDP数据包的过程如下: 
第一步,该数据包的源地址和源端口号分别填写为A6的IPv6地址和接收端口号,而目的地址和目的端口号分别填写为会话对端A4的IPv4地址映射出的IPv6地址和A4的接收端口号; 
第二步,家庭网关中的NAPT-PT根据会话建立阶段建立的映射关系将源地址和源端口号分别进行替换,将源地址和源端口号替换为家庭网关在IPv4网中的IPv4地址和家庭网关的接收端口号,并将目的地址还原为A4的IPv4地址,然后进行转发。 
而位于家庭网络外的IPv4SIP终端A4向它的位于IPv6家庭网络中的SIP终端A6对端发送承载着语音信息的UDP数据包的过程如下: 
第一步,该数据包的源地址和源端口号分别填写为A4的IPv4地址和接收端口号,目的地址和目的端口号分别填写为家庭网络在IPv4中的接口地址和A6的接收端口号; 
第二步,在经过家庭网关的NAPT-PT后,该数据包的目的地址和目的端口号分别根据NAPT-PT映射表中的映射更改为A6的IPv6地址和接收端口号,源地址更改为A4的IPv4地址映射出的IPv6地址,然后进行转发。 
对由SIP网关维护的会话映射表的描述如下: 
1、会话映射表中的内容反映了IPv6家庭网络中的所有SIP终端当前的通话状态。 
2、IPv6家庭网络中的每一个SIP终端都会在会话映射表中保留有一项,而不管此SIP终端是否正在通话。 
3、当IPv6家庭网络中的SIP终端与外部IPv4网络中的SIP终端进行通话时,会在会话映射表中对应的表项中填写映射关系及会话的发起者、当前会话状态、会话双方的地址信息,以便于查找。 
4、当IPv6家庭网络中的SIP终端与外部IPv4网络中的SIP终端结束通话时,应将会话映射表中对应表项的映射关系删除。此处的删除,不是指将这一映射表项整个删除,而是仅仅将该映射表项中的其中三项:家庭网络外会话对端IPv4地址、会话发起方、当前会话状态分别改写为无、无、未通话状态。 
本发明对通常的IPv6/IPv4双栈家庭网关进行了改进,增加了用于处理SIP会话的SIP网关以及由此SIP网关维护的记录IPv6家庭网络中所有SIP终端当前通话状态的会话映射表。通过在家庭网关中增加的会话映射表、SIP网关和NAPT-PT相互配合,以此来实现不具有域名的IPv6家庭网络,仅使用一个IPv4地址就可以实现家庭网络中的多个基于SIP的VoIPv6终端,和其外部位于IPv4网络中的基于SIP的VoIP对端同时进行通讯。 
采用本发明所述方法,使不具有域名的IPv6家庭网络仅使用一个IPv4地址就可以实现家庭网络中的多个基于SIP的VoIPv6终端,和其外部位于IPv4网络中的基于SIP的VoIP对端同时进行通讯。IPv6家庭网络中的SIP终端分别使用不同的端口号来接收IPv4网络中的会话对端发送的承载语音的数据包。这样一来,对IPv4网络中的会话对端而言,它们通过相同的目的地址和不同的目的端口号来区分承载语音的数据包的接收方究竟是IPv6家庭网络中的那一个SIP终端。所以应避免IPv6家庭网络中的SIP终端使用相同的端口号来接收IPv4 网络中的会话对端发送的承载语音的数据包。 
图1中的IPv6家庭网络中有三个基于IPv6的SIP终端A6、B6和C6。假设其中的B6正在和处于IPv4网中对端B4进行通话,C6未进行通话,而此时处于IPv4网中SIP终端A4想要与A6建立通话。此时的会话映射表的内容如图5所示。 
在图3中需要注意的是,纵使未进行通话,IPv6家庭网络中的每一个SIP终端都会在会话映射表中保留有一项(如SIP终端C6和A6)。这样做的目的是便于IPv6家庭网络外的仅支持IPv4的SIP终端向IPv6家庭网络内的SIP终端主动发起呼叫时的处理。 
这些SIP终端的IP地址见图1中所示。IPv6家庭网络中的家庭网关是具有IPv6/IPv4双栈的设备,它在IPv6家庭网络中的接口地址为2880:5E34::27AB:FA82:3,而在IPv4公共网络中的接口地址为202.117.30.15。 
下面针对上述的会话建立过程叙述2个具体实施例。 
实施例1、外部的IPv4网络中的SIP终端主动发起会话请求 
图11中描述了整个会话建立、正常通话和通话结束的过程,下面将该过程分段讲述。 
一、会话建立阶段 
IPv6家庭网络中的SIP终端的呼叫地址正常情况下应该为“用户名@IPv6地址”的形式,比如A6@2880:5E34:2053:FF:50AB:3F50。但是IPv4网络中的SIP终端是不支持IPv6地址的,所以我们以“用户名@家庭网关在IPv4网络中的接口地址”的形式(如A6@202.117.30.15)来向IPv4公共网络中的SIP终端提供可供呼叫的地址,而将地址的转换工作留给家庭网关来处理。由此可见,对外部的IPv4网络而言,IPv6家庭网络中的不同的SIP终端是用不同的用户名来区分的。 
当IPv6家庭网络外的仅支持IPv4的SIP终端向IPv6家庭网络内的SIP终端主动发起呼叫时,比如图1中SIP终端A4向SIP终端A6主动发起呼叫,A4会向A6@202.117.30.15发送INVITE邀请消息。 
这里有两点值得注意,(1)此处的地址202.117.30.15是IPv6家庭网关在IPv4网络中的接口地址;(2)如果是向B6发起呼叫,则向B6@202.117.30.15发送INVITE邀请消息。IPv6家庭网络用同一个IPv4地址202.117.30.15和不同的用户名(如A6和B6)来区分家庭网络内部不同的SIP终端。 
INVITE消息的构建,如图4所示,A4首先创建一个INVITE请求。在To头域中添上A6@202.117.30.15,Request-URI中也包含同样的地址。在From头域中添上主叫方A4的名 字和IPv4地址,即sip:A4@202.117.30.27。消息头中Call-ID包含了这个呼叫的标识符,标识符由一个伪随机串和主叫方A4的IPv4地址生成。 
然后A4将此构建好的INVITE请求发送给此IPv6家庭网络中的家庭网关,。IPv6的家庭网关收到此INVITE消息后,因为承载该消息的SIP包的端口号5060而将其转交给SIP网关处理。SIP网关事实上以IPv6家庭网络的家庭网关中的一个应用进程的形式出现,专门用来处理IPv6家庭网络中基于IPv6的SIP终端与外部处于IPv4网中的SIP终端建立通话、进行通话、终止通话过程中遇到的问题。 
SIP网关收到A4的INVITE请求后,需要完成以下四项工作: 
第一、SIP网关根据收到的INVITE消息头的To头域A6@202.117.30.15中的用户名A6在如图3所示的SIP网关的会话映射表中进行查找。查找到A6的表项后,检查其当前会话状态属性是否为“未通话”。 
如果此属性不是“未通话”,则向发起方A4返回一个Busy Here(486)消息,以通知A4它呼叫的用户当前正忙。 
如果此属性是“未通话”,则首先对会话映射表中的A6表项进行修改。分别将表项中的家庭网络外会话对端IPv4地址、会话发起方、当前会话状态等信息分别改写为A4的地址202.117.30.27、A4、正在通话中等。以此在会话映射表中记录下此INVITE消息发起方A4的IPv4地址和消息接收方A6的IPv6地址的映射关系,填写结果如图5所示。 
第二、会话映射表建立完成以后,SIP网关需要对承载此INVITE消息的SIP包进行修改。SIP网关必须能够将穿越IPv4/IPv6边界的每一个SIP报文进行修改。此例中,用查找到的A6的IPv6地址2880:5E34:2053:FF:50AB:3F50替换INVITE消息头的To头域中的IPv4地址,替换结果为A6@2880:5E34:2053:FF:50AB:3F50。Request-URI中包含的地址也要如To域中一样进行更改。而From头域和Call-ID项中A4的IPv4地址需要更改为此IPv4地址映射出的IPv6地址(即0::202.117.30.27)。更改前后的数据包地址如图4所示。 
对INVITE消息的消息体而言,SDP会话描述的媒体信息部分中的媒体地址也需要更改为A4的IPv4地址映射出的IPv6地址0::202.117.30.27。对SDP有效载荷进行的这种修改很可能会变更SDP有效载荷的长度,因此SIP消息头部中的消息内容长度字段也必须进行相应的修改。 
第三、SIP网关将修改后的INVITE消息转发给SIP终端A6。 
第四、最后SIP网关需要构造一个Trying(100)消息,并发送给SIP会话请求的发起 端SIP终端A4,以此来告诉发起端A4已将INVITE消息送出,连接正在进行中。 
对于收到此事实上来自于A4@202.117.30.27的INVITE消息的被叫方SIP终端A6而言,它并不知道呼叫它的对端是一个基于IPv4的SIP终端。它通过分析此INVITE消息认为呼叫它的是A4@0::202.117.30.27(通过消息头中的From字段)。 
当被叫方SIP终端A6收到呼叫请求后,它可以接受或拒绝该呼叫,但不管怎样都必须返回应答。在被叫方A6接受呼叫以前,A6会向A4@0::202.117.30.27发送Ringing(180)消息告诉会话发起方正在等待被叫方接听,当前正在震铃。它通过收到的INVITE请求来生成To,From,Call-ID等头域的域值,以此来构建Ringing(180)消息。 
当被叫方A6接受呼叫时,一个OK(200)应答消息会发送给它所认为的会话主叫方A4@0::202.117.30.27(实际为A4@202.117.30.27),如图6所示。OK(200)应答消息的构建方法与前面讨论的Ringing(180)是类似的。 
IPv6的家庭网关收到此OK消息后,同样因为承载该消息的SIP包的端口号5060而将其转交给SIP网关处理。SIP网关需要完成以下四项工作: 
第一,SIP网关首先根据收到的OK消息头的To头域A4@0::202.117.30.27在如图5所示的SIP网关的会话映射表中进行查找,以找到相应的会话表项。 
第二,SIP网关将To头域中A4的IPv4地址映射出的IPv6地址0::202.117.30.27还原成IPv4地址202.117.30.27;将From头域中的A6的IPv6地址更改为家庭网关在IPv4网络中的接口地址202.117.30.15,即修改为A6@202.117.30.15。其它的一些如Request-RUI和Call-ID头域也要进行类似的修改,修改前后的地址信息如图6所示。 
第三,OK消息中的SDP中,包含有在会话建立好后正常通话时用于接收语音数据包的接口地址和端口号。SIP网关将语音包接收地址由A6的IPv6地址变更为家庭网关在IPv4网络中的接口地址,并在会话映射表中记录下在OK消息的SDP中指定的端口号,如图7所示。 
第四,SIP网关将修改后的OK消息包发送给会话发起端A4。 
主叫方SIP终端A4收到被叫方A6的OK应答消息后,向被叫方发送ACK证实请求。ACK证实请求的发送过程与之前所述的主叫方A4发送给被叫方A6的INVITE消息是几乎一样的,在此不再赘述。 
但需要指出的是,SIP网关在转发完ACK证实请求后,会根据会话映射表建立一个NAPT-PT映射表项。映射关系为“A6打算接收语音数据包的IPv6地址和端口号”与“家庭网关的IPv4接口地址和A6打算接收语音数据包的端口号”。如果以SIP终端A6与SIP终端A4的会话为 例即(IPv6地址2880:5E34:2053:FF:50AB:3F50、端口号9999)与(IPv4地址202.117.30.15、端口号9999)之间的映射,如图8所示。此后A4和A6就可以直接通过NAPT-PT来收发承载语音的数据包了。当被叫方A6收到ACK消息后,主被叫间的会话建立。至此,SIP建立会话的任务就完成了。SIP会话建立完成后,SIP网关会对如图7所示的会话映射表进行更新。将与A4和A6会话相关的条目中当前会话状态项由“会话建立中”更改为“通话中”。 
二、正常通话阶段 
正常通话时,双方通过RTP协议(Real-time Transport Protocol,实时传送协议)互发消息来进行通话。此时承载语音的数据包通过NAPT-PT协议来穿越IPv6和IPv4的边界。 
以SIP终端A6与SIP终端A4的通话为例。如图9所示,当位于IPv6家庭网络中的SIP终端A6通过RTP协议向它的位于家庭网络外的IPv4对端SIP终端A4发送承载着语音信息的UDP数据包时,该数据包的源地址和源端口号分别为A6的IPv6地址2880:5E34:2053:FF:50AB:3F50和9999,而目的地址和目的端口号分别为会话对端A4的IPv4地址映射出的IPv6地址0::202.117.30.27和5100。家庭网关的NAPT-PT根据会话建立阶段建立的映射关系(2880:5E34:2053:FF:50AB:3F50端口号9999与202.117.30.15端口号9999)将源地址和源端口号分别更改为202.117.30.15和9999,并将目的地址还原为A4的IPv4地址202.117.30.27,然后进行转发。 
而当位于家庭网络外的IPv4对端SIP终端A4通过RTP协议向位于IPv6家庭网络中的SIP终端A6发送承载着语音信息的UDP数据包时,该数据包的源地址和源端口号分别为A4的IPv4地址202.117.30.27和5100,目的地址和目的端口号分别202.117.30.15和9999。在经过家庭网关的NAPT-PT后该数据包的源地址和源端口号分别为A4的IPv4地址映射出的IPv6地址0::202.117.30.27和5100,而目的地址和目的端口号分别为A6的IPv6地址2880:5E34:2053:FF:50AB:3F50和端口号9999,然后进行转发。 
三、通话结束阶段 
正常通话结束后,通话的任何一方都可以向对方发送“再见”(BYE)消息,请求终止会话。接收方只需回送一个Ack响应,则会话就结束了。这些会话结束阶段进行的消息交互的处理过程,与前面描述的消息处理过程是类似的。 
所不同之处在于,当通话结束后,SIP网关会将会话映射表中此会话对应的会话映射表项复原,如图5所示。然后SIP网关会将会话建立阶段建立的用于收发语音数据包的NAPT-PT表项删除(如图10所示)。至此,整个通话过程结束。 
实施例2、IPv6家庭网络中的SIP终端主动发起会话请求 
一、会话建立阶段 
以SIP终端A6向A4发起呼叫为例,如图2所示,A6首先创建一个INVITE请求。在To头域中添上被叫方A4的IPv4地址映射出了IPv6地址0::202.117.30.27,Request-URI中也包含同样的地址。在From头域中添上主叫方A6的名字阳IPv6地址,即sip:A6@2880:5E34:2053:FF:50AB:3F50。此处应该注意,与一般情况不同,From头域中主叫方的IPv6地址在通过家庭网关后都会被SIP网关替换成一个相同的IPv4地址。所以为了区分IPv6家庭网络中不同的SIP终端,From头域中主叫方的名字是不能相同的。也就是说,IPv6家庭网络中的每一个SIP终端需要起不同的用户名。消息头中Call-ID包含了这个呼叫的标识符,标识符由一个伪随机串和主叫方A6的IPv6地址生成。 
然后A6将此INVITE请求发送给此IPv6家庭网络中的家庭网关。家庭网关通过数据包的目的端口号5060来为SIP网关识别SIP消息包。当家庭网关收到A6的INVITE请求时,因为承载该消息的SIP包的目的端口号为5060而将其转交给SIP网关。 
SIP网关收到A6的INVITE请求后,需要完成以下四项工作: 
第一、SIP网关首先在会话映射表中记录下此INVITE消息发起方A6的IPv6地址和消息接收方A4的IPv4地址的映射关系,并填写会话映射表中的内容,如图2所示。 
第二、会话映射表建立完成以后,SIP网关需要对承载此INVITE消息的SIP包进行修改。此例中,对INVITE消息的消息头部而言,需要将To头域中被叫方A4的IPv4地址映射出了IPv6地址0::202.117.30.27还原为IPv4地址202.117.30.27,Request-URI中包含的同样的地址也要进行还原。From头域中A6的IPv6地址更改为家庭网关在IPv4网中的接口地址202.117.30.15。同时,消息头中Call-D项中主叫方A6的IPv6地址也同样需要更改为家庭网关在IPv4网中的接口地址202.117.30.15。 
对INVITE消息的消息体而言,SDP会话描述的媒体信息部分中的媒体地址也需要更改为家庭网关在IPv4网中的地址202.117.30.15。对SDP有效载荷进行的这种修改很可能会变更SDP有效载荷的长度,因此SIP消息头部中的消息内容长度字段也必须进行相应的修改。之所以要进行这些更改是因为仅支持IPv4的接收端是无法处理IPv6地址的。 
第三、修改完成后,SIP网关将此修改后的INVITE消息转发给处于IPv4网络中的被叫方,即此例中的SIP终端A4。 
第四、最后SIP网关需要构造一个Trying(100)消息,并发送给SIP会话请求的发起 端SIP终端A6,以此来告诉发起端A6已将INVITE消息送出,连接正在进行中。 
对于收到此事实上来自于A6@2880:5E34:2053:FF:50AB:3F50的INVITE消息的被叫方SIP终端A4而言,它并不知道呼叫它的对端是一个基于IPv6的SIP终端。它通过分析此INVITE消息认为呼叫它的是A6@202.117.30.15(通过消息头中的From字段)。 
当被叫方SIP终端A4收到呼叫请求后,它可以接受或拒绝该呼叫,但不管怎样都必须返回应答。在被叫方A4接受呼叫以前,A4会向A6@202.117.30.15发送Ringing(180)消息告诉会话发起方正在等待被叫方接听,当前正在震铃。它通过收到的INVITE请求来生成To,From,Call-ID等头域的域值,以此来构建Ringing(180)消息。 
IPv6的家庭网关收到此Ringing消息后,同样因为承载该消息的SIP包的端口号5060而将其转交给SIP网关处理。 
首先,SIP网关根据收到的Ringing消息头的To头域A6@202.117.30.15在如图2所示的SIP网关的会话映射表中进行查找。用查找到的A6的IPv6地址2880:5E34:2053:FF:50AB:3F50替换Ringing消息头的To头域中的IPv4地址,替换结果为A6@2880:5E34:2053:FF:50AB:3F50。同样,消息头中Call-ID项中的IPv4地址202.117.30.15也需要替换为A6的IPv6地址2880:5E34:2053:FF:50AB:3F50。而From头域则需要将被叫方A4的IPv4地址更改为此IPv4地址映射出来的IPv6地址0::202.117.30.27。然后,SIP网关将修改后的Ringing消息转发给SIP终端A6。 
当被叫方A4接受呼叫时,一个OK(200)应答消息会发送给被叫方A4所认为的会话主叫方A6@202.117.30.15(实际为A6@2880:5E34:2053:FF:50AB:3F50)。OK(200)应答消息的构建方法与前面讨论的Ringing(180)是类似的。 
IPv6的家庭网关和SIP网关收到此OK消息后进行的处理与上面述及的对Ringing消息处理也类似。不同之处在于OK消息中比Ringing消息多包含了用于会话媒体类型协商的消息体(采用SDP来描述)。SIP网关将来自IPv4对端A4的OK消息中带的SDP会话描述的媒体信息部分中的媒体地址和地址类型更改为A4的IPv4地址映射出来的IPv6地址,(即0::IPv4地址)。同样,对SDP有效载荷进行的这种修改很可能会变更SDP有效载荷的长度,因此SIP消息头部中的消息内容长度字段也必须要进行相应的修改。然后,SIP网关将修改后的OK消息转发给SIP终端A6。 
主叫方SIP终端A6收到被叫方的OK应答消息后,向被叫方发送ACK证实请求。ACK证实请求的发送过程与之前所述的主叫方A6发送给被叫方A4的INVITE消息是几乎一样的,在 此不再赘述。需要指出的是,SIP网关在转发完ACK证实请求后,会建立一个NAPT-PT映射表项。映射关系为“A6打算接收语音数据包的IPv6地址和端口号”与“家庭网关的IPv4接口地址和A6打算接收语音数据包的端口号”。此后A6和A4就可以直接通过NAPT-PT来收发承载语音的数据包了。当被叫方A4收到ACK消息后,主被叫间的会话建立。至此,SIP建立会话的任务就完成了。SIP会话建立完成后,SIP网关会对会话映射表进行更新。将与A6和A4会话相关的条目中当前会话状态项由“会话建立中”更改为“正常通话中”。 
二、正常通话阶段 
正常通话时,双方通过RTP协议(Real-time Transport Protocol,实时传送协议)互发消息来进行通话。此时承载语音的数据包通过NAPT-PT协议来穿越IPv6和IPv4的边界。在正常通话时的处理和前面已经论述的IPv4SIP终端主动发起呼叫的情况类似,具体如下: 
以SIP终端A6与SIP终端A4的通话为例。如图9所示,当位于IPv6家庭网络中的SIP终端A6通过RTP协议向它的位于家庭网络外的IPv4对端SIP终端A4发送承载着语音信息的UDP数据包时,该数据包的源地址和源端口号分别为A6的IPv6地址2880:5E34:2053:FF:50AB:3F50和9999,而目的地址和目的端口号分别为会话对端A4的IPv4地址映射出的IPv6地址0::202.117.30.27和5100。家庭网关的NAPT-PT根据会话建立阶段建立的映射关系(2880:5E34:2053:FF:50AB:3F50端口号9999与202.117.30.15端口号9999)将源地址和源端口号分别更改为202.117.30.15和9999,并将目的地址还原为A4的IPv4地址202.117.30.27,然后进行转发。 
而当位于家庭网络外的IPv4对端SIP终端A4通过RTP协议向位于IPv6家庭网络中的SIP终端A6发送承载着语音信息的UDP数据包时,该数据包的源地址和源端口号分别为A4的IPv4地址202.117.30.27和5100,目的地址和目的端口号分别202.117.30.15和9999。在经过家庭网关的NAPT-PT后该数据包的源地址和源端口号分别为A4的IPv4地址映射出的IPv6地址0::202.117.30.27和5100,而目的地址和目的端口号分别为A6的IPv6地址2880:5E34:2053:FF:50AB:3F50和端口号9999,然后进行转发。 
三、通话结束阶段 
在通话结束阶段的处理和前面已经论述的IPv4SIP终端主动发起呼叫的情况类似,正常通话结束后,通话的任何一方都可以向对方发送“再见”(BYE)消息,请求终止会话。接收方只需回送一个Ack响应,则会话就结束了。这些会话结束阶段进行的消息交互的处理过程,与前面描述的消息处理过程是类似的。 
所不同之处在于,当通话结束后,SIP网关会将会话映射表中此会话对应的会话映射表项复原,如图5所示。然后SIP网关会将会话建立阶段建立的用于收发语音数据包的NAPT-PT表项删除(如图10所示)。至此,整个通话过程结束。 

Claims (8)

1.一种IPv6 SIP终端与IPv4 SIP终端通讯的方法,其特征在于:
在IPv4网络内,将IPv6 SIP终端的用户名和IPv6 SIP终端所属的SIP网关在IPv4网络中的IPv4地址,作为IPv6 SIP终端的地址与IPv4 SIP终端通讯;
在IPv6网络内,将IPv6 SIP终端的用户名和IPv6地址作为IPv6 SIP终端的地址与IPv4SIP终端通讯。
2.按照权利要求1所述的IPv6 SIP终端与IPv4 SIP终端通讯的方法,其特征在于:IPv6SIP终端为发送端,IPv4 SIP终端为接收端时,会话建立阶段具体为:
(21)IPv6 SIP终端向SIP网关发送包括用户名和IPv6地址的SIP消息;
(22)SIP网关将收到的SIP消息中的IPv6地址映射为IPv4地址后发送到接收端,并建立会话映射表。
3.按照权利要求2所述的IPv6 SIP终端与IPv4 SIP终端通讯的方法,其特征在于:所述的将收到的SIP消息中的IPv6地址映射为IPv4地址具体为:
(31)SIP网关在会话映射表中记录下发送端的IPv6地址和接收端的IPv4地址的映射关系;
(32)将目的地址由接收端的IPv4地址映射出的IPv6地址还原为IPv4地址,将源地址由发送端的IPv6地址映射为SIP网关在IPv4网络中的IPv4地址。
4.按照权利要求1所述的IPv6 SIP终端与IPv4 SIP终端通讯的方法,其特征在于:IPv6SIP终端为接收端,IPv4 SIP终端为发送端时,会话建立阶段具体为:
(41)IPv4 SIP终端向SIP网关发送包括用户名和IPv4地址的SIP消息,
(42)SIP网关将收到的SIP消息中的IPv4地址映射为IPv6地址后发送到接收端,并建立会话映射表。
5.按照权利要求4所述的IPv6 SIP终端与IPv4 SIP终端通讯的方法,其特征在于:所述的将收到的SIP消息中的IPv4地址映射为IPv6地址具体为:
(51)SIP网关依据接收端的用户名在会话映射表中查找接收端的IPv6地址;
(52)将目的地址由SIP网关在IPv4网络中的IPv4地址,映射为查找到的IPv6地址,将源地址由发送端的IPv4地址映射为IPv6地址。
6.按照权利要求2、3、4或5所述的IPv6 SIP终端与IPv4 SIP终端通讯的方法,其特征在于:正常通话阶段通过实时传送协议互发消息,
IPv6 SIP终端向IPv4 SIP终端发送数据包时,具体为:
(A1)发送端将数据包的源地址和源端口号分别填写为发送端的IPv6地址和接收端口号,将目的地址和目的端口号分别填写为接收端的IPv4地址映射出的IPv6地址和接收端口号,并将数据包发送到SIP网关;
(B1)SIP网关根据会话建立阶段建立的会话映射表,将源地址和源端口号替换为SIP网关在IPv4网络中的IPv4地址和SIP网关的接收端口号,将目的地址和目的端口号替换为接收端的IPv4地址和接收端口号,并发送到接收端;
IPv4 SIP终端向IPv6 SIP终端发送数据包时,具体为:
(A2)发送端将数据包的源地址和源端口号分别填写为发送端的IPv4地址和接收端口号,将目的地址和目的端口号分别填写为接收端所属SIP网关在IPv4网络中的IPv4地址和接收端口号,并将数据包发送到SIP网关;
(B2)SIP网关根据会话建立阶段建立的会话映射表,将源地址和源端口号替换为发送端的IPv4地址映射出的IPv6地址和接收端口号,将目的地址和目的端口号替换为接收端的IPv6地址和接收端口号,并发送到接收端。
7.按照权利要求6所述的IPv6 SIP终端与IPv4 SIP终端通讯的方法,其特征在于:所述的会话映射表中记录SIP网关内的每一个IPv6终端的状态信息,该状态信息包括当前会话状态、会话双方的地址信息以及会话的发起方。
8.按照权利要求7所述的IPv6 SIP终端与IPv4 SIP终端通讯的方法,其特征在于:在通话结束后,将会话映射表中对应的映射关系删除,该删除操作至少包括:将当前会话状态修改为未通话状态。
CN2006101621071A 2006-12-05 2006-12-05 IPv6 SIP终端与IPv4 SIP终端通讯的方法 Expired - Fee Related CN101197820B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2006101621071A CN101197820B (zh) 2006-12-05 2006-12-05 IPv6 SIP终端与IPv4 SIP终端通讯的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2006101621071A CN101197820B (zh) 2006-12-05 2006-12-05 IPv6 SIP终端与IPv4 SIP终端通讯的方法

Publications (2)

Publication Number Publication Date
CN101197820A CN101197820A (zh) 2008-06-11
CN101197820B true CN101197820B (zh) 2011-04-20

Family

ID=39547969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101621071A Expired - Fee Related CN101197820B (zh) 2006-12-05 2006-12-05 IPv6 SIP终端与IPv4 SIP终端通讯的方法

Country Status (1)

Country Link
CN (1) CN101197820B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512909A (zh) * 2018-03-14 2018-09-07 日照职业技术学院 一种基于物联网的计算机远程控制系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1661990A (zh) * 2004-02-23 2005-08-31 横河电机株式会社 协议版本转换器
CN1674565A (zh) * 2005-05-10 2005-09-28 中国科学院计算技术研究所 一种用于网络地址转换和协议翻译中的应用层网关的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1661990A (zh) * 2004-02-23 2005-08-31 横河电机株式会社 协议版本转换器
CN1674565A (zh) * 2005-05-10 2005-09-28 中国科学院计算技术研究所 一种用于网络地址转换和协议翻译中的应用层网关的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
储妮晟,赖敏.3G中IPv6SIP电话与公网中IPv4SIP电话通讯的方法.广东通信技术 2005年第5期.2005,(2005年第5期),全文.
储妮晟,赖敏.3G中IPv6SIP电话与公网中IPv4SIP电话通讯的方法.广东通信技术 2005年第5期.2005,(2005年第5期),全文. *

Also Published As

Publication number Publication date
CN101197820A (zh) 2008-06-11

Similar Documents

Publication Publication Date Title
CN101060464B (zh) 地址变换装置、消息处理方法及网络系统
CN101385315B (zh) 使用本地网络的私用ip地址的通信
EP1396140B1 (en) Network address and port translation
CN100512097C (zh) 消息变换装置及ip电话装置
US8184659B2 (en) Network system for communicating between different IP versions with multiple translators
CN102413147B (zh) 代理服务器
CN100521606C (zh) 在两个用户代理之间建立对等连接的方法
US20040139230A1 (en) SIP service method in a network having a NAT
US20050185672A1 (en) IPv6/IPv4 translator
CN100484083C (zh) 一种地址转换方法及实现该方法的混合地址转换路由器
US7443842B2 (en) Communication control apparatus
CN101795303A (zh) 能够连接到具有本地地址域的网络的方法及系统
WO2002103981A2 (en) Providing telephony services to terminals behind a firewall and/or network address translator
US20030161295A1 (en) Method and apparatus for voice over IP network address translation
CN100505686C (zh) 实现移动IPv6节点与IPv4通信伙伴通信的方法
US20060193319A1 (en) System and method for providing packet communication service
CN101325580B (zh) 基于nat-pt的ftp应用层网关的实现方法
CN100574474C (zh) 一种通讯系统中建立通讯业务连接的方法
Minoli Voice over IPv6: architectures for next generation VoIP networks
CN104935681B (zh) Sip注册服务器地址的获得方法、设备及系统
CN101197820B (zh) IPv6 SIP终端与IPv4 SIP终端通讯的方法
CN100586104C (zh) 基于路由的会话初始化协议透明穿越网络地址转换的方法
CN101184065B (zh) 一种实现IPv6与IPv4网络终端语音通讯的方法和设备
US20050286494A1 (en) Method and apparatus for dynamic VoIP phone protocol selection
JP3889003B2 (ja) 複数nat/fw装置接続に対応したsip−algの呼関連リソース管理方法及びそのsip−alg

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20080611

Assignee: SANECHIPS TECHNOLOGY Co.,Ltd.

Assignor: ZTE Corp.

Contract record no.: 2017440020015

Denomination of invention: Ipv6 SIP terminal and IPv4 SIP terminal communication method

Granted publication date: 20110420

License type: Common License

Record date: 20170310

EE01 Entry into force of recordation of patent licensing contract
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110420

CF01 Termination of patent right due to non-payment of annual fee