[A*UG] Astricon
Wayne Walker
wwalker at bybent.com
Sat Sep 29 13:10:50 CDT 2007
On Sat, Sep 29, 2007 at 02:23:04AM -0500, Gil Kloepfer wrote:
>
> > I've never had a lot of faith in AGI.
>
> AGI is a somewhat ugly interface, but if you can get past that it's
> amazingly stable and I've never had any problems with it.
>
> To continue the dialplan discussion as it applies here: Most of the
> individual extension configuration (except for SIP subscriptions)
> for the installation I've built is in MySQL, and I use an AGI script
> to do the MySQL queries. Why not use the Realtime interface or one
> of the C-language Asterisk modules? Well, IMO the Realtime interface
> is even more ugly, and I hate having to use ODBC. Using a compiled-in
> module can cause Asterisk to crash if a mistake was made in writing
> the module or if there's a bug or resource leak in the MySQL libraries.
> To generate voicemail.conf and sip.conf, I actually use "#exec" that
> runs a perl script that uses the database to generate most of each
> config file contents (so a "sip reload" or a "reload app_voicemail.so"
> will generate sip.conf and voicemail.conf on-the-fly based on our
> data model).
Adhearsion turns all of this into <100 lines of code to handle 100's or
1000's of extensions.
<snip>
> Asterisk has its problems. I'd like to look at alternatives, but
> with the investment (knowledge, Digium hardware) our organization
> has made in Asterisk, it would be hard to change to something else.
>
> IMO, the biggest problem with Asterisk is that it doesn't scale
> well (which goes back to the extensions.conf dialplan logic issues).
> The changes they've made in 1.4 only band-aid the underlying problems.
> I feel that most of the configuration files need to be changed to
> use relational database primitives, with SQLite being a good default
> database. Asterisk keeps per-phone data structures memory-resident,
> which is a scalability problem (this information should be kept in
> the database). It also means Asterisk is fairly self-contained,
> with clumsy interfaces like the manager interface being the only
> "clean" way for external programs to communicate with it. It would
> also probably be helpful for the dialplan language to be split
> into two components: digitmaps for Zaptel, MGCP, and similar devices,
> and a standard interface to many external languages (perl, Ruby, C,
> etc.) to implement call routing logic (what Asterisk calls a "dialplan").
> Basically it would get a number, fully formed from the digitmap (like
> what we see from a SIP phone) and perform actions based on what
> it receives (and there's no reason why one of the actions couldn't
> be "read a digit" to do IVRs, authentication, etc. tasks).
Adhearsion moves all of this into code outside of Asterisk handling most of what you desctribe above.
Additionally, adhearsion uses an abstraction layer so that anything you write will work with Asterisk or FreeSwitch :)
Finally, portable VoIP applications.
--
Wayne Walker
# Code comments are lies waiting to happen
wwalker at bybent.com Do you use Linux?!
http://www.bybent.com Get Counted! http://counter.li.org/
Perl - http://www.perl.org/ Perl User Groups - http://www.pm.org/
Jabber: wwalker at jabber.gnumber.com AIM: lwwalkerbybent
IRC: wwalker on freenode.net
More information about the Austin-Asterisk-Users-Group
mailing list