diff --git a/apps/app_queue.c b/apps/app_queue.c index 6312b9cfa6502ebcdf54d91f022a2e23116b0f8c..b01780e0e84d653798730641c0459e25d864fc38 100755 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -1140,7 +1140,6 @@ static int is_our_turn(struct queue_ent *qe) static int wait_our_turn(struct queue_ent *qe, int ringing) { - struct queue_ent *ch; int res = 0; /* This is the holding pen for callers 2 through maxlen */ @@ -1288,24 +1287,34 @@ static int try_calling(struct queue_ent *qe, char *options, char *announceoverri } memset(tmp, 0, sizeof(struct localuser)); tmp->stillgoing = -1; - if (options) { - if (strchr(options, 't')) + for (; options && *options; options++) + switch (*options) { + case 't': ast_set_flag(tmp, QUEUE_FLAG_REDIR_IN); - if (strchr(options, 'T')) + break; + case 'T': ast_set_flag(tmp, QUEUE_FLAG_REDIR_OUT); - if (strchr(options, 'r')) + break; + case 'r': ast_set_flag(tmp, QUEUE_FLAG_RINGBACKONLY); - if (strchr(options, 'm')) + break; + case 'm': ast_set_flag(tmp, QUEUE_FLAG_MUSICONHOLD); - if (strchr(options, 'd')) + break; + case 'd': ast_set_flag(tmp, QUEUE_FLAG_DATAQUALITY); - if (strchr(options, 'h')) + break; + case 'h': ast_set_flag(tmp, QUEUE_FLAG_DISCON_IN); - if (strchr(options, 'H')) + break; + case 'H': ast_set_flag(tmp, QUEUE_FLAG_DISCON_OUT); - if ((strchr(options, 'n')) && (now - qe->start >= qe->parent->timeout)) - *go_on = 1; - } + break; + case 'n': + if ((now - qe->start >= qe->parent->timeout)) + *go_on = 1; + break; + } if (option_debug) { if (url) ast_log(LOG_DEBUG, "Queue with URL=%s_\n", url);