Merge small bkw_ queue enhancements

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3008 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Spencer
2004-05-19 02:29:15 +00:00
parent 36f888e06e
commit 7976579ef6
2 changed files with 37 additions and 18 deletions

View File

@@ -192,6 +192,7 @@ struct ast_call_queue {
int servicelevel; /* seconds setting for servicelevel*/
int callscompletedinsl; /* Number of queue calls answererd with servicelevel*/
char monfmt[8]; /* Format to use when recording calls */
int monjoin; /* Should we join the two files when we are done with the call */
char sound_next[80]; /* Sound file: "Your call is now first in line" (def. queue-youarenext) */
char sound_thereare[80]; /* Sound file: "There are currently" (def. queue-thereare) */
char sound_calls[80]; /* Sound file: "calls waiting to speak to a representative." (def. queue-callswaiting)*/
@@ -905,6 +906,7 @@ static int try_calling(struct queue_ent *qe, char *options, char *announceoverri
char oldcontext[AST_MAX_EXTENSION]="";
char queuename[256]="";
char *newnum;
char *monitorfilename;
struct ast_channel *peer;
struct localuser *lpeer;
int res = 0, bridge = 0;
@@ -1063,8 +1065,16 @@ static int try_calling(struct queue_ent *qe, char *options, char *announceoverri
}
/* Begin Monitoring */
if (qe->parent->monfmt && *qe->parent->monfmt) {
monitorfilename = pbx_builtin_getvar_helper( peer, "MONITOR_FILENAME");
if(monitorfilename) {
ast_monitor_start( peer, qe->parent->monfmt, monitorfilename, 1 );
} else {
ast_monitor_start( peer, qe->parent->monfmt, qe->chan->cdr->uniqueid, 1 );
}
if(qe->parent->monjoin) {
ast_monitor_setjoinfiles( peer, 1);
}
}
/* Drop out of the queue at this point, to prepare for next caller */
leave_queue(qe);
if( url && !ast_strlen_zero(url) && ast_channel_supports_html(peer) ) {
@@ -1641,6 +1651,8 @@ static void reload_queues(void)
strncpy(q->context, var->value, sizeof(q->context) - 1);
} else if (!strcasecmp(var->name, "timeout")) {
q->timeout = atoi(var->value);
} else if (!strcasecmp(var->name, "monitor-join")) {
q->monjoin = ast_true(var->value);
} else if (!strcasecmp(var->name, "monitor-format")) {
strncpy(q->monfmt, var->value, sizeof(q->monfmt) - 1);
} else if (!strcasecmp(var->name, "queue-youarenext")) {

View File

@@ -86,8 +86,15 @@
; To enable monitoring, simply specify "monitor-format"; it will be disabled
; otherwise.
;
; You can specify the monitor filename with by calling SetVar(MONITOR_FILENAME=foo)
; Otherwise it will use ${UNIQUEID}
;
; monitor-format = gsm|wav|wav49
;
; If you wish to have the two files joined together when the call ends set this to yes
;
; monitor-join = yes
;
; Each member of this call queue is listed on a separate line in
; the form technology/dialstring. "member" means a normal member of a
; queue. An optional penalty may be specified after a comma, such that