[asterisk-users] Realtime database function help
Forrest Beck
jonforrest.beck at gmail.com
Wed Feb 25 18:07:52 CST 2009
You can use the MYSQL function to just use an insert or update statement in
your dialplan. Look at my example below. Instead of using
exten => s,2,MYSQL(Query resultid ${connid} SELECT\ callerid\ from\
blacklist\ where\ callerid=${ARG1} and blockenabled = 1)
You could use:
exten => s,2,MYSQL(Query resultid ${connid} INSERT INTO\ callerid\
(callerid,blockenabled)\ VALUES\ ('${CALLERID(num)}', '1')\ )
I find that using the ODBC function works best for inserting data into the
MySQL databases.
Have a look at
http://www.voip-info.org/wiki/index.php?page=Asterisk+func+func_odbc.
[globals]
realdb_host=hostnameformysqldb
realdb_user=mysqldbuser
realdb_pass=mysqldbpassword
realdb_db=mysqldbthatcontainsthevoicemailusers
[macro-checkblacklist]
; This Macro will check the blacklist table to see if the callerid of the
; caller exist and blockenabled =1 (TRUE). If the callerid is listed, then
; tell the caller they have been blacklisted and politely HangUp()
;
; ${ARG1} = CallerID of incoming call
;
exten => s,1,MYSQL(Connect connid ${realdb_host} ${realdb_user}
${realdb_pass} ${realdb_db})
exten => s,2,MYSQL(Query resultid ${connid} SELECT\ callerid\ from\
blacklist\ where\ callerid=${ARG1} and blockenabled = 1)
exten => s,3,MYSQL(Fetch fetchid ${resultid} blacklistid)
exten => s,4,MYSQL(Clear ${resultid})
exten => s,5,MYSQL(Disconnect ${connid})
exten => s,6,GoToIf($[”${blacklistid}” = “”]?7:fail,1)
exten => s,7,NoOp(${blacklistid})
; If the callerid is listed in the database, then send to blacklistednumber
; context
;
exten => fail,1,NoOp(${blacklistid})
exten => fail,2,GoTo(blacklistednumber,s,1)
[blacklistednumber]
; This is where a call will land if the macro-checkblacklist decides that
; the number should not be allowed to dial the company.
exten => s,1,Wait(2)
exten => s,2,Playback(privacy-you-are-blacklisted)
exten => s,3,Zapateller()
exten => s,4,HangUp()
On Wed, Feb 25, 2009 at 3:40 PM, Elliot Murdock <murdocke at gmail.com> wrote:
> Hello Everyone!
>
> According to voip-info.org the correcy syntax for the realtime function
> is:
>
> REALTIME(family|fieldmatch[|value[|delim1[|delim2]]]) on read
> REALTIME(family|fieldmatch|value|field) on write
>
> It seems from the syntax that it is only possible to retrieve a full
> row according to the value of only of column. This translates in SQL
> language as Select * from family where fieldmath = value.
>
> Is there any way to have more control over the realtime function?
>
> Also, regarding the MYSQL function, I only saw documentation to query
> a database. Is there any way to update a database using that
> function?
>
> Thanks!
> Elliot
>
> _______________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-users
>
--
***
Forrest Beck
IAXTEL: 17002871718
jonforrest.beck at gmail.com
http://www.shift8.biz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20090225/f6e295fe/attachment.htm
More information about the asterisk-users
mailing list