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

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

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

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

Asterisk: sig_pri.c Received DISCONNECT cause code 1 (Unallocated number)

Обновлено: 24.08.2026 · Официальная документация ↗
  • В журнале Asterisk регистрируется WARNING: sig_pri.c: Received DISCONNECT with cause code 1 (Unallocated number).
  • Вызов в ТфОП немедленно прерывается после набора номера с автоинформатором «Номер не существует».
  • SIP абоненты получают ответ SIP/2.0 404 Not Found.
  • В PRI дампе возвращается статус Q.850 Cause: [1] Unallocated (unassigned) number.

1. Проверка формата отправляемого номера

Включите отладку PRI и проверьте информационный элемент Called Party Number в пакете SETUP:

asterisk -rx "pri set debug on span 1"
asterisk -rx "core set verbose 4"

В логе найдите блок SETUP:

-- PRI Span: 1 > [05 01 01] SETUP (len 32)
-- PRI Span: 1 > Called Party Number (len 13) [ 81 37 39 39 39 31 32 33 34 35 36 37 ]
-- PRI Span: 1 < DISCONNECT with cause code 1 (Unallocated number)

2. Нормализация формата номера и Dialplan Type (TON/NPI)

Отредактируйте параметры плана нумерации в /etc/asterisk/chan_dahdi.conf:

[channels]
pridialplan=unknown
prilocaldialplan=unknown
internationalprefix=00
nationalprefix=0
localprefix=

3. Корректировка префиксов в extensions.conf

Убедитесь, что номер отправляется провайдеру в требуемом формате (например, E.164, 10 цифр или 11 цифр):

[outbound-pstn]
; Обрезка 8 и отправка 10 цифр
exten => _89XXXXXXXXX,1,Verbose(2, Normalizing dialed number to 10 digits)
same => n,Dial(DAHDI/g1/${EXTEN:1},45)
same => n,Goto(s-${DIALSTATUS},1)

exten => s-CONGESTION,1,Playback(ss-noservice)
same => n,Hangup(1)

exten => s-CHANUNAVAIL,1,Playback(ss-noservice)
same => n,Hangup(1)

4. Проверка валидности CallerID (А-номера)

Многие операторы возвращают Cause 1, если исходящий CallerID не принадлежит выделенному пулу номеров клиента:

same => n,Set(CALLERID(num)=74951234567)
same => n,Set(CALLERID(all)="Office" <74951234567>)
💡 Практика специалистов: Если ошибка происходит на всех направлениях, проверьте соответствие значений pridialplan и prilocaldialplan в chan_dahdi.conf требованиям вашего оператора потока E1 (чаще всего требуется именно 'unknown').

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

Что означает Q.931 Cause 1?

Этот код указывает, что запрошенный номер назначения (B-номер) не существует в коммутационной таблице оператора или не выделен ни одному абоненту.

Почему оператор отбивает вызов с Cause 1 при правильном номере?

Причиной может быть неверный параметр Type of Number (TON) в pridialplan (например, national вместо unknown) или блокировка оператором из-за неподтвержденного CallerID (А-номера).

В какой SIP код Asterisk переводит Cause 1?

По умолчанию транслируется в SIP 404 (Not Found).

Как передать национальный номер без префикса страны через DAHDI?

Используйте срез строки ${EXTEN:1} в диалплане для отсечения префикса выхода на межгород или установите pridialplan=national.

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