[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