Um pequeno comentário sobre AEL (AEL)

Categories: AEL, Asterisk
Tags: ,
Comments: No Comments
Published on: 28 de maio de 2015

Recentemente eu fiz uma busca na internet sobre AEL e apareceu um monte de artigos dedicados ao Asterisk e todos os autores escreveram o Dialplan para utilizar o padrão “.conf” (extensions.conf). Não vou descrever aqui o formato de programação em “.conf”, mas apenas tentar descrever brevemente suas diferenças com os arquivos de configuração no formato “.ael” (extensions.ael). Na verdade, o que passo a escrever ainda é pouco. No futuro, por conveniência, o Dialplan será todo programado em “.ael”. Aqui, aproveito para demonstrar os três níveis de conhecimento de um Desenvolvedor em Asterisk.  Vamos analisar um exemplo de um contexto em um Dialplan simples nos três níveis:

ou

E este é o mesmo contexto programado na sintaxe AEL:

Assim, a diferença é óbvia. Para mim, uma das principais vantagens é a facilidade de leitura do extensions.ael; mesmo neste pequeno exemplo, fica claro que ler e compreender a configuração fica mais fácil. Embora, eu admito que é subjetivo. Em segundo lugar, que imediatamente chama a atenção – é a falta de prioridade (s, n no código acima, no entanto, como observado em comentários, a prioridade não é mais obrigatória) na descrição Dialplan. Por que não usamos mais estas prioridades? Ou melhor, por que elas ainda estão na descrição do Dialplan convencional?

Se você não tem que se preocupar com o Asterisk e com seu Dialplan de costume, você vai se surpreender ao saber que ele não tem ciclos, sem condições. Há apenas um salto condicional (gotoif), através do qual, em princípio, é possível organizar os mesmos ciclos, mas a conveniência desta abordagem é muito duvidosa. Vamos imaginar o código mais simples com AEL, que será exibido na linha de comando (*CLI>) do Asterisk como Verdadeiro ou Falso:

Numa forma típica esta condição seria:

Podemos perceber que não só perdemos a “legibilidade”, como também somos obrigados a prescrever ou estaticamente informar as prioridades (e obter o código absolutamente não-prorrogável), ou vir com etiquetas em todos. Sim, o AEL também tem rótulos, apenas que esta necessidade para eles é quase perdida, uma vez que a sintaxe permite a você fugir do próprio Goto.

Além de dirigir as condições (if / else) no AEL, você pode usar uma instrução switch com a sintaxe usual:

E agora? Você se habilita a descrever essa mesma configuração, mas no formato habitual? Isso mesmo!

Agora, imagine que você tem um plano de discagem mais ou menos complexo, o que acabará por crescer e se expandir, vai adicionar novos recursos, haverá muitas condições, filas, e assim por diante (sem AEL tudo vai ser muito triste). Para o trabalho do dia a dia, configurar o Asterisk e solicitações de clientes pode ser bastante exótico. Para resolver estes problemas sem AEL seria muito mais difícil.

Seja justo e não venha dizer que pode converter tudo que o AEL lhe proporciona em formato básico da arquitetura do Asterisk. Você vai verificar através do CLI do Asterisk «dialplan Show», como sua sintaxe é, e ter certeza de como fazer. Mas AEL pode fazer de forma significativa a sua vida ficar mais fácil, especialmente como você pode ver, a sintaxe é bastante óbvia, e se você já possui uma experiência de escrever Dialplan convencional, acredite, vai programar em AEL, fácil, fácil.

Aqui deixo dois links que julgo importante:

Introduction to AEL

https://wiki.asterisk.org/wiki/display/AST/Introduction+to+AEL

http://debian.asco.de/doc-lenny/asterisk-doc/html/node106.html

Syntax for Asterisk Extension Language (AEL)

http://www.vim.org/scripts/script.php?script_id=1900

Fonte:

http://updates.xorcom.com/tmp/git/asterisk/doc/ael.txt

No Comments - Leave a comment

Leave a comment

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Please copy the string abmAEu to the field below:


Welcome , today is domingo, 26 de março de 2017