Технический
Объяснение аудиокодеков SIP
Узнайте об аудиокодеках, используемых в VoIP, о том, как они влияют на качество связи и пропускную способность, а также о том, как настроить их в SipLine для достижения наилучших результатов.
10 мин на чтение
Оглавление
1
Что такое кодек?
Кодек (кодер-декодер) сжимает и восстанавливает аудиоданные для передачи по сети. В VoIP кодек определяет баланс между качеством звука, использованием полосы пропускания и вычислительной мощностью. Когда вы совершаете SIP-вызов, обе стороны согласовывают используемый кодек в процессе, определенном в части SDP (Session Description Protocol) сигнализации SIP.
Слово «кодек» происходит от кодер/декодер. Каждый кодек использует свой алгоритм для оцифровки и сжатия вашего голоса.
2
G.711 — универсальный стандарт
G.711 — самый широко поддерживаемый кодек в телефонии. Он существует в двух вариантах:
PCMA (G.711a, A-law), используемый в основном в Европе, и PCMU (G.711u, mu-law), используемый в Северной Америке и Японии. G.711 использует 64 кбит/с в каждом направлении и обеспечивает качество связи на уровне ТфОП (частота дискретизации 8 кГц, узкополосный звук). С учетом накладных расходов IP вызов G.711 потребляет примерно 87 кбит/с в каждом направлении.Если сомневаетесь, используйте
G.711a (PCMA). Он поддерживается практически каждым VoIP-провайдером и SIP-устройством в мире. Это самый надежный выбор для обеспечения совместимости.3
Opus — современный выбор
Opus — это современный кодек с открытым исходным кодом, разработанный для передачи аудио через интернет. Он является адаптивным, что означает, что он динамически регулирует битрейт в зависимости от состояния сети — от 6 кбит/с до 510 кбит/с. Opus поддерживает широкополосный и сверхширокополосный звук (до 48 кГц), обеспечивая значительно более насыщенное звучание, чем G.711. Он эффективно справляется с потерей пакетов благодаря встроенной функции упреждающей коррекции ошибок.
Opus идеально подходит для звонков между двумя пользователями SipLine или через провайдеров, которые его поддерживают. Он обеспечивает качество голоса, близкое к HD, потребляя лишь часть пропускной способности G.711.
4
Выбор подходящего кодека
Ваш выбор зависит от конкретного случая использования. Для максимальной совместимости с любым провайдером используйте G.711a. Для лучшего качества звука при хорошем соединении используйте Opus. Для сценариев с низкой пропускной способностью, таких как мобильные точки доступа, лучшим вариантом будет Opus с низким битрейтом. Вы можете включить несколько кодеков в SipLine и позволить согласованию SDP автоматически выбрать лучший из них.
В SipLine перетаскивайте кодеки, чтобы изменить их приоритет. Первый кодек в списке предлагается первым во время согласования. Поместите предпочтительный кодек в самый верх.
5
Согласование кодеков в SIP (SDP)
При инициировании SIP-вызова вызывающая сторона отправляет сообщение INVITE, содержащее тело SDP со списком поддерживаемых кодеков (идентифицируемых номерами типов полезной нагрузки). Вызываемая сторона отвечает собственным SDP, выбирая один или несколько подходящих кодеков. Если общий кодек не найден, вызов завершается ошибкой
488 Not Acceptable Here. Это согласование происходит автоматически — вам просто нужно убедиться, что включены совместимые кодеки.Если вызовы мгновенно обрываются без звука, проверьте, включен ли в SipLine хотя бы один кодек, который также поддерживает ваш провайдер. Несоответствие кодеков — частая причина неудачных вызовов.
6
Настройка кодеков в SipLine
Перейдите в раздел Настройки > Аккаунты SIP > [Ваш аккаунт] > Кодеки. Вы увидите список доступных кодеков с флажками для их включения или выключения. Перетаскивайте кодеки, чтобы установить их приоритет. Для большинства пользователей рекомендуется следующая конфигурация: сначала
G.711a (PCMA), затем G.711u (PCMU) и третьим Opus. Это обеспечит максимальную совместимость при использовании преимуществ Opus, когда он доступен.Отключите кодеки, которые вы никогда не будете использовать. Меньшее количество кодеков в предложении SDP означает более быстрое установление вызова и меньше проблем при согласовании.
Часто задаваемые вопросы
G.711 против Opus — что использовать?
G.711 — это надежный выбор: универсальная поддержка, предсказуемое качество, отсутствие проблем с лицензированием. Opus превосходит его по качеству звука и эффективности использования полосы пропускания, но пока не все провайдеры его поддерживают. Для звонков на традиционные телефонные линии (ТфОП) почти всегда используется G.711. Для звонков между софтфонами или современными VoIP-платформами Opus обеспечивает заметно лучшее качество.
Какую полосу пропускания использует каждый кодек?
С учетом накладных расходов IP/UDP/RTP:
G.711 использует примерно 87 кбит/с в каждом направлении. Opus при стандартных настройках VoIP использует примерно 30–40 кбит/с в каждом направлении, хотя значение может варьироваться от 10 кбит/с до 128 кбит/с в зависимости от конфигурации. Кодек Opus особенно эффективен, так как он адаптируется к доступной полосе пропускания в режиме реального времени.Можно ли использовать несколько кодеков одновременно?
Вы можете включить несколько кодеков, но для каждого вызова используется только один. В ходе согласования SDP обе стороны договариваются о едином кодеке. Включение нескольких кодеков увеличивает шансы найти соответствие с другой стороной. SipLine будет пробовать кодеки в установленном вами порядке приоритета.
Что насчет G.729?
G.729 — это кодек с низкой пропускной способностью (8 кбит/с), исторически популярный для экономии трафика. Однако он был защищен патентами (срок действия патентов истек в 2017 году), и многие современные системы перешли на Opus, который предлагает лучшее качество при аналогичном или более низком битрейте. SipLine поддерживает G.729 для обратной совместимости, но для новых развертываний, где важна экономия трафика, рекомендуется Opus.
Почему мои звонки завершаются ошибкой 488?
Ответ
488 Not Acceptable Here означает, что удаленная сторона не смогла найти общий кодек с вашей конфигурацией SipLine. Включите G.711a (PCMA) — это самый универсальный кодек. Если у вас был включен только Opus, а провайдер его не поддерживает, вызовы будут завершаться с этой ошибкой.Влияет ли кодек на задержку?
Да, немного. G.711 имеет очень низкую задержку обработки, так как выполняет минимальное сжатие. Opus вносит небольшую задержку кодирования (обычно 20–40 мс), но компенсирует это лучшей устойчивостью к потере пакетов. На практике вклад кодека в общую задержку невелик по сравнению с сетевой задержкой. И G.711, и Opus вполне укладываются в допустимые пределы для разговора в реальном времени.
Похожие руководства
Готовы начать?
Скачайте SipLine бесплатно и следуйте инструкциям в этом руководстве.