[AsteriskBrasil] RES: Qual opção correta: SQLite, MySQL ou o builtin database?

Rodrigo Pimenta Carvalho pimenta em inatel.br
Terça Julho 7 11:56:56 BRT 2015


Prezado Daniel Zanutti.

Bom dia.

Muito obrigado por sua atenção.

Estou num projeto com uma equipe de desenvolvedores onde cada um tem um papel específico e o meu no momento é de apenas investigar quais soluções iremos/poderemos adotar.
Por exemplo, já decidimos que não iremos usar AGI dessa vez, porque nosso sistema, com Asterisk, será embarcado num hardware com limitação de recursos. Mas, nada nos impede de voltar nesse assunto e analisar o custo-benefício de usar AGI.

Inicialmente estive planejando acessar o banco de dados diretamente do dial plan. Nessa visão, estou pesquisando sobre as possibilidades.
Se ficarmos mesmo com a solução sem AGI, é possível acessar SQLite via o dial plan também, mas usar uma tabela proprietária? Ou seja, no meu caso não estou interessado em salvar dados de CDR.

Eu também gosto da  abordagem de problema-solução e nossa equipe tem a lista de problemas/riscos a serem eliminados. Para tal, inicialmente investigarei as possibilidades em teoria. Depois testarei meus entendimentos através de protótipos. Aí sim poderei fazer perguntas mais específicas aqui nessa lista. Mas, até agora sou iniciante nesse assunto e então estou procurando os caminhos a seguir. Estou tentando ter uma ideia geral e inicial sobre as capacidades que o Asterisk pode nos oferecer. O meu primeiro passo foi ler a Wiki oficial do Asterisk.

Não quero dar passos largos. Apenas curtos. Então vou continuar nessa investigação de uso de banco de dados. O próximo passo será usar um softphone proprietário nosso, feito em C, a partir do PJSIP. Como softphone faremos uma ligação ao Asteriski, que deverá salvar dado no banco de dados, via dial plan. Ou seja, a requisição de salvar dados chegará ao Asterisk via mensagem SIP.

Daniel, por favor, faça suas críticas sobre meus comentários. Qualquer dica ou crítica será de grade valor.

P.S.: não estou conseguindo receber as respostas dessa lista no meu inbox. Estou conseguindo apenas criar novos posts. Para ver as respostas, estou acessando a página http://asteriskbrasil.org/pipermail/asteriskbrasil/2015-July .
         Ainda não descobri o motivo disso, mas já pedi o pessoal do suporte na minha empresa investigar.

Muito obrigado.

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

Ola Rodrigo

Posso estar errado, mas me parece que voce esta dando um passo muito largo.
Voce já definiu a linguagem de programação que utilizará na sua aplicação
de backend?

Em teoria qualquer banco de dados pode ser acesso no Asterisk utilizando
AGI, pois este suporta algumas nativamente e outras através de ODBC.

Pelo que entendi voce está só estudando e eu acho esta uma abordagem mais
difícil. Eu prefiro a abordagem de problema-solução, encontre os problemas
que voce precisa resolver, enumere eles e verifique se o banco de dados
consegue resolver todos eles. Se não consegue, posta aqui um caso e te
ajudamos.

No geral é pesar custo x benefício de cada solução.

Abraço

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
________________________________________
De: Rodrigo Pimenta Carvalho
Enviado: terça-feira, 7 de julho de 2015 9:55
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: Qual opção correta: SQLite, MySQL ou o builtin database?

Olá Pessoal.

Bom dia.

Estive pesquisando sobre como usar banco de dados acoplado ao Asterisk. Estudei a wiki do Asterisk, o site Voip-Info.org e vi 1 video no youtube sobre o assunto.

Nos temos um builtin database no Asterisk, o qual pode ser usado para armazenar dados e recuperá-los. Os comandos  são:

DB_DELETE,  DB e DB_EXISTS. Nesse banco podemos registrar informações no estilo do Windows Register.

Além disso, podemos também fazer uso do MySQL, usando o comando DBQuery, que permite executar queries no database e obter o resultado.
Por último, existe a possibilidade de usar o SQLite, por exemplo para arquivar dados de CDR.

No meu caso, eu preciso arquivar dados no banco de dados, que não de CDR, mas de atributos de elementos na minha rede. Ex: IP de uma câmera de video, porta, etc. Isso será necessário, porque aplicações a serem feitas para smartphones, no meu projeto, precisarão obter essas informações via mensagens SIP. Ou seja, preciso criar uma solução onde o meu Dialplan irá executar queries num banco de dados e colocar as informações obtidas em cabeçalhos de mensagens SIP a serem retornadas para as aplicações nos smartphones.

Nesse caso, tenho as seguintes dúvidas:

   Para arquivar informações simples, como atributos e valores, qual seria a melhor/correta opção de banco de dados a usar, pensando em facilidade de configuração e programação?

   No asterisk, é possível usar um desses bancos de dados para arquivar informação que não exatamente relacionada com uma call, como eu quero fazer?


Caso alguém já tenha usado um desses bancos, por favor, comente sobre facilidade de uso do mesmo. Com as percepções obtidas aqui, eu poderei decidir melhor sobre qual das 3 opções eu continuarei aprofundando meus estudos.
Ainda não sei qual a opção mais adequada, já que ainda não trabalhei com banco de dados e Asterisk.

Muito obrigado por qualquer dica!

Abs.





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


Mais detalhes sobre a lista de discussão AsteriskBrasil