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

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

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

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

Asterisk: No RTP engine was found for format mapping (Ошибки rtp_engine.c)

Обновлено: 24.08.2026 · Официальная документация ↗
  • В CLI Asterisk фиксируется WARNING[2345]: rtp_engine.c: No RTP engine was found for format mapping.
  • Звонок сбрасывается сразу после поднятия трубки (Answer).
  • Односторонняя слышимость или полная тишина в голосовом тракте (нет медиа-потока).
  • Команда module show like res_rtp_asterisk показывает, что RTP-движок не загружен.

1. Проверка состояния модуля res_rtp_asterisk

asterisk -rx "module show like res_rtp_asterisk.so"

Если модуль имеет статус Not Loaded, загрузите его вручную:

asterisk -rx "module load res_rtp_asterisk.so"

2. Проверка файла /etc/asterisk/modules.conf

Убедитесь, что модуль не заблокирован директивой noload:

[modules]
autoload=yes
load => res_rtp_asterisk.so

3. Конфигурация диапазона портов в rtp.conf

Проверьте корректность настроек в /etc/asterisk/rtp.conf:

[general]
rtpstart=10000
rtpend=20000
rtpchecksums=yes
stunaddr=
sdes_srtp=yes

4. Проверка прав на сокеты и сетевых портов

Убедитесь, что порты не заняты сторонними демонами (например, Kamailio/RTPproxy):

ss -ulnp | grep -E "1000[0-9]|20000"

5. Перезагрузка подсистемы RTP

asterisk -rx "rtp reload"
💡 Практика специалистов: Если Asterisk собран из исходников вручную, убедитесь в menuselect, что в разделе 'Resource Modules' модуль res_rtp_asterisk отмечен звездочкой [*]. Без него Asterisk превращается в SIP-сигнальный сервер без возможности коммутации голоса.

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

За что отвечает модуль res_rtp_asterisk.so?

Этот модуль является базовым драйвером RTP стека в Asterisk. Без него ядро не может инициализировать UDP-сокеты для передачи голосовых пакетов, генерации DTMF и шифрования SRTP.

Почему модуль res_rtp_asterisk.so не загружается автоматически?

Частая причина — отсутствие скомпилированных зависимостей (OpenSSL для SRTP, PJPROJECT) или синтаксическая ошибка в конфигурационном файле /etc/asterisk/rtp.conf.

Что означает format mapping в ошибке?

Это сопоставление динамических полезных нагрузок RTP (RTP payload types 96-127) с конкретными аудиокодеками (например, Opus, VP8, H.264, telephone-event для RFC 4733/2833).

Нужно ли открывать диапазон rtpstart-rtpend в фаерволе?

Да, весь UDP диапазон (обычно 10000-20000 UDP) должен быть открыт в iptables/nftables, иначе входящие голосовые пакеты будут отброшены сетевым экраном.

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