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

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

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

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

Диагностика ошибок 403 Forbidden и 404 Not Found на SIP-транках операторов

Обновлено: 24.08.2026 · Официальная документация ↗
  • Исходящие вызовы мгновенно сбрасываются с короткими гудками и кодом SIP/2.0 403 Forbidden.
  • Звонок на корректный номер абонента возвращает SIP/2.0 404 Not Found.
  • Входящие звонки от провайдера отклоняются корпоративной АТС с ошибкой 404.
  • Блокировка исходящих вызовов при попытке подстановки альтернативного номера компании.

1. Причины ошибки 403 Forbidden со стороны оператора

  1. Несоответствие Caller ID (А-номера): согласно закону о связи оператор блокирует вызовы с незарегистрированным за договором номером. Убедитесь, что поле From или P-Asserted-Identity содержит выделенный пул номеров.
  2. Блокировка по IP (ACL): исходящий запрос идет не с того публичного IP, который прописан в договоре.
  3. Запрет международного/междугородного направления: на транке отключен выход на МГ/МН связь.

2. Корректировка Caller ID в заголовках PAI / From

# Asterisk dialplan (extensions.conf)
exten => _X.,1,Set(CALLERID(num)=74951234567)
exten => _X.,n,Set(PJSIP_HEADER(add,P-Asserted-Identity)=<sip:74951234567@provider.com>)
exten => _X.,n,Dial(PJSIP/${EXTEN}@trunk_provider)

3. Причины ошибки 404 Not Found и нормализация набора

Оператор ожидает номер в строго определенном формате (E.164 с плюсом, 11 цифр или 10 цифр без 8-ки):

# Преобразование 89XXXXXXXXX в формат +79XXXXXXXXX
exten => _89XXXXXXXXX,1,Dial(PJSIP/+7${EXTEN:1}@trunk_provider)

# Преобразование в 10-значный формат
exten => _8XXXXXXXXXX,1,Dial(PJSIP/${EXTEN:1}@trunk_provider)

4. Траблшутинг входящих 404 Not Found на своей АТС

Если входящий звонок от оператора отклоняет ваша АТС, убедитесь, что в контексте входящей маршрутизации (from-trunk) создан маршрут по умолчанию (catch-all):

[from-trunk]
exten => _.,1,NoOp(Incoming call for ${EXTEN})
exten => _.,n,Goto(incoming_ivr,s,1)
💡 Практика специалистов: Для быстрой локализации ошибки 403 всегда запрашивайте у техподдержки оператора точную причину по логу их SBC: несовпадение CLI, нехватка баланса или срабатывание гео-блокировки направлений.

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

Почему оператор присылает 403 Forbidden на правильный номер телефона?

Операторы часто проверяют не только заголовок From, но и P-Asserted-Identity (PAI) или Remote-Party-ID. Если номер в PAI не принадлежит вашему договору, сработает система Anti-Spoofing защиты оператора.

В чем отличие 404 Not Found от 404 User Not Found?

Это одно и то же SIP-сообщение. Текстовая фраза (Reason Phrase) может варьироваться, но код 404 всегда означает, что запрошенный URI (номер назначения) отсутствует в таблице маршрутизации.

Что означает заголовок 'Reason: Q.850;cause=1' в ответе 404?

Это код причины из телефонной сети общего пользования (ISDN/SS7). Cause 1 означает 'Unallocated (unassigned) number' — номер не существует или не обслуживается.

Как исправить входящий вызов, если транк регистрируется, но звонки не попадают в диалплан?

В Asterisk PJSIP убедитесь, что в настройках endpoint указан параметр identify_by=ip,username или настроен соответствующий секвенсор 'identify' по IP-адресу провайдера.

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