Criando macro no Asterisk

Ao se construir um plano de discagem, muitas vezes percebemos que existem procedimentos ou partes de contextos que têm de ser repetidos várias vezes. Para nos ajudar a eliminar linhas de arquivo de configuração o Asterisk nos dá a possibilidade de criar macros, assim como em algumas linguagens de programação.



Vai ai um pequeno exemplo de como construir e utilizar macros no Asterisk.

Nesse exemplo farei tudo no extensions.conf.

A nossa macro terá a função de realizar a discagem, automatizando procedimentos que teriam que ser repetidos várias vezes em cada contexto.

Para facilitar o entendimento vou começar mostrando como vamos chamar a macro no plano de discagem:



Onde:

exten => _x.,1,Macro(nomedamacro,${ARG1},${ARG2},${ARG3})

Na aplicação Macro, chamamos a macro e enviamos os argumentos que serão tratados pela macro em si. Lá no exemplo anterior temos o seguinte:

dial:o primeiro parâmetro é sempre o nome da macro que estamos chamando ([macro-dial]: o nome é dial). O nome da macro obrigatoriamente deve ter essa sintaxe, "macro", "-","nomedamacro" (ex. macro-dial, macro-ddd, macro-conferencia).
${ARG1} = SIP
${ARG2} = ${EXTEN}
${ARG3} = ${SIPPEER(${CALLERID(num)},context)}
E assim por diante se tivéssemos mais argumentos( ${ARG4},${ARG5},${ARG...}).

Agora a macro(dentro do extensions.conf):


Note que é um contexto normal de discagem, a única diferença é que associamos os argumentos trazidos do  plano de discagem para dentro da macro, jogando-os nas variáveis que fazem parte dela.

Nenhum comentário:

Postar um comentário