Só complementando a resposta do amigo Rodrigo.

O Comando SIPAddHeader vai adicionar um cabeçalho SIP, porém no channel atual, e o Dial, criará outro channel, o qual não irá ter o cabeçalho que você adicionou:

Se quiser que o cabeçalho SIP customizado esteja disponivel e seja enviado para a Ponta B que o Dial está chamando, você terá que executar uma Macro utilizando o canal novo que será criado pelo comando Dial.

Algo do Tipo:

[header]
exten => cid,1,SIPAddHeader(X-My-Header=MYCUSTOMHEADER)
same=>n,Return(1)

[meudial]
exten => _X.,Dial(SIP/X.X.X.X/${EXTEN},,b(header^cid^1))

Porém, UDP tem suas limitações, e tentar incomporar JSON a SIP Message, imagino que não consiga ter uma ambiente de fácil manutenção. Uma ideia seria utilizar Kamailio ou OpenSIPs o que te da mais ferramentas para gerenciar o SIP Message.

Ou você pode utilizar seu próprio esquema utilizando um sistema de mensagens TCP como o ZeroMQ ou o GearmanD.

Atenciosamente / Best regards / Saludos,


P Antes de imprimir pense em sua responsabilidade e compromisso com o Meio Ambiente!



------ Mensagem original ------
De: "Rafael dos Santos Saraiva" <rafaels...@gmail.com>
Para: "asteriskbrasil@listas.asteriskbrasil.org" <asteriskbrasil@listas.asteriskbrasil.org>
Enviado(s): 12/06/2015 14:53:42
Assunto: Re: [AsteriskBrasil] RES: Banco de dados interno no Asterisk e variáveis em SIP HEADERS

Rodrigo

Segue um exemplo de manipulação do SIP HEADER:

Servidor 1:
exten => _X.,1,Answer()
same  => n,SIPAddHeader(Custom-variable: "valor da minha variavel)
same  => n,Dial(SIP/10.68.2.43/${EXTEN},30,tT)
same  => n,HangUp
Servidor 2:
exten => _X.,1,Answer()
exten => _X.,n,NoOp(${SIP_HEADER(Custom-variable)})
exten => _X.,n,goto(ura,s,1)
exten => _X.,n,HangUp

Você enviar quaisquer valores que possam ser definidos numa variável.

Neste sites você encontra maiores informações:
http://www.voip-info.org/wiki/view/Asterisk+cmd+SipAddHeader
https://wiki.asterisk.org/wiki/display/AST/Home

O Jabber trabalha com o protocolo XMPP, de mensagens instantâneas.



Rafael S. SaraivaPorto Alegre - RS | Mobile:  (51) 8174-7956

Em 12 de junho de 2015 10:19, Rodrigo Pimenta Carvalho <pime...@inatel.br> escreveu:

Prezado Rafael dos Santos Saraiva.
Bom dia.


Muito obrigado por sua resposta. Um ponto que você citou é muito interessante para o meu trabalho atual e eu gostaria de lhe fazer mais algumas perguntas, por favor.

O envio de variáveis e valores, como preciso fazer, não necessariamente tem que ser pelo body filed de uma mensagem. Pode ser no SIP HEADER como você mesmo citou. Nesse caso, pergunto:

a) Esse envio de variáveis no SIP HEADER funciona em qual tipo de mensagem SIP? SIP INVITE? SIP INFO? SIP CANCEL, ou outra?

b) Você quis dizer que com o dialplan eu poderei escrever as variáveis e seus valores no SIP HEADER? Ou melhor, o próprio Asterisk pode fazer isso por mim, se eu programar o dialplan corretamente?

c) Com o uso de novas variáveis proprietárias no SIP HEADER, o Asterisk ainda continua funcionando sem problemas, ou devo mudar alguma configuração nele, para que ele aceite variáveis novas nos SIP HEADERS das mensagens SIP?

d) Você pode me indicar por favor uma web page sobre Asterisk, que mostre como manipular variáveis dos SIP HEADERS, via dialplan?

      e) O que é o Jabber.

Muito o brigado pela ajuda!

Abraços.

RODRIGO PIMENTA CARVALHO
Inatel Competence Center
Software
Ph: +55 35 3471 9200 RAMAL 979

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Boa Noite Rodrigo

Vou tentar ajudar na medida dos meus conhecimentos:

1) O Asterisk possui um banco de dados interno (AstDB). Costumo utilizar
este BD para informações temporárias do próprio Asterisk, por exemplo,
destino de desvio de chamadas e implementações de facilidades em ramais. Se você pretende guardar outras informações que não serão utilizadas somente pelo Asterisk, recomendo utilizar um outro banco, MySQL por exemplo. Caso o
Asterisk necessite acessar esse banco, conecte via ODBC;
2) Envio de variáveis pelo SIP HEADER. Tanto o envio(definição da variável)
como o recebimento(recuperação da variável) são realizadas através do
dialplan.
3 e 4) Não tenho nada em mente.
5) Provavelmente vai gerar problema. Quem sabe usando Jabber (vai ser um
canal independente do canal SIP estabelecido)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Olá Pessoal.

Boa noite.

Após 8 anos sem trabalhar com o Asterisk, entrei num projeto no qual usarei Asterisk novamente, softphone, etc. Tenho algumas dúvidas iniciais:

1) Na máquina onde o Asterisk ficará instalado, eu terei que manter um banco de dados. Tal banco, manterá informações simples de câmeras IP na mesma rede, por exemplo a porta e o endereço IP de cada uma. O Asterisk contem algum banco de dados interno e que eu consiga utilizá-lo? Em caso positivo, onde eu poderei acessar material sobre esse assunto?

2) Estou pretendendo criar um protocolo proprietário, baseado em Json, para ser incluído em mensagens SIP. Ou seja, quero enviar algumas mensagens SIP ao Asterisk, mas com o body field contendo tuplas <atributo,valor> em Json. A minha idéia é receber tais tuplas no SIP server ( Asterisk) e utilizar os valores respectivos como parâmetros em queries SQL a consultarem o tal banco de dados que ainda tenho que providenciar/acessar. Ou seja, em mensagens SIP quero enviar valores que servirão para montar consultas SQL que serão executadas na mesma máquina onde estará o Asterisk. Como seria a forma de receber tais mensagens SIP no Asterisk, extrair os valores e executar queries num banco de dados? Ou seja, a solução envolve dial plan? A partir do Dial Plan eu poderia obter os valores vindos no body field de uma mensagem SIP e em seguida executar queries num banco de dados? Ou será necessário alterar o código fonte do Asterisk? :-&

3) Como usar o Asterisk para que ele inclua o texto que eu quiser no body field de uma mensagem SIP que vai de resposta a um SIP terminal client? Ou seja, após obter dados do banco de dados, eu precisarei colocar tais valores numa mensagem SIP que seguirá como resposta ao SIP client que solicitou as informações.

4) Que tipo de mensagem SIP eu poderia usar para enviar meus dados proprietários no body field da mesma? Poderia ser uma SIP INFO?

5) Caso eu implemente essa ideia, o Asterisk não irá recusar as mensagens SIP com valores desconhecidos no body field da mensagem e simplesmente irá ignorar isso, não é mesmo? Mesmo assim ainda há uma forma de fazer o Asterisk obter estes dados da mensagem, como preciso?



Qualquer dica será de grande ajuda!!

Muito obrigado!


RODRIGO PIMENTA CARVALHO
_______________________________________________
WORKOFFEE KHOMP: em Junho serão 2 edições do workshop
gratuito da Khomp:  dia 11 em Brasília, e dia 18 em Curitiba
Aproveite e conheça os lançamentos: EBS Server PRO e UMG 100
Garanta sua vaga e saiba mais em: www.workoffee.com.br
_______________________________________________
DIGIVOICE: Fabricante pioneiro em Banco de Canais e Placas E1, GSM, FXO e FXS para Asterisk e Elastix. Temos Cursos de Telefonia IP e Asterisk. Construa soluções de PABX IP com produtos DigiVoice - visite www.digivoice.com.br
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscr...@listas.asteriskbrasil.org
_______________________________________________
WORKOFFEE KHOMP: em Junho serão 2 edições do workshop
gratuito da Khomp:  dia 11 em Brasília, e dia 18 em Curitiba
Aproveite e conheça os lançamentos: EBS Server PRO e UMG 100
Garanta sua vaga e saiba mais em: www.workoffee.com.br
_______________________________________________
DIGIVOICE: Fabricante pioneiro em Banco de Canais e Placas E1, GSM, FXO e FXS 
para Asterisk e Elastix. Temos Cursos de Telefonia IP e Asterisk.
Construa soluções de PABX IP com produtos DigiVoice - visite  
www.digivoice.com.br
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para 
asteriskbrasil-unsubscr...@listas.asteriskbrasil.org

Responder a