--- app_queue.c 2005-12-26 19:19:12.000000000 +0100 +++ app_queue.c-ri 2006-01-21 16:50:30.000000000 +0100 @@ -327,4 +327,5 @@ unsigned int maskmemberstatus:1; unsigned int realtime:1; + unsigned int ringinuse:1; int announcefrequency; /*!< How often to announce their position */ int periodicannouncefrequency; /*!< How often to play periodic announcement */ @@ -568,4 +569,5 @@ q->roundingseconds = 0; /* Default - don't announce seconds */ q->servicelevel = 0; + q->ringinuse = 1; q->moh[0] = '\0'; q->announce[0] = '\0'; @@ -613,4 +615,6 @@ if (q->timeout < 0) q->timeout = DEFAULT_TIMEOUT; + } else if (!strcasecmp(param, "ring-inuse")) { + q->ringinuse = ast_true(val); } else if (!strcasecmp(param, "monitor-join")) { q->monjoin = ast_true(val); @@ -1340,5 +1344,14 @@ return 0; } - + + if ((qe->parent->ringinuse == 0) && (tmp->member->status == AST_DEVICE_INUSE)) { + if (option_debug) + ast_log(LOG_DEBUG, "%s in use, can't receive call\n", tmp->interface); + if (qe->chan->cdr) + ast_cdr_busy(qe->chan->cdr); + tmp->stillgoing = 0; + return 0; + } + if (tmp->member->paused) { if (option_debug)