<div><br></div><div>Bom dia Asterisk Brasil, uma nova versao de VoicerLib e Channel Driver para Asterisk esta disponivel.</div><div><br></div><div>Abaixo o CHANGELOG completo:</div><div><br></div><div>../dgvchannel-1.0.8/CHANGELOG</div>
<div><br></div><div>- Implementacoes para suportar versoes de Asterisk 1.8.x;</div><div><br></div><div>- Alteracao no metodo de deteccao de chamadas a cobrar em links com</div><div> *signalling* *isdn*, alem de se utilizar a aplicacao DgCollectCallBlock()</div>
<div> para bloquear este tipo de chamada, eh possivel verificar se a chamada</div><div> possui a identificacao de a cobrar, ou mesmo fazer uma chamada com a</div><div> identificacao de a cobrar. Para que o Channel Driver detecte este tipo de</div>
<div> chamada eh necessario que se utilize uma versao de Libpri 1.4.11.4 ou</div><div> superior. Para escrever ou ler o campo de indicacao de chamada a cobrar</div><div> utilize a nova variavel (DGV_REVERSECHARGE) configuravel atraves do</div>
<div> dialplan (extensions.conf).</div><div> Segue exemplo(extensions.conf):</div><div> exten => 1001,1,NoOp(Indicacao de Reverse Charging Recebido: ${DGV_REVERSECHARGE})</div><div> exten => 1001,n,Answer()</div>
<div> exten => 1001,n,...</div><div> exten => 1001,n,HangUp</div><div> ou:</div><div> exten => 1002,1,Set(_DGV_REVERSECHARGE=1)</div><div> exten => 1002,n,Dial(DGV/g1/21916363)</div><div> exten => 1002,n,HangUp</div>
<div> Obs.: Para que o Channel Driver detecte e bloqueie a chamada a cobrar,</div><div> obrigatoriamente a operadora devera sinalizar que a chamada eh a cobrar</div><div> (Reverse Charging Indication).</div>
<div><br></div><div>- Criada aplicacao *DgGetStatistics* para funcionamento junto ao Asterisk,</div><div> com esta aplicacao eh possivel recuperar a quantidade de segundos utilizados</div><div> em chamadas de um canal especifico ou mesmo de um grupo de canais.</div>
<div> A aplicacao recebe um unico parametro referente ao canal ou grupo de canais.</div><div> Apos a execucao da aplicacao a quantidade de segundos utilizado sera salva na</div><div> variavel denominada (DGV_STATISTICS).</div>
<div> Segue exemplo(extensions.conf):</div><div> exten => 1001,1,DgGetStatistics(1)</div><div> exten => 1001,n,NoOp(DGV_STATISTICS(1): ${DGV_STATISTICS})</div><div> exten => 1001,n,Hangup</div><div> ou:</div>
<div> exten => 1002,1,DgGetStatistics(g1)</div><div> exten => 1002,n,NoOp(DGV_STATISTICS(g1): ${DGV_STATISTICS})</div><div> exten => 1002,n,Hangup</div><div><br></div><div>- Criado comando para mostrar as estatisticas de todos os canais ou mesmo de um</div>
<div> grupo de canais.</div><div> Segue como utiliza-lo:</div><div> Mostra estatisticas de uma lista de canais.</div><div> Caso especifique o grupo, serao mostradas as estatisticas deste grupo.</div><div> |_ Uso: dgv show statistics [group/all/json]</div>
<div><br></div><div>- Criado comando para resetar as estatisticas de um canal ou todos os canais.</div><div> Segue como utiliza-lo:</div><div> Reseta estatisticas de um especifico canal.</div><div> |_ Uso: dgv statistics reset <channel/all></div>
<div><br></div><div>- Criado comando para bloquear um canal, este bloqueio impedira que o canal</div><div> efetue chamadas saintes.</div><div> Segue como utiliza-lo:</div><div> Bloqueia um canal especifico.</div><div>
|_ Uso: dgv lock channel <channel></div><div><br></div><div>- Criado comando para desbloquear um canal, apos a execucao deste comando o</div><div> canal voltara a fazer chamadas saintes.</div><div> Segue como utiliza-lo:</div>
<div> Desbloqueia um canal especifico.</div><div> |_ Uso: dgv unlock channel <channel/all></div><div><br></div><div>- Criado comando para bloquear um grupo de canais, este bloqueio impedira que</div><div>
todos os canais do grupo efetuem chamadas saintes.</div><div> Segue como utiliza-lo:</div><div> Bloqueia um grupo especifico.</div><div> |_ Uso: dgv lock group <group></div><div><br></div><div>- Criado comando para desbloquear um grupo de canais, apos a execucao deste</div>
<div> comando todos os canais do grupo voltarao a fazer chamadas saintes.</div><div> Segue como utiliza-lo:</div><div> Desbloqueia um grupo especifico.</div><div> |_ Uso: dgv unlock group <group/all></div>
<div><br></div><div>- Criado comando que ativa ou desativa os logs de DEBUG para links com</div><div> *signalling* *isdn*. Os logs serao salvos em /var/log/voicerlib/digi_pri.</div><div> Segue como utiliza-lo:</div><div>
Habilita/Desabilita debug de sinalizacao ISDN (para fins de teste).</div><div> |_ Uso: dgv debug isdn <span/all> <on/off></div><div><br></div><div>- Criado novo parametro no digivoice.conf, segue descricao:</div>
<div> *wait_group_b* - Utilizado para repassar a sinalizacao de grupo B recebida</div><div> da rede publica para o PABX. Obrigatoriamente este</div><div> "pass-through" deve ser entre canais DigiVoice, onde a rede</div>
<div> publica deve estar com sinalizacao *r2mfc_ndis_fixed* e o</div><div> PABX deve estar com sinalizacao *r2mfc_ndis_variable*. Este</div><div> parametro deve ser configurado apenas nos canais conectados</div>
<div> ao PABX e somente tera efeito em ligacoes saintes para a</div><div> rede publica.</div><div> Pode assumir os seguintes valores:</div><div> |_ 0 -> Nao aguarda a sinalizacao de grupo B recebida da</div>
<div> rede publica(Padrao);</div><div> |_ 1 -> Aguarda a sinalizacao de grupo B recebida da</div><div> rede publica;</div><div> Segue exemplo(extensions.conf) - chamada sainte em "pass-through" DigiVoice:</div>
<div> exten => 021916363,1,Set(_DGV_BRIDGE_CHANNEL=${CHANNEL})</div><div> exten => 021916363,n,Dial(DGV/g1/21916363)</div><div> exten => 021916363,n,Hangup</div><div> Onde:</div><div> No exemplo acima temos uma chamada recebida do PABX, onde a mesma devera</div>
<div> ser encaminhada para a rede publica, ou seja, um "pass-through" entre</div><div> canais DigiVoice, desta forma o canal de origem(PABX) aguardara o</div><div> recebimento do evento de grupo B recebido da rede publica(PSTN) para entao</div>
<div> continuar a troca de sinalizacao.</div><div><br></div><div> Segue exemplo(extensions.conf) - chamada sainte para um canal SIP:</div><div> exten => 1001,1,DgSendR2GroupB(1)</div><div> exten => 1001,n,Dial(SIP/1001)</div>
<div> exten => 1001,n,Hangup</div><div> Onde:</div><div> No exemplo acima temos uma chamada recebida do PABX e esta devera ser</div><div> encaminhada para um canal SIP, no entanto somente canais DigiVoice com</div>
<div> sinalizacao R2D/MFC recebem a sinalizacao de grupo B. Neste caso deveremos</div><div> chamar a aplicacao *DgSendR2GroupB* passando o parametro 1</div><div> (LINHA DE ASSINANTE LIVRE COM TARIFACAO) para que o canal ligado ao PABX</div>
<div> continue a troca de sinalizacao.</div><div><br></div><div>- Adicionado "include" do arquivo sched.h por padrao na instalacao do Channel</div><div> Driver evitando alguns erros durante a compilacao com determinadas versoes de</div>
<div> Kernel.</div><div><br></div><div>- Melhorias na logica de utilizacao dos parametros de *gen_dtmf* e</div><div> *dtmf_to_asterisk*. Esta alteracao tem efeito quando ambos os parametros</div><div> estao com valor 1 e no ambiente sao apenas utilizados canais DigiVoice,</div>
<div> desta forma a melhoria evita que sejam gerados DTMFs duplicados.</div><div> </div><div>- Padrao de ganho para RX e TX alterados;</div><div><br></div><div>- Melhoria para as informacoes de CallerID em todas as versoes de Asterisk 1.8.</div>
<div><br></div><div>- Alterado timeout padrao para comandos enviados para a operadora GSM, somente</div><div> para *signalling* *gsm*;</div><div><br></div><div>- Corrigido tom de chamando (Ring Back) para canais do tipo FXS ao discarem</div>
<div> para canais do tipo GSM, somente para Asterisk 1.8.x;</div><div><br></div><div>- Corrigido problema ao finalizar uma conexao de fax pass-through em canais do</div><div> tipo FXS;</div><div><br></div><div>- Corrigido problema na variavel *Exten* utilizada no *AMI* durante o evento de</div>
<div> *Newchannel*, somente para Asterisk 1.8.x;</div><div><br></div><div>- Corrigido problema ao tratar o comando DCHAN_DOWN para links *ISDN*, este</div><div> problema causava uma desconexao incorreta de ligacoes de outros canais;</div>
<div><br></div><div>- Corrigido problema de concorrencia durante o desligamento do canal com</div><div> *signalling* *r2mfc_ndis_fixed* ou *r2mfc_ndis_variable*.</div><div> Este problema gerava o log de "-- Ringing on port X - callstate=9".</div>
<div> Para esta alteracao foi de grande ajuda o senhor Jose Antonio Sanchez da</div><div> empresa Erimat Oeste Telecomunicações Ltda;</div><div><br></div><div> Importante: Para esta versao de channel driver eh obrigatoria a utilizacao da</div>
<div> VoicerLib 4.2.4.0;</div><div><br></div><div> Importante: Para esta implementacao eh necessario utilizar um recurso</div><div> existente somente em versoes da Libpri superiores a 1.4.11.4;</div>
<div><br></div><div><br></div><div><br></div><div>Obrigado.</div>-- <br>Luciano Alves Barroso<br>Equipe de Desenvolvimento DigiVoice Channel Driver & DigiVoice Meucci<br><a href="http://www.digivoice.com.br" target="_blank">www.digivoice.com.br</a><br>
<a href="http://www.meucci.org" target="_blank">www.meucci.org</a><br>