...
 
Commits (109)
......@@ -20,7 +20,7 @@ endif
envs/bin/sphinx-build:
python2.7 -mvirtualenv --system-site-packages envs
envs/bin/python envs/bin/pip install --use-wheel -U --cache-dir .cache/pip -I Pygments==2.2.0 setuptools==28.8.0 docutils==0.13.1 mock==1.0.1 pillow==2.6.1 "alabaster>=0.7,<0.8,!=0.7.5" commonmark==0.5.4 recommonmark==0.4.0 sphinx==1.5.3 "sphinx-rtd-theme<0.3" "readthedocs-sphinx-ext<0.6"
envs/bin/python envs/bin/pip install -U --cache-dir .cache/pip -I Pygments==2.2.0 "setuptools<41" docutils==0.13.1 mock==1.0.1 pillow==2.6.1 "alabaster>=0.7,<0.8,!=0.7.5" commonmark==0.5.4 recommonmark==0.4.0 sphinx==1.7.4 "sphinx-rtd-theme<0.3" "readthedocs-sphinx-ext<0.6"
envs/bin/python envs/bin/pip install --exists-action=w --cache-dir .cache/pip -rrequirements.txt
......
git+https://gitlab.com/xivo.solutions/sphinx-git.git@tagtitles
gitpython
sphinx_rtd_theme
......@@ -50,15 +50,15 @@ Here is the list of folders and files that are backed-up:
* :file:`/etc/consul/`
* :file:`/etc/crontab`
* :file:`/etc/dahdi/`
* :file:`/etc/dhcp/`
* :file:`/etc/hostname`
* :file:`/etc/hosts`
* :file:`/etc/dhcp/` ⚠️️ This will overwrite the network configuration when the backup is restored ⚠
* :file:`/etc/hostname` ⚠️️ This will overwrite the network configuration when the backup is restored ⚠
* :file:`/etc/hosts` ⚠️️ This will overwrite the network configuration when the backup is restored ⚠
* :file:`/etc/ldap/`
* :file:`/etc/network/if-up.d/xivo-routes`
* :file:`/etc/network/interfaces`
* :file:`/etc/network/interfaces` ⚠️️ This includes the host IP address / netmask and will overwrite the network configuration when the backup is restored ⚠ ️
* :file:`/etc/ntp.conf`
* :file:`/etc/profile.d/xivo_uuid.sh`
* :file:`/etc/resolv.conf`
* :file:`/etc/resolv.conf` ⚠️️ This will overwrite the network configuration when the backup is restored ⚠
* :file:`/etc/ssl/`
* :file:`/etc/systemd/`
* :file:`/etc/wanpipe/`
......@@ -86,6 +86,8 @@ Here is the list of folders and files that are backed-up:
* :file:`/var/log/asterisk/`
* :file:`/var/spool/asterisk/`
* :file:`/var/spool/cron/crontabs/`
* :file:`/etc/docker/`
* :file:`/etc/fail2ban/`
The following files/folders are excluded from this backup:
......@@ -164,6 +166,12 @@ A backup of both the configuration files and the database used by a XiVO install
automatically every day.
These backups are created in the :file:`/var/backups/xivo` directory and are kept for 7 days.
️️️⚠️ Important Warning ⚠️️
=====================
A XiVO backup includes the entirety of the original machine's network configuration : it WILL overwrite any present network settings when you restore it.
Remember to change those settings back if required before restarting network services or the machine itself, especially if you do not have physical or console access!
Limitations
===========
......@@ -285,4 +293,4 @@ Restart the services you stopped in the first step::
xivo-service start
You may also reboot the system.
You may also reboot the system. Remember that the network settings were overwritten by the backed up settings, check and fix if necessary before rebooting!
\ No newline at end of file
......@@ -28,7 +28,7 @@ Authority (CA).
The default certificate is untrusted
====================================
------------------------------------
To make the HTTP client accept this certificate, you have two choices:
......@@ -42,12 +42,12 @@ Use your own certificate
For this, follow these steps:
1. Replace the following files with your own private key/certificate pair:
#. Replace the following files with your own private key/certificate pair:
* Private key: :file:`/usr/share/xivo-certs/server.key`
* Certificate: :file:`/usr/share/xivo-certs/server.crt`
* Private key: :file:`/usr/share/xivo-certs/server.key`
* Certificate: :file:`/usr/share/xivo-certs/server.crt`
2. Change the hostname of XiVO for each XiVO component: the different processes of XiVO heavily use
#. Change the hostname of XiVO for each XiVO component: the different processes of XiVO heavily use
HTTPS for internal communication, and for these connection to establish successfully, all
hostnames used must match the Common Name (CN) of your certificate. Basically, you must replace
all occurrences of ``localhost`` (the default hostname) with your CN in the :ref:`configuration of the
......@@ -72,15 +72,35 @@ For this, follow these steps:
ln -s "/etc/xivo/custom/custom-certificate.yml" "$config_dir/010-custom-certificate.yml"
done
Also, you must replace ``localhost`` in the definition of your directories in the web interface
under :menuselection:`Configuration --> Directories`.
#. Also, you must replace ``localhost``, in the definition of your directories in the web interface under :menuselection:`Configuration --> Directories`, by the hostname matching the CN of your certificate.
3. If your certificate is not self-signed, and you obtained it from a third-party CA that is trusted
#. Then, when done, you must re-save, the CTI Directories definition:
* Go to :menuselection:`Services --> CTI Server --> Directories --> Definitions`
* Edit each directory to re-select the new URI
* And save it
#. If your certificate is not self-signed, and you obtained it from a third-party CA that is trusted
by your system, you must enable the system-based certificate verification. By default,
certificate verification is set to consider ``/usr/share/xivo-certs/server.crt`` as the only CA
certificate.
The options are the following:
First you need to install the debian ``ca-certificates`` package::
apt-get install ca-certificates
If one of the CA (or intermediate CA) of your certificate is not present in the CA shipped by the
``ca-certificates`` package you will need to add it manually:
* Create the following dir if not present::
mkdir /usr/local/share/ca-certificates/
* Copy inside this directory the certificate of the missing CA in a ``.crt`` file
* And finally upload ca-certificates configuration::
update-ca-certificates
Then to activate the certificat verification, the options are the following:
* Consul: ``verify: True``
* Other XiVO services: ``verify_certificate: True``
......@@ -104,10 +124,10 @@ For this, follow these steps:
machine, however, this is dangerous when XiVO services are separated by an untrusted network,
such as the Internet.
4. Ensure your CN resolves to a valid IP address with either:
#. Ensure your CN resolves to a valid IP address with:
* a DNS entry
* an entry in :file:`/etc/hosts` resolving your CN to 127.0.0.1. Note that :file:`/etc/hosts`
* and an entry in :file:`/etc/hosts` resolving your CN to 127.0.0.1. Note that :file:`/etc/hosts`
will be rewritten occasionally by xivo-sysconfd. To make the change persistent, you can:
#. modify :file:`/usr/share/xivo-sysconfd/templates/resolvconf/hosts` instead (which will be
......@@ -116,6 +136,6 @@ For this, follow these steps:
modification to :file:`/usr/share/xivo-sysconfd/templates/resolvconf/hosts` after each
``xivo-upgrade``.
5. Restart all XiVO services::
#. Restart all XiVO services::
xivo-service restart all
.. _system_proxy:
*******************
Proxy Configuration
*******************
......@@ -5,36 +7,88 @@ Proxy Configuration
If you use XiVO behind an HTTP proxy, you must do a couple of manipulations for
it to work correctly.
.. warning:: We do not recomend to use ``http_proxy`` environment variable. It may
break some services.
Instead you should configure the proxy on a per service basis as described
below.
System Applications
===================
Installation and upgrade operations use different tools for which the proxy must be configured if any.
apt
===
---
.. important:: This is needed because apt is used for installation and upgrade
Create the :file:`/etc/apt/apt.conf.d/90proxy` file with the following content::
Acquire::http::Proxy "http://domain\username:password@proxyip:proxyport";
curl
----
provd
=====
.. important:: This is needed because ``curl`` is used during installation and upgrade
Create the :file:`~/.curlrc` file with the following content::
proxy = http://proxyip:proxyport
proxy-user = "username:password"
docker
------
.. important:: This is needed because docker images will be downloaded during installation or upgrade
When upgrading or installing XiVO it will attempt to download docker images.
For the proxy configuration, you need to create a systemd configuration file.
See Docker documentation: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
Proxy information is set via the :menuselection:`Configuration --> Provisioning --> General`
page.
wget
----
.. important:: This step is needed because this tool is used by xivo-upgrade script and install scripts
Create the :file:`~/.wgetrc` file with the following content::
use_proxy=yes
http_proxy=http://username:password@proxyip:proxyport
XiVO Services
=============
Several XiVO services needs also the proxy to be configured, if any.
dhcp-update
===========
-----------
*This step is needed if you use the DHCP server of the XiVO. Otherwise the DHCP configuration won't be correct.*
.. important:: This is needed if you use the DHCP server of the XiVO. Otherwise the DHCP configuration won't be correct. It must be set before the wizard is run.
Proxy information is set via the :file:`/etc/xivo/dhcpd-update.conf` file.
Edit the file and look for the ``[proxy]`` section.
provd
-----
.. note:: This is needed to download plugins
Proxy information is set via the :menuselection:`Configuration --> Provisioning --> General`
page.
xivo-fetchfw
============
------------
*This step is not needed if you don't use xivo-fetchfw.*
.. note:: This is needed to download firmwares
Proxy information is set via the :file:`/etc/xivo/xivo-fetchfw.conf` file.
......
......@@ -26,4 +26,5 @@ System
xivo-dird-phoned <xivo-dird-phoned>
xivo-purge-db <purge_logs>
xivo-service <service>
xivo-upgrade <xivo_upgrade_script>
xivo-sysconfd <xivo-sysconfd>
#################
*****************
NGINX - proxy web
#################
*****************
Basic check
===========
......
*********
Reporting
=========
*********
xivo_replic does not replicate call data
----------------------------------------
========================================
After experiencing a 'no space left on device' and restarting containers, it can sometimes happen that the data from XiVO is not replicated anymore. Container *xivocc_replic_1* logs show the following error::
......
**********
PostgreSQL
==========
**********
Container keeps on restarting after upgrade
-------------------------------------------
===========================================
After upgrading Docker it can sometimes happen that the container *xivocc_pgxivocc_1* gets stuck in restarting mode. Logs show the following error
......
.. _troubleshooting:
***************
Troubleshooting
===============
***************
Transfers using DTMF
--------------------
====================
When transfering a call using DTMF (\*1) you get an *invalid extension* error when dialing the
extension.
......@@ -29,7 +30,7 @@ to be able to transfer the called person to another extension.
.. _fax-detection:
Fax detection
-------------
=============
XiVO **does not currently support Fax detection**. The following describe a workaround to use this
feature. The behavior is to answer all incoming (external) call, wait for a number of seconds (4 in
......@@ -77,7 +78,7 @@ this example) : if a fax is detected, receive it otherwise route the call normal
.. _berofos-integration-with-pbx:
Berofos Integration with PBX
----------------------------
============================
You can use a Berofos failover switch to secure the ISDN provider lines
when installing a XiVO in front of an existing PBX.
......@@ -161,7 +162,7 @@ The following describes how to configure your XiVO and your Berofos.
Upgrading from XiVO 1.2.3
--------------------------
==========================
#. There is an issue with ``xivo-libsccp`` and ``pf-xivo-base-config`` during an upgrade from 1.2.3::
......@@ -191,7 +192,7 @@ Upgrading from XiVO 1.2.3
.. _cti-ami-proxy:
CTI server is unexpectedly terminating
--------------------------------------
======================================
If you observes that your CTI server is sometimes unexpectedly terminating with the following
message in :file:`/var/log/xivo-ctid.log`::
......@@ -236,7 +237,7 @@ To disable the ami-proxy::
Agents receiving two ACD calls
------------------------------
==============================
.. warning:: Procedure was removed since bug was fixed in asterisk version shipped in 2017.LTS1 (2017.03)
......@@ -244,7 +245,7 @@ Agents receiving two ACD calls
.. _postgresql_localization_errors:
PostgreSQL localization errors
------------------------------
==============================
The database and the underlying `database cluster`_ used by XiVO is sensitive to the system locale
configuration. The locale used by the database and the database cluster is set when XiVO is
......@@ -269,7 +270,7 @@ When working with locale and PostgreSQL, there's a few useful commands and thing
Database cluster is not starting
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--------------------------------
If the database cluster doesn't start and you have the following errors in your log file::
......@@ -292,7 +293,7 @@ Once this is done, restart your database cluster.
Can't connect to the database
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-----------------------------
If the database cluster is up but you get the following error when trying to connect to the
``asterisk`` database::
......@@ -310,13 +311,13 @@ two choices to fix this issue:
Error during the upgrade
^^^^^^^^^^^^^^^^^^^^^^^^
------------------------
Then you are mostly in one of the cases described above. Check your log file.
Error while restoring a database backup
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
---------------------------------------
If during a database restore, you get the following error::
......@@ -339,7 +340,7 @@ your system. You have two choices to fix this issue:
Error during master-slave replication
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-------------------------------------
Then the slave database is most likely not using an UTF-8 encoding. You'll need to
:ref:`recreate the database using a different locale <postgres-change-locale>`
......@@ -348,7 +349,7 @@ Then the slave database is most likely not using an UTF-8 encoding. You'll need
.. _postgres-change-locale:
Changing the locale (LC_COLLATE and LC_CTYPE) of the database
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-------------------------------------------------------------
If you have decided to change the locale of your database, you must:
......@@ -380,7 +381,7 @@ For more information, consult the `official documentation on PostgreSQL localiza
Originate a call from the Asterisk console
------------------------------------------
==========================================
It is sometimes useful to ring a phone from the asterisk console. For example, if you want
to call the ``1234`` extension in context ``default``::
......@@ -388,7 +389,7 @@ to call the ``1234`` extension in context ``default``::
channel originate Local/1234@default extension 42@xivo-callme
WebRTC
------
======
* `http.conf` - asterisk's webserver must accept connection from outside, the listen address must be updated, for the sake of
simplicity let's use 0.0.0.0, you can also pick an address of one of the network interfaces:
......
###################################
***********************************
Xuc & Xucmgt (CC & UC applications)
###################################
Basic checks
============
***********************************
XUC overview page
-----------------
=================
XUC overview page available at @XUC_IP:PORT, usually @SERVER_IP:8090. You have to check if the "Internal configuration cache database"
contains agents, queues etc.
XUC sample page
---------------
===============
XUC sample page available at @XUC_IP:PORT/sample, usually @SERVER_IP:8090/sample. You can use this page to check user login and other
API functions. CCManager, agent and assistant web use functions available on the sample page.
XUC Internal Metrics
====================
Internal metrics are also available - see :ref:`xuc_jmx_metrics` page.
.. toctree::
:maxdepth: 2
:hidden:
jmx
UC Assistant
=============
......
.. _xuc_jmx_metrics:
********************
XUC Internal Metrics
********************
.. contents::
Introduction
============
The XUC process exposes some metrics to troubleshoot or monitor the health of the process. Some of these metrics were previously exposed in a sub-page of the XUC overview page. The metrics are not exposed using the JMX technology available in java.
Configuration
=============
Enable JMX
----------
JMX is enabled by default in java but only available on the local machine running the process. Moreover as we are using docker, it's only available inside the docker container itself. To make it available from the outside of the container and host running the XUC process, you need to explicitely configure it to do so.
In the following configuration, replace
* JMX_PORT with the port number where you want to expose the JMX
* JMX_HOST by the docker host IP address (not the container one but the IP of the server running docker)
Edit your docker compose file (/etc/docker/compose/docker-xivocc.yml) and change the configuration of the xuc container:
::
xuc:
[...]
ports:
- JMX_PORT:JMX_PORT
[...]
environment:
- JAVA_OPTS=-Xms512m -Xmx1024m -DtechMetrics.jmxReporter=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=JMX_PORT -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=JMX_HOST -Dcom.sun.management.jmxremote.rmi.port=JMX_PORT
[...]
For example, if we have JMX_PORT=15701 and JMX_HOST=192.168.228.100, you should set
::
xuc:
[...]
ports:
- 15701:15701
[...]
environment:
- JAVA_OPTS=-Xms512m -Xmx1024m -DtechMetrics.jmxReporter=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=15701 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.228.100 -Dcom.sun.management.jmxremote.rmi.port=15701
[...]
Then restart the XUC process with the new configuration by running the command ``xivocc-dcomp up -d xuc``
Explore JMX
-----------
Once restarted you can then use tools to explore the metrics: jconsole, visualvm with MBeans plugin, eclipse,... For example, here are the steps to configure visualvm and explore the JMX metrics:
* Download and install visualvm https://visualvm.github.io/
* Enable MBeans plugin
.. figure:: jmx-plugins.png
:scale: 90%
* Add remote host
.. figure:: jmx-config.png
:scale: 90%
* Double click on process under the newly added host
* Click on the MBeans tab
* Explore tree
.. figure:: jmx-tree.png
:scale: 50%
Expose JMX through REST
-----------------------
Alternatively you could integrate a JMX plugin to your running process which allows to gather JMX metrics over HTTP. You need to download jolokia JVM agent from their website: https://jolokia.org/ and transfer the jar file on the server hosting the XUC container (for example in ``/etc/docker/jolokia/jolokia-jvm-1.6.2-agent.jar``).
Then you should change your docker compose configuration for the xuc process in ``docker-xivocc.yml``:
::
xuc:
[...]
ports:
- JMX_HTTP_PORT:JMX_HTTP_PORT
[...]
environment:
- JAVA_OPTS=-Xms512m -Xmx1024m -DtechMetrics.jmxReporter=true -javaagent:/opt/jolokia/jolokia-jvm-1.6.2-agent.jar=port=JMX_HTTP_PORT,host=JMX_HTTP_HOST
[...]
volumes:
- /etc/docker/jolokia:/opt/jolokia
Then restart the XUC process with the new configuration by running the command ``xivocc-dcomp up -d xuc``. The JMX metrics are now available over HTTP, see jolokia website for help on available endpoints: https://jolokia.org/documentation.html
Here are some example url to test:
* List all jmx metrics available: ``curl http://JMX_HTTP_HOST:JMX_HTTP_PORT/jolokia/list``
* Get metrics of a specific service: ``curl http://JMX_HTTP_HOST:JMX_HTTP_PORT/jolokia/read/services.calltracking:type=AsteriskGraphTracker``
Metrics description
===================
Historical metrics
------------------
These metrics were previously exposed in a sub-page of the XUC overview page.
* Xuc.CtiLink.*: Information on the link per user between XUC and ctid on the XiVO PBX
* Xuc.CtiRouter.totalClients: Total number of client connected to the XUC
* Xuc.CtiRouter.<username>.nbOfClients: Number of client connected to the XUC with the given <username>
* Xuc.global.ami.failures: Number of failure/lost connection to the asterisk AMI
New metrics
-----------
* services.CtiRouter.<username>CtiRouter: Information on the currently connected <username>
* services.calltracking.AsteriskGraphTracker
* GraphSize: Size of the call graph
* LoopDetected: Number of call loop detected
* Notifications: Number of Notifications published internally
* Watchers: Number of object monitoring the graph
* services.calltracking.ChannelTracker
* HangupEvents: Number of Hangup received since the process started
* NewChannelEvents: Number of channel created since the process started
* Notifications: Number of Notifications published internally
* Watchers: Number of object monitoring the channels
* services.calltracking.ConferenceTracker
* Conferences: Number of conferences
* Participants: Number of participants
* services.calltracking.DevicesTracker.Devices: Number of monitored device
* services.calltracking.SipDeviceTracker.<SIP_PEER_NAME>: Information about the SIP peer (Phone device)
* Calls: Number of active calls
* ChannelEvent: Number of channel event received
* PartyInformation: Number of event received from remote party
* PathsFromChannel: Number of event received from the AsteriskGraphTracker
* services.calltracking.TrunkDeviceTracker.<TRUNK_NAME>: Information about the trunk, same information as in SipDeviceTracker
* services.calltracking.CustomDeviceTracker.<CUSTOM_NAME>: Information about the custom device, same information as in SipDeviceTracker
* services.calltracking.UnknownDeviceTracker.<CUSTOM_NAME>: Information about other asterisk device, same information as in SipDeviceTracker
Other JVM metrics
-----------------
You may also find these metrics interesting when troubleshooting the process:
* java.lang.Memory.HeapMemoryUsage: Information about the java heap memory
* java.lang.GarbageCollector: Information about the java garbage collector process
......@@ -79,19 +79,29 @@ It is possible to display customer information in an external web application us
* :menuselection:`Services > CTI Server > Sheets > Models`:
* Tab *General Settings*: Give a name
* Tab *Sheet*: You must define a sheet with two fields
* Tab *Sheet*: You must define a sheet with at least ``folderNumber`` and ``popupUrl`` fields set:
* ``folderNumber``
* ``folderNumber`` (MANDATORY)
* field type = ``text``
* It has to be defined. Can be calculated or use a default value not equal to "-"
* Note: You could leave "empty" using a whitespace (in hexadecimal: %20)
* ``popupUrl``
* ``popupUrl`` (MANDATORY)
* field type = ``text``
* The url to open when call arrives : i.e. http://mycrm.com/customerInfo?folder= the folder number will be automatically
appended at the end of the URL
* Additionally to the existing xivo variables, you can also use here the following variables(only available in Web Agent and Desktop Agent):
* ``{xuc-token}``: will be replaced by a token used for xuc websocket and rest api, for example ``http://mycrm.com/customerInfo?token={xuc-token}&folder=``
* ``{xuc-username}``: will be replaced by the username of the logged on user, for example ``http://mycrm.com/customerInfo?username={xuc-username}&folder=``
* ``multiTab`` (OPTIONAL)
* field type = ``text``
* set to the text ``true`` to open each popup in a new window.
* :menuselection:`Services > CTI Server > Sheets > Events`: Choose the right events for opening the URL (if you choose two events, url will opened twice etc.)
......
......@@ -230,6 +230,51 @@ For Firefox:
- add domain (without protocol) to the ``network.negotiate-auth.delegation-uris`` entry (ie. ``xuc.mydomain``).
- add domain (without protocol) to the ``network.negotiate-auth.trusted-uris`` entry (ie. ``xuc.mydomain``).
.. _cas-sso-configuration:
CAS SSO Authentication
=======================
To enable CAS authentication and single sign on feature, you need to have an existing CAS infrastructure. You need to be able to create a service for the XiVOCC environment.
.. warning::
The CAS authentication server must be accessible from the user and the server hosting the XiVOCC containers.
CAS Server users' username must match the XiVO username to allow login on the XiVOCC applications.
The CAS server must support at least CAS Protocol version 2.0.
XiVOCC Configuration
--------------------
* Edit the docker compose file ``/etc/docker/compose/docker-xivocc.yml`` to add the following configuration in the xuc section (use your CAS server URL instead of ``https://cas-server.example.org/cas`` and set ``CAS_LOGOUT_ENABLE`` to ``true`` if you want to logout from CAS when logging out from the application):
.. code-block:: dockerfile
xucmgt:
# ...
environment:
- CAS_SERVER_URL=https://cas-server.example.org/cas
- ...
# ...
xuc:
# ...
environment:
- CAS_SERVER_URL=https://cas-server.example.org/cas
- CAS_LOGOUT_ENABLE=false
- ...
# ...
* Recreate and start the XiVOCC environment:
.. code-block:: shell
xivocc-dcomp up -d
.. _nginx-trusted-certificate:
Install trusted certificate for nginx
......
......@@ -84,10 +84,15 @@ or::
"action":"none"
}
- ``action`` is one of ``"open"`` or ``"none"``
- ``event`` is one of ``"EventRinging"``, ``"EventEstablished"``, ``"EventReleased"``. The third party application will be opened when one the specified event occurs
- ``action`` is one of
- ``open``: Will open the given ``url`` inside the integration pane
- ``popup``: Will open the given ``url`` in a popup
- ``none``: No action will be performed
- ``event`` is one of ``EventRinging``, ``EventEstablished``, ``EventReleased``. The third party application will be opened when one the specified event occurs
- ``url`` should be the url to open inside the application. This url should point to a valid web application that can be specific for each call.
- ``autopause`` if set to true, the agent will be put on pause when the application pane is opened and back to ready when the application is completed.
- ``multitab`` if set to true and ``action`` is set to ``popup``, then the integration will be opened a in new popup window (or tab) each time instead of reusing the same window (or tab).
- ``title`` will set the title of the tabs that will be opened.
**Warning**, when the XucMgt application and the integrated application are on different server, domain, url,... (which should be common case), You may get CORS_ errors. To workaround this issue, you should implement the OPTIONS request on your web service. This method will be called by the browser before issuing the POST request to ensure the target web server allows calls from the original application. You application must set at least the following headers in order to overcome the CORS_ errors:
......
......@@ -99,6 +99,44 @@ where error_code is one of:
This token can then be used with the :ref:`CTI Authentication <cti_authentication>` and :ref:`rest_authentication_check`.
Obtain authentication token (SSO/CAS)
==========================================
GET http://localhost:$xucport/xuc/api/2.0/auth/cas?service=https://xucmgt.example.org&ticket=ST-11-Qsicgrh1mZ3dgoeOx7m6-af27d9025e0c
::
curl -XGET http://localhost:8090/xuc/api/2.0/auth/cas?service=https://xucmgt.example.org&ticket=ST-11-Qsicgrh1mZ3dgoeOx7m6-af27d9025e0c
Will retrieve an object
::
{login: "<login>", token: "<token>"}
or an error
::
{error:"<error_code>", message:"<error_message>"}
where error_code is one of:
* UserNotFound: User was authenticated using SSO but the corresponding user does not exist on XiVO
* CasServerUrlNotSet: XiVOCC containers are not configured (see :ref:`CAS SSO Authentication <cas-sso-configuration>`)
* CasServerInvalidResponse: The CAS server returned an invalid response
* CasServerInvalidParameter: The Parameters sent to the CAS Server are invalid
* CasServerInvalidRequest: The Request to the CAS server is invalid
* CasServerInvalidTicketSpec: The ticket specification is invalid
* CasServerUnauthorizedServiceProxy: The CAS service proxy is not authorized
* CasServerInvalidProxyCallback: The CAS service proxy callback is invalid
* CasServerInvalidTicket: The ticket is invalid (probably expired or defined for another service)
* CasServerInvalidService: The service is invalid
* CasServerInternalError: CAS Server internal error
* UnhandledError
This token can then be used with the :ref:`CTI Authentication <cti_authentication>` and :ref:`rest_authentication_check`.
.. _rest_authentication_check:
Check authentication token
......
......@@ -22,6 +22,36 @@ The XiVO Centralized User Management requires :
- see the next section for limitations on managed XiVOs.
.. _install_docker-ce:
Install Docker-CE
-----------------
.. important::
If you have docker proxy, please remove it from /etc/systemd/system/docker.service.d/mirror.conf, otherwise the installation will fail.
.. code-block:: bash
apt-get remove docker docker-engine docker.io
apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) \
stable"
apt-get update
apt-get install docker-ce
.. _gcu_installation_requirements_for_xivos:
XiVO(s) Requirements & Limitations
......
......@@ -43,7 +43,7 @@ import os
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ['sphinx.ext.todo', 'sphinx_git', 'sphinx.ext.graphviz']
extensions = ['sphinx.ext.todo', 'sphinx.ext.graphviz']
graphviz_output_format = 'svg'
# Add any paths that contain templates here, relative to this directory.
......@@ -62,7 +62,7 @@ master_doc = 'index'
# General information about the project.
project = u'XiVO Solutions'
copyright = u'2016-2017, Avencall'
copyright = u'2016-2019, Avencall'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
......
......@@ -137,7 +137,7 @@ A notification is also shown to display pending callbacks in menu to know status
On this page, the agent only has access to basic information about the callback: activity and due date,
On the left of each callback line, a colored clock indicates the temporal status of this callback:
- `yellow` if the callback is to be processed later
- `blue` if the callback is to be processed later
- `green` if we are currently inside the callback period
- `red` if the callback period is over
......
......@@ -52,16 +52,21 @@ and both queues (name and number) under column **File** in one recording.
Stop recording upon external transfer
-------------------------------------
Recording is stopped when both parties of the call are external.
Recording is stopped when an incoming call is transferred to an external number:
For example if an external incoming call is recorded and if, at some point, it is transferred to an external party,
as soon as the transfer is completed, the recording of the incoming call will be stopped.
In the same way if an internal user makes an outgoing call which is recorded and then transfers it to another external party,
as soon as the transfer is completed, the recording of the outgoing call will be stopped.
* Given a **external incoming call** which is **recorded**,
* If this call is transferred to an external number (via the phone or the UC Assistant or the CC Agent),
* Then, as soon as the transfer is completed, the recording of the **incoming call** will be stopped.
This behavior can be deactivated, see :ref:`configuration section <stop_recording_upon_ext_xfer_conf>`.
.. note:: **Limitations:**
Note that this feature is not intended to work if outgoing calls are recorded. In this case:
* if an external incoming call is transferred to an external number, only the incoming call recording will be stopped. The outgoing call recording won't be stopped.
* if an outgoing call is transferred to another outgoing call, the recording won't be stopped.
Recording filtering
===================
......
......@@ -102,6 +102,11 @@ xivo-aastra-4.3.0
Particularly these new firmwares support forwarding of Multiple Spanning Tree Protocol (MSTP) messages from the LAN port to the PC port.
This ensures issues regarding network loops are not created.
xivo-cisco-spa8000-6.1.11
-------------------------
:v1.1: Fix download of firmware with procedure :ref:`Cisco SPA8000 download firmware <cisco-spa8000-fw-download>`.
xivo-patton-6.10
----------------
......@@ -135,6 +140,7 @@ xivo-polycom-5.4.3
xivo-snom-8.7.5.35
------------------
:v2.4: Internal changes.
:v2.3: Change provisioning of :ref:`login_pause_funckeys` keys to support Wrapup indication.
:v2.2: Add support to SIP Auto-Answer Header (needed for CTI Transfer in Polaris)
:v2.1: DND feature disabled
......@@ -142,11 +148,12 @@ xivo-snom-8.7.5.35
:v1.8: correction for provisioning if there is no DST
xivo-snom-8.9.3.60
xivo-snom-8.9.3.80
------------------
.. note:: Replaces xivo-snom-8.9.3.40 plugin
.. note:: Replaces xivo-snom-8.9.3.60 plugin
:v2.6: Support for fw 8.9.3.80 and use check-sync NOTIFY event with reboot=false.
:v2.5: Change parameter to fix Switchboard answer
:v2.4: Change provisioning of :ref:`login_pause_funckeys` keys to support Wrapup indication.
:v2.3: Add support for D712 and upgrade firmware for 7XX serie.
......@@ -179,6 +186,10 @@ xivo-yealink-v81
.. note:: Replaces xivo-yealink-v80 plugin
:v2.5.0: add XiVO logo for T46G/S and T48G/S
:v2.4.3: fix firmware downloading
:v2.4.2: add provisioning of T27G in firmware v81
:v2.4.1: add provisioning of W52P in firmware v81
:v2.3: switch to default Yealink french translation to fix duplicate label for T48X
.. note:: It leads to several small differences in the labels, for example:
......@@ -213,3 +224,24 @@ xivo-yealink-v81
apt-get update
apt-get install unrar
xivo-yealink-v84
----------------
.. note:: Replaces xivo-yealink-v81 plugin for Yealink T4XS models (and others, see plugin info)
:v1.3.1: Support T40G model (Replaces T40P)
:v1.2: fix answering of second call from UC Assistant or CC Agent
:v1.1: first version of the plugin for fw v84
.. note:: What's new from v81 plugin:
* Small differences for some french labels, for example:
* *Mtr Att* is changed to *Attente*
* *Historique* is changed to *Récents*
* *Répertoires* is changed to *Annuaire*
* New *Station name* with first line display name and number
* XiVO logo for T46S and T48S
* Admin default password was changed
......@@ -37,7 +37,7 @@ Aastra
------
Aastra has been acquired by Mitel in 2014. In XiVO, the 6700 series and 6800 series phones are still
referenced as Aastra phones, for historical and compatibility reasons.
referenced as Aastra phones, for historical and compatibility reasons. There is no evolution or maintenance currently planned for these models.
6700i series
......@@ -310,6 +310,27 @@ must be changed. You can read the :ref:`fax-analog-gateway` section.
* *XIVO_IP* is the IP address of your XiVO,
* *CONF_FILE* is one of ``spa3102.cfg``, ``spa8000.cfg``
.. _cisco-spa8000-fw-download:
**Cisco SPA8000 Firmware Download Procedure**
To install Cisco SPA8000 firmware, you need to manually download
the firmware files from the Cisco website and save them in the
:file:`/var/lib/xivo-provd/plugins/xivo-cisco-spa8000-6.1.11/var/cache` directory.
This directory is created by XiVO when you install the plugin (i.e. xivo-cisco-spa8000-6.1.11).
If you create the directory manually, the installation will fail.
* Go to https://software.cisco.com/
* Go to "Software download"
* In the search bar, search for "SPA8000"
* Click on "Analog Telephone Adaptor (ATA) Firmware"
* Then select under "All Release" the "6" menu, and under the "6" menu, select release "**6.1.11**"
* Finally download the file "**SPA8000_6.1.11_FW.zip**"
* Copy this file into the :file:`/var/lib/xivo-provd/plugins/xivo-cisco-spa8000-6.1.11/var/cache` directory
* Lastly, in the XiVO XiVO web interface, edit the plugin xivo-cisco-spa8000 and you'll then be able to click on the "install" button for the firmware
Cisco 7900 Series
^^^^^^^^^^^^^^^^^
......@@ -442,7 +463,7 @@ The procedure is similar for the network locale and the user locale package, but
Mitel
-----
The Mitel 6700 Series and 6800 Series SIP Phones are supported in XiVO. See the Aastra_ section.
Some Mitel 6700 Series and 6800 Series SIP Phones are supported in XiVO. See the Aastra_ section for supported devices.
Patton
......@@ -779,7 +800,7 @@ Yealink
-------
+--------------------------------------------+------+---------+------+------+---------+------+------+------+------+---------+------+------+------+------+------+------+------+------+------+------+------+
| | T19P | T19P E2 | T20P | T21P | T21P E2 | T22P | T23G | T26P | T28P | T32G | T38G | T40P | T41P | T41S | T42G | T42S | T46G | T46S | T48G | T48S | W52P |
| | T19P | T19P E2 | T20P | T21P | T21P E2 | T22P | T23G | T26P | T28P | T32G | T38G | T40G | T41P | T41S | T42G | T42S | T46G | T46S | T48G | T48S | W52P |
+============================================+======+=========+======+======+=========+======+======+======+======+=========+======+======+======+======+======+======+======+======+======+======+======+
| Provisioning | Y | Y | Y | Y | Y | Y | Y | Y | Y | NT [1]_ | Y | Y | Y | NYT | Y | Y | Y | Y | Y | Y | Y |
+--------------------------------------------+------+---------+------+------+---------+------+------+------+------+---------+------+------+------+------+------+------+------+------+------+------+------+
......@@ -876,7 +897,12 @@ Yealink
| Paging | N | N | Y | Y | Y | Y | NYT | Y | Y | NYT | N | Y | Y | NYT | Y | NYT | Y | NYT | Y | NYT | N |
+--------------------------------------------+------+---------+------+------+---------+------+------+------+------+---------+------+------+------+------+------+------+------+------+------+------+------+
See also the list of :ref:`community supported Yealink models <yealink-community-devices>`.
Particularities:
* For plugin xivo-yealink-v84, default password is **9486** (i.e. the word "xivo" on a telephone keypad).
* See also the list of :ref:`community supported Yealink models <yealink-community-devices>`.
Regarding the W52P (DECT), there is firmware for both the base station and the handset. The base and the
handset are `probably going to work if they are not using the same firmware version
......
......@@ -4,12 +4,18 @@
XiVO Solutions |version| Documentation (Aldebaran Edition)
**********************************************************
.. important:: **What's new in this version ?**
.. warning:: This version is still in development and not yet released.
You should refer to current LTS `XiVO Polaris documentation <https://documentation.xivo.solutions/en/2017.11/>`_.
* XiVO administration web interface has been revamped to make it lighter and more responsive.
* UC assistant can handle conferences with features such as showing participants, including a visual indicator to show who is talking. Added also possibility to Mute/Unmute/Kick participants if you're an organizer of the conference.
* Personal contacts can be managed now from UC assistant. Possibility to add/edit/delete/import your own contacts from the application.
See :ref:`aldebaran_release` page for the complete list of **New Features** and **Behavior Changes**.
.. note:: For previous LTS version, see `XiVO Polaris documentation <https://documentation.xivo.solutions/en/2017.11/>`_.
.. figure:: logo_xivo.png
:scale: 30%
:scale: 70%
XiVO solutions developed by Avencall_ is a suite of PBX applications based on several free existing components including Asterisk_
and our own developments. This powerful and scalable solution offers a set of features for corporate telephony and call centers to power their business.
......
......@@ -26,13 +26,6 @@ XiVO Installation & Upgrade
xivo/xivouc/xivouc
**XiVO Swarm**
.. toctree::
:maxdepth: 1
xivo/xivoorchestration/xivoorchestration
**Upgrading**
.. toctree::
......
......@@ -22,8 +22,8 @@ Installing from the ISO image
.. note:: Our ISO image does not support UEFI system
* 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.
* Boot from the ISO image, select ``Install`` and follow the instructions. You must select locale
``en_US.UTF-8``.
* At the end of the installation, you can continue by running the :ref:`configuration
wizard. <configuration_wizard>`
......@@ -39,10 +39,10 @@ Otherwise GPG key of XiVO repository will not be installed and must be added man
Installing from a minimal Debian installation
=============================================
XiVO can be installed directly over a **64-bit** Debian jessie. When doing so, you are strongly
advised to start with a clean and minimal installation of Debian jessie.
XiVO can be installed directly over a **64-bit** Debian **Jessie**. When doing so, you are strongly
advised to start with a clean and minimal installation of Debian **Jessie**.
The latest installation image for Debian jessie can be found at https://www.debian.org/releases/jessie/debian-installer.
The latest installation image for Debian **Jessie** can be found at https://www.debian.org/releases/jessie/debian-installer.
Requirements
......@@ -51,7 +51,7 @@ Requirements
The installed Debian must:
* use the architecture ``amd64``
* have a default locale with charset UTF-8
* have a default locale ``en_US.UTF-8``
.. note:: In case you want to migrate a XiVO from ``i386`` to ``amd64``, see :ref:`migrate_i386_to_amd64`.
......@@ -59,6 +59,8 @@ The installed Debian must:
Installation
^^^^^^^^^^^^
.. note:: If your server needs a proxy to access Internet, configure the proxy for ``apt``, ``wget`` and ``curl`` as documented in :ref:`system_proxy`.
Once you have your Debian jessie properly installed, download the XiVO installation script and make
it executable::
......@@ -67,7 +69,7 @@ it executable::
And run it::
./xivo_install.sh
./xivo_install.sh -a 2018.05-latest
At the end of the installation, you can continue by running the :ref:`configuration
wizard. <configuration_wizard>`
......
.. _upgrade:
*********
Upgrading
*********
*******
Upgrade
*******
Upgrading a *XiVO PBX* is done by executing commands through a terminal on the
server. You can connect to the server either through SSH or with a physical
console.
server.
.. note:: Downgrade is not supported
Overview
========
To upgrade your *XiVO PBX*, you have to use both ``xivo-dist`` and :ref:`xivo-upgrade <xivo-upgrade_script>` tools.
These tools handle the process of upgrading:
The upgrade consists of the following steps:
* the system (Debian packages)
* and the *XiVO PBX* packages
* switch the version via ``xivo-dist`` utility
* upgrade via the ``xivo-upgrade`` utility: it will upgrade the system (Debian packages) and the *XiVO PBX* packages
.. warning:: The following applies to *XiVO PBX* **>= 2016.03**. For older version, see :ref:`version_specific_upgrade` section.
Preparing the upgrade
=====================
There are two cases:
#. :ref:`Upgrade to an LTS version of XiVO PBX <upgrade_latest_version_xpbx>`,
#. :ref:`Upgrade to an Intermediate version of XiVO PBX <upgrade_specific_version_xpbx>`,
#. :ref:`Upgrade to another LTS XiVO PBX version <upgrade_to_lts_version_xpbx>`,
#. :ref:`Upgrade to the latest Bugfix release <upgrade_latest_ltsbugfixrel_xpbx>` of your current installed LTS version.
.. warning:: Note that it is not possible to downgrade to any version.
.. _upgrade_to_lts_version_xpbx:
Upgrade to another LTS version
------------------------------
To prepare the upgrade you should:
#. Switch the sources to the new XiVO PBX **LTS** version with ``xivo-dist``, for example, to switch to Aldebaran LTS version::
xivo-dist xivo-aldebaran
#. **Read carefully the** :ref:`xivosolutions_release` starting from your current version to the version you target (read **even more
carefully** the New features and Behavior changes between LTS)
#. **Check** the specific instructions and manual steps *from your current LTS to your targetted LTS* and all intermediate LTS: see :ref:`upgrade_lts_manual_steps`
#. **Check also** if you are in a specific setup that requires a :ref:`specific procedure <upgrade_specific_proc>`
to be followed (e.g. :ref:`upgrading-a-cluster`).
#. And then upgrade, see `Upgrading`_
.. _upgrade_latest_version_xpbx:
Upgrade to an **LTS** version
-----------------------------
.. _upgrade_latest_ltsbugfixrel_xpbx:
To upgrade to a XiVO PBX **LTS** version you have to update the sources list by using the `xivo-dist` command::
Upgrade to latest Bugfix release of an LTS version
--------------------------------------------------
xivo-dist <XiVO LTS VERSION>
After the release of an **LTS** *version* (e.g. *Polaris*) we may backport some bugfixes in this version.
We will then create a **subversion** (e.g. Polaris **.04**) shipping these bugfixes.
These bugfix version does not contain any behavior change.
Currently there are two XiVO PBX **LTS** versions:
To upgrade to the **latest subversion** of your current installed *version* you need to:
#. (**latest**) XiVO Polaris (2017.11) - released 2017/10/09::
#. **Read carefully the** :ref:`xivosolutions_release` starting from your installed version (e.g. Polaris.00) to the latest bugfix release (e.g. Polaris.04).
#. Verify that the debian sources list corresponds to your *installed LTS* or refix it, for example for Polaris::
xivo-dist xivo-polaris
#. (*old*) XiVO Five (2017.03) - released 2017/04/03: see `XiVO Five documentation
<https://documentation.xivo.solutions/projects/five>`_.
#. And then upgrade, see `Upgrading`_
.. _upgrade_specific_version_xpbx:
Upgrading
=========
Upgrade to an **Intermediate** version
--------------------------------------
.. note:: About `xivo-upgrade` script usage see :ref:`xivo-upgrade_script`
.. note:: **Intermediate** versions have a limited support. You should install LTS version only.
After having prepared your upgrade (see above), you can upgrade:
Between XiVO PBX LTS versions we release **Intermediate** versions (to which is given a limited support). To upgrade to a *specific* **Intermediate** version, you have to update the sources to point to this *specific* version. You have to do it with the ``xivo-dist`` command. For example, if you want to upgrade to **2017.06**::
#. When ready, launch the upgrade process. **All XiVO PBX services will be stopped during the process**::
xivo-dist xivo-2017.06-latest
xivo-upgrade
#. Download the new config-mgt service::
Preparing the upgrade
=====================
xivo-dcomp pull
To prepare the upgrade you should:
#. Upgrade the config-mgt service::
#. **Read carefully the** :ref:`xivosolutions_release` **starting from your current version to the version you target.**
#. Check if you are in a specific setup that requires a :ref:`specific procedure <upgrade_specific_proc>`
to be followed (e.g. :ref:`upgrading-a-cluster`).
#. Finally, you can download the packages beforehand by running ``xivo-upgrade -d``. This is not mandatory,
but it does not require stopping any service, so it may be useful to reduce the downtime of the server
while upgrading.
xivo-dcomp up -d
Upgrade
=======
Post Upgrade
============
.. note:: About `xivo-upgrade` script see:
When finished:
.. toctree::
:maxdepth: 2
* Check that all services are running::
xivo_upgrade_script
xivo-service status all
* Check that all the docker services are in the correct version. Compare the output of ``xivo-dcomp version`` with the table in :ref:`xivosolutions_release`
* Check that services are correctly working like SIP registration, ISDN link status,
internal/incoming/outgoing calls, XiVO Client connections etc.
#. For custom setups, follow the required procedures described below (e.g. :ref:`upgrading-a-cluster`).
#. When ready, launch the upgrade process. **All XiVO PBX services will be stopped during the process**::
xivo-upgrade
.. _upgrade_lts_manual_steps:
Manual steps for LTS upgrade
============================
.. toctree::
:maxdepth: 1
#. When finished, check that all services are running (the list is displayed at the end of the upgrade).
#. Check that services are correctly working like SIP registration, ISDN link status,
internal/incoming/outgoing calls, XiVO Client connections etc.
upgrade_from_five_to_polaris
upgrade_from_polaris_to_aldebaran
.. _upgrade_specific_proc:
......
***********************
Upgrade Five to Polaris
***********************
In this section are listed the manual steps to do when migrating from Five to Polaris.
Before Upgrade
==============
On XiVO PBX
-----------
Follow the :ref:`upgrade` page.
On XiVO CC
----------
The *xivo-solutions-VERSION* no longer exists. The ``xivocc-installer`` package is now located in *xivo-VERSION* distribution.
You have to update your source list accordingly.
#. Remove apt source list file::
rm /etc/apt/sources.list.d/xivo-solutions.list
#. Add new source list file::
echo "deb http://mirror.xivo.solutions/debian xivo-polaris main" > /etc/apt/sources.list.d/xivo-dist.list
After Upgrade
=============
On XiVO PBX
-----------
* Accept new cel.conf: if you are asked by ``xivo-upgrade`` installer, you must choose to replace the ``cel.conf`` file or ensure
that its content correspond to these :ref:`defaults <cel>`.
* Finish to remove xivo-ctid-ng and xivo-websocketd::
apt-get purge xivo-websocketd xivo-ctid-ng
* Add `writetimeout` parameter to the the :file:`/etc/asterisk/manager.d/02-xivocc.conf` file:
.. code-block:: bash
:emphasize-lines: 7
[xuc]
secret = ...
deny = ...
permit = ...
read = ...
write = ...
writetimeout = 10000
* You **MUST** update:
* *Snom* phones to use plugin version **>=2.2** to be able to use CTI Transfer (UC Assistant or CCAgent),
* *Yealink* phones to use plugin with **v81** firmware to be able to use CTI Transfer (UC Assistant or CCAgent).
* The WebRTC call limit was raised to 2 (to enable transfers). The simultcalls parameter of a WebRTC user should be set to 2 also.
On XiVO CC
----------
* Update new fingerboard::
xivocc-dcomp stop fingerboard
docker rm xivocc_fingerboard_1
xivocc-dcomp up -d
* SpagoBI:
* **Import new reports** as described in :ref:`spagobi` post install step
* Then, you should also remove old sample reports:
* Go to `Reports` menu and delete all reports which are located under **Racine -> Sample**
* Once all reports are deleted inside these folder you can go to `Functionalities Management` menu as shown in following
screenshot:
.. figure:: reportsdelete1.png
:scale: 100%
* From here, you can delete empty folders by clicking on it
.. figure:: reportsdelete2.png
:scale: 100%
* At the end you should have a report folder list, that contains only `Rapports` and `Accueil` folder as seen here (unless
you have some specific customer report):
.. figure:: reportslist.png
:scale: 100%
......@@ -2,7 +2,7 @@
Upgrade Polaris to Aldebaran
****************************
In this section is listed the manual steps to do when migrating from Polaris to Aldebaran.
In this section are listed the manual steps to do when migrating from Polaris to Aldebaran.
Before Upgrade
......@@ -35,9 +35,7 @@ On XiVO PBX
On XiVO CC
----------
* Update distribution to xivo-aldebaran in source list::
echo "deb http://mirror.xivo.solutions/debian xivo-aldebaran main" > /etc/apt/sources.list.d/xivo-dist.list
Nothing specific, follow the :ref:`upgrade_cc` page.
After Upgrade
......@@ -57,6 +55,9 @@ On XiVO PBX
For example an outgoing redirection towards "my_outcall (@to-extern)" to number "0123456789"
can be replaced by an extension redirection to "0123456789" with context "to-extern"
* Callbacks: callback API URL was changed. It is now prefixed with `configmgt`. If you have any AGI calling the callbacks API
(for example `api/1.0/callback_lists`) you MUST add the prefix `configmgt` to it : `configmgt/api/1.0/callback_lists`.
* ConfigMgt service was moved to XiVO PBX. Here's how to migrate the ConfigMgt database:
* On your **XiVO CC** (where the service pgxivocc is run) authorize user root to login with password via ssh,
......
******************
XiVO Orchestration
******************
This page describes how to install XiVO orchestration and how to use it.
The orchestration is done using Docker and its built-in multi-host and multi-container orchestration called **Swarm**.
Prerequisites
=============
.. important::
Your **XiVO PBX** server **MUST** meet the following requirements:
- A swarm manager, which can be your **XiVO PBX** server
- A swarm worker, which can be your **XiVO CC** server
- OS : Debian 8 (jessie), **64 bits**
- **4 GB of RAM**
- 4-core CPU
- 20 GB of free disk space
- you have a *XiVO PBX* installed in a compatible version
- the *XiVO PBX* **is setup** (wizard must be passed) with users, queues and agents, you must be able to place and answer calls
Install process overview
========================
The configuration and deployment is handled by ``xivo-orchestration`` package, which does not come with the XiVO installation.
This package must be installed manually.
The join and leave swarm actions on worker are handled by the script ``xivo-worker-node`` which comes together with ``xivocc-installer`` package.
The deployment consist of minimum 1 manager and minimum 1 worker.
Manager
-------
The swarm initialization is done on the manager which the workers are joining to or leaving from.
The swarm manager can start and stop the services and in XiVO environment the manager will be *XiVO PBX*.
Worker
------
The swarm worker can join or leave the swarm network and behaves passively in terms of swarm management.
.. important::
Your worker may have ``xivocc-installer`` installed, but must not be running any **XiVO CC** components.
All docker containers must be removed before the swarm installation. And the ``xivocc-dcomp`` script must not
be used to start any containers.
Preparation beforehand
======================
- Note XiVO AMI secret from ``/etc/asterisk/manager.d/02-xivocc.conf`` or generate one
.. code-block:: bash
< /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-11} | xargs echo
- On the node running the database (XuC), create the database folder
.. code-block:: bash
mkdir -p /var/lib/postgresql/data
- Gather the hostnames of your nodes, which will be needed during the first run configuration.
Every node must use its unique hostname that will be used in configuration dialogs.
- Create folder for logs on **all** nodes:
.. code-block:: bash
mkdir -p /var/log/xivocc
chown -R daemon:daemon /var/log/xivocc
- On your worker nodes, install ``Docker-CE``, please follow the instructions:
.. _install_docker-ce:
Install Docker-CE
-----------------
.. important::
If you have docker proxy, please remove it from /etc/systemd/system/docker.service.d/mirror.conf, otherwise the installation will fail.
.. code-block:: bash
apt-get remove docker docker-engine docker.io
apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) \
stable"
apt-get update
apt-get install docker-ce
Configure XiVO orchestration
============================
Manager
-------
On *XiVO PBX*, install the ``xivo-orchestration`` package.
.. code-block:: bash
apt-get install xivo-orchestration-service
Run and follow the instructions on dialog screens.
.. code-block:: bash
xivo-orchestration start
Copy the worker token after successful swarm manager initialization.
.. code-block:: bash
docker swarm join-token worker | grep token | awk '{ print $5 }'
SpagoBI
^^^^^^^
Edit the compose file for the chosen installation, find section ``spagobi`` and replace ``${REPORTING_HOST}`` with
IP address of the node with SpagoBI.
.. code-block:: bash
- JAVA_OPTS=-Dexternal.host=REPORTING_HOST_IP
PostgresSQL
^^^^^^^^^^^
Then reload PostgreSQL configuration and start the swarm.
.. code-block:: bash
/etc/init.d/postgresql restart
XiVO-UC
^^^^^^^
If you chose to install XiVO UC on a single node, you must manually remove the ``nginx`` section from the
``/etc/docker/swarm/xivo-compose-xivouc.yml`` compose file.
Worker
------