<span style="font-family: courier new,monospace;">Boa tarde Lista,</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Informo uma nova versão de VoicerLib e Channel Driver para Asterisk.</span><br style="font-family: courier new,monospace;">
<br><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">../dgvchannel-1.0.4/CHANGELOG</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">v1.0.4</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">======</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Implementacoes no Channel Driver para funcionamento junto as placas VB0404GSM,</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> para isso foi criado um novo *signalling* com nome *gsm*;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> Importante: Para esta implementacao foram necessarias alteracoes na VoicerLib,</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> portanto para compilar o Channel Driver 1.0.4 eh obrigatorio</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> efetuar a compilacao da VoicerLib 4.2.0.0;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Criado novo parametro no digivoice.conf, segue descricao:</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> *hide_number* - Esta opcao permite que o canal de sinalizacao *gsm*</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> envie o seu numero telefonico(Bina) ou mantenha-o como</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> privado.</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> Pode assumir os seguintes valores:</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> |_ 0 -> Envia o numero telefonico(Bina)(Padrao);</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> |_ 1 -> Mantem o numero como privado;</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Criado novo parametro no digivoice.conf, segue descricao:</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> *pin_number* - Define o numero PIN em um canal de sinalizacao *gsm*. Se esta</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> opcao for deixada em branco, o sistema nao ira configurar um</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> numero PIN para este canal.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Criada aplicacao *DgSendSMS* para funcionamento junto ao Asterisk, onde eh</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> possivel enviar uma mensagem SMS utilizando placas VB0404GSM. A aplicacao</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> recebe tres parametros, no primeiro o canal ou grupo de canais que sera</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> utilizado para enviar a mensagem SMS, no segundo o numero do celular de</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> destino e no terceiro parametro o texto da mensagem SMS.</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> Segue exemplo(extensions.conf):</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> exten => 1234,1,DgSendSMS(g1,98765432,'Sending a SMS example using the DgSendSMS application, thank you for using DigiVoice cards.')</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> exten => 1234,n,Hangup</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">- Criada *extension* para recebimendo de mensagens SMS em placas DigiVoice</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> VB0404GSM. Ao receber uma mensagem SMS o channel driver DigiVoice chamara</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> o *extension* *dgv_sms* do *context* relativo, com prioridade 1. Desta forma</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> pode-se recuperar o conteudo da mensagem SMS acessando as seguintes variaveis:</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> DGV_SMS_FROM, DGV_SMS_DATE, DGV_SMS_TIME e DGV_SMS_TEXT.</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> Segue exemplo(extensions.conf):</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> exten => dgv_sms,1,NoOp(SMS RECEIVED FROM: ${DGV_SMS_FROM} at ${DGV_SMS_DATE}(${DGV_SMS_TIME}): ${DGV_SMS_TEXT})</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> exten => dgv_sms,n,System(echo "${DGV_SMS_DATE}(${DGV_SMS_TIME}): ${DGV_SMS_TEXT}" >> /tmp/"${DGV_SMS_FROM}")</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> exten => dgv_sms,n,Hangup</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> Obs.: Na prioridade 2, a aplicacao *System* esta criando um arquivo no</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> diretorio /tmp/, onde o nome do arquivo eh o numero do celular de origem</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> da mensagem SMS, e o conteudo do arquivo eh:</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> "Data(Hora): Texto da Mensagem".</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">- Criada aplicacao que possibilita o envio de mensangens SMS em placas VB0404GSM</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> em modo console, ou seja, sem a necessidade de um *dialplan* para faze-lo.</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> Segue exemplo(console):</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> rasterisk -x 'dgv send sms g1 98765432 "Sending a SMS example using the DgSendSMS application, thank you for using DigiVoice cards."'</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Implementacao de rotina para verificar o *device_state* dos canais, desta</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> forma atraves do *dialplan* pode-se obter o estado do canal ao utilizar a</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> aplicacao DEVSTATE(Asterisk 1.4.x) ou DEVICE_STATE(Asterisk 1.6.x).</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> Segue exemplo(extensions.conf - Asterisk 1.6.x):</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> exten => 1234,1,NoOp(Has state: ${DEVICE_STATE(DGV/61)})</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> exten => 1234,n,Hangup</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Implementacao de bloqueio automatico de canais ao detectar um alarme de</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> ALARM_LOSS(Indicacao de Perda de Sinal), desta forma o Channel Driver nao</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> tentara alocar os canais deste E1 para efetuar ligacoes;</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Implementacao de alarme de ausencia de tom de discagem para *signalling* *fxo*</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> e *channelbank_fxo*. O funcionamento deste alarme eh bem simples, caso o canal</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> *fxo* ou *channelbank_fxo* nao detecte tom de discagem por 2 vezes seguidas, o</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> Channel Driver coloca este canal em alarme. Para visualizar os canais com</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> alarme basta executar o comando *dgv show alarms* no *CLI* do Asterisk. Este</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> alarme eh desativado automaticamente apos 10 minutos ou apos receber um *Ring*</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> na linha. Para desativa-lo manualmente basta executar o comando</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> *dgv alarms reset* no *CLI* do Asterisk;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">- Criado novo parametro no digivoice.conf, segue descricao:</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> *ccb_pass_through* - Utilizado para repassar a sinalizacao de bloqueio de</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> chamada a cobrar recebida do PABX para a rede publica.</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> Obrigatoriamente este "pass-through" deve ser entre</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> canais DigiVoice, onde a rede publica deve estar com</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> sinalizacao *r2mfc_ndis_fixed* e o PABX deve estar com</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> sinalizacao *r2mfc_ndis_variable*. Este parametro deve</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> ser configurado no canal de sinalizacao</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> *r2mfc_ndis_variable* e somente tera efeito em ligacoes</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> entrantes recebidas pela rede publica.</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> Pode assumir os seguintes valores:</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> |_ 0 -> Nao repassa a sinalizacao de bloqueio de</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> chamada a cobrar(Padrao);</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> |_ 1 -> Ativa o "pass-through" de sinalizacao de</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> bloqueio de chamada a cobrar;</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Implementacao de indicacao de Q931_PROGRESS e Q931_CALL_PROCEEDING para</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> *signalling* *isdn*, utilize respectivamente Progress() ou Proceeding() em seu</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> *dialplan*;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Implementacao de deteccao de chamada a cobrar em links com *signalling*</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> *isdn*, desta forma pode-se utilizar a aplicacao DgCollectCallBlock() para</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> bloquear este tipo de chamada. Para que o Channel Driver detecte este tipo de</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> chamada sao necessarias algumas alteracoes na Libpri, estas alteracoes sao</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> feitas automaticamente pelo *Makefile* do Channel Driver(apenas para as</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> seguintes versoes de Libpri: 1.4.7, 1.4.8, 1.4.9, 1.4.10 e 1.4.10.1).</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> Para esta implementacao alguns coloboradores foram de grande importancia:</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> Alexandre Cavalcante Alencar <<a href="mailto:alexandre.alencar@gmail.com">alexandre.alencar@gmail.com</a>>,</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> Moises Silva <<a href="mailto:moises.silva@gmail.com">moises.silva@gmail.com</a>> e</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> Sean Bright <<a href="mailto:sean.bright@gmail.com">sean.bright@gmail.com</a>></span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> Obs.: Para que o Channel Driver detecte e bloqueie a chamada a cobrar,</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> obrigatoriamente a operadora devera sinalizar que a chamada eh a cobrar</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> (Reverse Charging Indication).</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">- Corrigido problema ao utilizar o metodo *RoundRobin*(por Daniel Bichara);</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">- Corrigido problema ao capturar a segunda chamada de um canal com *signalling*</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> *fxs* ou *channelbank_fxs*;</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Corrigido possivel problema de seg. fault ao utilizar *signalling* *isdn* com</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> *qsig*;</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">- Corrigido possivel problema de deadlock;</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">Arquivos/Procedimento para instalação:</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> VoicerLib => <a href="http://downloads.digivoice.com.br/pub/voicerlib/linux/stable/voicerlib-4.2.0.0.tar.gz">http://downloads.digivoice.com.br/pub/voicerlib/linux/stable/voicerlib-4.2.0.0.tar.gz</a></span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> DgvChannel => <a href="http://downloads.digivoice.com.br/pub/dgvchannel/stable/dgvchannel-1.0.4.tar.gz">http://downloads.digivoice.com.br/pub/dgvchannel/stable/dgvchannel-1.0.4.tar.gz</a></span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> O procedimento para instalação encontra-se no arquivo INSTALL dentro do diretório dgvchannel-1.0.4</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">_____________________</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">A DigiVoice agradece.</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">*** Vamos fortalecer o mercado interno. Por que não utilizar tecnologia do Brasil no Brasil? ***</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><br clear="all"><br>-- <br>Luciano Alves Barroso<br>Equipe de Desenvolvimento DigiVoice Channel Driver & DigiVoice Meucci<br><a href="http://www.digivoice.com.br">www.digivoice.com.br</a><br>
<a href="http://www.meucci.org">www.meucci.org</a><br>