Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

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

SIP Error 604 Does Not Exist Anywhere: глобально несуществующий номер

Обновлено: 24.08.2026  ·  Официальная база знаний
  • Исходящий звонок завершается ошибкой 604 Does Not Exist Anywhere.
  • В трубке воспроизводится системное сообщение оператора: «Набранный номер не существует или отключен».
  • Вызовы на международные направления сбрасываются на этапе маршрутизации на пограничном транзитном коммутаторе.
  • Невозможность дозвона до абонента после переноса номера по MNP.

1. Архитектура статуса SIP 604 (RFC 3261 §21.6.3)

В отличие от статуса 404 Not Found (который означает, что вызываемый пользователь не найден на конкретном опрашиваемом сервере, но может существовать на другом), код 604 Does Not Exist Anywhere является глобальным авторитетным ответом: сервер имеет авторитетную информацию, что указанный номер или URI не существует в глобальном адресном пространстве.

2. Проверка корректности формата набора номера (E.164)

Чаще всего 604 возвращается операторами из-за передачи номера в неверном формате (отсутствие кода страны, лишние префиксы 8/00/+, неправильная длина номера).

Проверьте нормализацию номеров в extensions.conf:

[macro-outbound-normalize]
exten => s,1,NoOp(Нормализация номера ${ARG1})
; Преобразование 89XXXXXXXXX в международный формат +79XXXXXXXXX
 same => n,ExecIf($["${ARG1:0:1}" = "8"]?Set(NORM_NUM=+7${ARG1:1}))
 same => n,ExecIf($["${ARG1:0:2}" = "79"]?Set(NORM_NUM=+${ARG1}))
 same => n,Set(CALLERID(num)=+74951234567)
 same => n,Dial(PJSIP/${NORM_NUM}@telecom_trunk,60)
 same => n,Hangup()

3. Диагностика маршрутизации ENUM и базы перенесенных номеров (MNP)

Если используется локальный ENUM-резолвинг номеров через DNS:

# Тестирование NAPTR записей номера
dig +short NAPTR 3.3.2.2.1.1.1.9.9.7.e164.arpa

Если сервер получает 604 от LRN-шлюза (Location Routing Number), проверьте актуальность базы перенесенных номеров у вышестоящего оператора связи.

4. Обработка причины Q.850 Cause 1 в Asterisk

exten => _+X.,1,Dial(PJSIP/${EXTEN}@carrier_a)
 same => n,GotoIf($["${HANGUPCAUSE}" = "1"]?unallocated)
 same => n(unallocated),Playback(ss-noservice)
 same => n,Hangup()
Практический опыт инженера: Никогда не настраивайте автоматический фейловер (переключение на резервный транк) при получении ответа 604 Does Not Exist Anywhere. Это лишь создаст паразитную нагрузку на транки, так как номер официально не существует в телефонной сети общего пользования.

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

В чем главное отличие SIP 404 от SIP 604?

404 Not Found сообщает, что пользователь не найден на текущем узле, и АТС может попробовать отправить вызов через другой транк. 604 утверждает, что абонента нет нигде в глобальной телефонной сети, прекращая маршрутизацию.

Какой код ISDN Q.850 соответствует SIP 604?

SIP коду 604 соответствует Q.850 Cause Code 1 (Unallocated / unassigned number).

Может ли неправильный Caller ID вызвать ошибку 604?

Нет, 604 относится строго к номеру назначения (Request-URI / To-header). Проблемы с Caller ID обычно вызывают коды 403 Forbidden или 607/608.

Что делать, если номер реально существует, но оператор возвращает 604?

Снимите PCAP-дамп сессии (sngrep/tcpdump) и передайте тикет оператору связи. Это указывает на повреждение таблиц маршрутизации SS7/BICC/SIP-I на транзитных узлах связи.