Public bug reported: In asterisk 1.8, calls to queues with a 'ringall' strategy will kill the Dial() of all non-answering agents as soon as another agent answers. This kill doesn't respect the 'g' option given to Dial(), i.e. control is never returned to the dialplan. This appears to be a regression from asterisk 1.4 which didn't have this behaviour.
It breaks our use of asterisk as we set database variables to reflect the 'offhook' status of agents, and need to be able to unset them once the agent's extension is no longer being rung/in use but we can't do that if Dial() doesn't reliably return control to the dialplan. Here's some log snippets to demonstrate the problem: | -- Executing [s@macro-queueexten:4] Dial("Local/1008@agents-969b;2", "SIP/8916,50,rtge") in new stack | -- Executing [s@macro-queueexten:4] Dial("Local/1002@agents-0e3c;2", "SIP/8914,50,rtge") in new stack Notice the 'g' option to both dial commands. | -- Local/1008@agents-969b;1 is ringing | -- Local/1008@agents-969b;1 connected line has changed. Saving it until answer for SIP/kanbo-0000dcc1 | -- Local/1008@agents-969b;1 connected line has changed. Saving it until answer for SIP/kanbo-0000dcc1 | -- Local/1002@agents-0e3c;1 is ringing | -- Local/1008@agents-969b;1 is ringing | -- Local/1002@agents-0e3c;1 connected line has changed. Saving it until answer for SIP/kanbo-0000dcc1 | -- Local/1002@agents-0e3c;1 connected line has changed. Saving it until answer for SIP/kanbo-0000dcc1 | -- Local/1002@agents-0e3c;1 is ringing | -- SIP/8916-0000dcc2 answered Local/1008@agents-969b;2 | -- Local/1008@agents-969b;1 connected line has changed. Saving it until answer for SIP/kanbo-0000dcc1 | -- Local/1008@agents-969b;1 answered SIP/kanbo-0000dcc1 Here, 1008 answers. | == Spawn extension (macro-queueexten, s, 4) exited non-zero on 'Local/1002@agents-0e3c;2' in macro 'queueexten' The 1002 macro dies, but does not execute the 'h' extension or in any other way return control to the dialplan as requested. | -- Executing [h@macro-queueexten:1] NoOp("SIP/8916-0000dcc2", "") in new stack Whereas 1008 does execute 'h'. | == Spawn extension (macro-queueexten, s, 4) exited non-zero on 'Local/1008@agents-969b;2' in macro 'queueexten' ** Affects: asterisk (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Server Team, which is subscribed to asterisk in Ubuntu. https://bugs.launchpad.net/bugs/1086466 Title: asterisk 1.8 ringall strategy in queues causes non-answering agents to exit out of Dial() even with 'g' option To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/asterisk/+bug/1086466/+subscriptions -- Ubuntu-server-bugs mailing list Ubuntu-server-bugs@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs