[SR-Users] NAT single interface problems with Lan/Wan

Hugh Waite hugh.waite at crocodile-rcs.com
Tue Feb 19 10:20:16 CET 2013


Hi,
When kamailio is listening on more than one interface is is sometimes 
necessary to use force_send_socket() to tell kamailio to use one socket 
or the other. This means it will put the correct values into Via and 
Record-Route headers. In the example below, I am choosing the socket 
based on if the request has come from a dispatcher list, but any other 
logic can be used.

#!substdef "!WAN_IP!x.x.x.x!g"
#!substdef "!LAN_IP!y.y.y.y!g"
route[RELAY]{
   if (ds_is_from_list("CLUSTER_ID")) {
     xlog("L_INFO", "Using WAN_IP for sending\n");
     force_send_socket("WAN_IP":5060);
   } else {
     xlog("L_INFO", "Using LAN_IP for sending\n");
     force_send_socket("LAN_IP":5060);
   }
   t_relay();
}


Regards,
Hugh


On 18/02/2013 18:28, Scott, Matt wrote:
> I can get wan communication or lan communication working, but not both.
>
> Setting this, allows wan communication, but then my lan tries to talk with my wan ip.
> Single Interface: listen=udp:<lan_ip>:5060 advertise <nat_wan_ip>:5060
> I see my wan_ip in the via header, so I assume that's causing the issues for my lan.
> Using add_contact_alias for lan, with the advertise in my listen command, results in  [nathelper.c:835]: no need to add alias param
> I've tried handle_ruri_alias();, but this doesn't seem to have an affect either.
>
>
> Setting this, allows lan communication to work fine, but wan has issues.
> Single Interface: listen=udp:<lan_ip>:5060
>
> Where is the happy median?
>
>
> Was going to try path, but I read this is not the correct work-around.
>
> Any clues or hints, are greatly appreciated.
>
>
> U <carrier_wan_ip>:5060 -> <lan_ip>:5060
>    INVITE sip:+1<dialed_number>@<lan_ip>:5060 SIP/2.0..Via: SIP/2.0/UDP <carrier_wan_ip>:5060;branch=z9h
>    G4bK04B0f1624ef34479ee3..From: <sip:+1<caller_id>@<carrier_wan_ip:5060;isup-oli=0>;tag=gK0413c49b..To
>    : <sip:+1<dialed_number>@<lan_ip>:5060>..Call-ID: 184873373_18184370@<carrier_wan_ip..CSeq: 27475 IN
>    VITE..Max-Forwards: 63..Allow: INVITE,ACK,CANCEL,BYE,PRACK,UPDATE..Accept: application/sdp, appl
>    ication/isup, application/dtmf, application/dtmf-relay,  multipart/mixed..Contact: <sip:+1720276
>    3205@<carrier_wan_ip:5060>..P-Asserted-Identity: <sip:+1<caller_id>@<carrier_wan_ip:5060>..Supported: 100
>    rel..Content-Length:  305..Content-Disposition: session; handling=required..Content-Type: applic
>    ation/sdp....v=0..o=Sonus_UAC 25113 26131 IN IP4 <carrier_wan_ip..s=SIP Media Capabilities..c=IN IP4
>     4.55.10.130..t=0 0..m=audio 15746 RTP/AVP 0 8 18 101..a=rtpmap:0 PCMU/8000..a=rtpmap:8 PCMA/800
>    0..a=rtpmap:18 G729/8000..a=fmtp:18 annexb=no..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-1
>    5..a=sendrecv..a=maxptime:20..
>
> U <lan_ip>:5060 -> <carrier_wan_ip>:5060
>    SIP/2.0 100 trying -- your call is important to us..Via: SIP/2.0/UDP <carrier_wan_ip:5060;branch=z9h
>    G4bK04B0f1624ef34479ee3..From: <sip:+1<caller_id>@<carrier_wan_ip:5060;isup-oli=0>;tag=gK0413c49b..To
>    : <sip:+1<dialed_number>@<lan_ip>:5060>..Call-ID: 184873373_18184370@<carrier_wan_ip..CSeq: 27475 IN
>    VITE..Server: kamailio (3.3.2 (x86_64/linux))..Content-Length: 0....
>
> U <lan_ip>:5060 -> <asterisk_ip>:5060
>    INVITE sip:+1<dialed_number>@<lan_ip>:5060 SIP/2.0..Via: SIP/2.0/UDP <wan_ip>:5060;branch=
>    z9hG4bK5d66.7cb4b7a1.0..Via: SIP/2.0/UDP <carrier_wan_ip>:5060;branch=z9hG4bK04B0f1624ef34479ee3..Fro
>    m: <sip:+1<caller_id>@<carrier_wan_ip:5060;isup-oli=0>;tag=gK0413c49b..To: <sip:+1<dialed_number>@192.168.
>    9.130:5060>..Call-ID: 184873373_18184370@<carrier_wan_ip>..CSeq: 27475 INVITE..Max-Forwards: 62..Allo
>    w: INVITE,ACK,CANCEL,BYE,PRACK,UPDATE..Accept: application/sdp, application/isup, application/dt
>    mf, application/dtmf-relay,  multipart/mixed..Contact: <sip:+1<caller_id>@<carrier_wan_ip:5060>..P-As
>    serted-Identity: <sip:+1<caller_id>@<carrier_wan_ip:5060>..Supported: 100rel..Content-Length:  305..C
>    ontent-Disposition: session; handling=required..Content-Type: application/sdp....v=0..o=Sonus_UA
>    C 25113 26131 IN IP4 <carrier_wan_ip..s=SIP Media Capabilities..c=IN IP4 4.55.10.130..t=0 0..m=audio
>     15746 RTP/AVP 0 8 18 101..a=rtpmap:0 PCMU/8000..a=rtpmap:8 PCMA/8000..a=rtpmap:18 G729/8000..a=
>    fmtp:18 annexb=no..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-15..a=sendrecv..a=maxptime:20
>    ..
>
>
> Asterisk box:
>
> Retransmitting #4 (no NAT) to <wan_ip>:5060:
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP <wan_ip>:5060;branch=z9hG4bK5d66.7cb4b7a1.0;received=192.168.9.130
> Via: SIP/2.0/UDP <carrier_wan_ip>:5060;branch=z9hG4bK04B0f1624ef34479ee3
> From: <sip:+1<caller_id>@<carrier_wan_ip>:5060;isup-oli=0>;tag=gK0413c49b
> To: <sip:+1<dialed_number>@<lan_ip>:5060>;tag=as1265f4d0
> Call-ID: 184873373_18184370@<carrier_wan_ip>
> CSeq: 27475 INVITE
> Server: Asterisk PBX 1.6.2.14
> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
> Supported: replaces
> Contact: <sip:+1<dialed_number>@<asterisk_ip>>
> Content-Type: application/sdp
> Content-Length: 239
>
>
>
>
>
> Matt Scott
>
>
>
>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


-- 
Hugh Waite
Principal Design Engineer
Crocodile RCS Ltd.




More information about the sr-users mailing list