System admin here. Our PBX (FreePBX 126.96.36.199, Asterisk 13.12.1) is hosted on a VPS. Calls made to IP phones don’t seem to make it to the phones. If I call a specific extension, while its supposed to be ringing, I can call voicemail from that extension and as soon as the phone connects to voicemail, the original call comes in on the second line. It’s seems like the phone and PBX are out of sync.
We are using Grandstream GXP1760 phones and the PJSIP protocol.
Side note: This is not our current production system. We are still utilizing our old Avaya IP Office until we get the kinks worked out of our FreePBX system.
In advance, I greatly appreciate anyones input!
Hi Austin, how familiar are you with NAT? This sounds like a NAT issue - the server has no idea where to send the call until the phone gives it a NAT session to follow. What firewall is on the phone side, and where is the VPS hosted?
This is the start of a good path to follow. While it may not specifically be NAT that’s causing your problem, it may be. It may also be a problem with the router dropping your network path for your network or NAT connections too quickly, or some other setting in your Firewall/Router.
If you can give us some more insight into your router configuration and firewall setup, we might be able to point you in an even more closely vectored direction. A extract of the /var/log/asterisk/full log file for these two phone calls would also be helpful.
After thinking about this for a while, it something occurred to me. With your server in the cloud and your phones “not”, the phone should be subscribing to the server’s hint for your voicemail. I’m not sure how, but if the phone is querying the phone and asking “Is there VM waiting” and the server says “Nope”, it won’t subscribe to the hint. If it is, then the pone would say “OK, let me monitor that hint” and subscribe for the hint.
That would open a path through the firewall for the rest of the call path to connect and “magically” your phone calls should work, at least, for a while.
Things to test:
1 Make a call that doesn’t connect. Leave a message.
2 Wait for the phone to recognize that there’s VM waiting (the MWI will light).
3 Make another call. See if it rings. Hang up - you don’t need to talk to you.
4 Wait 20 minutes. Call again.
5 Wait 20 more minutes. Call again.
6 Clear the MWI.
7 Wait until a call doesn’t connect again.
8 Call out.
9 Call in again. See if it rings.
Step 1 says there isn’t a path to the phone.
Step 2 says the phone has established a path because of the MWI activity
Step 3 says that the path is still active
Step 4 is checking the timeout
Step 5 is checking the timeout (wondering of the MWI is keeping the route alive)
Step 6 clears the MWI
Step 7 gets us back to the "problem state"
Step 8 place a call
Step 9 see if the path to the phone is still active after a call.
I’m gonna guess that you need to initiate some activity from the phone to keep the circuit (route) open in your firewall. There are settings in Asterisk and your phone that you can use to maintain traffic so that the router recognizes that the path needs to remain in place.
Thanks for the replies guy! Just getting back from vacation…
The odd thing is I can’t even get the phones to subscribe to MWI. Before they just worked after setting up an extension, now they don’t. Even if the PBX server is on the same LAN.
We are using a Linksys WRT3200 ACM router. Default firmware installed. Theres an option for SIP ALG which I have toggled on and off with no difference in outcome.
Will continue to work on MWI and see if thats the key to keeping the “line” open between server and phone. Only problem is that only one phone has a VMBox, the rest don’t. (total of 5 phones)
There’s a feature that was hiding right under my nose…
Grandstream GUI: Accounts > Account 1 > Network Settings > NAT Transversal - set to AUTO
It’s worked like a charm ever since.
Thanks for your help guys!