http://wiki.sipfoundry.org/display/oldxx/Architecture+Diagramhttp://wiki.sipfoundry.org/display/oldxx/Architecture+Diagram
The sipXecs System Architecture Diagram
The sipXecs 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.
|
Highlights
|
|
|
Given its architecture, the sipXecs 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 sipXecs 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 sipXecs system could be used stand-alone, the focus of the project has been to provide a complete sipXecs IP PBX system out-of-the-box. On Fedora, Red Hat, Debian and Gentoo distributions, the sipXecs system can be installed easily using the distributions's respective package management system from our repository.
Architecture of the Configuration Server
The sipXecs Configuration Server is a Web Services based configuration management system that offers plug & play management for all the sipXecs 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. We also started work on integrating an OAM DM stack used to configure "over-the-air" multiband cell phones that support SIP over WiFi.
The following library components are used
|
|
|
Architecture of the Media Server
The sipXecs Media Server provides voicemail and auto-attendant services. It is based on VXML using the OpenVXI library.
Legend:
- Configuration Server generates configuration files for the Media Server and stores them in the file system of the host on which Media Server runs. These configuration files are read by Media Server when it starts.
- On an ongoing basis during operation Configuration Server provides updated information on users, their credentials, routing information etc. into the In-Memory Data Base (IMDB) through a replication interface. The transactions are done using HTTPS through the Apache Web server and using the Replication CGI.
- The Replication CGI writes the information to the IMB (we use FastDB).
- Information is retrieved from the IMDB by the MediaServer CGI
- Configuration Server also provides process control for the media server and its components. A Process CGI is used to communicate with the watchdog that runs on every host that participates in a sipX system.
- The sipXvxml RPM includes both the OpenVXI component as well as an interface that allows OpenVXI to communicate with MediaServer CGI using HTTP.
- MediaServer also communicates with the Status server using HTTPS for the purpose of exchanging Message Waiting status information (MWI)
- OpenVXI communicates with the rest of the system using SIP. Calls are transferred to the Media Server.
- OpenVXI generates prompts that can be played by Media Server. These prompts are stored to the file system from where Media Server can retrieve them.
- Media Server retrieves stored prompts