.!.
Kiax ver.2
Kiax started in early 2004 as a small program mainly aimed to provide a simple user interface for making VoIP calls with
Asterisk PBX (an open source VoIP PBX). Its first versions showed the existing need for a user-friendly, free and open softphone. Currently Kiax has been downloaded more than 140 000 times (stats from SourceForge.net) and is available for direct installation from the repositories of the major Linux distros (Ubuntu, SuSE). While it is functionally rich and considerably stable its development has reached a state where modification and customization became difficult. With the help of
Forschung-Direkt and
MIXvoip Kiax development has been restarted. Kiax ver.2 is a complete re-write of the softphone which aims to clean up the design issues and to provide a more flexible architecture for extention and customization.
Kiax has been verified and awarded by leading software content networks:
Contents
- LGPL-licensed core, GPL GUI
- Decoupled Signaling, Storage and Visualization aspects
- Modularized, lightweight core layer
- GCC4 ready code
- Single codebase for Linux, Windows and MacOS
- SQLite as default storage backend
- QT4.4 as GUI frontend
- Webkit integration
- Even simpler (than old Kiax) to use UI
- Completely brandable
- Remote configuration
- Simplified integration with service providers (via JSON)
- Support for multiple service providers
- Support for simultaneous calls
- Registry fail-over support
- Live CDR and Contacts search
- Codecs: G711, iLBC, GSM, Speex
- Noise reduction filter
- I18n support
The entire source code of Kiax ver.2 is published under an open source license. The code consists of three main parts, each of them having an appropriate license for both conformity and flexibility.
The GUI part of the project (uses Trolltech QT ver 4.4) is licensed under the
General Public License Version 3 (GPL v3).
The core library (kiax2voipcore) is licensed under the
Lesser General Public License Version 2 (LGPL v2).
The rest of the code - 3rd party libraries such as
SQLite, json-c
libiaxclient and
libspeex are licensed under different (but yet open source licenses). Please refer to their corresponding project pages for more information.
Latest binary builds for Linux, Windows and MacOS can be found on
Kiax2 SourceForge download page. Latest version is Kiax 2.1 which is available for
Windows,
Linux and
Mac OS X (x86).
Older builds (ver. 0.8.5x) are also available through sourceforge for windows and linux.
The architecture has been designed with extensibility and customization in mind.
A key advantage of this organization is the ability to extend the core-functionality. The API binder binds the interfaces for all aspects of the softphone -
Contact Management,
CDR Management,
Account Management, Signaling, and
Configuration. The actual implementation resides in modules, which can be located and loaded at softphone startup. The
Naming Service provides the necessary methods for locating the module implementations. The
Storage API and the associated implementation of a storage module serves as an universal access-point for storage and retrieval of objects. The default storage module implements a SQLite-based repository used for objects persistence for types Contact, Account, Configuration Parameter, CDR. The GUI (top layer) implements an intuitive user interface based on QT 4.4 - a widely used, mature open source widget toolkit. The bridging of signaling events is achieved through a QT event adapter which takes care of casting, wrapping and pumping events between the separate threads (GUI-thread and signaling thread).
The project has reached a state where it is suitable to be viewed and tested by a larger user base. Not all goals are completed but the core functionality is there and during our tests it behaves well. This section will be updated in a timely fashion while the project advances and more goals are being accomplished.
Table 1 reveals the plan for development feature-wise. Of course, changes will be needed and will be done on the level of code structure.
Kiax ver.2.1 Beta 1 (current state), Release 02-01-2009 |
Module |
Feature |
State |
Tested |
Core |
Static module loading |
Done |
Tested |
Core |
Dynamic module loading |
In progress |
--- |
Core |
Naming Service |
Done |
Tested |
SQLite Storage Module |
Store |
Done |
Tested |
SQLite Storage Module |
Retrieve |
Done |
Tested |
SQLite Storage Module |
Search |
Done |
Tested |
IAX2 Signaling |
QT Integration |
Done |
Tested |
Local Contacts Module |
Store |
Done |
Tested |
Local Contacts Module |
Retrieve |
Done |
Tested |
Local Contacts Module |
Search |
Done |
Tested |
Accounts Module |
Store |
Done |
Tested |
Accounts Module |
Retrieve |
Done |
Tested |
Accounts Module |
Search |
Done |
Tested |
Configuration Module |
Store |
Done |
Tested |
Configuration Module |
Retrieve |
Done |
Tested |
Configuration Module |
Search |
Done |
Tested |
GUI |
Single Service Provider |
Done |
Tested |
GUI |
WebKit - Sign-up |
Done |
Tested |
GUI |
WebKit - Password change |
Done |
Tested |
GUI |
Balance Status |
Done |
Tested |
GUI |
Contact List |
Done |
Tested |
GUI |
CDR List |
Done |
Tested |
GUI |
Live search |
Done |
Tested |
GUI |
Settings |
Done |
Tested |
GUI |
Simultaneous calls |
Done |
Tested |
GUI |
Branding Configuration |
Done |
Tested |
GUI |
Alternative Layout |
Done |
Testing |
HTTP API |
Initial Account Setup |
Done |
Tested |
HTTP API |
Password change |
Done |
Tested |
HTTP API |
Calling |
Done |
Testing |
HTTP API |
Hangup |
Done |
Testing |
.tel Support |
NAPTR and TXT Resolving |
Done |
Testing |
Release |
Kiax ver.2.2, Release TBD |
Module |
Feature |
State |
Tested |
Remote (JSON) Contacts Module |
Store |
Not started |
--- |
Remote (JSON) Contacts Module |
Retrieve |
Not started |
--- |
Remote (JSON) Contacts Module |
Search |
Not started |
--- |
QT GUI |
Multiple Service Providers |
Not started |
--- |
i18n |
German |
Not started |
--- |
i18n |
French |
Not started |
--- |
i18n |
Spanish |
Not started |
--- |
The project is currently being hosted by
SourceForge.net.
Kiax2 project page provides forums in which you can give feedback.
We will be glad if you have any questions, suggestions or comments which may help us make Kiax2 even better. Contribution of any kind is highly appreciated.
Kiax Ver. 2
The new series of Kiax (ver 2) has been mainly driven and developed with the help of two companies -
Forschung-Direkt and
MIXvoip. We will be happy to get more support from both commercial, non-commercial organizations and private persons, so please feel free to contact us if you want to help.
Kiax 0.8.x
We thank everyone who showed interest and contributed to the Kiax project (with development, testing, ideas or translation). Here are some of the people that helped with the 0.8.x versions of Kiax:
- Borislav Mitev (testing, scripting, initial web template)
- Denis Galvão (testing and translation)
- Daniel Huhardeaux (testing and translation)
- Emil Stoyanov (founder, developer, project admin)
- Giovanni Scafora (testing and translation)
- Kaloyan Tzvetkov (site design and support)
- Plamen Florov (testing)
- Péter Simon (testing and translation)
- Predrag Tasevski (testing and translation)
- Shahar Livne (testing and translation)
- Sascha Opletal (testing and translation)
- Sebastian "polrus" Turzañski (testing and translation)
- Velislav Varbanov (co-admin, testing and project maintenance)
- Victor Carceler (testing and translation)