Pesquisar neste blog

quarta-feira, 1 de abril de 2009

Resolvendo problemas de eco no Asterisk

Eco em sistemas de telefonia, como o ASTERISK, é o fenômeno no qual um assinante ouve o eco da sua própria voz após um curto período de tempo junto com a voz da pessoa do outro lado. Neste tutorial vamos dar algumas dicas de como evitar o eco em circuitos analógicos.

Existem, normalmente, duas fontes de eco nos sistemas de telefonia:

* Eco na rede, que é produzido pela interface entre os dois fios no assinante (um aparelho telefônico, por exemplo) e o sistema de transmissão de quatro fios nos entrocamentos da rede pública.
* Eco acústico, que é causado pelo retorno no nível do dispositivo, tal como o retorno do alto-falante no microfone.

Ambos os tipos podem ocorrer simultaneamente e com efeitos compostos. Embora o eco possa ser gerado dos dois lados da linha, o eco que tipicamente degrada a linha é usualmente gerado lado oposto(no lado remoto). Esta é uma informação muito importante, pois permite a identificação da fonte do eco. Em outras palavras, quem ouve o eco, normalmente está do lado oposto de onde ele foi gerado.
Reduzindo o eco em sistemas com ASTERISK.
Este processo se aplica para as placas analógicas da Digium e os bancos de canais analógicos da Xorcom. Ele não terá o mesmo efeito em placas de 1-FXO, nem em placas com sinalização digital.
A principal razão para a geração de eco é o descasamento de impedância. Impedância é a resistência do circuito aos sinais de corrente alternada, e ela muda com a freqüência. O primeiro passo, para reduzir o eco é casar as impedâncias. No ASTERISK isto é feito em dois passos:
1. Configure o país em (/etc/zaptel.conf coloque loadzone=br) para ajustar a impedância das portas FXO com as linhas da rede pública do seu país.
2. Faça uma sintonia fina do casamento de impedância usando o utilitário “fxotune” que fica dentro do diretório zaptel. Este programa envia um tom para a linha telefônica e espera para ouvir o nível de eco. Ele verifica o eco com diferentes parâmetros até encontrar uma combinação que produza menos eco. Após este processo o nível de eco a ser cancelado será menor.
O fxotune é executado em duas etapas: Na primeira você usa:
fxotune –i
Exemplo:
fxotune –i 0
(Use o digito 0 se você precisa discá-lo para pegar linha externa)
Nesta etapa o sistema detecta o descasamento de impedâncias e salva o arquivo /etc/fxotune.conf
Na segunda etapa você usa:
fxotune –s
Nesta etapa o sistema lê os dados do fxotune.conf e aplica a placa. O fxotune –s tem de ser executado sempre na inicialização da máquina logo depois dos drivers serem carregados. Você pode encontrar mais informações usando man fxotune.
Cancelamento de eco
O restante de eco deve ser cancelado usando o cancelador de eco por software do ASTERISK. Se mesmo após estes procedimentos não for possível cancelar o eco, poderá ser necessário usar uma das placas analógicas, lançadas recentemente, tal como a Digium TDM410, que possue placa canceladora de eco e permite um cancelamento com maior amplitude.
O cancelamento de eco é feito por um código de processamento de sinais que compara a voz digital que é enviada com a voz que é recebida. Quando um padrão é identificado, o processamento de sinais subtrai este padrão do sinal de saída, produzindo um sinal livre de eco. O cancelador de eco por software é ativado no arquivo de configuração Zapata.conf

* echocancel=yes
* echotraining=Yes

Em resumo, não é tão simples se ver livre do eco em sistemas analógicos. Se você tiver sorte sua linha vai estar perfeita e sem eco. Se tiver enfrentando problemas com eco, tente o fxotune e depois ative o cancelador de eco. Se mesmo assim você ainda tiver eco, você pode tentar uma das placas de cancelamento de eco. Cabe lembrar que este procedimento só é válido para linhas analógicas.

Fonte:
Autor: Flavio Eduardo.

Um comentário:

Rafael Uchôa disse...

Perfeito, Perfeito, Perfeito... (Antes era com eco...kk), resolveu o problema, ficou perfeito, encontrei muitas explicações para utilizar o fxotune mas muitos complexas, a sua foi direta e reta, resolveu o problema! Um grande abraço e parabéns pela explicação.