[Freeswitch-users] Unable to successfully bridge calls to an "external" user

David Robinson pawzlion at gmail.com
Mon May 18 18:02:50 PDT 2009

> My suspicion is that the RTP traffic isn't traversing the NAT  
> properly. You
> may have to configure the routers at both ends to forward the RTP  
> packets to
> the correct destinations. There is a good discussion of NAT on the  
> wiki.

Situation: FS ( -> DMZ ( -> Internet -> NAT  
( -> Softphone (

The problem is there's so much discussion of NAT that I'm not sure  
where to start. OK the problem is that I can't control the "external"  
user's router so I need a solution that works by only fixing the FS  
end. I've put my FS in the DMZ, but of course it's still got a local  
LAN IP address. Is there something I can configure to make FS realise  
that it _doesn't_ need to use NAT ? Whenever my softphones register to  
FS they register as UDP-NAT. Can I prevent that and make them register  
as regular UDP ? It would seem like they don't need to be in NAT mode  
since FS is in a DMZ, or do they ?

I tried setting inbound-late-negotiation in my external (is this  
right ?) SIP profile and added proxy_media to my extension  
configurations in the dialplans, but this made no difference. It's  
possible that I haven't done this in the right spot or something.

The other thing that looks promising is on http://wiki.freeswitch.org/wiki/External_profile 
  which gives an example of a softphone registering to a NAT'd FS from  
outside on the internet (Switch with External Softphone example) which  
suggests I create a new external profile on a different port. I've  
done this and the user's softphone can register fine, but when he  
makes calls we still get no audio, presumably from lack of RTP data. I  
then tried adding in values for rtp-ip, sip-ip, ext-rtp-ip and ext-sip- 
ip on the new external profile to see if that made any difference but  
it didn't. Step 6 of the example says "reference the caller from your  
FreeSWITCH system as: sofia/external5090/<caller extension>@x.x.x.x: 
5090". I'm not sure what that means. Do I have to change something  
else to make it "reference" the caller by that external profile ? I  
figured it must be at least using that external profile because the  
phone is successfully registering on port 5090, but I'm not sure if I  
have to do something different to route incoming calls from the main  
external profile to the new 5090 one.

I'm just not sure which NAT-related solution I'm supposed to be using.  
The External_profile wiki page example for the external softphone  
seems to fit my situation but didn't solve anything. The proxy_media  
solution seemed promising but had no real effect. It seems to me that  
the solution has something to do with having FS know that it's in a  
DMZ and that it doesn't need to do any NAT traversal, thereby making  
it think it's got a live internet IP and therefore only the external  
user would be using NAT traversal.

I hope someone can give me some insight into which particular NAT- 
related solution I need because there seems to be dozens of ways to  
deal with this problem and I can't figure out which applies.

More information about the FreeSWITCH-users mailing list