From 944c8cc4a6af45d941573ad1fb07353c64dd7774 Mon Sep 17 00:00:00 2001
From: BJ Weschke <bweschke@btwtech.com>
Date: Wed, 3 May 2006 20:31:58 +0000
Subject: [PATCH]  Log hold time and talktime in queue_log when blind transfers
 are made by queue members. #7038 (alphaqueue) w/documentation mods added

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_queue.c | 3 ++-
 doc/queuelog.txt | 9 +++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/apps/app_queue.c b/apps/app_queue.c
index 5aec6b9346..3123427487 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -2314,7 +2314,8 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
 		bridge = ast_bridge_call(qe->chan,peer, &bridge_config);
 
 		if (strcasecmp(oldcontext, qe->chan->context) || strcasecmp(oldexten, qe->chan->exten)) {
-			ast_queue_log(queuename, qe->chan->uniqueid, peer->name, "TRANSFER", "%s|%s", qe->chan->exten, qe->chan->context);
+			ast_queue_log(queuename, qe->chan->uniqueid, peer->name, "TRANSFER", "%s|%s|%ld|%ld", 
+					  qe->chan->exten, qe->chan->context, (long)(callstart - qe->start), (long)(time(NULL) - callstart));
 		} else if (qe->chan->_softhangup) {
 			ast_queue_log(queuename, qe->chan->uniqueid, peer->name, "COMPLETECALLER", "%ld|%ld",
 				      (long)(callstart - qe->start), (long)(time(NULL) - callstart));
diff --git a/doc/queuelog.txt b/doc/queuelog.txt
index 72cc7c2f73..aa6365e369 100644
--- a/doc/queuelog.txt
+++ b/doc/queuelog.txt
@@ -80,7 +80,12 @@ SYSCOMPAT
 A call was answered by an agent, but the call was dropped because the 
 channels were not compatible.
 
-TRANSFER(extension,context)
+TRANSFER(extension|context|holdtime|calltime)
 Caller was transferred to a different extension.  Context and extension
-are recorded.
+are recorded. The caller's hold time and the length of the call are both
+recorded. PLEASE remember that transfers performed by SIP UA's by way
+of a reinvite may not always be caught by Asterisk and trigger off this
+event. The only way to be 100% sure that you will get this event when
+a transfer is performed by a queue member is to use the built-in transfer
+functionality of Asterisk.
 
-- 
GitLab