First inbound call goes straight to VM. Second call will ring ext

We have recently switched to a hosted instance of FreePBX 13 from on-site.

All phones are registering and can make calls fine. No quality issues that I’m aware of.

The problem seems like if a phone sits idle for a while, the next call it receives will not ring the extension, but go to voicemail. The caller hears a couple of rings, then VM. The phone then displays that the user has a waiting message, and they get the VM to email notification. It’s the only way they know they’ve missed a call. The CDR does show the incoming call, as do the Asterisk logs in real time.

Is there an idle/timeout option I’ve missed or not seen before that puts the ext in DND until another call comes in?

are the extensions registering themselves with the server? try from asterisk cli: sip show peers

Extensions are registering unless I’m reading it incorrectly.

They all show a status of OK with what I assume is a ping response time

try to monitor the verbose output while receiving a call (asterisk -r -vvvv) it should tell you why the call is going to vm the first time

LOOKS like it’s giving MMODE=CHANUNAVAIL, MODE=unavail, s-CHANUNAVAIL but not sure why. Is there an entry in the log that explains it?

many discussions related to this through a google search

I’ve been looking through that as well as others from similar search results with no luck. I’ll keep at it.

make sure in the extension’s advanced settings you have >>>
Qualify : yes
Setting to yes (equivalent to 2000 msec) will send an OPTIONS packet to the endpoint periodically (default every minute). Used to monitor the health of the endpoint. If delays are longer then the qualify time, the endpoint will be taken offline and considered unreachable. Can be set to a value which is the msec threshhold. Setting to no will turn this off. Can also be helpful to keep NAT pinholes open.

also you can try to reduce the frequency. Other debugging methods you can try is to check after a successfull call what is the cut-off time before you go back to VM on the first call. i imagine that if you cann immediately after hanging up you would still reach the extension. make sure that the extension is registering regularly with the server.

another trick you can use is to create a follow me to the extension and force the server to try to dial the extension twice. this could be a workaround but you should try to figure out what’s happening.