Hi all,
I am experiencing a problem related to the NAT traversal of the BYE transaction. Some of my UAs are natted and I am using a mediaproxy (SER + mediaproxy module) between such UAs and my SIP proxy (registar/location) in order to overcome the NAT problem. Everything is working fine, but the Via field of the BYE transaction seems to forget about the port number of the interface from which the BYE was received.
As you can see from the following traces the Via field (Via: SIP/2.0/UDP 192.168.0.10:5060;received=213.92.1.143;branch=z9hG4bK-fdee73bb) of the BYE sent by 213.92.1.178:5060 to 213.92.1.197:5060 doesn't report the port number of the incoming interface (rport=1029).
The final result is that the answer (200 OK) is sent back to the wrong port number (5060 instead of 1029).
U 213.92.1.143:1029 -> 213.92.1.178:5060 BYE sip:bonda@213.92.1.230 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.10:5060;branch=z9hG4bK-fdee73bb From: sip:8001@inet.it;tag=5d62d7eb80acc3c7 To: "Andrea Bondavalli" sip:bonda@inet.it;tag=5fae3692dc76fd5a Call-ID: bcd4cb1e47de41e1@213.92.1.230 CSeq: 101 BYE Max-Forwards: 70 Route: sip:213.92.1.178;ftag=5fae3692dc76fd5a;lr, sip:213.92.1.197;ftag=5fae3692dc76fd5a;lr=on User-Agent: Sipura/SPA2000-2.0.9(d) Content-Length: 0 # U 213.92.1.178:5060 -> 213.92.1.197:5060 BYE sip:bonda@213.92.1.230 SIP/2.0 Record-Route: sip:213.92.1.178;ftag=5d62d7eb80acc3c7;lr Via: SIP/2.0/UDP 213.92.1.178;branch=z9hG4bK51f1.91462923.0 Via: SIP/2.0/UDP 192.168.0.10:5060;received=213.92.1.143;branch=z9hG4bK-fdee73bb From: sip:8001@inet.it;tag=5d62d7eb80acc3c7 To: "Andrea Bondavalli" sip:bonda@inet.it;tag=5fae3692dc76fd5a Call-ID: bcd4cb1e47de41e1@213.92.1.230 CSeq: 101 BYE Max-Forwards: 69 Route: sip:213.92.1.197;ftag=5fae3692dc76fd5a;lr=on User-Agent: Sipura/SPA2000-2.0.9(d) Content-Length: 0 P-hint: mediaproxy # U 213.92.1.197:5060 -> 213.92.1.178:5060 SIP/2.0 200 OK Via: SIP/2.0/UDP 213.92.1.178;branch=z9hG4bK51f1.91462923.0 Via: SIP/2.0/UDP 192.168.0.10:5060;received=213.92.1.143;branch=z9hG4bK-fdee73bb Record-Route: sip:213.92.1.197;ftag=5d62d7eb80acc3c7;lr=on Record-Route: sip:213.92.1.178;ftag=5d62d7eb80acc3c7;lr From: sip:8001@inet.it;tag=5d62d7eb80acc3c7 To: "Andrea Bondavalli" sip:bonda@inet.it;tag=5fae3692dc76fd5a Call-ID: bcd4cb1e47de41e1@213.92.1.230 CSeq: 101 BYE User-Agent: Grandstream BT100 1.0.5.6 Contact: sip:bonda@213.92.1.230 Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE Content-Length: 0 # U 213.92.1.178:5060 -> 213.92.1.143:5060 SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.0.10:5060;received=213.92.1.143;branch=z9hG4bK-fdee73bb Record-Route: sip:213.92.1.197;ftag=5d62d7eb80acc3c7;lr=on Record-Route: sip:213.92.1.178;ftag=5d62d7eb80acc3c7;lr From:sip:8001@inet.it;tag=5d62d7eb80acc3c7 To: "Andrea Bondavalli" sip:bonda@inet.it;tag=5fae3692dc76fd5a Call-ID: bcd4cb1e47de41e1@213.92.1.230..CSeq: 101 BYE User-Agent: Grandstream BT100 1.0.5.6 Contact: sip:bonda@213.92.1.230 Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE Content-Length: 0
Can you help me on this issue ?
Please consider that I am using the latest SER code from CVS (for all the proxy server on the network).
Thank you a lot in advance,
Andrea Bondavalli I.NET S.p.A. - Research & Development mailto:a.bondavalli@inet.it
Do you have something like this into your configuration?
if (client_nat_test("3")) { force_rport(); fix_contact(); };
On Jul 16, 2004, at 11:27 AM, Andrea Bondavalli wrote:
As you can see from the following traces the Via field (Via: SIP/2.0/UDP 192.168.0.10:5060;received=213.92.1.143;branch=z9hG4bK-fdee73bb) of the BYE sent by 213.92.1.178:5060 to 213.92.1.197:5060 doesn't report the port number of the incoming interface (rport=1029).
The final result is that the answer (200 OK) is sent back to the wrong port number (5060 instead of 1029).