SIP ошибка 403 Forbidden и 401 Unauthorized: как проверить логин и пароль номера
- На экране IP-телефона горит надпись
SIP 403 ForbiddenилиAuthentication Failed. - При попытке сделать исходящий звонок в трубке звучит автоответчик: «Ваш звонок не может быть завершен» или короткие гудки.
- В консоли Asterisk сыпятся предупреждения:
chan_sip.c: Registration from '<sip:101@...>' failed for '...' - Wrong password. - После ввода настроек аккаунт на телефоне не регистрируется на АТС.
В чем разница между 401 Unauthorized и 403 Forbidden?
Это стандартные коды протокола SIP при проверке подлинности:
- 401 Unauthorized (Требуется авторизация): Это нормальный рабочий шаг протокола. Когда телефон впервые отправляет запрос, АТС отвечает кодом 401 и присылает случайное число (nonce). Телефон должен зашифровать свой пароль этим числом и отправить запрос повторно.
- 403 Forbidden (Запрещено / Доступ отклонен): Это ошибка. Сервер получил ответ от телефона, но введенный пароль оказался неверным, номер заблокирован, или телефотону запрещено звонить по данному направлению.
Пошаговое исправление ошибки 403 Forbidden:
Шаг 1. Проверьте три главных поля авторизации в телефоне
Очень часто путают логин, имя пользователя и номер:
- Зайдите в веб-интерфейс телефона в настройки аккаунта (Account).
- Account Name / Display Name: Любое понятное имя (например,
Иван Ивановили101). - SIP User ID / Extension: Внутренний номер абонента (например,
101). - Authenticate ID (Auth Name / Логин авторизации): В большинстве сборок (FreePBX) он строго совпадает с номером (
101). Не пишите сюда email или ФИО! - Password (Secret / Пароль): Скопируйте сложный пароль из настроек номера на АТС (без лишних пробелов в начале и конце).
Шаг 2. Проверка контекста в Asterisk (права на исходящие вызовы)
Если регистрация проходит успешно, но ошибка 403 Forbidden появляется при попытке набрать городской номер:
- Абоненту назначен контекст, в котором нет права звонить на внешние линии (например, контекст
from-internal-customвместоfrom-internal). - В FreePBX проверьте модуль Custom Contexts или Class of Service (CoS): разрешен ли абоненту 101 доступ к транкам исходящей связи (Outbound Routes).
Шаг 3. Защита от подделки CallerID (From User)
Некоторые операторы связи и АТС отклоняют звонки с ошибкой 403, если телефон пытается отправить в сеть произвольный номер (Caller ID):
- В настройках SIP-аккаунта телефона включите параметр Use Auth Name for Caller ID или вручную пропишите номер в поле
From User.
Частые вопросы (FAQ)
Почему телефон пишет 401 Unauthorized и не звонит?
Если телефон застрял на 401 и не переходит к звонку, значит аппарат не поддерживает запрашиваемый сервером алгоритм шифрования хэша пароля (MD5/SHA-256), либо в настройках выключена опция 'Send Digest Authentication'.
Может ли 403 Forbidden возникать из-за блокировки IP-адреса?
Да, если на АТС настроен белый список IP-адресов для каждого номера (параметр permit/deny в sip.conf или permit в pjsip). Если подключиться с чужого IP, сервер вернет 403 Forbidden.
Как увидеть точную причину ошибки 403 в консоли Asterisk?
Подключитесь к консоли asterisk -rvvvv и выполните sip set debug on (или pjsip set logger on). В логе будет явно написано: 'Username/Secret mismatch' (неверный пароль) или 'No matching peer found' (номер не существует).
Что делать, если провайдер телефонии присылает 403 на исходящие звонки?
Проверьте баланс лицевого счета у провайдера, а также убедитесь, что вы отправляете в заголовке From/CallerID именно тот городской номер, который официально выделен вам по договору.