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

2015-07-07 Por tôpico Rafael dos Santos Saraiva
Rodrigo

Para acessar/ definir os valor no banco interno do Asterisk você deve
utilizar as seguintes funções no plano de discagem:

DB
DB_DELETE
DB_EXISTS
DB_KEYS




[image: Sua Foto] rafaels...@gmail.comRafael S. SaraivaPorto Alegre - RS
| Mobile:  (51) 8174-7956
http://br.linkedin.com/pub/rafael-saraiva/52/aab/230
https://plus.google.com/u/0/+RafaelSaraivaRS

Em 7 de julho de 2015 14:11, Rodrigo Pimenta Carvalho pime...@inatel.br
escreveu:

 Olá pessoal.

 Para arquivar dados simples, via Asterisk e dial plan, a melhor opção é
 usar o banco de dados embarcado.
 Como não vou precisar de um banco de dados relacional ou fazer queries
 complicadas, não vou usar um banco como o MySQL ou outro. SQLite com uma
 tabela simples será suficiente. Assim acho que vou evitar o uso do AGI.

 Antigamente havia um banco embarcado no Asterisk, até a versão 1.8, que me
 esqueci o nome agora. Mas, mais recentemente, eu acho que ela foi
 substituída pelo SQLite, segundo pesquisas que fiz agora na Internet e em
 outra lista.
 Nesse caso, o meu próximo passo será investigar como usar o Diaplan para
 acessar esse banco embarcado. Provavelmente os comandos devem ser os mesmo
 que firam criados antes da versão 1.8 do Asterisk.

 Na wiki do Asterisk tem explicação sobre isso. Vou continuar nesse ponto
 então.

 Muito obrigado pelas ajudas enviadas a mim nessa lista.

 Atenciosamente,



 RODRIGO PIMENTA CARVALHO
 Inatel Competence Center
 Software
 Ph: +55 35 3471 9200 RAMAL 949 (Brasil)
 ___
 WORKOFFEE PORTO ALEGRE da Khomp acontecerá no dia 7/07,
 no Hotel Quality. Faça já sua inscrição em workoffee.com.br
 e  venha conhecer os lançamentos do portfólio da Khomp em
 primeira mão. Inscrições GRATUITAS.
 ___
 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 PORTO ALEGRE da Khomp acontecerá no dia 7/07,
no Hotel Quality. Faça já sua inscrição em workoffee.com.br
e  venha conhecer os lançamentos do portfólio da Khomp em
primeira mão. Inscrições GRATUITAS.
___
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

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

2015-07-07 Por tôpico Daniel Zanutti
Ola Rodrigo

O Asterisk a partir da versão 1.10 utiliza o Sqlite para o banco de dados
interno, mas não sei como acessar a partir do Dialplan. Eu tenho um 1.8
rodando, olha as applications dele no final do e-mail.

Acho que voce tem 3 caminhos a escolher:
1) Achar uma forma de gravar direto pelo dialplan (Se existir)
2) Desenvolver um módulo em C para o Asterisk, com as funções que voce
precisa. (Demorado, complexo)
3) Usa AGI

Antes de investir no banco, descobre como fazer isso. Se não já muda logo a
estratégia.

Abraço
--


Connected to Asterisk 1.8.31.0 currently running on pbx (pid = 9033)
pbx*CLI core show applications
-= Registered Asterisk Applications =-
AddQueueMember: Dynamically adds queue members.
  ADSIProg: Load Asterisk ADSI Scripts into phone
AELSub: Launch subroutine built with AEL
AgentLogin: Call agent login.
  AgentMonitorOutgoing: Record agent's outgoing call.
   AGI: Executes an AGI compliant application.
 AlarmReceiver: Provide support for receiving alarm reports from a
burglar or fire alarm panel.
   AMD: Attempt to detect answering machines.
Answer: Answer a channel if ringing.
  Authenticate: Authenticate a user
BackGround: Play an audio file while waiting for digits of an
extension to go to.
  BackgroundDetect: Background a file with talk detect.
Bridge: Bridge two channels.
  Busy: Indicate the Busy condition.
  CallCompletionCancel: Cancel call completion service
  CallCompletionRequest: Request call completion service for previous call
   CELGenUserEvent: Generates a CEL User Defined Event.
 ChangeMonitor: Change monitoring filename of a channel.
   ChanIsAvail: Check channel availability
   ChannelRedirect: Redirects given channel to a dialplan target
   ChanSpy: Listen to a channel, and optionally whisper into it.
 ClearHash: Clear the keys from a specified hashname.
ConfBridge: Conference bridge application.
Congestion: Indicate the Congestion condition.
 ContinueWhile: Restart a While loop.
   ControlPlayback: Play a file with fast forward and rewind.
DAHDIBarge: Barge in (monitor) DAHDI channel.
  DAHDIRAS: Executes DAHDI ISDN RAS application.
 DAHDIScan: Scan DAHDI channels to monitor calls.
  DAHDISendCallreroutingFacility: Send an ISDN call rerouting/deflection
facility message.
  DAHDISendKeypadFacility: Send digits out of band over a PRI.
  DateTime: Says a specified time in a custom format.
 DBdel: Delete a key from the asterisk database.
 DBdeltree: Delete a family or keytree from the asterisk
database.
   DeadAGI: Executes AGI on a hungup channel.
  Dial: Attempt to connect to another device or endpoint
and bridge the call.
   Dictate: Virtual Dictation Machine.
 Directory: Provide directory of voicemail extensions.
  DISA: Direct Inward System Access.
  DumpChan: Dump Info About The Calling Channel.
  EAGI: Executes an EAGI compliant application.
  Echo: Echo media, DTMF back to the calling party
  EndWhile: End a while loop.
  Exec: Executes dialplan application.
ExecIf: Executes dialplan application, conditionally.
ExecIfTime: Conditional application execution based on the
current time.
 ExitWhile: End a While loop.
  ExtenSpy: Listen to a channel, and optionally whisper into it.
   ExternalIVR: Interfaces with an external IVR application.
  Festival: Say text to the user.
 Flash: Flashes a DAHDI Trunk.
  FollowMe: Find-Me/Follow-Me application.
   ForkCDR: Forks the Call Data Record.
  GetCPEID: Get ADSI CPE ID.
 Gosub: Jump to label, saving return address.
   GosubIf: Conditionally jump to label, saving return address.
  Goto: Jump to a particular priority, extension, or
context.
GotoIf: Conditional goto.
GotoIfTime: Conditional Goto based on the current time.
Hangup: Hang up the calling channel.
 IAX2Provision: Provision a calling IAXy with a given template.
  ICES: Encode and stream using 'ices'.
 ImportVar: Import a variable from a channel into a new
variable.
Incomplete: Returns AST_PBX_INCOMPLETE value.
   Log: Send arbitrary text to a selected log level.
 Macro: Macro Implementation.
MacroExclusive: Exclusive Macro Implementation.
 MacroExit: Exit from Macro.
   MacroIf: Conditional Macro implementation.
 MailboxExists: Check to see if Voicemail mailbox exists.
  

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

2015-07-07 Por tôpico Rodrigo Pimenta Carvalho
Olá pessoal.

Para arquivar dados simples, via Asterisk e dial plan, a melhor opção é usar o 
banco de dados embarcado.
Como não vou precisar de um banco de dados relacional ou fazer queries 
complicadas, não vou usar um banco como o MySQL ou outro. SQLite com uma tabela 
simples será suficiente. Assim acho que vou evitar o uso do AGI.

Antigamente havia um banco embarcado no Asterisk, até a versão 1.8, que me 
esqueci o nome agora. Mas, mais recentemente, eu acho que ela foi substituída 
pelo SQLite, segundo pesquisas que fiz agora na Internet e em outra lista.
Nesse caso, o meu próximo passo será investigar como usar o Diaplan para 
acessar esse banco embarcado. Provavelmente os comandos devem ser os mesmo que 
firam criados antes da versão 1.8 do Asterisk.

Na wiki do Asterisk tem explicação sobre isso. Vou continuar nesse ponto então.

Muito obrigado pelas ajudas enviadas a mim nessa lista.

Atenciosamente,



RODRIGO PIMENTA CARVALHO
Inatel Competence Center
Software
Ph: +55 35 3471 9200 RAMAL 949 (Brasil)
___
WORKOFFEE PORTO ALEGRE da Khomp acontecerá no dia 7/07,
no Hotel Quality. Faça já sua inscrição em workoffee.com.br
e  venha conhecer os lançamentos do portfólio da Khomp em
primeira mão. Inscrições GRATUITAS.
___
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


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

2015-07-07 Por tôpico Rodrigo Pimenta Carvalho

Olá Daniel.

Além do AGI, atualmente podemos usar a interface REST do Asterisk (ARI).
Mas, ainda vou tentar usar o banco de dados embarcado no Asterisk.
Para tal, o site http://www.voip-info.org/wiki/view/Asterisk+func+db tem os 
exemplos de comandos par isso, direto do dial plan. Vamos ver se dá certo...

Obrigado pela atenção.

Abs.

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

Ola Rodrigo

O Asterisk a partir da versão 1.10 utiliza o Sqlite para o banco de dados
interno, mas não sei como acessar a partir do Dialplan. Eu tenho um 1.8
rodando, olha as applications dele no final do e-mail.

Acho que voce tem 3 caminhos a escolher:
1) Achar uma forma de gravar direto pelo dialplan (Se existir)
2) Desenvolver um módulo em C para o Asterisk, com as funções que voce
precisa. (Demorado, complexo)
3) Usa AGI

Antes de investir no banco, descobre como fazer isso. Se não já muda logo a
estratégia.

Abraço
--
___
WORKOFFEE PORTO ALEGRE da Khomp acontecerá no dia 7/07,
no Hotel Quality. Faça já sua inscrição em workoffee.com.br
e  venha conhecer os lançamentos do portfólio da Khomp em
primeira mão. Inscrições GRATUITAS.
___
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


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

2015-07-07 Por tôpico Rodrigo Pimenta Carvalho
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@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