Index: apps/app_queue.c =================================================================== --- apps/app_queue.c (revision 253530) +++ apps/app_queue.c (working copy) @@ -973,6 +973,7 @@ int rrpos; /*!< Round Robin - position */ int memberdelay; /*!< Seconds to delay connecting member to caller */ int autofill; /*!< Ignore the head call status and ring an available agent */ + int aftercallautopause; /*!< Auto pause queue member after a call is completed */ struct ao2_container *members; /*!< Head of the list of members */ /*! @@ -1772,6 +1773,8 @@ q->montype = 1; } else if (!strcasecmp(param, "autopause")) { q->autopause = ast_true(val); + } else if (!strcasecmp(param, "aftercallautopause")) { + q->aftercallautopause = ast_true(val); } else if (!strcasecmp(param, "maxlen")) { q->maxlen = atoi(val); if (q->maxlen < 0) @@ -4728,6 +4731,13 @@ } update_queue(qe->parent, member, callcompletedinsl, (time(NULL) - callstart)); } + if (qe->parent->aftercallautopause) { + if (!set_member_paused( (char *) NULL, member->interface, "AfterCallAutoPause", 1)) { + ast_verb(3, "AfterCallAutoPausing Queue Member %s in ALL queues.\n", member->interface); + } else { + ast_verb(3, "Failed to AfterCallAutoPause Queue Member %s in ALL queues!\n", member->interface); + } + } if (transfer_ds) { ast_datastore_free(transfer_ds);