Suggestions

close search

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

Visit the Vonage API Developer Portal

Vonage Video API iOS SDK release notes

New features and changes

Version 2.20.1 -- August 2021

Version 2.20.0 -- May 2021

Version 2.19.1 -- April 2021

This version fixes the following issues:

Version 2.19.0 -- February 2021

Version 2.18.1 -- October 2020

This version fixes the following issues:

Version 2.18.0 -- August 2020

Version 2.17.1 -- July 2020

This version fixes the following issues:

Version 2.17.0 -- April 2020

Version 2.16.6 -- April 2020

This version fixes the following issue:

Version 2.16.5 -- March 2020

This version fixes the following issues:

Version 2.16.4 -- February 2020

This version fixes the following issues:

Version 2.16.3 -- September 2019

This version adds support for iOS 13 by fixing the issue where the application would crash using iOS 13 Metal renderer. It also fixes the following issues:

Version 2.16.2 -- August 2019

This version fixes the following issues:

Version 2.16.1 -- May 2019

Version 2.16.0 -- April 2019

Version 2.15.3 -- January 2019

Version 2.15.2 -- December 2018

Version 2.15.1 -- November 2018

Version 2.15.0 -- October 2018

Version 2.14.2 -- August 2018

Version 2.14.1 -- July 2018

Version 2.14.0 -- April 2018

Version 2.13.0 -- January 2018

Version 2.12.1 -- October 2017

Version 2.12.0 -- September 2017

Version 2.11.5 -- October 2017

Version 2.11.4 -- August 2017

Version 2.11.3 -- July 2017

Version 2.11.2 -- June 2017

Version 2.11.1 -- May 2017

Version 2.11.0 -- April 2017

Version 2.10.2

Version 2.10.1

Version 2.10.0

Version 2.9.2

Version 2.9.1

Version 2.9.0

Version 2.8.4

Version 2.8.3

Version 2.8.2

Version 2.8.1

Version 2.8.0

Version 2.7.1

Version 2.7.0

Version 2.6.1

Version 2.6.0

Version 2.5.0

Version 2.4.1

Version 2.4.0

Version 2.3.1

Version 2.3.0

Version 2.2.1

Version 2.2.0

Known issues

Important changes to iOS 14 networking affecting relayed sessions

With iOS 14, Apple introduces local network privacy (see this video).

Beginning in iOS 14, the operating system will prompt the user for permission when an application attempts to subscribe to clients on the same local network in a relayed session. The default text in the notification says that the app "would like to find and connect to devices on your local network."

In a relayed session, the Vonage Video API uses the local network to discover and connect to video participants on your local network when possible. If clients cannot connect on the local network, an application will use the OpenTok TURN server to relay audio-video streams.

If the user does not accept the permission, the attempt to subscribe can fail if the client cannot connect to the OpenTok TURN server. In this case, after the permission is rejected, any future attempts to subscribe to clients on the same network will also fail unless the user changes the permission in Settings. Unfortunately, iOS does not provide an API for an application to determine if the user has accepted or rejected this permission.

It is important to note that this does not apply to video sessions that use the OpenTok Media Router, as media is sent over the internet rather than the local network.

If your application uses a relayed session, we encourage you to to add a descriptive custom usage string to inform the user why the application needs this permission:

  1. In Xcode, open your app's info.plist file.

  2. In the info.plist editor, right-click the left-hand column and select Add Row (or click +) to add a setting for Privacy - Local Network Usage Description.

  3. Edit the value for this string to describe how your app uses this permission.

    For example, add "This app uses the local network to discover and connect to video participants on the same network when possible."

The prompt to the user will include this description.

For applications which cannot use routed sessions and do not wish the user to be prompted for local network access, you can use the following code, which forces the application to use TURN servers:

Objective-C
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
OTSessionICEConfig *myICEServerConfiguration = [[OTSessionICEConfig alloc] init];
myICEServerConfiguration.transportPolicy = OTSessionICETransportRelay;
settings.iceConfig = myICEServerConfiguration;
session = [[OTSession alloc] initWithApiKey:kApiKey
                                   sessionId:kSessionId
                                    delegate:self settings:settings];
Swift
let settings = OTSessionSettings()
let myICEServerConfiguration = OTSessionICEConfig()
myICEServerConfiguration.transportPolicy = .relay
settings.iceConfig = myICEServerConfiguration
let session = OTSession(apiKey: apiKey, sessionId: sessionId, delegate: self, 
                        settings: settings)

Other known issues

In OpenTok sessions that use H.264 video, CPU usage can increase to a significant level if the app uses a publisher and four or more subscribers simultaneously.

This version of the OpenTok iOS SDK does not support displaying videos using Apple AirPlay.

In a session with the media mode set to relayed, only one client can subscribe to a stream published by an iOS device.

The Xcode iOS Simulator does not provide access to the camera. When testing in the iOS Simulator, an OTPublisher object uses a demo video instead of the camera.

Subscribing to screen-sharing streams (see "New features and changes - Version 2.4") is not supported in the OpenTok iOS SDK version 2.3 and older. You must upgrade to version 2.4.

If you are using a version of Xcode prior to 7.2.0, do not use the -all_load linker flag. Instead, use the -force_load linker flag to load specific libraries that require it.

The OpenTok iOS SDK links to the libc++ standard library. If another library that links to the libc++ standard library was compiled in a version of Xcode older than 6.0.0, it may result in segfaults at run time when using it with the OpenTok iOS SDK. Known incompatible libraries include, but are not limited to, Firebase (versions earlier than 2.1.2 -- see https://code.google.com/p/webrtc/issues/detail?id=3992) and Google Maps (versions earlier than 1.9.0). To fix this issue, download a version of the other library that was compiled using Xcode 6.0.0 or later.

Video streaming is prevented on networks that have firewalls that use authenticated proxies. This is due to a core issue with the current underlying WebRTC implementation. (See this Chromium bug report.)

In relayed sessions, applications do not display the red bar when running in the background, if no client subscribes to your stream before the app goes into background mode.