Chan_pjsip Ignoring Endpoint Device State (qualify) On Dial

Home » Asterisk Users » Chan_pjsip Ignoring Endpoint Device State (qualify) On Dial
Asterisk Users 5 Comments

Hi,

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?

Greets, Jacek

5 thoughts on - Chan_pjsip Ignoring Endpoint Device State (qualify) On Dial

  • Jacek, This might be a bug or configuration issue, but you need to understand the SIP Session Timers. With Session Timers you can control the round trip time and Call Setup time of SIP Requests. In case of GSM Network with high delay you need to set the T1 timer a higher value like 1000ms (500 ms default). Similarly you can reduce the Call setup time by configuring ‘T2’ upto you choice as per you telephony network. Configure t1min, timert1 and timerb according to your network. Also set session-type=uas.

    Regards, Muhammad Faheem

  • I don’t think you really mean SIP Session Timers
    (https://tools.ietf.org/html/rfc4028) these do not affect RTT or call setup, but provide kind of ‘keepalive’ and session expiration for established calls.

    Yes, tweaking the T1 and T2 timers may work for me. I’ll try that, though the old ‘qualify’ magic with chan_sip was quite convenient. I
    wonder why it doesn’t work with chan_pjsip.

    Jacek