SIP Error 407 Proxy Authentication Required: траблшутинг прокси-авторизации
- Вызов через промежуточный SIP-прокси / SBC завершается с кодом
SIP/2.0 407 Proxy Authentication Required. - Сервер запрашивает авторизацию через заголовок
Proxy-Authenticate. - Зацикливание запросов
INVITE -> 407 -> INVITE -> 407до срабатывания таймаута.
1. Механизм Proxy-Authentication
Аналогично ошибке 401, код 407 выдается промежуточным прокси-сервером (SBC/Kamailio/OpenSIPS). Клиент обязан повторить INVITE, добавив заголовок Proxy-Authorization: Digest ....
2. Настройка Outbound Authentication для транка в pjsip.conf
Если исходящий транк требует авторизацию на прокси оператора:
[my_provider_auth]
type=auth
auth_type=userpass
username=TrunkLogin123
password=TrunkPassword456
realm=sip.provider.com
[my_provider_endpoint]
type=endpoint
transports=transport-udp
outbound_auth=my_provider_auth
context=from-trunk
aors=my_provider_aor3. Проверка обработки Proxy-Authenticate в Kamailio / OpenSIPS
route[PROXY_AUTH] {
if (is_method("INVITE")) {
if (!proxy_authenticate("my_realm", "subscriber")) {
proxy_challenge("my_realm", "0");
exit;
}
}
} Частые вопросы (FAQ)
Чем отличается заголовок 401 от 407?
Код 401 генерируется конечным сервером регистрации/терминации (UAS) с заголовком WWW-Authenticate. Код 407 генерируется промежуточным транзитным узлом (Stateful Proxy/SBC) с заголовком Proxy-Authenticate.
Почему АТС отправляет правильный пароль, но все равно получает повторный 407?
Проверьте соответствие полей username и realm. Если прокси ожидает auth username в виде номера с кодом страны (например, 74951234567), а передается локальный логин, хэш MD5 будет отвергнут.