Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

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