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

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

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

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

Голосовое меню АТС (IVR) не реагирует на нажатия цифр: настройка DTMF

Обновлено: 26.08.2026 · Официальная документация ↗

Симптомы сбоя тонального набора:

  • Клиент звонит в компанию, робот говорит: «Нажмите 1 для связи с отделом продаж», клиент нажимает единицу, но ничего не происходит — запись играет дальше.
  • После окончания приветствия звонок сбрасывается или уходит по таймауту на секретаря.
  • В логах консоли Asterisk отсутствуют события DTMF tone received.
  • С одних моделей мобильных телефонов цифры срабатывают, а с других — игнорируются.

Шаг 1. Разница между стандартами передачи DTMF сигналов

DTMF (Dual-Tone Multi-Frequency) — это передача нажатий кнопок телефона в цифровой канал связи. Существует 3 основных режима:

  • RFC2833 (или RFC4733 / telephone-event): Общепринятый мировой индустриальный стандарт. Звук нажатия кнопки изымается из аудиопотока и передается отдельными надежными служебными пакетами. (Рекомендуется в 99% случаев).
  • Inband (Внутриполосный): Звук писка клавиши передается прямо внутри голоса. Работает нестабильно, так как сжимающие кодеки (G.729, GSM) искажают частоту звука, и АТС не может его распознать.
  • SIP INFO: Нажатия клавиш отправляются текстовыми командами протокола сигнализации SIP.

Шаг 2. Настройка DTMF в Asterisk для PJSIP (pjsip.conf)

Откройте настройки конечной точки (endpoint) или транка провайдера:

[my-trunk]
type=endpoint
dtmf_mode=rfc4733    ; Либо rfc2833 в старых версиях

[101-endpoint]
type=endpoint
dtmf_mode=rfc4733

Шаг 3. Настройка DTMF в Asterisk для старого chan_sip (sip.conf)

[general]
dtmfmode=rfc2833

[trunk-provider]
type=peer
dtmfmode=rfc2833

Шаг 4. Включение отладки DTMF в реальном времени

Чтобы точно увидеть, приходят ли цифры от звонящего, выполните команду в консоли:

asterisk -rx "pjsip set logger on"
; Либо включить логирование DTMF:
asterisk -rx "core set debug 1"
asterisk -rx "logger reload"
💡 Практика специалистов: Если оператор связи настаивает на передаче DTMF методом 'inband', убедитесь, что в цепочке голосового кодека разрешен только несжатый кодек alaw (G.711a) с отключенным эхоподавлением.

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

Почему при звонках внутри офиса цифры работают, а от внешних клиентов нет?

Внутренние телефоны используют режим RFC2833, а на внешнем SIP-транке телефонного оператора выставлен несовпадающий режим (например, SIP INFO или Inband). Режим DTMF на транке в Asterisk должен строго совпадать с настройками провайдера.

Может ли кодек G.729 ломать работу голосового меню?

Да, при режиме 'Inband' кодек G.729 сжимает звук с потерями, делая распознавание тонов невозможным. При использовании G.729 передача DTMF обязана работать строго по стандарту RFC2833/RFC4733.

Что такое параметр relaxdtmf в Asterisk?

Опция relaxdtmf=yes в конфигурационном файле заставляет ядро Asterisk менее строго анализировать длительность тонального сигнала, помогая распознавать нажатия со старых или бракованных телефонных аппаратов.

Почему одна цифра при нажатии двоится (вместо '1' нажимается '11')?

Это происходит при дублировании: телефон одновременно отправляет нажатие и как Inband-звук в голосе, и как пакет RFC2833. В настройках телефона отключите параллельную отправку тонов.

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