Funções do Dialplan do Asterisk 23
Comando:
PJSIP_RESPONSE_HEADER()
Sinopse:
Obtém cabeçalhos da resposta 200 de um canal PJSIP de saída.
Descrição:A função PJSIP_RESPONSE_HEADER permite que você leia cabeçalhos SIP específicos da resposta 200 proveniente do canal PJSIP de saída.
Exemplos:
- Exemplo: Define 'somevar' com o valor do cabeçalho 'From'
exten => 1,1,Set(somevar=${PJSIP_RESPONSE_HEADER(read,From)}) - Exemplo: Define 'via2' com o valor do 2º cabeçalho 'Via'
exten => 1,1,Set(via2=${PJSIP_RESPONSE_HEADER(read,Via,2)}) - Exemplo: Define 'xhdr' com o valor do 1º cabeçalho X-*
exten => 1,1,Set(xhdr=${PJSIP_RESPONSE_HEADER(read,X-*,1)})
Observação: Se você chamar PJSIP_RESPONSE_HEADER em um contexto normal de dialplan, estará operando no canal do originador (entrada), o que pode não ser o desejado. Para operar no canal do destinatário (saída), chame PJSIP_RESPONSE_HEADER em um manipulador de pré-conexão.
Exemplo: Uso no manipulador de pré-conexão
[handler]
exten => readheader,1,NoOp(PJSIP_RESPONSE_HEADER(read,X-MyHeader))
[somecontext]
exten => 1,1,Dial(PJSIP/${EXTEN},,U(handler^readheader^1))
Sintaxe:
PJSIP_RESPONSE_HEADER(action,name[,number])
Parâmetros:
- action - read - Retorna o número de instância do cabeçalho de resposta.
- name - O nome do cabeçalho de resposta. Um '*' pode ser adicionado ao nome para iterar sobre todos os cabeçalhos de resposta que começam com name.
- number - Se houver mais de um cabeçalho com o mesmo nome, este parâmetro especifica qual cabeçalho ler. Se não for especificado, assume o valor padrão '1', significando o primeiro cabeçalho correspondente.
Sintaxe:
exten => 1,1,Set(somevar=${PJSIP_RESPONSE_HEADER(read,From)})
exten => 1,1,Set(via2=${PJSIP_RESPONSE_HEADER(read,Via,2)})
exten => 1,1,Set(xhdr=${PJSIP_RESPONSE_HEADER(read,X-*,1)})
[handler]
exten => readheader,1,NoOp(PJSIP_RESPONSE_HEADER(read,X-MyHeader))
[somecontext]
exten => 1,1,Dial(PJSIP/${EXTEN},,U(handler^readheader^1))
PJSIP_RESPONSE_HEADER(action,name[,number])
Fonte: Asterisk Wiki