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

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

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

ERR-VOIP-DTMF-MISMATCH IP-Телефония и СКУД

Голосовое меню не реагирует на нажатие цифр: настройка DTMF в Asterisk

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

Проблема: клиент нажимает «1», а автоответчик повторяет меню по кругу

Клиент звонит в компанию с мобильного телефона. Приветственное голосовое меню (IVR) бодро произносит: «Нажмите 1 для связи с отделом продаж, нажмите 2 для техподдержки...». Клиент нажимает кнопку «1» на экране своего смартфона, слышит в динамике писк тонального набора, но АТС никак не реагирует, ждет таймаут и сбрасывает звонок.

Сравнение методов передачи тонального набора DTMF

Режим DTMFКак передается сигналПлюсы и минусыГде используется
RFC 2833 / RFC 4733 (telephone-event)Специальными цифровыми RTP-пакетамиСамый надежный метод (не портится сжатием кодеков)Стандарт по умолчанию в 98% сетей
In-Band (внутриполосный)Звуковым писком прямо в голосовой дорожкеЛомается и искажается при сжатии кодеками (G.729)Аналоговые линии PSTN, кодек G.711
SIP INFOТекстовыми служебными SIP сообщениямиНе зависит от аудиокодеков, но поддерживается не всемиСпецифические провайдеры

Почему IVR не слышит нажатия кнопок простыми словами?

Сигналы нажатия кнопок на телефоне называются DTMF (Dual-Tone Multi-Frequency). Если ваш оператор связи отправляет сигналы нажатия цифр в цифровом стандарте RFC 2833, а на вашем сервере Asterisk или в софтфоне включен режим inband (слушать звук в микрофоне), сервер просто не понимает пришедшие пакеты и считает, что клиент ничего не нажал.

Пошаговая настройка DTMF в Asterisk

  1. Шаг 1. Настройка режима DTMF в PJSIP (pjsip.conf):

    Откройте файл конфигурации конечных точек и пропишите стандартный режим rfc4733 (современный аналог rfc2833) для всех транков и абонентов:

    [my-trunk-endpoint]
    type = endpoint
    dtmf_mode = rfc4733           ; Рекомендуемый стандарт для всех операторов РФ!
    
    ; Для внутренних номеров сотрудников:
    [101]
    type = endpoint
    dtmf_mode = rfc4733
  2. Шаг 2. Настройка в старом драйвере chan_sip (sip.conf):
    [general]
    dtmfmode = rfc2833            ; Глобальная настройка DTMF
    
    [provider]
    type = peer
    dtmfmode = rfc2833
  3. Шаг 3. Проверка настроек в софтфонах и шлюзах:

    В настройках IP-телефонов (Yealink, Grandstream, MicroSIP) найдите раздел Account → Advanced → DTMF Type и выберите: RFC2833 (или RFC2833 + SIP INFO).

  4. Шаг 4. Диагностика в консоли Asterisk:

    Включите логирование сигналов DTMF, чтобы видеть нажатия в реальном времени:

    asterisk -rvvv
    # Включаем вывод событий DTMF в консоль:
    set debug 1
    core set debug 1
    # Либо специализированная команда:
    logger add channel console dtmf

    При нажатии кнопки «1» в консоли должна появиться строчка: DTMF end '1' duration 100 ms on PJSIP/...

Ловушка кодека G.729: Если ваш транк работает по сжатому кодеку G.729, режим DTMF In-Band категорически работать не будет, так как алгоритм сжатия вырезает тональные частоты из голоса. При использовании G.729 используйте только rfc2833 / rfc4733.

💡 Практика специалистов: 99% всех сбоев с распознаванием кнопок в IVR решаются принудительным выставлением dtmf_mode=rfc4733 (или rfc2833) на стороне транка провайдера и на всех внутренних номерах АТС.

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

Что делать, если одна цифра срабатывает дважды (дабл-клик, например нажал «1», а сработало «11»)?

Это происходит, когда в телефоне включена одновременная отправка DTMF и через RFC2833, и через In-Band (дублирование сигнала). Оставьте включенным только один метод <b>RFC2833</b>.

Как настроить длительность приема тонального сигнала в FreePBX?

В меню <i>Settings &rarr; Asterisk SIP Settings</i> проверьте параметр <code>DTMF Signaling = rfc2833</code> и увеличьте время ожидания в IVR (Digit Timeout) до <b>3 секунд</b>.

Почему при звонках с мобильных телефонов конкретного оператора (например, Tele2) кнопки не работают?

Некоторые мобильные операторы передают DTMF с нестандартным Payload Type (например, 101 вместо 96). Убедитесь, что в Asterisk параметр <code>telephone-event</code> настроен в Auto.

Как проверить работу DTMF без входящего звонка?

Создайте тестовый номер в extensions.conf с вызовом приложения <code>Read()</code> или <code>SayDigits()</code>: АТС попросит набрать цифры и повторит их голосом обратно.

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