[Serusers] SER/SEMS behind NAT, advertised_address, sdp_mangle_ip

Greger V. Teigre greger at teigre.com
Mon Oct 31 07:40:34 CET 2005


> Our SER server is behind NAT, so we are having all sorts of NAT problems. 
> I have tried to read all the information I was able to find on documents, 
> maillist archives, and onsip and by googling. And I believe that I were 
> able to solve SIP signalling problems by record routing, NAThelper and 
> rtpproxy, and some tricks (double record routing) for HT486. So SIP 
> signalling seems fine now.

A few months back I posted a short how-to on that and people reported back 
that it worked, AFAIK. I don't really see why you need fouble record routing 
for HT486 unless you have an ALG in your NAT.

> But when UAs are connected to sems, they send RTP messages to the local IP 
> of SER. I also tried to use another ser instance dedicated to sems, but 
> still the same. So I thought it's time to ask a couple of questions to the 
> list.
>
> To solve SIP problems, I tried to use advertised_address, but I could not 
> see any effect of it, SER still advertises its local IP, afaics. I also 
> tried mhomed. Apparently, I don't know how to use this parameter, I 
> thougth it would function similar to externip/localnet parameters on 
> Asterisk. So I tried solutions mentioned above, with success, as far as I 
> can see. But ser.cfg becomes quite complicated. I wish I could use 
> advertised_address properly.

adverstised_address should be used, it changes the IP address used in the 
Via header. mhomed is to be used if your box has two interfaces where one is 
public-facing and one is private and routing is done across.

> To solve RTP problems, I tried to use mangler. But I need to manipulate 
> messages sent from SER to the UA, for example 200 OK messages with SDP 
> info. But, again I guess I don't know where to use sdp_mangle_ip function. 
> I tried to use it in onreply_route without success. Where should I place 
> it in ser.cfg? I guess I am missing something obvious. Would 
> advertised_address solve this also, if I could have it working for me?

I'm not sure why sems send to SER's IP address. Unless you call 
force_rtp_proxy or use_media_proxy, the SDP address should not be changed.

> To summarize, I don't care too much about connections from local network 
> (btw, I've set SER as DMZ), it's OK if SER forgets its local IP and always 
> advertises its public IP. I want SER to put its public IP everywhere in 
> every message (SIP/SDP) it sends out. Is there anyway to achive this?

advertised_address=public_ip
You also need to make sure that you have an alias statement for both the 
local IP and the public.
If you want to use rtpproxy on all calls to sems, you can just make sure 
that you call force_rtp_proxy() on all INVITEs and OK (onreply) to/from 
sems.
g-)

> I've done all these on both SER 0.9.4 and 0.10.99 (CVS HEAD a week from 
> now), the server is a CentOS 4.1 x86_64.
>
> I would appreciate any help.
> Sincerely,
> Soner Tari
>
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
> 




More information about the sr-users mailing list