SIP Error 604 Does Not Exist Anywhere: глобально несуществующий номер
- Исходящий звонок завершается ошибкой
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() Частые вопросы (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 на транзитных узлах связи.