SIP 484 Address Incomplete: неполный номер, перекрытие диалплана и Digit Maps
Сбой вызова происходит до отправки первого КПВ или гудка:
- Абонент слышит короткие гудки (busy tone) сразу после набора части телефонного номера.
- SIP-сервер отвечает кодом
SIP/2.0 484 Address Incompleteна входящийINVITE. - В логах АТС фиксируется отказ маршрутизации с причиной несовпадения шаблона длины номера (Digit Length Mismatch).
- Проблема часто проявляется на аппаратных IP-телефонах (Grandstream, Yealink, Fanvil) при отключенном режиме отправки по нажатию кнопки «Send» / «#».
1. Настройка правил набора (Dial Plan / Digit Map) на SIP-телефонах
Если IP-телефон отправляет ранний INVITE до того, как пользователь завершил ввод всех цифр, скорректируйте Digit Map в веб-интерфейсе аппарата (например, Yealink или Grandstream):
; Разрешить набор внутренних 3-4 значных номеров, городских и мобильных:
{[1-8]xx | [1-8]xxx | 8xxxxxxxxxx | +7xxxxxxxxxx | 0[1-4] | *xx}
; Увеличьте межинтервальный таймер ожидания (Inter-digit Timeout):
Inter-digit Timer = 4 sec2. Корректировка шаблонов маршрутизации в Asterisk (extensions.conf)
Если софтсвич возвращает 484, проверьте наличие перекрывающихся масок и незавершенных правил:
[outbound-routes]
; Неправильно: слишком строгий шаблон вызывает отбой на коротких префиксах
; exten => _8900XXXXX,1,Dial(PJSIP/${EXTEN}@provider)
; Правильно: использование точных длин и обработка префиксов через знак точки:
exten => _8XXXXXXXXXX,1,NoOp(Valid 11-digit mobile number)
same => n,Dial(PJSIP/${EXTEN}@provider,60)
; Для международной связи с переменной длиной:
exten => _00X.,1,Dial(PJSIP/${EXTEN}@provider,60)3. Проверка обработки раннего набора в FreePBX
В модуле Connectivity -> Outbound Routes проверьте паттерны набора (Dial Patterns):
- Убедитесь, что в поле
match patternуказано полное количество знаков (например,XXXXXXXXXXдля РФ илиNXXNXXXXXXдля NANP). - Если используется префикс выхода в город (например,
9), убедитесь, что он удаляется (полеprefix) перед отправкой провайдеру.
4. Диагностика в консоли Asterisk
asterisk -rvvv
core set debug 3
pjsip set logger onПроверьте, какой Request-URI передается в запросе INVITE sip:8916@.... Если количество цифр меньше ожидаемого, проблема локализована на стороне клиентского оборудования.
Частые вопросы (FAQ)
Почему SIP-сервер отправляет 484 вместо 404 Not Found?
Код 484 указывает клиенту, что Request-URI потенциально может быть валидным, но на данный момент он не завершен (недостаточно цифр). Код 404 означает, что адрес завершен, но такого маршрута или пользователя не существует вовсе.
Что такое overlap dialing (набор с перекрытием) в SIP?
Это режим, при котором цифры номера отправляются серверу по мере их ввода абонентом отдельными сообщениями (INVITE или INFO), а не единым блоком (En-bloc). Если сервер не поддерживает Overlap, он возвращает 484.
Как заставить телефон отправлять номер целиком (En-bloc)?
Включите в настройках телефона отправку по нажатию кнопки '#' (Send by #) или настройте отправку только после нажатия экранной клавиши 'Call / Вызов'.
Может ли транк оператора связи возвращать 484?
Да, если согласно межоператорскому соглашению вы отправляете E.164 номер без кода страны или с урезанным количеством цифр (например, 7 цифр вместо 11 для национального формата).