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. MeetMe: MeetMe conference bridge. MeetMeAdmin: MeetMe conference administration. MeetMeChannelAdmin: MeetMe conference Administration (channel specific). MeetMeCount: MeetMe participant count. Milliwatt: Generate a Constant 1004Hz tone at 0dbm (mu-law). MinivmAccMess: Record account specific messages. MinivmDelete: Delete Mini-Voicemail voicemail messages. MinivmGreet: Play Mini-Voicemail prompts. MinivmMWI: Send Message Waiting Notification to subscriber(s) of mailbox. MinivmNotify: Notify voicemail owner about new messages. MinivmRecord: Receive Mini-Voicemail and forward via e-mail. MixMonitor: Record a call and mix the audio during the recording. Use of StopMixMonitor is required to guarantee the audio file is available for processing during dialplan execution. Monitor: Monitor a channel. Morsecode: Plays morse code. MP3Player: Play an MP3 file or M3U playlist file or stream. MSet: Set channel variable(s) or function value(s). MusicOnHold: Play Music On Hold indefinitely. NBScat: Play an NBS local stream. NoCDR: Tell Asterisk to not maintain a CDR for the current call NoOp: Do Nothing (No Operation). ODBC_Commit: Commits a currently open database transaction. ODBC_Rollback: Rollback a currently open database transaction. ODBCFinish: Clear the resultset of a sucessful multirow query. Originate: Originate a call. Page: Page series of phones Park: Park yourself. ParkAndAnnounce: Park and Announce. ParkedCall: Retrieve a parked call. PauseMonitor: Pause monitoring of a channel. PauseQueueMember: Pauses a queue member. Pickup: Directed extension call pickup. PickupChan: Pickup a ringing channel. Playback: Play a file. PlayTones: Play a tone list. PrivacyManager: Require phone number to be entered, if no CallerID sent Proceeding: Indicate proceeding. Progress: Indicate progress. Queue: Queue a call for a call queue. QueueLog: Writes to the queue_log file. RaiseException: Handle an exceptional condition. Read: Read a variable. ReadExten: Read an extension into a variable. ReadFile: Read the contents of a text file into a channel variable. ReceiveFAX: Receive a FAX and save as a TIFF/F file. Record: Record to a file. RemoveQueueMember: Dynamically removes queue members. ResetCDR: Resets the Call Data Record. RetryDial: Place a call, retrying on failure allowing an optional exit extension. Return: Return from gosub routine. Ringing: Indicate ringing tone. SayAlpha: Say Alpha. SayDigits: Say Digits. SayNumber: Say Number. SayPhonetic: Say Phonetic. SayUnixTime: Says a specified time in a custom format. SendDTMF: Sends arbitrary DTMF digits SendFAX: Sends a specified TIFF/F file as a FAX. SendImage: Sends an image file. SendText: Send a Text Message. SendURL: Send a URL. Set: Set channel variable or function value. SetAMAFlags: Set the AMA Flags. SetCallerPres: Set CallerID Presentation. SetMusicOnHold: Set default Music On Hold class. SIPAddHeader: Add a SIP header to the outbound call. SIPDtmfMode: Change the dtmfmode for a SIP call. SIPRemoveHeader: Remove SIP headers previously added with SIPAddHeader SLAStation: Shared Line Appearance Station. SLATrunk: Shared Line Appearance Trunk. SMS: Communicates with SMS service centres and SMS capable analogue phones. SoftHangup: Hangs up the requested channel. SpeechActivateGrammar: Activate a grammar. SpeechBackground: Play a sound file and wait for speech to be recognized. SpeechCreate: Create a Speech Structure. SpeechDeactivateGrammar: Deactivate a grammar. SpeechDestroy: End speech recognition. SpeechLoadGrammar: Load a grammar. SpeechProcessingSound: Change background processing sound. SpeechStart: Start recognizing voice in the audio stream. SpeechUnloadGrammar: Unload a grammar. StackPop: Remove one address from gosub stack. StartMusicOnHold: Play Music On Hold. StopMixMonitor: Stop recording a call through MixMonitor, and free the recording's file handle. StopMonitor: Stop monitoring a channel. StopMusicOnHold: Stop playing Music On Hold. StopPlayTones: Stop playing a tone list. System: Execute a system command. TestClient: Execute Interface Test Client. TestServer: Execute Interface Test Server. Transfer: Transfer caller to remote extension. TryExec: Executes dialplan application, always returning. TrySystem: Try executing a system command. UnpauseMonitor: Unpause monitoring of a channel. UnpauseQueueMember: Unpauses a queue member. UserEvent: Send an arbitrary event to the manager interface. Verbose: Send arbitrary text to verbose output. VMAuthenticate: Authenticate with Voicemail passwords. VMSayName: Play the name of a voicemail user VoiceMail: Leave a Voicemail message. VoiceMailMain: Check Voicemail messages. Wait: Waits for some time. WaitExten: Waits for an extension to be entered. WaitForNoise: Waits for a specified amount of noise. WaitForRing: Wait for Ring Application. WaitForSilence: Waits for a specified amount of silence. WaitMusicOnHold: Wait, playing Music On Hold. WaitUntil: Wait (sleep) until the current time is the given epoch. While: Start a while loop. Zapateller: Block telemarketers with SIT. -= 179 Applications Registered =- 2015-07-07 11:56 GMT-03:00 Rodrigo Pimenta Carvalho <pime...@inatel.br>: > 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 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 > _______________________________________________ > 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