Read Me
README for ABCTI
*** What is ABCTI?
ABCTI is an Asterisk CTI client, licensed under the GPL.
That means you can remote-control your phone through your PBX using ABCTI.
ABCTI talks directly to the Asterisk manager interface,
so no additional software is needed on the PBX.
ABCTI currently has the following features:
* Dial out from your phone
* Show incoming calls in the notification area/windows tray
* Transfer a call to a set of predefined shortcuts
* One-click dial a shortcut
* Hangup your phone
* History of incoming and outgoing calls
ABCTI is currently in alpha state.
Although the implemented features are pretty stable,
they are definitly in a "works-for-me" state (only tested on my own PBX yet).
(Please see *Debugging Asterisk Events* below)
*** Where to get
Get ABCTI from Sourceforge:
http://sourceforge.net/projects/abcti
Get the python code (and see Requirements below) for linux
or get one of the installers for windows.
Installers for Debian/Ubuntu will follow (i promise :-)
*** Setting up the server
On the Asterisk server, add a section to manager.conf that looks like:
[oly]
secret = XXX
permit = 192.168.178.0/255.255.255.0
read = call,originate
write = call,originate
You would then enter "oly" / "XXX" into ABCTI's settings dialog as
"Login name" / "Login secret"
(Read the Asterisk manual for a full explanation of the other items)
You need to configure a "hint" in extensions.conf in the same context where
your extension is defined.
E.g. you already have the following line in your extensions.conf:
exten => 404,1,Dial(SIP/oly)
then you would add (in the same context):
exten => 404,hint,SIP/oly
*** Running ABCTI
Unpack ABCTI, change into directoy abcti (maybe copy "Asterisk" directory, see below).
On the command line, run:
./abcti
When run for the first time, it will prompt you for the settings.
The command line parameters "-g . -p plugins" are a temporary solution
until a debian package is in place. They are not needed under wndows.
*** Requirements
ABCTI needs python, pygtk and py-Asterisk.
Tested with python 2.6, pygtk 2.12 and py-Asterisk from SVN HEAD (as of 2009-11-11)
On Debian or Ubuntu, do:
apt-get install python python-gtk2 python-asterisk
python-asterisk is only available recently as a packege. If you're e.g. on Hardy,
get and unpack py-Asterisk manually as described below.
On Windows, if you dont't want or can not use the installers,
get python and pygtk from
http://www.python.org/
http://ftp.gnome.org/pub/GNOME/binaries/win32/glade3/3.6/glade3-3.6.7-with-GTK+.exe
http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.12/pygtk-2.12.1-2.win32-py2.6.exe
For pyGTK, you also may need:
http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/
http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/
Also ABCTI makes use of the windows API, so you need this:
http://sourceforge.net/projects/pywin32/
Get py-Asterisk from http://py-asterisk.berlios.de, extract to a temporary directory and
copy the subdirectory "Asterisk" over to where you unpacked ABCTI (the directory where "abcti.py"
lives must have a subdirectory "Asterisk" where "Manager.py" etc. live)
*** Debugging Asterisk Events
Currently, ABCTI's event handling logic is heavily based on looking at the events
that my own PBX spits out (that's a HorstBox pro, running a patched version of Asterisk 1.2.18).
Making ABCTI more general will require input from you, the usersm from your Asterisk machines.
So if you want to help debugging, start ABCTI with the following options:
python abcti.py -d0 -f3 -l logfile
This writes a record of the events on te PBX into the logfile (beware: when connected to a heavily
used PBX, the logfile may grow rapidly!)
You may then look into the logfile and/or send it to me (you may want to remove sensitive data first,
however, no passwords etc. are stored) together with your configuration, extensions.conf, sip.conf etc.
to analyze it further and to improve ABCTI.
Enjoy,
(C) Oliver Nittka <oly@nittka.com>