2.47.7
  - Bugfix: Fix call reporting for outbound calls that were not answered aligning behaviour with the mobile SDKs.

2.46.8
  - Feature: `SinchClient.setSupportManagedPush` now accepts an optional `registrationOptions` parameter of type `RegistrationOptions`, e.g. `{ scope: '/' }`, forwarded to the browser's service worker registration. 
    See `SinchClient.setSupportManagedPush` for full documentation.

2.45.5
  - Bugfix: When a new incoming call arrives during an active call, the incoming call is now automatically hung up.

2.44.4
  - Bugfix: Fix an internal issue where WebRTC call statistics could contain stale or duplicate data across calls.

2.43.6
  - Feature: SDK is now distributed via NPM as `sinch-rtc`. Install with `npm install sinch-rtc`. See https://www.npmjs.com/package/sinch-rtc
  - Feature: Improve ACK window logic (internal change)
  - Feature: Improve internal process of exchaning errors between the peers.

2.42.6
  - Bugfix: Fix an issue where an uncaught exception was thrown when a non 200 status code was returned while sending a push notification.
  - Changed: If managed push is disabled for the local user, push notifications are now emitted to callees that have managed push support enabled. 
  - Feature: Add `SinchClient.disableMangedPushSupport()`. Allows disabling managed push after it has been enabled. 
    Use this e.g. when push is not supported in the current environment (e.g. incognito/private browsing mode). Note that you still have to start the client after calling this method if it wasn't started before.
  - Add graceful handling of WebRTC audio-related startup errors that might originate from an Android remote client. If such an error
    occurs, the call is terminated with the appropriate error (codes: AudioRecordInitFailed - 3500, AudioRecordStartFailed - 3501,
    AudioTrackInitFailed - 3502, AudioTrackStartFailed - 3503) and `Failure` end cause.

2.41.8
  - Improve `CallListener.onCallAnswered` execution logic. For the callee it is now invoked immediately after accepting
    the call.
  - Bugfix: Fix an issue where a JS caller incorrectly responded to a denial of one peer (in case of multiple callees), causing other callees to keep ringing.
  - Bugix: Fix an issue where incoming calls could be processed unintentionally.
  - Feautre: Improve the internal flow related to notifying peers about the establishment process.

2.40.7
  - Feature: `Call.answer` is now async and throws `InvalidOperationError` if required permissions are missing.

2.39.6
  - Feature: `CallClient.setAudioTrackConstraints` and `CallClient.setVideoTrackConstraints` are now also applied for ongoing calls.

2.38.6
  - Feature: Add methods: `CallClient.setAudioTrackConstraints` and `CallClient.setVideoTrackConstraints` to configure track constraints 
    (e.g. specify deviceId for audio/video input) applied when creating new calls. 
  - Improve error messages thrown when Sinch client fails to start due to push related problem.

2.37.8
  - Feature: Add warning events: `MissingMediaStream`, `HighRemoteInboundRtt`, `HighInboundPacketLoss`, `HighInboundJitter`,
    `ConstantOutboundAudioLevel`, `ConstantInboundAudioLevel`, `ZeroInboundAudioLevel`, `ZeroOutboundAudioLevel`.
  - Feature: Add call quality warning events. Implement `CallListener.onCallQualityWarningEvent` callback to be notified 
    about call quality events. 

2.36.15
  - Change: Improve handling of extending instance expiry.
  - Change: Unify `CallDetails.setupDuration` definition. It is defined as the duration between the call start and the `onCallProgressing` event indicating that the push 
    notification was sent to the callee. If the notification was not yet sent or it is an inbound call this duration is `0`.
  - Change: `CallDetails.duration` now returns returns `0` (instead of `-1`) if the call has never established and ended.
  - Feature: Add `CallDetails.notifyingDuration`, `CallDetails.ringingDuration` and `CallDetails.connectingDuration` parameters.
  - Bugfix: Fix a bug that could cause SDK to crash when unexpected signalling message was received.
  - Bugfix: Fix a bug that could cause issuing `CallListener.onCallProgressing` for the callee.
  - Feature: Add `CallListener.onCallRinging`. It is invoked for the caller when the push notification is received by the callee.
  - Change `CallListener.onCallProgressing` invocation logic. It is now invoked for the caller, when Sinch issues the push notification to the callee.
  - Feature: Add `CallListener.onCallAnswered` callback. It is invoked for both caller and the callee when the callee answers 
    the call. Note that it might take some time after this callback is invoked for media stream to connect (see `CallListener.onCallEstablished)`.
  - Feature: Change `CallListener.onCallEstablished` callback invocation logic. It is now triggered when the callee answered the
    call and media connection is established. This means both peers should be able to hear and talk to each other.

2.35.6
  - Bugfix: Improvement of internal WebRTC resources cleanup process
  - Bugfix: Improvement of push payload

2.34.5
  - Bugfix: Improvement of public documentation

2.33.4
  - Feature: Restart client automatically when config changes.

2.32.33
  - Feature: Add type declaration file

2.31.4
  - Feature: Introduced compatibility with new signaling service
  - Bugfix: Add ICE candidates only after remoteDescription has been set, to
	avoid discarding ICE candidates

2.29.10
  - Bugfix: Improve the way internal call reports are submitted by fixing a few incomplete details

2.28.14
  - Feature: Not using UUID for call ids.

2.27.2
  - Bugfix: Internal logging fixes

2.24.3
  - Feature: CLI (Calling Line Identifier) allows setting of incoming caller to callee for in-app data to telephone calling based on purchased virtual voice number.
  
2.0.4
  - New JavaScript SDK released
