Before installing, make sure you understand the XDS Architecture and links between components.
The XDS architecture has the following components:
- Media Server (MDS) (one or more)
An XDS needs also:
- a Reporting Server for the centralized call history,
- a CTI Server for the UC features.
This page will guide you through:
- the configuration of the XiVO (see XiVO Configuration section)
- the installation and configuration of the MDS (see Media Server Configuration section)
- and the configuration of the CC (Reporting and CTI Server) (see XiVO CC Configuration section)
Before starting you need to have 3 servers. Here’s a table summarizing what we are installing. Replace the IP by those you chose.
|Role||XiVO||Media Server||Reporting/CTI Server|
- install XiVO (see Installing the System).
- pass the Wizard
Define Media Servers¶
Here we define our Media Servers (MDS) names and VoIP IP address.
In XiVO webi,
- Go to
- Add a line per Media Server (MDS) (below an example for mds1):
- Name: mdsX (e.g. mds1)
- Displayed Name: Media Server X (e.g. Media Server 1)
- IP VoIP: <VoIP IP of mdsX> (e.g. 10.32.5.101) - note: the VoIP streams between XiVO and mdsX will go through this IP
Once you define a media server, you will be able to create local SIP trunks that exist only there. The location can be set inin the SIP trunk configuration.
Define Media Servers for Provisionning¶
Here we configure the Media Servers (MDS) for the phones.
In XiVO webi
- Go to
- Create a template line per MDS (below the example for mds1):
- Unique name: <mdsX> (e.g. mds1) - note: it must be the same name as the one defined in section Define Media Servers
- Displayed Name: <Media Server X> (e.g. Media Server 1)
- Registrar Main: <VoIP IP of mdsX> (e.g. 10.32.5.101)
- Proxy Main: <VoIP IP of mdsX> (e.g. 10.32.5.101)
Media Servers connection to the XIVO database¶
The MDS need to connect to the XiVO database.
/var/lib/postgresql/11/main/pg_hba.conf add an authorization per mds to connect to the db. Here you will probably want to use the Data IP of mdsX:
host asterisk all 10.32.4.201/32 md5
And reload the database configuration:
Media Server Configuration¶
On server2 install a Debian 9 with:
- a hostname correctly set (files
/etc/hostnamemust be coherent).
Before installing the MDS you have to have added:
- the MDS to the XiVO configuration (see Define Media Servers section)
The MDS installer will ask you:
- the XiVO Data IP Address
- the Media Server you’re installing (taken from the Media Server you declared at step Define Media Servers)
- the Media Server Data IP
- the Reporting Server IP
To install the MDS, download the XiVO installation script:
wget http://mirror.xivo.solutions/mds_install.sh chmod +x mds_install.sh
and run it:
-a switch to chose the same version as your XiVO (mds0)
./mds_install.sh -a 2019.05-latest
- give the IP of XiVO (mds0): <XiVO Data IP> (e.g. 10.32.0.2)
- select the MDS you’re installing: <mdsX> (e.g. mds1)
- enter the MDS Data IP: <mdsX Data IP> (e.g. 10.32.0.101)
- and finally the Reporting Server Data IP: <reporting Data IP) (e.g. 10.32.0.5)
To finalize the MDS configuration you have to:
/etc/asterisk/manager.d/02-xuc.confto add permission for Xuc Server to connect with:
secretmust be the same as the secret for xuc user on XiVO,
permitto authorize the VoIP IP of the Reporting Server
cat > /etc/asterisk/manager.d/02-xuc.conf << EOF [xuc] secret = muq6IWgNU1Z deny=0.0.0.0/0.0.0.0 permit=10.32.5.9/255.255.255.255 read = system,call,log,verbose,command,agent,user,dtmf,originate,dialplan write = system,call,log,verbose,command,agent,user,dtmf,originate,dialplan writetimeout = 10000 EOF
Restart the services:
xivo-service restart all
Outgoing Call Configuration¶
Create the Provider Trunk¶
Add on the XiVO the trunk towards your provider (it can be an ISDN or SIP trunk). When creating the trunk, select the Media Server on which it will be located.
Create Outgoing Call Rule¶
This outgoing call rule will handle outgoing call from XDS to Provider.
In XiVO Webi:
- Go to
- Create a route for XDS:
- Call pattern: X.
- Trunks: <your provider trunk>
- (after opening the advanced form) Caller ID: <main DID of the system>