[AsteriskBrasil] Boas praticas

Rodrigo Lang rodrigoferreiralang em gmail.com
Quinta Maio 20 10:07:49 BRT 2010


Bom dia Bruno!

Seguinte, algo que acredito que é uma boa prática (tanto por organização
quanto por segurança) sempre separar tudo em contextos diferentes. Por
exemplo, eu sempre crio contextos separados para saída de celular local
([7-9]XXXXXXX), para saída de fixo local ([1-6]XXXXXXX), interurbano e por
aí vai. Se você utiliza AEL2, tem bastante coisa para melhorar o código e a
segurança também. Uma coisa que eu gosto de fazer também é criar uma pasta
chamada "/etc/asterisk/extensions/" e dentro dela criar os arquivos
extensions (.conf ou .ael). Eu acredito que fica mais organizado.
Normalmente eu crio um arquivo separado para ramais internos, outro para
rotas entrantes, para rotas saintes, para facilidades, para macros, etc...

Eu também crio "tabelas de restrições" (uso esse nome porque é como é
chamado nos PBX's) para os ramais somente com o que eles precisam. Por
exemplo:

[restrito] ;Realiza ligações locais somente
include => ramais
include => localFixo
include => localMovel
...
...

E por aí vai! Eu nunca aponto um ramal direto para o contexto com o Dial().
Além de, na minha opinião, ficar bem mais organizado.

Outro detalhe também é evitar repetir o código, eu crio macros e contexto
separados para cada coisinha, cada detalhe. Por exemplo, eu tenho como para
usar o MixMonitor() antes que qualquer Dial() entrante ou sainte. Eu criei
uma macro só com o MixMonitor() e um return; (eu utilizo AEL). Daí você me
pergunta: "Você é idiota?". Não, só que eu chamo essa macro pelo umas 30
vezes no meu plano de numeração. Se um dia eu precisar mudar o nome do
arquivo, caminho, etc... É só mudar na macro que afeta tudo. A mesma coisa
com a extension "h", eu sempre chamo uma macro só com o Hangup() e um
return;. Um bom exemplo é que esses dias precisei implementar uma facilidade
em um Asterisk onde seria preciso na extension "h" checar uma informação. Eu
já tinha meio caminho andado por todos os contextos chamarem a mesma macro
na extension "h". Ao meu ver, facilita bastante as coisas.

Como citei sobre AEL2, ele possui o abstract por exemplo (nunca vi para o
.conf). Tornar um contexto em abstract, impede a utilização do Goto() para
esse contexto, só pode ser usado pelo "include". Eu gosto de AEL por ser bem
mais prático, organizado e rápido de fazer. Sem contar com o aelparse que
facilita bastante.

Acredito esses detalhes sejam boas práticas. Eu nunca vi um documento do
genero, mas no voip-info [1] tem um artigo sobre AEL2 que mostra sobre boas
práticas [2] em AEL.

Uma dica para quem quer conhecer AEL. Faça um backup dos seus confs e
execute o comando "conf2ael" e veja seu novo extensions no arquivo
"aelout.ael". Fica a dica (Vale a pena!). :D

[1] http://www.voip-info.org/wiki/view/Asterisk+AEL2
[2] http://www.voip-info.org/wiki/view/AEL+Example+Snippets


Ats,
Rodrigo Lang


-- 
Rodrigo Recipes!
Last post: DUNDi!
pt.2<http://rodrigorecipes.blogspot.com/2010/05/dundi-pt2.html>
Tenha Netiqueta! <http://pt.wikipedia.org/wiki/Netiqueta>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20100520/f2711c80/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil