[Serusers] Multihomed SER & NAT

Greger V. Teigre greger at teigre.com
Mon Aug 21 14:20:31 CEST 2006


> finally I figured out how to change the sdp - part of the message by using force_rtpproxy.
>
> All works fine, I can make calls in both directions, but i still got two problems:
>
> 1. If someone from outside(VoIP - Provider) calls my UA, i have a ~10 sec. delay before i hear audio.
> - i checked my dumpfile, and saw that the delay is between the last 180 Ringing and the 200 OK.
> (- However RTP - Packets are sent before the 200 OK, after a 183-Message. Dont understand why but I dont think it matters that much.)
>   
183 is early media probably sent by your UA. The call is not established 
two-way until 200 OK. You don't say in which end you don't hear audio...
> 2. If the call is terminated from outside(VoIP - Provider) the BYE message is not handled correctly by SER.
> - the previous messages from the Voip provider have all a via HF with the private IP of my UA. The BYE message doesnt have such a Via. All other Via and RR fields are present.
> - also the BYE uri is somewaht strange. Instead of sip:123456 at privateIPofUA it contains sip:123456 at publicIPofSER.
>
>   
Look in the initial INVITE Record-Route set. BYE is a new request and is 
created with Route headers copied from the Record-Route set established 
as part of the establishment of the dialog.
You don't provide enough info about what is happening to the BYE, just 
your observations. Send a SIP trace.
g-)

> Thanks in advance for any help Smile
>
> Best regards
> Sebastian.
>
>   
>> -----Ursprüngliche Nachricht-----
>> Von: "Greger V. Teigre" <greger at teigre.com>
>> Gesendet: 10.08.06 15:41:31
>> An: Sebastian Gabris <Sebastian.Gabris at web.de>
>> CC: serusers at lists.iptel.org
>> Betreff: Re: [Serusers] Multihomed SER & NAT
>>     
>
> fix_nated_contact() is meant for changing the IP address of the Contact
>   
>> header when SER has a public address and the UA has a private (i.e.
>> behind NAT). This means that it will rewrite Contact to contain the
>> source ip address:port found in the UDP/TCP header.
>> This is probably correct, because I assume the UA cannot be reached
>> from the outside anyway. If you record-route, subsequent requests
>> should go through your ser.
>>
>> If you have problems with responses not being returned, have a look at
>> Via headers as they control how answers to i.e an INVITE are routed
>> back to the UA.  You may want to have a look at the rr module double
>> record route parameter to make sure that SER creates one record-route
>> for the internal and one for the external interface.
>> g-)
>>
>> Sebastian Gabris wrote:
>>  After reading a bit more mails, I came to two possible problems:
>> 1. fix_nated_contact() needs a registrar to work properly
>>  I dont use a registrar, since i register at the VoIP - Provider.
>> or
>> 2. fix_nated_contact() is not ment to be used on this scenario
>> Any ideas on this?
>> Sebastian
>>  
>>  
>>  Hi everybody,
>> need some help on nattraversal.
>> i use a multihomed SER, one private IP & one public IP.
>> MyUA(privateIP) <-> (privateIP)SER(publicIP) <-> UA-(VoIP - Provider, pubicIP)
>> If i try to make a call from private net to public net, SER doesnt change the contact address. He changes the sdp - connection field but he, puts in the wrong IP - address.
>> Instead o writing down his public IP, SER writes his private IP.
>> Then SER forwards the call on his public interface to the provider, which will get wrong Contact & SDP information.
>> After reviewing my logs i saw that SER does the nat_uac_test, but the fix_nat_contact & fix_sdp dont work dont do what they should do :)
>>  Here are the important bits of my config:
>>  fork=yes
>> log_stderror=no mhomed=1
>> listen=10.x.x.x
>> listen=193.x.x.x
>> loadmodule "/usr/lib/ser/modules/nathelper.so"
>> modparam("usrloc", "db_mode", 0)
>> modparam("registrar", "nat_flag", 6)
>> modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
>> modparam("nathelper", "ping_nated_only", 1) # Ping only clients behind NAT
>>  if (nat_uac_test("3")) {
>>  if (method == "REGISTER" || ! search("^Record-Route:")) {
>>  log(2,"LOG: Someone trying to register from private IP, rewriting\n"); fix_nated_contact(); # Rewrite contact with source IP of signalling
>>  if (method == "INVITE") {
>>  fix_nated_sdp("1"); # Add direction=active to SDP
>>  };
>>  force_rport(); # Add rport parameter to topmost Via
>>  setflag(6); # Mark as NATed
>>  };
>>  };
>> ... and so on.
>> ______________________________________________________________
>> Verschicken Sie romantische, coole und witzige Bilder per SMS!
>> Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193
>> _______________________________________________
>> Serusers mailing list
>> Serusers at lists.iptel.org
>> http://lists.iptel.org/mailman/listinfo/serusers
>>  
>>  
>>  
>> _____________________________________________________________________
>> Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
>> http://smartsurfer.web.de/?mc=100071&distributionid=000000000071
>> _______________________________________________
>> Serusers mailing list
>> Serusers at lists.iptel.org
>> http://lists.iptel.org/mailman/listinfo/serusers
>>  
>>
>>     
>
>
> ______________________________________________________________
> Verschicken Sie romantische, coole und witzige Bilder per SMS!
> Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193
>
> _______________________________________________
> Serusers mailing list
> Serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20060821/d4af380b/attachment.htm>


More information about the sr-users mailing list