[asterisk-users] need examples of asterisk and mysql integration
Steve Edwards
asterisk.org at sedwards.com
Wed Apr 23 18:29:59 CDT 2008
On Wed, 23 Apr 2008, Al Baker wrote:
> The BASIC QUESTION I was trying to ask is this...
> "Since the MYSQL add-on provides a way to interface with MySQL
> what is it that one gains or is trying to gain by writing their OWN
> AGI script to do the interface ?"
I like doing "serious work" in an AGI instead of the dialplan because:
1) It allows me to use a compiled language. Not just for performance
reasons, but because a compiler (or a strict interpreter) helps me protect
me from me. My production dialplan is just over 600 lines. The sources to
my AGIs are a bit more than 15,000 lines. I like that if I "fat-finger" a
variable, the compiler will help me. If I "fat-finger" something in 16,000
lines of dialplan will I ever find it?
2) It allows me to hide complexity. I like having a single statement in my
dialplan that says "agi(block-ani)." I know that in this single statement
I am invoking code that acts as the gatekeeper to my system, allowing me
to block callers by area code, area code and prefix, and the complete
subscriber number. I know it works well and I don't have to look at it any
more.
3) I can "share" better. It is easier to integrate a single statement into
an existing dialplan than 2,000 statements with potential conflicts in
context, template, and variable names.
4) I don't have to learn (what appears to me to be) a really obtuse
syntax. Funky quoting and whitespace rules lead to accelerated hair loss.
5) I have a "full" toolbox. For instance, one of my AGIs (play-path) lets
me pass a path and it returns the name of a WAV file in that path at
random. Calling ftw() was a simple solution. Another AGI (auth-card) lets
me submit an authorization request to my credit card processor. While
waiting for the card response, I play "Please wait while we validate your
card" in another thread in the same AGI. By the time the "STREAM FILE" is
finished, I have the response so to the customer it appears
"instantaneous." How would I do either of these in "dialplan?"
Thanks in advance,
------------------------------------------------------------------------
Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST
Newline Fax: +1-760-731-3000
More information about the asterisk-users
mailing list