Over the weekend, I turned off the server and the phones to perform a rack swap. When the phones and server were turned back on, outbound calls can be made, but inbound calls go straight to voicemail. The server is a FreePBX 60 system and the phones are Sangoma 505 and 3 of those have extenders.
The graph on the dashboard shows that all the users are offline, but show as online when they make an outbound call:
After seeing that, I checked the Chan_PJSip Endpoints section under Reports → Asterisk Info → chan_pjsip Info and confirmed that all the extensions show as unavailable. So since none of the phones in the ring group are available, the external calls go straight to voicemail. Trying to call from one phone to another also goes to that extension’s voicemail.
I’ve tried restarting the phones and the server, nothing changes. There are no new firewall rules since this started and I can ping the phones while logged in via ssh. Checking the asterisk log, the only thing that jumps out at me is this:
[2020-01-13 15:14:57] NOTICE[18819] res_pjsip_exten_state.c: Endpoint ‘117’ state subscription failed: Extension ‘*97’ does not exist in context ‘from-internal’ or has no associated hint
[2020-01-13 15:14:57] NOTICE[18819] res_pjsip_exten_state.c: Endpoint ‘117’ state subscription failed: Extension ‘*88’ does not exist in context ‘from-internal’ or has no associated hint
I get a similar message for each extension, but, I’m not sure if it is relevant.
Subscriptions are for BLFs and have nothing to do with registrations.
After leaving my phone off for a while and plugging it back in, these messages show up in the log:
[2020-01-13 15:37:49] VERBOSE[18819] res_pjsip/pjsip_options.c: Contact 117/sip:[email protected]:5060 has been deleted
[2020-01-13 15:37:55] VERBOSE[23893] res_pjsip_registrar.c: Added contact ‘sip:[email protected]:5060’ to AOR ‘117’ with expiration of 900 seconds
[2020-01-13 15:37:56] NOTICE[23893] res_pjsip_exten_state.c: Endpoint ‘117’ state subscription failed: Extension ‘*97’ does not exist in context ‘from-internal’ or has no associated hint
[2020-01-13 15:37:56] NOTICE[23893] res_pjsip_exten_state.c: Endpoint ‘117’ state subscription failed: Extension ‘*88’ does not exist in context ‘from-internal’ or has no associated hint
[2020-01-13 15:37:58] VERBOSE[23893] res_pjsip/pjsip_options.c: Contact 117/sip:[email protected]:5060 is now Unreachable. RTT: 0.000 msec
I checked that the phone has that IP address and am able to ping it from the ssh shell:
PING 10.0.10.21 (10.0.10.21) 56(84) bytes of data.
64 bytes from 10.0.10.21: icmp_seq=1 ttl=63 time=0.588 ms
64 bytes from 10.0.10.21: icmp_seq=2 ttl=63 time=0.807 ms
64 bytes from 10.0.10.21: icmp_seq=3 ttl=63 time=0.968 ms
64 bytes from 10.0.10.21: icmp_seq=4 ttl=63 time=0.562 ms
^C
— 10.0.10.21 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 0.562/0.731/0.968/0.167 ms
This has also popped up in the dashboard. I didn’t change anything manually there and I have restarted asterisk before and this went away, but now it is back. I’m also not sure if it is relevant.
Just after I posted this, I got another message there that Allow Transports Reload was on, but recommended to be off. I turned it off and both of those messages went away, but my phones still aren’t connecting.
It isn’t really the solution I was looking for, but switching the extensions from pjsip to sip seems to solve the “my users aren’t getting calls” problem, but not the “why did this break” problem. Going to switch the phones over for now and I’ll see if I can figure out why pjsip broke. Anyone have any troubleshooting suggestons?
I also use MicroSIP as a softphone and can confirm the same issue occurs: I can make calls from the MicroSIP client, but not to it; it shows as offline.
Under Reports -> Asterisk Info -> Chan_PjSip Info it says No objects found under Chan_PjSip Channel(s) and Chan_PjSip Registrations instead of just giving an empty table with no records like it did on Chan_Sip Info (before moving phones to it) and under IAX Info
I made sure the Allow Transports Reload is set to no and then ran fwconsole restart from the command line, but my pjsip microsip client still doesn’t receive calls. That same Invalid Websocket Transport for Zulu message is also coming up again.
Are these transports supposed to be set like this? I haven’t manually changed anything here. I’m not sure why it is suddenly complaining about WS and WSS.
These phones have been using chan_pjsip for nearly a year now and since then I’ve ran updates at least once a month. They started to have this problem after I ran updates, shut everything down, swapped out the server rack, and turned everything back on. I’ve confirmed that the server is connected to the correct interfaces and IP address settings are the same.
The phones are functioning correctly again after converting the extensions from chan_pjsip to chan_sip, but that doesn’t explain why they broke in the first place. I’ve also been told (and have confirmed) that the parking module no longer tells what slot the call was parked in, despite it showing in the logs. I’m not sure if that’s related, but I’d rather fix the pjsip issue first.