Extensions.conf. Coração do ASTERISK
Origem: Gpwm, a enciclopédia livre.
Conteúdo |
Extensions.conf
Considerado por muitos como sendo o "Coração do Asterisk", o extensions.conf contém todas as regras de discagem do servidor asterisk o tão famoso DialPlan. É nele que configuramos todas as regras de entrada e saída de conexões através do servidor asterisk.
Estrutura do Extensions.conf
O Extensions.conf está divido em três partes, a primeira dela é a geral [general], globals [globals] e a última que é onde configuramos o plano de discagem.
- Geral [General]
A seção geral possui dois parâmetros muito importantes para o bom funcionamento do Asterisk. Sendo ele o static que aceita valores lógicos Yes|No. E o writeprotect que por sua vez também só aceita valores lógicos Yes|No. Vale ressaltar que o Asterisk interpreta o Yes como sendo True e o No como sendo False. Por padrão o Extensions.conf vem com uma configuração "perigosa", static=yes e o writeprotect=no, o que permite que o comando save dialplan altere o arquivo Extensions.conf sem fazer uma copia de segurança.
- Global [Globals]
É nesta seção que configuramos todas as variáveis globais do Extensions.conf e definimos todos os respectivos valores. Nesta seção configuramos o que se deve tocar quando recebemos uma chamada, quantas vezes o telefone deve tocar antes de ir para o voicemail o arquivo de música que vai ser tocado quando a chamada for direcionada ao voicemail.
- Padrão [Default]
Considero que está ultima seção seja a mais importante do Extensions.conf, já que é nela que configuramos o Plano de Discagem DialPlan que é formato por um conjunto de contextos, e cada contexto é formado por um conjunto de extensões. É nesta seção que implementamos inúmeros recursos, sendo alguns deles: Segurança, Roteamento, Auto-Atendente, Horários, Macros, etc.
Configuração do Extensions.conf
Como já foi dito é no Extensions.conf que configuramos o DialPlan. O DialPlan é formado por um conjunto de contextos que por sua vez são formados por conjuntos de extensões. Os contextos são criados entre colchetes, exemplo: [Contexto], e são seguidos das extensões. As extensões tem a seguinte sintaxe:
exten=>[ramal],[prioridade],[aplicação],[parâmetros]
- [ramal]: número do ramal a ser chamado.
- [prioridade]: define a prioridade da extensão, a ordem de execução das linhas.
- [aplicação]: define a aplicação que se deseja executar.
- [parâmetros]: dependem da aplicação, se a aplicação não exigir parâmetros o campo não exitira.
Exemplo:
[Default] ;Exemplo Simples para Ligações entre ramais exten=>1,1,Dial(Zap/1) exten=>1,2,Dial(Zap/2) exten=>1,3,Dial(Zap/3)
Caso você tenha um usuário chamado joaquim previamente configurado no sip.conf você pode configurar o Extensions.conf para quando for discado o número 1 o telefone de joaquim toque.
exten=>1,1,Dial(SIP/JOAQUIM)
A configuração do Extensions.conf é bem mais complexa do que está sendo mostrado até aqui. Tomando como base uma empresa que tem muitos funcionários seria inviável gerenciar todas as regras de discagem só pra discar de ramal para ramal, para este tipo de problema existem as regras genéricas.
Exemplo de Regra Genérica:
[general] static=yes writeprotect=yes
[sip] exten => 666,1,MeetMe,1234
exten => _22XX,1,GotoIf($[${CALLERIDNUM} = ${EXTEN}]?2:3)
exten => _22XZ,2,VoicemailMain(${EXTEN})
exten => _22XZ,3,Dial(SIP/${EXTEN},20,t)
exten => _22XZ,4,GotoIf($[${DIALSTATUS} = CHANUNAVAIL]?8)
exten => _22XZ,5,GotoIf($[${DIALSTATUS} = BUSY]?10)
exten => _22XZ,6,VoiceMail(${EXTEN})
exten => _22XZ,7,Goto(${EXTEN}, 13)
exten => _22XZ,8,VoiceMail,u${EXTEN}
exten => _22XZ,9,Goto(${EXTEN}, 13)
exten => _22XZ,10,VoiceMail,b${EXTEN}
exten => _22XZ,11,Goto(${EXTEN}, 13)
exten => _22XZ,12,Playback(vm-goodbye)
exten => _22XZ,13,Hangup
Funções do Extensions.conf
Estudo de Caso
Conclusão
Existem vários modos de se configurar o Extensions.conf, cabe ao administrador fazer uma configuração sólida e que resulte no bom funcionamento do seu DialPlan e consequentemente o bom funcionamento da rede de tefefonia. A configuração do Extensions.conf exige uma certa criatividade por parte do administrador, por esse motivo não sairei colocando varios modos de como configurar seu Extensions.conf já que o DialPlan varia muito de solução para solução.
A configuração do Extensions.conf depende muito do que se deseja fazer.
