IPv6/IPv4 Translation for SIP Applications-
Socket-Layer Translator and SIPv6 Translator
Whai Whai - - En Chen En Chen
Research Assistant Professor
Department of Computer Science and Information Engineering National Chiao Tung University
wechen@csie.nctu.edu.tw
Outline
Introduction to IPv6 Transition Mechanisms
Socket-layer Translator
SIPv6 Translator
Conclusion
IPv4–to–IPv6 Transition Strategy
Dual Stack
Reduce the cost invested in transition by running both IPv4/IPv6 protocols on the same machine .
Tunneling
Reduce the cost in wiring by re-using current IPv4 routing infrastructures as a virtual link.
Translation Translation
Allow IPv6 realm to access the rich contents already developed
on IPv4 applications
Dual Stack (RFC 2893)
傳輸層 (TCP/UDP) IPv4
網路介面層 應用層
IPv6
Dual-stack
•Dual Stack表示同時裝有IPv4與IPv6兩個通訊協定 堆疊。
•當兩台機器通訊時,可以使用IPv4通訊,或是IPv6 通訊。
•當IPv6已經廣泛地被使用時,就可以移除IPv4通訊 協定,而全面使用IPv6協定。
Dual Stack Example
Applications TCP/UDP IPV4 IPV6
Device Driver
V4/V6 network V4/V6 network
V6 network
V6 network
V4 network
V4 network TCP/UDP IPV4 IPV6
Device Driver Routing protocols
如果所有的機器都是Dual Stack,還需要其他的轉換機制嗎?
Host Router
6to4 Tunnel (RFC 3056)
IPv6 IPv4 Network
IPv6 Network 6to4
Router2 6to4
Router1
131.243.129.44 140.110.199.250 Network prefix:
2002:83F3:812C::/48
Network prefix:
2002:8C6E:C7FA::/48
= =
E0 E0
router2#
interface Ethernet0
ip address 140.110.199.250 255.255.255.0 ipv6 address 2002:8C6E:C7FA:1::/64 eui-64 interface Tunnel0
no ip address
ipv6 unnumbered Ethernet0 tunnel source Ethernet0 tunnel mode ipv6ip 6to4 ipv6 route 2002::/16 Tunnel0
6to4 Tunnel:
– Is an automatic tunnel method
– Gives a prefix to the attached IPv6 network – 2002::/16 assigned to 6to4
–
Requires one global IPv4 address on each site6to4 Tunnel Example
IPv6 IPv4 Network
IPv6 Network 6to4
Router2 6to4
Router1
131.243.129.44 140.110.199.250 Network prefix:
2002:83F3:812C::/48
Network prefix:
2002:8C6E:C7FA::/48
E0 E0
2002:83F3:812C:1::3
2002:8C6E:C7FA:2::5
IPv6 SRC 2002:83F3:812C:1::3
IPv6 SRC 2002:83F3:812C:1::3
DataData IPv6 DEST 2002:8C6E:C7FA:2::5
IPv6 DEST 2002:8C6E:C7FA:2::5
IPv6 SRC 2002:83F3:812C:1::3
IPv6 SRC 2002:83F3:812C:1::3
DataData IPv6 DEST 2002:8C6E:C7FA:2::5
IPv6 DEST 2002:8C6E:C7FA:2::5 IPv6 SRC
2002:83F3:812C:1::3 IPv6 SRC 2002:83F3:812C:1::3
DataData IPv6 DEST 2002:8C6E:C7FA:2::5
IPv6 DEST 2002:8C6E:C7FA:2::5
IPv4 SRC 131.243.129.44
IPv4 SRC 131.243.129.44
IPv4 DEST 140.110.199.250
IPv4 DEST 140.110.199.250
Address Translations
Bump-In-the-Stack Bump-In-the-Application
Key Components for BIS/BIA
Extension Name Resolver
Address Mapper
Translator (Function
Mapper)
Translation Middleware
BIS or BIA Functions
BIS/BIA name resolving flow
BIS/BIA Translation flow
Introduction to NAT-PT
NATPT (Network Address Translation and Protocol Translation)
Translate IPv6 to IPv4 headers, and vice versa.
Also includes ICMP headers
NAPTPT (NATPT with Port translation)
Network Address and Protocol Translation with Port Translation
Various IPv6 clients can utilize one IP to connect Internet
ALG (Application Layer Gateway)
ALG assists NAT to deal with upper-layer protocols
Translate Upper-layer protocols (such as: DNS, FTP)
Also called DNS_ALG and FTP ALG
Network Architecture for IPv6 Translation
IPv4 Network
Translator Translator
IPv6 Network
UA1
DNS-ALG DNS DNS
UA2 DNS2
DNS1
3ffe:3600:1::3
3ffe:3600:1::2
140.113.87.2 140.113.87.1
The NAT-PT translator configuration
•Address Pool: 140.113.87.51-60
•NAT-PT Prefix: 3ffe:3600:2::/96 The NAT
The NAT--PT translator configurationPT translator configuration
•Address Pool: 140.113.87.51-60
•NAT-PT Prefix: 3ffe:3600:2::/96 ua2.ipv4.nctu.edu.tw ua1.ipv6.nctu.edu.tw
NAT-PT operations with DNS-ALG (IPv6ÆIPv4)
UA1 DNS1 DNS2 UA2
DNS Query (AAAA)
DNS Response (AAAA)
DNS Query (AAAA)
DNS Response (AAAA)
DNS Query (A) DNS Response (A)
ICMPv6 Message (MAC Address Query)
ARP Message (MAC Address Query) ICMPv6 Message (MAC Address Response)
ARP Message (MAC Address Response)
DNS-ALG
NAT-PT +
IPv6 Packet
IPv4 Packet
1.1 1.2
1.4 1.5 1.7
1.8
1.9 1.10
1.3
1.6
1.11 1.12
1.13 1.14
IPv6 Network IPv4 Network
NAT-PT operations with DNS-ALG (IPv4ÆIPv6)
ICMPv6 Message (MAC Address Response)
UA1
DNS-ALG
NAT-PT + DNS2 UA2
DNS1
DNS Response (A) 2.3
2.6
ICMPv6 Message (MAC Address Query)
ARP Message (MAC Address Query) ARP Message (MAC Address Response)
DNS Query (A) DNS Query (A)
DNS Query (AAAA)
DNS Response (A) DNS Response (AAAA)
IPv4 Packet
IPv6 Packet
2.1 2.2
2.4 2.5
2.7 2.8
2.9
2.10 2.12 2.11
2.13 2.14
IPv4 Network
IPv6 Network
SIIT (Stateless IP/ICMP Translation)
RFC 2765
Translating from IPv4 to IPv6
Data
Transport Layer Header
IPv4 Header
Data
Transport Layer Header
Fragment Header (If Present)
IPv6
Header
Translating IPv4 Headers into IPv6 Headers - If IPv4 DF is set.
IPv6 in NAT-PT Mapping table Destination Address
High-order 96 bits = IPv6 prefix
Low-order 32 bits = IPv4 source address Source Address
IPv4 TTL - 1 Hop Limit
IPv4 Protocol field Next Header
IPv4 Total length – IPv4 IHL Payload Length
0 Flow Label
0 Traffic Class
6 Version
Value IPv6 Header Fields
Translating IPv4 Headers into IPv6 Headers - If IPv4 DF is set.
Version IHL [4] TOS [8]
Identification [16]
Total Length [16]
Fragment Offset [13]
0
DFMFTTL [8] Protocol [8] Header Checksum [16]
Source Address [32]
Destination Address [32]
Version Traffic Class [8]
Payload Length [16]
Flow Label [20]
Max. Hop [8]
Next Header [8]
Source Address [128]
Destination Address [128]
IPv4 Header
IPv6
Header
Translating IPv4 Headers into IPv6 Headers - If IPv4 DF is not set.
Fragment Header Next Header
IPv4 Total length – IPv4 IHL + 8 (Fragment Header) Payload Length
Value IPv6 Header Fields
IPv4 Fragment Offset field Fragment Offset
IPv4 Protocol field Next Header
High-order 16 bits = 0
Low-order 16 bits = IPv4 Identification Identification
IPv4 More Fragment(MF) bit M Flag
Value Fragment Header
Next Header [8] Res. [8] Fragment Offset [13]
Res. MFIdentification [32]
Translating IPv4 Headers into IPv6 Headers - If IPv4 DF is not set.
Version IHL [4] TOS [8]
Identification [16]
Total Length [16]
Fragment Offset [13]
0
DFMFTTL [8] Protocol [8] Header Checksum [16]
Source Address [32]
Destination Address [32]
Version Traffic Class [8]
Payload Length [16]
Flow Label [20]
Max. Hop [8]
Next Header [8]
Source Address [128]
Destination Address [128]
IPv4 Header
IPv6 Header
Fragment
Header
Translating ICMPv4 Headers into ICMPv6 Headers - ICMP Query Message
Silently drop
Silently drop (Undefine) Silently drop (Undefine) Silently drop (Undefine) Type = 128/129
ICMPv6(Type)
Silently drop (Single Hop) Silently drop (Single Hop)
Unknown ICMP4 types ICMP Router Solicit.(10) ICMP Router Adver.(9)
Address Mask Request(17)/ Reply(18) Timestamp Request(13) / Reply(14) Information Request(15) / Reply(16) Echo Request(8) / Reply(0)
ICMPv4(Type)
ICMP Header
Type [8] Code [8] Checksum [16]
Checksum [16]Message Body [32]
:
Message Body [32]
:
Translating ICMPv4 Headers into ICMPv6 Headers - ICMP Error Message
Type = 4, Code=0, Pointer to the correspon. Field 0
12 (Parameter Problem)
Type = 1, Code = 4 (port unreachable) 3
Type = 2, Code = 0 (Packet too Big) 4
Type = 1, Code = 0 5
Type = 1, Code = 0 6/7/8
Type = 1, Code = 1 (Administratively Prohibited) 9/10
Type = 1, Code = 0 11/12
Type = 4, Code = 1, Pointer to 6NexHead 2
Unknow error message 11 (Time Exceed) 4 (Source Quench) 5 (Redicrect)
3 (Destination Unreachable) ICMPv4(Type)
Silently drop
Type = 3, Code=0/1
Silently drop (Obsoleted in ICMPv6) Silently drop (Single Hop)
Type = 1, Code = 0 (no route to destination) ICMPv6
0/1 0/1 Code
Translating from IPv6 to IPv4
Data
Transport Layer Header
IPv4 Header
Data
Transport Layer Header
Fragment Header (If Present)
IPv6
Header
Translating IPv6 Headers into IPv4 Headers - If there is no IPv6 Fragment header.
IPv6 Next Header Protocol
Recompute Header Checksum
IPv6 Hop Limit – 1 Time to Live
0 Fragment Offset
Destination address of IPv6 Low-order 32 bits Destination Address
IPv4 in NAT-PT Mapping table Source Address
MF = 0, DF = 1 Flags
0 Identification
Payload Length + IPv4 IHL Total Length
0 ToS and Precedence
5 (no IPv4 option) Internet H. L.
4 Version
Value IPv4 Header Fields
Translating IPv6 Headers into IPv4 Headers - If there is a IPv6 Fragment header.
Next Header in Fragment header Protocol
Fragment Offset in Fragment header Fragment Offset
MF = M in the Fragment header, DF = 1 Flags
Identification in Fragment header Identification
Payload Length - IPv4 IHL + 8(Fragment header) Total Length
Value IPv4 Header Fields
Translating ICMPv6 Headers into ICMPv4 Headers - ICMPv6 Query Message
Silently drop
Silently drop (Single Hop & Undefine) Type = 8/0
ICMPv4(Type)
Silently drop (Single Hop) Unknown ICMP6 types
Neighbor Discover messages (133 – 137) MLD Multicast Listener Query/Report/Done (130/131/132)
Echo Request(128) / Reply(129) ICMPv6(Type)
Translating ICMPv6 Headers into ICMPv4 Headers - ICMPv6 Error Message
Type =12, Code = 0 other
Type = 3, Code = 1 (host unreachable) 2
Type = 3, Code = 1 (host unreachable) 3
Type = 3, Code = 3 (port unreachable) 4
Type = 3, Code = 10 (Admin. Prohibited) 1
Unknown error message 11 (Parameter Problem) 3 (Time Exceeded) 2 (Packet Too Big)
1 (Destination Unreachable) ICMPv6(Type)
Silently drop
Type = 3, Code = 2 (protocol unreachable) Type = 11, Code = 0/1
Type = 3, Code = 4 (fragmentation needed) Type = 3, Code = 1 (host unreachable) ICMPv4
1 0/1 0 0 Code
Checksum Modification
Internet checksum use 16-bits 1’s complement checksum
2 kinds of policy
Re-Compute Algorithm
Adjustment Algorithm
Adjustment Algorithm Adjustment Algorithm Re-Compute Algorithm
Policy
Adjustment Algorithm UDP
TCP
ICMPv6 Header ÍÎ ICMPv4 Header IPv6 Header ÍÎ IPv4 Header
Case
Socket-Layer Translator
System Architecture of SLT and ALGs
Microsoft Winsock Component
Windows XP/2003
NDIS Driver Framework PC Hardware
TCP/IPv6 Base Service
UDP/IPv6 Base Service
TCP/IPv4 Base Service
UDP/IPv4 Base Service
ALGs ALG Manager
Function Mapper Name Resolver
Address Mapper
Other Applications
HTTP TELNET DNS FTP SIP a
b c
d
3 1
e
4 2
5
System Architecture of SLT and ALGs
a b
c d
e
3 2 1
4
5 6
Example of UDP Call Flow
Example of TCP Call Flow
Development Status
Socket-layer Translator can translate most Winsock applications using NAT-friendly protocol
FTP-ALG and SIP-ALG can translate FTP and SIP applications respectively.
Tested Applications
NAT-friendly: Netscape (HTTP), Telnet
DNS
FTP: CuteFTP, FileZilla, SmartFTP
SIP: CCL SkinUA 0.8
Snapshot of TELNET and Analyzer
Snapshot of NETSCAPE and Analyzer
Snapshot of FileZilla and Analyzer
Compare IPv4 and IPv6 FTP Commands
229 Entering…(|||<port>|) RFC-2428 EPSV
227 Entering…(a1,a2,a3,a4,p1,p2) RFC-959 PASV
200 OK EPRT |<net-prt>|<addr>|<port>|
RFC-2428
200 OK PORT a1,a2,a3,a4,p1,p2
RFC-959
Successful Response FTP Command
Item
Reference
Performance Evaluation of SLT and FTP-ALG
Client
OS: Windows XP SP1
FTP Client
SmartFTP IPv4 mode
SmartFTP IPv6 mode
SmartFTP IPv4 mode with SLT and FTP-ALG
Actions: Download files with size from 10KB to 2G
Server
OS: linux Fedora Core 1
FTP Server: vsftpd
Transmission Delay (sec)
Size
Mode
10KB 100KB 1MB 10MB 100MB 500MB 1GB 2GB
IPv4 1 1 1 1 10 49 101 204
IPv6 1 1 1 1 10 52 105 215
SLT 1 1 1 1 11 53 108 219
Transmission Delay
-30 20 70 120 170 220
size 10K 100K 1M 10M 100M 500M 1G 2G
File Size (Byte)
Delay (sec)
pure ipv6 pure ipv4 Socket-layer Translator
Performance Test (FTP) cont.
Difference among Three Modes
0 2 4 6 8 10 12 14 16
10K 100K 1M 10M 100M 500M 1G 2G
File Size (Byte)
Difference (sec) IPv6-IPv4
SLT-IPv4 SLT-IPv6
Comparison of Transition Mechanisms
Mechanisms
Items Manual Modification BIA BIS Socket-layer Translator Source Codes Required Not required Not required Not required
Applicability Modified codes All socket-based programs
All IP-based Programs
All socket-based programs
P2P Security Support Yes Yes No Yes
Translation of NAT
friendly protocols Yes Yes Yes Yes
Support of SIP and
FTP Yes No No Yes
SIPv6 Translator
Abstract
Since Voice over IP (VoIP) phones can efficiently utilize the network and save a lot of money for users, there are increasingly people employ
personal computers, notebooks, and PDA with VoIP Phone to communicate with each other.
VoIP is a peer-to-peer service, and connecting through Internet requires large number of global Internet identifiers.
Though network address translation (NAT) can help to reduce the address requirements, NAT cannot offer incoming calls directly.
IPv6 provides large addressing space and is the best choice for VoIP phones.
However, VoIPv6 phones should be able to communicate with existing VoIPv4 systems.
Consequently, we will propose an VoIPv6 translator to connect VoIPv6
phones with popular Internet.
Proposed VoIPv6 Solutions
Since IP addresses are not enough for peer-to-peer service such as VoIP, the IPv6 is the best answer for next generation Internet.
Though VoIPv6 phones hold global identifications, VoIPv6 phones cannot directly connect VoIPv4 phones through Internet.
Therefore this paper proposed an NAT-PT translator with SIP-ALG to assist VoIPv6 phones in communicating with VoIPv4 phones.
The target of the proposed translator should be capable of handling incoming and outgoing calls within IPv6 domain and simultaneously providing transparent translation for users.
The SIP-ALG should cooperate with existent modules such as
DNS-ALG and FTP-ALG.
SIP-based VoIPv6 Evolution Scenarios
IPv6 Network IPv4 Network
Scenario 1
Scenario 2
SIP-ALG / NAT-PT
Scenario 3
Scenario 4
SIPv4 UA
SIPv4 UA
SIPv4 UA
SIPv4 UA SIPv6 UA
SIPv6 UA
SIPv6 UA
SIPv6 UA
SIPv4 Server
SIPv4 Server SIPv6 Server
SIPv6 Server
SIP-ALG / NAT-PT
SIP-ALG / NAT-PT
SIP-ALG / NAT-PT
SIP UA registration while Initiating
UA3 SIP-ALG SIPv4 Server
3.1 REGISTER sip.ipv4.nctu.edu.tw Via: SIP/2.0/UDP [3ffe:3600:1::4]:5060 To: <sip:1234@ipv4.nctu.edu.tw>
From:<sip:3456@ipv4.nctu.edu.tw>
Contact:<sip:1234@ [3ffe:3600:1::3]:5060>
IPv4 Network
3.2 REGISTER sip.ipv4.nctu.edu.tw Via: SIP/2.0/UDP 140.113.87.53:5061 To: <sip:1234@ipv4.nctu.edu.tw>
From:<sip:3456@ipv4.nctu.edu.tw>
Contact:<sip:1234@ 140.113.87.52:5061>
3.3 200 OK
Via: SIP/2.0/UDP 140.113.87.53:5061 To: <sip:1234@ipv4.nctu.edu.tw>
From:<sip:3456@ipv4.nctu.edu.tw>
Contact:<sip:1234@ 140.113.87.52:5061>
3.4 200 OK
Via: SIP/2.0/UDP [3ffe:3600:1::4]:5060 To: <sip:1234@ipv4.nctu.edu.tw>
From:<sip:3456@ipv4.nctu.edu.tw>
Contact:<sip:1234@ [3ffe:3600:1::3]:5060>
IPv6 Network
(IPv4->IPv6)
UA1
SIP-ALG
NAT-PT SIPv4 Server UA2
4.1 INVITE sip:1234@sip.ipv4.nctu.edu.tw Via: SIP/2.0/UDP 140.113.87.2:5060 Contact: <sip:5678@sip.ipv4.nctu.edu.tw>
c=IN IP4 140.113.87.2 m=Audio 9000 RTP/AVP 0 4 8 4.2 INVITE sip:1234@140.113.87.52:5061
Via: SIP/2.0/UDP 140.113.87.40:5060 Via: SIP/2.0/UDP 140.113.87.2:5060 Contact: <sip:5678@sip.ipv4.nctu.edu.tw>
c=IN IP4 140.113.87.2 m=Audio 9000 RTP/AVP 0 4 8 4.3 INVITE sip:1234@[3ffe:3600:1::3]:5060
Via: SIP/2.0/UDP [3ffe:3600:2::140.113.87.40]:5060 Via: SIP/2.0/UDP 140.113.87.2:5060
Contact: <sip:5678@sip.ipv4.nctu.edu.tw>
c=IN IP6 3ffe:3600:2::140.113.87.2 m=Audio 9000 RTP/AVP 0 4 8
4.4 200 OK
Via: SIP/2.0/UDP [3ffe:3600:2::140.113.87.40]:5060 Via: SIP/2.0/UDP 140.113.87.2:5060
Contact: sip:1234@sip.ipv4.nctu.edu.tw c=IN IP6 3ffe:3600:1::3
m=Audio 9000 RTP/AVP 0
4.5 200 OK
Via: SIP/2.0/UDP 140.113.87.40:5060 Via: SIP/2.0/UDP 140.113.87.2:5060 Contact: <sip:1234@sip.ipv4.nctu.edu.tw>
c=IN IP4 140.113.87.52 m=Audio 9002 RTP/AVP 0
4.6 200 OK
Via: SIP/2.0/UDP 140.113.87.2:5060 Contact: <sip:1234@sip.ipv4.nctu.edu.tw>
c=IN IP4 140.113.87.52 m=Audio 9002 RTP/AVP 0
4.7 ACK sip:1234@sip.ipv4.nctu.edu.tw Via: SIP/2.0/UDP 140.113.87.2:5060 Contact: <sip:5678@sip.ipv4.nctu.edu.tw>
4.8 ACK sip:1234@140.113.87.52:5061 Via: SIP/2.0/UDP 140.113.87.40:5060 Via: SIP/2.0/UDP 140.113.87.2:5060 Contact: <sip:5678@sip.ipv4.nctu.edu.tw>
4.9 ACK sip:1234@[3ffe:3600:1::3]:5060
Via: SIP/2.0/UDP [3ffe:3600:2::140.113.87.40]:5060 Via: SIP/2.0/UDP 140.113.87.2:5060
Contact: <sip:5678@sip.ipv4.nctu.edu.tw>
IPv6 Network IPv4 Network
(IPv6->IPv4)
SIP-ALG NAT-PT
UA1 SIPv4 Server UA2
5.1 INVITE sip:5678@sip.ipv4.nctu.edu.tw Via: SIP/2.0/UDP [3ffe:3600:1::3]:5060 Contact: sip:1234@sip.ipv4.nctu.edu.tw c=IN IP6 3ffe:3600:1::3
m=Audio 9000 RTP/AVP 0 4 8
5.2 INVITE sip:5678@sip.ipv4.nctu.edu.tw Via: SIP/2.0/UDP 140.113.87.52:5061 Contact: sip:1234@sip.ipv4.nctu.edu.tw c=IN IP4 140.113.87.52
m=Audio 9004 RTP/AVP 0 4 8
5.3 INVITE sip:5678@140.113.87.2 Via: SIP/2.0/UDP 140.113.87.40:5060 Via: SIP/2.0/UDP 140.113.87.52:5061 Contact: sip:1234@sip.ipv4.nctu.edu.tw c=IN IP4 140.113.87.52
m=Audio 9004 RTP/AVP 0 4 8
5.4 200 OK
Via: SIP/2.0/UDP 140.113.87.40:5060 Via: SIP/2.0/UDP 140.113.87.52:5061 Contact: sip:5678@sip.ipv4.nctu.edu.tw c=IN IP4 140.113.87.2
m=Audio 9000 RTP/AVP 0 5.5 200 OK
Via: SIP/2.0/UDP 140.113.87.52:5061 Contact: sip:5678@sip.ipv4.nctu.edu.tw c=IN IP4 140.113.87.2
m=Audio 9000 RTP/AVP 0 5.6 200 OK
Via: SIP/2.0/UDP [3ffe:3600:1::3]:5060 Contact: sip:5678@sip.ipv4.nctu.edu.tw c=IN IP6 3ffe:3600:2::140.113.87.2 m=Audio 9000 RTP/AVP 0
5.7 ACK sip:5678@sip.ipv4.nctu.edu.tw Via: SIP/2.0/UDP [3ffe:3600:1::3]:5060
Contact: sip:1234@sip.ipv4.nctu.edu.tw 5.8 ACK sip:5678@sip.ipv4.nctu.edu.tw Via: SIP/2.0/UDP 140.113.87.52:5061 Contact: sip:1234@sip.ipv4.nctu.edu.tw
5.9 ACK sip:5678@140.113.87.2 Via: SIP/2.0/UDP 140.113.87.40:5060 Via: SIP/2.0/UDP 140.113.87.52:5061 Contact: sip:1234@sip.ipv4.nctu.edu.tw
IPv6 Network IPv4 Network
SIP Message (initiated from SIPv6 UA)
INVITE sipv4@[3ffe:3600:2::10.113.131.4]:5060SIP/2.0 Expires: 180
Content-Type: application/sdp
Via: SIP/2.0/UDP [3ffe:3600:1:0:20c:6eff:fe1e:55da]:5060;branch=1FV1xhfvxGJOK@rWckdAKOA To: <sipv4@[3ffe:3600:2::10.113.131.4]>
From: sipv6@[3ffe:3600:1:0:20c:6eff:fe1e:55da]
Call-ID:
CSeq: 100 INVITE
Contact: sipv6@[3ffe:3600:1:0:20c:6eff:fe1e:55da]:5060 Content-Length: 249
User-Agent: CCL's SIPv6 UA Accept: application/sdp v=0
o=CCL'sSIPv6UA 17045 11864 IN IP6 3ffe:3600:1:0:20c:6eff:fe1e:55da s=SIP Call
c=IN IP6 3ffe:3600:1:0:20c:6eff:fe1e:55da t=0 0
m=audio 29118RTP/AVP 0 101 a=rtpmap:0 pcmu/8000
a=rtpmap:101 telephone-event/8000
SIP Signaling
SDP
Signaling
SIP與SDP標頭中,含有Caller的IPv6位址, 3ffe:3600:1:0:20c:6eff:fe1e:55da
SIP的標頭中,
含有Callee的IPv6位址, 3ffe:3600:2::10.113.131.4
SIP Message ( translated by SIP-ALG)
INVITE sipv410.113.131.4:5060SIP/2.0 Expires: 180
Content-Type: application/sdp
Via: SIP/2.0/UDP 10.113.131.101:5060;branch=1FV1xhfvxGJOK@rWckdAKOA To: <sipv4@10.113.131.4>
From: sipv6@10.113.131.101 Call-ID:
CSeq: 100 INVITE
Contact: sipv6@10.113.131.101:5060 Content-Length: 196
User-Agent: CCL's SIPv6 UA Accept: application/sdp v=0
o=CCL'sSIPv6UA 17045 11864 IN IP4 10.113.131.101 s=SIP Call
c=IN IP4 10.113.131.101 t=0 0
m=audio 2918RTP/AVP 0 101 a=rtpmap:0 pcmu/8000
a=rtpmap:101 telephone-event/8000
SIP Signaling
SDP
Signaling
SIP與SDP標頭中,Caller經過SIP-ALG轉換的IPv4位址, 10.113.131.101
SIP的標頭中,
Callee經過SIP-ALG轉換的IPv4位址, 10.113.131.4
SIPv6 UA Initiated Registration
SIPv6 UA Session Setup
Network Architecture of SIPv6 Translator
SIPv6 UA IPv6 Network
IPv4 Internet
Cell Phone
SIPv6 Translator
SIPv6 Analyzer
SIPv4 Analyzer
SIP Proxy
sip.ipv6.club.tw
Telephone CCL Vontel
SkinUA Windows Messenger 4.7
PingTel 2.1.10 IP Phone snom 200
IP Phone
Cisco 7940 Series IP Phone
Cisco 2600 Series PSTN Gateway
Vontel PSTN Gateway CCL PCA
NTP SIPv6 UA IPtel SER
SIP User Agents and SIPv6 Translator
PSTN Gateways
SIP/SDP Translation
SIPv6 UA to Pingtel (IPv6 SIP UA)
SIPv4 UA (Pingtel) to SIPv6 UA
HTTP Test
Telnet Test
Windows Messenger 4.7
Solution : modified “From” header field in SIP.
Cisco IP Phone 7940 Series
* 未修改SIP訊息中的From與To欄位
Solution : modified “From” and “To” header fields in SIP.
Cisco PSTN Gateway
* 未修改SIP訊息中的From與To欄位 * 未修改SDP訊息中的o欄位
Problem: when SIPv6 UA dials my cellular phone number, Cisco PSTN Gateway returns “200 OK” to SIPv6 UA. But SIPv6 UA
doesn’t send “ACK” to PSTN Gateway.
Solution : modified “From”&”To” header fields in SIP and “o” header field in SDP.
Test Results
Modified SIP and SDP header fields for SIP routing
Request-URI、Contact、Via
c、m
Success: SIP message flow is correct and RTP sessions are set up.
CCL SkinUA, Pingtel 2.1.10, snow 200, CCL PSTN Gateway
Fail: different error message for each case
Windows Messenger 4.7 (show Error Message in Windows Messenger but no response)
Cisco IP Phone 7940 Series (return “400 Bad Request”)
Cisco PSTN Gateway (return “400 Bad Request” and “399 Invalid
SDP Information”)
Testing Results
PingTel 2.1.10
PSTN Gateway IP Hard Phone IP Soft Phone
SDP Message SIP Message
m
Cisco PSTN Gateway
Vontel PSTN Gateway Cisco IP Phone
7940 Series snom 200 Windows Messenger
4.7.2009 CCL Skin UA
o c
To From
Via Contact
Request URI
Conclusions
Currently, NTP SIPv6 UA can communicate with all SIPv4 UAs and CCL PSTN gateway that are deployed in NTP VoIP platform.
However, NTP SIPv6 UA cannot communicate with CISCO PSTN gateway, and CCL PCA (IPv6 SIP UA) cannot communicate with CISCO PSTN gateway and Pingtel hardware-based SIP phone.
In next week, we will have more tests and find out the problems.
Then we will fixed the problems in one week.