[asterisk-bugs] [Asterisk 0012916]: Multiple incoming call to free agent

noreply at bugs.digium.com noreply at bugs.digium.com
Mon Jun 30 03:47:45 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12916 
====================================================================== 
Reported By:                sgenyuk
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   12916
Category:                   Applications/app_queue
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.4.19 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             06-23-2008 10:00 CDT
Last Modified:              06-30-2008 03:47 CDT
====================================================================== 
Summary:                    Multiple incoming call to free agent
Description: 
when agent become available during hight call volume in the queue he might
receive multiple calls. Like if agent has 6 lines on the phone it receive 6
different calls one per line. 
====================================================================== 

---------------------------------------------------------------------- 
 neutrino88 - 06-30-08 03:47  
---------------------------------------------------------------------- 
We have reproduced the bug here using the SIPP simulator. There is indeed
an issue.

Here is a proposal of fix. In the function ring_entry() it seems that the
status of the member is updated just before the call is placed and not
after. Of course the device status callback causes the status to be updated
but there is a small amount of time between the call launch an the
'ringing' event when other call could be presented to the same agent.

Therefore, we propose the following patch:

Index: apps/app_queue.c
===================================================================
--- apps/app_queue.c    (révision 125816)
+++ apps/app_queue.c    (copie de travail)
@@ -1890,8 +1890,16 @@
                        ast_verbose(VERBOSE_PREFIX_3 "Couldn't call
%s\n", tmp->interface);
                do_hang(tmp);
                (*busies)++;
+
+               update_status(tmp->member->interface,
ast_device_state(tmp->member->interface));  // IVeS Update
+
                return 0;
-       } else if (qe->parent->eventwhencalled) {
+       }
+
+       /* IVeS - Update status AFTER call in initiated */
+        update_status(tmp->member->interface,
ast_device_state(tmp->member->interface));
+
+       if (qe->parent->eventwhencalled) {
                char vars[2048];

                manager_event(EVENT_FLAG_AGENT, "AgentCalled",

Note also that the call to update_status( ) done right after ast_request()
could be removed.

Emmanuel
http://www.ives.fr 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
06-30-08 03:47  neutrino88     Note Added: 0089420                          
======================================================================




More information about the asterisk-bugs mailing list