Jeferson Daniel
Jeferson Daniel

Reputation: 173

Asterisk HANGUPCAUSE always 0 when caller hangs up Queue

Using Asterisk 11, with an inbound route configured to call Queue app, every time the caller hangs up the HANGUPCAUSE variable is 0, it works and returns the NORMAL_CLEARING code only when the assigned queue member hangs up or if not using queues. Example code:

[from-trunk]
exten => s,1,Answer()
same => n,Queue(queue-1,rkt,,,30)
exten => h,1,Verbose(Hangup cause is ${HANGUPCAUSE})

How to obtain a valid HANGUPCAUSE from calls answered with queues?

Upvotes: 1

Views: 2246

Answers (1)

arheops
arheops

Reputation: 15247

Asterisk HANGUP_CAUSE will show you only value of last Dial command and only for SOME channel types.

Queue generate 100500 of NEW calls and bridge it together to make functionality you want.

You can check cause in queue's branches(in each one can be DIFFERENT), using agents in Local/ channels.

You can use Queue app variables:

This application sets the following channel variables upon completion:
${QUEUESTATUS}: The status of the call as a text string.
    TIMEOUT
    FULL
    JOINEMPTY
    LEAVEEMPTY
    JOINUNAVAIL
    LEAVEUNAVAIL
    CONTINUE
${ABANDONED}: If the call was not answered by an agent this variable will be
TRUE.

You also can use queue_log or CDRs.

Upvotes: 3

Related Questions