[Asterisk-Users] NetworkWorld article on Open Source Telephony

Holger Schurig hs4233 at mail.mn-solutions.de
Wed Jun 9 07:07:09 MST 2004


> I think one thing * is lacking at the moment is a web interface to
> manage and add users and do anything you can do via a shell interface. 
> If it had that but on a simplified level (oblessly you can have an
> advanced mode too).

There are many of them, and most of them aren't finished.

The problem is that if you manage something on a higher level, then 
usually you loose options. But when you manage things on the low-level, 
then you don't need a GUI in the first place.


That said: I think that there is a need for a simple, well-defined setup 
method where you sacrifice completeness for ease-of-use. So I searched 
for something and after I didn't found anything that did suit my needs, I 
started DESTAR. DE is from Germany's country code. DESTAR will have some 
features helpful for german users (but non-german user won't be forced to 
use them, e.g. they will be configurable). The STAR in DESTAR is from 
Asterisk, which is basically a funny looking star symbol.



Why
---
Why do I do just another GUI?

* Because I can
* Because nothing similar exists



Why not
-------
And why I didn't jump on some existing project:

* I don't know PHP, I know Perl and (preferred) Python

* I don't want to have a GUI that runs on Linux itself, e.g. in Qt or GTK
  and therefore needs file access to /etc/asterisk

* I don't want something that is just an text editor via web, e.g. where I
  can select a config file and inside the config file the section.



What I have
-----------

What I have so far are is a system where I instantiate various classes and
set data fields in them. E.g. something very simple like this:

EnumEntry(
        search = "e164.arpa"
        )

Or something like that:

SipPhone(
        name      = "hschurig",
        ext       = "15",
        host      = "192.168.233.67",
        callerid  = "Holger Schurig",
        )

Those objects store themselves into a list. They have methods to check if
their variables are all set and can create snippets for the various 
Asterisk
configuration files.

For the EnumEntry, it's quite simple:

        def _write_config(self):
                c = AstConf("enum.conf")
                c.append("search=%s", self.search)

I get a handle to an object that holds the current enum.conf file. And I
call appendValue, which appends a line to the file. For other classes, it
can be more complex. The FreeworldDialupIAXLine class writes to
extensions.conf and iax.conf.

I already use my framework to generate my Asterisk conf files. The 
generated files are working, but are crap and insecure: everything
happens in the "default"-context. Good enought to test the hardware, but 
nothing for Aunt Mary.



What I want
-----------

Those classes have static variables (which one can access even without
instantiating objects out of the classes) that give meta-info about the
objects. One can use this to write a frontend.

I plan to write a Quixote-based HTML frontend. I already can generate 
simple forms.

Maybe the Actos project uses this backend and writes a GTK based
X-Windows-Frontend.


Where
-----
Some of this code is available at 
http://www.holgerschurig.de/files/destar/




More information about the asterisk-users mailing list