Как сжать голосовой трафик без потерь: кодеки, pps и запас по полосе
Кодек в SIP — это не просто «качество звука», а прямой рычаг по нагрузке на сеть и ядро телефонии. G.711 даёт предсказуемую обработку, но требует больше полосы; G.729, Opus и другие варианты уменьшают битрейт, но добавляют вычисления, могут усложнять транскодирование и повышать задержку. Разбираем дамп трафика в Wireshark, и вот что мы там видим: узкое место часто не в Mbps, а в packets per second.
При расчёте ёмкости учитывайте не только полезную нагрузку RTP, но и накладные расходы: IP/UDP/RTP, Ethernet, VLAN, а также интерпакетные интервалы. Один и тот же битрейт при разной длине фрейма даёт разную нагрузку на маршрутизаторы, NAT и SBC. Если в тракте есть транскодирование, закладывайте CPU на пиковые сценарии: массовый перевод вызовов между кодеками быстро превращается в бутылочное горлышко.
Практика такая:
• для магистрали между доверенными узлами оставляйте кодек без лишней конвертации;
• на внешних плечах фиксируйте допустимый набор кодеков на уровне профиля и политики маршрутизации;
• по возможности включайте VAD/DTX там, где допустима пауза без RTP-стрима;
• проверяйте MTU и fragmentation, иначе получите джиттер и потери при «экономии» на полосе.
Оптимизируем обработку RTP-трафика и минимизируем джиттер в сети. Лучший результат даёт не «самый лёгкий» кодек, а согласованная схема: ограниченный набор кодеков, отсутствие лишнего транскодинга и запас по bandwidth с учётом pps и пиковых одновременных звонков.
Работа с API телефонии
@phone_api_gateway_arb
Как сжать голосовой трафик без потерь: кодеки, pps и запас по полосе
Этот пост опубликован в Telegram-канале Работа с API телефонии. Подписаться можно по ссылке: @phone_api_gateway_arb.