Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

QUEUE_MEMBERS_UNAVAILABLE IP-Телефония и СКУД

Asterisk: Member in queue is paused or unavailable (Ошибки app_queue)

Обновлено: 24.08.2026 · Официальная документация ↗
  • В логах фиксируется NOTICE[0123]: app_queue.c: Member 'PJSIP/101' in queue 'support' is paused or unavailable (Max wait exceeded).
  • Входящие звонки клиентов не распределяются на операторов и сбрасываются по таймауту.
  • Клиенты бесконечно слушают музыку на удержании (MOH) или попадают в сценарий переполнения.
  • Команда queue show <имя_очереди> показывает, что все операторы находятся в статусе (paused) или (Unavailable).

1. Просмотр текущего состояния очередей и операторов

asterisk -rx "queue show support"

2. Настройка файла /etc/asterisk/queues.conf

Скорректируйте параметры распределения вызовов и поведение при отсутствии доступных операторов:

[support]
strategy = rrmemory
timeout = 15
retry = 2
wrapuptime = 10
maxlen = 20

; Выход из очереди, если нет свободных операторов
joinempty = strict
leavewhenempty = strict

; Автоматическое снятие паузы / контроль статуса
autopause = yes
autopausedelay = 60
ringinuse = no
setinterfacevar = yes

3. Снятие всех операторов с паузы через CLI

asterisk -rx "queue unpause member PJSIP/101 queue support"
# Либо снять со всех очередей сразу:
asterisk -rx "queue unpause member PJSIP/101"

4. Обработка переполнения и пустоты очереди в extensions.conf

[incoming-queue]
exten => 800,1,NoOp(Поступление в очередь поддержки)
 same => n,Answer()
 same => n,Queue(support,t,,,120)
 same => n,NoOp(Статус очереди: ${QUEUESTATUS})
 same => n,GotoIf($["${QUEUESTATUS}" = "TIMEOUT"]?timeout:check_empty)
 
 same => n(check_empty),GotoIf($["${QUEUESTATUS}" = "JOINEMPTY" | "${QUEUESTATUS}" = "LEAVEEMPTY"]?empty:hangup)
 same => n(empty),Playback(queue-thereare)
 same => n,Playback(queue-no-members)
 same => n,VoiceMail(support@default,u)
 same => n,Hangup()
 
 same => n(timeout),Playback(queue-periodic-announce)
 same => n,VoiceMail(support@default,u)
 same => n(hangup),Hangup()

5. Перезагрузка очередей

asterisk -rx "queue reload all"
💡 Практика специалистов: Если операторы жалуются на то, что звонки приходят во время набора другого номера, обязательно проверьте параметр ringinuse = no в queues.conf и убедитесь, что в pjsip.conf у всех операторов включен call_counter = yes.

Частые вопросы (FAQ)

Что означает опция joinempty = strict?

Опция запрещает клиентам вставать в очередь, если в ней нет ни одного готового принять звонок оператора (все операторы оффлайн, на паузе или недоступны).

Зачем нужен параметр ringinuse = no?

Он запрещает посылать новый звонок из очереди оператору, который уже разговаривает по телефону (например, по другой линии или внутреннему номеру).

Что означает autopause = yes?

Если оператору поступает звонок из очереди, но он не берет трубку в течение времени timeout, Asterisk автоматически ставит его на паузу, исключая холостые вызовы.

Как динамически добавлять операторов в очередь из диалплана?

Используйте приложение AddQueueMember: same => n,AddQueueMember(support,PJSIP/${CALLERID(num)}). Для удаления — RemoveQueueMember().

Полезные материалы
Рекомендуем