1. Documentation: Implementing Xivo and a light VOIP
Infrastructure
1. Prerequisites and affected components…………………………p.2
2. Running the Wizard………………………………………………..p.2
3. Configuration……………………………………………………….p.3
4. Switch HV-SW06 Configuration………………………………….p.5
5. Configuration of Autoprov for the Cisco SPA512G…………….p.5
6. Create line, users and endpoints………………………………...p.6
7. Group creation……………………………………………………..p.8
8. Creation of Voicemail……………………………………………..p.8
9. Creation of conference room……………………………………..p.9
10. Push address book to endpoints………………………………..p.9
11. Configure call interception………………………………………p.11
12. Planning a Schedule…………………………………………….p.13
13. IVR Creation with text-to-speech………………………………p.14
14. Advanced user configuration…………………………………...p.15
15. Advanced phone provisioning via configuration files…………p.17
16. Security: Disable some features in the phone………………...p.18
1
2. 1. Prerequisites and affected components.
- A virtual or physical machine able to meet the requirements of Xivo Server.
- A VOIP Phone compatible SIP
- A compatible switch that accept voice Vlan and that support PoE concerned by the
implementation (HV-SW06), here HP-2530-48G-PoEP
• Download the ISO image. (latest version) (all versions)
• Boot from the ISO image, select Install and follow the instructions. You must select a
locale with charset UTF-8.
• At the end of the installation, you can continue by running the configuration wizard.
2. Running the Wizard
After the system installation, you must go through the wizard before being able to use your
XiVO. Browse to your server’s IP address to start the configuration wizard.
We choosed http://10.182.3.68)
Language
-Choose English
License
-You then have to accept the GPLv3 License under which XiVO is distributed.
2
4. Basic configuration
1. Enter the hostname: srv-voip
Enter the domain name: dinant.be
2. Enter the password for the root user of the web interface: root
3. Configure the IP address and gateway used by your XiVO (by default it pre-fills the
fields with the current IP and gateway of the network interface on which you are
connected if and only if network interface has a default gateway).
4. Finally, modify the DNS server information if needed.
Entities and Contexts
Contexts are used for managing various phone numbers that are used by your system.
1. Enter the entity name: dinant.be
2. Enter the number interval for you internal context. The interval will define the users’s
phone numbers for your system: 100-900
3. Enter the DID range and DID length for your system: none here because we don’t
have a SIP line for external calls.
4. You may change the name of your outgoing calls context but unchanged for us
5. Validate
4
5. 4.Switch HV-SW06 Configuration
5.Configuration of Autoprov for the Cisco SPA512G
1. Go to the Configuration tab
2. Provisionning > Plugins >
3. Update the plugins list
4. Install the plugins and the language files corresponding to your VOIP Phone, here for
SPA512G:
5. If the plugin matching your phone is not in the list you must add a deposit through Xivo
Interface.
Identify the plugin needed by your phone: you’ll find a list here :
http://documentation.xivo.fr/production/administration/provisioning/basic_configuration.html#
alternative-plugins-repository
Change the deposit URL via Configuration tab > Provisionning > General.
5
6. 6. Update one more time the plugins list and install concerned plugin
7. Add a network interface to distinguish voice from data in Network> Interface section
and to add a gateway to data interface.
8. Configure DHCP range to automatically assign IP Addresses for provisioning the
phone.
Here: 10.182.150.1 10.182.150.200
9. In some case you may modify DHCP Configuration to approve the phone to get its IP
address by DHCP.
open terminal and goto: /etc/xivo/custom-templates/dhcp/etc/dhcp, modify the file
dhcpd_subnet.conf.middle and approve the phone : here we approved Cisco SPA 512G
6.Create line, users and endpoints
To autoinstall endpoint you must, plug the phone into the switch, wait a minute
so autoprovisionning will begin.
This one must appear in Xivo in the IPBX Settings > Endpoints
IP Address has been automatically assigned to it.
6
7. For the line :
Go to Service tab then choose IPBX
Go to IPBX Settings > Line …
Add a SIP line (+)
Choose the context, here we’ve only made configuration of internal call
Note the ID and the password in case of using a Softphone application like X-Lite for
Example
For the Users in the same menu, choose users
Add and fill some field
In the same menu go to Lines , Protocol: SIP, Context: Internal calls, choose a number to be
called, add an endpoint if you want the user line being associated to the endpoint.
Choose an endpoint thanks to its MAC Address
7.Group creation
7
8. Create a call group, it will contain several users, so a same number will be used to call 2
users at the same time.
Here we’ve created 2 groups : Group 1 (1000) et Group 2 (2000)
Group 1 contains: Julien and Tel Cisco “users”
Group 2 contains : Alain and Johann users
8.Creation of voicemail
Create the voice mail, choose a name, here : Tel Cisco , a number (here 103), a context
(internal call in our case ) and eventually password (none selected in our case),
8
9. 9.Creation of conference room
Create the conference room, choose a name, here: “conferenceroom”, a number (here
250),a PIN code (here 1111, it will be used to ask a code when user want to join the
conference) a context (internal call in our case ) and the maximum number of participants
10.Push address book to endpoint
IPBX > Address book
Add some hosts to the list, in our case we filled the field with entire subnet.
9
13. 12.Planning a schedule
IPBX > Call management>Schedules
Choose the entity: here dinant.be
The time zone: Here Europe/Brussels
In our case
Worked periods:
Periods not worked:
13
14. 13.IVR Creation (Interactive Voice Response)
with text-to-speech
Google AGI Installation for TTS :
Run bash and download packages below for installation of TTS
- apt-get install perl libwww-perl sox mpg123
- cd /var/lib/asterisk/agi-bin
- wget --no-check-certificate https://raw.github.com/zaf/asterisk-
googletts/master/googletts.agi
- chmod +x googletts.agi
Go to IPBX Configuration > Configuration Files… and edit the file xivo-extrafeatures.conf like
below:
14
15. 14.Advanced user configuration (call forwarding, voicemail
assignment…)
Go to IPBX Settings > Users and then non-response tab.
Here you have for possibilities: What to do in case of, no reply, if a user is busy, if line is
saturated, or if a call failed.
Here I have configured user Alain. If someone calls him, in case of non-response after 5
seconds, the call is automatically forwarded to a group 1. Alain and Johann are members of
this group, so if someone does not have some response from Alain. Alain and Johann will
ring at the same time
Forward a call after 5 sec of non-response to a group of users
15
16. Here I have configured the account of the cisco phone named “Tel Cisco”.
If the line is busy a WAV files is played. You can upload this file via menu Services IPBX>
sounds file.
You can also find them via terminal by typing : cd /var/lib/xivo/sounds
Be Careful in order to do that the WAV files must be 8000KHZ,16bit,mono format
PCM encoded
See also documentation on :
http://documentation.xivo.io/production/administration/sound_files.html
Play a WAV file if user is busy, note that the call not continue to ring anymore if user hang
up.
And much more …
16
17. 15.Advanced phone provisioning via configuration files.
In our case you can access the main config file OF THE PHONE (spaconfig.xml) through the
web interface
In Xivo you can edit a similary file to push its configuration to the phone.
Here is its location : /var/lib/xivo-provd/plugins/xivo-cisco-spa-
7.5.5/var/tftpboot/spa-phone.xml
You could add and edit each fields as you want. All the settings configured will be
automatically provisionned to all the phone at the next resynchronisation.
There is another file with some letters and numbers, it is corresponding to MAC adress of the
phone, you can edit it if you want the settings be pushed specifically and only to this phone:
/var/lib/xivo-provd/plugins/xivo-cisco-spa-
7.5.5/var/tftpboot/a4934cfea742.xml
If you don’t find the field you want to push to the phone you will find it via web configuration
file of the phone like above: in our case http://10.182.250.1/admin/spaconfig.xml
Note: You can also retrieve keywords for configuration parameters by browsing the Xivo web
interface by pointing mouse on an interrogation point next to some fields
17
18. 16.Security: Disable some features in the phone
For security reasons it could be interesting to disable some features in the VOIP Phone, here
Cisco SPA512 (it may change from a phone to another).
In order to do that you must modify one of the configuration file of Xivo that is pushed to the
phone (p.17)
To have the possibility to do that you must first add the fields:
<Phone-UI-readonly>Yes</Phone-UI-readonly>
<Phone-UI-user-mode>Yes</Phone-UI-user-mode>
You can restrict some features by adding the ua= parameters to field followed by its value
into quotation marks: ua=”[value]”
There are 3 values, ro for readonly, na for not available, rw for read-writeable
ro means that the user will see the feature but will not be able to change it
na means that the user won’t see the feature and will not be able to change it
rw means that the user will see the feature and will be able to change it
Attention : To make the possibility to hide and entire menu in the phone, you must apply the
na parameters to all submenu first.
In the example below we decided to hide most of the network parameters
18