1.1.1 Application servers
The application servers include:
- VoipSwitch softswitch
- VoipBox
- TURN
The main element of the platform is the softswitch. It combines several different roles which will be explained in detail in further chapters. The softswitch supports SIP as the signaling protocol. The transport protocol for carrying media is RTP.
All data used by the softswitch is stored in a database server running MariaDB (formerly MySQL).
A separate application is a media server named VoipBox. It is controlled by Voipswitch and audio and fax processing functions.
One Voipswitch server can control multiple VoipBox servers and load balance the tasks or designate particular VoipBox servers to perform specialized tasks only, for example transcoding, which is the most resource-hungry function.
TURN is an optional element which works independently from the other server applications. It is used by the client endpoints and has an important role in the ICE mechanism. If you do not use a standalone TURN its role will be replaced by voipswitch which has a built in TURN. Using a separate TURN still has certain advantages which will be presented later.
The picture below depicts these components and their interconnections.
Picture 1 Architecture high level diagram
A public network interface is required for receiving traffic from clients who are in external networks. For security reasons the database server should run in a private network and be connected to the softswitch using a local private interface.
Note: It is recommended to have a separate network card on the softswitch server dedicated for communication with the database.
Communication between voipbox and voipswitch consists both of controlling messages and RTP traffic. As voipswitch takes full control here the communication can be done over private interfaces. Voipbox should not be accessible publicly. If a client requests a scenario which is realized by VoipBox, for example the voicemail scenario, it will connect to voipswitch which then passes the request further to voipbox.
Since voipbox uses the voipswitch database it should have access to the database server in the private network.
The TURN server needs only a public interface as it receives TURN requests and RTP traffic from client endpoints. There is no connection between TURN and the database server. If a scenario requires the RTP traffic to go through voipswitch it can be done through the public network. For voipswitch TURN is seen as any other media endpoint (i.e. client).