]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 378516 via svnmerge from
authorAutomerge script <automerge@asterisk.org>
Thu, 3 Jan 2013 22:19:46 +0000 (22:19 +0000)
committerAutomerge script <automerge@asterisk.org>
Thu, 3 Jan 2013 22:19:46 +0000 (22:19 +0000)
file:///srv/subversion/repos/asterisk/trunk

................
  r378516 | elguero | 2013-01-03 16:14:20 -0600 (Thu, 03 Jan 2013) | 25 lines

  Fix Queue Log Reporting Every Call COMPLETECALLER With "h" Extension Present

  When the "h" extension is present within the context of the queue, all calls
  are being reported COMPLETECALLER even when the agent is hanging up the call.

  This patch checks to see if the agent hung-up or not instead of only relying on
  checking if the queue (caller) channel hung-up or not.  It would appear that
  having the h extension in the mix, the pbx goes to the h extension,
  "hanging-up" the queue channel and triggering the reporting of COMPLETECALLER.

  (closes issue ASTERISK-20743)
  Reported by: call
  Tested by: call, Michael L. Young
  Patches:
      asterisk-20743-q-cmplt-caller.diff
                                       uploaded by Michael L. Young (license 5026)

  Review: https://reviewboard.asterisk.org/r/2256/
  ........

  Merged revisions 378514 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........

  Merged revisions 378515 from http://svn.asterisk.org/svn/asterisk/branches/11
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/team/mmichelson/threadpool@378523 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c

index c0daff4b6f299e6ed6e09652be146895c068e1d3..2a15d19739a8134cf74ba834a82afc7860752650 100644 (file)
@@ -5818,7 +5818,7 @@ static int try_calling(struct queue_ent *qe, const struct ast_flags opts, char *
 
                time(&callstart);
                transfer_ds = setup_transfer_datastore(qe, member, callstart, callcompletedinsl);
-               bridge = ast_bridge_call(qe->chan,peer, &bridge_config);
+               bridge = ast_bridge_call(qe->chan, peer, &bridge_config);
 
                /* If the queue member did an attended transfer, then the TRANSFER already was logged in the queue_log
                 * when the masquerade occurred. These other "ending" queue_log messages are unnecessary, except for
@@ -5834,7 +5834,7 @@ static int try_calling(struct queue_ent *qe, const struct ast_flags opts, char *
                                        ast_channel_exten(qe->chan), ast_channel_context(qe->chan), (long) (callstart - qe->start),
                                        (long) (time(NULL) - callstart), qe->opos);
                                send_agent_complete(qe, queuename, peer, member, callstart, vars, sizeof(vars), TRANSFER);
-                       } else if (ast_check_hangup(qe->chan)) {
+                       } else if (ast_check_hangup(qe->chan) && !ast_check_hangup(peer)) {
                                ast_queue_log(queuename, ast_channel_uniqueid(qe->chan), member->membername, "COMPLETECALLER", "%ld|%ld|%d",
                                        (long) (callstart - qe->start), (long) (time(NULL) - callstart), qe->opos);
                                send_agent_complete(qe, queuename, peer, member, callstart, vars, sizeof(vars), CALLER);