Changelogs

All notable release changes to the Browser SDK will be documented in this page. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Browser SDK V2.1


v2.1.16 (released@ 13-05-2019)

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

v2.1.15 (released@ 29-03-2019)

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

v2.1.14 (released@ 07-03-2019)

  • Implemented onMediaConnected event when media connection established

v2.1.13 (released@ 28-02-2019)

  • Handled get stats in latest Firefox version

v2.1.12 (released@ 19-02-2019)

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

v2.1.8 (released@ 16-01-2019)

  • Made sendConsoleLogs parameter as optional in submitCallQualityFeedback API

v2.1.7 (released@ 16-01-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 minimum value of local and remote mos.

v2.1.7-beta.0 (released@ 07-01-2019)

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

v2.1.6 (released@ 02-01-2019)

Bugs

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

v2.1.6-beta.1 (released@ 19-12-2018)

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

v2.1.6-beta.0 (released@ 18-12-2018)

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

v2.1.5 (released@ 05-12-2018)

Bug fix:

  • Fixed key names camel case for call insights

v2.1.4 (released@ 04-12-2018)

Feature:

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

v2.1.3 (released@ 29-11-2018)

Bugs

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

v2.1.2 (released@ 14-11-2018)

Bugs

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

v2.1.1 (released@ 14-11-2018)

Feature

  • An extra option "actionOnOtherIncomingCalls" is added for answer(callUUID, actionOnOtherIncomingCalls) function. During a mutiple incoming calls 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.

v2.1.1-beta.0 (released@ 13-11-2018)

Feature

  • An extra option "actionOnOtherIncomingCalls" is added for answer(callUUID, actionOnOtherIncomingCalls) function. During a mutiple incoming calls 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.

v2.1.0 (released@ 12-11-2018)

BUG fix

  • set was setting deviceIds without removing the old deviceId, which is fixed.
  • Added extra header to the callInfo object which is sent to some event callbacks
  • Login with the endpoint which is currently logined in will not be allowed.
  • Login with a different endpoint during an ongoing call will throw a error saying "Cannot login 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 with 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, a error message will be logged and false will be returned.
  • Workaround for Firefox bug where 180's SDP during outbound call should have a=mid line.

Feature

  • New option to allow multiple incoming calls.
  • 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 RTCPeerConnection object even when the outbound call is in ringing state.
  • Added support for '-' in extra headers keys.
  • An extra option "actionOnOtherIncomingCalls" is added for answer(callUUID, actionOnOtherIncomingCalls) function. During a multiple incoming calls 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.

v2.1.0-beta.12 (released@ 09-11-2018)

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

v2.1.0-beta.11 (released@ 2-11-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.

v2.1.0-beta.10 (released@ 26-10-2018)

  • An extra option "actionOnOtherIncomingCalls" is added for answer(callUUID, actionOnOtherIncomingCalls) function. During a multiple incoming calls 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.

v2.1.0-beta.9 (released@ 23-10-2018)

BUG fix

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

v2.1.0-beta.8 (released@ 17-10-2018)

BUG fix

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

v2.1.0-beta.6 (released@ 24-09-2018)

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

v2.1.0-beta.2 (released@ 24-09-2018)

BUG fix

  • Login with the endpoint which is currently logined in will not be allowed.
  • Login with an different enpoint during an ongoing call will throw error saying "Cannot login 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 with callstats.io and used our call insights data [CSDK-109].

v2.1.0-beta.1 (released@ 06-09-2018)

Feature

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

v2.1.0-beta.0 (released@ 27-08-2018)

Feature

  • 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

v2.0.21 (released@ 23-08-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

v2.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.

v2.0.20 ( released@ 07-07-2018) [YANKED]

BUG fix

Fixed: Early Media playback on Firefox

Added

  • Feature: 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 pranswer 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 documente fields
  • Add registrationExpiring event
  • Don't send a Register request if another is on progress.
  • RTCSession: process INFO in 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

deprecated

v2.0.19

BUG fix

Optimize local storage values

Added

  • Feature: WebSocket Connection change event listener . Detects abrupt websocket disconnection and notifies one time per 30 seconds .
  • GDPR upgrade in Callstats

deprecated

v2.0.18

BUG fix

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

Added

  • Add extra custom header

deprecated

v2.0.9 ( released@ 05-10-2017)

BUG fix

  • Fixed: Twilio webrtc API gets overridden by Plivo Sdk, Don't alter URL.createObjectURL native code.

Added

  • Feature: a config param preDetectOwa with true/false , Detect one way audio before answering/sending the call. Default value false
  • Feature: 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 callstats dashboard under "logs" menu. 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

deprecated

v2.0.8 ( released@ 04-13-2017)

BUG fix

Added

deprecated

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

v2.0.7 ( released@ 04-12-2017)

BUG fix

  • Packetloss 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 initialisation 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 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

deprecated

v2.0.6 ( released@ 04-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 18X response from server. setting false will not play beep tone.

deprecated

v2.0.5 ( released@ 02-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

deprecated

v2.0.4

BUG fix

  • Initialise 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. Makes 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 initialised twice.
  • Moved onIncomingCall event to emit on Incoming call progress. Previously its was emitted immediately after newRtcSession
  • Now CallStats dashboard should Plivo websdk version in context, Under 'General' menu
  • Microseconds is added to logger date

deprecated

v2.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 initialise plivowebSDK when callstats lib is not loaded

deprecated

v2.0.2

BUG fix

Added

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

deprecated

v2.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 supports 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 websdk to latest jsSIP 3.0.0