SIP 407
IP-Телефония и СКУД
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;
}
}
}
Практический опыт инженера:
При каскадной схеме проксирования (PBX -> SBC -> Carrier Proxy) следите за тем, чтобы промежуточный SBC не перезаписывал nonce оригинального провайдера при трансляции ответов 407.
Частые вопросы (FAQ)
Чем отличается заголовок 401 от 407?
Код 401 генерируется конечным сервером регистрации/терминации (UAS) с заголовком WWW-Authenticate. Код 407 генерируется промежуточным транзитным узлом (Stateful Proxy/SBC) с заголовком Proxy-Authenticate.
Почему АТС отправляет правильный пароль, но все равно получает повторный 407?
Проверьте соответствие полей username и realm. Если прокси ожидает auth username в виде номера с кодом страны (например, 74951234567), а передается локальный логин, хэш MD5 будет отвергнут.