Hi, I am wondering if someone can please point me in the right direction. I’ve used this Distro on DigitalOcean many times without any issues, however, I’ve tried installing it on another DO droplet, in fact, 2 separate ones and keep getting the same issue. I set up the inbound route to send the call to a cell phone. The call gets forwarded but, without any sound, and I have not been able to find the reason. I have searched and practically followed every instruction I’ve found here and still can’t get it to properly work. This is the Distro I’m using: FreePBX® | DigitalOcean Marketplace 1-Click App. Thanks in advance.
If the PBX is behind a NAT or other firewall, be sure that the RTP port range (default UDP ports 10000-20000) is forwarded to the PBX.
Thanks, but all I had to do was “Yes” on Force Answer in Inbound Route.
Sure, but that has some undesirable side effects.
Unanswered calls show as answered for both the caller and your CDRs, call durations are incorrect, caller gets immediately charged (if on a metered service), etc.
Ok. But, could you explain a little more on your suggestion, please. The only NAT and firewall is the one provided by Freepbx. Thanks
Your PBX may fail to receive incoming RTP for several reasons:
- External firewall (if you have enabled one for your Droplet).
- FreePBX firewall (misconfigured; by default it should allow the Asterisk RTP range of UDP 10000-20000).
- FreePBX sending an incorrect IP address in the SDP, e.g., External Address misconfigured in Asterisk SIP Settings.
- Conceivably, the provider doesn’t send RTP until it receives some.
In most of these cases, if the PBX sends RTP, the RTP coming from the provider appears as ‘replies’ and would be passed by the firewall. Also, the provider may do ‘symmetric RTP’, sending RTP to whatever address and port it receives RTP from.
When you Force Answer, the PBX starts sending RTP (ringback tone, MOH, etc.), which appears to allow RTP to come in. When the callee answers, that RTP is sent to the terminating provider, opening the path for the callee’s RTP to come in and get passed to the originating provider.
If you can’t easily find what is wrong, instead of Force Answer, you might try setting Inband Progress on the incoming trunk, possibly along with Signal Ringing on the Inbound Route. With luck, that will send ringback tone (or music) as early media, opening the audio path without answering the call.
Thank you for the explanation. I removed the ip that was set up as the External Address and removed Force Answer and now it seems to be working fine. Thanks, again.
I am not sure that removing the External Address is the answer here either. If you are behind a NAT then you need to specify the actual External IP here that will get NATed as that will allow the SIP packets to be built properly by asterisk.
Hi Igor, at this point I’m going to play dumb, but I still don’t know what “behind a NAT” is. I have not included anything in DO, or Telnyx, where I’m getting the number from. I’m only using default set up of Freepbx. Please enlighten me. TY
How is your system connected to the internet? Behind a firewall? If so that firewall is NATing for your LAN and to the internet your phone system looks like it’s coming from whatever static IP is assigned to that firewall. Going into details about how to configure firewalls and setup proper port forwarding and NAT is a bit outside of the scope for this space but luckily there are plenty of resources online that help teach somebody about that side of network configuration.
O.K. I got it. I was confused because in General IP Setings, the NAT showed an IP. But to make it work, I also had to add that same IP in SIP Settings (Chan_pjsip). I hope is good now. Thanks.