Installing XDS¶
Important
Before installing, make sure you understand the XDS Architecture and links between components.
The XDS architecture has the following components:
- XiVO
- 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)
Requirements¶
Before starting you need to have 3 servers. Here’s a table summarizing what we are installing. Replace the IP by those you chose.
Server | server1 | server2 | server3 |
Role | XiVO | Media Server | Reporting/CTI Server |
Name | mds0 | mds1 | cc |
IP Data | 10.32.0.1 | 10.32.0.101 | 10.32.0.9 |
IP VoIP | 10.32.5.1 | 10.32.5.101 | 10.32.5.9 |
XiVO Configuration¶
On server1:
- install XiVO (see Installing the System).
- pass the Wizard
AMI configuration¶
Note
Once a media server is defined in webi, Reporting Server will use the VoIP interface for AMI connection to all media servers and XiVO. Here we authorize it on XIVO.
If XiVO CC is installed, do the following steps before adding media server. Otherwise you can first define media servers and do these steps right after XiVO CC installation, but before starting it to prevent problems with fail2ban.
Edit existing file
/etc/asterisk/manager.d/02-xivocc.conf
to add permission for Reporting Server:permit
to authorize the VoIP IP of the Reporting Server. E.g.:... deny=0.0.0.0/0.0.0.0 permit=10.32.5.9/255.255.255.255 permit=10.32.0.9/255.255.255.255 ...
Apply the configuration:
asterisk -rx 'manager reload'
Define Media Servers¶
Note
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 in
in the SIP trunk configuration.Define Media Servers for Provisionning¶
Note
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¶
Note
The MDS need to connect to the XiVO database.
In file /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:
xivo-dcomp reload-db
Media Server Configuration¶
Requirements¶
On server2 install a Debian 9 with:
amd64
architecture,en_US.UTF-8
locale,ext4
filesystem- a hostname correctly set (files
/etc/hosts
and/etc/hostname
must be coherent).
Before installing the MDS you have to have added:
- the MDS to the XiVO configuration (see Define Media Servers section)
Installation¶
Important
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:
Important
Use -a
switch to chose the same version as your XiVO (mds0)
./mds_install.sh -a 2019.05-latest
When prompted:
- 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)
Configuration¶
To finalize the MDS configuration you have to:
Configure NTP to synchronize on XiVO (mds0) by replacing preconfigured servers/pools in file
/etc/ntp.conf
by:server 10.32.0.1 iburst
And restart NTP:
systemctl restart ntp
Create file
/etc/asterisk/manager.d/02-xuc.conf
to add permission for Xuc Server to connect with:secret
must be the same as the secret for xuc user on XiVO,permit
to authorize the VoIP IP of the Reporting Servere.g.:
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¶
Note
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>
XiVO CC Configuration¶
On server3:
- install a XiVO CC (see Installation)
- configure it
- before starting it, change the AMI configuration on XiVO.
Known Limitations¶
Agent states after XUC restart¶
Restarting XUC server with active calls in XDS environment will result in having some agents in incorrect state. Please see the note in restarting XUC server with active calls.