This patch adds additional information to the EXITWITHKEY and EXITWITHTIMEOUT

entries in the queue log.
(issue #7561, reported and originally patched by fkasumovic, patch slightly
 modified and updated to trunk by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@62462 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.0
Russell Bryant 19 years ago
parent b419fc1134
commit 683417407e

@ -113,6 +113,8 @@ Queue changes
* Added min-announce-frequency option to queues.conf which allows you to control the
minimum amount of time between queue announcements for use when the caller's queue
position changes frequently.
* Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
queue log.
MeetMe Changes
--------------

@ -3521,7 +3521,8 @@ check_turns:
if (!res)
break;
if (valid_exit(&qe, res)) {
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHKEY", "%s|%d", qe.digits, qe.pos);
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHKEY", "%s|%d|%d|%ld",
qe.digits, qe.pos, qe.opos, (long) time(NULL) - qe.start);
break;
}
}
@ -3541,7 +3542,8 @@ check_turns:
record_abandoned(&qe);
reason = QUEUE_TIMEOUT;
res = 0;
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
ast_queue_log(args.queuename, chan->uniqueid,"NONE", "EXITWITHTIMEOUT", "%d|%d|%ld",
qe.pos, qe.opos, (long) time(NULL) - qe.start);
break;
}
@ -3549,7 +3551,8 @@ check_turns:
/* Make a position announcement, if enabled */
if (qe.parent->announcefrequency && !ringing &&
(res = say_position(&qe))) {
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHKEY", "%s|%d", qe.digits, qe.pos);
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHKEY", "%s|%d|%d|%ld",
qe.digits, qe.pos, qe.opos, (long) time(NULL) - qe.start);
break;
}
@ -3559,7 +3562,8 @@ check_turns:
/* Make a periodic announcement, if enabled */
if (qe.parent->periodicannouncefrequency && !ringing &&
(res = say_periodic_announcement(&qe))) {
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHKEY", "%c|%d", res, qe.pos);
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHKEY", "%s|%d|%d|%ld",
qe.digits, qe.pos, qe.opos, (long) time(NULL) - qe.start);
break;
}
@ -3574,8 +3578,8 @@ check_turns:
(long) time(NULL) - qe.start);
}
} else if (valid_exit(&qe, res)) {
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHKEY",
"%s|%d", qe.digits, qe.pos);
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHKEY", "%s|%d|%d|%ld",
qe.digits, qe.pos, qe.opos, (long) time(NULL) - qe.start);
}
break;
}
@ -3609,7 +3613,7 @@ check_turns:
record_abandoned(&qe);
reason = QUEUE_TIMEOUT;
res = 0;
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
ast_queue_log(qe.parent->name, qe.chan->uniqueid,"NONE", "EXITWITHTIMEOUT", "%d|%d|%ld", qe.pos, qe.opos, (long) time(NULL) - qe.start);
break;
}
@ -3625,14 +3629,16 @@ check_turns:
break;
}
if (res && valid_exit(&qe, res)) {
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHKEY", "%s|%d", qe.digits, qe.pos);
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHKEY", "%s|%d|%d|%ld",
qe.digits, qe.pos, qe.opos, (long) time(NULL) - qe.start);
break;
}
/* exit after 'timeout' cycle if 'n' option enabled */
if (go_on) {
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "Exiting on time-out cycle\n");
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d|%d|%ld",
qe.pos, qe.opos, (long) time(NULL) - qe.start);
record_abandoned(&qe);
reason = QUEUE_TIMEOUT;
res = 0;

@ -66,12 +66,15 @@ queue when they hungup, the origposition is the original position the
caller was when they first entered the queue, and the waittime is how
long the call had been waiting in the queue at the time of disconnect.
EXITWITHKEY(key|position)
EXITWITHKEY(key|position|origposition|waittime)
The caller elected to use a menu key to exit the queue. The key and
the caller's position in the queue are recorded.
the caller's position in the queue are recorded. The caller's entry
position and amoutn of time waited is also recorded.
EXITWITHTIMEOUT(position)
The caller was on hold too long and the timeout expired.
EXITWITHTIMEOUT(position|origposition|waittime)
The caller was on hold too long and the timeout expired. The position in the
queue when the timeout occurred, the entry position, and the amount of time
waited are logged.
QUEUESTART
The queueing system has been started for the first time this session.

Loading…
Cancel
Save