Index: apps/app_queue.c =================================================================== --- apps/app_queue.c (revision 333632) +++ apps/app_queue.c (working copy) @@ -1153,6 +1153,7 @@ unsigned int realtime:1; unsigned int found:1; unsigned int relativeperiodicannounce:1; + unsigned int autopausebusy:1; enum empty_conditions joinempty; enum empty_conditions leavewhenempty; int announcepositionlimit; /*!< How many positions we announce? */ @@ -2032,6 +2033,8 @@ q->autopause = autopause2int(val); } else if (!strcasecmp(param, "autopausedelay")) { q->autopausedelay = atoi(val); + } else if (!strcasecmp(param, "autopausebusy")) { + q->autopausebusy = ast_true(val); } else if (!strcasecmp(param, "maxlen")) { q->maxlen = atoi(val); if (q->maxlen < 0) @@ -3773,7 +3776,7 @@ do_hang(o); endtime = (long) time(NULL); endtime -= starttime; - rna(endtime * 1000, qe, on, membername, 0); + rna(endtime * 1000, qe, on, membername, qe->parent->autopausebusy); if (qe->parent->strategy != QUEUE_STRATEGY_RINGALL) { if (qe->parent->timeoutrestart) *to = orig; Index: configs/queues.conf.sample =================================================================== --- configs/queues.conf.sample (revision 333632) +++ configs/queues.conf.sample (working copy) @@ -204,6 +204,10 @@ ; last call if a member has not taken a call the delay has no effect. ;autopausedelay=60 ; +; Autopausebusy controls whether or not a queue member is set as paused +; automatically upon the member device reporting busy. Defaults to 'no'. +;autopausebusy=no +; ; Maximum number of people waiting in the queue (0 for unlimited) ; ;maxlen = 0