Funções do Dialplan do Asterisk 20
Comando:
PJSIP_RESPONSE_HEADER()
Sinopse:
Obtém os cabeçalhos da resposta 200 de um canal PJSIP de saída.
Descrição:A função
PJSIP_RESPONSE_HEADER permite ler cabeçalhos SIP específicos da resposta 200 de um canal PJSIP de saída. Isso é útil para inspecionar informações retornadas pelo servidor SIP em uma chamada de saída.
Exemplos:
exten => 1,1,Set(somevar=${PJSIP_RESPONSE_HEADER(read,From)})Define a variável 'somevar' com o valor do cabeçalho 'From'.
exten => 1,1,Set(via2=${PJSIP_RESPONSE_HEADER(read,Via,2)})Define a variável 'via2' com o valor do segundo cabeçalho 'Via'.
exten => 1,1,Set(xhdr=${PJSIP_RESPONSE_HEADER(read,X-*,1)})Define a variável 'xhdr' com o valor do primeiro cabeçalho que começa com 'X-'.
Observação: Se você chamar
PJSIP_RESPONSE_HEADER em um contexto de dialplan normal, estará operando no canal do chamador (entrada), o que pode não ser o desejado. Para operar no canal do chamado (saída), chame
PJSIP_RESPONSE_HEADER em um manipulador de pré-conexão.
Exemplo de uso em um 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])action: read - Retorna o número da instância do cabeçalho de resposta com o nome especificado.name: O nome do cabeçalho de resposta. Um '*' pode ser anexado ao nome para iterar sobre todos os cabeçalhos de resposta que começam com o nome.number: Se houver mais de um cabeçalho com o mesmo nome, isso especifica qual cabeçalho ler. Se não for especificado, o 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