External to External Ext. have no NO AUDIO?

I am very new to VOIP, and I come from Anolog PBX’s, but I can not figure out what I am doing incorrectly.

My setup is FREEPBX, Asterisk running in a Virtual machine, and then there are two firewalls on our network that I have for testing purposes fully open and forwarding all TCP & UDP ports to the asterisk IP.

I am able to call in and out from a Internal soft/hard phone to Any extension I setup and it works perfectly internal or external, but I can not call from a EXTERNAL to an EXTERNAL.

The phone rings and I can pick it up, but there is no audio at all, then after about 6 seconds of no audio the call is automatically disconnected. I tried Enabling nat and disabling, both give identical behavior.

Any idea’s on what to try, and PLEASE talk to me like a know nothing, because … well, I know nothing:)

Also just a note there are no trunks setup or anything, just two sip extensions for testing and that is it with the absolute minimal configurations.


Set directmedia (previously called canreinvite) to no. If that works, read up what it does.

Thanks, I wish I would have saw this earlier, but I was able to get it to work as well using a different approach. Is yours better than this of setting directmedia?:

I am going to be overly detailed in case any other novice individuals stumbles onto this thread having the same issues I did.

  1. Make sure my sip extensions say NAT = YES under each extension, along with the permit being from on the roaming devices (i.e. 3g /4g cell phones)

  2. Click on TOOLS, and then Asterisk SIP Settings (If it is not there click CHECK FOR UPDATES ONLINE, and let the program auto-install them all).

  3. Under sip settings select NAT, put the External IP address of your server that the phones will connect through In my case it was a static address (Not really, but for this purpose let’s use it)

  4. Enter the local NETWORKS ip address. For instance my IP address of the server the ASTERISK resides on is, so I set that to

That’s it the external 3g phone now communicates with another external 3g phone. The settings on the phone that I have used are as follows

(I use on both android and IOS the 3cx application)
Download and enter the User and ID both to the extension, then set the SECRET to what you set under the extensions, and last but not least enter the PUBLIC ip address of the server for both internal and external pbx ip.

I do not know why I needed to do this, but for whatever reason it would not register my 3g unless I set the public IP for both.

Then it worked. Hope this helps someone else who had the same issues. I do not know if these settigns are best as there is probably some extra things I said to do that are not needed, but it resolved my issue of no audio on external to external calls and it auto disconnecting after about 6 seconds.

This seems to be a procedure for FreePBX, not for Asterisk!