We have been migrating our PBX system from Asterisk 1.8 and chan_sip to Asterisk 13 and chan_pjsip. Things are mostly, ok, but now I have stumbled on a behaviour difference I don’t like.
With chan_pjsip when a phone went unexpectedly offline (Ethernet cable disconnected) Asterisk would detect this quickly (through the ‘qualify’
pings), mark the phone as ‘Unavailable’ and fail immediately with
‘CHANUNAVAIL’ when dialling this phone.
With Asterisk 13 and chan_pjsip qualify still works for determining current phone availability (endpoint shown as ‘Unavailable’ shortly after disconnecting the cable), but the phone is being dialled like nothing is wrong – Asterisk sends the INVITE and waits for the response, until SIP timeout (a bit more than 30s total). That is much longer time until ‘CHANUNAVAIL’ than I expect. It is also longer than the dial timeout in some cases, so I would get ‘NOANSWER’ instead of
‘CHANUNAVAIL’ which breaks my dialplan logic.
Is that that the expected behaviour, a bug or a configuration problem?
Am I supposed to check for device availability in my dialplan?