Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Changelog: Twilio Video iOS 1.x


(warning)

Warning

This page is for reference only. We are no longer onboarding new customers to Programmable Video. Existing customers can continue to use the product until December 5, 2024(link takes you to an external page).
We recommend migrating your application to the API provided by our preferred video partner, Zoom. We've prepared this migration guide(link takes you to an external page) to assist you in minimizing any service disruption.

Deprecation Notice - all 1.x Versions
Please note that all Programmable Video iOS SDK 1.x versions are deprecated. Version 3.x is the latest version of the Programmable Video iOS SDK. Please see the Getting Started Guide for more information.
Compatibility Notice - All versions
Please note that all 1.x versions are incompatible with Firefox 63+ in a Peer-to-Peer Room. For more information please review the GitHub Issue(link takes you to an external page).

The Twilio Programmable Video SDKs use Semantic Versioning(link takes you to an external page).


1.4.3 (August 21, 2018)

143-august-21-2018 page anchor

Enhancements

  • TwilioVideo.framework is now built with Xcode 9.4.1.

Known Issues


1.4.2 (July 25, 2018)

142-july-25-2018 page anchor

Improvements

  • Updated certificate bundle to include "Starfield Class 2 CA" and "Starfield Services Root Certificate Authority - G2" using release-2.0.0 of cert-bundle.

Bug Fixes

  • Fixed an instance where the signaling Client could send an extra UPDATE message or fail a reconnect operation.

Known Issues


1.4.1 (June 19, 2018)

141-june-19-2018 page anchor

Improvements

  • TwilioVideo.framework and our C++ core library are now built with the Xcode 9.3 toolchain.
  • Initial Connect message now includes Client version metadata.

Bug Fixes

  • Fixed a bug where the SDK hangs if DNS resolution fails and the user does not initiate disconnect.
  • The signaling Client no longer logs access tokens.
  • Resolved an issue where the signaling Client could send too many UPDATE messages, or use too many CPU cycles and disconnect from a Room.

Known Issues


1.4.0 (March 23, 2018)

140-march-23-2018 page anchor

Features

  • Added a framesEncoded stats field to TVILocalVideoTrackStats .

Bug Fixes

  • Fixed a bug where [TVIRoomDelegate::roomDidDisconnect:error:] was not invoked due to a race condition between a network handover and a user initiated [TVIRoom disconnect] call . #235(link takes you to an external page)

Known Issues


1.3.12 (March 12, 2018)

1312-march-12-2018 page anchor

Enhancements

  • TwilioVideo.framework and our C++ core library are now built with the Xcode 9.2 toolchain.
  • Simplified the internal process for retrieving ice servers and resolving outbound DNS.

Bug Fixes

  • Fixed an issue where the application thread could be blocked for up to 30 seconds when connecting to and deleting a TVIRoom in bad network conditions.

Known Issues


1.3.11 (February 26, 2018)

1311-february-26-2018 page anchor

Enhancements

  • The media engine now uses a dedicated thread for networking operations.

Bug Fixes

  • Resolved a condition where ICE candidates might not be applied in Peer-to-Peer Rooms.
  • ICE URIs using the stuns and turns schemes are now supported. The SDK will now use turns servers if needed when turn is enabled for your Room.
  • Resolved an issue where the device model was being incorrectly reported to Insights.

Known Issues


1.3.10 (January 18, 2018)

1310-january-18-2018 page anchor

Enhancements

  • TwilioVideo.framework and our C++ core library are now built with the Xcode 9.1 toolchain.

Bug Fixes

  • Clarified header docs for [TVIRoomDelegate room\:didFailToConnectWithError:] , [TVIRoomDelegate roomDidStartRecording:] and [TVIRoomDelegate roomDidStopRecording:] .
  • Don't publish Ice Candidate stats unless an active pair is present.

Known Issues


1.3.9 (January 10, 2018)

139-january-10-2018 page anchor

Enhancements

  • TwilioVideo.framework and our C++ core library are now built with the Xcode 9.0 toolchain.
  • Added several properties to TVIIceCandidatePairStats
    • activeCandidatePair - indicates if the candidate pair is active.
    • localCandidateIp - the IP address of the local candidate associated with this candidate pair.
    • remoteCandidateIp - the IP address of the remote candidate associated with this candidate pair.
    • relayProtocol - the relay protocol

Known Issues


1.3.8 (November 6, 2017)

138-november-6-2017 page anchor

Bug Fixes

Known Issues


1.3.7 (October 17, 2017)

137-october-17-2017 page anchor

Bug Fixes

  • TVIAudioSink s added to a TVILocalAudioTrack now raise callbacks. Audio recording does not start until you join an empty Group Room or a Peer-to-Peer Room with one or more Participants. #104(link takes you to an external page)

Known Issues


1.3.6 (October 9, 2017)

136-october-9-2017 page anchor

Enhancements

  • WebRTC and other third party dependencies are now built with Xcode 8.3.3 to match our C++ core library. We will be upgrading our build toolchain to Xcode 9.x in a future release.

Known Issues


1.3.5 (September 21, 2017)

135-september-21-2017 page anchor

Bug Fixes

  • Fixed some properties which were missed during docs generation.
  • Fixed a potential crash when calling [TVIRoom disconnect:] before [TVIRoomDelegate didConnectToRoom:] is called and then destroying the TVIRoom in the [TVIRoomDelegate room\:didDisconnectWithError:] callback.
  • Fixed incorrect values for TVIIceCandidateStats.port and TVIIceCandidateStats.isRemote .

Known Issues


1.3.4 (September 7, 2017)

134-september-7-2017 page anchor

This release improves compatibility with iOS 11.0, resolving debugger warnings and assertions that could occur when developing against the SDK.

Bug fixes

  • Resolved a Metal debug assertion caused by improper usage of depth attachments in TVIVideoView . #141(link takes you to an external page)
  • Use the modern [CADisplayLinkTimer preferredFramesPerSecond] APIs instead of intervals on iOS 10.0 or newer.
  • TVIScreenCapturer no longer queries UIApplicationState from outside the main thread.
  • Cleanup TVIAudioSink s automatically after a TVIAudioTrack is removed from a TVIParticipant in order to prevent crashes.

Known issues


1.3.3 (September 1, 2017)

133-september-1-2017 page anchor

Features

  • TVIVideoView 's Metal implementation now supports sharing of CVPixelBuffer s with the GPU, and can render frames in any TVIPixelFormat without additional CPU conversions. In order to qualify for the fast sharing path CVPixelBuffer s should be created with kCVPixelBufferMetalCompatibilityKey and kCVPixelBufferIOSurfacePropertiesKey .

Bug fixes

  • Fixed the issue where the TVIConnectOptions and TVIConnectOptionsBuilder 's audioTracks and videoTracks properties were not respecting their nonnull annotation.
  • Fixed the documentation error on TVIIceCandidatePairStatus currentRoundTripTime .
  • Fixed a bug in TVIScreenCapturer and in the software video pipeline where RGB CVPixelBuffer formats were incorrectly assumed to use host ordering (little endian on Ax ARM-based CPUs) instead of their in memory representation. Because of this TVIPixelFormat32BGRA was treated as TVIPixelFormat32ARGB and vice versa.

Known issues


1.3.2 (August 22, 2017)

132-august-22-2017 page anchor

Bug fixes

  • Fixed an issue which prevented multiple Participants from adding/removing Tracks in Group Rooms.
  • The TVIError enumeration is now declared as an NSInteger to match what NSError is expecting.

Known issues


1.3.1 (August 9, 2017)

131-august-9-2017 page anchor

Bug fixes

  • The platform name and manufacturer is reported correctly to Insights.
  • C++ core library is built with the Xcode 8.3.3 toolchain (matching video-ios).

Known issues


1.3.0 (July 19, 2017)

130-july-19-2017 page anchor

Features

  • Active Ice candidate pair stats are now available as part of the TVIStatsReport objects returned from the TVIRoom:getStatsWithBlock: API.
  • One fewer thread is created per TVIRoom .

Bug fixes

  • Internal timers used by the SDK are more reliable.

Known issues


1.2.1 (July 11, 2017)

121-july-11-2017 page anchor

Features

  • The SDK now uses TLS 1.2 in favor of TLS 1.0 to connect to Twilio's servers.

Bug fixes

  • Local participant state is now promptly synced with Twilio signaling servers when there is a network handoff.

Known issues


1.2.0 (July 6, 2017)

120-july-6-2017 page anchor

Features

Bug fixes

Known issues


1.1.0 (June 27, 2017)

110-june-27-2017 page anchor

Features

  • This release adds Insights statistics collection, which reports RTP quality metrics back to Twilio. In the future, these statistics will be included in customer-facing reports visible in the Twilio Console. Insights collection is enabled by default, if you wish to disable it use the insightsEnabled property on TVIConnectOptionsBuilder :

_10
TVIConnectOptions *options = [TVIConnectOptions optionsWithToken:token
_10
block:^(TVIConnectOptionsBuilder * _Nonnull builder) {
_10
builder.insightsEnabled = NO;
_10
}];

  • The SDK now uses TLS port 443 to connect to Twilio's signaling servers.

Bug fixes

  • Network handoff from Wifi to Wifi is unreliable. #127(link takes you to an external page)
  • Resolved a crash which could occur in TVICameraCapturer when changing cameras where the AVCaptureSession was left in an uncommitted state.
  • Fixed instances where UIKit methods were being accessed outside of the main thread.
  • Fixed a bug where media and signaling could become split across network interfaces after a network handover.
  • Fixed a bug where Twilio's signaling backend was not being notified of Track changes when there were no other Participants in a Peer-to-Peer Room.

Known issues


1.0.2 (June 12, 2017)

102-june-12-2017 page anchor

Bug fixes

Known issues


1.0.1 (May 15, 2017)

101-may-15-2017 page anchor

Bug fixes

Known issues


1.0.0 (April 26, 2017)

100-april-26-2017 page anchor

We've promoted 1.0.0-beta16 to 1.0.0. As part of our first General Availability release we are now publishing our podspecs to the CocoaPods Master Spec Repo(link takes you to an external page), instead of Twilio's Spec Repo(link takes you to an external page).

Known issues


1.0.0-beta16 (April 25, 2017)

100-beta16-april-25-2017 page anchor

Bug fixes

  • Fixed an issue where the SDK was incorrectly choosing TVIAudioOutputVoiceChatDefault by default, causing audio to be routed to the receiver on iPhones.

Known issues


1.0.0-beta15 (April 24, 2017)

100-beta15-april-24-2017 page anchor

Features

  • TVIVideoClient has been renamed to TwilioVideo .
  • TVILocalMedia has been removed from TVILocalParticipant . It is now possible to create TVILocalAudioTrack and TVILocalVideoTrack using class factory methods, and add them to TVILocalParticipant directly.
  • TVIConnectOptions accepts Tracks instead of LocalMedia.
  • TVIAudioController is now a singleton, instead of a property on TVILocalMedia .
  • TVIMedia has been removed from TVIParticipant . Use the audioTracks and videoTracks properties in place of media to access Participant Tracks.
  • TVIVideoCaptureSource has been renamed to TVICameraCaptureSource .
  • - [TVICameraCapturer selectSource:] now returns a BOOL that indicates whether the provided TVICameraCaptureSource is available on the device.
  • Removed the selectNextSource API from TVICameraCapturer .
  • Changed the cameraCapturerWasInterrupted: delegate method to cameraCapturerWasInterrupted:reason: .
  • TVICameraCapturer no longer generates the TVICameraPreviewView by default. To enable previewView generation, call the initWithSource:delegate:enablePreview: initializer.
  • Removed the cameraCapturerPreviewDidStart: delegate method.
  • Added a mirror property to TVIVideoView .
  • Mirroring is no longer automatically applied to any TVIVideoView s that are rendering a TVILocalVideoTrack created with a TVICameraCapturer .

Bug fixes

  • Fixed a bug where out of order offer and answer messages could result in a failure when DTLS roles are negotiated.

Known issues


1.0.0-beta14 (April 12, 2017)

100-beta14-april-12-2017 page anchor

Features

  • TVIVideoViewRenderer has been renamed to TVIVideoView , and is now a subclass of UIView .
  • Removed the attach , detach and videoDimensions APIs from TVIVideoTrack .
  • Removed the TVIVideoTrackDelegate protocol. Applications interested in size and orientation metadata should use TVIVideoViewDelegate instead.
  • TVIAudioConstraints has been renamed to TVIAudioOptions to be consistent with their counterparts in WebRTC.
  • TVIAudioOptions now only exposes Audio Options that are available for use on iOS.

Bug fixes

  • Fixed a crash which could occur due to a race condition between Room destruction and reachability change events.
  • Fixed an SDK teardown crash which could occur in PeerConnectionSignaling::closePrivate .

Known issues


1.0.0-beta13 (March 30, 2017)

100-beta13-march-30-2017 page anchor

Features

Known issues


1.0.0-beta12 (March 24, 2017)

100-beta12-march-24-2017 page anchor

Bug fixes

  • Fixed an SDK teardown crash which could occur in twilio::video::EndpointConfigurationProvider .
  • Fixed a crash which could occur while invalidating the tracks in twilio::video::Participant 's destructor.

Known issues


1.0.0-beta11 (March 21, 2017)

100-beta11-march-21-2017 page anchor

Features

  • Added a new TVIConnectOptions property reconnectAfterReturningToForeground to allow disabling automatic reconnect behavior.

Bug fixes

Known issues


1.0.0-beta10 (March 10, 2017)

100-beta10-march-10-2017 page anchor

Features

  • Added a getStats: method to TVIRoom that builds a TVIStatsReport with metrics for all the audio and video tracks being shared to a Room.

Bug fixes

  • Resolved a memory issue where destroying TVICameraCapturer would leak its AVCaptureSession .
  • Validate TVIVideoCapturer API calls in TVIScreenCapturer and TVICameraCapturer .

Known issues


1.0.0-beta9 (March 6, 2017)

100-beta9-march-6-2017 page anchor

Features

  • Improved support for backgrounding where CallKit is not used and audio is inactive. #89(link takes you to an external page)
  • We've begun formalizing our error codes. They are divided up into Signaling (530xx), Room (531xx), Participant (532xx), Track (533xx), Media (534xx), Configuration (535xx), and Access Token (201xx) subranges. Instances of NSError will now carry a numeric code belonging to one of these ranges. #67(link takes you to an external page)
  • Moved connect from an instance method to a class method on TVIVideoClient . Calling the new class connect method requires TVIConnectOptions and TVIRoomDelegate arguments. TVIVideoClient is no longer an object that can be instantiated and an instance is no longer required to connect to a Room.
  • Moved access token parameter from the TVIVideoClient class factory to the TVIConnectOptions initializer.

Connecting to a Room in beta9 using Swift:


_10
let connectOptions = TVIConnectOptions.init(token: accessToken) { (builder) in
_10
builder.roomName = "my-room"
_10
builder.localMedia = self.localMedia
_10
}
_10
room = TVIVideoClient.connect(with: connectOptions, delegate: self)

Bug fixes

  • Access token parsing is no longer required on the Client.
  • Use a certificate bundle to validate SSL certificates on the signaling connection.
  • Improved compatibility with Group Rooms and track added and removed events.
  • Set the NET_SERVICE_TYPE_SIG option on signaling sockets in iOS 10.
  • Resolved a deadlock which could occur while processing track events.
  • Fixed a memory management issue where TVITrack resources could be destroyed while in flight to a delegate.
  • Resolved some instances of bad memory accesses when destroying C++ signaling classes.
  • Removed .xcconfig files which were mistakenly included in 1.0.0-beta8 .
  • Disallowed init on all builder classes.
  • Validate arguments for TVIVideoFrame , and TVIIceServer .
  • Fixed the exception reason for TVIVideoTrack .

Known issues


1.0.0-beta8 (February 17, 2017)

100-beta8-february-17-2017 page anchor

Bug fixes

  • Fixed a memory leak with TVIVideoRenderer and TVIVideoFrame on iOS 8.
  • Fixed a crash which could occur when track enabled or disabled events arrive during media negotiation.
  • Participant identities can now include unicode characters (server side fix).
  • Removed VOIP socket tagging on signaling connections.

Known issues

  • Network handoff is not supported to/from a NAT'd IPv6 network.
  • VP8 is the only supported codec.
  • Bitcode is not supported.
  • Audio playout and recording does not work correctly on iOS simulators.
  • If your non-CallKit enabled application joins a Room where no audio is being sent or received then signaling and media connections will fail upon turning off the display and entering a deep background state. In some cases this can result in a crash.

1.0.0-beta7 (February 10, 2017)

100-beta7-february-10-2017 page anchor

Features

  • Added support for App Extensions.
  • Improved performance of the OpenGL ES implementation of TVIVideoViewRenderer by sharing frames with the GPU where possible.

Bug fixes

  • Fixed a regression from 1.0.0-beta6 where tokens with purely numeric identities caused a crash.
  • Eliminated a call to mDNSResponder when constructing TVIVideoClient .
  • Improved the reliability of DNS resolution for signaling, and resolved a potential crash on failure.

Known issues

  • Network handoff is not supported to/from a NAT'd IPv6 network.
  • VP8 is the only supported codec.
  • Bitcode is not supported.
  • Signaling connections are incorrectly tagged as VOIP sockets.
  • Audio playout and recording does not work correctly on iOS simulators.
  • If your non-CallKit enabled application joins a Room where no audio is being sent or received then signaling and media connections will fail upon turning off the display and entering a deep background state. In some cases this can result in a crash.

1.0.0-beta6 (February 1, 2017)

100-beta6-february-1-2017 page anchor

Features

  • Network handoff is supported in IPv4 environments.
  • Added an isRecording property to TVIRoom , and delegate callbacks to TVIRoomDelegate . Please note that recording is only available in our Group Rooms developer preview. The property will always return NO in a P2P Room.

Bug fixes

  • Resolved an issue where destroying a TVITrack instance after other SDK resources could cause a crash.
  • Fixed memory leaks when parsing JSON signaling messages.
  • Aggressively close old signaling connection on a redirect.
  • Improved signaling logic when handling glare scenarios.
  • Resolved a memory management issue with outgoing signaling messages.
  • Resolved a synchronization issue in the video capture pipeline which could cause frames to be corrupted.
  • Resolved a crash which could occur when parsing ICE candidates.
  • Attempt ICE restarts in response to PeerConnection failures.

Known issues

  • Network handoff is not supported to/from a NAT'd IPv6 network. This is an issue on cellular carriers such as T-Mobile.
  • VP8 is the only supported codec.
  • Bitcode is not supported.
  • Signaling connections are incorrectly tagged as VOIP sockets.
  • Audio playout and recording does not work correctly on iOS simulators.
  • If your non-CallKit enabled application joins a Room where no audio is being sent or received then signaling and media connections will fail upon turning off the display and entering a deep background state. In some cases this can result in a crash.
  • The SDK is not extension safe, and TVIVideoViewRenderer instances will remain paused in this environment.

1.0.0-beta5 (January 19, 2017)

100-beta5-january-19-2017 page anchor

Features

  • Added a new video frame class TVIVideoFrame , which replaces the TVII420Frame class for rendering and the TVIVideoFrame struct for capturing. TVIVideoFrame can be created using a CVImageBufferRef . TVIVideoRenderer and TVIVideoCaptureConsumer have been updated to use this class.
  • Renderers can now specify additional supported pixel formats via the optionalPixelFormats property in TVIVideoRenderer . Support for rotation tags is now mandatory for all renderers.

Bug fixes

  • Fixed an issue where SDK was incorrectly choosing TVIAudioOutputVoiceChatDefault by default, causing audio to be routed to the receiver on iPhones.
  • The SDK will no longer export any symbols from the dependencies that it consumes. For example, Twilio's Video and Chat SDKs can now be used at the same time to build an application.
  • Added error handling for nil checks and protocol conformance.
  • Fixed a performance regression when communicating with clients that do not support rotation tags (like Firefox).

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec.
  • Bitcode is not supported.
  • Signaling connections are incorrectly tagged as VOIP sockets.
  • If your non-CallKit enabled application joins a Room where no audio is being sent or received then signaling and media connections will fail upon turning off the display and entering a deep background state. In some cases this can result in a crash.
  • The SDK is not extension safe. In particular, the changes made to TVIVideoViewRenderer to support CallKit / backgrounding use cases cause rendering timers to be paused when used in an extension.

1.0.0-beta4 (December 13, 2016)

100-beta4-december-13-2016 page anchor

Features

  • STUN and TURN requests will now succeed on DNS64 / NAT64 networks. This allows for improved media connectivity in mapped IPv6 environments.
  • TVIVideoViewRenderer now supports two new content modes: UIViewContentModeScaleAspectFill and UIViewContentModeScaleToFill .
  • This release is based upon Chromium WebRTC 55. As a part of this update TVIVideoFrame timestamps are now expressed in units of microseconds instead of nanoseconds.
  • TVII420Frame now provides display timestamps.

Bug fixes

  • Using TVICameraCapturer on the iOS 10.0 betas no longer causes a crash.
  • Reverted a change where the Client would aggressively leave Rooms in response to PeerConnection Ice failures.
  • Fixed a thread safety issue where adding/removing a track from TVILocalMedia could cause a crash.
  • Improved error handling for some signaling and media use cases, and defined additional error codes in TVIError.h .

Known issues

  • The SDK incorrectly chooses TVIAudioOutputVoiceChatDefault by default, causing audio to be routed to the receiver on iPhones. You can work around this issue by setting TVIAudioController.audioOutput to TVIAudioOutputVideoChatDefault . See video-quickstart-ios(link takes you to an external page) for an example of how to do this.
  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec.
  • Bitcode is not supported.
  • Signaling connections are incorrectly tagged as VOIP sockets.
  • If your non-CallKit enabled application joins a Room where no audio is being sent or received then signaling and media connections will fail upon turning off the display and entering a deep background state. In some cases this can result in a crash.
  • The SDK is not extension safe. In particular, the changes made to TVIVideoViewRenderer to support CallKit / backgrounding use cases cause rendering timers to be paused when used in an extension.
  • There is a performance regression (since beta3 ) when communicating with Firefox clients. The client performs an additional memory allocation and copy operation when a TVIVideoCapturer delivers frames with non-zero rotation.

1.0.0-beta3 (November 30, 2016)

100-beta3-november-30-2016 page anchor

Bug fixes

  • TVICameraCapturer no longer crashes when created on iOS 10.0 & 10.1 simulators. Instead, initializing the capturer returns nil when an unavailable source is provided. We've also improved runtime error handling for this class.
  • Fixed an issue which could cause connection renegotiation to fail when adding or removing tracks.
  • Fixed an issue where the Room's Participants list could include the local Participant in multiparty.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec.
  • Bitcode is not supported.
  • Using TVICameraCapturer on iOS 10.0 betas causes a crash.
  • Signaling connections are incorrectly tagged as VOIP sockets.
  • STUN and TURN requests fail on DNS64 / NAT64 networks. Only host candidates are supported in this environment.
  • TVIVideoViewRenderer only supports UIViewContentModeScaleAspectFit .
  • If your application requires the background audio capability (but not voip) and joins a Room where no audio is being sent or received then signaling and media connections will fail upon entering the background. In some cases this can result in a crash.
  • The SDK is not extension safe. In particular, the changes made to TVIVideoViewRenderer to support CallKit / backgrounding use cases in beta2 cause rendering timers to be paused when used in an extension.

1.0.0-beta2 (November 16, 2016)

100-beta2-november-16-2016 page anchor

New features

  • Added support for CallKit via a new class TVIAudioController. CallKit requires iOS 10.0 or greater. The Video QuickStart Sample App for CallKit(link takes you to an external page) demonstrates how to use the new APIs.
  • Added the ability to select audio routes using TVIAudioController .
  • The Signaling stack supports DNS64 / NAT64 environments.
  • Developers can add their own custom capturers by implementing TVIVideoCapturer . The existing camera and screen capturers now adopt this public API.

Bug fixes

  • Fixed an inconsistency with the TVIRoomDelegate method room\:didFailToConnectWithError where an error was not returned even though the argument was marked as nonnull .
  • Calling disconnect before connecting to a Room results in room\:didDisconnectWithError: rather than room\:didFailToConnectWithError: .
  • TVIVideoViewRenderer will no longer attempt to use GPU resources if initialized in the background. The Metal implementation only renders when the application is in the active state in order to better support CallKit use cases.
  • Using a malformed AccessToken causes an error to be raised.
  • Logging at TVILogLevelDebug or greater shows the signaling messages exchanged.
  • Removed the usage of Poco thread pools for timers. Typically this means that the SDK requires two fewer threads to operate.
  • The SDK includes an acknowledgements file which lists open source dependencies.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec.
  • Bitcode is not supported.
  • Using TVICameraCapturer on iOS 10.0 betas causes a crash.
  • Signaling connections are incorrectly tagged as VOIP sockets.
  • STUN and TURN requests fail on DNS64 / NAT64 networks. Only host candidates are supported in this environment.
  • TVIVideoViewRenderer only supports UIViewContentModeScaleAspectFit .
  • If your application requires the background audio capability (but not voip) and joins a Room where there is no audio being sent or received then signaling and media connections will fail upon entering the background. In some cases this can result in a crash.
  • The SDK is not extension safe. In particular, the changes made to TVIVideoViewRenderer to support CallKit / backgrounding use cases in beta2 cause rendering timers to be paused when used in an extension.

1.0.0-beta1 (October 10, 2016)

100-beta1-october-10-2016 page anchor

New features

  • Added support for the iPhone 7 Plus to TVICameraCapturer . The SDK is compiled against the iOS 10 SDK, and continues to target iOS 8.1+.
  • Added a script to strip simulator architectures for use when submitting to the App Store.

Bug fixes

  • If you don't detach or remove your renderer from a TVIVideoTrack it will automatically be cleaned up when the track is destroyed.
  • It is now possible to re-negotiate more than one track at a time.
  • Improved signaling reliability.
  • Fixed several crashes related to object teardown.
  • Fixed an issue where passing an invalid TVIIceServer could result in a crash.

Known issues

  • IPv6 is not fully supported on iOS 10.
  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec.
  • CallKit is not officially supported. We plan on adding this in a future beta releases.
  • Bitcode is not supported.
  • Using TVICameraCapturer on iOS 10.0 betas causes a crash.
  • Signaling connections are incorrectly tagged as VOIP sockets.

1.0.0-preview1 (September 23, 2016)

100-preview1-september-23-2016 page anchor

New features

  • TwilioVideo uses a Room based communications model. We have replaced TWCConversation with TVIRoom and eliminated Invites from the SDK. Instead of calling inviteToConversation on TwilioConversationsClient you should call connectWithDelegate or connectWithOptions:delegate on TVIVideoClient .
  • A Room is a named voice and/or video session between one or more Participants. Unlike a Conversation a Room is created as soon as a single Participant joins. Rooms do not use invitations; Participants may join a room by simply calling connect and passing the Room's name as an argument.
  • It is possible to join more than one Room at a time.
  • Manipulating TVILocalMedia is synchronous, and no longer requires a delegate.
  • It is possible to use TVILocalMedia independently from joining a Room. The same instance of TVILocalMedia can be reused in multiple Rooms.
  • We have added TVIScreenCapturer , a new capturer which shares the contents of a UIView with other Participants.
  • Local audio is now a first class citizen in the SDK via TVILocalAudioTrack . You can use TVIAudioConstraints in order to customize the audio that you share.
  • TwilioCommon is no longer used with the SDK.
  • TwilioVideo is distributed as a dynamic framework.
  • We use a new signaling protocol which offers support for trickle-ice. This should result in improved call setup times compared to Conversations.

Bug fixes

  • First developer preview release.

Known issues

  • IPv6 is not fully supported on iOS 10.
  • Network handoff, and subsequent connection renegotiation is not supported.
  • If you use the attach APIs to render a video feed, then you must call detach explicitly. Similarly if you add a renderer to a video track then you will have to remove it yourself.
  • Renegotiating more than one track at a time is not supported.
  • VP8 is the only supported codec.
  • Bitcode is not supported.

Rate this page: