O que o Asterisk precisa de codecs?

0

Vamos pegar um sistema que consiste em um servidor Asterisk e dois clientes SIP. Cada cliente tem um conjunto igual de codecs instalados. A codificação e decodificação de tráfego são realizadas no lado do cliente.

Então, por que instalar codecs no lado do Asterisk? Pode ser apenas um comutador de tráfego controlado por discagem, deixando o trabalho de codificação / decodificação para os clientes e, portanto, tornando a carga da CPU muito humilde.

Quando codecs no lado do Asterisk podem ser necessários? Apenas quando o Asterisk deve dizer algo para um cliente: um tom de chamada, um sinal de ocupado, notificações de plataforma de voz. Também devem ser usados na gravação de chamadas. Se não usar a gravação de chamadas, esses momentos são relativamente raros e transitórios.

Em todos os outros casos, o tráfego só poderia passar através de um servidor Asterisk.

Eu li em todos os lugares que a carga da CPU do PC Asterisk depende muito do número de conversas simultâneas e do codec que está sendo usado. Significa que o Asterisk decodifica todos os dados de voz de um cliente apenas para codificá-lo novamente para outro?

    
por Paul 20.06.2015 / 23:55

1 resposta

1

Se ambos os lados da chamada SIP usam SAME codec, você precisa de um módulo de formatação (format_g729.so, por exemplo), mas NÃO precisa de um módulo de codec (codec_g729.so)

No entanto, se você reproduzir algo e a gravação não estiver em .g729, você precisará de um codec.

Se você usa fluxo descompactado (outro codec ou cartão pstn / e1), precisa de codec.

Além disso, em algumas variantes pode haver situações em que um stream downway vai com um codec, upstream mesmo stream para outro codec (se ambos os side support 2 codec mas conjunto de preferência diferente)

O mecanismo de mixagem Asterisk tentará evitar o codec se possível (principalmente na versão acima de 11.x). No entanto, devido à limitação interna, pode haver uma situação em que o codec é suportado por ambas as extremidades, mas ainda seleciona o codec diferente nas duas etapas das chamadas.

Por exemplo, se você tiver de um lado

 allow=g729
 allow=g723

do outro lado

  allow=g723
  allow=g729

E ambos os telefones suportam os dois codecs, o asterisco selecionará o codec superior para ambos e exigirá o codec binary. Na versão mais nova você pode controlar isso alterando as opções em sip.conf

  preferred_codec_only=

Além disso, você pode colocar a preferência de codecs em variáveis

link

    
por 21.06.2015 / 15:55