SIP Error 417 Unknown Resource-Priority: настройка заголовка RFC 4412
- Сброс звонков специального назначения или вызовов через государственные/корпоративные шлюзы с кодом
417 Unknown Resource-Priority. - Запрос
INVITEсодержит заголовокResource-Priorityс неизвестным для SBC пространством имен (Namespace). - Отказ в обслуживании приоритетного трафика в транках экстренных служб (Emergency Services).
1. Анализ заголовка Resource-Priority в SIP-пакете
Найдите в дампе проблемный заголовок в сообщении INVITE:
INVITE sip:911@sbc.carrier.com SIP/2.0
Resource-Priority: dsn.flash-override
Require: resource-priorityОшибка 417 означает, что прокси-сервер или шлюз назначения не знает пространства имен (namespace) dsn, значения приоритета flash-override или не поддерживает расширение RFC 4412.
2. Настройка поддерживаемых пространств имен в Kamailio
Если сервер должен валидировать или отбрасывать заголовок, измените конфигурацию маршрутизации:
route[HANDLE_RPH] {
if (is_present_hf("Resource-Priority")) {
# Проверка допустимых RFC 4412 пространств имен (например, ets, wps, dsn)
if (!($hdr(Resource-Priority) =~ "^(ets|wps|dsn)\.")) {
# Если приоритет не поддерживается политикой безопасности:
remove_hf("Resource-Priority");
# Либо отправка явного ответа 417:
# sl_send_reply("417", "Unknown Resource-Priority");
# exit;
}
}
}3. Фильтрация заголовка Resource-Priority на пограничном контроллере (Cisco CUBE)
Для удаления заголовка перед отправкой в публичные транки, где данный функционал не поддерживается, настройте SIP profile на Cisco IOS-XE:
voice class sip-profiles 100
request INVITE sip-header Resource-Priority remove
request INVITE sip-header Require remove-element resource-priority
dial-peer voice 200 voip
destination-pattern +7999.*
session protocol sipv2
voice-class sip-profiles 100 Частые вопросы (FAQ)
Для чего используется заголовок Resource-Priority в SIP?
Он стандартизирован RFC 4412 для выделения системных и сетевых ресурсов приоритетным вызовам (правительственная связь, экстренные службы, диспетчерские каналы энергетики) в условиях перегрузки сети.
Какие стандартные пространства имен (namespaces) определены для Resource-Priority?
Основные пространства имен IANA включают: 'dsn' (Defense Switched Network), 'drsn', 'q735', 'ets' (Emergency Telecommunications Service) и 'wps' (Wireless Priority Service).
Почему заголовок Require: resource-priority критичен при возникновении 417?
Наличие директивы 'Require: resource-priority' строго обязывает каждый промежуточный узел обработать приоритет. Если узел не поддерживает его, он не имеет права игнорировать заголовок и обязан вернуть 417 или 420.
Как убрать ошибку 417 на уровне PBX Asterisk?
В pjsip.conf отключите передачу кастомных заголовков приоритета или удалите заголовок через диалплан перед вызовом Dial: same => n,Set(PJSIP_HEADER(remove,Resource-Priority)=).