[Serusers] Problem : Forwarding Routine to a NAT'd endpoint.

Greger V. Teigre greger at teigre.com
Wed May 31 07:36:14 CEST 2006


There are two ways of routing, either using the ruri or the dst_uri. The 
ruri is what you normally use, but when you use lookup() and a received 
parameter is found (and I think dispatcher also uses dst_uri), the 
dst_uri is set, which then overrides the ruri when using t_relay().  You 
must then explicitly forward and not use t_relay().
g-)

Ricardo Martinez wrote:
> Hello List
> 	I have a problem forwarding a number for a NAT'd endpoint.  The
> problem presents as follow.
> 	For incoming calls to my SER users i load via
> avp_load_radius("callee") the "forward options" for my users.
> 	For example if a user has set the Call Forward ON and the set the
> forwarded number, these options are loaded via avp_radius.
>
> 	So for a incoming call to a user with Call Forward ON, the call is
> then redirected to a Asterisk Box to handle the call.
> 	I have no problem with this if the user is not NAT'd, even if is
> NAT'd but the user is not registered i can forward the call to my Asterisk
> Box via a special route (route[8]) without any problem.  But if the NAT'd
> endpoint is REGISTERED in my ser BOX like this : 
>
> aor   : '5507515800'
> ~~~Contact(0x404cb198)~~~
> domain    : 'location'
> aor       : '5507515800'
> Contact   : 'sip:5507515800 at 192.168.1.100:5061'
> Expires   : 595
> q         : 
> Call-ID   : '17b73476-132fa250 at 192.168.1.100'
> CSeq      : 2
> User-Agent: 'Linksys/PAP2-3.1.3(LS)'
> received  : 'sip:111.76.148.248:46139'
> State     : CS_NEW
> Flags     : 1
> next      : (nil)
> prev      : (nil)
>
> I'm even using rewritehostport (as indicated in my ser.cfg snipet)
>
> route[8] {
>
>         xlog("L_INFO", "[%Tf] : Ruta [8] Enviando llamada a asterisk\n");
>         rewritehostport("111.76.154.101:5060");
>
>         route(4);
>         route(1);
> }
>
> the call is re-routed to the "received" parameter indicated in the register
> RECORD.  Please check the next debug taken in my ser box.
>
> 111.76.148.237 : Caller Endpoint
> 111.76.148.246 : SER Box
> 111.76.148.101 : Asterisk Box
> 111.76.148.248 : Called Enpoint (NAT'd)
>
>
> U 111.76.148.237:5060 -> 111.76.148.246:5060
> INVITE sip:5507515800 at sipvoiss.desa.redvoiss.net:5060 SIP/2.0.
> Via: SIP/2.0/UDP 111.76.148.237:5060;branch=z9hG4bKf50b1f9ca.
> Max-Forwards: 70.
> Content-Length: 304.
> To: sip:5507515800 at sipvoiss.desa.redvoiss.net:5060.
> From: sip:2408100 at 111.76.148.237:5060;tag=acee04f44a858c7.
> Call-ID: 12524b29b2c08e262bc8daef67f6dcf0 at 111.76.148.237.
> CSeq: 1032746828 INVITE.
> Supported: timer.
> Content-Type: application/sdp.
> Contact: sip:2408100 at 111.76.148.237:5060.
> Supported: replaces.
>
> .
> v=0.
> o=MxSIP 0 26 IN IP4 111.76.148.237.
> s=SIP Call.
> c=IN IP4 111.76.148.237.
> t=0 0.
> m=audio 4978 RTP/AVP 18 4 4 101.
> a=rtpmap:18 G729/8000.
> a=rtpmap:4 G723/8000.
> a=rtpmap:4 G723/8000.
> a=rtpmap:101 telephone-event/8000.
> a=fmtp:18 annexb=no.
> a=fmtp:101 0-15.
> a=sendrecv.
> m=image 4980 udptl t38.
> a=sendrecv.
>
>
> U 111.76.148.246:5060 -> 111.76.148.237:5060
> SIP/2.0 100 trying -- your call is important to us.
> Via: SIP/2.0/UDP 111.76.148.237:5060;branch=z9hG4bKf50b1f9ca.
> To: sip:5507515800 at sipvoiss.desa.redvoiss.net:5060.
> From: sip:2408100 at 111.76.148.237:5060;tag=acee04f44a858c7.
> Call-ID: 12524b29b2c08e262bc8daef67f6dcf0 at 111.76.148.237.
> CSeq: 1032746828 INVITE.
> Server: Sip EXpress router (0.9.3 (i386/linux)).
> Content-Length: 0.
> Warning: 392 111.76.148.246:5060 "Noisy feedback tells:  pid=22321
> req_src_ip=111.76.148.237 req_src_port=5060
> in_uri=sip:5507515800 at sipvoiss.desa.redvoiss.net:5060
> out_uri=sip:75755507515800 at 111.76.154.101:5060 via_cnt==1".
> .
>
>
> U 111.76.148.246:5060 -> 111.76.148.248:46139
> INVITE sip:75755507515800 at 111.76.154.101:5060 SIP/2.0.
> Record-Route: <sip:111.76.148.246;ftag=acee04f44a858c7;lr=on>.
> Via: SIP/2.0/UDP 111.76.148.246;branch=z9hG4bK38bc.f157bcd5.0.
> Via: SIP/2.0/UDP 111.76.148.237:5060;branch=z9hG4bKf50b1f9ca.
> Max-Forwards: 16.
> Content-Length: 306.
> To: sip:5507515800 at sipvoiss.desa.redvoiss.net:5060.
> From: sip:2408100 at 111.76.148.237:5060;tag=acee04f44a858c7.
> Call-ID: 12524b29b2c08e262bc8daef67f6dcf0 at 111.76.148.237.
> CSeq: 1032746828 INVITE.
> Supported: timer.
> Content-Type: application/sdp.
> Contact: sip:2408100 at 111.76.148.237:5060.
> Supported: replaces.
> .
> v=0.
> o=MxSIP 0 26 IN IP4 111.76.148.237.
> s=SIP Call.
> c=IN IP4 111.76.148.246.
> t=0 0.
> m=audio 35068 RTP/AVP 18 4 4 101.
> a=rtpmap:18 G729/8000.
> a=rtpmap:4 G723/8000.
> a=rtpmap:4 G723/8000.
> a=rtpmap:101 telephone-event/8000.
> a=fmtp:18 annexb=no.
> a=fmtp:101 0-15.
> a=sendrecv.
> m=image 35070 udptl t38.
> a=sendrecv.
>
> Why SER is routing the call to the "received" ip address insted of the ip
> address indicated in my route[8] by the
> rewritehostport("111.76.154.101:5060");  ???
> Hope that someone can help me here
> Is there a way to avoid this ?
>
>
> Thanks !
>
> Ricardo Martinez
>
>
> _______________________________________________
> Serusers mailing list
> Serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
>   



More information about the sr-users mailing list