Add 'n' option to Queue application to fall through to the next extension after the timeout if no member picks up

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1766 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.0
Martin Pycko 22 years ago
parent cd0e1c9780
commit 502e18c0d0

@ -75,6 +75,7 @@ static char *descrip =
" 'T' -- to allow the calling user to transfer the call.\n"
" 'd' -- data-quality (modem) call (minimum delay).\n"
" 'H' -- allow caller to hang up by hitting *.\n"
" 'n' -- no retries on the timeout; will exit this application and go to the next step.\n"
" In addition to transferring the call, a call may be parked and then picked\n"
"up by another user.\n"
" The optionnal URL will be sent to the called party if the channel supports\n"
@ -99,7 +100,8 @@ static char *app_rqm_descrip =
"Example: RemoveQueueMember(techsupport|SIP/3000)\n"
"";
/* whether to exit Queue application after the timeout hits */
static int go_on = 0;
/* We define a customer "local user" structure because we
@ -739,6 +741,8 @@ static int try_calling(struct queue_ent *qe, char *options, char *announceoverri
tmp->dataquality = 1;
if (strchr(options, 'H'))
tmp->allowdisconnect = 1;
if (strchr(options, 'n'))
go_on = 1;
}
if (url) {
ast_log(LOG_DEBUG, "Queue with URL=%s_\n", url);
@ -1156,6 +1160,11 @@ static int queue_exec(struct ast_channel *chan, void *data)
res = try_calling(&qe, options, announceoverride, url);
if (res)
break;
/* exit after a timeout if 'n' option enabled */
if (go_on) {
res = 0;
break;
}
res = wait_a_bit(&qe);
if (res < 0) {
if (option_verbose > 2) {

Loading…
Cancel
Save