Index: apps/app_queue.c =================================================================== --- apps/app_queue.c (revision 124241) +++ apps/app_queue.c (working copy) @@ -637,21 +637,28 @@ ao2_lock(q); mem_iter = ao2_iterator_init(q->members, 0); for (; (member = ao2_iterator_next(&mem_iter)); ao2_ref(member, -1)) { - if ((max_penalty && (member->penalty > max_penalty)) || (min_penalty && (member->penalty < min_penalty))) + ast_log(LOG_NOTICE, "Checking status for member %s\n", member->membername); + if ((max_penalty && (member->penalty > max_penalty)) || (min_penalty && (member->penalty < min_penalty))) { + ast_log(LOG_NOTICE, "Queue member %s's penalty is not within the boundaries %d and %d\n", member->membername, max_penalty, min_penalty); continue; + } switch (member->status) { case AST_DEVICE_INVALID: /* nothing to do */ + ast_log(LOG_NOTICE, "Queue member %s's status is 'Invalid.' Not counting toward available members\n", member->membername); break; case AST_DEVICE_UNAVAILABLE: if (result != QUEUE_NO_UNPAUSED_REACHABLE_MEMBERS) result = QUEUE_NO_REACHABLE_MEMBERS; + ast_log(LOG_NOTICE, "Queue member %s's status is 'unavailable.' Not counting toward available members\n", member->membername); break; default: if (member->paused) { + ast_log(LOG_NOTICE, "Queue member %s is paused. Not counting toward available members\n", member->membername); result = QUEUE_NO_UNPAUSED_REACHABLE_MEMBERS; } else { + ast_log(LOG_NOTICE, "Found available queue member %s\n", member->membername); ao2_unlock(q); ao2_ref(member, -1); return QUEUE_NORMAL; @@ -1376,6 +1383,8 @@ m->penalty = penalty; ao2_ref(m, -1); } + + ast_log(LOG_NOTICE, "Processed member %s(%s) from realtime\n", m->membername, m->interface); } /*! \brief Iterate through queue's member list and delete them */ @@ -1588,6 +1597,7 @@ queue_vars = ast_load_realtime("queues", "name", queuename, NULL); if (queue_vars) { + ast_log(LOG_NOTICE, "Found realtime queue %s\n", queuename); member_config = ast_load_realtime_multientry("queue_members", "interface LIKE", "%", "queue_name", queuename, NULL); if (!member_config) { ast_log(LOG_ERROR, "no queue_members defined in your config (extconfig.conf).\n"); @@ -1683,6 +1693,7 @@ int inserted = 0; enum queue_member_status stat; + ast_log(LOG_NOTICE, "About to retrieve queue %s\n", queuename); if (!(q = load_realtime_queue(queuename))) return res; @@ -1690,6 +1701,7 @@ ao2_lock(q); /* This is our one */ + ast_log(LOG_NOTICE, "About to check member status for queue %s\n", queuename); stat = get_member_status(q, qe->max_penalty, qe->min_penalty); if (!q->joinempty && (stat == QUEUE_NO_MEMBERS)) *reason = QUEUE_JOINEMPTY; @@ -4459,6 +4471,7 @@ qe.last_periodic_announce_time = time(NULL); qe.last_periodic_announce_sound = 0; qe.valid_digits = 0; + ast_log(LOG_NOTICE, "Caller %s has started the Queue() application\n", qe.chan->name); if (join_queue(args.queuename, &qe, &reason)) { ast_log(LOG_WARNING, "Unable to join queue '%s'\n", args.queuename); set_queue_result(chan, reason);