mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 04:30:28 +00:00
Merge optimize options patch (bug #3095)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4493 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1140,7 +1140,6 @@ static int is_our_turn(struct queue_ent *qe)
|
|||||||
|
|
||||||
static int wait_our_turn(struct queue_ent *qe, int ringing)
|
static int wait_our_turn(struct queue_ent *qe, int ringing)
|
||||||
{
|
{
|
||||||
struct queue_ent *ch;
|
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
||||||
/* This is the holding pen for callers 2 through maxlen */
|
/* 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));
|
memset(tmp, 0, sizeof(struct localuser));
|
||||||
tmp->stillgoing = -1;
|
tmp->stillgoing = -1;
|
||||||
if (options) {
|
for (; options && *options; options++)
|
||||||
if (strchr(options, 't'))
|
switch (*options) {
|
||||||
|
case 't':
|
||||||
ast_set_flag(tmp, QUEUE_FLAG_REDIR_IN);
|
ast_set_flag(tmp, QUEUE_FLAG_REDIR_IN);
|
||||||
if (strchr(options, 'T'))
|
break;
|
||||||
|
case 'T':
|
||||||
ast_set_flag(tmp, QUEUE_FLAG_REDIR_OUT);
|
ast_set_flag(tmp, QUEUE_FLAG_REDIR_OUT);
|
||||||
if (strchr(options, 'r'))
|
break;
|
||||||
|
case 'r':
|
||||||
ast_set_flag(tmp, QUEUE_FLAG_RINGBACKONLY);
|
ast_set_flag(tmp, QUEUE_FLAG_RINGBACKONLY);
|
||||||
if (strchr(options, 'm'))
|
break;
|
||||||
|
case 'm':
|
||||||
ast_set_flag(tmp, QUEUE_FLAG_MUSICONHOLD);
|
ast_set_flag(tmp, QUEUE_FLAG_MUSICONHOLD);
|
||||||
if (strchr(options, 'd'))
|
break;
|
||||||
|
case 'd':
|
||||||
ast_set_flag(tmp, QUEUE_FLAG_DATAQUALITY);
|
ast_set_flag(tmp, QUEUE_FLAG_DATAQUALITY);
|
||||||
if (strchr(options, 'h'))
|
break;
|
||||||
|
case 'h':
|
||||||
ast_set_flag(tmp, QUEUE_FLAG_DISCON_IN);
|
ast_set_flag(tmp, QUEUE_FLAG_DISCON_IN);
|
||||||
if (strchr(options, 'H'))
|
break;
|
||||||
|
case 'H':
|
||||||
ast_set_flag(tmp, QUEUE_FLAG_DISCON_OUT);
|
ast_set_flag(tmp, QUEUE_FLAG_DISCON_OUT);
|
||||||
if ((strchr(options, 'n')) && (now - qe->start >= qe->parent->timeout))
|
break;
|
||||||
*go_on = 1;
|
case 'n':
|
||||||
}
|
if ((now - qe->start >= qe->parent->timeout))
|
||||||
|
*go_on = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (option_debug) {
|
if (option_debug) {
|
||||||
if (url)
|
if (url)
|
||||||
ast_log(LOG_DEBUG, "Queue with URL=%s_\n", url);
|
ast_log(LOG_DEBUG, "Queue with URL=%s_\n", url);
|
||||||
|
Reference in New Issue
Block a user