Давайте возьмем систему, которая состоит из одного сервера Asterisk и двух SIP-клиентов. На каждом клиенте установлен одинаковый набор кодеков. Кодирование и декодирование трафика выполняется на стороне клиента.

Тогда зачем устанавливать кодеки на Asterisk? Это может быть только управляемый коммутируемым соединением трафик, оставляющий клиентам задачу кодирования / декодирования и, следовательно, делающую нагрузку на процессор очень скромной.

Когда кодеки на Asterisk могут понадобиться? Только когда Asterisk должен сообщить клиенту что-нибудь: сигнал вызова, сигнал занятости, голосовые уведомления платформы. Также их следует использовать в записи разговоров. Если не использовать запись разговора, то эти моменты относительно редки и преходящи.

Во всех остальных случаях трафик может проходить только через сервер Asterisk.

Я везде читал, что загрузка процессора Asterisk PC сильно зависит от количества одновременных разговоров и от используемого кодека. Означает ли это, что Asterisk декодирует все голосовые данные с одного клиента только для повторного кодирования для другого?

1 ответ1

1

Если обе стороны вызова SIP используют один и тот же кодек, вам нужен модуль форматирования (например, format_g729.so), но НЕ нужен модуль кодека (codec_g729.so)

Однако, если вы что-то воспроизводите, а запись не в формате .g729, вам нужен кодек.

Если вы используете несжатый поток (другой кодек или карта pstn/e1), вам нужен кодек.

Также в некоторых вариантах может быть ситуация, когда один поток вниз идет с одним кодеком, вверх по тому же потоку идет другой кодек (если обе стороны поддерживают 2 кодека, но разные предпочтения установлены)

Движок Asterisk будет стараться избегать кодеков, если это возможно (особенно в версии выше 11.x). Однако из-за внутренних ограничений может возникнуть ситуация, когда кодек поддерживается на обоих концах, но все же выбирается другой кодек на обоих участках вызовов.

Например, если у вас есть на одной стороне

 allow=g729
 allow=g723

на другой стороне

  allow=g723
  allow=g729

И оба телефона поддерживают оба кодека, звездочка выберет верхний кодек для обоих и БУДЕТ требовать двоичного кодека. В новой версии вы можете контролировать это, изменяя параметры в sip.conf

  preferred_codec_only=

Также вы можете поставить предпочтение кодеков в переменных

https://wiki.asterisk.org/wiki/display/AST/chan_sip+Channel+Variables

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .