Funções do Dialplan do Asterisk 18
Comando:
EVAL_EXTEN()
Sinopse:
Avalia o conteúdo de uma extensão do dialplan e retorna como uma string.
Descrição:A função
EVAL_EXTEN() procura uma entrada no dialplan por contexto, extensão e prioridade. Ela avalia o conteúdo de uma instrução
Return para resolver quaisquer referências de variáveis ou funções, e retorna o resultado como uma string.
Você pode usar esta função para criar tabelas de consulta ou funções definidas pelo usuário simples.
Exemplo: Funções de dialplan personalizadas
[call-types]
exten => _1NNN,1,Return(internal)
exten => _NXXNXXXXXX,1,Return(external)
[udf]
exten => calleridlen,1,Return(${LEN(${CALLERID(num)})})
[default]
exten => _X!,1,Verbose(Call type ${EVAL_EXTEN(call-types,${EXTEN},1)} - ${EVAL_EXTEN(udf,calleridlen,1)})Exemplo: Escolhendo qual prompt usar
same => n,Read(input,${EVAL_EXTEN(prompts,${CALLERID(num)},1)})[prompts]
exten => _X!,1,Return(default)
exten => _20X,1,Return(welcome)
exten => _2XX,1,Return(${DB(promptsettings/${EXTEN})})
exten => _3XX,1,Return(${ODBC_MYFUNC(${EXTEN})})
Uma limitação desta função é que a aplicação na extensão especificada não é realmente executada, e assim, diferente de um
Gosub, você não pode passar argumentos na função
EVAL_EXTEN().
EVAL_EXTEN(context,extensions,priority)context extensions priority Sintaxe:
[call-types]
exten => _1NNN,1,Return(internal)
exten => _NXXNXXXXXX,1,Return(external)
[udf]
exten => calleridlen,1,Return(${LEN(${CALLERID(num)})})
[default]
exten => _X!,1,Verbose(Call type ${EVAL_EXTEN(call-types,${EXTEN},1)} - ${EVAL_EXTEN(udf,calleridlen,1)})
same => n,Read(input,${EVAL_EXTEN(prompts,${CALLERID(num)},1)})
[prompts]
exten => _X!,1,Return(default)
exten => _20X,1,Return(welcome)
exten => _2XX,1,Return(${DB(promptsettings/${EXTEN})})
exten => _3XX,1,Return(${ODBC_MYFUNC(${EXTEN})})
EVAL_EXTEN(context,extensions,priority)
Fonte: Asterisk Wiki