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

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

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

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

Анализ причин отсутствия звука (Dead Air): несовпадение портов RTP

Обновлено: 24.08.2026 · Официальная документация ↗
  • Звонок успешно соединяется, таймер разговора идет, но в трубке полная тишина (Dead Air) у обоих абонентов.
  • Односторонняя слышимость: один абонент слышит речь, второй — нет.
  • Аудиопоток обрывается через 5-10 секунд после начала диалога.
  • В логах АТС фиксируются ошибки RTP Read Timeout или No RTP incoming packets detected.

1. Анализ дескриптора SDP в пакетах 200 OK / INVITE

Проверьте адреса и порты в секции SDP:

v=0
o=root 1234 1234 IN IP4 203.0.113.1
s=Asterisk
c=IN IP4 203.0.113.1
t=0 0
m=audio 14520 RTP/AVP 8 101

Убедитесь, что строка c= содержит маршрутизируемый публичный IP, а строка m=audio указывает открытый UDP-порт.

2. Проверка диапазона RTP-портов на АТС

В конфигурации rtp.conf (Asterisk) проверьте диапазон:

[general]
rtpstart=10000
rtpend=20000

3. Открытие и проброс портов на межсетевом экране (iptables / nftables)

# Разрешить входящий RTP трафик
iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT

# Если АТС за NAT, настройте Port Forwarding (DNAT)
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 10000:20000 -j DNAT --to-destination 192.168.1.10

4. Включение Symmetric RTP (comedia)

Если удаленный клиент шлет медиа с порта, отличного от указанного в SDP, включите принудительный симметричный RTP (Asterisk rtp_symmetric=yes или FreeSWITCH auto-rtp-bugs).

💡 Практика специалистов: Если в SDP указан правильный публичный IP, но звука нет — проверьте на пограничном шлюзе состояние UDP Conntrack Helper и убедитесь, что провайдер не режет UDP-фрагментацию при больших MTU.

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

В чем разница между Dead Air и One-Way Audio?

Dead Air означает полное отсутствие голосовых RTP-пакетов в обоих направлениях (симметричная блокировка). One-Way Audio — когда один медиапоток успешно доходит, а обратный отфильтрован фаерволом или направлен на некорректный IP.

Почему тишина возникает при переадресации вызова на внешнего провайдера?

При переадресации провайдер может отправлять Re-INVITE с локальным адресом третьего узла, который недоступен напрямую, если в настройках транка не включен ре-анкоринг медиапотока (Direct Media = no).

Какой объем UDP-портов нужен на 100 одновременных вызовов?

На один вызов требуется 2 UDP-порта (один для RTP-голоса, второй для RTCP-статистики). Для 100 одновременных разговоров требуется минимум 200 портов (рекомендуется выделить пул из 2000 портов с запасом).

Что означает директива c=IN IP4 0.0.0.0 в SDP?

Указание адреса 0.0.0.0 в строке c= является устаревшим способом перевода вызова в режим удержания (Call Hold). В современных RFC используется директива a=sendonly или a=inactive.

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