Asterisk chan_sip: Registration from peer failed - Device not configured
- В логах фиксируется
NOTICE chan_sip.c: Registration from peer 'username' failed for '1.2.3.4' - Device not configured. - Клиент получает ответ
404 Not Foundили403 Forbiddenпри попытке зарегистрироваться. - Новые IP-телефоны не могут подключиться к АТС после добавления в базу данных RealTime или конфиг.
- Вызовы от внешних транков отклоняются с сообщением о нераспознанном устройстве.
1. Причина ошибки Device not configured
Это событие указывает, что Asterisk получил SIP-запрос (REGISTER или INVITE), но не смог сопоставить отправителя ни с одной описанной учетной записью в конфигурационном файле sip.conf или в таблицах SIP RealTime. Поиск выполняется по имени пользователя (User), IP-адресу (Peer) или домену (Domain/Realm).
2. Проверка зарегистрированных пиров и контекстов
asterisk -rx "sip show peers"
asterisk -rx "sip show users"3. Основные сценарии возникновения ошибки:
- Несовпадение имени секции: в
sip.confсоздана секция[101], а телефон пытается авторизоваться какuser101без настройкиdefaultuser=user101. - Конфликт type=peer / type=friend: если для входящих регистраций указан
type=peer, Asterisk сопоставляет устройство строго по IP-адресу, что не работает для динамических клиентов за NAT. - Отсутствие поддержки нескольких доменов: запрос приходит с заголовком
To:, а в[general]не прописан параметрdomain=pbx.company.com.
4. Исправление конфигурации в `/etc/asterisk/sip.conf`
[general]
allowguest=no ; Запрет неавторизованных гостевых вызовов
alwaysauthreject=yes
localnet=192.168.0.0/255.255.0.0
; Шаблон для внутренних абонентов
[internal-phone-template](!)
type=friend ; Сопоставление и по имени пользователя, и по IP
host=dynamic ; Клиенты с динамическим IP
context=from-internal
nat=force_rport,comedia
disallow=all
allow=alaw,ulaw
[101](internal-phone-template)
defaultuser=101
secret=MyComplexPassword1235. Перезагрузка конфигурации модуля
asterisk -rx "sip reload" Частые вопросы (FAQ)
В чем разница между type=peer, type=user и type=friend в chan_sip?
type=user сопоставляет вызовы только по имени пользователя (From header). type=peer сопоставляет вызовы по IP-адресу/порту источника (идеально для транков). type=friend объединяет оба механизма (рекомендуется для динамических телефонов).
Почему ошибка появляется для устройств из базы MySQL RealTime?
Убедитесь, что демон Asterisk имеет доступ к БД, модуль res_config_mysql загружен, а в таблице sipfriends поле name точно совпадает с именем регистрируемого пира.
Как разрешить регистрацию с буквенными логинами?
В секции устройства в sip.conf укажите defaultuser=<буквенный_логин>, а в имени секции используйте этот же идентификатор.
Влияет ли регистр символов в логине на эту ошибку?
Да. Имена пользователей и секций в chan_sip чувствительны к регистру (User101 и user101 — это два разных устройства).