]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Add the Ring time in the CONNECT on the queue_log and on the Manager event AgentConnect
authorJason Parker <jparker@digium.com>
Wed, 1 Aug 2007 20:05:13 +0000 (20:05 +0000)
committerJason Parker <jparker@digium.com>
Wed, 1 Aug 2007 20:05:13 +0000 (20:05 +0000)
Closes issue #10349, patch by eliel

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77879 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c
doc/tex/queuelog.tex

index 291c883bd29537c11e1ebf76eab25163652a93d7..79dd301ca3e06e7d03406c2f43986499d6dc5993 100644 (file)
@@ -2460,7 +2460,7 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
 {
        struct member *cur;
        struct callattempt *outgoing = NULL; /* the list of calls we are building */
-       int to;
+       int to, orig;
        char oldexten[AST_MAX_EXTENSION]="";
        char oldcontext[AST_MAX_CONTEXT]="";
        char queuename[256]="";
@@ -2583,6 +2583,7 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
                to = (qe->expire - now) * 1000;
        else
                to = (qe->parent->timeout) ? qe->parent->timeout * 1000 : -1;
+       orig = to;
        ring_one(qe, outgoing, &numbusies);
        ast_mutex_unlock(&qe->parent->lock);
        if (use_weight)
@@ -2918,7 +2919,8 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
                        } else
                                ast_log(LOG_WARNING, "Asked to execute an AGI on this channel, but could not find application (agi)!\n");
                }
-               ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "CONNECT", "%ld|%s", (long) time(NULL) - qe->start, peer->uniqueid);
+               ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "CONNECT", "%ld|%s|%ld", (long) time(NULL) - qe->start, peer->uniqueid,
+                                                                                                       (long)(orig - to > 0 ? (orig - to) / 1000 : 0));
                if (qe->parent->eventwhencalled)
                        manager_event(EVENT_FLAG_AGENT, "AgentConnect",
                                        "Queue: %s\r\n"
@@ -2928,9 +2930,10 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
                                        "MemberName: %s\r\n"
                                        "Holdtime: %ld\r\n"
                                        "BridgedChannel: %s\r\n"
+                                       "Ringtime: %ld\r\n"
                                        "%s",
                                        queuename, qe->chan->uniqueid, peer->name, member->interface, member->membername,
-                                       (long) time(NULL) - qe->start, peer->uniqueid,
+                                       (long) time(NULL) - qe->start, peer->uniqueid, (long)(orig - to > 0 ? (orig - to) / 1000 : 0),
                                        qe->parent->eventwhencalled == QUEUE_EVENT_VARIABLES ? vars2manager(qe->chan, vars, sizeof(vars)) : "");
                ast_copy_string(oldcontext, qe->chan->context, sizeof(oldcontext));
                ast_copy_string(oldexten, qe->chan->exten, sizeof(oldexten));
index 741c18a6c9856834563e82fc5516186053f8eeb1..0777b2b7922fd42723655713953f2de56329f940 100644 (file)
@@ -56,13 +56,14 @@ origposition.
 
 The configuration has been reloaded (e.g. with asterisk -rx reload)
 
-\textbf{CONNECT(holdtime|bridgedchanneluniqueid)}
+\textbf{CONNECT(holdtime|bridgedchanneluniqueid|ringtime)}
 
 The caller was connected to an agent.  Hold time represents the amount
 of time the caller was on hold. The bridged channel unique ID contains
 the unique ID of the queue member channel that is taking the call. This
 is useful when trying to link recording filenames to a particular
-call in the queue.
+call in the queue. Ringtime represents the time the queue members phone
+was ringing prior to being answered.
 
 \textbf{ENTERQUEUE(url|callerid)}