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

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

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

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

SIP Error 302 Moved Temporarily: переадресация вызовов и Contact URI

Обновлено: 24.08.2026 · Официальная документация ↗
  • Вызов сбрасывается сразу после набора, а в логах фиксируется получение ответа 302 Moved Temporarily.
  • Аппаратная переадресация на IP-телефоне (Call Forward) не работает через транк оператора.
  • Циклическое перенаправление вызовов (Call Forwarding Loop), приводящее к исчерпанию лимита Max-Forwards.
  • Подмена Caller ID при переадресации, вызывающая блокировку вызова антифрод-системой оператора.

1. Архитектура ответа SIP 302 Moved Temporarily (RFC 3261 §21.3.2)

Ответ 302 Moved Temporarily информирует клиента о том, что вызываемый абонент временно доступен по другому адресу, указанному в обязательном заголовке Contact. Клиент, получивший 302, должен завершить текущую транзакцию (отправить ACK) и инициировать новый запрос INVITE по адресу из заголовка Contact.

2. Анализ переадресации в SIP-дампе

sngrep -c -d any "302 Moved"

Пример структуры пакета перенаправления:

SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK-abc
From: ;tag=1234
To: ;tag=5678
Call-ID: call-999@192.168.1.10
CSeq: 1 INVITE
Contact: 

3. Разрешение или запрет обработки 302 в Asterisk (chan_pjsip)

По умолчанию Asterisk может либо самостоятельно следовать по адресу переадресации, либо передавать 302 обратно инициатору. Настройка поведения в pjsip.conf:

[endpoint-template](!)
type=endpoint
; Разрешить Asterisk выполнять переадресацию локально
follow_early_media_fork=yes
; Запрет клиентам отправлять 302 в транк (перехват на PBX)
devicestate_priorities=1

4. Обработка переадресации внутри Dialplan без отправки 302 оператору

Вместо использования функции Call Forward на телефоне настройте перевод внутри диалплана:

[internal-forward]
exten => 200,1,NoOp(Проверка локальной переадресации)
 same => n,Set(FWD_NUM=${DB(CF/200)})
 same => n,GotoIf($["${ISNULL(${FWD_NUM})}" = "0"]?forward:dial_local)
 same => n(dial_local),Dial(PJSIP/200,20)
 same => n,Hangup()
 same => n(forward),NoOp(Перевод звонка на мобильный ${FWD_NUM})
 same => n,Set(CALLERID(num)=+74951112233) ; Установка доверенного CallerID компании
 same => n,Dial(PJSIP/${FWD_NUM}@telecom_trunk,30)
 same => n,Hangup()
💡 Практика специалистов: Отключайте функцию локальной переадресации (Local Call Forward) в Web-интерфейсе телефонных аппаратов сотрудников и настраивайте правила Follow-Me централизованно на АТС. Это исключит потерю вызовов из-за неверно сформированных Contact URI.

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

Почему оператор связи блокирует звонок после 302 переадресации?

При автоматическом следовании по 302 АТС часто сохраняет исходный номер звонящего клиента в поле From. Если этот номер не принадлежит вашему пулу, оператор отклонит вызов ошибкой 403 Forbidden или 608 Rejected.

Какой заголовок является обязательным в ответе SIP 302?

Заголовок Contact, содержащий один или несколько новых URI-адресов назначения для перенаправления вызова.

Как защититься от бесконечного цикла переадресаций (Loop)?

Протокол SIP использует заголовок Max-Forwards (по умолчанию 70), значение которого уменьшается на 1 при каждом хопе. При достижении 0 возвращается ошибка 483 Too Many Hops.

В чем разница между SIP 301 и SIP 302?

301 Moved Permanently указывает, что номер навсегда изменил адрес, и клиент должен обновить свои адресные книги. 302 Moved Temporarily указывает на временную переадресацию (например, включен Call Forwarding).

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