Funções do Dialplan do Asterisk 18
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 acessar informações retornadas pelo servidor SIP em uma chamada de saída, como identificadores de chamada ou informações de roteamento.
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