[Asterisk-Dev] PyGTK Asterisk UI

Steven Sokol ssokol at sokol-associates.com
Thu Feb 26 12:01:01 MST 2004

> Hi,
> I'm working on an Asterisk UI using PyGTK and Kiwi.  I'm not sure if I
> will implement it directly on the Asterisk box on run it remotely and
> use XML-RPC or something similar.
> If anyone else is interested or has done work in this area, I'd be
> interested to hear from you.


I have been toying with the idea of a UI for Asterisk for some time.  I have
even gone to the point of mocking up an HTML UI.  The problem I see is that
there is no real, common back-end interface for the UI to hook into.

The flexibility of Asterisk is a double-edged sword.  With enough
determination and a bit of basic programming skill, you can make Asterisk do
damn near anything.  Unfortunately, that flexibility comes at the price of
ease of configuration.  And what is difficult for an intelligent user, is
even _more_ difficult for a program.

What would be nice is a framework for programmatic administration of
Asterisk, and an associated API based on that framework.  The framework
would take into consideration what tasks are common to (nearly) all Asterisk
implementations, and what could be done to automate those tasks.

The other question that comes up is, how/where do you save the
configuration?  I would _love_ to see an extension to Asterisk to overlay
(or replace?) the various .conf files with relational data entities (or even
highly structured flat-file entities like XML files).  Ideally this would
allow you to create and IAX2.conf _table_ and an extensions.conf table, etc.

The interface entity would require certain fields (matching the current
required and optional entries in the associated .conf file) but would allow
you to create additional entries that can be used to assist in programmatic
manipulation of the system.  In a perfect world the interface entity would
be generic, allowing you to us MySQL, PostgreSQL, OpenODBC, or an LDAP
directory as the underlying data source.

The database interface would, of course, be optional, leaving the ascii
.conf files as the default method of configuration.  I would think that
putting a database in place of the Channel config files (iax2, iax1, sip,
zap, etc.) would be fairly easy.  The real challenge is in the configuration
of the extensions.  I suppose it might be easiest (or most flexible) to
maintain an extensions.conf file that includes all of the feature code
(entries other than standard user extensions and standard service extensions
{i.e. trunks, VoIP providers/gateways, etc.}).  You could store all of the
"standard" extensions and services in the database and, when changes are
made, append the data-driven information to the standing text and render an

The only inflexibility here is the fact that, if you are running a phone
company off of your iax.conf file, it might be prohibitively slow/cpu
intensive to reload _every_ time a change is made.  A provisioning window
could obviate this, but it's still not the best answer.

How are IaxTel and NuFone, etc. handling this?



Steven Sokol
Sokol & Associates, LLC

Phone:  816.822.1807
IaxTel: 700.613.9004
Web:    http://www.sokol-associates.com

More information about the asterisk-dev mailing list