Quobis WAC release notes

v5.11.4

Released 22/01/2024

Bug fixes

  • Include the phonebook name of the caller when sending a push notification to a mobile subscriber (ROAD-4464)

v5.11.3

Released 20/12/2023

Bug fixes

  • Set WAC_IPC_NO_ACK to false on services connecting to message-broker

v5.11.2

Released 05/12/2023

Bug fixes

  • Attended transfer fails when two sequential transferred calls are established with the same target (ROAD-5156)

v5.11.1

Released 28/11/2023

Bug fixes

  • Allow to make an attended transfer when there is more than one media server (ROAD-5153)

v5.11.0

Released 24/11/2023

New features

  • New attended transfer flow: the target only receives one single call from the transferror (ROAD-4771)

  • Added parameter xmppArchiveDeletion for configuration of archive cleanup time in XMPP server (ROAD-4942)

  • Added parameter mucLogExpiresAfter for configuration of MUCs messages cleanup in XMPP server, defaults to 6 months (ROAD-4952)

  • Added timestamp Y-m-dTH:M:SZ to XMPP server logs (ROAD-5089)

  • Support for XMPP mod_muc_offline_delivery to allow push notifications from MUCS to users who are not currently connected (ROAD-4462)

Bug fixes

  • In-conference chat messages and MUC are now deleted after the call is finished (ROAD-3104)

  • The wrapper does not disconnect from the dispatcher when it has a connection problem (ROAD-4346)

  • Fixed error with the conference-log table in some specific cases to SIP destinations (ROAD-4786)

  • Content-type header is missing in avatar images and chat images (ROAD-4928)

  • Many “recipient unavailable” appear in the prosodyarchive database (ROAD-4939)

  • The parameter “getCurrentInvitationsByUsername” is not indicated in the QSS templates (ROAD-4970)

  • The ID is not generated during sip mapping and generates a 500 internal server error (ROAD-5072)

  • Longhorn doesn’t free up pv space when data is deleted from it (ROAD-5090)

  • Activate module disk by upload files XMPP (ROAD-5095)

  • Alerts API canceledSince filter doesn’t work (ROAD-5107)

Changes and deprecations

  • Removed deprecated services that are not needed in wac-core

  • Update loki and promtail versions to 2.9.2 (ROAD-5088)

  • Set the correct XMPP Prosody modules: removed BOSH, disco; added REST (ROAD-4826)

  • Remove vexpress config from erebus (ROAD-4974)

v5.10.1

Released 29/11/2023

Bug fixes

  • The ID is not generated after the setup of a SIP mapping, giving an 500 internal server error (ROAD-5072)

v5.10.0

Released 10/10/2023

New features

  • Added integration with Azure organization users (“azure_organization_users”) (ROAD-4613)

  • Added integration with Azure personal contacts (“azure_personal_contacts”) (ROAD-4615)

  • Added new parameter “oneLineObjects” to log JSON objects without line breaks, activated by default. Can be set to “0” if multi-line logs are needed (ROAD-4905, ROAD-4690)

  • Added “credentials” parameter in Kitter “patch” payload to change user credentials (ROAD-4654)

  • Added the option of deploying the MongoDB database in its own unique namespace (ROAD-4446)

  • Added logs on user created and deleted in the “users” endpoint (c232860)

  • Include the phonebook name of the caller when sending a push notification to a mobile subscriber (ROAD-4464)

  • Clean-up dispatcher database entry after a call is made (ROAD-3343)

  • Logging slow queries in PostgreSQL database (ROAD-4281)

  • Block desktop apps access for unsupported versions (ROAD-4770)

  • Serve file for deeplink support in iOS application (ROAD-4763)

  • Configure cache headers for user uploaded files (fs_location) (ROAD-4618)

  • Improve performance of user conference log and login queries (ROAD-4588)

  • Configure Nginx cache headers for user uploaded files (/fs) to improve load times (925a82f)

Bug fixes

  • “GetCurrentInvitations” message without content that affected clients using Callkit (66a70d6e)

  • Conference number shown in Grafana is wrong (ROAD-2800)

  • Logged user number shown in Grafana is wrong (ROAD-4678)

  • There is no log when a user is created or deleted if all went OK (ROAD-3136)

  • registerXmppPushToken service call fails with “database operation failed insert” (ROAD-4219)

  • The “acceptedInvites” collection remains stored in the QSS database (ROAD-4247)

  • Unable to deploy sippo-storage due to a serviceAccount wrong value (ROAD-4293)

  • Wrong certificate assignment into xmpp-server (ROAD-4295)

  • Remove “” in all aliases from Kamailio config ROAD-4301

  • Asterisk RURI domain is hard-coded in the Kamailio config template (ROAD-4315)

  • The container for qss-io, qss-invites,qss-audiostatus and qss-calls is named QSS instead of its actual name (ROAD-4333)

  • Avoid collection scans in the dispatchger service to prevent slow querys (ROAD-4366)

  • Unable to upload files from mobile apps (ROAD-4387)

  • Grafana deployment fails at the end of the process (ROAD-4445)

  • The pvc hosts and var-lib are created when deploying the XMPP server (ROAD-4619)

  • Wrong behaviour when calling to a sequential ringing-group and the last candidates has more than one acve session (ROAD-4635)

  • Incorrect memory management after deleting an user that leads to a memory peak (ROAD-4636)

  • Incorrect managent of duplicated phone numbers when creating new users (ROAD-4667)

  • Resources from MongoDB pods are not applied to database-cluster-operator deployment (ROAD-4669)

  • Wrong response code “603” instead of “200” in accepted calls to SIP destinations (ROAD-4775)

  • Last user of a reduced simultaneous ringing group does not received the incoming calls (ROAD-4823)

  • Mailer is not sending proper EHLO command in SMTP dialogue (ROAD-4835)

  • Attended transfer to PSTN users with parallel SIP is not working (ROAD-4840)

  • The sfu-wrapper doesn’t reconnect to the dispatcher when it loses connection (ROAD-4841)

  • wac-core service consumes too much CPU when migrating sip mappings to PostgreSQL (ROAD-4918)

Changes and deprecations

  • Upgrade to Longhorn v1.4.2 (ROAD-4447)

  • Upgrade to MongoDB 6.0.4 (ROAD-4291)

  • Upgrade Grafana version to 9.5.5 (ROAD-4538)

  • Upgrade to kube-state-metrics 2.7.0 (ROAD-4292)

  • Upgrade Kamailio from 5.5.5 to 5.6.4 (ROAD-4582)

  • Upgrade Prometheus to v.2.45.0 (ROAD-4577)

  • Upgrade Dockerfile to Debian Bullseye-Slim and generate latest version 20.x.x for the Asterisk container (ROAD-4581)

  • Upgrade debian container distribution to latest GA (ROAD-4540)

  • Remove legacy “kubernetes” folder from k8s-installer (ROAD-3639)

  • Remove promLoki datasource (ROAD-4559)

  • Remove alerts in Grafana based in v8 syntax (ROAD-4561)

  • Remove wiface1 and nocache=true from wac.ini (ROAD-4585)

  • Added query_retries and transaction_retries in Grafana configuration (ROAD-4556)∫

  • Added timestamp to xmpp-server logs (ROAD-4696)

  • Added timezone to Kitter deployment (ROAD-4764)

  • Added flag “getCurrentInvitationsByUsername” to search current invitations by peer or username, defaults to false (cad265b)

  • Creation of indexes in the QSS collections (ROAD-4316)

  • Migrate Graph and Table to Time Series and Table in Grafana (ROAD-4164)

  • Deprecate process-exporter (ROAD-4166)

  • Move node-exporter to monitoring namespace (ROAD-4449)

  • Fixed sip-mapping unit tests (ROAD-4645)

  • Publishers will be blocked untils an alarm clears in the message broker (ROAD-4740)

  • Change update DB method of rooms (ROAD-4914)

  • Change internal_sample_rate parameter from 8k to “auto” for better audio quality in the audiomixer service (ROAD-4793)

  • Search user by phone number now uses normalizePhoneNumber for consistency (cd7eb42)

v5.9.0

Released 17/07/2023

New features

  • New “actionable alerts” graph in Grafana (ROAD-2385)

  • New endpoint in kitter service (findUserByDomainandUsername) and new search option (“exact”) (ROAD-4428)

  • New NOK answer in liveness and readyness QSS endpoints (ROAD-2715)

  • Improve error log level when sending SMSs (ROAD-4523)

  • Added a connection control log with RabbitMQ in the sfu-wrapper and recording liveness endpoints (ROAD-4326)

  • Allow configuration of maximum file transfer size (ROAD-4504)

Bug fixes

  • Avoid collection scans in the conference service to prevent slow querys by adding several new database indexes (ROAD-4350)

  • Data is not removed in the dispatcher database in several cases, which could lead to a disconnection of the wrapper service (ROAD-4499)

  • Do not retrieve all sessions in the database after an admin login in erebus service (ROAD-4528)

  • Misconfiguration in the Kubernetes template of the alert section (ROAD-4189)

  • ConferenceState service database is not correctly updated in some cases, which could lead to a call blockage for outgoing calls (ROAD-4493)

  • Calltransfer service crashes when initiating a call in some corner cases (ROAD-4282)

  • Recording postprocessing not working for calls without audio stream (ROAD-4140)

  • Recording postprocessing not working when videos are turned off and on again (ROAD-2900)

  • Pushes with p12 certificate don’t work giving a “Error load PFX” message (ROAD-4409)

  • Users created on the fly via a ADFS login do not have the proper DisplayName information (ROAD-4278)

  • Incoming requests have no session attached (ROAD-4263)

  • registerXmppPushToken service call failed “database operation failed insert” (ROAD-4219)

  • Orphan group sip-mappings are not deleted (ROAD-4156)

  • Fallo en PUT en /usersGroup/<groupId> al cambiar los participants (ROAD-2806)

  • DELETE /sapi/alerts/templates/{id} returns an unexpected response (ROAD-4297)

  • Orphan sip-identity is not removed when a sip-mapping is deleted (ROAD-4249 )

  • Concurrent conferences graph is incorrect in the monitoring dashboard (ROAD-4221)

  • 404 error responses take too much time (ROAD-2657)

  • The Janus-Wrapper and QSS loses connection with Asterisk’s ami (ROAD-4503)

  • Missing meeting participants after restarting SFU (ROAD-3426)

  • XMPP container does not persist messages after a reboot (ROAD-4398)

  • The user is created again if it is deleted while logged in (VOD-182)

  • Duplicated usernames and owners in SIP-mapping collection (ROAD-4218 )

  • Account already exists error when doing ADFS log in (VOD-198)

Changes and deprecations

  • Decouple validation tasks from callKSGW service (ROAD-4347)

  • Deprecated Spohit backend (ROAD-4508)

  • Update grafana version to 9.3.6 due to a security issue (ROAD-3590)

  • Avoid collection scans (COLLSCAN) in the alert service to prevent slow querys (ROAD-4165)

  • Add rtp_timeout and rtp_timeout_hold in the audiomixer configuration (ROAD-4328)

  • Remove vExpress to connect to wac-core in the erebus service (ROAD-4150)

  • Remove @quobis/vexpress from wac-core

  • Messagewaitingindicator and sipidentitiespool services are now deactivated by default (ROAD-4452)

  • Add nodeSelector disktype=ingress in the ingress-nginx configuration (ROAD-4431)

  • Upgrade internal libraries, clean dependencies, unitiliaze rabbitmq related connections when service is stopped (ROAD-4476)

  • Increase performance of get meetings of user use-case (ROAD-4355)

  • Increase performance of retrieve groups where a user is participating usecase (ROAD-4352)

  • Unprotect wac-core endpoint /meetings/byRoomId needs (ROAD-4397)

  • Upgrade janus version from janus 0.9.2 to 0.12.4 (ROAD-4460)

v5.8.0

Released 28/04/2023

New features

  • Support to Kubernetes cluster version 1.21 (ROAD-3635)

  • Added audiomixers metrics to SIP monitoring dashboard (ROAD-3564)

  • Reimplementation of “Current active sessions” chart using “waccore_current_active_sessions_gauge” value (ROAD-2728)

  • Reimplementation of “Logged users” chart using “waccore_current_logged_users_gauge” value (ROAD-2729)

  • Reimplementation of “Active conferences” chart using “waccore_active_conferences_gauge” value (ROAD-2730)

  • Support for Longhorn storage (ROAD-3640)

  • Support for X.509 certificates (ROAD-3670)

  • Support to XEP-0363 XMPP extension for filetransfer (ROAD-3683)

  • Support for PostgreSQL connection from wac-core service (ROAD-3216)

  • Created two different Keycloak client-id’s for Android and iOS connections, namely collaborator-android and collaborator-ios (ROAD-3396)

  • Added an endpoint to retrieve a meeting given its associated room ID (ROAD-3349)

  • Added Grafana dashboards with lua metrics of the XMPP server memory consumption (ROAD-4157)

  • Added new configuration for Prosody 0.12 and endpoint in Prometheus (ROAD-3663)

  • Added Jaeger support for end-to-end distributed tracing (ROAD-2089)

  • Customization of the burst settings for the websocket message rate (ROAD-3525)

  • Update k8s-installer documentation about MetalLb configuration (ROAD-3638)

  • Created username-domain index in collection “user” (ROAD-4178)

  • Optimization of case-insensitive regex queries using username and email properties (ROAD-2394)

Bug fixes

  • Fixed a memory leak in qss.io-websockets service (ROAD-2872)

  • Deployments don’t have a revision limit (ROAD-3243)

  • Several errors in the use of Grafana with new volumes (ROAD-4203)

  • Destruction of PVC in some services when performing destroy/redeploy (ROAD-4199)

  • Prometheus and Loki has invalid claimName (ROAD-4204)

  • Document and change the rpsHigh variable to rpsFront (ROAD-4105)

  • Port 5070 is hardcoded in the SIP proxy template (ROAD-3495)

  • Kitter logs shows internal opentelemetry traces (ROAD-3532)

  • Username/email migration should be more tolerant when migrating incomplete documents (ROAD-4251)

  • Cannot login as default admin when auth.userIdentifier is configured as email and email is not lowercase at core/defaults.js (ROAD-4207)

  • Wrong database index in the “missedCalls” collection (ROAD-3729)

  • Some Kubernetes resources cannot be recovered after a fresh installation (ROAD-4253)

  • PostgreSQL database for wac-core is hard-coded (ROAD-4252)

  • Ansible tag passwords-deploy does not generate “wacDatabasePassword” (ROAD-4233)

  • Ansible tag cluster-destroy fails because some packages cannot be removed (ROAD-4232)

  • Keycloak deployment process fails when x509 flag is not enabled (ROAD-4231)

  • Missing providers folder for wac-core (ROAD-4230)

  • Missing deployments folder for mongodb-exporter (ROAD-4228)

  • Missing matchSelector in efs-provisioner deployment (ROAD-4273)

  • Remove initContainer in wac-core (ROAD-4275)

Changes and deprecations

  • The sipMappings data is now stored in a PostgreSQL database instead of MongoDB (ROAD-3216)

  • Emails are now always stores lowercase (ROAD-2398)

  • Convert automatically username and emails used as input values to lowercase (ROAD-2396)

v5.7.8

Released 26/09/2023

Bug fixes

  • Fixed an issue that leaded to a wrong behaviour when calling to RingingGroups (this bug was introduced in 5.7.7)

v5.7.7

Released 23/09/2023

Bug fixes

  • Fixed an issue that leaded to a “GetCurrentInvitations” message without content that affected clients using Callkit

v5.7.6

Released 18/09/2023

Bug fixes

  • Wrong response code “603” instead of “200” in accepted calls to SIP destinations (ROAD-4775)

  • Orphan group sip-mappings are not deleted (ROAD-4156)

  • registerXmppPushToken service call failed “database operation failed insert” (ROAD-4219)

  • Avoid collection scans (COLLSCAN) in the rooms service to prevent slow querys (ROAD-4366)

  • Caller does not get a busy message when calling to a ringing group and the last candidate has several sessions and rejects the call (ROAD-4635))

  • All users ared loaded in wac-core memory after deleting one of them, leading to a CPU peak (ROAD-4636)

v5.7.5

Released 17/07/2023

Bug fixes

  • Wrong behaviour when calling to a ringing group and the “allowInvitesWhileInCall” parameter is set to false (ROAD)

v5.7.2

Released 28/06/2023

Bug fixes

  • Clean-up database entry after a call is made (ROAD-3343)

  • New Kitter endpoint (findUserByDomainandUsername) and new “exact” search method (ROAD-4428)

  • Migrate existing emails and usernames to lowercase (ROAD-2395)

  • Convert automatically username and emails used as input values to lowercase (ROAD-2396)

  • Optimize current case-insensitive queries using username and email properties (ROAD-2397)

  • Save emails in lowercase (ROAD-2398)

  • Stop using CI queries to V2 users API in kitter (ROAD-4168)

  • Fixed a memory leak in qss-io-websockets (ROAD-2872)

  • Wrong database index in the “missedCalls” collection

  • Cannot login as default admin when auth.userIdentifier is configured as email and email is not lowercase at core/defaults.js (ROAD-4207)

  • The graph that shows the number of active conferences is incorrect (ROAD-4221)

  • Username/email migration should be more tolerant when migrating incomplete documents (ROAD-4251)

  • Users created on-the-fly via a third party ADFS do not stoep the “Displayname” in the presence collection (ROAD-4278)

  • Calltransfer service crash when initiating a call in some circumstances (ROAD-4282)

  • Pushes with p12 certificate don’t work and fails with an “Error load PFX” error message (ROAD-4409)

  • Rooms are not removed from the dispatcher service which leads to a disconnection from the SFU wrapper (ROAD-4499)

v5.7.0

Released 13/02/2023

New features

  • Added a new Keycloak authenticator that allows to skip the step of selecting an identity provider. A user can now enter an email address and the system will then choose an identity provider based on the provided email domain and forward the user to the chosen provider (thanks to keycloak-home-idp-discovery plugin). Closes ROAD-3138.

  • New ringing group strategy “simultaneous reduced” that complements the existing “simultaneous” and “sequential ones” (ROAD-3442)

  • Added new Opentelemetry metrics from wac-core that exposes the following metrics, computed in a 20 seconds interval. This service needs to be activated in the wac.ini [opentelemetry] section (ROAD-3572):

    • waccore_active_conferences_gauge

    • waccore_current_active_sessions_gauge

    • waccore_current_logged_users_gauge

    • waccore_current_users_with_1by1_chats_gauge

    • waccore_total_users_gauge

  • Added websocket throttle environment variables to erebus deployment (WAPI_WS_THROTTLE_BURST_COUNT, defaults to 2000, and WAPI_WS_THROTTLE_MS, defaults to 200) (ROAD-3575)

  • Added currentTimeZone as a variable in the meeting templates (ROAD-3557)

Bug fixes

  • Remove old deployments in the K8S installer for the QSS service (ROAD-3567)

  • Port 5060 is hardcoded in the kamailio service template (ROAD-3496)

  • PSQL_Pass variable has a wrong value in the maintainer’s job.yml (ROAD-3556)

  • The information of the presence parameter note is not saved (ROAD-3648)

  • Erebus services loses connection with the message broker in some circumstances (ROAD-3611)

  • wac-core loses connection with the message broker in some circumstances (ROAD-3610)

  • Keycloak unusual CPU usage (VOD-187)

  • Fix some typos in the WS documentation for qss/AudioStatus service (ROAD-3642 )

  • No push notification when a user is added to a chat group and the mobile application is in background (ROAD-3068)

Changes and deprecations

  • Avatars are now saved in the presence collection as a URL (avatarUrl) instead of a BASE64 blob . There are three new parameters to take into account in the wac.ini file: avatarStorageUrl, avatarStorageDir and avatarBase64Persistence (read the wac.ini template for more details). Added also a bin/waccli presence create-avatar script to migrate existing avatars from base64 format to URL format. (ROAD-2868)

  • As result of the above change, from now on, Filesharing service is required by the resence service.

  • Document the QSS WebSocket API (ROAD-3418)

  • Authentication: do not request signing keys from keycloak for each authenticated request (ROAD-3603)

  • Update xmpp-server version to 0.12 for better performance (ROAD-3484)

  • New maintainer version 1.3.7 that adds two new values: DELETE_PARALLEL_SIP (defaults to false) and DELETE_TRUNK (defaults to false). This parameter will force a periodic purge of the “parallelSIP” and “trunk” collections in the database in case it’s needed (ROAD-3474)

v5.6.0

Released 13/02/2023

New features

  • A new QSS service (“qss-audiostatus”) can now send mute/unmute requests to remote participants and also track user mute/unmute status (ROAD-2327 and ROAD-2287)

  • The log verbosity level can now be configured on a per-service basics instead of a platform-wide value (ROAD-3240)

Bug fixes

  • Dashboards shows an error “Failed to upgrade legacy queries Datasource $DS_Prometheus” (ROAD-3353)

  • The configmap grafana-dashboards is not created because it is larger than 1MB (ROAD-3351)

  • Remove spaces and reduce JSON names (ROAD-3352)

  • Unconsistent naming on audiomixer-io objects (ROAD-3385)

  • Addressbook variables “true/false” are set to uppercase causing wac-core to ignore them (ROAD-3361)

  • Ansible installer broken when the inventory or vault-id contains a regular expression with “_” (ROAD-3354)

  • A “keycloak-update” does a redeploy instead of updating the deployment (ROAD-3419)

  • The SMS backend is always required in the wac-core template ROAD-3357

  • The chat_instant_video variable does not reference to anything in the conf.js template (ROAD-3356)

Known-issues

  • The audio status of the remote participants is not updated under some circumstances (ROAD-3487)

Changes and deprecations

  • Updated SIP proxy version to 5.5.5

  • Updated audiomixer version to 18.15.1 (ROAD-3250)

  • Updated message-broker version to 3.11.7 (ROAD-3386)

  • Updated SFU version to v0.12.4 (ROAD-3389)

  • Audiomixer parameter dsp_drop_silence has been set to “no” for better performance.

v5.5.1

Released 13/02/2023

Bug fixes

  • Added two configuration variable to fine-tune the “erebus” websocket traffic throttle:
    • WAPI_WS_THROTTLE_BURST_COUNT with default value of 100, consider that the SDK may send as much as 1msg/contact at startup in a very short timeframe

    • WAPI_WS_THROTTLE_MS with default value of 10, increase this value to wait longer to enter burst mode.

v5.5.0

Released 12/01/2023

New features

  • Meetings can now be recorded. The recording can be activated or deactivated by the user on a per meeting basis. An overlay text banner can also be added to the recording, whose content is also configurable by the administrator. A new REST API endpoint is also available to retrieve information about these recordings and its participants (ROAD-1026, ROAD-1839,ROAD-2707).

  • Added a new endpoint phonebook/all that allows to retrieve the phonebooks whose name matches a given filter (at least 4 characters are required to filter (ROAD-2880)

  • Added a new method to edit an existing phonebook entry, patch /phonebook/{phonebookId}/contact/{contactId}) (ROAD-2853)

  • In order to prevent DoS attacks, a new throttle mechamism has been implemented in the incoming wac-core websocket connection If the rate limit of 10 messages per milisecond is exceeded on a given connection, the system enters in a burst mode where a total of 100 messages are allowed. Otherwise, the connection is dropped with a 4429 status code and this log is provided: “Client reached maximum messages allowed in burst mode. Disconnecting!”. This count applies to each individual WS connection and counts only the messages in the inbound direction (client to server). (ROAD-3341)

  • A maximum and minimum default resources value can now be set for each pod. That will help to prevent system overloads (ROAD-2684).

  • Add tags and corresponding variables for metrics-server and HPA server (ROAD-2683)

  • Added new graphs to check the size of relevant database collections in Grafana (ROAD-2815)

  • Grafana version updated to v9 (ROAD-2809)

  • Added several microservices variables to the Ansible installer (ROAD-2688)

  • Changed wrapper service log RoomAccessLog message, replacing “join: false/true” into “event: join/leave”, which provides more information (ROAD-3149)

  • Added a log message to the “get presence” endpoint with the requested presence address (ca99d4e8).

  • Added warning-level log messages when the XMPP client tries to address a MUC and its XMPP address is empty, ie, the group has no chatId assigned: “Seems that I have no admin XMPP client available, refusing to try to send an invite”, “Will try to invite an empty group XMPP address!” and “Will try to revoke membership from an empty group XMPP address!” (4caa4492)

Bug fixes

  • Crash loop back error when deploying Loki 2.4.2 (ROAD-3227)

  • Typo in the sippo-maintainer job template that was causing a malfunction in this service (ROAD-3226)

  • The value “turn_secret” was not included into the vault (ROAD-3169)

  • The PostgreSQL configMap “postgresql-conf” is not removed when performing the “postgresql-destroy” Ansible task (ROAD-3166)

  • A phonebook entry is stored twice when the same contact is set (ROAD-3168)

  • The user is not notified that they have a missed call when the user is offline in parallel-sip configuration (VOD-185)

  • Optimization defaults too high for PostgreSQL deployment (ROAD-3167)

  • SIP mapping endpint answers with a wrong header when the SIP identities pool service is active (ROAD-3015)

  • Wrong error code sent when revoking a session in wac-core after a new one is established. (ROAD-2863)

  • Corrected some push errors that are not correctly printed in the logs (7c8f95c2)

Changes and deprecations

  • wac-core:

    • login.toml’s exclusive option has been removed in favour of session.toml’s singleUserSingleSession one.

    • A new service configuration is required in wac-core in order to activate meeting recording (“[recordings]”). In addition, a new shared volume is required (this is alreaday taken into account by the installer).

    • “On hold” requests via /sapi/kmanage/siponhold are now deprecated (ROAD-3112).

    • Adapted WAPI/Erebus and @quobis/peers to allow propagating the close reason set by wac-core downstream. In the event of a server-side session close, the reason code will be 4401. An SDK implementor should treat that 4401 code as a logout, so the local status of the session must be unauthenticated.

    • REST API documentation is now alphabetically ordered.

  • Recording:

    • a new parameter customize_user_video_tag_text added in recording.toml to indicate the content of the overlay text. Available variables are {{username}}, {{domain}} and {{id}}. You can combine them and use static texts, for instance User: {{username}}@{{domain}}

    • removed log “Recordings folder: that.config.server.recording” that was misleading (ROAD-2762)

  • PostgreSQL service: values changed as follows for settings shared_buffers and work_mem:

    • default values: shared_buffers = 128MB, work_mem = 4MB

    • recommendation for 4GB RAM: shared_buffers = 750MB, work_mem = 10MB

    • recommendation for 8GB RAM: shared_buffers = 1,5 GB, work_mem = 20MB

Known issues

  • Kubernetes installer issues:

    • Dashboards “Main Dashboard” and “MongoDB” does not load becausea of misconfigured installation config (ROAD-3353)

    • The chat_instant_video variable does not reference any in the conf.js template (ROAD-3356)

    • The SMS backend needs to be configured (setting backend_sms_enabled), otherwise the wac-core service does not start (ROAD-3357)

v5.4.0

Released 22/11/2022

New features

  • Monitoring: new dashboard for Kitter service

  • Monitoring: Prometheus nodePort exposed

  • Maintainer: added metrics-server deployment v0.5.1

  • Added a performance configuration for PostgreSQL database

  • Added logs to wrapper service about the status of the SFU connection (log: “Dispatcher client error/reconnecting/disconnected!”) (ROAD-2156)

  • File user.toml is no longer required to start the wac-core service. A log is provided to notify that default values will be used (ROAD-2640)

  • Added new logs about issues with the push notification services, details here (ROAD-2668)

  • Assign timezone and locale to anonymous participants (same as meeting owner) (wac-core 7357088c)

Bug fixes

  • Config: fix keycloak connection URL

  • Monitoring: fix broken Grafana input fields

  • Deactivating missedCalls service blocks conferenceLog writing (ROAD-2658)

  • REST-API answers with 500 error code when a path doesn’t exist (ROAD-2653)

  • Wrong meeting PUT event payload (“isPasswordProtected” instead of “password”) (ROAD-2649)

  • 400 Bad Request returned when trying to remove password protection from A meeting (ROAD-2648)

  • Existing quick-conferences allow only three participants after a system reboot (error log: maximum number of publishers (3) already reached) (ROOM-346)

  • The chats of deleted users remain indefinitely in the list of chats (VOD-146)

  • The /auth/realms/master/metrics endpoint is now working with latest Keycloack version (ROAD-2674)

  • The keycloak deployment misses the parameter nodeSelector: disktype (ROAD-2667)

  • Amend translation of SS7 Q850->http error codes (the mapping of some codes to HTTP where not accurate) in the QSS

  • Do not send notifications to users when a meeting that is due is deleted (only to the meeting owner) (ROAD-3150)

  • Do not require to provide a password when updating a password-protected meeting. This was impeding the removal of a password for a meeting (wac-core f8bdf82e)

Changes

  • Setting a value of 0 to the notification expiration header will instruct APNs to not retry at all sending the notification to the device (push-clients d1c81334)

  • Changed some error messages levels in the erebus service. Example: “Attaching session session.id and user session.user to connection connection.id” is now “info” instead of “debug”.

v5.3.1

Released 26/09/2022

New features

  • Allow to setup the user group ringing strategy and its parameters via REST API (ROAD-2390)

  • Persistent and centralized missed call counter (ROAD-2016).

  • Added more specific log-level logs for Erebus service in info & error levels (VOD-110)

  • Include email and phone number values for domain contacts in the AddressBook’s endpoint response body (QUOBDEV-1753)

  • Upgrade Keycloak component to latest upstream release (ROAD-2259)

  • Document “401 error” in the REST API documentation(ROAD-2546)

  • Make the homoglyph check configurable (ROAD-2456)

Bug fixes

  • Meetings can be updated by regular users without admin priviledges under certain circumstances (SEC-167)

  • Under some circumstances, push notification reaches the other participants in a ringing group after one of them answers the call (ITX-647)

  • Database migration 26.5 and 26.6 fails (ITX-653)

  • Blocked non authorized access to Keycloack API (ROAD-2567)

  • Fixed single-session support (ROAD-2311)

  • A malformed room-destroyed event is sent in a ringing group call (ROAD-2521)

  • A “PUT” query to the “domain” endpoint accepts an invalid parent (ROAD-2449)

  • Meeting owner data is not updated when meeting details are updated (ROAD-2441)

Known issues

  • Deactivating missedCalls service blocks conferenceLog writing. Workaround: always initialize the missedCalls service. (ROAD-2658)

  • Meetings cab be updated by another user different from the owner (SEC-167)

  • A push notification arrives to the mobile applications if a call has been made while the device was out of connection (ITX-661)

  • 400 Bad Request returned when trying to remove password protection from A meeting (ROAD-2648)

  • The /auth/realms/master/metrics endpoint is now working with latest Keycloack version (ROAD-2674)

  • The keycloak deployment misses the parameter nodeSelector: disktype (ROAD-2667)

Changes

  • New “missed call” services that requires specific activation at the wac.ini configuration file in case of migrations of previous systems ([missedcalls]). This service is activated by default in new installations.

  • Two new parameters for setting the default local and timezone (defaultTimezone and defaultLocale) in file wac/config/user.toml

  • Do not delete presences when deleting users, as we asume all users have a presence so if we drop presence for deleted users, applications querying data about those users may fail. Instead, when a presence query about a deleted user is done, the answer is an empty presence (it only contains the address field, the other fields are null or empty strings)(wac-core 20b0ca3b)

v5.2.2

Released 22/08/2022

Bug fixes

  • Calls from PSTN users to internal users are not registered in the conference log under some specific situations (VOD-160)

v5.2.1

Released 01/08/2022

Bug fixes

  • Unanswered calls not shown in the callee conference log in parallel-SIP environments (VOD-97)

  • Calls to offline users do not appear in the call-history of the callee (VOD-98)

v5.2.0

Released 15/07/2022

New features

  • The ringing group strategy configuration, which was introduced in version 5.1.0 as system-wide configuration, has been improved in this version and it’s now a per-usergroup configuration. This is implemented in a new object named “ringingstrategy” available in the usersGroup endpoint of the wac-core REST API (ROAD-2468).

  • There are now two new parameters to setup the user local timezone and its locale (“currentTimezone” and “locale”). These two new properties are used by the wac-core service when sending SMS and meetings notifications and also in the conference log generation (ROAD-2459).

  • New parameter “chatId” added to the UsersGroup model that includes the ID of the associated chat room (QUOBDEV-1900).

  • Added a new library @quobis/opentelemetry-wrapper (ROAD-2330).

Bug fixes

  • Corrected wrong behaviour that caused the wrapper service to reboot with a log message “TypeError: this.deleteRoom is not a function” (VOD-107).

  • QSS-meeting-basic service could not start if service qss-registry was not available (ROAD-2247).

  • wac-core service allows case-sensitive “groupID”s while the XMPP services is case-insensitive. A check has been added to prevent this problem in the future (ROAD-2410).

  • User update API in WAC-core allows to modify values incongruously. Now, The fields “created” and “lastLogin” have been ignored from the PUT request - users. Therefore, even if any of these fields comes in the body, no update will be done (ROAD-2354).

Changes and deprecations

  • Ringing group strategy configuration from config.json has been deprecated and removed. This information is now avaible at each ringing group.

  • Migration of wac-core 26.4 is required (wac-core: node bin/waccli migrate -f 26.4).

v5.1.2

Released 05/07/2022

Bug fixes

  • Incoming calls to user groups participants when the mobile app was running in background mode were not automatically cancelled in sequential ringing (ROAD-2434)

v5.1.1

Released 21th June 2022

Bug fixes

  • Calls to user groups with sequential strategy are now working properly in mobile devices (ROAD-2293)

  • Changed wrong internal reference in erebus service from “wac” to “wac-core” (QUOBDEV-1937)

v5.1.0

Released 06/06/2022

New features

  • Support for push notifications when the wac-core service sits behind a HTTP proxy (VOD-136)

  • New dashboard that provides login information from Keycloak such as logins/logouts per second, per domain, login response time, login errors, etc… (ROAD-2011)

  • New dashboard with metric of the Kitter service (ROAD-2086)

  • New ringing strategy for UserGroups: sequential ringing. This is a system-wide configuration option via two new parameters: “stepDelay” and “maxSteps” (ROAD-2154)

  • A new endpoint “putParticipants” with path /sapi/usersGroup/:groupId/participants has been added to the wac-core REST API in order to change/update the participants of an userGroup and it’s order (ROAD-2168)

  • Kitter API can now handle users without sipmapping attribute (ROAD-2218)

  • Kitter API can now handle users without wacUserId attribute (ROAD-2219)

Bug fixes

  • All established calls are automatically terminated when the “stepDelay” * “maxSteps” time is reached and sequential ringing is activated (ROAD-2229)

  • User created on the fly can now be deleted using Kitter API (ROAD-2204)

  • User matching in login process is now case-insensitive (ROAD-2225)

Changes

  • There are three new enviroment vars for Kitter configuration: JAEGER_HOST (host where is the jaeger endpoint for monitoring traces), JAEGER_PORT (port of the the jaeger endpoint for monitoring traces) and PROMETHEUS_PORT (port of the prometheus endpoint to send metrics to).

Known issues

  • The chats of the deleted users remain indefinitely in the chat list (VOD-146)

  • The meeting time shown in the email body is different from the time shown in the ICS file (VOD-146)

  • Single session: inability to properly logout earlier session because of keycloak’s cookie (ROAD-2311)

  • Keycloak shows an error on first login (and creates the user) when login using ADFS (ROAD-2191)

  • Logout is not working when authenticating against ADFS server (ROAD-2190)

  • Changes in unique key mobilephone were not properly managed on system boot (ROAD-2160)

  • Calls to user groups with sequential strategy are now working properly in mobile devices (ROAD-2293)

  • Unanswered calls are not shown in the callee conference log with Parallel-SIP (VOD-97)

  • On multiparty calls, when a participant hangs, he is still shown for the rest of participants (QA-2941)

  • The list of chats does not show the conversations before the version update (QA-2907)

  • Instant audios sent by iOS native app to a web user are not received (QA-2790)

  • Finishing a call as callee on PSTN does not finish it on the platform (QA-2578)

  • The call of a multi-device users ends automatically when users log out from another device (QA-2513)

v5.0.5

Released 24/05/2022

Bug fixes

  • Wrong timestamp of the recording files (ROAD-2189)

  • Empty mobile phone field in the user on-the-fly creation caused a wac-core crash (ROAD-2183)

Known issues

  • Unable to delete user created on-the-fly via ADFS using Kitter API (ROAD-2204)

  • Keycloak shows an error on first login (and creates the user) when login using ADFS (ROAD-2191)

  • Logout is not working when authenticating against ADFS server (ROAD-2190)

  • Changes in unique key mobilephone were not properly managed on system boot (ROAD-2160)

  • Unanswered calls are not shown in the callee conference log with Parallel-SIP (VOD-97)

  • Information button doesn’t display call details when screen-sharing functionality is activated (QA-2996)

  • On multiparty calls, when a participant hangs, he is shown for the rest of participants (QA-2941)

  • The list of chats does not show the conversations before the version update (QA-2907)

  • Instant audios sent by iOS native app to a web user are not received (QA-2790)

  • Finishing a call as callee on PSTN does not finish it on the platform (QA-2578)

  • The call of a multi-device users ends automatically when users log out of the device where they do not have an established call (QA-2513)

v5.0.4

Released 12th May 2022

Bug fixes

  • Ansible deployment can be done now with Debian 11 (DEVOPS-501)

  • Session restore was sending a 404 Bad Request under specific circumstances. That means that mobile apps couldn’t recover from background state (ROAD-2157)

  • Single-session parameter was not working due to a problem with Keycloack sessions (ROAD-2158)

  • No response is sent to client when an already created ADFS user was recreated (ROAD-2149)

  • A malformed AMQP message caused the wac-core service to crash. Now, the malformed event is handled correctly and a log message is saved (“Unable to parse event, ignoring. The event content was: …”) (AS-141)

  • Login using a remote ADFS is not working (DEV-1811).

  • The id@anonymous string appears when the user accesses the lobby of a meeting (VOD-114).

  • VoIP pushes has a 1-hour lenght timeout, fixed now to 30 seconds (DEV-1925).

  • Cannot sort users by email via the REST API (ROAD-2083).

  • SMS templates of meetings has name and URL as mandatory fields (ROAD-2095).

  • Under some circumstances the incoming request has no socket assigned (ROAD-2128).

  • Images with webp format are rejected for user’s avatar (QA-2985).

Known issues

  • Unable to delete user created on-the-fly via ADFS using Kitter API (ROAD-2204)

  • Keycloak shows an error on first login (and creates the user) when login using ADFS (ROAD-2191)

  • Logout is not working when authenticating against ADFS server (ROAD-2190)

  • Wrong timestamp of the recording files (ROAD-2189)

  • Empty mobile phone field in the user on-the-fly creation caused a wac-core crash (ROAD-2183)

  • Changes in unique key mobilephone were not properly managed on system boot (ROAD-2160)

  • Unanswered calls are not shown in the callee conference log with Parallel-SIP (VOD-97)

  • Information button doesn’t display call details when screen-sharing functionality is activated (QA-2996)

  • On multiparty calls, when a participant hangs, he is shown for the rest of participants (QA-2941)

  • The list of chats does not show the conversations before the version update (QA-2907)

  • Instant audios sent by iOS native app to a web user are not received (QA-2790)

  • Finishing a call as callee on PSTN does not finish it on the platform (QA-2578)

  • The call of a multi-device users ends automatically when users log out of the device where they do not have an established call (QA-2513)

  • Existing quick-conferences allow only three participants after a system reboot (error log: maximum number of publishers (3) already reached) (ROOM-346)

v5.0.0

Released 25/03/2022

Backward compatibility announcement

Please take into account these limitations about backward compatibility following the announcement of Quobis Communication Platform v5.0:

  • Quobis native application (SDKs and collaborator) v5.0 are fully compatible with systems running Quobis wac v5.0, v4.4, v4.3.

  • Quobis Javascript SDK v5.0, Quobis collaborator web & desktop v5.0 are not compatible with systems running Quobis wac v4.4 or v4.3.

  • Quobis SDKs v4.x , Quobis collaborator v4.x are not compatible with systems running a Quobis wac 5.0.

  • Quobis Manager v5.0 is not compatible with systems running Quobis wac 4.x.

  • Quobis Manager v4.x is not compatible with systems running Quobis wac 5.0.

Version 4.4 of Quobis Communication Platform products (Quobis wac, Quobis SDK, Quobis Manager) will be supported until November 2022. Please take this end-of-life date into consideration as per the implications stated above.

Released 25th March 2022

New features

  • User login and authentication process has changed in v5.0 in order to provide a better and more secure authentication process. Two new elements have been added in v5.0: Keycloack (a third-party open source IAM server) and Kitter (a service responsible for user provisioning and coordination between Keycloack and wac service). User authentication and provisioning is made now using these new services and their associated APIs, instead of using the wac REST API endpoints. Please note that this new implementation breaks the REST API contract as explained in the backward compatibility announcement above.

  • Configure the system to be able to connect an external debugger using –inspect parameter (QUOBDEV-1307)

  • Improved connection error management related to AMQP messages (QUOBDEV-1670)

  • REST API new features and improvements:

    • New REST API conferences endpoint with cursor based pagination (QUOBDEV-1422)

    • Allow regular users to query other users via REST API (QUOBDEV-1565)

    • Enhance documents information with username and domain in the presence REST endpoing (QUOBDEV-1564)

    • Improved users REST API endpoint to get users by their username and name

    • Create sipmappings V2 endpoint (QUOBDEV-1402)

    • Add new pagination and filters to sipmappings endpoint (QUOBDEV1349)

    • Create users groups V2 endpoint (QUOBDEV-1403)

    • Add partial searchers in Users string fields (QUOBDEV-1348)

    • Add new pagination to users endpoint (QUOBDEV-1343)

    • Add new pagination to group endpoint (QUOBDEV-1353)

    • Return the total number of records per collection in the pagination library (QUOBDEV-1341)

Changes

  • Service “sippo-server” has been renamed to “wac-core”.

  • Deployment software package “sippo-k8s” has been renamed to “k8s-installer”

  • There is now a domain named “anonymous” that is automatically created by default and that cannot be edited or removed. All anonymous users are mapped into this domain, which is a “child” of the main “quobis” domain.

Bug fixes

  • Erebus limits the number of connection to the QSS from a given endpoint to prevent system overload, with the exception of WS janus-protocol as there can be more than one connection for call transfers, call-hold, etc… A log has been also added (“Cannot open a new pipe for the same server ${server} and protocol ${protocol} from client ${clientId}”).

  • Presence is not being updated for some users (QA-2652)

  • Watchdog registry checks are executed every millisecond (QA-2840)

  • Erebus reached inconsistent state after a Kubernetes node was down

  • Memory leak in qss-registry service

  • Erebus fails to reboot after a node crash

  • Static contact from Addressbooks is received without a phone value (QA-2849)

  • First chat messages sent to a user are not received (QA-2850)

  • An iptables rule needs to be added every time a kube-proxy restarts

  • The xmpp-server-nginx does not connect to the sippo-server when it changes its IP address (QA-2051)

  • The xmpp-server doesn’t connect to postgresql after an environment crash (QA-1863)

  • The response codes are different depending if the callee is a pstn or a domain user (QA-1754)

  • Fix timeout on error when sending a SMS after deletion of a meeting (QA-2788)

  • Reconnections and pod-restart issues:

    • Erebus fails to reboot after a node crash

    • Wrapper and recording services do not automatically reconnect after a RabbitMQ crash longer than three minutes (QUOBDEV-1679)

    • The dispatcher does not work correctly after a reboot

    • Error “restify.NotFoundError is not a constructor” appears in dispatcher logs

    • qss-trunk service needs to be the last QSS service to be initialized, otherwise it will refuse to start

    • qss-trunk service stops working properly and prevents outgoing calls in some circumstances

  • REST API fixes:

    • Error 404 is returned when PATCH is sent to /api/user/ with phone_number and sip_mapping

    • 200 OK is returned when POST/PATCH to /api/users or /api/domains is sent with an invalid body

    • User REST API allows to change the user domain (QA-2471)

    • User REST API allows to update username (QA-2816)

    • Users REST API allows to update an alias using an empty value (QA-2812)

    • Clean orphan sip-mappings without an existing owner or user group (QA-2365)

    • Regular users can edit the data of other users through user SAPI under some circumstanace (QA-2820)

    • User search based on email with special characters is not working (QA-2698)

    • System allows to update an user using invalid user role value (QA-2469)

    • Users can have its role changed to anonymous even if their domain doesn’t allow it (QA-1760)

Known issues

  • User can not be changed from one domain to another

  • On multiparty calls, when a participant hangs up, he is still shown for the rest of participants (QA-2941)

  • Invites to PSTN: fromDetail.displayName is wrong, it displays the caller’s number instead of the SIPs displayName (QA-2746)

  • The call ends when canceling an invite participant request sent as callee (QA-2530)

  • The SipMapping is not removed from the database when the userGroup is deleted (QA-2376)

  • Recording does not process when videos are turned off and back on (QA-2271)

  • Meeting start and end time sent by email are incorrect

  • Users removed from the system remain listed as members of the chat groups to which they belonged (QA-1942)

  • Meeting PIN is not being send on the SMS (QA-1938)

  • Active conferences has not an associated chat (QA-1921)

  • The xmpp-server doesn’t connect to postgresql after an environment crash (QA-1863)

  • A malformed requests in erebus should respond with 400, not 500 (QA-1768)

  • Allow WAC to locally query itself instead of using public URL when validating an access token (QA-1761)

  • Credentials OpenAPI definition missing query parameter (QA-1762)

  • There are some users registered with multiple Firebase push tokens (QA-1755)

  • When a disconnected user’s ID is called, the call is redirected to PSTN (QA-1757)

Deprecations

  • Internal service oAuth-2P (O2P) has been deprecated in v5.0 as it’s been replaced by Keycloack service.

  • Oracle, Ericsson and Dialogic gateway support has been deprecated in v5.0

v4.4.1

Released 17/05/2022

Bug fixes

  • Wrong timestamp of the recording files (ROAD-2189)

  • Addressbook service is monitoring events from all other services, even when disabled by config (QA-2607)

v4.4.0

Released 17/09/2021

New features

  • meetings: improve email and SMS notifications’ configuration

  • meetings: react to deleted users that participate in meetings

  • meetings: add timezone information to meeting templates

  • meetings: allow complete disabling of notifications

  • xmpp: provide connection information in hosts-meta files

  • sipmappings: assign SIP mapping on login from a pool

  • conflog: timezone information support for participants

  • billing: billing information service

  • user: return 409 on conflict when updating/creating instead of 403

  • wac: inform web app root URL via hosts-meta files

  • presence: ensure no duplicate subscriptions are created

  • db: do not recreate already-existing indexes on restart

  • mwi: send subscribe requests to SIP proxy on session recover

Bug fixes

  • users: fix updating mobile phone field

  • mwi: fix handling of new sessions

  • user: fix phone number normalization and remove duplicated country code

  • resolver: fix to allow resolving users with * in their username

v4.3.4

Bug fixes

  • meetings: stop parsing users meetings field

v4.3.3

Released 10/05/2021

Bug fixes

  • sipmappings: assign sipMapping automatically in login

  • sippools: change collection name to use md5 instead of plain domain

v4.3.2

Released 02/05/2021

No changes

v4.3.1

Released 28/05/2021

Bug fixes

  • QSS room-update event is not being sent when there is a ACL modification (QA-2276)

v4.3.0

Released 14/05/2021

New features and changes

Global

  • A new permissions service that allows to setup policies per domain and user and consume them via the REST API.

  • Added “screensharing” capability by default in the domain creation

  • An event speakerChanged is generated when a participant in a conference starts or stops speaking. This event can be consumed from the SDKs to provide this information to the rest of participants. Available in the Javascript SDK.

  • An event is generated when a participant starts/stops sharing his/her screen

Authentication

  • Added support for OpenID as an external authentication service

Deployment

  • New feature “Blue-Green deployment” that allows to have two enviroments in parallel. That means that it can be used to migrate users from existing environment to a new one in order to test that everything works properly. This migration can be done on a per user basis updating the info of the user by using the Service API.

Meetings

  • Ability to set and start time, end time and meeting password

Recording

  • New set of recording permissions that allow fine-grained control on who can record what

  • Three new levels of quality recording

  • Recordings can be provided merged or separately into single files.

Telephony and PBX

  • Added MWI (“Message Waiting Indicator”) integration with SIP-based external voicemail platforms. In addition, the voicemail SIP address is now also reachable via a generic destination string (“voicemail”).

Bug fixes

  • Fixed a bug that prevented SIP users to leave the conference room under some circumstances (QSS-284)

  • Unneeded Credentials added to STUN ICE servers in the Dispatcher (QA-1824)

  • Conference log update events are sent as many times as a user appears as candidate in a call (QA-1923)

  • Improve log line in QSS registry (FOEHN-591)

  • DataPipe export “symbol” instead of the proper enum (QA-1864)

  • Meeting PIN is not being send on the SMS (QA-1938)

  • Users removed from the system remain listed as members of the chat groups to which they belonged (QA-1942)

  • Active conferences has not an associated chat (QA-1921)

  • All alerts are displayed as send/received at current time when alerts tab is opened (QA-1943)

  • Push notifications (iOS): sound property must be set to default (QA-1854)

  • MWI does not sent sipMapping password in unregister (QUOBDEV-1059)

  • Wrapper restarts if the plugindata received is empty (QA-1749)

  • QSS-watchdog-registry stop working if database connection is lost (QSS-276)

  • An anonymous user can delete itself via API (SRV-1722)

  • Anonymous users can modify their own data via API (SRV-1723)

  • Alert iOS Pushes are not working properly (QUOBDEV-827)

  • Calls from the native app do not connect (QA-1668)

  • Push notifications of chat non-text messages are not received (QA-1658)

  • Contacts marked as favourite loose its value when reloading the browser (QA-1615)

  • Alert template parameters are set to “null” when updating any of their values (QA-1692)

  • Contacts API returns a 404 error when a user tries to update a contact (QA-1573)

Known issues

  • Users removed from the system remain listed as members of the chat groups to which they belonged (QA-1942)

  • Meeting PIN is not being send on the SMS (QA-1938)

  • Active conferences has not an associated chat (QA-1921)

  • The xmpp-server doesn’t connect to postgresql after an environment crash (QA-1863)

  • A malformed requests in erebus should respond with 400, not 500 (QA-1768)

  • Users can have its role changed to anonymous even if their domain doesn’t allow it (QA-1760)

  • Allow WAC to locally query itself instead of using public URL when validating an access token (QA-1761)

  • Credentials OpenAPI definition missing query parameter (QA-1762)

  • There are some users registered with multiple Firebase push tokens (QA-1755)

  • When a disconnected user’s ID is called, the call is redirected to PSTN (QA-1757)

  • The response codes are different depending if the callee is a pstn or a domain user (QA-1754)

Technical improvements

  • Updated restify to 8.5.1 to fix security vulnerabilities (QUOBDEV-824)

  • Automatically fix npm security vulnerable packages (QUOBDEV-823)

  • Drop apn dependency in the QSS (QUOBDEV-822)

  • Make addressbook service compatible with new static contacts service (QUOBDEV-819)

  • Deprecate old dnie service (ROAD-1328)

  • Deprecate old click2call service (ROAD-1327)

  • Deprecation of sippo-cob-static (ROAD-1326)

  • Wac <> xmpp events must be sent in chronological order (QUOBDEV-769)

  • Optimization of framerate for screensharing (SIPPOJS-739)

  • The inviteMany method should has the same behaviour than the regular invite

  • When groups are requested via the Addressbook service, the received id in the response is the groupId

v4.2.7

  • Temporary recording files are not deleted when configured to record in “audio only” mode (QA-1681)

v4.2.5

  • ConferenceLogs events were not being sent to the caller when the call was canceled (QA-1850)

  • Missing “sound” property default value for iOS notifications (QA-1854)

v4.2.0

Released 08/01/2021

New features and changes

  • A SIP load balancer service is now available to route incoming SIP calls to a pool of audiomixers using several call routing strategies (round robin, priority based, etc…) for better performance and scalability.

  • Support to SIP authentication using INVITE & REFER authentication has been added so to the SIP proxy.

  • A new service called “Erebus” has been included in the architecture. Erebus is an API gateway that implements a websocket multiplexer that enables clients to access all of the system services using just one single connection. It reduces login and setup time (less TLS handshakes) and reduces the required bandwidth. This new way of connecting to the server is backward compatible.

  • Three client websocket connections (into wrapper, sippo-server, and QSS services) have been multiplexed via Erubus into a single websocket connection. This change reduces significantly the call setup and connection setup times. More connections will be passed via Erebus in the upcoming versions.

  • Added a websocket keepalive message in the websocket connection from the clients in order to prevent the drop of the connection by a firewall. This ping message is automatically sent by the SDKs each 75 seconds and is answered by the system (wrapper service). The 75 seconds value is hardcoded and cannot be changed.

  • Asterisks are allowed as part of the username and alias fields.

Support to several redirect URIs in the oAuth2 authentication process in order to support several type of devices (desktop browser, mobile browser, native app, etc…) with a single oAuth2 host.

  • Added a new functionality “agent assigner” that allows the dispatching of incoming calls to a set of users depending on several criteria. The assignment decision can be taken by an external system (typically, a contact-center or PBX) or locally by the Quobis wac.

  • A “404 Not Found” SIP error code is sent as a failure message when user does not exist in the system or if the domain in the Request-URI does not match any of the domains handled by the recipient of the request, as defined in RFC-3261.

  • SDK clients can now register into a SIP or IMS network via a SIP REGISTER. A valid registration on the system will triger a delegated SIP registration into an external SIP network using the ims-credentials values. Please note that this configuration has been deployed in stand-alone configuration only.

  • Conference URLs path for public rooms is now configurable and set by default to htttps://wac-public-uri/c/public_room. This change has been done to isolate meeting URL from conference URLs

  • A major refactor has been made in order to provide a easiest way to manage and consume contact information. Some methods have been deprecated in the Javascript and iOS SDK. Two new services, “UserContacts” and “Addressbooks”, have been created as result of this refactor.

  • Support to “Lightweight Kubernetes K3s” deployments (www.k3s.io) in addition to standard Kubernets K8s deployment. K3s is a highly available, certified Kubernetes distribution designed resource-constrained systems. Quobis recommends k3s deployments for lab and testing deployments.

  • Deployment using docker-compose is no longer supported.

  • The audiomixer, SFU and SIP-proxy services are now running as pods inside the Kubernetes cluster.

  • K8s cluster can check the health status of the XMPP, o2p, sippo-server, wrapper, dispatcher and QSS containers.

  • A storage quota parameter (maxStorageQuota) can be set in the installation process via the Ansible installer. This parameter is optional, applies to the entire namespaced and defaults to 60GB for the disk space used by databases, uploaded files, chats and backups. It the parameter is removed, there is no space limitation.

  • Ability to configure the system to use dynamic TURN credentials to prevent fraudulent usage of the media server and DoS attacks. This functionality is configured by setting two new parameters in file quobis-dispatcher-config.js (“secret” and “expirationHours”)

  • Meetings can be optionally password-protected for better privacy and security. This password protecion applies both for system users and external users as well.

  • Meeting organizer automatically receives the meeting invitation email when the meeting is created.

  • Meeting URLs path for public rooms is now configurable and set by default to htttps://wac-public-uri/m/meeting_ID. This change has been done to isolate meeting URL from conference URLs

  • Added “VALARM” support into the attached ICS file of the meeting invitation emails as defined in RFC2445. That allows the calendar client to raise a reminder before the meeting starts. This time can be configured in the “remindBefore” parameters, which defaults to 10 minutes.

  • Join/leave group announcements are now available in the chat history.

  • Two different Callkit push certificates can be configured for the same APNs: one for VoIP pushes and another for chat pushes.

  • Mobile push notification payload now includes contact information of the caller party, following the standard order (contact name, display name, username and finally phone number) so the applications don’t need to resolve that information locally.

  • Added parameter “recordingType“ that allows the selection of which media streams are recorded: audio and video, only audio, only video or nothing at all.

  • Audio and video raw files used during the preprocessing phase are deleted from the temporary folders after they are successfully processed if the configuration parameter “clean_temporary_files” in config/config.json is set to true

  • Ability to set a client IP source ranges to be excluded from rate-limiting (configuration option: limit-whitelist). This is useful in some specific scenarios like contact-centers where most of the traffic is coming from the same IP range.

  • A password policy can now be set with some rules such as minimum length, minimum number of letters/numbers, lowercase/uppercase usage, symbols and spaces, password blacklist, etc…) in order to comply with ISO-27001 requirements. These policies are system-wide and can be configured at file config/passwordpolicies.json

  • Restricted avatar uploads to base64 format URI with images to prevent potential XSS attacks.

  • Added a homoglyph check to reject usernames that might look alike to the existing one, in order to avoid homograph attacks and typosquatting. For example, that happens where the Latin character “a” (Unicode U+0061) is replaced with the Cyrillic character “а” (Unicode U+0410)

Bug fixes

  • System was not taking into account the participants limit value when we have users with different media options (JW-63)

  • It was possible to create and domain with an empty domain name which leaded to a login failure (SRV-1692)

  • System does not start when the agent assigner services is enable and there are not agents defined (SRV-1674)

  • Meeting invitations are not sent to guests that are a user contact but don’t belong to the user’s domain (QUOBDEV-654)

  • Meeting invitations are not sent if the user domain is written completely with uppercase letters (QUOBDEV-651)

  • Calls transferred to a SIP destination caused a wrong entry in the conference log in parallel-SIP scenarios which also caused a crash in the iOS SDK (QSS-281)

  • Calls were not correctly setup after a redirection from one audiomixer to another with parallel-sip configuration and HA setup (QSS-288, QSS-234)

  • Users were allowed to set another username in uppercase as their alias (SRV-1610)

  • Incoming SIP that matched a wac-ims-credentials that starts with a (+) symbol were rejected (QSS-179)

  • Filters createdAtBefore and createdAtSince were not working as expected, as they used LessThanOrEqual or GreaterThanOrEqual filters rather than``LessThan`` and GreaterThan filters (SRV-1664)

  • The call does not progress when calling to a ringing group and the first user of the group is offline (QSS-266)

  • An ongoing call ends if the user logs out from another session (QSS-270)

  • Making a call to a user group with a space in its ID gets no answer and ends after a timeout (QUOBDEV-694)

Known issues

  • Service sippo-exporter crashes sending a GET to api/queues (DEVOPS-301)

  • Presence remains as “busy” if a user is in a call and the connection is closed abruptly (ASLO-33)

Technical improvements

  • Mobile push notification implementation has been completely redesigned in order to comply with the last iOS policies and to accomodate both hybrid and native applications. All push notifications are now sent from the sippo-server services, including chat notifications which were previously sent by the XMPP server.

  • Unify user group events into a single one (group-updated)

REST API

New features and changes

  • REST API documentation is now described using the OpenAPI format.

  • Added /kmanage/k8s/getlogs endpoint to gain get logs of an specific pod (kubectl logs <pod-name>)

  • Added endpoint /kmanage/loglevel to set the log level of /kmanage endpoints between levels “Info”, “Warn”,”Error”,”Debug” and “Trace” without service restart

  • Added two endpoints to manage system backups:

    • /kmanage/backups/getbackups: lists all backup file available in the system

    • /kmanage/backups/downloadbackups: download available backup files

  • Added endpoint /kmanage/reporting/getreport that gets reports of the last 24 hours.

  • Added endpoint /kmanage/siponhold to obtain conference object from roomId and sent it to the audiomixer service to implement a SIP reINVITE

  • Added several endpoint for the “Agent assignment” functionality:

    • /kmanage/agentassigner/list that gets every agent assigner entries

    • /kmanage/agentassigner/delete/{id} that deletes and agent assigner element

    • /kmanage/agentassigner/showroute/{id} that shows the route of this entry at the agent assigner

    • /kmanage/agentassigner/addroute that creates a new route to the agent assigner element

  • Added endpoint UserContacts for better contact management.

  • Added endpoint AddressBooks for better contact management.

  • Added endpoint /kmanage/template to get swagger template file in JSON format

  • Added several endpoints to gain visibility over the Kubernetes cluster status:

    • /kmanage/k8s/clusterstate: lists the cluster state (kubectl get pods -o wide)

    • /kmanage/k8s/clusterservices: lists the running services (kubectl get svc --all-namespaces -o wide)

    • /kmanage/k8s/getlogs: gets logs of a specific pod (kubectl logs <pod-name>)

  • Added boolean field isPasswordProtected to the meeting object that indicates if a meeting is protected by a password.

  • Added query parameter userId to filter meetings to which an specific user has been invited.

  • Added endpoint /kmanage/xmpp-server/getuserschat that returns a list of users with sent chats and the number of sent chat by each user (1-by-1 chats and group chats)

  • Added an endpoint to delete sent chats by an specific user (/kmanage/xmpp-server/deleteuserchats)

  • Endpoint /xmpp/roster/{username}: replaced by full subset:

    • xmpp/push

    • xmpp/push/register

    • /xmpp/push/unregister

  • Endpoint /pushNotifications/{userId} replaced by `/pushNotifications/byUserId/{userId}:

  • Added endpoint /kmanage/getrecord to list all recording files available in the system.

  • Added endpoint /kmanage/downloadrecord to download a recording file.

  • Added endpoint /kmanage/usergroup/logout to force logout of every participant of a given user group.

  • Added endpoint /kmanage/user/location to obtain the location of a user.

Bug fixes

  • Information exposure through error message on /sapi/o/token (SEC-59)

  • Unauthenticated user could query presence information via /sapi/presence/wac-user (SEC-61)

  • Log message returned in response to endpoints credentials and domains (SEC-68)

  • Potential denial of service on /sapi/sessions requests that results in “504 Gateway time-out” after around three minutes (SEC-62)

  • Information leakage in /sapi/filesharing endpoint (SEC-69)

v4.1.0

New features

  • Global improvements regarding the internal work of the system. The unified system based on a message-broker allows to add more services and remove them easily, giving more flexibility to the architecture. The main change comes from latency optimization, based on a ws-proxy that allows a unique system connection with better and improved performance.

  • Regarding monitoring software it was enhanced with log view and troubleshooting filters navigation. No more consoles to extract logs. Just use the logs, cross metrical performance KPIs data with direct container logs and get your info easy and direct.

  • Attended transfer (available only in the Javascript SDK in this version).

  • TLS 1.3 support is included. Your apps are now more secure, more efficient, more reliable.

  • NGINX was selected as ingress-controlled for the cluster, so some enhances here from the original Traefik media

  • SIP early media support and more options regarding the codec selection and media bandwidth allocation for calls. Also were applied some audio improvements to reduce audio-noise on calls.

  • Meetings now include more options to add flexibility to the meeting invites. REST API was improved to support more use cases

  • Improved and resolved multiple issues with chat notifications.

  • Ability to reach SIP endpoints for anonymous users.

  • Add error logs in QSS when “resolvePush” is set to true and it is not possible to reach Push service in sippo-server

  • CDR (call detail record) display and download in Sippo manager

  • Integrate services logs viewer in Sippo manager

  • Generic filter in /conferences/ endpoint to retrieve list of conferences

  • Screen sharing support in the desktop application

  • Allow more than 9 video participants on a conference

  • Prevent certain types of files (JS, HTML and any potentially harmful type) from being transferred (filetransfer)

  • Avoid credentials being leaked by SAPI endpoints

  • CORS configuration mechanism

  • Backend server resource reach-ability service

  • Transition from Socket.io to plain Websocket

  • Apply traffic security and anti-DoS measures to k8s ingress (nginx)

  • Support to multiple audiomixers (high availability)

  • Include the busy tone when call is rejected

  • Background noise reduction techniques in SippoSDK-JS and webphone

  • Provide audio toggle for mobile applications

  • Ability to change the default bandwidth of the video flows

  • Early media support with sippoMS.sfu

  • Automatic SMS / email notification to users when creating a meeting

  • Improve mail templates for more customization on body and headers

  • Chat / call / SIP agent assigner (SDK, REST endpoint)

  • Migrate XMPP storage to SQL based system

  • Ability to enable/disable “conference chats” in Application Server

  • Group chat push notifications -

  • Restrict registration to a single endpoint

  • Add REFER support on the SIP integration

  • SIP/WebRTC: On hold music for held participants

  • Add SIP header manipulation for AudioMixers

v4.0.0

The list below shows the overview of the main features added since the previous version at each category. A detailed list is provided in the next subchapter.

New features

  • The internal architecture has been separated into Sippo AS and Sippo MS. Besides that, new features have been implemented as a number of microservices -interconnected by a high performance message broker- to improve resilience and scalability.

  • On the client side, two new mobile SDKS have been added for iOS and Android operating systems.

  • Sippo manager has been released to provide better logging and monitoring capabilities. Logs can also now be sent to an external ElasticSearch server for analytics and troubleshooting.

  • Added delegated authentication against Microsoft ADFS servers and upgraded Google oAuth to work with newer Google versions

  • Added a number of PBX-like features such as ringing groups, attended transfer, unattended transfer, onHold, etc… That means that Sippo wac can provide signalling capabilities on its own, without requiring a third-party PBX o SIP backend.

  • A new service named “conferencelog” allows also to retrieve the conferences where a user has participated, including those where multiple participants are joining and leaving during the conference and also including low-level information on invited participants, rejected and accepted invites, transferred users, etc..

  • Integration with external SIP backend has been also improved with a “SIP parallel leg” approach. That means that service providers can easily add collaboration to exiting voice-only networks.

  • Room management is more powerful in this version, as it’s possible to mix and match PSTN users, Sippo users and guest users in the same room. We’ve also changed the associated logic so room ownership is now handled in a more efficient way.

  • Phonebook service has been added to better handle shared contacts and group contacts. In addition to personal contacts and domain contacts, administrators can now define a set of contacts that are assigned to specific users or groups. Users can also manage their own private phonebooks in addition to the ones created by the administrator. Improved mobile and directory synchronization of contacts is also included in this version.

  • Deployment over Docker infrastructure is now fully supported and it’s the recommended deployment choice for trials and PoCs. Automation has been done with Ansible scripts that don’t require any manual installation. On the other hand, deployment over Kubernetes infrastructure is now the default choice for production environments. Deployments over public cloud are now also supported in Amazon AWS and Microsoft Azure.

  • On the testing side, a number of load testing scripts and functionality testing scripts are available using third-party QA tools, in order to test the deployment before production.

  • Sippo MS has been included into the architecture so a third-party WebRTC media server is now an optional choice. This media server can handle H264, VP8 codecs and is also able to interact with traditional voice networks using G711 codecs.

  • This version also enables screen sharing from Chrome and Firefox without requiring a plugin (desktop only).

  • Meetings have been refactored to make them more flexible and manageable, so that they can have a DDI assigned to access the meeting from PSTN or PBX (dial-in).

  • This version incorporates a completely redesigned messaging service, that allows to have permanent chat between users, personal chat rooms, predefined chat rooms and other improvements. It also adds new user capabilities so administrators can allow or disallow messaging functions to users and user groups. That means for example that some user can have chat functions or are able to create groups, while others cannot do that.

  • Mobile notification have been improved both on iOS Callkit and Android Callservice, with deeper integration with the existing javascript SDK and the new native SDKs. One to one Incoming chat messages are also notified with a push message.

  • This version allows to configure codec specifications for stored recorded file. In addition, new integration options with storage services allows to actively notify about a file ready to be stored (or share with participants).

  • Users can now be classified into groups (usergroups). That allows new use case such as to define ringing groups to call all participants of a predefined group, and also to have predefined phonebooks.

  • Connector to AD/LDAP for oAuth authentication

  • Ability to delegate authentication with Google oAuth

  • Ability to delegate authentication with MS ADFS

  • Domains can have default contacts that are searchable to every domain user

  • Added abstraction layer to support different database schemas

  • Ability to distribute Sippo AS and MS microservices into several hosts

  • Ability to customize recording video container

  • Recording support for h264 and vp8

  • Added “SIP parallel leg” functionality to interop with SIP networks

  • Sippo manager: user management (create, edit, update, delete)

  • Sippo manager: dashboard with business KPI and system status graphics

  • Send audio and video clips

  • Ability to send DTMFs on the SIP channel on conferences (RFC2833 and RFC4733)

  • Added “Agent assigner” service to interact with external services in contact-center scenarios.

  • Toggle camera support for SippoSDK-JS and SippoSDK-iOS

  • Ephemeral chat group for anonymous rooms

  • Support for getNativeDisplayMedia: Firefox, Chrome

  • Recording support for H264 and VP8

  • REST conference status exposition

  • Support to transfer of PSTN calls to other Sippo users or PSTN

  • Improved security login mechanism

  • Improved signalling headers to identify “to” field in parallel-SIP environments

  • oAuth2 tokens can have now a expiration time and argument name

  • Support to remote logging into an Elastic Search instance

  • User alias enhances: editable by waccli and allow dots in users’ aliases regular expression

  • This version of the REST API has a number of new methods in order to allow external systems to interact with the new backend functionalites available in this realease, specially around conference management, user management and phonebook management.