diff --git a/apps/app_queue.c b/apps/app_queue.c index d03d9f0630f8377e86f02723e162dcd19f988f11..ddfa7292b2b2b7440c1a9d72ad9d0154df8b93bb 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -2708,16 +2708,11 @@ static int extension_state_cb(const char *context, const char *exten, struct ast miter = ao2_iterator_init(q->members, 0); for (; (m = ao2_iterator_next(&miter)); ao2_ref(m, -1)) { - if (!strcmp(m->state_context, context) && !strcmp(m->state_exten, exten)) { - found = 1; - } else if (!strcmp(m->state_exten, exten) && context_included(m->state_context, context)) { + if (!strcmp(m->state_exten, exten) && + (!strcmp(m->state_context, context) || context_included(m->state_context, context))) { /* context could be included in m->state_context. We need to check. */ found = 1; - } - if (found) { update_status(q, m, device_state); - ao2_ref(m, -1); - break; } } ao2_iterator_destroy(&miter);