# Introdução à Telefonia por IP utilizando Asterisk/Dialplan

O Dialplan define como o Asterisk manipula os telefonemas que chegam e que são enviados. Consiste de uma lista de instruções ou passos que o Asterisk irá seguir.
Sintaxe do dialplan
O dialplan do Asterisk é especificado no arquivo de configuração chamado de /etc/asterisk/extensions.conf.
O dialplan é composto de quatro partes principais: contextos, extensões, prioridades e aplicações.
Contextos
O dialplan é dividido em seções chamadas de contexto, tais contextos evitam que partes diferentes do dialplan interajam umas com as outras. Assim, uma extensão (as funções de um grupo) definida em um contexto é completamente isolada das extensões de outro contexto, a não ser que a interação seja especificamente permitida. Um dos mais importantes usos de contexto é garantir a segurança. Pelo uso correto dos contextos é possível permitir a determinadas pessoas acesso a algumas funções que não serão disponibilizadas a outras.
Extensões
Uma extensão é uma instrução que o Asterisk irá seguir e é incluída dentro de cada contexto. A extensão é acionada por uma chamada de entrada ou por dígitos sendo discados em um canal. Então as extensões especificam o que acontece às chamadas enquanto seguem seu caminho pelo dialplan. Uma extensão completa é formada pelos seguintes componentes:
* O nome (ou número) da extensão; • A prioridade na qual cada extensão pode incluir vários passos a ser executados na chamada; • Aplicação (ou comando) que executa alguma ação na chamada.
Esses três componentes são separados por vírgulas da seguinte forma: exten => nome,prioridade,aplicação
Prioridades
Cada extensão pode ter vários passos chamados de prioridades. Cada prioridade é numerada sequencialmente e cada prioridade executa uma aplicação específica. Por exemplo, a seguinte extensão pode responder a uma chamada (na prioridade 1) e então desligar (na prioridade 2):
exten => 123,1,Answer exten => 123,2,Hangup
As prioridades devem iniciar em 1 e são numeradas consecutivamente. Caso uma prioridade fique fora de ordem numérica o Asterisk não continua depois dela.
Aplicações
As aplicações são os "cavalos de batalha" do dialplan. Cada aplicação executa uma ação específica no canal em questão, tal como emitir um som, aceitar uma entrada toque-tom ou desligar a chamada. Algumas aplicações precisam de argumentos a serem passados juntos com as aplicações para determinar como devem executar suas ações. Para passar argumentos às aplicações, coloque-os entre os parênteses que se seguem ao nome da aplicação, separados por vírgulas.
--Saile Recla (discussão) 17h23min de 13 de abril de 2013 (UTC)
Um simples exemplo de dialplan
Vamos criar um dialplan simples para entender como este funciona. Em nosso exemplo iremos criar um diaplan para que quando a chamada chegar, o Asterisk ir a responder à chamada, tocar um arquivo de som e então desliga chamada.
Antes de iniciar o dialplan, nós devemos explicar sobre uma extensão especial chamada de extensão “s”, quando as chamadas entram contexto sem uma extensão específica de destino (por exemplo, uma linha FXO chamado), elas são automaticamente manipuladas pela extensão “s”. O “s” indica início (start).
Nosso dialplan irá iniciar com a extensão “s” e executaremos três ações: responder, tocar um arquivo de som desligar:<>br />
[incoming]
Exten => s, 1, Answer Exten => s, 2, Playback (hello-world) Exten => s, 3, Hangup
A aplicação Answer é utilizada para responder a um canal que está chamando, isso faz a configuração inicial do canal que recebe a chamada que está entrando, Answer não tem argumentos.
A aplicação Playback é utilizada para tocar um arquivo de som previamente gravado sobre um canal. Ao utilizar a aplicação Playback a entrada do usuário é simplesmente ignorada. Para utilizar o Playback, especifique um nome de arquivo sem extensão como argumento, por exemplo, Playback(musica) que fará tocar musica.gsm. O Asterisk vem com muitos arquivos de som profissionalmente gravados, que podem ser encontrados no diretório de som usualmente /var/lib/asterisk/sounds.
A aplicação Hangup desliga o canal ativo e quem está chamando recebe uma indicação que a chamada foi desligada, deve-se utilizar essa aplicação ao final do contexto quando quiser terminar a atual ligação para assegurar que o dialplan não continuará sendo utiliza. Essa aplicação não tem argumento.
O dialplan até agora não tem muita utilidade é mais para enter a teoria e testes, caso os canais estejam configurados é possível testa-los. Vamos tornar o dialplan mais dinâmico.
--Guilherme Duarte (exemplo de dialplan) 23h13min de 19 de abril de 2013 (UTC)