Asterisk HANGUPCAUSE always 0 when caller hangs up Queue

Asterisk HANGUPCAUSE always 0 when caller hangs up Queue

使用 Asterisk 11,入站路由配置为调用 Queue 应用程序,每次呼叫者挂断时 HANGUPCAUSE 变量为 0 ,它和 returns NORMAL_CLEARING 代码仅在分配的队列成员挂断或不使用队列时有效。示例代码:

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

如何从使用队列应答的呼叫中获取有效的HANGUPCAUSE

A​​sterisk HANGUP_CAUSE 将仅向您显示上次拨号命令的值,并且仅适用于某些频道类型。

排队生成 100500 个新调用并将其桥接在一起以实现您想要的功能。

您可以在队列的分支中检查原​​因(每个分支都可以不同),使用本地/通道中的代理。

您可以使用队列应用程序变量:

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.

您也可以使用 queue_log 或 CDR。