Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

SIP_ROUTING_LOOP_RR IP-Телефония и СКУД

Анализ заголовков маршрутизации SIP: Via, Route, Record-Route и Loose Routing

Обновлено: 24.08.2026 · Официальная документация ↗
  • SIP-запросы зацикливаются между прокси-серверами, приводя к ошибке 483 Too Many Hops.
  • Запрос INVITE доходит до телефона, но последующие ACK или BYE уходят в никуда, подвешивая каналы.
  • Сообщения внутри диалога (Re-INVITE, INFO) отклоняются промежуточными узлами.

1. Назначение базовых заголовков маршрутизации

  • Via: фиксирует путь прохождения запроса для возврата ответов (hop-by-hop). Защищает от петель через параметр branch.
  • Record-Route: вставляется прокси-серверами, желающими оставаться в цепочке последующих запросов внутри установленного диалога.
  • Route: используется клиентом/прокси для принудительной маршрутизации запроса через список узлов из Record-Route.
  • Contact: прямой адрес оконечного устройства для прямой доставки новых запросов диалога.

2. Loose Routing против Strict Routing

В современном стандарте RFC 3261 используется Loose Routing (обозначается параметром ;lr). Адрес назначения в Request-URI остается адресом конечного абонента, а промежуточные узлы берутся из заголовков Route.

# Пример корректного Loose Routing заголовка
Record-Route: <sip:195.200.10.1;lr;ftag=as1234;nat=yes>

3. Анализ формирования Route Set при ответе 200 OK

При получении ответа 200 OK вызывающая сторона строит список Route Set на основе зеркально отраженных заголовков Record-Route и отправляет ACK:

ACK sip:user@192.168.1.50:5060 SIP/2.0
Via: SIP/2.0/UDP 203.0.113.1:5060;branch=z9hG4bK4321
Route: <sip:195.200.10.1;lr>
To: <sip:user@domain.com>;tag=def567
From: <sip:caller@domain.com>;tag=as1234
Call-ID: c789@203.0.113.1
💡 Практика специалистов: Если звонки успешно стартуют, но не завершаются по кнопке 'Отбой' (BYE теряется, и линия висит до RTP-таймаута) — на 100% нарушена обработка Record-Route / Loose Routing на вашем пограничном SBC.

Частые вопросы (FAQ)

Что произойдет, если прокси-сервер не добавит заголовок Record-Route?

Прокси обработает только начальный INVITE. Все последующие сообщения диалога (ACK, BYE, Re-INVITE) пойдут напрямую между Contact-адресами клиентов, в обход данного прокси.

Как параметр 'branch' в заголовке Via защищает от петель?

Он содержит уникальный идентификатор транзакции, начинающийся с магического префикса 'z9hG4bK'. Если узел получает запрос со своим собственным branch, он фиксирует петлю и возвращает 482 Loop Detected.

Почему устаревший Strict Routing ломал маршрутизацию?

При Strict Routing прокси заменял Request-URI своим адресом, теряя оригинальный целевой адрес назначения из поля запроса.

В каком порядке должны располагаться заголовки Route?

Заголовки Route располагаются строго в порядке прохождения узлов от отправителя к получателю (прямой порядок для вызывающего и инвертированный для отвечающего).

Полезные материалы
Рекомендуем