Archived Upgrade Notes
2020
20.17
- The recording files for online recording, i.e. recording started during a call, are now stored at
/var/lib/wazo/sounds/tenants/*/monitor. Old recordings are available at/var/spool/asterisk/monitor/and must be moved manually to the new path.
Consult the 20.17 Tickets for more information.
20.16
- The
i386(32 bits) architecture is now deprecated and will be removed in 21.01 from our debian repository and CI. See Migrate from i386 to amd64 for more information. - wazo-auth ACL template feature has been removed. There are no more rendering template that will be done for ACL. Endpoints and fields have been deprecated. See wazo-auth changelog 20.16
- wazo-dird backend plugins now support
match_allmethod. See wazo-dird for more information - Asterisk configuration files in
/etc/asteriskare required to have a name ending with.confto be applied.
Consult the 20.16 Tickets for more information.
20.15
-
This version contains a security update for Asterisk. All systems should be upgraded.
Consult the 20.15 Tickets for more information.
20.14
xivo-statcommand has been renamed towazo-stat
Consult the 20.14 Tickets for more information.
20.13
-
The SIP endpoint configuration has been changed to reflect the Asterisk configuration file. If you are using one of the following API, you should update your application to the new body of the response before upgrading.
GET /api/confd/1.1/endpoints/sipGET /api/confd/1.1/endpoints/sip/<id>GET /api/confd/1.1/users/<id>/lines/main/associated/endpoints/sipGET /api/confd/1.1/users/<id>/lines/<id>/associated/endpoints/sip
-
The ID field of a SIP endpoint is now a UUID instead of a numerical ID.
-
The generated SIP configuration file has changed. If you did manual configuration, your changes have to be reviewed to match the new format. If you use a file to add options, you will be able to add all options to your endpoint configuration. All options are now available through the API. Here is a list of the changes:
- The name of the registration sections has changed
-
The general SIP configuration used to be shared by all tenants. A new template has been created for each tenant based on the old general SIP configuration. This new template is labeled
globaland can be used to change the configuration of lines and trunks within a tenant. -
When creating a line or a tenant you should use the
globaltemplate if you want your new resource to inherit from theglobalSIP configuration of your tenant.
Consult the 20.13 Tickets for more information.
20.12
Consult the 20.12 Tickets for more information.
20.11
Consult the 20.11 Tickets for more information.
20.10
Consult the 20.10 Tickets for more information.
20.09
-
The wazo-confgend module that generates the SIP configuration for
chan_siphas been removed. If you are still usingchan_sipyou will have to remove your custom configuration to usepjsip. -
The TLS configuration has been deprecated on the following services. You should always use NGINX to proxy communication with wazo-platform services. To follow this change, the listen address has been changed to 127.0.0.1 by default.
- wazo-chatd
- wazo-plugind
- wazo-provd
- wazo-setupd
- wazo-websocketd
Consult the 20.09 Tickets for more information.
20.08
-
The TLS configuration has been deprecated on the following services. You should always use NGINX to proxy communication with wazo-platform services. To follow this change, the listen address has been changed to 127.0.0.1 by default.
- wazo-agentd
- wazo-calld
- wazo-call-logd
- wazo-webhookd
-
wazo-agentdhttp configuration section has been moved to the rest_api section, eg:rest_api: https: listen: <ip> port: <port>becomes:
rest_api: listen: <ip> port: <port>
Consult the 20.08 Tickets for more information.
20.07
-
The TLS configuration has been deprecated on the following services. You should always use NGINX to proxy communication with wazo-platform services. To follow this change, the listen address has been changed to 127.0.0.1 by default.
- wazo-confd
- wazo-dird
Consult the 20.07 Tickets for more information.
20.06
-
The TLS configuration has been deprecated on the following services. You should always use NGINX to proxy communication with wazo-platform services. To follow this change, the listen address has been changed to 127.0.0.1 by default.
- wazo-auth
Consult the 20.06 Tickets for more information.
20.05
-
wazo-amid,wazo-plugindandwazo-dirdhttp configuration section have been moved onto the rest_api section, eg:rest_api: https: listen: <ip> port: <port> certificate: </path/to/cert> private_key: </path/to/key>becomes:
rest_api: listen: <ip> port: <port> certificate: </path/to/cert> private_key: </path/to/key> -
The TLS configuration has been deprecated on the following services. You should always use NGINX to proxy communication with wazo-platform services. To follow this change, the listen address has been changed to 127.0.0.1 by default.
- wazo-amid
-
There is now an API to manage SIP transports. This means that the transport of a SIP endpoint is not predefined anymore. If you relied on the fact that a SIP endpoint used the transport
wssto know whether or not it is a WebRTC endpoint you should change your logic to check ifwebrtcequals toyes.
Consult the 20.05 Tickets for more information.
20.04
- The PJSIP
GlobalandSystemconfiguration options are now configured using/1.1/asterisk/pjsip/globaland/1.1/asterisk/pjsip/system. Options added to the/1.1/asterisk/sip/generalthat used to be mapped to one of these sections have been migrated to the new API and the mapping from chan_sip to chan_pjsip has been removed for those 2 sections.
Consult the 20.04 Tickets for more information.
20.03
- The email template in wazo-auth now use the incoming HTTP request host and port to fill the template instead of the service discovery configuration. If you have a customized template that inconditionally uses the port it should be modified for cases where the port is not used.
- The
xivo-aastra-2.6.0.2019phone provisioning plugin has been removed. The decision was made after it was discovered that the firmware was nowhere to be found. If you still want to use it, it is in thearchivephone plugin repository.
Consult the 20.03 Tickets for more information.
20.02
Consult the 20.02 Tickets for more information.
20.01
- The default protocol configured for consul is now
HTTPinstead ofHTTPSsince it's only available onlocalhost. TheHTTPSremains available via the port8501.
Consult the 20.01 Tickets for more information.
2019
19.17
-
The default Ansible installation installs the development version of Wazo Platform. If you have not changed the
wazo_distribution_upgradevariable, all the subsequent upgrades will stay on the development version. This is the expected behavior, but it was not visible in the installation procedure. To make your Wazo Platform use the stable version, use the following command:wazo-dist -m pelican-busterThis command will take effect at the next Wazo Platform upgrade.
-
wazo-dirdphone plugins have been migrated towazo-phoned. If you used the phone routes fromwazo-dirddirectly, you must use the new routes inwazo-phoned. -
The conference rooms created in Wazo 18.03 or before (using asterisk
meetmemodule) will not work anymore because they rely on DAHDI. If you were still using those conference rooms, you must create new conference rooms using the conferences API or thewazo-uiinterface. -
DAHDIis not longer a mandatory dependency of Wazo: it will not be installed on new installs anymore. Upgraded Wazo Platform will keep DAHDI installed if it was configured in/etc/asterisk/dahdi_channels.conf. Otherwise, DAHDI will be removed. -
Some dependencies have been removed from the
asteriskpackage. If you used one of the following modules you must install thewazo-asterisk-extra-modulesto keep using those modules. Note that all modules listed here are disabled by default on Wazo. You have to manually modify/etc/asterisk/modules.confto use them.app_jackcdr_pgsqlcdr_radiuscdr_tdscel_radiuscel_tdschan_alsochan_consolechan_mgcpchan_motifchan_osschan_phonechan_skinnychan_unistimres_calendar_caldavres_calendar_ewsres_calendar_exchangeres_calendar_icalendarres_calendarres_snmpres_xmpp
Consult the 19.17 Tickets for more information.
19.16
-
xivo-amid-clienthas been renamed towazo-amid-client -
wazo-authhttp configuration section have been moved onto therest_apisection, eg:rest_api: https: listen: <ip> port: <port> certificate: </path/to/cert> private_key: </path/to/key>becomes:
rest_api: listen: <ip> port: <port> certificate: </path/to/cert> private_key: </path/to/key> -
The default value for Asterisk PJSIP configuration parameter
rtptimeouthas been set to 7200 seconds on new installs only. The change was done to automatically delete ghost calls that might get stuck. If you wish to modify this value, use the/asterisk/sip/generalendpoint inwazo-confdAPI.
Consult the 19.16 Tickets for more information.
19.15
- We have standardize the stevedore entry point namespace for our python client. If you have custom
plugins, Be sure to use the full client name for the namespace. (e.g.
auth_client.commands-->wazo_auth_client.commands) - The directed call pickup extension
*8XXXXhas been disabled by default on new installations, because it made it possible for any user to pickup any other user, including users for whom it should not be possible. This does not apply to upgrades, but if you wish to disable this feature, you can do it withwazo-confd/extensions/featuresAPI endpoint.
Consult the 19.15 Tickets for more information.
19.14
-
A new version (v2) of websocket protocol has been created. See Wazo WebSocket for more information
The v1 is now deprecated and should not be used anymore. Also it does not return the attribute
msgin all payloads as it was always empty. -
xivo-confgendhas been renamed towazo-confgend- The custom configuration files have been moved to
/etc/wazo-confgend/conf.d - The log file has been renamed to
wazo-confgend.log - The plugin entry points have been renamed from
xivotowazo. Plugins enabled in custom configuration files should use the new name. - The entry point identifier has been changed from
xivo_confgendtowazo_confgend. If you have developed custom plugins for confgend you should use the new identifier in yoursetup.py.
- The custom configuration files have been moved to
-
xivo-confgend-clienthas been renamed towazo-confgend-client- If you used the
xivo-confgenCLI tool you will now have to usewazo-confgen
- If you used the
-
If you are upgrading a Wazo that was originally installed in 18.03 or earlier, the old directory configuration is now replaced with a new profile
defaultfor each tenant. The migration of the old directory configuration must be done manually, since there is no way to automatically detect the tenant for each directory configuration. To allow this migration, the old configuration is dumped in/var/backups/xivo/dird_sources.ymlduring the upgrade to Wazo Platform 19.14. The administrator must then recreate the directory configuration manually using the API or web interface. -
There is a known bug that will remove pre-recorded sound files provided by the
xivo-sounds-*, .e.gxivo-sounds-fr-ca. If you had installed one of these packages manually, you need to install the correspondingwazo-sounds-*package manually, e.g.wazo-sounds-fr-ca. Upgrades to Wazo >= 19.15 are not affected by this bug.
Consult the 19.14 Tickets for more information.
19.13
-
Debian has been upgraded from version 9 (stretch) to 10 (buster). Please consult the following detailed upgrade notes for more information:
-
xivo-amidhas been renamed towazo-amid- The custom configuration has been moved to
/etc/wazo-amid/conf.d/. - The log file has been renamed to
wazo-amid.log. - The NGINX proxy has been recreated in
/etc/nginx/locations/https-enabled/wazo-amid.
- The custom configuration has been moved to
Consult the 19.13 Tickets for more information.
19.12
General
-
All administration interfaces
xivo-web-interfaceandwazo-admin-uihave been removed. They are replaced bywazo-ui. To install it, run the following command after the upgrade:apt install wazo-ui. -
The Wazo Client and
xivo-ctidhave been removed. -
wazo-dirdis now configured using its REST API. The previous configuration files have been removed and a new profiledefaultis now created for each new tenant. -
Entity concept has been replaced by
Tenant. The previous concept was not completely sealed and we have fixed it with thetenant.-
Existing devices are migrated automatically to the tenant of their first associated line. If a device is in autoprov mode, it will be migrated to the default tenant. See Introduction for more information on how device tenants are handled.
-
Agents are now multi-tenant. Agents created using the rest API that were not logged into a queue and that were not associated to a user have been deleted.
-
Skills are migrated to the tenant of the agent with whom they are associated. If a skill was not associated with an agent, it has been deleted.
-
All the existing skill rules have been associated to the tenant of the first queue found in the database. If there were no queue configured in the system, the skill rules have been deleted.
-
Call logs are now multi-tenant. Each call log that cannot be associated to a tenant has been associated to the
mastertenant. Also, for all call logs created after the upgrade, if the tenant cannot be extracted from call information, they will be associated to the master tenant. -
We needed to do some guesswork for ambiguous resources that shared other resources from different entities. These resources have been migrated to the most logical tenants. However, it may be possible that they are still associated to resources that were migrated to different tenants. When this happens, you need to fix them manually and to make sure to remove the affected resources or to recreate them in the right tenants. Even if they still work, these configurations are invalid and shall be removed automatically in future upgrades. Therefore, you should review the following resources:
- call permissions
- ivr
- moh
- pagings
-
-
User authentication has been updated with the following changes:
- User passwords cannot be returned in plain text anymore.
- Users export (export CSV) cannot export passwords anymore.
- Processing time to import users (import CSV) has been increased significantly if the field
passwordis provided. - Fields
usernameandpasswordinwazo-confdAPI/usersare now ignored for authentication and must be considered invalid. They have been replaced bywazo-authAPI. - Field
enabledforwazo-confdAPI/users/<user_id>/ctiis now ignored for authentication and must be considered invalid. It has been replaced bywazo-authAPI.
-
Invalid user email address (e.g.
invalid@) have been deleted automatically during upgrade. -
All agents will have to log out and log back in to receive calls from queues. You may use the command
wazo-agentd-cli -c "relog all"to do this. -
The procedure for custom certificates, especially for Let's Encrypt certificates, has been simplified. See Certificates for HTTPS.
-
People using the
xivo-aastra-2.6.0.2019will have to upgrade to plugin version 1.9.2 or later -
wazo-provdnow uses YAML configuration. The defaults can be overridden in the/etc/wazo-provd/conf.d/directory. See Configuration Files. -
The provisioning option
dhcp-integrationis now enabled by default. There is no REST API to disable this feature. -
Call pickups that have been created using the REST API or
wazo-admin-uihave the interceptors and targets mixed up. Since call pickups created using the "orange" web-interface did not have that bug, we could not fix the existing configuration automatically. Faulty call pickups have to be edited and users moved from interceptors to targets and vice versa. -
Since the feature for managing certificates from the "orange" web-interface is gone, all certificates must now be managed manually. The directory to access to certificates is
/var/lib/xivo/certificatesand is not backuped or synchronized for HA anymore. -
If a group or queue was named
general, then it has been renamed with one or more suffix_(e.g.general_). The namegeneralis not allowed anymore. -
xivo-sysconfdis now asynchronous by default. This implies that changes made via the API or via a web interface may take some time to take effect after the action. If you rely on Asterisk being reloaded when configuring resources. Seesysconfd-configurationto set thesynchronousoption totrue. -
Upgrade from version older than 15.01 are not supported anymore.
-
If a custom context (created using the REST API or wazo-admin-ui) was named with the following names, then it has been renamed with one or more suffix
_. Also if the context name had invalid characters (i.e. space), then invalid characters are replaced by_. All custom configuration should be updated to reflect the changes.authenticationgeneralglobalglobalsparkedcallsxivo-featureszonemessages
-
The
wazo-googleandwazo-microsoftplugins have been copied to thewazo-authandwazo-dirdrepo. You must uninstall that plugin if you installed it manually from source to avoid conflicts between the supported version and the legacy version.
Asterisk related
- Asterisk version has been updated:
- Asterisk 15 to 16 Upgrade Notes
- Wazo now uses
res_pjsipinstead ofchan_sip.- All custom lines with interface
SIP/somethingmust be changed toPJSIP/something - All custom dialplan using the
SIP_HEADERdialplan function must be changed toPJSIP_HEADERfunction - The
SIPAddHeaderandSIPRemoveHeaderdialplan application must be changed toPJSIP_HEADERfunction
- All custom lines with interface
- The username for all SIP devices in
autoprovmode has been changed. Devices inautoprovmode will have to be restarted before entering the provisioning code. - Asterisk configuration files can now be customized in the
/etc/asterisk/*.d/directories. If you had custom configuration in/etc/asterisk/*.confyou will have to create a new file in the corresponding*.ddirectory to use your customized configuration. Files named*.conf.dpkg-oldwill be left in/etc/asteriskif this operation is required. See Asterisk configuration files for more details. - The skill rules internal names have been changed to use the format
skillrule-<id>. If you were using custom dialplan with a preprocessing subroutine to handle your skill rules, we recommend removing it and using the REST API (see Apply Skill Rule Sets). If you really want to keep it, you must change the name used in the variableXIVO_QUEUESKILLRULESETto use the new format. - Asterisk logs (
/var/log/asterisk/full) now contain milliseconds - The
tenant_namevariable has been removed from the call recording templates in favor of thetenant_uuid. If thetenant_namewas used in the directory name, a symlink can be used to keep the same name.
Renaming
-
The following services have been renamed:
xivo-agentdtowazo-agentdxivo-agidtowazo-agidxivo-confdtowazo-confdxivo-ctid-ngtowazo-calldxivo-dirdtowazo-dirdwazo-dird-phonedtowazo-phonedxivo-provdtowazo-provdxivo-nginxtowazo-nginx
-
Each service has the following changes:
- The custom configuration has been moved to
/etc/<new-service-name>/conf.d/. - The log file has been renamed to
<new-service-name>.log. - The NGINX proxy has been recreated in
/etc/nginx/locations/https-enabled/<new-service-name> - Entrypoints for custom Python plugins have been renamed to
<new_service_name.*. - Environment variable for
wazo-upgradehas been renamed fromXIVO_CONFD_PORTtoWAZO_CONFD_PORT. - All users that are logged in Wazo, i.e. who have an authentication token, must logout and log back in, to apply the change of authorizations names (ACL).
- The custom configuration has been moved to
-
The following Python clients have been renamed. If you were using the old one in your Python code you should use the new one.
xivo-agentd-clienttowazo-agentd-clientxivo-confd-clienttowazo-confd-clientxivo-dird-clienttowazo-dird-clientxivo-provd-clienttowazo-provd-client
-
xivo-agentd-clihas been renamed towazo-agentd-cli -
xivo-provd-clihas been renamed towazo-provd-cli -
xivo-dhcpd-updatehas been renamed towazo-dhcpd-update -
The fail2ban jail was renamed from
asterisk-xivotoasterisk-wazo. -
Chat messages, user and device presences are now handled by
wazo-chatdinstead ofwazo-calldandMongooseIM.- All chat messages will be deleted after the upgrade.
-
The
/var/lib/xivo/soundsdirectory has been migrated to/var/lib/wazo/soundsand the directory/var/lib/xivois considered deprecated. Please update all custom references to this path.
Developers
- The following daemons have been updated to Python 3. If you have written or installed a custom
plugin for those daemons, you must ensure that the plugins are compatible with Python 3.
wazo-authwazo-calldwazo-confdwazo-dird
- The following backends in
wazo-authhave been removed. All following users have been migrated towazo_userbackend.xivo_adminxivo_servicexivo_user
wazo-authAPI to implement awazo-authbackend has been changed in 18.02. The compatibility code that allowed old backends to keep working has been removed.- The
get_idsmethod has been removed.
- The
- ACL templating has been modified: when generating multiple ACLs with one template, ACL were
separated with
n. They are now separated with:(colon).nis not interpreted anymore. You should hence replace anynwith:in your ACLs. wazo-provdnow useswazo-authto authenticate all requests and uses HTTPS. It is no longer possible to deactivate authentication. Therefore, all calls to the REST API will need to be made using HTTPS and a token generated withwazo-auth.wazo-provd-clihas been updated to remove the username and password command line arguments since they are no longer used.- The configuration of
rest_apisection forwazo-confdconfiguration file has changed. See wazo-confd changelog 19.06 for more information. - All API related to
cti profilehave been removed. See wazo-confd changelog 19.08 for more information. - Creating a resource using the REST API now requires the
Wazo-TenantHTTP header when the created resource is not in the same tenant as its creator. - Authentication policies now have a
tenant_uuidand the relationship between tenants and policies has been removed. If you did use policies with tenant association, the policy is now associated to one of its tenant. This feature is not used yet in Wazo, so most likely you are not affected. wazo-confdREST API does not allow to managecall-logsanymore.wazo-provdAPI URL has been updated to remove theprovdprefix when present and add the API version number, which is0.2. All affected services andwazo-provd-clienthave been updated. Example:/provd/dev_mgris now/0.2/dev_mgrand/api/api.ymlis now/0.2/api/api.yml
Consult the roadmaps for more information:
2018
18.03
-
If you have a custom certificate configured, you will need to add a new symlink for wazo-upgrade:
mkdir -p /etc/wazo-upgrade/conf.d ln -s "/etc/xivo/custom/custom-certificate.yml" "/etc/wazo-upgrade/conf.d/010-custom-certificate.yml" -
Default passwords for phones' web interfaces have been changed. You can change the password in
Configuration --> Provisioning --> Template device. -
The default NAT option in General SIP settings has been automatically changed from
auto_force_rporttoauto_force_rport,auto_comedia. This makes NAT configuration easier but has no impact on environments without NAT.- In the rare cases where you want to keep
nat=auto_force_rportyou must explicitly change this value in the administation interfaceServices --> IPBX --> General Settings --> SIP Protocolin tabDefault. See Asterisk sip.conf sample for more information.
- In the rare cases where you want to keep
-
The NAT configuration of every SIP line and SIP trunk has been automatically changed from
nat=auto_force_rportto nothing, so that they inherit this setting from the General SIP settings.
18.02
- For wazo-auth backend developers: The API to implement a wazo-auth backend has changed. Old
implementations have to be updated. If the
BaseAuthenticationBackendclass was used as a base class for the backend theget_metadatamethod from the base class will useget_idsto generate the result ofget_metadata.- The
get_idsmethod has been removed. - The
get_metadatamethod has been added.
- The
18.01
-
Debian has been upgraded from version 8 (jessie) to 9 (stretch). Please consult the following detailed upgrade notes for more information:
-
If you did not setup a custom X.509 certificate for HTTPS (e.g. from Let's Encrypt), the certificate will be regenerated to include SubjectAltName fields. The two main reasons are Chrome compatibility and avoiding a lot of log warnings. This implies that you will have to add a new exception in your browser to access the Wazo web interface or services like Unicom.
-
If you did setup a custom X.509 certificate for HTTPS (e.g. from Let's Encrypt), you will have to add a link to the wazo-auth-cli configuration using the following command.
ln -s "/etc/xivo/custom/custom-certificate.yml" "/etc/wazo-auth-cli/conf.d/010-custom-certificate.yml" -
The Python API for xivo-confd plugins has been updated to reflect Python API of other daemons. If you have created a custom xivo-confd plugin, you must update it:
class Plugin(object): def load(self, core): api = core.api config = core.configclass Plugin(object): def load(self, dependencies): api = dependencies['api'] config = dependencies['config'] -
The web interface no longer validates the queue skill rules fields added in
Services --> Call Center --> Configuration --> Skill rules. If a rule is wrong, it will appear in the Asterisk console.