The sipXcom system is built based on a modular architecture with different components that communicate over TCP/IP for the most part.
The SIP protocol was designed in support of a fully distributed architecture where different features are provided by servers that again communicate among themselves using the SIP protocol. There is a strict separation between Media and Signaling, which allows a globally scalable system to be built with the necessary redundancy and resiliency. Media streams, once setup, flow directly between end-points (phones and gateways) without any requirement for media to go through a central signaling server.
Given its architecture, the sipXcom system is designed to interoperate with other third party feature servers. In addition, as we accomplished our objective of a truly distributed system, several instances of every component can be run on dedicated hardware and in different geographical locations to render a very scalable system. The sipXcom Configuration Server provides plug & play management for core components, all feature servers, as well as connected peripherals such as phones and gateways. An XML-based plug-in framework allows easy inclusion of additional components, both feature servers as well as additional peripherals. Documentation exists about how to add support for additional phones and gateways.
While the different components of the sipXcom system could be used stand-alone, the focus of the project has been to provide a complete sipXcom IP PBX system out-of-the-box. On Fedora, Red Hat, Debian and SUSE distributions, the sipXcom system can be installed easily using the distributions's respective package management system from our repository.
The sipXcom Configuration Server is a Web Services based configuration management system that offers plug & play management for all the sipXcom server components including all connected phones and gateways. If connects to the existing IT infrastructure e.g. using LDAP and allows Web Services portals to use its services over a SOAP interface. It also allows integration with Microsoft Active Directory and Exchange 2007.
User data can be uploaded from LDAP or using a comma-delimited CSV file typically generated by a spreadsheet application.
For persistent storage we use the PostgreSQL database.
A Web browser directly connects to the Jetty HTTP server and the Apache server is no longer required.
Web Services integration is possible using the provided SOAP interface, which can be used for bulk configuration transactions.
Starting with version 4.2 sipXconfig provides a set of REST APIs using RESTlet library. The plan for next releases is to expose all sipXconfig functionalities in REST calls.
Configuration Server communicates with other sipXcom server components using the file system or its XML RPC interface. Using the local file system, configuration files are written to the /etc/sipxpbx directory.
Two different mechanisms are supported for phones and gateways to get access to their respective configuration files at boot time:
a) Both an FTP and TFTP server provide access to the tftproot directory on the sipXcom server;
b) HTTP Web access is possible to the docroot directory. docroot access is provided on port 8090 using the Apache Web server.
Phones and gateways can be auto-configured on the LAN, which further simplifies deployment.