Umas das questões que recebemos frequentemente por e-mail, são dúvidas referentes a bilhetagem duplicada (dois registros para a mesma chamada), dessa forma, elaboramos este artigo com algumas dicas de como resolver e configurar corretamente seu PABX.
O sistema de Consulta a Portabilidade ATI (conheça mais) opera puramente em SIP, portanto, para realizar a consulta o PABX realiza uma “chamada” para o ATI com o número que deseja consultar e o ATI responde com o código RN1 da operadora deste número.
O PABX ao receber este retorno encaminha a chamada pela rota de menor custo para esta operadora.
Na imagem abaixo podemos visualizar como é realizada a consulta ao ATI.
Utilizando esta arquitetura inegavelmente ganhamos em tempo de resposta e processamento por consulta, devido a não utilização de softwares externos, por outro lado quando efetuamos a consulta ao ATI é gerado um primeiro bilhete e, ao efetuar a chamada para o número destino a partir do retorno do ATI é criado um segundo bilhete com o número de origem como sendo o PABX, dificultando a identificação da origem e destino da chamada.
Para uma central puramente Asterisk este problema é facilmente contornado utilizando-se a aplicação NoCDR() na criação do plano de discagens, antes de efetuar a chamada para o número destino (Dial), desta forma é gerado apenas um bilhete com todo o tempo de operação e o número de origem correto.
Porém para centrais baseadas em asterisk com gerenciamento gráfico (Elastix, FreePBX, Trixbox) esta opção não é disponibilizada na criação das rotas de saída (Outbound Routes), portanto caso o controle dos bilhetes seja algo crítico para sua empresa, devemos criar estas rotas de forma manual, editando o arquivo de configuração, como mostrado a seguir.
Configurando seu PABX
Para configurar seu PABX e gerar os bilhetes corretamente (apenas um bilhete), você deve criar somente os troncos através da interface Web. As rotas de saídas (Outbound Routes) devem ser criadas diretamente no arquivo de configuração, seguindo os passos abaixo:
Criando troncos
Após criar os troncos conforme orientado em nosso passo-a-passo de configuração abra o arquivo /etc/asterisk/extensions_custom.conf;
Editando o arquivo de configuração
Apesar de não ser possível adicionar a aplicação NoCDR() em Outbound Routes, o Elastix oferece uma ferramenta para a edição de arquivos em seu PABX. Siga os passos abaixo para editar o arquivo:
1 – Clique em PBX;
2 – Selecione a aba Tools;
3 – Vá em Asterisk File Editor para escolher o arquivo a ser editado;
4 – Clique no arquivo extensions_custom.conf para editar o arquivo.
Criando Rotas para o ATI
Todas as regras devem ser criadas dentro do contexto [from-internal-custom], começaremos adicionando as regras para realizar as consultas no ATI, inserindo as seguintes regras no arquivo /etc/asterisk/extensions_custom.conf:
[from-internal-custom]
;Consultas ATI
exten => _ZZ[6-9]XXXXXXX,1,Dial(SIP/portabilidade/${EXTEN})
;para chamadas locais deve-se adicionar seu código de área (DDD)
exten => _[6-9]XXXXXXX,1,Dial(SIP/portabilidade/48${EXTEN}) ;alterar 48 pelo seu DDD
;ligações para localidades com o nono dígito
exten => _ZZ9[6-9]XXXXXXX,1,Dial(SIP/portabilidade/${EXTEN})
Regras para tratar o retorno do ATI
Neste exemplo estamos utilizando uma placa Khomp, verifique com seu fornecedor como configurar sua terminação GSM em uma central Asterisk.
Ainda no contexto [from-internal-custom] adicione as seguintes regras:
;TIM (55341)
exten => _55341ZZ9[6-9]XXXXXXX,1,NoCDR()
exten => _55341ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C0/0${EXTEN:3})
exten => _55341ZZ[6-9]XXXXXXX,1,NoCDR()
exten => _55341ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C0/0${EXTEN:3})
;CLARO (55321)
exten => _55321ZZ[6-9]XXXXXXX,1,NoCDR()
exten => _55321ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C1/0${EXTEN:3})
exten => _55321ZZ9[6-9]XXXXXXX,1,NoCDR()
exten => _55321ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C1/0${EXTEN:3})
;VIVO (55315 | 55320)
exten => _55315ZZ[6-9]XXXXXXX,1,NoCDR()
exten => _55315ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C2/0${EXTEN:3})
exten => _55315ZZ9[6-9]XXXXXXX,1,NoCDR()
exten => _55315ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C2/0${EXTEN:3})
exten => _55320ZZ[6-9]XXXXXXX,1,NoCDR()
exten => _55320ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C2/0${EXTEN:3})
exten => _55320ZZ9[6-9]XXXXXXX,1,NoCDR()
exten => _55320ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C2/0${EXTEN:3})
;OI (55331 | 55335 | 55314)
exten => _55331ZZ[6-9]XXXXXXX,1,NoCDR()
exten => _55331ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C3/0${EXTEN:3})
exten => _55331ZZ9[6-9]XXXXXXX,1,NoCDR()
exten => _55331ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C3/0${EXTEN:3})
exten => _55335ZZ[6-9]XXXXXXX,1,NoCDR()
exten => _55335ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C3/0${EXTEN:3})
exten => _55335ZZ9[6-9]XXXXXXX,1,NoCDR()
exten => _55335ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C3/0${EXTEN:3})
exten => _55314ZZ[6-9]XXXXXXX,1,NoCDR()
exten => _55314ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C3/0${EXTEN:3})
exten => _55314ZZ9[6-9]XXXXXXX,1,NoCDR()
exten => _55314ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C3/0${EXTEN:3})
;NEXTEL (55377)
exten => _55377ZZ9[6-9]XXXXXXX,1,NoCDR()
exten => _55377ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C3/041${EXTEN:5}) ;Geralmente utiliza-se a operadora TIM para completar ligações para números NEXTEL.
;NUMERO INVALIDO
exten => _55000.,1,Progress()
exten => _55000.,n,Playback(invalid)
exten => _55000.,n,Hangup()
Após realizar a configuração o arquivo estará semelhante ao da imagem abaixo.
O NoCDR() está sendo utilizado para não gerar o CDR (bilhete) para a segunda chamada, desta forma teremos apenas o primeiro bilhete que irá conter o tempo total da chamada, o número de quem originou a chamada, o número destino (já com o código da operadora) e demais campos.
Em caso de dúvidas ou dificuldades na configuração de sua central telefônica, entre em contato com nossa equipe.