Changelog
Voximplant Web SDK changelog
Fixes:
Client.requestOneTimeLoginKey promise is not rejected if a Voximplant username is incorrect
Client.connect promise is not rejected if the connection to a specified server is failed
Improvements:
SDK logs improvements
Fixes:
ConnectionNode validation error for Client.init API is now correctly handled in Promise.catch
Improvements and bugfix for the process of restoring the connection to the Voximplant Cloud
BREAKING CHANGES
ClientConfig.node parameter is now required for SDK initialization
Fixes:
Promises for the Client.setOperatorACDStatus, Client.setOperatorSQMessagingStatus, Client.getOperatorACDStatus, and Client.getOperatorSQMessagingStatus APIs are in pending state if the connection to the Voximplant Cloud is lost and cannot be restored
Fixes:
HardwareEvents.DevicesUpdated is not triggered on audio/video devices change
Events.IncomingCall is triggered with the call parameter undefined if the call has been ended quickly
Bugfix and stability improvements
New:
Introduce ClientState.RECONNECTING
Introduce ConnectionNode.NODE_11
Introduce AuthResultCode enum that describes error codes for AuthResult event
Fixes:
Client.getClientState returns incorrect client state in some cases
Promise for the following methods is not rejected if connection to the Voximplant Cloud is lost in logging in state and the connection cannot be restored: Client.login, Client.loginWithOneTimeKey, Client.loginWithToken, Client.requestOneTimeLoginKey
Fixes:
Audio or video devices change after a call or conference end leads to microphone and/or camera activation
Error log “404 (Not found)” appears in the console after a call or conference has ended.
Fixes:
Local video rendering stops on camera change in iPhone Safari/iPhone Chrome
SDK logs improvements
Fixes:
Safari: Changing an audio device during an active call/conference causes no audio for the client
CallState enum is not available
Fixes:
Changing the audio device in a call or a conference while the microphone is muted causes the microphone to be unmuted
Fixes:
SDK initialization error caused a new Config.node parameter
Config parameter for Client.init API is now optional to match JS and TS signatures
4.6.3-2632 (beta), 4.6.3-2641
New
OperatorACDStatuses.Banned and OperatorACDStatuses.Dialing are added
Fixes
One way audio in a call or conference call after a participant has connected or disconnected the audio device previously used
Logs improvements
Bugfix and stability improvements
4.6.3-2619 (beta)
New:
Introduce Call.isMicrophoneMuted API to get the mute status of the current user in a call/conference
Fixes
Camera indicator is active if enable video is failed for some reason during a call or a conference
Config.rtcStatsCollectionInterval does not affect the interval for call statistics collection
4.6.3-2605 (beta)
Fixes
Call statistics is empty or incomplete in conference calls
Echo cancellation, noise suppression, and automatic gain control are now enabled by default
Fixes
Call.hangup does not end the call/conference if it is called just after Client.call or Client.callConference
Call.sendVideo is failed sometimes in a video conference with simulcast enabled
Payload parameter is now optional for Conversation.sendMessage API
Improvements for audio and video device change during an active call/conference
CallEvents.SharingStopped is not invoked, if Call.stopSharingScreen is completed successfully
Bugfix and stability improvements
4.6.3-2560 (beta)
Fixes
Promise returned by Call.stopSharingScreen is always in the pending state if the screen sharing has been started in a video conference.
4.6.3-2556 (beta)
New
Add ability to Call.answer with H264 codec.
Fixes
CallEvents.MessageReceived is not invoked if a message is sent in a conference call
Client.getClientState returns incorrect client state in some cases
Stop sending video on web does not trigger the event on mobile SDK
Bugfix and stability improvements
4.6.3-2538 (beta)
New
Client.init throws an error if the web application is running on insecure origin.
Fixes
Setting outputId with other paramaters along via AudioDeviceManager.setCallAudioSettings can cause an error
Information about ICE servers appears in the console logs regardless of showDebugInfo
Bugfix and stability improvements
BREAKING CHANGES
MediaRenderer.enable and MediaRenderer.disable return type
void
instead ofPromise<void>
New
New API for to specify the audio and video codecs that can be used for calls:
New events EndpointEvents.MediaRendererDisabled and EndpointEvents.MediaRendererEnabled to handle remote video receive stop and start in the conference calls. Remote video receive can be stopped:
- manually by MediaRenderer.disable API
- automatically by the Voximplant Cloud if the Voximplant Cloud has detected a network issue on the client
MediaRendererDisablingReason enum provides the information about the reason why remote video receive is stopped.
Fixes
Auto gain control, echo cancellation, and noise suppresion cannot be disabled via AudioDeviceManager.setCallAudioSettings or AudioDeviceManager.setDefaultAudioSettings().
CallEvents.Connected event is not triggered for transferred calls.
If multiple calls are connected at the same and one of the call is ended, local video is no more sending in other active calls.
Audio is not sent in a conference call initiated via Client.joinAsSharing() with audio send enabled.
MediaRenderer.requestVideoSize() now returns
Promise<void>
.If screen sharing is enabled in a call and a call is put on hold via Call.setActive(), screen sharing video is still sending.
Local video cannot be sent in a call after previously being stopped in several browsers.
Local video is not sent in a call if VideoFlags.receiveVideo or VideoFlags.sendVideo are not set for Call.answer() API.
Failed to resume a call via Call.setActive() API in a Firefox browser.
Call.sendVideo() rejects the promise if the API is called with non-boolean argument.
Bugfix and stability improvements
BREAKING CHANGES
The
Call.shareScreen
method now has no arguments. Screen sharing now replaces user video by default. To share device screen simultaneously with user video in a conference, use theClient.joinAsSharing
method
New
Added
EndpointEvents
forViewerCall
Fixes
Server reinvites messages caused a held call to unhold
Toggling
Call.sendVideo
crashed calls in iPad ChromeThe last video frame remained after the call ended
Setting
Call.sendVideo
to true after screen sharing didn't work in call with sendVideo set to falseCould not change camera on mobile devices
Unmute didn't work on iPad
Camera was not released after hangup if the SDK was disconnected immediately
A sharing call didn't hang up via the native browser component
Firefox users received 'peerConnection.setConfiguration is not a function' error
Trying to play/load an html media element without checking load media state caused a conflict
DTLS issues with incoming calls
Getting wrong state from
Client.getClientState()
The caller didn't see the remote video after the call was transferred
Clients didn't hear sound from PSTN call after sending dial tones
Events.SQMessagingStatusUpdated
event didn't triggerCalls didn't hang up after calling
Client.disconnect()
No sound in mixed audio conferences
CameraManager.setCallVideoSettings
andAudioDeviceManager.setCallAudioSettings
promises resolved before completionThe statistics module crashed after camera change in Chrome
Duplicated existing
MediaRenderer
s in theViewerCall
Changing acd/smartqueue status caused an error
Prevent ICE restart for p2p incoming call
BREAKING CHANGES
Client.init
feature does not require media devices access anymore. SDK now requests microphone and camera access only at the call/conference startRemoved callstats.io integration
Removed
CallEvents
:QualityIssueCodecMismatch
,QualityIssueHighMediaLatency
,QualityIssueICEDisconnected
,QualityIssueLocalVideoDegradation
,QualityIssuePacketLoss
New Statistics module
New
Added a fallback flag to the
Events.MicAccessResult
event that shows when SDK fails to get user device configuration and loads defaultsAdded Insertable streams support for
MediaStreamTrack
Added the
CallEvent.SharingStopped
for tracking when the screen sharing stoppedAdded enabling/disabling an incoming media stream from the server in the conference simulcast mode
Added automatic reconnection when a user lost connection or switched between networks
Added the
Client.joinAsSharing
method that allows users to connect to a conference as a separate screen sharing memberReduced the simulcast lowest quality layer to 320p
Added voice activity detection for the conference simulcast mode
Fixes
Extra spaces in SDP MediaAttribute led to problems with video on MacOS
Added an error notification when creating a call/conference via a non-secured (http) connection
Client.init
resolved before completionCall.sendVideo
resolved before the server accepted the new video stateMediaStreamTracks didn't stop after the peer connection was closed
After
Client.disconnect
a user got an error that login operation is already in progressserverIP parameter usage for
Client.init
was unavailableInability to change audio devices during the call
The video didn't restore after minimizing the browser window
iPhone users got black frame instead of the remote video during calls with desktop Safari
Call.unmuteMicrophone
in Safari didn't work if called shortly withCall.sendVideo(true)
Client.joinAsSharing
caused infinite reinvites in FirefoxThe
SharingStopped
event didn't work if the screen sharing hadshowLocalVideo
flagCall.stopSharingScreen
didn't work when the screen sharing was initiated by the side that answered the callRe-enable video for calls didn't work in a Safari + Chrome call
CallEvents.MessageReceived
event didn't trigger if a user joined as a viewerCamera was not released after the conference
Calls with video:false generated extra SDP sections
There was no dtmf tones on the remote side
Dial tones were not audible, though after the answer the voice is audible from both sides
Screen sharing didn't work if a call started without video
Users had black frame when an iPhone Safari user toggled video
Call.shareScreen
with replaceTrack flag resolved before the track was replacedIn Android Chrome incoming video didn't play if the h264 codec was used
Simulcast mode didn't work if users join the conference without sending video
Endpoint.displayName
displayed incorrectly for theViewerCall
Changing camera didn't work for the local video
Join a conference in the simulcast mode as a viewer crashed the conference
Toggling video in the iPhone Safari crashed the conference in the simulcast mode
New
Simulcast support for conference calls
WebRTC Insertable Streams support
Ability to join a conference as a viewer without audio/video requests
aspectRatio constraint for
CameraParams
Ability to use existing video and audio HTML elements as render targets
Fixes
Had a highlighted camera icon even after the conference was over
Had an unnecessary video sdp section for
Client.call({video:false})
Didn't have DTMF tones on the remote side
Progress tone couldn't be heard when calling PSTN
Audio/video streams couldn't be updated for iPhone because of IOSCacheManager
Didn't have necessary restrictions on shareScreen for simulcast
Wasn't possible to change the camera for local video
Had an issue with voiceActivityDetection
Re-enabling video didn't work for iPhone
sendVideo didn't work for a regular call
Had bitrate limits on the high layer for simulcast
Had an error in maxLayersCount
Call.scaleVideoResolutionDownBy
and safari PN were disabledCodecs on different devices for simulcast were incompatible
Endpoint
s were added before receiving notifications fromMediaRenderer
Didn't have reinvite when replacing a track