-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Sadi,
O Asterisk, por padrão, vem com o codec g729 em modo passthru, isso quer dizer, em termos práticos, que o codec está lá só para "cumprir tabela". Esse codec serve para que se, por exemplo, duas extensões rodando g729 usam seu * para estabelecer uma ligação a ligação é estabelecida normalmente porque ambas as extensões estão usando o mesmo codec e o * "conhece" este codec. Este codec no entanto não está fazendo nada, ou seja, ele não está nem codificando nem decodificando nada, apenas os codecs das extensões estão trabalhando, daí o termo "passthru". O codec g729 em modo passthru permite a ligação desde que seja possível estabelecer a conexão RTP diretamente entre os clientes, pois somente desta forma não é necessário que ele codifique/decodifique o stream. Existem vários cenários em que o * é forçado a ficar no meio do tráfego RTP, ou em uma das pontas da ligação, alguns exemplos: 1) Ponte IP/PSTN -> PSTN/IP, o mais óbvio de todos, a ligação termina/origina no * 2) Voicemail, URA, transfências assistidas, fax, MOH, filas, conferências 3) Trascodificação (este é o caso que você apresentou entre seu ATA e o X-Lite): as duas extensões não suportam os mesmos codecs e o asterisk tem que traduzir os codecs usados (teoricamente o caso 1 também enquadra nessa categoria) 4) Tradução de protocolos: as duas extensões usam protocolos diferentes IAX, SIP, H323, Zap, etc (teoricamente o caso 1 também enquadra nessa categoria) 5) Transversão de NAT: a opção canreinvite pode forçar que o * fique no meio do caminho da ligação se os clientes não conseguirem estabelecer uma rota direta entre eles Existem outros casos menos óbvios também, no voip-info tem um longo artigo a respeito, mas os óbvios cobrem 90% das ocorrências. Nos casos em que o * tem que ficar no meio do tráfego você precisa de usar uma versão do g729 capaz de codificar/decodificar o stream, e é aí que entra o g729 licenciado. Cada licença do g729 te permite 1 transcodificação, i.e. ele é capaz de codificar 1 canal e decodificar 1 canal. No final das contas você tem que estimar quantas ligações simultâneas você vai ter usando o g729 e comprar as licenças de acordo com esta estimativa. SOLUÇÕES POSSÍVEIS: 1) Comprar o número de licenças da Digium, ao custo de $10 cada (bem razoável), necessárias em função do seu volume de ligações. O problema com esta solução não é tanto o custo da licença mas sim a demanda no processador do seu servidor. É claro que se você usa seu * para terminar ligações na PSTN via uma interface pri ou tdm você não tem como fugir deste processamento. 2) Ignorar copyright e patentes, abdicar do direito ao suporte e prosseguir com g729 "free"*, para isso você tem que baixar o g729 que tem no site da intel, aplicar o patch para ele ter a interface dos codecs do * e compilar você mesmo o resultado. * na verdade o codec não é free, o que a Intel oferece é uma implementação em código aberto do codec como exemplo de utilização das bibliotecas IPP que ela fornece, no entanto, para utilizar este codec você têm que obter a licença da Sipro (http://www.sipro.com/), e, mesmo que você tenha dinheiro para comprar a licença, você provavelmente não irá conseguir porque eles só vendem para desenvolvedores de produtos e equipamentos. Além da questão legal da coisa, você também está sujeito à questão do processamento, que pode até ser menor que o processamento dos codecs compilados pela digium, se você fizer tudo direitinhoe otimizado para o seu processador, mas eu não contaria com isso. 3) Configurar seus atas para usarem o g711 como fallback, nesse caso o que ocorreria no caso da ligação que você descreveu é que o asterisk tenta estabelecer a ligação da seguinte forma (supondo que a ligação originou no X-Lite): 3.1 O X-lite requere o início da ligação ao asterisk, e informa via SIP suas capacidades ao asterisk: m=audio 19064 RTP/AVP 2 0 <- Prioridade dos codecs (gsm é preferido) a=rtpmap:0 PCMU/8000 <- g711 ulaw com sample de 20ms a=rtpmap:2 G726-32/8000 <- gsm com sample de 20ms (...) 3.2 O asterisk chama o ata 3.3 O Ata responde e informa ao asterisk suas capacidades: m=audio 19064 RTP/AVP 18 0 <- g729 é preferido a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 (...) 3.4 O asterisk determina que a ligação pode ser estabelecida em g711 porque as duas pontas têm este codec. O problema com esta solução é que nem todo ATA te permite definir um codec de fallback, e além do mais, sua banda vai embora (10.45 KBps por canal, 20.90 KBps por ligação) 4) Finalmente você pode estabelecer que suas pontas sempre usarão g729, isto implica que você teria que trocar seu X-Lite pelo Eyebeam, que tem suporte a g729. Se você tem um volume grande de extensões SIP e não usa seu * para terminar na PSTN (ou usa gateways para fazer isso) esta pode ser uma ótima opção já que consome pouca banda, o processamento é distribuído para os clientes, e os custos dos eyebeam e dos gateways acabam sendo compensados pela redução no custo do hardware do servidor. Nessa modalidade, você tem que converter os prompts do * para g729. Sadi Nogueira escreveu: > Pessoal, observando as mensagens sobre esse assunto, percebi que tenho mais > dúvidas sobre codecs/ASTERISK do que imaginava. Bom, se eu não estiver > errado, quando agente instala o ASTERISK, via ports, via apt-get ou baixa do > site, ele já vem com g729 além de outros codecs. Aqui no meu server de > teste, eu deixei de usar o g729 por que o ASTERISK não consegue fazer uma > ligação usando 2 codecs diferentes, dá erro. Eu tive que deixar liberado > somente o g711u. Por exemplo, meu ATA estava configurado com g729 nas 2 > portas FXS, e minha máquina com o X-lite. Se eu tento ligar de um para o > outro, nem chega a completar a ligação, de cara já aparece na CLI: > > "WARNING[5930]: channel.c:2347 set_format: Unable to find a codec > translation path from g729 to ulaw". > > Isso é uma falha do meu server, eu não tenho o g729, é uma limitação do > ASTERISK ou preciso voltar pra escolinha e aprender tudo de novo? Não sei se > fui claro. > > Abraços a todos da lista. > > > > - -- "What most profoundly divides two men is a different sense and degree of cleanliness. What help is all honesty and mutual utility, what help is all the good will for each other: in the end the fact remains-they can't stand each other?s smell!" - - Nietzsche -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGC83C2QVs8jsa1mQRAmUPAJ4un92fjLWUTMlxn2TBMEw5ZCp0fQCdF7Zc tdqe8nTiR8Vb2tmTMtLtDcM= =Vmlb -----END PGP SIGNATURE----- ---------------------------------------- Estação VoIP 2006 5 e 6 Dezembro Curitiba PR http://www.estacaovoip.com.br _______________________________________________ LIsta de discussões AsteriskBrasil.org [email protected] http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil _______________________________________________ Acesse o wiki AsteriskBrasil.org: http://www.asteriskbrasil.org

