I have a Digium D40 phone set-up at a satellite office as an external SIP extension. The phone works as expected to place outgoing calls and when used for internal calls. But, when an inbound call comes in from an outside phone the external SIP extension does not answer the call without a workaround. The external SIP phone will ring, but when the receiver is picked up the call connects but neither person can hear the other. In order to get it to work the person at the external SIP location has to press “conference” and then “resume” in order for the callers to hear each other. Internal calls from extension to that external extension and calls being transferred to that extension do not have a problem. They answer as expected.
Any idea what is causing this?
What type of router/firewall is in use between the two locations?
The router that the PBX is behind is an ASUS RT-N66U with the following ports forwarded
I haven’t had access to the router for the location where the phone is. Do any ports need to be forwarded on that end?
By default you will need to forward udp 10000-20000 to get audio through, If that is not explained in every tutorial I guess someone missed something, probably you .
Oh boy, yep. That is the likely screw up. As I was listing the ports I was thinking “I’m pretty sure I’m missing something here”.
Thanks for helping me with the obvious.
I added ports 10000-20000 on the router that the PBX box sits behind but it didn’t fix it. I don’t have access to the router where the phone is. Would I need to forward ports on that router?
To clarify, the audio does work on the phone and the phone works as expected when making internal calls. Only inbound calls causes the problem. And even with those, once you pick up the handset, press “conference” and then “resume” it works as expected.
That is often a problem, but unfortunately there is no easy one-size fits all answer, you can turn on sip debugging
sip set debug on
and compare your sdp negotiated session with
the m=audio 23400 (for example)
would be the port that carries the rtp stream and should be passed without translation between the o=(origin) and the endpoint by all routers in the path. In general turn off all VOIP/SIP “helpers” on the routers and make sure that any NATTing is appropriate for yournetwork and any PATTing is off.
Can you please give us some easy instructions.
How do you set si to debug? The link was just too much information for 7am
I have seen situations where your RTP stream is being passed to your SIP trunking provider. Once your PBX initiates the call, the audio is continued from your provider and not your PBX. Maybe make sure that the IP of your provider is whitelisted in your router for your off-site extension. This would explain why internal calls are working fine and not incoming from your SIP provider. Your PBX is doing all the RTP for internal calls. My 2 cents… worth a look maybe.
I re-engaged this problem today. I took the phone home where I have more control over the router and the environment, but now I am having more problems.
I have the following ports forward on the PBX server side to the server IP and on the phone location to the phone IP
The phone connects to the PBX and registers. I can call internal extensions and internal extensions can call the remote phone. But the remote phone can’t make outbound calls and no audio, even on internal calls is working.
Here is a log when I tried to call the remote phone (ext 304) with my softphone (ext 310, Zoiper app on Android)
I was able to get this fixed.
In FreePBX I went to settings>Asterisk SIP Settings under “IP Configuration” I selected “Public IP”. I had previously had it on “Static IP”
everything works as intended now.