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

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

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

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

Asterisk: No translation path from codec to codec (Ошибки транскодинга)

Обновлено: 24.08.2026 · Официальная документация ↗
  • В логах фиксируется WARNING[4567]: translate.c: No translation path from (g729) to (alaw) или (opus) to (ulaw).
  • Сброс звонка с кодом SIP 488 Not Acceptable Here или 606 Not Acceptable.
  • Абонент слышит короткие гудки сразу после попытки соединения с транком или голосовым меню (IVR).
  • Команда core show translation показывает пустые ячейки (дефисы) между используемыми кодеками.

1. Проверка доступных матриц транскодинга

asterisk -rx "core show translation"

2. Проверка поддерживаемых кодеков эндпоинта и транка

Откройте /etc/asterisk/pjsip.conf и проверьте списки allow и disallow:

[endpoint-template](!)
type = endpoint
disallow = all
allow = alaw,ulaw,g722,opus

[trunk-provider]
type = endpoint
disallow = all
allow = alaw,ulaw

3. Установка отсутствующих модулей кодеков (Opus / G.729)

Для Ubuntu/Debian установите кодек Opus:

apt-get install -y asterisk-opus
# Либо загрузите официальный бинарник с downloads.digium.com в /usr/lib/asterisk/modules/

Загрузите модуль в консоли:

asterisk -rx "module load codec_opus.so"
asterisk -rx "module load codec_g729.so"

4. Настройка файла codec_opus.conf

Создайте /etc/asterisk/codec_opus.conf для совместимости битрейтов:

[general]
type=opus
samplerate=48000
maxplaybackrate=48000
packet_loss=10
cbr=0
fec=1

5. Перезагрузка модулей кодеков

asterisk -rx "core reload"
💡 Практика специалистов: Всегда держите кодеки alaw и ulaw вверху списка разрешенных (allow=alaw,ulaw). Это гарантирует совместимость с 99.9% операторов связи и исключает сбои при воспроизведении системных подсказок sound prompts.

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

Почему возникает ошибка 'No translation path'?

Ошибка означает, что один абонент использует кодек А, другой кодек Б, а в Asterisk отсутствует модуль транскодирования между ними (например, нет codec_opus.so для перевода Opus в G.711a).

Как разрешить сквозной пропуск кодека (passthrough) без транскодинга?

Если оба плеча звонка поддерживают один и тот же кодек (например, G.729), разрешите его на обоих эндпоинтах (allow=g729). Asterisk будет передавать RTP-пакеты напрямую без распаковки.

Как транскодинг влияет на нагрузку CPU сервера?

Транскодинг (особенно тяжелых кодеков, таких как G.729, Opus, Speex) создает значительную нагрузку на процессор. Для высоконагруженных call-центров рекомендуется использовать несжатые кодеки G.711 alaw/ulaw или G.722.

Почему IVR или Playback() сбрасывают вызов при отсутствии кодека?

Голосовые файлы Asterisk хранятся в определенных форматах (.wav, .alaw, .gsm). Если файл записан в alaw, а клиент подключен только по g729 без модуля трансляции, воспроизведение невозможно и звонок завершается.

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