<font color='black' size='2' face='arial'>
<div>Resposta legal Rodrigo.</div>


<div>&nbsp;</div>


<div>Eu também procuro abstrair uma coisa que uso mais de 1x em um contexto diferente assim como você citou. Para complementar essa idéia&nbsp;eu acho que facilita bastante&nbsp;criar todas as macros (ou contextos) utilizadas mais de uma vez em um .conf separado, eu tenho uma regra para validar o número do usuário (se o usuário é valido ou não), então criei um arquivo chamado UraFuncoes.conf e sempre que vou validar usuários utilizo o contexto "validar" do meu UraFuncoes.conf.</div>


<div>&nbsp;</div>


<div>&nbsp;</div>


<div>Também procuro sempre manter uma regra para nomenclatura do Asterisk (isso varia para cada pessoa).</div>


<div>&nbsp;</div>


<div>Por exemplo:</div>

<UL>
<LI>Nome dos contextos sempre a primeira letra da palavra é maíscula<br>
[TesteInicial]<br>
</LI>
<LI>Nome de extensoes todas as letras minusculas<br>
001,n(testeinicial)<br>
</LI>
<LI>Para arquivos de som, utilizo a primeira letra da primeira palavra minuscula e o resto maisculo<br>
001,n,Playback(testeInicial)<br>
001,n,BackGround(testeInicial)</LI></UL>

<div><br>
</div>


<div>&nbsp;</div>


<div>Quando eu vou fazer um Goto, por exemplo, facilita bastante a minha vida por conta da nomenclatura.</div>


<div>extex =&gt; 001,1,Goto(TesteInicial|001|testeinicial)</div>


<div>&nbsp;</div>


<div>Quando vou utilizar arquivos de som, também facilita bastante por começar por 1 letra miniscula outra maiscula.</div>


<div>&nbsp;</div>


<div>&nbsp;</div>


<div>Enfim, vamos tentar "juntar" várias dicas para organização de um código asterisk para tentar fazer um guia de referência, ai podemos postar em algum site, blog, etc...</div>


<div>&nbsp;</div>


<div>&nbsp;</div>


<div>[]s,</div>


<div>Bruno<br>
</div>


<div style="FONT-FAMILY: arial,helvetica; COLOR: black; FONT-SIZE: 10pt">-----Original Message-----<br>
From: Rodrigo Lang &lt;rodrigoferreiralang@gmail.com&gt;<br>
To: asteriskbrasil@listas.asteriskbrasil.org<br>
Sent: Thu, May 20, 2010 10:07 am<br>
Subject: Re: [AsteriskBrasil] Boas praticas<br>
<br>


<div id=AOLMsgPart_3_6d3c58bf-d621-4ac5-be4e-0da11eae9f95>Bom dia Bruno!<br>
<br>
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...<br>
<br>
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:<br>
<br>
[restrito] ;Realiza ligações locais somente<br>
include =&gt; ramais<br>
include =&gt; localFixo<br>
include =&gt; localMovel<br>
...<br>
...<br>
<br>
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.<br>
<br>
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.<br>
<br>
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.<br>
<br>
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.<br>
<br>
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<br>
<br>
[1] <A href="http://www.voip-info.org/wiki/view/Asterisk+AEL2" target=_blank>http://www.voip-info.org/wiki/view/Asterisk+AEL2</A><br>
[2] <A href="http://www.voip-info.org/wiki/view/AEL+Example+Snippets" target=_blank>http://www.voip-info.org/wiki/view/AEL+Example+Snippets</A><br>
<br>
<br>
Ats,<br>
Rodrigo Lang<br>
<BR clear=all><br>
-- <br>
Rodrigo Recipes!<br>
Last post: <A href="http://rodrigorecipes.blogspot.com/2010/05/dundi-pt2.html" target=_blank>DUNDi! pt.2</A><br>
Tenha <A href="http://pt.wikipedia.org/wiki/Netiqueta" target=_blank>Netiqueta!</A><br>
</div>
<!-- end of AOLMsgPart_3_6d3c58bf-d621-4ac5-be4e-0da11eae9f95 -->

<div style="BACKGROUND-COLOR: #fff; MARGIN: 0px; FONT-FAMILY: Tahoma, Verdana, Arial, Sans-Serif; COLOR: #000; FONT-SIZE: 12px" id=AOLMsgPart_4_6d3c58bf-d621-4ac5-be4e-0da11eae9f95><PRE style="FONT-SIZE: 9pt"><TT>_______________________________________________
KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk. 
- Hardware com alta disponibilidade de recursos e qualidade KHOMP
- Suporte técnico local qualificado e gratuito 
Conheça a linha completa de produtos KHOMP em <A href="http://www.khomp.com.br/" target=_blank>www.khomp.com.br</A>
_______________________________________________
Participe do I Encontro VoIPCenter, 08 a 10 de junho – Rio de Janeiro.
Área de exposição, palestras e cursos de VoIP, Asterisk e Convergência de Redes.
<A href="http://www.encontrovoipcenter.com.br/" target=_blank>http://www.encontrovoipcenter.com.br</A>
______________________________________________
Lista de discussões AsteriskBrasil.org
<A href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</A>
<A href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target=_blank>http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</A>
</TT></PRE></div>
<!-- end of AOLMsgPart_4_6d3c58bf-d621-4ac5-be4e-0da11eae9f95 --></div>
</font>