Você está na página 1de 3

Criando Planos de Discagem

Plano de discagem ou Dialplan


O plano de discagem ou Dialplan uma das partes mais importantes da configurao de um Servidor VOIP, pois
atravs dele que voc determinar atravs de qual tronco a ligao vai sair, podendo assim, gerar uma economia maior
com o encaminhamento de ligaes. Por exemplo:
Vamos suporte que a Operadora de Telefonia X cujo cdigo para discagem interurbana seja 99 criou um pacote para
ligaes interurbanas para DDD 11 cujo valor mais barato que da operadora Y.
Por outro lado, a operado Y criou uma promoo para ligaes para o DDD 19 mais barato que a operadora X.
Ento vamos criar um plano da seguinte maneira:
1 Situao: Quando o DDD do nmero discado for 11, ligue pela operadora X.
2 Situao: Quando o DDD do nmero discado for 19, ligue pela operadora Y.
Dessa maneira, a cada vez que as promoes mudarem, no preciso comunicar a todos os usurios do sistema VOIP
por qual operadora deve fazer a ligao para economizarem. Ento no teremos problema de um usurio usar a
operadora errada e acabar fazendo uma ligao mais cara.
Elementos do Dialplan
1- Arquivo de configurao.
O arquivo de configurao padro do Asterisk o /etc/asterisk/extensions.conf.
No exemplo usarei o Elastix, e nele, o arquivo a ser editado o extensions_custom.conf. Para edit-lo, acesso
o Painel de Administrao do Elastix, e entre em: PBX(01),Tools(02), File Editor(03) e no campo File(04),
digite ext(05) e clique em Filtro(06). Clique ento sobre o arquivo extensions_custom.conf(07)

2- Entendendo a Linguagem do Dialplan


A configurao de um Dialplan composta por: contexto, extenso e dentro da extenso temos ainda: nome da
extenso, prioridade e a aplicao.
Contexto: uma diviso dentro do Dialplan. O contexto pode ser nico para cada Ramal ou pode ser
compartilhado. Alm do que, a diviso por contextos garante que uma regra de discagem, no interfira num
contexto errado. A forma correta de denomin-los coloc-los dentro de colchetes [ ], por exemplo: [padrao01].
Esse nome do contexto o que preenchido no campo Context na criao ou edio de um ramal criado pelo
Painel de Administrao.
Extenso: uma instruo que ser seguida pela Asterisk. A extenso acionada por uma chamada de entrada
ou por dgitos sendo discados em um canal. Resumindo: as extenses especificam o que acontece s chamas
enquanto elas passam pelo dialplan. A sintaxe para a extenso a palavra exten seguida de um sinal de igual mais
um sinal de maior, formando uma seta, ficando assim: exten =>.
Nome da extenso: pode ser o nmero discado ou que est sendo chamado. Por exemplo, posso criar regras
para nmeros que comecem com 1 e sejam seguidos de 3 nmeros que podem variar de 0 a 9. Ou criar regras
para um nmero especfico.
Prioridade: como o nome prprio diz a prioridade em que aquela extenso, ser executada. Logo mais ser melhor
entendi.
Aplicao: a ao que o Asterisk tomar com aquela ligao, por exemplo: Discar (Dial), Gravar (Mixmonitor)
etc...

3- Montando um plano.
Como vimos anteriormente, o Dialplan formado por: contexto, extenso, prioridade e aplicao, ficando assim:
[nome_do_contexto]
exten => extenso,prioridade,aplicao()
Exemplo funcional:
[padrao01]
exten => 123,1,Playback(ola)
Explicando: As extenses que fizerem parte do contexto padrao01, ou seja, as extenses que no campo Context
estiver preenchido padrao01, respeitaro essas regras. Continuando, quando essas extenses discarem para o
nmero 123 ser executada uma mensagem de udio chama ola.
Uma funo interessante na montagem de Planos de Discagem, usar a opo de nmeros variantes. Por
exemplo: Vamos supor que os ramais do PBXIP sejam do 1000 ao 1999, por exemplo. Seria extremamente chato e
difcil criar uma regra pra cada ramal existente no PBXIP, ento o ideal seria falar do ramal A ao B. Para isso basta
apenas as seguintes letras na hora de chamar uma extenso:
X Dgitos de 0 a 9;
Y Dgitos de 1 a 9;
N Dgitos de 2 a 9;
Para montar um plano usando esses cdigos, faramos o seguinte:
[padrao01]
exten => _XXXX,1,Playback(ola) ; ou seja: todo ramal, do 0000 ao 9999 para o qual discarmos, ele executar uma
mensagem de udio.
No caso do exemplo que citei acima do PBXIP com ramais do 1000 ao 1999, poderamos usar a seguinte sintaxe:
exten => _1XXX,1,Playback(ola) ; ou seja: do ramal 1000 ao 1999
4 Criando planos funcionais.
A funes ou comandos que um plano de discagem pode executar so vrias e vrias. No vou abordar aqui todas,
apenas algumas mais simples e funcionais.
Dial() Discar para o ramal. Esse talvez seja o comando mais usado pois o que vai executar a ligao em si.
Normalmente eu o uso com o completo de uma varivel chamada EXTEN que vai carregada com o nmero que
foi discado. Por exemplo: caso eu disque 1000, o valor dessa varivel passar a ser 1000 ento o comando discar
(Dial) para o nmero 1000. A sintaxe fica assim: Dial(SIP/${EXTEN}). O uso do cifro do comando SIP, da barra /
e do cifro $ obrigatrio e faz parte da linguagem do Dialplan.
Playback() Executa um arquivo de udio existente no PBXIP
SayDigits() O PBXIP diz os dgitos que foram digitados
Hangup() Desliga a ligao
MixMonitor() grava a ligao
No se precipitem e pensem que s jogar esses comandos no final da linha do Dialplan que vai funcionar, pois a
maior parte deles depende de complementos e opes que devem ser adicionados dentro dos parnteses ()
Pois bem, vamos criar um primeiro Dialplan:
[padrao01]
exten => _1XXX,1,Playback(demo-congrats)
exten => _1XXX,2,Dial(SIP/${EXTEN})
exten => _1XXX,3,Hangup()
Explicando: na primeira linha, executamos um arquivo de udio chamado demo-congrats. Esse arquivo est na pasta
/var/lib/asterisk/sounds. Esse arquivo foi usado apenas como exemplo, voc poderia ter gravado um arquivo de
udio de apresentao da empresa ou algum arquivo com um aviso. Na segunda linha est o comando Dial que
executar de fato a ligao, ligando para o nmero que contem na varivel EXTEN, ou seja, o nmero discado. E
na linha 3, um comando para derrubar a ligao, no final dela.
Outro exemplo:
[padrao01]
exten => _ZXXX,1,Saydigits(${EXTEN})
exten => _ZXXX,2,Dial(SIP/${EXTEN})
exten => _ZXXX,3,Hangup()
Agora, nesse plano, essas regras sero aplicadas para ramais que comecem com um dgito de 1 a 9 e que sejam

seguidos de 3 digitos de 0 a 9. Na primeira linha, o PBXIP dir os dgitos digitados. Na segunda linha, far a ligao
e na terceira, derrubar a ligao.
No Asterisk, depois de criar o Dialplan e salv-lo, necessrio mandar o Asterisk ler novamente o arquivo de
configurao.
No Elastix, para fazer isso, clicamos em PBX (01), Tools (02), e em Asterisk-cli(03) digite reload(04) e clique no
boto Execute(05). Executando esse comando, o Asterisk vai ler todos os arquivos de configurao novamente,
aplicando as alteraes no extensions_custom.conf.

At a prxima.

Você também pode gostar