Criando macro no Asterisk

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.

Comentários

Postagens mais visitadas deste blog

Discador para Asterisk - Integrado com banco de dados

Importação do arquivo CNL Anatel para banco de dados

Monitorar um único ramal no Asterisk.