[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