[OpenSER-Users] NAT question
Papadopoulos Georgios
geop at altectelecoms.gr
Wed Aug 8 10:30:54 CEST 2007
Hi Bogdan,
I understand that 200 OK should not be fixed by proxyA. Maybe what I
don't understand is what nat_uac_test("2") does and when to use it.
Following is an example where
clientA = demo1 at altecnet.gr
clientB = sip_test_1 at i-call.gr
proxyA = 213.5.43.4
proxyB = 213.5.43.134
When proxyA goes in the onreply_route for the 200 OK, nat_uac_test("23")
returns true (I guess because of the "2" flag) and proxyA fixes the
contact again which is wrong. So, would it be safe to use
nat_uac_test("23") for the requests and nat_uac_test("21") for the
replies? I am afraid this would break the simple case with 2 NATed
clients and only one proxy:
clientA ------> proxyA ------> clientC
thank you for your help
George
#
U 2007/08/08 10:11:34.233164 213.5.43.134:5060 -> 213.5.43.4:5060
SIP/2.0 200 Ok.
Via: SIP/2.0/UDP 213.5.43.4;rport=5060;branch=z9hG4bK322.eea78413.0.
Via: SIP/2.0/UDP
192.168.1.39;received=213.5.17.226;rport=5060;branch=z9hG4bKc0a801270000
002c46b96cbb000000a000000087.
Record-Route: <sip:213.5.43.134;lr=on;ftag=109517115931019>.
Record-Route: <sip:213.5.43.4;lr=on;ftag=109517115931019>.
From: "222" <sip:demo1 at altecnet.gr>;tag=109517115931019.
To: <sip:sip_test_1 at i-call.gr>;tag=0r8u9ziv3g.
Call-ID: 000029DD-5407-0000-3452-00006A3B0000 at 192.168.1.39.
CSeq: 2 INVITE.
Contact: <sip:sip_test_1 at 213.5.17.236:5060;transport=udp;line=9yt55o5b>.
User-Agent: snom190-3.56w.
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE,
PRACK, MESSAGE, INFO.
Allow-Events: talk, hold, refer.
Supported: timer, 100rel, replaces.
Content-Type: application/sdp.
Content-Length: 208.
.
v=0.
o=root 1592588598 1592588598 IN IP4 213.5.17.236.
s=call.
c=IN IP4 213.5.17.236.
t=0 0.
m=audio 10116 RTP/AVP 8 101.
a=rtpmap:8 pcma/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=sendrecv.
#
U 2007/08/08 10:11:34.234013 213.5.43.4:5060 -> 213.5.17.226:5060
SIP/2.0 200 Ok.
Via: SIP/2.0/UDP
192.168.1.39;received=213.5.17.226;rport=5060;branch=z9hG4bKc0a801270000
002c46b96cbb000000a000000087.
Record-Route: <sip:213.5.43.134;lr=on;ftag=109517115931019>.
Record-Route: <sip:213.5.43.4;lr=on;ftag=109517115931019>.
From: "222" <sip:demo1 at altecnet.gr>;tag=109517115931019.
To: <sip:sip_test_1 at i-call.gr>;tag=0r8u9ziv3g.
Call-ID: 000029DD-5407-0000-3452-00006A3B0000 at 192.168.1.39.
CSeq: 2 INVITE.
Contact: <sip:sip_test_1 at 213.5.43.134:5060;transport=udp;line=9yt55o5b>.
User-Agent: snom190-3.56w.
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE,
PRACK, MESSAGE, INFO.
Allow-Events: talk, hold, refer.
Supported: timer, 100rel, replaces.
Content-Type: application/sdp.
Content-Length: 208.
P-hint: NATed reply.
.
v=0.
o=root 1592588598 1592588598 IN IP4 213.5.17.236.
s=call.
c=IN IP4 213.5.17.236.
t=0 0.
m=audio 10116 RTP/AVP 8 101.
a=rtpmap:8 pcma/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=sendrecv.
> -----Original Message-----
> From: Bogdan-Andrei Iancu [mailto:bogdan at voice-system.ro]
> Sent: Wednesday, August 08, 2007 9:50 AM
> To: Papadopoulos Georgios
> Cc: users at openser.org
> Subject: Re: [OpenSER-Users] NAT question
>
> Hi George,
>
> each proxy should fix what it detects. ProxyA will take care
> of the traffic related to A (since it detects A as NATed) and
> ProxyB should take care of traffic for B (as it sees B as
> nated). So, the 200 OK must be fixed only by proxyB.
>
> Regards,
> bogdan
>
> Papadopoulos Georgios wrote:
> > Hello all,
> >
> > I need some advice from all you NAT experts. Assume that we
> have two
> > OpenSER proxies serving two different domains and they both use
> > nathelper. Also assume that their configuration is
> identical and looks
> > roughly like:
> >
> > route {
> > ...
> > record_route();
> >
> > if (nat_uac_test("23")) {
> > if (method!="REGISTER" &&
> > !is_present_hf("Record-Route")) {
> > fix_nated_contact();
> > }
> > }
> >
> > t_on_reply("1");
> > }
> >
> > onreply_route[1] {
> > if (nat_uac_test("23")) {
> > fix_nated_contact();
> > };
> > }
> > clientA and clientB are both behind NAT. clientA at domainA
> > <mailto:clientA at domainA> sends an INVITE to clientB at domainB
> > <mailto:clientB at domainB> through proxyA:
> >
> > clientA at domainA <mailto:clientA at domainA> -----> ProxyA
> -----> ProxyB
> > ------> clientB at domainB <mailto:clientB at domainB>
> >
> > ProxyA detects that clientA is behind NAT and fixes the contact.
> > ProxyB finds the Record-Route header, so it does not fix
> the contact.
> > My question is about how to handle the 200 OK. With this
> configuration
> > both proxies detect that clientB is behind NAT and the contact gets
> > fixed twice. Is there a way to avoid this?
> >
> > thank you
> >
> > George
> >
> >
> >
> >
> >
> >
> > Disclaimer
> >
> > The information in this e-mail and any attachments is
> confidential. It
> > is intended solely for the attention and use of the named
> > addressee(s). If you are not the intended recipient, or person
> > responsible for delivering this information to the intended
> recipient,
> > please notify the sender immediately. Unless you are the intended
> > recipient or his/her representative you are not authorized to, and
> > must not, read, copy, distribute, use or retain this message or any
> > part of it. E-mail transmission cannot be guaranteed to be
> secure or
> > error-free as information could be intercepted, corrupted, lost,
> > destroyed, arrive late or incomplete, or contain viruses.
> >
> >
> ----------------------------------------------------------------------
> > --
> >
> > _______________________________________________
> > Users mailing list
> > Users at openser.org
> > http://openser.org/cgi-bin/mailman/listinfo/users
> >
>
>
More information about the sr-users
mailing list