...
 
Commits (109)
...@@ -20,7 +20,7 @@ endif ...@@ -20,7 +20,7 @@ endif
envs/bin/sphinx-build: envs/bin/sphinx-build:
python2.7 -mvirtualenv --system-site-packages envs 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 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 sphinx_rtd_theme
...@@ -50,15 +50,15 @@ Here is the list of folders and files that are backed-up: ...@@ -50,15 +50,15 @@ Here is the list of folders and files that are backed-up:
* :file:`/etc/consul/` * :file:`/etc/consul/`
* :file:`/etc/crontab` * :file:`/etc/crontab`
* :file:`/etc/dahdi/` * :file:`/etc/dahdi/`
* :file:`/etc/dhcp/` * :file:`/etc/dhcp/` ⚠️️ This will overwrite the network configuration when the backup is restored ⚠
* :file:`/etc/hostname` * :file:`/etc/hostname` ⚠️️ This will overwrite the network configuration when the backup is restored ⚠
* :file:`/etc/hosts` * :file:`/etc/hosts` ⚠️️ This will overwrite the network configuration when the backup is restored ⚠
* :file:`/etc/ldap/` * :file:`/etc/ldap/`
* :file:`/etc/network/if-up.d/xivo-routes` * :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/ntp.conf`
* :file:`/etc/profile.d/xivo_uuid.sh` * :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/ssl/`
* :file:`/etc/systemd/` * :file:`/etc/systemd/`
* :file:`/etc/wanpipe/` * :file:`/etc/wanpipe/`
...@@ -86,6 +86,8 @@ Here is the list of folders and files that are backed-up: ...@@ -86,6 +86,8 @@ Here is the list of folders and files that are backed-up:
* :file:`/var/log/asterisk/` * :file:`/var/log/asterisk/`
* :file:`/var/spool/asterisk/` * :file:`/var/spool/asterisk/`
* :file:`/var/spool/cron/crontabs/` * :file:`/var/spool/cron/crontabs/`
* :file:`/etc/docker/`
* :file:`/etc/fail2ban/`
The following files/folders are excluded from this backup: 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 ...@@ -164,6 +166,12 @@ A backup of both the configuration files and the database used by a XiVO install
automatically every day. automatically every day.
These backups are created in the :file:`/var/backups/xivo` directory and are kept for 7 days. 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 Limitations
=========== ===========
...@@ -285,4 +293,4 @@ Restart the services you stopped in the first step:: ...@@ -285,4 +293,4 @@ Restart the services you stopped in the first step::
xivo-service start 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). ...@@ -28,7 +28,7 @@ Authority (CA).
The default certificate is untrusted The default certificate is untrusted
==================================== ------------------------------------
To make the HTTP client accept this certificate, you have two choices: To make the HTTP client accept this certificate, you have two choices:
...@@ -42,12 +42,12 @@ Use your own certificate ...@@ -42,12 +42,12 @@ Use your own certificate
For this, follow these steps: 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` * Private key: :file:`/usr/share/xivo-certs/server.key`
* Certificate: :file:`/usr/share/xivo-certs/server.crt` * 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 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 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 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: ...@@ -72,15 +72,35 @@ For this, follow these steps:
ln -s "/etc/xivo/custom/custom-certificate.yml" "$config_dir/010-custom-certificate.yml" ln -s "/etc/xivo/custom/custom-certificate.yml" "$config_dir/010-custom-certificate.yml"
done done
Also, you must replace ``localhost`` in the definition of your directories in the web interface #. 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.
under :menuselection:`Configuration --> Directories`.
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, 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 verification is set to consider ``/usr/share/xivo-certs/server.crt`` as the only CA
certificate. 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`` * Consul: ``verify: True``
* Other XiVO services: ``verify_certificate: True`` * Other XiVO services: ``verify_certificate: True``
...@@ -104,10 +124,10 @@ For this, follow these steps: ...@@ -104,10 +124,10 @@ For this, follow these steps:
machine, however, this is dangerous when XiVO services are separated by an untrusted network, machine, however, this is dangerous when XiVO services are separated by an untrusted network,
such as the Internet. 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 * 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: 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 #. modify :file:`/usr/share/xivo-sysconfd/templates/resolvconf/hosts` instead (which will be
...@@ -116,6 +136,6 @@ For this, follow these steps: ...@@ -116,6 +136,6 @@ For this, follow these steps:
modification to :file:`/usr/share/xivo-sysconfd/templates/resolvconf/hosts` after each modification to :file:`/usr/share/xivo-sysconfd/templates/resolvconf/hosts` after each
``xivo-upgrade``. ``xivo-upgrade``.
5. Restart all XiVO services:: #. Restart all XiVO services::
xivo-service restart all xivo-service restart all
.. _system_proxy:
******************* *******************
Proxy Configuration Proxy Configuration
******************* *******************
...@@ -5,36 +7,88 @@ Proxy Configuration ...@@ -5,36 +7,88 @@ Proxy Configuration
If you use XiVO behind an HTTP proxy, you must do a couple of manipulations for If you use XiVO behind an HTTP proxy, you must do a couple of manipulations for
it to work correctly. 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 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:: Create the :file:`/etc/apt/apt.conf.d/90proxy` file with the following content::
Acquire::http::Proxy "http://domain\username:password@proxyip:proxyport"; 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 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. Proxy information is set via the :file:`/etc/xivo/dhcpd-update.conf` file.
Edit the file and look for the ``[proxy]`` section. 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 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. Proxy information is set via the :file:`/etc/xivo/xivo-fetchfw.conf` file.
......
...@@ -26,4 +26,5 @@ System ...@@ -26,4 +26,5 @@ System
xivo-dird-phoned <xivo-dird-phoned> xivo-dird-phoned <xivo-dird-phoned>
xivo-purge-db <purge_logs> xivo-purge-db <purge_logs>
xivo-service <service> xivo-service <service>
xivo-upgrade <xivo_upgrade_script>
xivo-sysconfd <xivo-sysconfd> xivo-sysconfd <xivo-sysconfd>
################# *****************
NGINX - proxy web NGINX - proxy web
################# *****************
Basic check Basic check
=========== ===========
......
*********
Reporting Reporting
========= *********
xivo_replic does not replicate call data 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:: 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 PostgreSQL
========== **********
Container keeps on restarting after upgrade 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 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:
***************
Troubleshooting Troubleshooting
=============== ***************
Transfers using DTMF Transfers using DTMF
-------------------- ====================
When transfering a call using DTMF (\*1) you get an *invalid extension* error when dialing the When transfering a call using DTMF (\*1) you get an *invalid extension* error when dialing the
extension. extension.
...@@ -29,7 +30,7 @@ to be able to transfer the called person to another extension. ...@@ -29,7 +30,7 @@ to be able to transfer the called person to another extension.
.. _fax-detection: .. _fax-detection:
Fax detection Fax detection
------------- =============
XiVO **does not currently support Fax detection**. The following describe a workaround to use this 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 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 ...@@ -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:
Berofos Integration with PBX Berofos Integration with PBX
---------------------------- ============================
You can use a Berofos failover switch to secure the ISDN provider lines You can use a Berofos failover switch to secure the ISDN provider lines
when installing a XiVO in front of an existing PBX. 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. ...@@ -161,7 +162,7 @@ The following describes how to configure your XiVO and your Berofos.
Upgrading from XiVO 1.2.3 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:: #. 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 ...@@ -191,7 +192,7 @@ Upgrading from XiVO 1.2.3
.. _cti-ami-proxy: .. _cti-ami-proxy:
CTI server is unexpectedly terminating CTI server is unexpectedly terminating
-------------------------------------- ======================================
If you observes that your CTI server is sometimes unexpectedly terminating with the following If you observes that your CTI server is sometimes unexpectedly terminating with the following
message in :file:`/var/log/xivo-ctid.log`:: message in :file:`/var/log/xivo-ctid.log`::
...@@ -236,7 +237,7 @@ To disable the ami-proxy:: ...@@ -236,7 +237,7 @@ To disable the ami-proxy::
Agents receiving two ACD calls Agents receiving two ACD calls
------------------------------ ==============================
.. warning:: Procedure was removed since bug was fixed in asterisk version shipped in 2017.LTS1 (2017.03) .. 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 ...@@ -244,7 +245,7 @@ Agents receiving two ACD calls
.. _postgresql_localization_errors: .. _postgresql_localization_errors:
PostgreSQL localization errors PostgreSQL localization errors
------------------------------ ==============================
The database and the underlying `database cluster`_ used by XiVO is sensitive to the system locale 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 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 ...@@ -269,7 +270,7 @@ When working with locale and PostgreSQL, there's a few useful commands and thing
Database cluster is not starting Database cluster is not starting
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --------------------------------
If the database cluster doesn't start and you have the following errors in your log file:: 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. ...@@ -292,7 +293,7 @@ Once this is done, restart your database cluster.
Can't connect to the database Can't connect to the database
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -----------------------------
If the database cluster is up but you get the following error when trying to connect to the If the database cluster is up but you get the following error when trying to connect to the
``asterisk`` database:: ``asterisk`` database::
...@@ -310,13 +311,13 @@ two choices to fix this issue: ...@@ -310,13 +311,13 @@ two choices to fix this issue:
Error during the upgrade Error during the upgrade
^^^^^^^^^^^^^^^^^^^^^^^^ ------------------------
Then you are mostly in one of the cases described above. Check your log file. Then you are mostly in one of the cases described above. Check your log file.
Error while restoring a database backup Error while restoring a database backup
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---------------------------------------
If during a database restore, you get the following error:: If during a database restore, you get the following error::
...@@ -339,7 +340,7 @@ your system. You have two choices to fix this issue: ...@@ -339,7 +340,7 @@ your system. You have two choices to fix this issue:
Error during master-slave replication Error during master-slave replication
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -------------------------------------
Then the slave database is most likely not using an UTF-8 encoding. You'll need to 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>` :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 ...@@ -348,7 +349,7 @@ Then the slave database is most likely not using an UTF-8 encoding. You'll need
.. _postgres-change-locale: .. _postgres-change-locale:
Changing the locale (LC_COLLATE and LC_CTYPE) of the database Changing the locale (LC_COLLATE and LC_CTYPE) of the database
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -------------------------------------------------------------
If you have decided to change the locale of your database, you must: 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 ...@@ -380,7 +381,7 @@ For more information, consult the `official documentation on PostgreSQL localiza
Originate a call from the Asterisk console Originate a call from the Asterisk console
------------------------------------------ ==========================================
It is sometimes useful to ring a phone from the asterisk console. For example, if you want 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``:: to call the ``1234`` extension in context ``default``::
...@@ -388,7 +389,7 @@ 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 channel originate Local/1234@default extension 42@xivo-callme
WebRTC WebRTC
------ ======
* `http.conf` - asterisk's webserver must accept connection from outside, the listen address must be updated, for the sake of * `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: 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) Xuc & Xucmgt (CC & UC applications)
################################### ***********************************
Basic checks
============
XUC overview page 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" 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. contains agents, queues etc.
XUC sample page 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 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. 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 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 ...@@ -79,19 +79,29 @@ It is possible to display customer information in an external web application us
* :menuselection:`Services > CTI Server > Sheets > Models`: * :menuselection:`Services > CTI Server > Sheets > Models`:
* Tab *General Settings*: Give a name * 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`` * field type = ``text``
* It has to be defined. Can be calculated or use a default value not equal to "-" * 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) * Note: You could leave "empty" using a whitespace (in hexadecimal: %20)
* ``popupUrl`` * ``popupUrl`` (MANDATORY)
* field type = ``text`` * field type = ``text``
* The url to open when call arrives : i.e. http://mycrm.com/customerInfo?folder= the folder number will be automatically * 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 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.) * :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: ...@@ -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.delegation-uris`` entry (ie. ``xuc.mydomain``).
- add domain (without protocol) to the ``network.negotiate-auth.trusted-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: .. _nginx-trusted-certificate:
Install trusted certificate for nginx Install trusted certificate for nginx
......
...@@ -84,10 +84,15 @@ or:: ...@@ -84,10 +84,15 @@ or::
"action":"none" "action":"none"
} }
- ``action`` is one of ``"open"`` or ``"none"`` - ``action`` is one of
- ``event`` is one of ``"EventRinging"``, ``"EventEstablished"``, ``"EventReleased"``. The third party application will be opened when one the specified event occurs
- ``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. - ``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. - ``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. - ``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: **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: ...@@ -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`. 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: .. _rest_authentication_check:
Check authentication token Check authentication token
......
...@@ -22,6 +22,36 @@ The XiVO Centralized User Management requires : ...@@ -22,6 +22,36 @@ The XiVO Centralized User Management requires :
- see the next section for limitations on managed XiVOs. - 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: .. _gcu_installation_requirements_for_xivos:
XiVO(s) Requirements & Limitations XiVO(s) Requirements & Limitations
......
...@@ -43,7 +43,7 @@ import os ...@@ -43,7 +43,7 @@ import os
# Add any Sphinx extension module names here, as strings. They can be # Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones. # ones.
extensions = ['sphinx.ext.todo', 'sphinx_git', 'sphinx.ext.graphviz'] extensions = ['sphinx.ext.todo', 'sphinx.ext.graphviz']
graphviz_output_format = 'svg' graphviz_output_format = 'svg'
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
...@@ -62,7 +62,7 @@ master_doc = 'index' ...@@ -62,7 +62,7 @@ master_doc = 'index'
# General information about the project. # General information about the project.
project = u'XiVO Solutions' 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 # The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the # |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 ...@@ -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 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: 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 - `green` if we are currently inside the callback period
- `red` if the callback period is over - `red` if the callback period is over
......
...@@ -52,16 +52,21 @@ and both queues (name and number) under column **File** in one recording. ...@@ -52,16 +52,21 @@ and both queues (name and number) under column **File** in one recording.
Stop recording upon external transfer 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, * Given a **external incoming call** which is **recorded**,
as soon as the transfer is completed, the recording of the incoming call will be stopped. * 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.
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.
This behavior can be deactivated, see :ref:`configuration section <stop_recording_upon_ext_xfer_conf>`. 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 Recording filtering
=================== ===================
......
...@@ -102,6 +102,11 @@ xivo-aastra-4.3.0 ...@@ -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. 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. 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 xivo-patton-6.10
---------------- ----------------
...@@ -135,6 +140,7 @@ xivo-polycom-5.4.3 ...@@ -135,6 +140,7 @@ xivo-polycom-5.4.3
xivo-snom-8.7.5.35 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.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.2: Add support to SIP Auto-Answer Header (needed for CTI Transfer in Polaris)
:v2.1: DND feature disabled :v2.1: DND feature disabled
...@@ -142,11 +148,12 @@ xivo-snom-8.7.5.35 ...@@ -142,11 +148,12 @@ xivo-snom-8.7.5.35
:v1.8: correction for provisioning if there is no DST :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.5: Change parameter to fix Switchboard answer
:v2.4: Change provisioning of :ref:`login_pause_funckeys` keys to support Wrapup indication. :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. :v2.3: Add support for D712 and upgrade firmware for 7XX serie.
...@@ -179,6 +186,10 @@ xivo-yealink-v81 ...@@ -179,6 +186,10 @@ xivo-yealink-v81
.. note:: Replaces xivo-yealink-v80 plugin .. 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 :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: .. note:: It leads to several small differences in the labels, for example:
...@@ -213,3 +224,24 @@ xivo-yealink-v81 ...@@ -213,3 +224,24 @@ xivo-yealink-v81
apt-get update apt-get update
apt-get install unrar 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 ...@@ -37,7 +37,7 @@ Aastra
------ ------
Aastra has been acquired by Mitel in 2014. In XiVO, the 6700 series and 6800 series phones are still 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 6700i series
...@@ -310,6 +310,27 @@ must be changed. You can read the :ref:`fax-analog-gateway` section. ...@@ -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, * *XIVO_IP* is the IP address of your XiVO,
* *CONF_FILE* is one of ``spa3102.cfg``, ``spa8000.cfg`` * *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 Cisco 7900 Series
^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
...@@ -442,7 +463,7 @@ The procedure is similar for the network locale and the user locale package, but ...@@ -442,7 +463,7 @@ The procedure is similar for the network locale and the user locale package, but
Mitel 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 Patton
...@@ -779,7 +800,7 @@ Yealink ...@@ -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 | | 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 ...@@ -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 | | 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 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 handset are `probably going to work if they are not using the same firmware version
......
...@@ -4,12 +4,18 @@ ...@@ -4,12 +4,18 @@
XiVO Solutions |version| Documentation (Aldebaran Edition) XiVO Solutions |version| Documentation (Aldebaran Edition)
********************************************************** **********************************************************
.. important:: **What's new in this version ?**
.. warning:: This version is still in development and not yet released. * XiVO administration web interface has been revamped to make it lighter and more responsive.
You should refer to current LTS `XiVO Polaris documentation <https://documentation.xivo.solutions/en/2017.11/>`_. * 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 .. 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_ 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. 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 ...@@ -26,13 +26,6 @@ XiVO Installation & Upgrade
xivo/xivouc/xivouc xivo/xivouc/xivouc
**XiVO Swarm**
.. toctree::
:maxdepth: 1
xivo/xivoorchestration/xivoorchestration
**Upgrading** **Upgrading**
.. toctree:: .. toctree::
......
...@@ -22,8 +22,8 @@ Installing from the ISO image ...@@ -22,8 +22,8 @@ Installing from the ISO image
.. note:: Our ISO image does not support UEFI system .. note:: Our ISO image does not support UEFI system
* Download the ISO image. (`latest version`_) (`all versions`_) * Download the ISO image. (`latest version`_) (`all versions`_)
* Boot from the ISO image, select ``Install`` and follow the instructions. You must select a locale * Boot from the ISO image, select ``Install`` and follow the instructions. You must select locale
with charset UTF-8. ``en_US.UTF-8``.
* At the end of the installation, you can continue by running the :ref:`configuration * At the end of the installation, you can continue by running the :ref:`configuration
wizard. <configuration_wizard>` wizard. <configuration_wizard>`
...@@ -39,10 +39,10 @@ Otherwise GPG key of XiVO repository will not be installed and must be added man ...@@ -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 Installing from a minimal Debian installation
============================================= =============================================
XiVO can be installed directly over a **64-bit** Debian jessie. When doing so, you are strongly 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. 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 Requirements
...@@ -51,7 +51,7 @@ Requirements ...@@ -51,7 +51,7 @@ Requirements
The installed Debian must: The installed Debian must:
* use the architecture ``amd64`` * 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`. .. 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: ...@@ -59,6 +59,8 @@ The installed Debian must:
Installation 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 Once you have your Debian jessie properly installed, download the XiVO installation script and make
it executable:: it executable::
...@@ -67,7 +69,7 @@ it executable:: ...@@ -67,7 +69,7 @@ it executable::
And run it:: 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 At the end of the installation, you can continue by running the :ref:`configuration
wizard. <configuration_wizard>` wizard. <configuration_wizard>`
......
.. _upgrade: .. _upgrade:
********* *******
Upgrading Upgrade
********* *******
Upgrading a *XiVO PBX* is done by executing commands through a terminal on the 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 server.
console.
.. note:: Downgrade is not supported
Overview Overview
======== ========
To upgrade your *XiVO PBX*, you have to use both ``xivo-dist`` and :ref:`xivo-upgrade <xivo-upgrade_script>` tools. The upgrade consists of the following steps:
These tools handle the process of upgrading:
* the system (Debian packages) * switch the version via ``xivo-dist`` utility
* and the *XiVO PBX* packages * 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. .. 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: There are two cases:
#. :ref:`Upgrade to an LTS version of XiVO PBX <upgrade_latest_version_xpbx>`, #. :ref:`Upgrade to another LTS XiVO PBX version <upgrade_to_lts_version_xpbx>`,
#. :ref:`Upgrade to an Intermediate version of XiVO PBX <upgrade_specific_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 xivo-dist xivo-polaris
#. (*old*) XiVO Five (2017.03) - released 2017/04/03: see `XiVO Five documentation #. And then upgrade, see `Upgrading`_
<https://documentation.xivo.solutions/projects/five>`_.
.. _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.** xivo-dcomp up -d
#. 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.
Upgrade Post Upgrade
======= ============
.. note:: About `xivo-upgrade` script see: When finished:
.. toctree:: * Check that all services are running::
:maxdepth: 2
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). upgrade_from_five_to_polaris
#. Check that services are correctly working like SIP registration, ISDN link status, upgrade_from_polaris_to_aldebaran
internal/incoming/outgoing calls, XiVO Client connections etc.
.. _upgrade_specific_proc: .. _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 @@ ...@@ -2,7 +2,7 @@
Upgrade Polaris to Aldebaran 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 Before Upgrade
...@@ -35,9 +35,7 @@ On XiVO PBX ...@@ -35,9 +35,7 @@ On XiVO PBX
On XiVO CC On XiVO CC
---------- ----------
* Update distribution to xivo-aldebaran in source list:: Nothing specific, follow the :ref:`upgrade_cc` page.
echo "deb http://mirror.xivo.solutions/debian xivo-aldebaran main" > /etc/apt/sources.list.d/xivo-dist.list
After Upgrade After Upgrade
...@@ -57,6 +55,9 @@ On XiVO PBX ...@@ -57,6 +55,9 @@ On XiVO PBX
For example an outgoing redirection towards "my_outcall (@to-extern)" to number "0123456789" 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" 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: * 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, * 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**