
Figure 1. Kiax ver.2 - Design and Architectural Layers
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).| 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 | --- |