mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 04:11:08 +00:00
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
This commit is contained in:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user