Changelogs

We document all notable release changes to the Browser SDK on this page. We base the format on Keep a Changelog, and this project adheres to Semantic Versioning.

Release Process

We release all changes to beta first before updating to a stable release at least two weeks later, and we update all changes on this page. All past releases are URI accessible from links below and immutable, unless explicitly stated.

You can subscribe to get notified of all changelog updates via email or RSS feeds.

Browser SDK V2.2

Version v2.2.12 Jul 24, 2024

Bug Fixes:

  • Fixed: Renamed DOMError to DOMException in the underlying JSSIP library to support latest Typescript versions.

Version v2.2.12-beta.0Beta Jul 08, 2024

Bug Fixes:

  • Fixed: Fixed the issue causing a mismatch between local machine time and actual time.
  • Fixed: Fixed issues where the speech recognition engine would enter an endless loop when mute is performed on two tabs using the same engine

Features:

  • Added: Added support for connecting and registering the SDK independently: If the stopAutoRegisterOnConnect flag is set to true, the login() method will only connect the SDK to Plivo servers. Default is set to false.
  • Added: Introduced a new register() method, which registers the SDK when called.
  • Added: Introduced the captureSDKCrashOnly flag, which, when set to true, captures and syncs only SDK-related crash logs. Default is false.
  • Added: Introduced the redirect(uri) method, which redirects the call to other SDK clients when invoked.
  • Added: Added helper methods such as:
    • disconnect(): Disconnects the SDK.
    • unregister(): Unregisters the SDK.
    • getCurrentSession(): Returns the current active session, if any.
  • Added: Added support to send more call-related information and statistics to the call-insights service

Version v2.2.11 Jun 07, 2024

Bug Fixes:

  • Fixed: Enhanced call handling functionality to support multiple executions of the call() method.

Version v2.2.10 May 22, 2024

Bug Fixes:

  • Fixed: Improved error handling by emitting “LoginFailed” event upon unsuccessful creation of User Agent (UA).
  • Fixed: Added a check to prevent sending DTMF signals when there is no internet connection, which was causing call disconnections.
  • Fixed: Enhanced WebSocket connection optimization and improved fallback mechanisms to reduce delays in establishing a connection.
  • Fixed: Streamlined the process for reconnecting active calls during network changes for improved stability and reliability.
  • Fixed: Improved SDK reconnection logic to prevent redundant WebSocket connections and optimize login scenarios during active sessions.
  • Fixed: Implemented a fix for the graceful disconnection of calls when a network switch occurs while the call is in the ring state, addressing call quality issues.
  • Fixed: Implemented an internet access check prior to registration.
  • Fixed: Limited the Logout() function to execute only during active sessions.
  • Fixed: Other minor bug fixes and improvements.

Features:

  • Added: Enhanced the callinfo object by introducing new attributes: Reason, Protocol, ErrorCode, and Originator, providing more detailed statistics.
  • Added: Implemented Plivo STUN Servers to enhance reliability. This modification is now customizable through the ‘usePlivoStunServer’ flag which defaults to false.
  • Added: The reason for disconnection/connection is now published with the onConnectionChange event.
  • Added: Introduced helper methods (isRegistered, isConnecting, and isConnected) for checking the client connection status.
  • Added: Introduced a new event ‘remoteAudioStatus’ that signifies the reception status of audio packets from the remote caller.
    Note: This feature works only in case of conference and MPC
  • Added: Introduced a noise suppression feature to enhance audio quality by eliminating unwanted background noise during active calls. This feature can be enabled or disabled using the enableNoiseReduction flag, which is set to false by default. Additionally, a new event, onNoiseReductionReady, is triggered when the noise reduction is ready to commence.
    Note: This functionality is not compatible with Safari.
  • Added: onMediaPermission event will be triggered when media permission is revoked.
  • Added: Users will receive a mediaMetric event when speaking while the SDK is muted.
    Note: This functionality is not compatible with Firefox.

Version v2.2.10-beta.11Beta Apr 29, 2024

Bug Fixes:

  • Fixed:Improved error handling by emitting “LoginFailed” event upon unsuccessful creation of User Agent (UA).
  • Fixed:Implemented a check to prevent sending DTMF signals when there is no internet connection.

Version v2.2.10-beta.10Beta Apr 19, 2024

Bug Fixes:

  • Fixed:Enhanced WebSocket connection optimization and refined fallback mechanisms to minimize delays in establishing a connection.
  • Fixed:Streamlined the process for reconnecting active calls during network changes for improved stability and reliability.

Version v2.2.10-beta.9Beta Mar 28, 2024

Features:

  • Added:Implemented webRTC logging service for monitoring calls.

Version v2.2.10-beta.8Beta Mar 20, 2024

Features:

  • Added:A new event named ‘onNoiseReductionReady’ has been introduced, which is triggered when the noise reduction is prepared to commence.

Bug Fixes:

  • Fixed:Resolved an issue where noise reduction failed to initiate as anticipated due to necessitating a user gesture.

Version v2.2.10-beta.7Beta Mar 13, 2024

Features:

  • Added:Implemented new local hangup reasons to provide additional insights into the cause of call hangups.

Bug Fixes:

  • Fixed:Resolved a race condition that led to unexpected results when emitting the ‘onLoginFailed’ event.
  • Fixed:Graceful disconnection of the websocket before emitting “onLoginFailed”.
  • Fixed:Resolved a type error issue resulting in: “Cannot assign to read-only property ‘uri’ of object”.
  • Fixed:Preventing the establishment of a new websocket connection if there is an ongoing connection.
    Note: The “errorCode” in the callinfo object has been renamed to “code”.

Version v2.2.10-beta.5Beta Feb 23, 2024

Features:

  • Added:Enhanced the callinfo object by introducing new attributes: Reason, Protocol, ErrorCode, and Originator, providing more detailed statistics.
    Note: The previous attribute remoteCancelReason has been removed.

  • Added:Implemented Plivo STUN Servers to enhance reliability. This modification is now customizable through the ‘usePlivoStunServer’ flag which defaults to false.
    Note: The Google STUN server has been eliminated.

Bug Fixes:

  • Fixed:Fixed a type error that previously resulted in “getheader is not a function” when attempting to access a non-existent call.
  • Fixed:Implemented a fix for the graceful disconnection of calls when a network switch occurs while the call is in the ring state, addressing call quality issues

Version v2.2.10-beta.4Beta Feb 16, 2024

Features:

  • Added: Enhanced Heartbeat timer for improved network monitoring.
  • Added: The reason for disconnection/connection is published with the onConnectionChange event.
  • Added: Streamlined the gathering of local media stream during the ringing state for incoming calls.
  • Added: Introduced helper methods (isRegistered, isConnecting, and isConnected) for checking the client connection status.

Bug Fixes:

  • Fixed: Implemented automatic restart of heartbeat service when the browser fails to reconnect the socket.

Version v2.2.10-beta.3Beta Jan 12, 2024

Features:

  • Added: Introduced a new event ‘remoteAudioStatus’ that signifies the reception status of audio packets from the remote caller.
    Note: This feature works only in case of conference and MPC

Version v2.2.10-beta.2Beta Jan 09, 2024

Bug Fixes:

  • Fixed: Enhanced SDK reconnection logic to optimize scenarios where users attempt to log in while already logged in.
  • Fixed: Added internet access check before registration.

Version v2.2.10-beta.1Beta Dec 14, 2023

Features:

  • Added: A new property remoteCancelReason under the CallInfo object, which indicates the reason for call termination for both incoming and outgoing calls.
    Note: remoteCancelReason will be none during call state: ringing, answered.
  • Added: Included noise suppression feature to enhance audio quality, which effectively eliminates unwanted background noise during active calls. You can enable or disable this feature using the enableNoiseReduction flag.
    Note: This functionality is not compatible with Safari.
  • Added:Trigger an event when media permission is revoked.
  • Added: Notify users when they speak while muted.
    Note: This functionality is not compatible with Firefox.

Bug Fixes:

  • Fixed: Call mutes when input/output devices change.
  • Fixed: An “Invalid State” error that occurred during call hang-up.
  • Fixed: Addressed a Type error encountered when configuring output media devices.
  • Fixed: Limited the Logout() function to execute only during active sessions.

Version v2.2.9 Sep 29, 2023

Features:

  • Added: A new useDefaultAudioDevice flag, which allows the SDK to use either the system’s default audio device or the recently added device for both input and output on Windows platform.

Bug Fixes:

  • Fixed: Removed support for the getStats API, as it is no longer available in Chrome versions 117 and beyond.
  • Fixed: Removed the predetectOWA functionality.
  • Fixed: Issue on audio input/output device mismatch on windows platform.

Version v2.2.8 Sep 12, 2023

Features:

  • Added: A refreshRegistrationTimer flag for user-configurable periodic re-registration by the SDK.
  • Added: An onDtmfReceived event triggered when the SDK receives DTMF tones.
  • Added: Enhanced remote debugging with the collection and transmission of logs to Plivo servers.
  • Added: Plivo STUN servers to ensure stable connections.
  • Added: A CALL_RINGING event signaling the initiation of incoming/outgoing call ringing to Plivo.

Bug Fixes:

  • Fixed: Corrected the handling of stir-verification in incoming call headers.
  • Fixed: Fixed audio level discrepancies that occurred when changing input/output devices, ensuring accurate device settings.
  • Fixed: Removed DOMError to support latest Typescript versions.
  • Fixed: Restored functionality for incoming calls with PCMU codec.
  • Fixed: Prevented SDK from logging out when re-registration timed out.
  • Fixed: Reduced the time for firing the onConnectionChange event with a disconnected state to within 10 seconds when the SDK disconnects from Plivo servers, previously occurring within a 2-minute interval.

Version v2.2.7-beta.1Beta Mar 24, 2022

Features:

  • Added: New Client Region South-Asia to the existing Client Region list.

Version v2.2.7-beta.0Beta Mar 17, 2022

Bug Fixes:

  • Fixed: The call summary stats are not pushed to Plivo when the call is answered and hung up before the stats socket is open.

Version v2.2.6 Sep 14, 2021

Features:

  • Added: JavaScript framework detection for enhanced debugging.

Version v2.2.6-beta.0Beta Aug 27, 2021

Features:

  • Added: JavaScript framework detection for enhanced debugging.

Version v2.2.5 Aug 09, 2021

Features:

  • Added: New call quality metrics added in Browser SDK:
    • googEchoCancellationReturnLoss
    • googEchoCancellationReturnLossEnhancement
    • googJitterBufferMs.
  • Added: On network change, a new event, ‘CALL_NETWORK’, will now be sent to Call Insights

Version v2.2.5-beta.0Beta Jul 26, 2021

Features:

  • Added: New call quality metrics added in Browser SDK:
    • googEchoCancellationReturnLoss
    • googEchoCancellationReturnLossEnhancement
    • googJitterBufferMs.
  • Added: On network change, a new event, ‘CALL_NETWORK’, will now be sent to Call Insights

Version v2.2.4 Jul 05, 2021

Bug Fixes:

  • Fixed: Issue with audio input/output device toggle on Windows platform.
  • Fixed: Issue where non-default behavior was not maintained when Bluetooth was added over Headphones in Electron.

Features:

  • Added: Attribute called ‘callerName’ to the onIncoming call event. This attribute contains the name of the caller (if set by the initiator of the call) and can be displayed on the user interface.
  • Added: Ability to identify custom modifications to the officially released SDK versions.
  • Added: Capture audio input/output device toggle events during an active call.
  • Added: Ability to select between Inband and Outband DTMF during initialization. For more information, refer to the Configuration Parameters section in the detailed reference.

Version v2.2.4-beta.2Beta Jun 16, 2021

Features:

  • Added: Attribute called ‘callerName’ to the onIncoming call event. This attribute contains the name of the caller (if set by the initiator of the call) and can be displayed on the user interface.

Version v2.2.4-beta.1Beta May 25, 2021

Bug Fixes:

  • Fixed: Issue with audio input/output device toggle on Windows platform.

Features:

  • Added: Ability to identify custom modifications to the officially released SDK versions.
  • Added: Capture audio input/output device toggle events during an active call
  • Added: Ability to select between Inband and Outband DTMF during initialization. For more information, refer to the Configuration Parameters section in the detailed reference.

Version v2.2.3 Apr 05, 2021

Bug Fixes:

  • Fixed: Issue, where one-way audio was observed for the next call after a custom device for input and output, was removed.
  • Fixed: Issue where the call-summary event was not getting sent reliably under unstable network connections.
  • Fixed: Issue where an error message was being published (setremotedescriptionfailed) when an outgoing PSTN call is rejected by the destination.
  • Fixed: Issue where one-way audio was observed if an external Bluetooth device was first connected and then disconnected whilst the Browser SDK was on an active call.
  • Fixed: An issue where under unstable network conditions, Browser SDK keeps sending media metrics events even after a call has been hung up from the other end.
  • Fixed: Issue where audio was getting picked up from both the external and internal microphones when the Bluetooth device was disconnected during a call and then added back during the next call.
  • Fixed: Issue where audio output did not flow through an external Bluetooth device if one was added to a Windows machine.

Version v2.2.3-beta.3Beta Mar 21, 2021

Bug Fixes:

  • Fixed: Issue where audio output did not flow through an external Bluetooth device if one was added to a Windows machine.

Version v2.2.3-beta.2Beta Mar 18, 2021

Bug Fixes:

  • Fixed: Issue where audio was getting picked up from both the external and internal microphones when the Bluetooth device was disconnected during a call and then added back during the next call.

Version v2.2.3-beta.1Beta Mar 12, 2021

Bug Fixes:

  • Fixed: Issue where one-way audio was observed if an external Bluetooth device was first connected and then disconnected while the Browser SDK was on an active call.
  • Fixed: An issue where under unstable network conditions, Browser SDK keeps sending MediaMetrics events even after a call has been hung up from the other end.

Version v2.2.3-beta.0Beta Mar 08, 2021

Bug Fixes:

  • Fixed: Issue where one-way audio was observed for the next call after a custom device for input and output was removed.
  • Fixed: Issue where the call-summary event was not getting sent reliably under unstable network connections.
  • Fixed: Issue where an error message was being published (setremotedescriptionfailed) when an outgoing PSTN call was rejected by the destination.

Version v2.2.2 Feb 18, 2021

Bug Fixes:

  • Fixed: Missing information in call summary event when the browser is closed during an ongoing call.
  • Fixed: Issue where, for the first call post initialization of the SDK, input audio was getting picked from the device microphone even if an external Bluetooth device was added before calling.

Version v2.2.2-beta.0Beta Feb 05, 2021

Bug Fixes:

  • Fixed: Missing Information in call summary event when the browser is closed during an ongoing call.
  • Fixed: Issue where, for the first call post initialization of the SDK, input audio was getting picked from the device microphone even if an external Bluetooth device was added before calling.

Version v2.2.1 Feb 01, 2021

Browser SDK codebase is now publicly available. Check this support page to see what benefits this offers to developers.

Features:

  • Added: TypeScript support for Plivo Browser SDK. For more information about the benefits of Browser SDK with TypeScript, check this support page.
  • Added: Network change improvements for Plivo Browser SDK.
  • Added: Improvements in events that were getting emitted during mute and unmute.

Version v2.2.1-beta.1Beta Dec 30, 2020

Bug Fixes:

  • Fixed: NPM install for beta releases.
  • Fixed: Improvements in the integration testing.

Version v2.2.1-beta.0Beta Dec 21, 2020

Features:

  • Added: TypeScript support for Plivo Browser SDK.
  • Added: Network change improvements for Plivo Browser SDK.
  • Added: Improvements in events that were getting emitted during mute and unmute.

Browser SDK V2.1

Version v2.1.36 Dec 10, 2020

Bug Fixes:

  • Fixed: Incoming calls were not ringing in desktop browsers or when the tab with the call was in the background. While this is the expected behavior in mobile browsers, it should not occur on the desktop.
  • Fixed: Ongoing browser calls faced a one-way audio issue (remote user unable to hear the browser app user) if the Bluetooth audio device being used by the browser app user got disconnected and switched to another audio input device.

Version v2.1.36-beta.1Beta Nov 25, 2020

Bug Fixes:

  • Fixed: Issue where incoming calls were not ringing in desktop browsers as well when the tab with the call was in the background. This is the expected behavior in mobile browsers but not desktop ones.

Version v2.1.36-beta.0Beta Nov 20, 2020

Bug Fixes:

  • Fixed: Issue where an ongoing browser call would face a one-way audio issue (remote user won’t be able to hear the browser app user) if the Bluetooth audio device being used by the browser app user got disconnected and switched to another audio input device.

Version v2.1.35 Nov 19, 2020

Bug Fixes:

  • Fixed: Issue where client name was being sent as “Chrome” as part of Call, Answered, and Call Summary events even for calls made from Microsoft Edge browser. Now the value sent will be “Edge.”
  • Fixed: Issue where setting the configuration parameter “dscp” as true was not behaving as intended and all UDP packets were still being set with DSCP Class CS0 (default class) instead of DSCP class EF (Expedited Forwarding), which is the expected behavior. Being set with EF ensures packets being tagged as high priority by network routers, leading to lower chances of these packets being dropped and minimum per-hop delays.
  • Fixed: Issue where on receiving an incoming mobile browser call with the browser in the background, the phone would start ringing despite a visual notification not possible (due to limitations imposed from browsers) and the customer having no way to find out which app is making the phone ring. Now the phone won’t ring either.
  • Fixed: Issue where a “TypeError” was being emitted if audio devices were toggled during an ongoing call. While this error did not affect any functionality, it was unnecessary and hence will not be emitted anymore.

Version v2.1.35-beta.0Beta Nov 06, 2020

Bug Fixes:

  • Fixed: Issue where client name was being sent as “Chrome” as part of Call, Answered, and Call Summary events even for calls made from Microsoft Edge browser. Now the value sent will be “Edge.”
  • Fixed: Issue where setting the configuration parameter “dscp” as true was not behaving as intended and all UDP packets were still being set with DSCP Class CS0 (default class) instead of DSCP class EF (Expedited Forwarding), which is the expected behavior. Being set with EF ensures packets being tagged as high priority by network routers leading to lower chances of these packets being dropped and minimum per-hop delays.
  • Fixed: Issue where on receiving an incoming mobile browser call with the browser in the background, the phone would start ringing despite a visual notification not possible (due to limitations imposed from browsers) and the customer having no way to find out which app is making the phone ring. Now the phone won’t ring either.
  • Fixed: Issue where a “TypeError” was being emitted if audio devices were toggled during an ongoing call. While this error did not affect any functionality, it was unnecessary and hence will not be emitted anymore.

Version v2.1.34 Oct 19, 2020

Bug Fixes:

  • Fixed: Issue where onConnectionChange event was not getting triggered in the following scenarios:
    • normal endpoint logout
    • abrupt socket disconnection due to changed network conditions

Features:

  • Added: New flag to selectively enable local or remote call quality tracking for Browser SDK. The old flag, which could only toggle both of these together, is to be deprecated in the next major release.

Version v2.1.34-beta.1Beta Oct 07, 2020

Bug Fixes:

  • Fixed: Issue where onConnectionChange event was not getting triggered in the following scenarios:
    • normal endpoint logout
    • abrupt socket disconnection due to changed network conditions

Version v2.1.34-beta.0Beta Sep 23, 2020

Features:

  • Added: New flag to selectively enable local or remote call quality tracking for Browser SDK. The old flag, which could only toggle both of these together, is to be deprecated in the next major release.

Version v2.1.33 Sep 17, 2020

Bug Fixes:

  1. Fixed: Issue where the incorrect audio level was getting printed if the audio input device (mic) is switched from one input source to another (Eg: from Bluetooth mic to internal mic) during an ongoing call.
  2. Fixed: Issue where one-way audio was being observed on calls made from the Safari browser if the audio input device (mic) is switched from one input source to another (Eg: from Bluetooth mic to internal mic) during an ongoing call.
  3. Fixed: Issue where playback tone (incoming call ringtone) was getting played on device speakers if the keyboard/headphones ‘play’ button is pressed with the device in idle state.

Features:

  1. Added: Buffer mechanism for temporarily storing Call Insights stats in the Browser before being sent to the Plivo server in case of unstable network conditions.

Version v2.1.33-beta.0Beta Sep 04, 2020

Bug Fixes:

  • Fixed: Issue where the incorrect audio level was getting printed if the audio input device (mic) is switched from one input source to another (Eg: from Bluetooth mic to internal mic) during an ongoing call.
  • Fixed: Issue where one-way audio was being observed on calls made from the Safari browser if the audio input device (mic) is switched from one input source to another (Eg: from Bluetooth mic to internal mic) during an ongoing call.
  • Fixed: Issue where playback tone (incoming call ringtone) was getting played on device speakers if the keyboard/headphones ‘play’ button is pressed with the device in idle state.

Features:

  • Added: Buffer mechanism for temporarily storing Call Insights stats in the Browser before being sent to the Plivo server in case of unstable network conditions.

Version 2.1.32 Aug 27, 2020

Bug Fixes:

  • Fixed: Issue where Call Summary and Call Answered events were not getting sent if the user adds “sip:” in their username.
  • Fixed: Issue related to device “set()” API not working as expected when called during idle state (no active calls).

Features:

  • Added: Basic Call-insights RTP stats support for Safari.
  • Added: Active Input Device Info as part of Call Answered and Call Summary events for Safari.

Version 2.1.32-beta.0Beta Aug 13, 2020

Bug Fixes:

  • Fixed: Issue where Call Summary and Call Answered events were not sent if the user adds “sip:” in their username
  • Fixed: Device-related issue “set()” API not working as expected when called during idle state(no active calls).

Features:

  • Added: Basic Call-insights RTP stats support for Safari
  • Added: Active Input Device Info as part of Call Answered and Call Summary events for Safari

Version 2.1.31 Jul 24, 2020

Bug Fixes:

  • Fixed: Issue where the event “onMediaConnected” was not emitted

Version 2.1.30 Jul 21, 2020

Bug Fixes:

  • Fixed: Unwanted warnings that were printed while loading the Browser SDK.
  • Fixed: ‘Mute’ state was retained from a call to the next call.
  • Fixed: Error that was generated while trying to play a ringtone in Safari.

Features:

  • Added: Improvements in the calculation of the audio level for Call-Insights.

Version 2.1.29 May 21, 2020

Bug Fixes:

  • Fix for fractional loss calculation stats for CallInsights.
  • Handling call cleanup and call summary for CallInsights, for an ongoing active call, in the event of abrupt closure of the browser.

Version 2.1.28 May 14, 2020

Bug Fixes:

  • Fix for handling only anonymize local IPs(mDNS) during media negotiation.

Version 2.1.27 Apr 28, 2020

Bug Fixes:

  • RTPStats fix for Firefox. The response structure of RTP Stream Stats has changed in the latest version of Firefox(v75). This change was breaking RTPStats parsing and propagation to Plivo Call Insights back-end. We applied this fix to adapt to the changed response from the Firefox browser.

Version 2.1.26 Apr 23, 2020

Bug Fixes:

  • Stopped propagation of call insights to deprecated stats service back-end.

Version 2.1.25 Mar 31, 2020

Bug Fixes:

  • Fixed mute/unmute behavior during audio device toggling for the ongoing calls.
  • Fixed bug with MediaStream management in the post-call idle state.
  • onVolume sampling data fixed for external audio devices that get connected during the call.

Version 2.1.24 Mar 04, 2020

Features:

Version 2.1.23 Feb 18, 2020

Bug Fixes:

  • Fixed bug to ensure Call Summary event is always generated and pushed to Plivo Call Insights backend at the end of the call.

Version 2.1.22 Feb 10, 2020

Features:

  • Added Close protection flag for Browser.
  • Active device info to CallInsights.
  • Added Volume Indicator for Local and Remote audio.

Version 2.1.21 Jan 30, 2020

Bug Fixes:

  • Ability to change input devices while on call.
  • Updated extra header handling.
  • Added SDK version in feedback stats.

Features:

  • Automatic input device (mic) fallback to a working input device while on call.

Note: This is not supported in Firefox(as recent as 72) due to its lack of support for multiple input devices.

Version 2.1.21-beta.0 Jan 21, 2020

Bug Fixes:

  • Ability to change input devices while on call.
  • Updated extra header handling.
  • Added SDK version in feedback stats.

Features:

  • Automatic input device (mic) fallback to a working input device while on call.

Version 2.1.20 Oct 10, 2019

  • Support for Chrome’s Unified Plan.
  • Improvements in MOS value calculations.
  • Added stream key in mediaMetrics to differentiate between local or remote stream stats.
  • Fixed hangup issues in firefox and safari.

Version 2.1.19 Aug 29, 2019

  • Calculate fraction loss for 0-5 seconds.
  • Send setup options in call answered and summary stats.
  • Reconnect media when there is a network change.

Version 2.1.18 Aug 07, 2019

  • Disable RTP connection timeout fix.

Version 2.1.17 Jul 16, 2019

  • Chromium os is identified and sent to call insights.
  • Showing an appropriate error message for https only support.

Version 2.1.16 May 13, 2019

  • Added audio device info and media connection info to call insights.

Version 2.1.15 Mar 29, 2019

  • Changed the error message from “PlivoSDK:: Did not get token from callstats” to an information message “Call insights is not enabled”.

Version 2.1.14 Mar 07, 2019

  • Implemented onMediaConnected event when media connection established

Version 2.1.13 Feb 28, 2019

  • Handled get stats in latest Firefox version

Version 2.1.12 Feb 19, 2019

  • Handled null values in stats calculation
  • Added logs for callstats.io

Version 2.1.8 Jan 16, 2019

  • Made sendConsoleLogs parameter as optional in submitCallQualityFeedback API

Version 2.1.7 Jan 16, 2019

  • Added callinsights support for Firefox version 60 and above and Chrome version 64 and above.
  • New Feedback API for customers to report an issue and choose to allow us to collect call-related logs.
  • Fixed fraction loss calculation for local stream
  • Updated mos score by taking the minimum value of local and remote mos.

Version 2.1.7-beta.0 Jan 07, 2019

  • Updated mos score by taking the minimum value of local and remote mos.

Version 2.1.6 Jan 02, 2019

Bug Fix:

  • Chrome 72 WebRTC changes will break our SDK so fixed that by making plan-b default.

Version 2.1.6-beta.1 Dec 19, 2018

  • New Feedback API for customers to report an issue and allow us to collect call-related SDK logs.

Version 2.1.6-beta.0 Dec 18, 2018

  • Call insights data will be collected in Firefox version 60 and above and Chrome version 64 and above.

Version 2.1.5 Dec 05, 2018

Bug Fix:

  • Fixed key names camel case for call insights

Version 2.1.4 Dec 04, 2018

Features:

  • Extra metadata like the browser’s version and network information is sent to the backend for call insights.

Version 2.1.3 Nov 29, 2018

Bug Fix:

  • Fixed a scenario where ongoing call audio getting paused when the incoming call is rejected in multiple incoming call scenarios.
  • Added validation for reject and ignore functions in multiple incoming calls.

Version 2.1.2 Jan 14, 2018

Bug Fix:

  • Fixed a scenario where the calls were disconnecting in chrome 54(2 years old version) due to the use of a new WebRTC API

Version 2.1.1 Nov 14, 2018

Features:

  • An extra option “actionOnOtherIncomingCalls” is added for answer(callUUID, actionOnOtherIncomingCalls) function. During a multiple incoming call scenario, if “letring” is passed for actionOnOtherIncomingCalls, the call with callUUID passed to answer function will be answered and other calls will ring silently. If no values are passed for actionOnOtherIncomingCalls, the other incoming calls will be rejected.

Version 2.1.1-beta.0 Nov 13, 2018

Features:

  • An extra option “actionOnOtherIncomingCalls” is added for answer(callUUID, actionOnOtherIncomingCalls) function. During a multiple incoming call scenario, if “letring” is passed for actionOnOtherIncomingCalls, the call with callUUID passed to answer function will be answered and other calls will be ringing silently. If no values are passed for actionOnOtherIncomingCalls, the other incoming calls will be rejected.

Version 2.1.0 Nov 12, 2018

Bug Fix:

  • set was setting deviceIds without removing the old deviceId, which is fixed.
  • Added extra header to the call info object which is sent to some event callbacks
  • Log in with the endpoint which is currently logged in will not be allowed.
  • Login with a different endpoint during an ongoing call will throw an error saying “Cannot log in when there is an ongoing call”. [CSDK-87]
  • Workaround for Chrome bug where incoming call ringtone file was not loading properly sometimes which leads to incoming calls without ringtone [SUP-272].
  • Removed media metrics’ dependency on callstats.io and used our call insights data [CSDK-109].
  • If the call UUID passed in the answer function does not match any of the incoming calls, an error message will be logged and false will be returned.
  • Workaround for Firefox bug where 180’s SDP during the outbound call should have a=mid line.

Features:

  • New option to allow multiple incoming calls.
  • The new method ignore() to take action on the incoming call.
  • Call insights data are collected for the insights enabled accounts.
  • Made project publishable to npmjs -> npm install plivo-browser-SDK –save
  • getPeerConnection() will return the RTCPeerConnection object even when the outbound call is in the ringing state.
  • Added support for ‘-‘ in extra headers’ keys.
  • An extra option “actionOnOtherIncomingCalls” is added for answer(callUUID, actionOnOtherIncomingCalls) function. During a multiple incoming call scenario, if “ignore” is passed for actionOnOtherIncomingCalls, the call with callUUID passed to answer function will be answered and other calls will be ignored. If no values are passed for actionOnOtherIncomingCalls, the other incoming calls will be rejected.

Version 2.1.0-beta.12 Nov 09, 2018

  • Workaround for firefox bug where 180’s SDP during the outbound call should have a=mid line.

Version 2.1.0-beta.11 Nov 02, 2018

  • If the call UUID passed in the answer function does not match any of the incoming calls, an error message will be logged and false will be returned.

Version 2.1.0-beta.10 Oct 26, 2018

  • An extra option “actionOnOtherIncomingCalls” is added for answer(callUUID, actionOnOtherIncomingCalls) function. During a multiple incoming call scenario, if “ignore” is passed for actionOnOtherIncomingCalls, the call with callUUID passed to answer function will be answered and other calls will be ignored. If no values are passed for actionOnOtherIncomingCalls, the other incoming calls will be rejected.

Version 2.1.0-beta.9 Oct 23, 2018

Bug Fix:

  • set was setting deviceIds without removing the old deviceId, which is fixed.

Version 2.1.0-beta.8 Oct 17, 2018

Bug Fix:

  • Added extra header to the call info object which is sent to some event callbacks

Version 2.1.0-beta.6 Sep 24, 09-2018

  • Made project publishable to npmjs -> npm install plivo-browser-SDK –save
  • getPeerConnection() will return the RTCPeerConnection object even when the outbound call is in the ringing state.
  • Added support for ‘-‘ in extra headers’ keys.

Version 2.1.0-beta.2 Sep 24, 2018

Bug Fix:

  • Log in with the endpoint which is currently logged in will not be allowed.
  • Login with a different endpoint during an ongoing call will throw an error saying “Cannot log in when there is an ongoing call”. [CSDK-87]
  • Workaround for Chrome bug where incoming call ringtone file was not loading properly sometimes which leads to incoming call without ringtone [SUP-272].
  • Removed media metrics’ dependency on callstats.io and used our call insights data [CSDK-109].

Version 2.1.0-beta.1 Sep 06, 2018

Features:

  • New option to allow multiple incoming calls.
  • The new method ignore() to take action on the incoming call.

Version 2.1.0-beta.0 Aug 27, 2018

Features:

  • Call insights data are collected for the insights enabled accounts.

Browser SDK V2.0

You can check the documentation for Browser SDK v2.0 here

Version 2.0.21 Aug 23, 2018

  • JsSIP v3.2.11 Upgrade Bug Fixes
    1. reduced ice gathering timeout to 2 secs
    2. removed dependency with ‘_is_confirmed’ variable
  • io version upgraded to v3.53.1
  • Switched off pre-call-test of callstats.io
  • endpoint registration status fix

Version 2.0.21-beta.0

Bug Fix:

  • is_confirmed is changed to _is_confirmed in JsSIP so using isEstablished function which is documented instead of using the _is_confirmed private variable (Bug introduced when JsSIP version is upgraded )
  • ice gathering timeout patch was not ported to when JsSIP version is upgraded, added the patch functionality back using the JsSIP’s icecandidate version instead of patching JsSIP itself.

Version 2.0.20 Jul 07, 2018 [YANKED]

Bug Fix:

Fixed: Early Media playback on Firefox

Added:

  • Features: WebSocket Connection change event listener . Detects abrupt websocket disconnection / connection / reconnection and notifies once per change.
  • Upgrade Better logging for exception and unexpected behavior
  • Optimize and upgrade npm dependencies such as Gulp and associated modules
  • Upgrade underlying JSSIP library for ES6, NOTIFY, REFER, INFO, RTCSessionDescription, Registrar
  • Don’t use pre-answer for early media. Instead, create an answer and do a workaround when the 200 arrives.
  • Fix UA’s disconnect event by properly providing an object with all the document fields
  • Add registrationExpiring event
  • Don’t send a Register request if another is on progress.
  • RTCSession: process INFO in the early state.
  • Dialog: ACK to initial INVITE could have lower CSeq than current remote_cseq.
  • WebSocketInterface: Add ‘via_transport’ setter.
  • Use promise chaining to prevent PeerConnection state race conditions.
  • New UA configuration parameter ‘session_timers_refresh_method’.
  • DigestAuthentication: fix ‘auth-int’ qop authentication
  • RTCSession: emit ‘SDP’ event before creating offer/answer etc
  • Unit test cases with linphonec

Version 2.0.19

Bug Fix:

Optimize local storage values

Added:

Features: WebSocket Connection change event listener. Detects abrupt WebSocket disconnection and notifies one time per 30 seconds.

  • GDPR upgrade in Callstats

Version 2.0.18

Bug Fix:

  • Extra header length increased to 120, earlier it was 48

Added:

  • Add extra custom header

Version 2.0.9 Oct 05, 2017

Bug Fix:

  • Fixed: Twilio webRTC API gets overridden by Plivo SDK, Don’t alter URL.createObjectURL native code.

Added:

Features: a config param preDetectOwa with true/false, Detect one-way audio before answering/sending the call. Default value false

  • Features: audioDeviceChange event to listen for USB audio device changes. This event will emit an object with two properties change and device. change - “added” or “removed” device - device-specific properties
  • Collect Application logs in the callstats dashboard under the “logs” menu. A call summary log will get added to each callUUID.
  • Callstats lib updated to 3.19.12, which gives callback-based getStats once again in chrome 58

Version 2.0.8 Apr 13, 2017

deprecated

  • Removed: predetect OWA is taking 15sec in case of double Natted system Refer: 894bcac0-1fc4-11e7-8451-8dbf96fbabce

Version 2.0.7 Apr 12, 2017

Bug Fix:

  • Packet loss was not emitted properly. values will be in decimals. Multiply by 100 to convert to %, Eg: packet loss of 2% will be emitted in value as 0.02

Added:

  • Feature added: clientRegion property in initialization options to set and route calls to specific MediaServer POPs. Allowed regions are [“usa_west”,”usa_east”,”australia”,”europe”,”asia”,”south_america”].
  • Feature added: Pre-detect One-way audio. Before accepting Inbound call and before making an Outbound call. Make local peerConnection in the loop and check for mic issues. This happens every first call on browser reload and then in 1 hr interval.
  • Feature added: Call Terminated by caller, Callee details. nCallTerminated event will have an object {‘originator’:’local’} if caller ends or {‘originator’:’remote’} if receiver ends
  • Feature added: sendQualityFeedback() will now allow custom comments with a cap of 200 characters max.
  • Feature added: debug:”ALL-PLAIN” in Options to turn off colour mode debug: “DEBUG” will show all logs except SIP trace debug: “ALL” will show all logs including SIP trace , Colour mode ON debug: “ALL-PLAIN” will show all logs including SIP trace, Colour mode OFF

Version 2.0.6 Apr 04, 2017

Bug Fix:

  • n logout() - use stop() instead of unregister(‘all’);
  • createObjectURL(stream) is deprecated! Use elem.srcObject = stream instead!
  • reject () - only if call is not answered.

Patch in JsSIP

  • @line:1538 patch included, The moment we get one Public IP from ICE just send out INVITE. File path sipLib/RTCSession.js

Added:

  • Feature added: Even if users don’t set enableTracking in options, we should set enableTracking=true
  • Feature added: mediaMetrics Alert if ICE gathering takes more than 2 sec either for outgoing call invite or incoming call answer. Event name ice_timeout
  • Feature added: setConnectTone(true), Dial beep will play till we get an 18X response from the server. setting false will not play a beep tone.

Version 2.0.5 Feb 27, 2017

Bug Fix:

  • Terminate ICE gathering in 2 sec. After upgrading to JsSIP 3.0.0 this gatheringTimeout was removed.

Patch in JsSIP

Added:

  • Included JsSIP lib as sipLib inside plivo-websdk-2.0 to handle customization in Jssip library

Version 2.0.4

Bug Fix:

  • Initialize JsSIP only after checking for DEBUG in log level to show proper SIP trace

Added:

  • Play remoteStream if Incoming 183 has SDP
  • Added callUUID to both incoming and outgoing calls in logs. It makes it easy to get callUUID directly from logs.
  • Better clarity logs to both Incoming and Outgoing calls at each level
  • Added log to show if Plivo SDK is initialized twice.
  • Moved onIncomingCall event to emit on Incoming call progress. Previously its was emitted immediately after newRtcSession
  • Now CallStats dashboard should Plivo web SDK version in context, Under ‘General’ menu
  • Microseconds are added to logger date

Version 2.0.3

Bug Fix:

  • Emit webrtcNotSupported only on document ready.
  • handle when callstats lib is not loaded

Added:

  • moved all s3 links like audio and callstats lib to CDN links. CloudFront as Primary and CDN77 as secondary
  • Don’t initialize plivowebSDK when callstats lib is not loaded

Version 2.0.2

Bug Fix:

Added:

  • Audio API to control Input and Output devices
  • availableDevices to show all available audio devices
  • revealAudioDevices to force allow permission and list available devices
  • microphoneDevices to set and use a particular microphone device as input
  • speakerDevices to set and use a particular speaker device for DTMF, remote audio
  • ringtoneDevices to set and use a particular speaker device for incoming ringtone

Version 2.0.1

Bug Fix:

Added:

  • we used webRTC adapter, a shim to insulate apps from spec changes and prefix differences which can work across most browsers
  • supports Firefox, but mediaMetrics is not available since firefox doesn’t support it
  • supports Opera ( not fully tested)
  • added 2 new methods getLastCallUUID, webRTC and a variable version
  • dscp param in options to support QoS
  • WebSocket min try to 2 and max retry to 20 in case client disconnects from socket server
  • reduced stun servers to 2 to reduce the size of SDP and to reduce stun gathering time
  • mediaMetrics supported in chrome and opera a major feature to trigger warning events during bad network and audio conditions
  • upgraded Plivo web SDK to latest jsSIP 3.0.0