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

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

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

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

Asterisk: res_ari.c REST application not registered for endpoint

Обновлено: 24.08.2026 · Официальная документация ↗
  • В журнале регистрируется: WARNING: res_ari.c: REST application 'queue_app' not registered for endpoint.
  • Входящий вызов попадает в диалплан на шаг Stasis(queue_app) и немедленно завершается с ошибкой.
  • В выводе CLI возвращается Stasis application 'queue_app' not registered.
  • Вызывающий абонент слышит сигнал занятости или сброса вызова.

1. Проверка зарегистрированных Stasis-приложений в Asterisk

Выполните команду в CLI:

asterisk -rx "ari show apps"

Если список пуст или в нем отсутствует целевое приложение, значит клиентский сервис ARI не подключен по WebSocket.

2. Проверка соответствия имени приложения в диалплане

Имя, передаваемое в функцию Stasis() в /etc/asterisk/extensions.conf, должно в точности совпадать с именем подписки в клиентском приложении (регистрозависимо):

[incoming-stasis]
exten => 100,1,NoOp(Entering ARI Stasis Flow)
same => n,Answer()
; Имя приложения должно совпадать со Stasis app
same => n,Stasis(queue_app)
same => n,Verbose(1, Stasis app ended with status: ${STASISSTATUS})
same => n,Goto(s-${STASISSTATUS},1)

exten => s-FAILED,1,Verbose(1, Fallback because ARI application is offline)
same => n,Playback(service-temporarily-unavailable)
same => n,Queue(support_backup_queue,30)
same => n,Hangup(16)

3. Проверка запуска клиентского приложения (Node.js/Python/Go)

Убедитесь, что демон приложения активен и подписан на события:

systemctl status ari-smart-queue.service
journalctl -u ari-smart-queue.service -n 50 --no-pager

4. Проверка прав пользователя в ari.conf

Убедитесь, что у пользователя нет ограничений read_only = yes:

[ari_user]
type = user
read_only = no
password = SuperSecurePassword123!
💡 Практика специалистов: Всегда реализуйте проверку переменной ${STASISSTATUS} в extensions.conf сразу за строкой Stasis() — это защитит телефонию от глухого сброса вызовов при перезапуске бэкенд-сервисов.

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

Почему возникает ошибка 'REST application not registered'?

Ошибка означает, что вызов пришел на строку диалплана Stasis(app_name), но в данный момент ни один внешний WebSocket клиент не зарегистрировал приложение с этим именем через ARI API.

Как организовать Fallback в диалплане при недоступности ARI приложения?

Проверяйте переменную ${STASISSTATUS} после выполнения приложения. Если статус равен FAILED, перенаправляйте звонок в резервную очередь или на голосовую почту.

Могут ли несколько инстансов приложения подключаться к одному Stasis app?

Да, несколько WebSocket клиентов могут подключиться к одному Stasis приложению. Asterisk будет дублировать события всем подключенным клиентам.

Как перерегистрировать ARI приложение без перезапуска Asterisk?

Достаточно перезапустить клиентское приложение, слушающее WebSocket. Asterisk зарегистрирует приложение на лету при установке WebSocket сессии.

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