Release Notes for LiveSwitch Server v1.16
1.16.3.22318
Release date: October 05, 2022
Client SDK
New Features
- [LS1-1103] Added the ability to check user connection status at the client level.
Bug Fixes
- [LS1-1145] Removed client's ability client to modify client simulcast bitrates mid connection in the JavaScript SDK.
- [LS1-1196] Fixed a bug where, under some conditions, connectivity was prevented when IPv6 was in use.
Gateway
Bug Fixes
- [LS1-1202] Fixed a bug that was preventing the HTTP/HTTPS binding scope from being created properly when using environment variables.
Media Server
Bug Fixes
- [LS1-1162] Fixed a bug where channels without any active clients weren't properly cleaned up when the session limit was reached.
- [LS1-1196] Fixed a bug where, under some conditions, connectivity was prevented when IPv6 was in use.
- [LS1-1212] Fixed a bug where, under some conditions, Data Stream Connections in Firefox were reported to have succeeded even though they failed.
Recording
New Features
- [LS1-1194] Added a Move Disabled option in the Recording Management Override section of the Application and Channel configuration to override the Deployment configuration setting.
SIP
Bug Fixes
- [LS1-1092] Fixed a bug where removing a SIP Trunk configuration after the referenced SIP Trunk Endpoint is made unavailable causes an exception to occur.
Webhooks
Bug Fixes
- [LS1-1188] Fixed a bug where multiple identical
TransportInfo
objects were reported in the connection.stats webhooks.
Examples
Improvements
- [LS1-454] Logos of all non-deprecated and non-web examples have been updated.
Breaking Changes
- [LS1-971] .NET Server example has been deprecated.
1.16.2.20423
Release date: August 24, 2022
Client SDK
Improvements
- [LS1-1102] Reintroduced the ImageUtility.java class in the Client SDK.
Bug Fixes
- [LS1-622] Fixed a bug in the Android SDK that caused an application to crash when
client.setDisableWebSockets
was set to false and the internet connection was lost. - [LS1-742] Fixed a bug where if a user tried to re-enable their video after disabling on MCU Simulcast, the video feed failed to resume for other users.
- [LS1-980] Fixed a bug where the
AudioMixer
intermittently caused an application to crash. - [LS1-1100] Fixed a bug in Android native that caused a large audio delay on the receiving end.
- [LS1-1143] When setting
IceGatherPolicy.Relay
on web clients, non-relay candidates were used when establishing connections instead of local relay candidates. Fixed a bug where settingIceGatherPolicy.Relay
on web clients resulted in non-relay candidates being generated.
Media Server
Bug Fixes
- [LS1-1031] DTMF tones weren't forwarded to some clients that were assigned to the media servers other than the originating one. Fixed a regression that prevented DTMF tones from being forwarded over clustered connections.
- [LS1-1139] Media Server now, by default, throttles PLIs coming from destination clients by one every 2 seconds in order to minimise keyframe disruption of larger meetings. If throttling isn't required or a different value needs to be set, then use the
FM_PLI_THROTTLE
environment variable. Set this value to -1 if no throttling is required.
IncreasedJitterBuffer
size and made round trip time calculations more robust to improve bandwidth adaptation.
Recording
New Features
- [LS1-997] Added the following webhook events which are sent when recordings fail to be moved or mixed:
channel.recording.move.failed
channel.recording.audio.move.failed
channel.recording.video.move.failed
channel.recording.mux.failed
connection.recording.audio.move.failed
connection.recording.video.move.failed
- [LS1-1056] Added new v1 REST endpoint
/api/v1/applications/{applicationId}/recordings/totalSize
to get the total size (in bytes) of all recordings stored in S3 for the specified application. - [LS1-1077] Added new recording management configuration setting
MuxerConnectionsPerCpuThreshold
, which, if configured, increases the number of sessions that can be muxed simultaneously by a single Recording Muxer, up to the configured maximum. - [LS1-1094] Email notifications are sent when an organization’s stored recordings approach or exceed storage limits.
Bug Fixes
- [LS1-1086] If the Recording Muxer fails to mux a channel recording, the recording files on disk weren’t cleaned up properly. This results in files remaining there forever, using up storage and increasing the Recording Monitor's processing time. Channel recordings that fail to mux will now be cleaned properly from the recording directory.
- [LS1-1087] A bad connection recording failed to mux all connection recordings even if all other connection recordings were good. The Recording Muxer will now continue to mux a channel recording even if one or more of the connection recordings are invalid.
Data Streams
Improvements
- [LS1-1088] Tune SCTP parameters to increase overall performance and throughput of file transfers.
Bug Fixes
- [LS1-1059] Fixed a bug causing inability to establish connections with the following error: Error encountered: SctpInvalidState SCTP: Communication is only allowed in the Established state. Sctp transport is in Connecting state. Causing transport: ReliableDataTransport. Connection 08ae1f8ce5ef4652843919b11ad6f5e7 will shut down.
ICE and Networking
Bug Fixes
- [LS1-982] Fixed a bug where the string format doesn’t declare a format item for the exception message.
Other
Bug Fixes
- [LS1-1027] Fixed a bug where migrating configuration data from Redis to Postgres failed due to null reference exceptions.
1.16.0.18248
Release date: June 22, 2022
Client SDK
New Features
- [LS1-1015] Added
RtmpLayoutZones
which has static properties that return the zone names for the RTMP layout. - [LS1-1026]
LayoutZone
andLayoutPriority
can now be set on theConnection
object prior to callingconnection.Open()
to specify where in the MCU layout the upstream connection should be displayed.
Bug Fixes
- [LS1-532] Fixed a bug in the JavaScript client which prevented projects using webpack and depending on fm.liveswitch from building.
- [LS1-938] An app built using the iOS SDK could crash when the app was sent to the background. This issue has been fixed and the app will no longer crash when sent to the background.
Gateway
New Features
- [LS1-609] Added content-type attributes for recording endpoints that return plain text.
Bug Fixes
- [LS1-1016] Fixed a bug where the Site Initialization API call always returned the 204 Success response regardless of the site initialization status.
Breaking Changes
- [LS1-551] The following
ConnectionRecording
endpoints have been deprecated:applications/{applicationId}/user/{userId}/connectionRecordings
applications/{applicationId}/user/{userId}/device/{deviceId}/connectionRecordings
applications/{applicationId}/user/{userId}/device/{deviceId}/client/{clientId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/user/{userId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/user/{userId}/device/{deviceId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/user/{userId}/device/{deviceId}/client/{clientId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/user/{userId}/device/{deviceId}/client/{clientId}/connection/{connectionId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/user/{userId}/device/{deviceId}/client/{clientId}/connection/{connectionId}/connectionRecordings/{connectionRecordingId}
applications/{applicationId}/channels/{channelId}/user/{userId}/device/{deviceId}/client/{clientId}/connection/{connectionId}/connectionRecordings/{connectionRecordingId}/json
applications/{applicationId}/channels/{channelId}/channelRecordings/{channelRecordingId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/channelRecordings/{channelRecordingId}/user/{userId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/channelRecordings/{channelRecordingId}/user/{userId}/device/{deviceId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/channelRecordings/{channelRecordingId}/user/{userId}/device/{deviceId}/client/{clientId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/channelRecordings/{channelRecordingId}/user/{userId}/device/{deviceId}/client/{clientId}/connection/{connectionId}/connectionRecordings
applications/{applicationId}/channels/{channelId}/user/{userId}/device/{deviceId}/client/{clientId}/connection/{connectionId}/connectionRecordings/{connectionRecordingId}/audioUrl
applications/{applicationId}/channels/{channelId}/user/{userId}/device/{deviceId}/client/{clientId}/connection/{connectionId}/connectionRecordings/{connectionRecordingId}/videoUrl
Media Server
Bug Fixes
- [LS1-746] Clients connecting to remote clients with poor-performing networks have had their audio/video bitrates reduced, causing remote clients on suitable networks to receive low-quality audio/video. Now the bitrates won't be reduced, and remote clients on good-performing networks will receive the appropriate quality audio/video.
- [LS1-747] Fixed bug where the
ConnectionTag
wasn't available in custom layouts for upstream connections proxied from other media servers. - [LS1-1032] Ordering of
Inputs
in custom MCU layouts was unpredictable. AddedCreatedOn
property toInputs
of custom MCU layouts.CreatedOn
will be the time (in ticks) that the input was added to the mixer. - [LS1-1055] When RTMP was configured with a service that allowed an RTMP connection but failed to send any frames, then excessive logging occurred. If frames fail to send over RTMP, the DEBUG log level will be used instead of the ERROR log level.
LiveSwitch Console
Breaking Changes
- [LS1-853] Deprecated the Reporting Interval feature from the Deployments page on LiveSwitch Console.
Recording
New Features
- [LS1-388] Added two new
DeploymentConfig
parameters,RecordingManagement.FilterPayload
andRecordingManagement.FilterPayloadUrls
, to remove unnecessary data from the payload in theChannelRecording
andConnectionRecording
webhook events and REST APIs. - [LS1-557] Added a new recording webhook event
connection.recordings.ready
which is sent when all recordings for a session are ready.
Improvements
- [LS1-410] The
/RecordingMover
and/RecordingMuxer
REST API endpoints will now return alastUsedTime
value, showing the Unix timestamp of the time the last job finished. - [LS1-551] Updated the connection recording REST API to allow using optional query parameters to filter connection recordings by
channelId
,userId
,deviceId
,clientId
,channelRecordingId
, orconnectionId
. - [LS1-806] Updated the Recording Muxer with a new algorithm that fixes numerous issues with the muxed output and improves the time for the muxing to complete. This new algorithm changes the layout of the output and also no longer uses any of the following recording mux settings: Layout, Custom Layout Function, Margin, Dynamic, and Crop. These settings have been removed from the LiveSwitch Console. The old muxing algorithm is still available by setting
UseLegacyMuxer = true
in the Media Server-specific configuration.
Bug Fixes
- [LS1-615] Inaccurate recording search results were observed when filtering recordings by muxed on LiveSwitch Console. Updated the
ChannelRecordings
endpoints to be filterable by whether the channel recordings have completed muxing. - [LS1-1047] Each Recording Mover and Muxer will only have one job pushed to it at a time. This will ensure that all servers are fully utilized and will also allow for auto-scaling strategies to increase throughput.
Breaking Changes
- [LS1-893] Deprecated the Recording Mux parameters including codecs, containers, custom layouts, crop, and margin.