v/1.8
v/1.8.0 (before 2024-07-20)
Platform
-
Installer. Changed the way to start the docker container. Upgrading from older versions should be done by recreating the container.
-
Deservice. The mode of soft decommissioning of servers is implemented. Current processes continue to be serviced, new ones are not distributed. Active-Passive groups move leaders gradually to the active zone.
-
Shutdown. Implemented high-speed shooting of hung TCP connections after a hard server crash. Eliminated the possibility of temporary blocking of the notification server due to loss of a web server subscribed to events.
-
Mnesia. Improved stability of mnesia booting and recovery after circuit collapse.
-
Idle. Optimized performance of idle services that are active when there is no target load in the system.
-
DC ping. Added a periodic empty query to the database to hold the connection on the firewall when there is no activity.
-
/ws/token/v1. Added Endpoint to run under a token account with token passing in the header Authorization.
-
PwdHash. Implemented automatic hashing of public passwords specified by the administrator in the configuration file (connection strings, master admin, PostgreSQL replication controller, backup manager, etc.).
-
Refresh Apps. Fixed an issue with long refresh times for custom apps after installing a product layer.
-
Default domain. Added the ability to specify a default domain to be substituted in the input field of the authorization window (in addition to the standard default domain selection) to the master domain.
-
/fs/targets/files. A new endpoint has been added to the REST-API to upload files that can be referenced from the domain settings.
-
$USER. The security-filter functions of the dynamic data model ROLES, GROUPS, SUBORDINATES got an additional array form to use the result in hasAny and hasAll.
-
DomainTree. Fixed the domain tree cache building feature - it was possible to crash after rebooting the DC microservice.
-
Email datetime. The time the email was received is now set from the headers of the email itself (previously it was taken as the time the entity was created - now this value is in a new field recvDateTime).
-
BREAKING CHANGE. Email messages. The type of the references field has been changed. This entails recreating the message table with renaming the previous one in backup. The way to restore the previous e-mails is either to re-request the IMAP server by deleting the email/Folders directories to which the e-mails are bound; or manually copy the data to the new database table structure in the model databases of all domains.
-
Iface. Implemented dynamic binding of the media gateway network interface without the need to make configuration changes. Now there is no need to fill in the 'aliases', 'termportranges', 'rtpiface' fields in the mg, bgmg, sg, esg configuration parameters, as well as in the 'ifaces' field of servers if the interface is not used elsewhere in the configuration. Specifying 'termportrange' for media gates is sufficient.
-
CPU usage. Deep optimization of CPU time usage: in Idle mode with a large number of domains, during server load. Separately in single-server systems and systems without passive microservices instances. Quota-based loading of domains and some other objects is implemented. It is possible to set a limited list of domains to be served for some microservices.
-
Ban. Border filter rules that contain only address indication have the effect of prohibiting the entry of a matched address into the dynamic ban list.
-
Concurrent. Implemented competitive device license support (both by specific registrations and by accounts).
-
Corrected behavior of Leader/Follower service, which in some cases led to unnecessary reboot of the leader instance after connection loss.
-
WS exec. Fixed a problem with the /exec method outputting a result when using the https.
-
Default log level. The option to control the default logging level ('logging_default_level') is included in the configuration settings: to microservices, to server, to site, to public section.
-
Msvc sections. Implemented msvc role configuration option and mservice entity option to select a specific section of servers executing a particular product microservice.
-
Disable plugins. The master domain settings include a setting to disable some of the built-in plug-ins, e.g. CTI.
-
Script limits. The domain parameters include setting restrictions for the scripting machine (number of executed components, time of script execution, pause between components, possibility of using global variables).
-
DMS/DC pools. The ability to control the size of the connection pool to postgresql storages has been implemented (option 'max_connections' of the Storage entity); the option 'max_connections' has been added to the configuration settings of the DMS role 'pg_max_connections_default' (=10).
-
Bulk events. Organized mass sending of events to subscribers under high load conditions.
-
Sections. The sections option has been added to the configuration options of msvc and dms microservices, and the section option has been added to the class and mservice options. This is used to divide a microservice into sections and bind specific entities to selected instances.
-
%WEBSERVERS_EX%. Added a macro to the product microservices launch bar that reports advanced information about webserver placement - local, by section, by tag.
-
Astra. Added installation mode on Astra Linux in closed loop without internet access.
-
Added an option to the general configuration section to disable completely cdr.
-
Expanded bandwidth in the process of sending cdr events by multiplexing.
-
Caches with domain center data received a storage time limit in order to optimize RAM consumption (solved the problem of random numbers hanging in the cache).
-
Added 'tag' and 'order' parameters to WS role configuration settings. They are used when forming command line parameters of product microservices - set in mservices using %WEBSERVERS_EX% macro, affects selection of webserver for connection from product microservice.
-
The configuration validator algorithm has been improved, implementing a double pass to cover cases previously strictly considered invalid.
-
Fixed behavior of msvc microservice in situation when nested archive is not yet up to date when updating services.
-
Fixed duplication of configurations by MC microservice at system startup.
-
Added options for IMAP directory keep_unseen, store_raw_as_file, store_html_as_file.
-
Updated the built-in default SSL certificate, used by default in particular when establishing webrtc connections. New algorithms and versions are supported.
-
Added possibility to control the operation mode of the mnesia object database - in the configuration parameters of the roles associated with it (except DMS), added the option 'mnesia_storage_mode': disc | ram | disc_only.
-
Fixed a problem in endpoint operation /api/token/v1
-
Removed obstacles to running the platform in a docker container not under the root user.
-
Implemented cleanup of the /tmp folder in the docker container on startup.
-
SystemState. Added certificate relevance check to the system status query meet: meet_cert_pem, meet_turn_cert_pem.
-
WS. Fixed an error when sending a response to an HTTPS request to a token using a TLS certificate.
-
Fixed an issue when installing a product layer in a master domain.
-
Roleapps. Added master-domain support to the product layer role application manager.
-
IM. New message types are supported in the telegram messenger channel: sticker, poll, contact, location.
-
The intentional slowdown of update file transfers between servers has been relaxed.
-
The wssubscr and callstore microservices have significantly increased the throughput of modifying operations, and the bottleneck has been eliminated.
Dynamic data model
-
Model. Implemented the function of changing table columns in postgres database when modifying class properties, allowing to perform the operation automatically. Previously, changing a property resulted in recreating the table. Now the recreation will be only if the change is conflicting (for example, an attempt to make numeric a field where existing objects have rows that are not reducible to a number).
-
DMS reload. Eliminated unnecessary spontaneous reloading of some part of classes after changing metadata of any of them.
-
DMS required. Fixed the problem of not placing NOT NULL attribute to postgres table when modifying the value of required field option.
-
DMS notify. Significantly optimized data model change notification model. Indexing of subscriptions. Multiplexing of subscriptions in the platform. Mass sending to webservers. Filtering by operations and event content. Suspend/Resume notification process for a class.
-
DMS stat_mode. For classes, added the ability to specify the level of statistics logging: high | medium | low | disabled | default. The default setting of the statistical logging level has been added to the configuration parameters of the DMS role.
-
DMS RAM expires. Implemented the ability to configure automatic deletion of collection entities in storages of type 'ram'.
-
DMS pools. The pool for system requests, including product layer microservices requests, and other requests is split.
-
Suspend Notify. Added websocket-api method to pause/resume sending collection change notifications.
-
Modified binding of storage_mode of dynamic data model classes to storage types: ram now mnesia ram only, runtime as before mnesia ram+disc, ets → local operational hash table.
-
Implemented a dmsbatch query in the REST API of the dynamic data model to execute a series of queries against a single class.
-
The SETUP operation in the REST-API dynamic data model is implemented. Methods available: suspend_notification, resume_notification, read_partitions, drop_partition, optimize.
-
Added skip_response_entity option to REST requests create, update, delete, which prevents the full entity body from being given in the response.
-
Rest-API dynamic data model queries have been given the 'hrkey' option to control the choice of process handler in parallel service.
-
Binding of classes to DMS sections is implemented. In the configuration, a list of sections can be specified for DMS instances, and a specific section can be specified for classes. Class maintenance is performed only on instances that contain the specified section, and if there are several such instances, then on the one where the group number is smaller. The webserver received the endpoint /rest/v1/design/classes/sections, returning the DMS sections from the configuration.
-
Support for the current version has been implemented clickhouse.
-
Added 'worker_r_count' and 'worker_w_count' to the dynamic data model class properties for fine tuning performance.
-
API-dmsquery now has the ability to specify classpath instead of storageInstance to determine the storage in which to execute the query. The storage with the postfix "_readonly" is mostly searched, and if there is no such storage, a readonly-user is checked and created as before.
-
To speed things up, a cache for aggregation query responses has been added to dynamic data model classes. Lifetime is defined by the class property 'opts.aggr_cache_ttl_ms'.
-
Requests for page-by-page output from the clickhouse.
-
Clickhouse operations now do not use the FINAL modifier in order to significantly increase the speed of querying tables of type ReplacingMergedTree.
-
Added the 'domain' option to the properties of stores like kafka and clickhouse to allow you to set a database connection to a different domain than the current one.
-
The throughput of the service for sending notifications about changes in the data model has been significantly increased.
-
For classes that have storagemode: ram and runtime, a hash table is added to DMS to index lookup fields.
-
Added 'ext.dirty_write_enabled' option for classes to disable transaction for modification operations. The work of classes is accelerated. There are no integrity problems due to the principled sequential single-threaded maintenance of each object. However, writing to the backup server is performed asynchronously and data may be lost in case of abrupt termination of node operation.
-
Added increment field type for dynamic data model class properties. It is implemented in DMS microservice, at loading it is calculated as maximum among all class entities, and further each create and replace operation increments it. Therefore, it is not guaranteed that there are no skips (case of replacing an entity with itself), and also total uniqueness is not guaranteed during the lifetime of the collection (case of added and deleted records followed by reinitialization of the class or restarting the microservice DMS).
-
Added configuration parameter of dms query_worker_count role (4 by default), which allows to limit the number of simultaneous processes of building samples by dmsquery API method. Also, the result output is limited - maximum 1000 rows, which should be realized by means of page calls.
-
Dynamic archival-type collections created automatically by the platform (such as emails, im) are now prioritized to be bound to kafka+clickhouse repositories if they are created in a domain named 'model_ch', with lower priority to the default 'auto' repository 'model_pg'. It is enough to create a repository for rebinding to take place.
-
Dynamic category collections created automatically by the platform (such as email, im accounts) are now prioritized to be bound to a postgresql repository if it is created in a domain named 'model_pg', default is 'auto'. It is enough to create the repository for the rebinding to take place.
-
Dynamic collections that have attachment fields and are created automatically by the platform (such as email, im) are now prioritized to be bound to a file repository named 'model_files' if created, while the default is 'auto'. Specifically email and im attachments are bound with even higher priority to existing repositories named 'email_files' and 'im_files' respectively. It is enough to create a repository for re-binding to take place.
Telephony
-
IVR migration. Implemented migration of IVR script to another media gateway when the current one crashes - the active media component starts executing again.
-
NoSDP. Implemented support and processing of INVITE requests without SDP (offer in 2xx response, answer in ACK request).
-
Bindings. Implemented inheritance of call labels into a substitution call (Invite+Replaces).
-
Record. Implemented the ability to specify audio formats for use in external recording modes SipRec, SipFork.
-
PARENT:acallid:CALLID. Implemented the function of linking a new (consulting) call to the main call by setting a label. Applied by two-step transfer from IVR, as well as in the call manager API.
-
CSeq. Fixed an issue with applying a 2XX re-answer to the next request - if an ACK packet was lost in the network in cases where transfer calls were made, a failure was possible.
-
Freeze. Detected and resolved a blockage in ESG operation for the transaction time - several failed calls were possible in a mass campaign due to a technical internal timeout.
-
Credentials. The sipuser subscriber account was given the ability to apply different {login, pwd} pairs for registration simultaneously and independently.
-
MG. Fixed address spoofing via re-Invite.
-
Pending. Significantly improved stability of counter invites processing - provoked when b2b and ivr media contexts are simultaneously migrated to a new media gateway.
-
Diagram. Fixed the algorithm of sequence diagram construction for a phone call.
-
SendNotify. Improved stability of NOTIFY and OPTIONS sending functions from server to devices.
-
SDP. Fixed SDP format parsing function - a crash was possible when specifying formats in non-standard form.
-
Self-register. Fixed the problem of false binding of external calls to internal subscribers when registering the system on itself.
-
Unregister. Fixed the problem of registration failure when a request is received through another peer, e.g. from another TCP port.
-
Routing rules - check and apply the following rules in the absence of registration and corresponding forwarding of the internal subscriber account. Ability to disable fallback to next rules with opts.fallback_next (by default true).
-
Ability to configure SIP signaling services to listen to specific network interfaces. In particular, the possibility of using 5060 on different interfaces by sg microservices and esg.
-
Added an action field for featurerule rules, allowing to set both prohibition and permission (previously only permission).
-
Hotdesking. Added hotdesking ficacode for dynamic linking of user account and SIP device; ability to set user phone number and pincode.
-
Diversion. RFC-5806 support has been implemented. The provider account has received the corresponding option; when activated, an external call routed to the outside will retain the number of the original external subscriber as the call initiator.
-
Billing RADIUS. Support for RFC-2865, RFC-2866, RFC-2869, RFC-6929 for interaction with the billing system via RADIUS protocol within the framework of accounting for calls made through a provider account with the billing option enabled.
-
Provider reinvite mode. Added an account mode that does not change the subscriber number when sending a re-invite to the telephony provider; set as default.
-
STAT. The general configuration settings include parameters for configuring the time for storing statistical information about calls for the purposes of building closures and diagrams (sip_stat_timeout_closure, sip_stat_timeout_callinfo).
-
Log closure. The option to disable the fault logs is included in the configuration options (log_closure).
-
Normalization svcscript. Number normalization rules were given the ability to modify to_username, from_username, from_displayname with a service script.
-
BGMG and Sip-Alg. Fixed logic of determining the necessity of activation of media gateway on SG when there is only one interface with gray address and activated on the server sip-alg.
-
Username. Calling subscribers by their username (login) is prohibited for all cases except substitute transfers.
-
Forward refer. Added provider account option 'refer_mode' to allow for REFER pass-through along with local service (call initiation towards the same number plan).
-
Route account. Implemented the ability to specify the ISP account using the mask '/mod/…', supported {tab:a:*}, {F}, {T}, {B}.
-
CDR disable. Added configuration option to disable CDR event generation. Used for needs of load emulators organization.
-
local_mg_lower_priority. Added a configuration option to b2b and mgc microservices to disable down-prioritization of locally located media gateways.
-
Fixed ESG issue when processing multiple shoulder swaps in a row.
-
For the needs of creating load benches on the basis of the platform added the ability to make calls directly to the IVR server port, if it is set the configuration parameter default_ivrscode. The specified IVR script is launched immediately. The load on the system is reduced by eliminating the chain of ESG, B2B, MGC, MG and other services required by them.
-
Normalization rules have been given the ability to use a service script to assign all fields at once: from username, from displayname, to username.
-
RADIUS. RADIUS billing support is implemented for external PSTN calls. Provider accounts enable billing by option 'opts.use_billing'.
-
Added 'local_mg_lower_priority' parameter to the configuration settings of MGC, B2B, IVR roles to disable preferential filtering of mediagates running on the same server - for configurations that do not require call reservations.
-
SIP-INFO. Implemented sending DTMF to another shoulder via SIP-INFO if there is no format in SDP Telephone-event/8000.
-
SIP phones are supported Flat.
-
Autoprovision. Added macros 'sg.addr' and 'sg.addr' to templates for autoprovisioning 'sg.port'.
-
Rec. To save resources, MG recording is now enabled only after a dialog is established if at least one of the participant domains has a recording rule enabled.
-
NumbersDomains. To simplify the configuration of multi-domain systems with a single PSTN connection, the telephony/NumbersDomains collection has been added to the master domain, and in filter masks and modifiers of various rules it is now possible to refer to this collection in routing using
/nd/…
and{nd}
respectively. -
pre_modifier. Added 'opts.pre_modifier' normalization rule option to allow the rule to be executed before sending the request to billing. Also added 'substitute_diversion' option to take into account Diversion header (case 8800) and substitute it as destination number.
-
Added support for range-setting masks of the following type "/dia/1234567+10".
-
Pending. Fixed an issue in ESG when receiving a 491 Pending response in response to a Refer Invite, the call is now repeated.
-
Diversion Added support for the Diversion SIP header. Each forwarding adds a header. A call from an ISP adds a header. Provider accounts have been configured to enable PSTN to PSTN transfers and redirects with the From header substituting the number of the initiating subscriber itself with the header added Diversion (opts.use_diversion).
-
The invitebyivr API request parameter to the call manager passes the value of the 'param' property from the request to the script as the second parameter (startparam(2)).
-
The configuration of storages for records has been redesigned. Now you can specify the storage code in record rules, and in storages you can create a file storage element to place records: fs, nfs, s3, and also set a prefix (subfolder). The method of record placement remains the same. The default location of recordings has not changed. Previously recorded conversations are also available for listening. Thus, in one system you can store different recordings in different places, on different partitions and storages by type or time of conversation.
-
SpeechAnalytics. Implemented simple analytics of call recording: time ownership, number of interruptions. It is enabled in recording rules, gets into callevents.call_rec_links, ccsevents.connection_set_record_info and when product layer is installed into conversation collection callcenter/connections/ArchiveConnections.
-
Adjusted work with stream descriptors for stricter RFC compliance. Now during a video call in IVR video stream with port 0 will be present in all answers and reinvites.
-
ccsevents. Added connection_failure event on calls that failed at the routing stage.
-
CPD. In addition to spectrum and voice length analysis, the CPD (answering machine detector) algorithm adds support for patterns based on the fingerprint.
-
CPD. Implemented CPD settings management, added tools to manage CPD templates and CPD tests (Autoresponder Detector for outbound campaigns). The CPD service runs within the mware role. The cpd/Templates, cpd/Tests, and cpd/Records classes have been added to the data model. All record segments submitted for analysis are saved to the collection cpd/Records.
-
MG. MediaGate has fixed an issue where a hold anhold in a web softphone could cause one side to be silent.
-
Intercom. Implemented support for intercom calls from the call manager (API commands invite and invitebyivr) without the need to create ficacode like intercom, permission rule, routing rule.
-
MGC deservice. Reduced the time between media gateway out of service and reboot.
-
Callmanager. Added field to the response of methods invite, invitebyivr, refer, referreplaces, referconf sipcode.
-
Redirectrule. Fixed bug when deleting sipuser when there are forwarding rules associated with it but with arbitrary identifiers.
-
Rfc2833. DTMF sending to the other shoulder by a B2B microservice is done mainly via the protocol rfc2833.
-
CTI. Fixed an issue whereby cleared_event was not sent to CTI channel when canceling a transferred call before receiving SIP response 18x and 2x.
Scenarios
-
ExecScript. The script launcher component has been given the ability to execute a child script in variable separation mode - without passing a composition of variable values back and forth.
-
ExecScript. The list of passed parameters has been extended (up to 10 independently and one more by JSON array). Also added the ability to pass values to child script variables by specifying them in a table linked to their names.
-
ExecScript. For nested scripts, it is now possible to return a value to the call point. At the same time, the variable used in system scripts is assigned to the "result".
-
Interaction. Added the mode of waiting for messages from a specific sender in the "Interaction" script component. Also corrected the function of sender ID generation - it was a random value, now it is a script handler ID.
-
Params. Components "Outgoing call", "Two-step transfer" when specifying the IVR of the serving scenario have the ability to set an unlimited number of parameters, as well as directly using the table to set values to the variables of the child scenario IVR.
-
Component(). The component expression function, which allows you to execute any standard components in an expression, has been given the ability to specify the key of the return value, such as fields for the output value, usually stored in a variable.
-
SBER Salute Speech. Implemented ASR and TTS components to interact with the speech recognition and synthesis system from Sber Salute.
-
Sipheaders(). Added sipheaders function to the IVR script expressions function to access request or response headers (bound to the configuration parameter fwd_headers).
-
IVR feature. Calling IVR via featurecode applies exactly the featurecode number as a number, not the extension (to allow customization of the recording when calling for directions). The latter remains available through functions within the script IVR.
-
ScriptMachine. The performance of the scripting machine has been optimized. Significantly reduced the amount of state data and increased the speed of state handling. When a scenario crashes, the entire scenario is not output to the log.
-
LDAPS. The LDAP scripting component has been given the ability to connect via LDAPS with a certificate.
-
Parser. The Parser scripting component is enhanced with a property that allows you to run several additional queries and assign the results to different variables.
-
JS. Added "JS Code" component for execution of arbitrary subroutine in JS language in product layer environment with passing arguments or values of all variables to input and multiple assignment of result to scenario variables. It is executed by the platform.HolderService of the product layer. The overhead for each call is about 5 msec.
-
Operation. Detected and fixed an issue causing multiple consecutive Operation components to fail in some cases.
-
Invocation. Added a component to execute methods in product layer services.
-
CallerId, CalledId. Callerid and calledid have been added to the list of IVR script functions, predominantly returning the original values received in the INVITE request from the provider.
-
HOLD. Added a component for implementing test scenarios in emulators.
-
Notify. Implemented the ability to save notifications for later viewing in the cabinet.
-
Detect DTMF. Added the ability to turn the detector on and off Inband-DTMF.
-
Send DTMF. Added the ability to generate Inband-DTMF.
-
Play. For synchronous file list playback mode, added the ability to set an additional time to wait for DTMF input after playback is complete.
-
SSML. The TTS Sber Salute scripting component has been given the ability to specify text in the following format SSML.
-
Inband. Inband detection mode control - use, enable, disable - has been added to the 'DTMF Input' component of the IVR script.
-
Inband. New. Added sending mode to the 'DTMF generation' component of the IVR script Inband.
-
Play. Added "File List" mode to the 'Playback' component of the IVR script".
-
KeepUnseen. Added "Leave unread" property to the "Receive Email" script component" (keepUnseen).
-
Trivial scriptcode() and domain().
-
SBER cloud. Added support for running Sber Salute speech recognition and synthesis components via cloud service.
-
SQL. Fixed a bug in the SQL-query component in scripts that prevented modifying queries from being executed.
-
Outgoing. Callid() expressions in IVR scripts are supported for outgoing calls.
-
fileCanGrow. The "FileCanGrow" parameter has been added to the IVR component of the "Play File" script, which allows to activate the mode of waiting for new data to appear in a file, if its header specifies a larger size than the data in the file.
-
growingRaw. The "GrowingRaw" mode has been added to the IVR component of the "Recording" script, which allows to activate the mode of operative dumping of the received traffic into a file having a header with a known larger number of samples, upon completion the header is updated according to the received size.
-
stopPlayerIdOnVad Added the parameter "Interrupt background when voice is detected" (stopPlayerIdOnVad) to the IVR component of the "Record" script, specifying the background playback layer.
-
AZURE TTS ASR. Added IVR synthesis and speech recognition components via Microsoft Azure cloud. Added a parameter to the domain settings azure_cloud.
-
CC. The IVR component of the "Call Center" script when preparing a parameter predominantly treats the specified values as JSON-objects.
-
LANG. Implemented language model support by the script editor. Built-in support ru/en.
-
Background silence. IVR the script now always plays background white noise of amplitude 0.001 so that packets are constantly sent to the mediastream.
Web Conferences meet
-
Fixed sound display indicator in the MCU.
-
Added display of unsupported browser notification.
-
Worked out the situation of sound and video absence in some cases (added recreation of the concumer when an error is detected).
-
Added mcu settings to the server configuration.
-
Updated system image (docker 11, start server on container startup).
-
Modifications to support existing functionality in the dextop application.
-
Ability to open links in the desktop app, download the desktop app.
-
changed desktop application behavior - when launching, it connects by the last link (the one you connected to last time)
-
added link - Disconnect from server - for desktop application to the main page in the client application
-
Added. Customization. Pairwise switching of I/O devices.
-
Added. Action. Ability to disconnect a moderator from a room.
-
Added. Action. Ability to disable microphone, camera and screen sharing for moderators.
-
Added. Action. Ability to disable microphone, camera and screen sharing for all participants.
-
Added. UI. Setup page before connecting to the room (microphone, camera, speakers, participant name).
-
Added. Configuration. Possibility to enable/disable mcu (sound mixing on the server).
-
The state (on/off) of the devices (camera, microphone, speaker) that was set in the settings check is now saved after connecting to the room.
-
Fixed behavior that could cause the "click ok to continue" window to appear, this window should now be less frequent.
-
Room login page. Fixed "Room not found" display in case the room code is not entered.
-
Changed saving of last read messages in chat. Now saving takes place in the browser.
-
Fixed incorrect display of the ability to disable microphone, camera and presentation to all participants for users without moderator rights.
-
Fixed display of media disable panel (microphone, camera, presentation) to all participants.
-
Added check of turn operation (restarting turn on error).
-
Changed the display of sound testing on the device selection page.
-
Added. Configuration. Server can now open http port to speed up communication when proxying from era to vx server. This is configurable in the vx server configuration.
-
Corrected. Closed networks. Frequent hang of turnserver (serves connection from closed networks).
-
Fixed. UI. Problem with displaying background image for camera (not always switched to another image, long loading time at power on).
-
Added. Network. Handle situation when one of the participants generates excessive traffic (will change participant settings on the fly).
-
Added. UI. Added display of the process of turning on the camera/microphone/demo screen (a round spinner on the button appears).
-
Fixed. UI. It is now impossible to enter a room that is not found (the status of not found is displayed at the stage of the screen with entering the room code).
-
Corrected. Customization. Changing turn settings via domain.settings.meet_config was not applied.
-
Added. UI. Added display of text about the process of turning on the microphone by the participant.
-
Fixed. In case of network problems, participants' video was disabled (grayed out participant window was displayed) and was not restored (until participants re-enter the room or turn the camera back on).
-
Fixed. Video quality drop of participants (in case of network problems) without recovery when problems disappear.
-
Added. UI. Display date/time and duration of vx recording when posting to chat.
-
Added. UI. Ability to delete a message from the chat.
-
Added. UI. Display error when using older versions of safari browser.
-
Fixed. UI. Fixed gray screen when using yandex browser in win with virtual background enabled.
-
Fixed. Server. Fixed an error leading to the inability to connect to a room, the error occurred with low probability when simultaneously connecting to several different rooms.
-
Fixed. UI. Fixed virtual background in the Yandex browser in the windows.
-
Fixed. UI. Improved validation of unsupported browsers to work in vx.
-
Fixed. UI. Fixed download of vx record published in chat (opens in a new window).
-
Fixed. UI. Disabling some functions (microphone in walkie-talkie mode and screen demo) when connecting to vx from a tablet.
-
Fixed. Server. Fixed a bug in saving user avatar.
-
Added. Server. Added the ability to set the logging level in the configuration. On-the-fly is applied when integrating with era".
-
Fixed. Server. Room users were moved from the class meet/Rooms to meet/RoomUsers. Since with a large number of users who have ever entered the room, requests to the database took a long time to execute, the problem was partially solved by moving the users to a separate class.
-
Modified. Server. Added clearing of users with the guest role from the room participants in the database, deletion occurs if there was no activity of the participant in the room for more than 30 days.
-
Corrected. Client. Fixed bug - disconnecting a user from the room when assigning moderator rights to him.
-
Added. Server. Added support for connecting to Era by wss.
-
Added. Implemented selection of target instance of platform webserver for microservice connection meet.
Monitoring and logging
-
Events. The composition of events has been updated. New types added, obsolete types removed, callevents event composition combed.
-
CTI GRPC. Implemented sending CTI events via GRPC to support external recording on MDGs SmartLogger.
-
SNMP-MIB. The system has been issued IANA enterprise number: 60663.
-
SNMP-traps. Significantly expanded the composition of events sent to SNMP traps. Configuring filters in the master domain parameters.
-
Ws-Health-Check. Added a public endpoint to the API to check the state of the current web server.
-
Websock_debug_level. Added WS microservice configuration option to enable/disable binding the logging mode of websocket connections to the general logging mode of a node.
-
WssReg. SG instances monitoring service is implemented and registrations (ws, wss, tls) are cleared in case of their loss in order to provide the possibility of operative re-registration through another instance if there is a limit on the number of registrations (in addition to the mode of availability check via sending the OPTIONS).
-
Logs. Log collection by intra-domain processes (scripts and product microservices) is now available in work domains and from the admin application.
-
Logstore. Fixed a bug that caused erlang.log to be built from the logstore node regardless of which node is requested from.
-
Logstore. Fixed a bug that caused archives with collected logs to fail on request from the application.
Grocery layer
-
History of changes in the product layer: 2024_07_30_PL_history.txt
v/1.8.1 (2024-07-24)
-
Fixed a critical issue with the Leadership Management Service where it is possible to have two active microservices after network recovery. The problem appeared in version 1.8.0.
-
Fixed operation of IVR scripts component "Playback" in streaming file mode - the option could not be enabled.
-
Information about restarts of product microservices is displayed in the system state.
-
Corrected the operation of the "Start Process" scripting component in terms of checking permissions in permissions.json file. Added ability to execute bash scripts, permissions.json file moved to the directory :SYNC/domains/:MASTERDOMAIN/cmd/
v/1.8.3 (2024-07-31)
-
Provided equivalence of accesses on behalf of users without administrator role to REST API of static collections of the domain center via http and websocket. The work of masks has been adjusted. Password fields are hidden from the output for users without administrator role.
-
Optimized work on cache calculation in the subscription storage. Important for classes that are regularly subscribed to and unsubscribed from with a large number of them at the same time (1000+).
-
Fixed an issue with saving Email messages whose actual send date is last month or earlier relative to the time of receipt.
-
The IVR Recording script component began to set topology to exclude recording of the background playing in parallel, and also in the streaming recording mode the initial silence fragment, occurring before the voice interrupts the background playback, is excluded.
-
Added --sshkey parameter to installer scripts to allow specifying ssh key. Fixed an error of lack of permissions when generating the container creation string.
v/1.8.4 (2024-08-02)
-
When INVITE is set for the second side, a codec filter is applied, which is set in the 'payloads_audio_offer' configuration setting. Thus, if the provider predominantly offers G729, it is possible to exclude it using this parameter. However, broadband G722 and others used by devices on the LAN now require explicit specification of SIP roles in this configuration parameter in order to be used in communication between two supporting devices.
-
Fixed an issue introduced in 1.8.3 when processing websocket rest requests from users.