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

Reply via email to