Introduction to the VOIspeed PBX 6
PBX – SERVER ARCHITECTURE
Without going into in-depth details, for which we refer to the technical courses on VOIspeed 6, it is worth spending a few words on the architecture of VOIspeed 6.
The VOIspeed 6 application is based on a client / server architecture. The Server (PBX) part acts as a “switchboard”, while the client part consists of a graphical user interface (GUI) installed on the client PCs, which communicates with the PBX to obtain various services.
In the server part of the application, we can consider 3 separate but interacting functional blocks:
- The PBX, which runs as a service: is the primary switchboard application
- the Configurator: is a web server (Apache + PHP) instantiated for managing the PBX via the web
- the Database (FoxPRO, MySQL or others): it is the database containing the switchboard information to which the previous applications access asynchronously
PBX and Configurator also exchange messages and control signals through an HTTP \ SOAP \ XML command interface, through which the WEB configurator informs the various entities of the PBX to reconfigure themselves following a change. The same communication protocol is used by the GUI (the user side client) to issue various commands to the server. Furthermore, this communication protocol releases the execution of applications from the hardware on which they run and allows them to be run even in virtualized environments and IaaS cloud.
The PBX service manages logical macro containers, which we will indicate with the name of “companies”. The name is not chosen by chance, since these containers refer to all the distinctive properties and resources that can be associated with a real company: each company therefore has its own unique identity and name (domain) that differentiate it. from the others. Each company is made up of several entities:
- Interactive auto responders (IVRs)
- Time Tables
- Gateways (Voip, GSM, ISDN / PSTN, WAN)
- Call Services
- Various services (eg voicemail boxes, meeting rooms, etc.)
Each of these entities is uniquely determined by an ID and cataloged in the system configuration DB; it is uniquely associated with a “Company” and can be invoked only and exclusively by entities that belong to the same company.
The PBX is also capable of managing audio, video, text (chat and instant messages) calls and conferences, file transfer between two or more local users or users at the ends of a WAN route.
Each company within the PBX can create time slots through which it is possible to set a series of hourly coverage of the working week and not.
Note: Time slots can be used freely as a call routing criterion.
The PBX obviously does what it is primarily designed for: call routing. That is, the PBX decides which entity to contact to forward an incoming call, based on the various criteria that the administrator can define.
The web configurator is a stand alone application (separate from the PBX process) consisting of an apache web server, a database shared with the PBX server and a set of php scripts, in turn divided into a framework layer and an application layer. The configurator is installed together with the PBX Setup, on the same machine where it resides (in the future it will be possible to install it separately and on another machine). As mentioned, the configurator communicates (and synchronizes) with the PBX via the HTTP \ SOAP \ XML protocol. It has preliminary settings that allow it to identify the PBX service (to synchronize with it) or to work in off-line mode and to know the type and coordinates of the database.
It has a multi-company architecture, for the independent management of those logical containers mentioned above: this means that there are two levels of administration: super and admin. The super administrator has a “system” management of the server and can create companies or add administrators of a specific company. On the contrary, the administrator is associated with only one company and can only administer the configurations of his company.