[AsteriskBrasil] RES: Banco de dados interno no Asterisk e variáveis em SIP HEADERS

Fernando - NextBilling IP Solutions asterisk em nextbilling.com.br
Sexta Junho 12 17:38:20 BRT 2015


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" <rafaelsnsa em gmail.com>
Para: "asteriskbrasil em listas.asteriskbrasil.org" 
<asteriskbrasil em 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 
><pimenta em 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-unsubscribe em listas.asteriskbrasil.org
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20150612/ba13978f/attachment-0001.html>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: assinatura_fernando.jpg
Tipo: image/jpeg
Tamanho: 14513 bytes
Descrição: não disponível
URL: <http://asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20150612/ba13978f/attachment-0001.jpg>


Mais detalhes sobre a lista de discussão AsteriskBrasil