Suggestions

close search

Add Messaging, Voice, and Authentication to your apps with Vonage Communications APIs

Visit the Vonage API Developer Portal

Release notes for the OpenTok.js library

Welcome to version 2.20 of the OpenTok.js library.

If you have any questions, TokBox Support is here to help.


Announcements
New features
Requirements
Known issues
Fixed issues
More information
How to report bugs

For details on the OpenTok.js API, see the OpenTok.js library reference.

Announcements

OpenTok.js now includes beta support for Google Chrome for iOS and Firefox for iOS.

OpenTok.js version 2.16 was the last version to support the OpenTok Plugin for Internet Explorer. OpenTok.js version 2.16 was deprecated in May 2020 for the Standard line and June 2020 for the Enterprise line. Support for the OpenTok plugin for Internet Explorer was removed in OpenTok 2.17.

OpenTok.js fully supports Chromium-based versions of Microsoft Edge (versions 79+).

Safari now supports the VP8 video codec, in addition to H.264. VP8 support is in Safari 12.1, which ships on macOS 10.14.4 and is also available for macOS 10.13.6 and 10.12.6. And it is available in the latest iOS 12.2 release. For information on video interoperability and other issues, see the Safari browser support page. For more information on video codecs, see this developer guide.

As of Chrome 72 and Opera 59, an extension is no longer needed for screen sharing. Chrome prompts the end user for access to a screen, window, or tab, as it would for access to the camera. In the current versions of Chrome, Firefox, and Opera, you no longer need to deploy a screen-sharing extension.

On macOS 10.15+ (Catalina), to publish a screen-sharing stream the user must grant the browser access to the screen in macOS System Preferences > Security & Privacy > Privacy > Screen Recording. Otherwise, the Publisher will dispatch an accessDenied event.

New Features in OpenTok.js 2.20

New Features in OpenTok.js 2.20.3 — August 2021

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.20.2 — August 2021

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.20.1 — June 2021

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.20.0 — May 2021

Ability to dynamically change how published video streams are optimized. This can improve video perfomance for some screen-sharing streams and in other conditions. See this developer guide topic and the documentation of the videoContentHint property the options you pass into the OT.initPublisher() method and the Publisher.setVideoContentHint() method.

Ability for moderators to mute participants. This is a beta feature. See the docs for the Session.forceMuteAll() and Session.forceMuteStream() methods.

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.19

New Features in OpenTok.js 2.19.4 — July 2021

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.19.3 — April 2021

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.19.2 — March 2021

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.19.1 — February 2021

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.19.0 — January 2021

New feature to dynamically change the camera video source for a publisher. See the Publisher.setVideoSource() method and the Publisher.getVideoSource() method.

New settings to independently control audio processing options for published streams. See the autoGainControl, echoCancellation, and noiseSuppression options for the OT.initPublisher() method.

We have improved the performance for audioLevel events in Chrome, Edge, and Opera.

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.18

New Features in OpenTok.js 2.18.5 — July 2021

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.18.4 — December 2020

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.18.3 — December 2020

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.18.2 — November 2020

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.18.1 — September 2020

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.18.0 — August 2020

RTCStatsReport audio and video statistics for a publisher or subscriber. See the Publisher.getRtcStatsReport() and Subscriber.getRtcStatsReport() methods.

Added support for the IP Proxy feature. See the OT.setProxyUrl() method.

This release fixes some issues — see the list of fixed issues.

Features added in previous versions

Show details.

Requirements

The OpenTok.js library is currently supported in:

Important: OpenTok.js version 2.16 was the last version to support the OpenTok Plugin for Internet Explorer. OpenTok.js version 2.16 was deprecated in May 2020 for the Standard line and June 2020 for the Enterprise line.

The OpenTok.js library uses port 443. Port 443 must be open on the client network.

Known issues

The following are known issues for this version of OpenTok.js:

In relayed sessions, publishers may be unable to set audio bitrate of their audio stream. We are looking into the issue now.

For some Android Chrome users, device orientation may corrupt the publisher's video stream. This issue affects a subset of users in a VP8 session where the Chrome experimental "WebRTC hardware video encoding" setting is enabled. Disabling "WebRTC hardware video encoding" mitigates the issue. Changing the device's orientation may help as well, but artifacts (such as a green bar at the bottom of the video) may still be present. See this Chromium bug report.

On iOS 14.5, publishers who mute themselves may not be able to unmute. We anticipate that the issue will be fixed on iOS 14.6. See this WebKit bug report.

Critical audio bug in Safari 14.0.1, Safari 14.0.2, and iOS 14.2. Audio playback is stuttering in these browsers. This issue has been resolved in iOS 14.3, and it is expected to be resolved in Safari 14.0.3 (for macOS) when it is released. iOS users are advised to update to iOS 14.3, and macOS users are advised to use another supported browser until Apple releases Safari 14.0.3. See this WebKit bug report.

In Safari 13.1, if you call OT.getDevices() prior to OT.initPublisher(), the publisher will not include a video stream. We anticipate that the issue will be fixed in Safari 13.2.

If you call publishAudio(false) in a routed session, clients using Chrome 65 fail to subscribe. We are working on a fix for this issue.

Publisher audio level meter and audioLevelUpdated events not working in Chrome 66. See this Chromium bug report.

The OpenTok Automatic Reconnection feature does not work in Firefox or Internet Explorer. Firefox has a known issue with offline mode and peer connections (see this Mozilla bug), which Mozilla is working on.

One Publisher in the OpenTok Plugin for Internet Explorer. You can only add one Publisher (within all browser windows and tabs).

Cannot hide a Publisher in the OpenTok Plugin for Internet Explorer. Attempting to hide the a Publisher (by setting style.display to "none" or by setting visibility to "hidden") can cause the publisher to fail. As a workaround, you can set the width and height of the publisher to 2 or more pixels each; make sure that the publisher is in the DOM; and then when the Publisher object dispatches the streamCreated event, set the visibility to "hidden".

Safari clients sometimes cannot subscribe to streams published in Firefox. If the Safari client is not first publishing a stream, it cannot subscribe to a stream published by a client using Firefox. This is due to a known issue in Safari.

Setting the frame rate does not work in Firefox on macOS when using the built-in FaceTime camera. Setting the frameRate option when calling OT.initPublisher() has no effect. This is the Mozilla bug report for the issue.

Setting the audio bitrate is not supported in streams published in Firefox. Setting the audioBitrate option of the OT.initPublisher() method has no effect in Firefox.

Setting the frame rate does not work in the OpenTok Plugin for Internet Explorer. Setting the frameRate option when calling OT.initPublisher() has no effect.

Issues setting video source for a Publisher in Firefox. In an page loaded via HTTPS, if the user clicks "Always Share" when granting access to the camera, you can only use that camera. You cannot set the video source to another camera.

Echo cancellation disabled with stereo audio input in Chrome. Some browsers (such as Chome 73+) do not support echo cancellation for stereo audio (see this Chrome issue report).

The OpenTok plugin for Internet Explorer does not work in sandboxed iframes. This is an intentional limitation of the browser. The browser blocks plugin content inside a sandboxed frame.

WebRTC is a peer-to-peer protocol, and it is possible that connections will fail to connect. The most common cause for failure is a firewall that the protocol cannot traverse. When OpenTok detects this failure, the OT object dispatches an exception event object, with the code property set to 1013.

In Chrome, publishing is not supported on http (insecure) pages (except for http://localhost). You must serve the page over https (secure). Note that for testing, you can also load a page from the local file system (from the file: URI scheme).

Chrome on Android fails to subscribe to videos in Safari projects. This only occurs in routed OpenTok sessions (sessions that use the OpenTok Media Router). OpenTok.js v2.13 fixes this issue in relayed sessions. See this Chromium bug report.

Fixed in OpenTok.js 2.20.3

On rare occassions, some publishers were unknowingly disconnected from a session. We have fixed this issue.

Fixed in OpenTok.js 2.20.2

Toggling video on/off in WebView on Android does not work. We have fixed this issue.

Fixed in OpenTok.js 2.20.1

Use Unified Plan SDP on Chromium-based browsers where supported. New versions of Chromium-based browsers support a standards-based WebRTC SDP format (called “Unified Plan”). This OpenTok.js update enforces use of the Unified Plan on these browsers and prevents them from logging a warning that Plan B is being removed. For legacy browsers, OpenTok.js continues to use Plan B.

In Safari on iOS 14.5.1+, the subscriber's view may be black after being interrupted by Compact UI phone calls. We have fixed this issue.

OpenTok.js 2.20.0 was not working with Electron. We have fixed this issue.

Fixed in previous versions

Show details.

More information

See the reference documentation for the OpenTok.js library.

To see sample code and to read more information on using the OpenTok.js library, see the OpenTok Tutorials and Examples page.

For documentation on the OpenTok server-side libraries, see the OpenTok server-side libraries page.

Also check out the OpenTok Help Center.

How to report bugs

We'd love to hear from you! If you have any issues or bugs, you can report them to us at our support page.