Aplicações do Dialplan do Asterisk 20
Comando:
Macro()
Sinopse:
Implementação de Macro
Descrição:
Executa uma macro utilizando o contexto macro-nome, saltando para a extensão 's' desse contexto e executando cada etapa, retornando quando as etapas terminarem. A extensão, contexto e prioridade de chamada são armazenados em MACRO_EXTEN, MACRO_CONTEXT e MACRO_PRIORITY respectivamente. Os argumentos tornam-se ARG1, ARG2, etc. no contexto da macro. Se você usar Goto para sair do contexto da Macro, a Macro será encerrada e o controle será retornado ao local do Goto. Se MACRO_OFFSET estiver definido no término, a Macro tentará continuar na prioridade MACRO_OFFSET + N + 1, se esse passo existir, ou N + 1 caso contrário. Aviso: Devido à forma como Macro é implementado (executa as prioridades contidas nele via submecanismo) e devido à alocação fixa de memória de pilha por thread, as macros são limitadas a 7 níveis de aninhamento (macro chamando macro chamando macro, etc.); É possível que aplicações intensivas em pilha em macros aninhadas profundamente possam causar falhas no Asterisk antes desse limite. É aconselhável que, se você precise aninhar chamadas de macro profundamente, utilize a aplicação Gosub (agora permite argumentos como uma Macro) com chamadas Return() explícitas. Aviso: O uso da aplicação 'WaitExten' dentro de uma macro não funcionará como esperado. Por favor, utilize a aplicação 'Read' para ler DTMF de um canal que esteja executando uma macro. Macro(name,arg1,[arg2[,...]]) name - O nome da macro args arg1 obrigatório arg2[,arg2...]
Sintaxe:
Macro(name,arg1,[arg2[,...]])
Veja Também:
Fonte: Asterisk Wiki