(48) 3332-8540

Consulta a portabilidade numérica para Asterisk

Já falamos muitas vezes em nosso blog sobre como é fácil integrar o serviço de consulta a portabilidade (ATI) em servidores PABX Asterisk, porém, ainda não haviamos escrito um artigo especificamente para servidores puramente Asterisk, portanto, neste post você verá as configurações necessárias para os dois arquivos (sip.conf e extensions.conf). Em apenas 4 passos seu asterisk já poderá contar com a consulta a portabilidade numérica (ATI).

Primeiro vamos criar o tronco SIP apontando para o servidor de consulta a portabilidade (ATI) utilizando o usuário e senha previamente criados, caso você ainda não possua uma conta no serviço ATI, acesse sippulse.com/ati, na aba Sua Conta, e preencha o formulário de cadastro agora mesmo e ganhe 500 consultas gratuitas para realizar testes e homologação no seu PABX.

1) Criando o tronco SIP

Para configurar o tronco SIP para utilizar o ATI é necessário informar os dados de conexão em sip.conf. Portanto, abra o arquivo sip.conf para edição (vim /etc/asterisk/sip.conf) e adicione as seguintes informações:

[general]
promiscredir=no

[portabilidade]
type=peer
fromdomain=port.sippulse.com
host=port.sippulse.com
port=5060                                             ;OU 5080
defaultuser=SEU USUÁRIO ATI             ;PARA ASTERISK 1.6 OU SUPERIOR
username=SEU USUÁRIO ATI               ;PARA ASTERISK 1.4
fromuser=SEU USUÁRIO ATI
secret=SUA SENHA ATI
context=from­redirect                  ; CONTEXTO ONDE ESTARÃO AS REGRAS TRATANDO O RETORNO DO ATI
insecure=invite,port
qualify=no

Após inserir os dados da sua conta, salve as alterações (:wq)

2) Criando rotas para o ATI

Agora iremos editar o plano de discagem em extensions.conf, para que seu Asterisk encaminhe as chamadas de celular primeiro para o ATI.

Os números a serem consultados no ATI devem ser enviados no padrão TN (DDD+NÚMERO), portanto caso os usuários efetuem chamadas discando em outro padrão, o plano de discagem deve fazer o tratamento do número antes de encaminhá-lo ao ATI.

Abra em modo de edição o arquivo extensions.conf (vim /etc/asterisk/extensions.conf) e adicione as seguintes informações:

[from-internal]

;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

;Consultas ATI
exten => _ZZ[6-9]XXXXXXX,1,Dial(SIP/portabilidade/${EXTEN})

;Ligações para localidades com o nono dígito
exten => _ZZ9[6-9]XXXXXXX,1,Dial(SIP/portabilidade/${EXTEN})

3) Tratando 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.

Agora criaremos o contexto [from-redirect] para tratar o retorno do ATI. Como pode ser observado abaixo estamos utilizando a aplicação NoCDR() para evitar o bilhete duplicado. Adicione as seguintes regras:

Primeiramente iremos definir o código CSP das operadoras. Altere os valores de acordo com o código utilizado em sua região:

TIM=041

CLARO=021

VIVO=015

OI=031

NEXTEL=041

;Obs.: Muitos utilizam a Tim para terminar ligações para Nextel.

[from-redirect]

;TIM (55341)

exten => _55341ZZ9[6-9]XXXXXXX,1,NoCDR()

exten => _55341ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C0/${TIM}${EXTEN:5})

exten => _55341ZZ[6-9]XXXXXXX,1,NoCDR()

exten => _55341ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C0/${TIM}${EXTEN:5})

;CLARO (55321)

exten => _55321ZZ[6-9]XXXXXXX,1,NoCDR()

exten => _55321ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C1/${CLARO}${EXTEN:5})

exten => _55321ZZ9[6-9]XXXXXXX,1,NoCDR()

exten => _55321ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C1/${CLARO}${EXTEN:5})

;VIVO (55315 | 55320 | 55323)

exten => _55315ZZ[6-9]XXXXXXX,1,NoCDR()

exten => _55315ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C2/${VIVO}${EXTEN:5})

exten => _55315ZZ9[6-9]XXXXXXX,1,NoCDR()

exten => _55315ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C2/${VIVO}${EXTEN:5})

exten => _55320ZZ[6-9]XXXXXXX,1,NoCDR()

exten => _55320ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C2/${VIVO}${EXTEN:5})

exten => _55320ZZ9[6-9]XXXXXXX,1,NoCDR()

exten => _55320ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C2/${VIVO}${EXTEN:5})

exten => _55323ZZ[6-9]XXXXXXX,1,NoCDR()

exten => _55323ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C2/${VIVO}${EXTEN:5})

exten => _55323ZZ9[6-9]XXXXXXX,1,NoCDR()

exten => _55323ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C2/${VIVO}${EXTEN:5})

;OI (55331 | 55335 | 55314)

exten => _55331ZZ[6-9]XXXXXXX,1,NoCDR()

exten => _55331ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C3/${OI}${EXTEN:5})

exten => _55331ZZ9[6-9]XXXXXXX,1,NoCDR()

exten => _55331ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C3/${OI}${EXTEN:5})

exten => _55335ZZ[6-9]XXXXXXX,1,NoCDR()

exten => _55335ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C3/${OI}${EXTEN:5})

exten => _55335ZZ9[6-9]XXXXXXX,1,NoCDR()

exten => _55335ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C3/${OI}${EXTEN:5})

exten => _55314ZZ[6-9]XXXXXXX,1,NoCDR()

exten => _55314ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C3/${OI}${EXTEN:5})

exten => _55314ZZ9[6-9]XXXXXXX,1,NoCDR()

exten => _55314ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C3/${OI}${EXTEN:5})

;NEXTEL (55377 | 55351)

exten => _55377ZZ9[6-9]XXXXXXX,1,NoCDR()

exten => _55377ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C0/${NEXTEL}${EXTEN:5})

exten => _55351ZZ[6-9]XXXXXXX,1,NoCDR()

exten => _55351ZZ[6-9]XXXXXXX,n,Dial(Khomp/B1C0/${VIVO}${EXTEN:5})

exten => _55351ZZ9[6-9]XXXXXXX,1,NoCDR()

exten => _55351ZZ9[6-9]XXXXXXX,n,Dial(Khomp/B1C0/${VIVO}${EXTEN:5})

;NUMERO NÃO ENCONTRADO

exten => _55000.,1,Progress()

exten => _55000.,n,Playback(invalid)

exten => _55000.,n,Hangup()

4) Carregando as configurações

Pare carregar as configurações que acabamos de fazer entre na CLI> do Asterisk (# rasterisk) e recarregue as seguintes configurações:

# rasterisk

CLI> sip reload

CLI> dialplan reload

Pronto, agora seu Asterisk já deve estar encaminhando as chamadas para telefones móveis pelo tronco SIP do ATI.

Caso a consulta não esteja sendo efetuada verifique seu plano de discagem, observando se não há alguma outra regra que possa corresponder ao número discado.

pt_BRPT_BR