SIP Error 416 Unsupported URI Scheme: траблшутинг схем tel, sips и sip
- Сброс вызова на этапе отправки
INVITEпри маршрутизации номеров в международном E.164 формате. - Ответ
SIP/2.0 416 Unsupported URI Schemeв SIP-трейсе. - IP-телефон или софтфон отправляет Request-URI вида
tel:+79991234567илиsips:user@domain.com, который отклоняется прокси-сервером.
1. Анализ Request-URI в дампе пакетов
С помощью sngrep просмотрите первую строчку входящего SIP-пакета:
INVITE tel:+79991234567 SIP/2.0
# или
INVITE sips:1001@pbx.company.local SIP/2.0Ошибка 416 сообщает, что сервер умеет обрабатывать исключительно стандартную схему sip: и не обучен парсингу tel: (RFC 3966) или sips: (RFC 3261 TLS).
2. Конвертация схемы tel: в sip: на уровне Kamailio
В файле /etc/kamailio/kamailio.cfg добавьте логику нормализации URI в блоке маршрутизации route[REQINIT]:
route[TEL2SIP] {
if ($rU =~ "^\+[0-9]+") {
# Преобразование tel URI в классический SIP URI
$ru = "sip:" + $rU + "@" + $fd;
}
if (uri_type == "tel") {
tel2sip("company.local", "gateway");
}
}3. Обработка tel: URI в Asterisk (chan_pjsip)
В /etc/asterisk/pjsip.conf убедитесь, что в секции глобальных настроек или endpoint включена корректная обработка E.164:
[global]
user_agent=Enterprise-PBX
[endpoint-template](!)
type=endpoint
allow_unauthenticated_options=no
# Включение поддержки E.164 и тел-схем
trust_id_inbound=yes
send_pai=yes4. Исправление конфигурации на IP-телефонах (Yealink, Grandstream, Cisco)
В веб-интерфейсе оконечных SIP-аппаратов отключите отправку Tel URI Scheme:
- Yealink: Features -> General Information -> Send Tel's URI -> Disabled.
- Grandstream: Account -> SIP Settings -> Advanced Features -> Use TEL URI -> Disabled (User=Phone).
Частые вопросы (FAQ)
Что означает схема sips: и почему она вызывает 416 ошибку?
Схема 'sips:' требует обязательного сквозного шифрования TLS по всей цепочке прокси-серверов. Если промежуточный узел или АТС настроены на работу только по незашифрованному UDP/TCP (схема 'sip:'), он обязан отклонить запрос с кодом 416.
Является ли схема tel: легитимной по стандартам IETF?
Да, схема 'tel:' регламентирована RFC 3966 и часто используется в сетях мобильных операторов (IMS/VoLTE). Однако локальные корпоративные АТС без модуля tel2sip не поддерживают ее нативный парсинг.
Как транслировать tel: URI в план нумерации FreePBX?
В FreePBX перейдите в раздел Settings -> Advanced Settings и настройте параметр 'Allow SIP Guests' и кастомный контекст в extensions_custom.conf, извлекающий номер через строковую функцию CUT или REGEX.
Какое поведение требует стандарт RFC 3261 при получении неизвестной схемы URI?
Сервер обязан немедленно прекратить обработку транзакции и вернуть клиенту ответ 416 Unsupported URI Scheme без попыток форвардинга вызова.