Zoom Video SDK + Twilio Feature Map
Click the square (◼) to see the documentation.
Twilio or Zoom agnostic features, indicated with an (a), can be used across all platforms. Click the link (if available) or the square (◼) in the Twilio or Zoom agnostic column for details. Click the numbers to see more details in the notes.
Feature Map
| Feature | Twilio web | Twilio iOS | Twilio Android | Twilio agnostic | Zoom web | Zoom iOS | Zoom Android | Zoom agnostic |
|---|---|---|---|---|---|---|---|---|
| Install | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Import | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Auth | (a) | (a) | (a) | ◼ | (a) | (a) | (a) | ◼ |
| Join | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Start audio / speaker | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Mute | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Unmute | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Start video | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Stop video | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Virtual background | ◼ | N/A | N/A | ◼ | ◼ | ◼ | ||
| Render user video | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Leave / end | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| PSTN | (a) | (a) | (a) | ◼ | (a) | (a) | (a) | ◼ |
| Recording | (a) | (a) | (a) | ◼ | ◼ | ◼ | ◼ | |
| Recording composition | (a) | (a) | (a) | ◼ | (a) | (a) | (a) | ◼ |
| Network bandwidth management | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | (1) | |
| Quality of Service | (2) | (2) | (2) | ◼ | ◼ | ◼ | ◼ | (2) |
| Data center selection | (a) | (a) | (a) | ◼ | (a) | (a) | (a) | (3) |
| Noise cancellation | (a) | (a) | (a) | ◼ | (4) | (4) | (4) | |
| Preview | ◼ | ◼ | ◼ | ◼ | Video, Audio. | Video, Audio. | ||
| Security | (a) | (a) | (a) | ◼ | (a) | (a) | (a) | (5) |
| Networking | (a) | (a) | (a) | ◼ | (a) | (a) | (a) | ◼ |
| Screen share | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| REST APIs | (a) | (a) | (a) | ◼ | (a) | (a) | (a) | ◼ |
| Webhooks | (a) | (a) | (a) | ◼ | (a) | (a) | (a) | ◼ |
| Reconnections | ◼ | ◼ | ◼ | (6) | (6) | (6) | Session alert,User left. | |
| Raw data | (7) | (7) | (7) | (7) | ◼ | ◼ | ||
| Codecs | (a) | (a) | (a) | ◼ | (a) | (a) | (a) | (8) |
| WebView | (a) | (a) | (a) | (9) | (a) | (a) | (a) | (9) |
| Video devices | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Speaker devices | ◼ | ◼ | ◼ | ◼ | ◼ | |||
| Microphone devices | ◼ | ◼ | ◼ | ◼ | (10) | (10) | ||
| Data tracks API | ◼ | ◼ | ◼ | ◼ | ◼ | ◼ | ||
| Analytics / video insights | (a) | (a) | (a) | (a) | (a) | (a) | ◼ | |
| Diagnostics tooling | (11) | N/A | N/A | (11) | (11) | (11) | Status, uptime. | |
| Reports | (a) | (a) | (a) | ◼ | (a) | (a) | (a) | (12) |
| CallKit (iOS only) | N/A | ◼ | N/A | N/A | (13) | N/A | ||
| Picture-in-picture (iOS only) | N/A | ◼ | N/A | N/A | ◼ | N/A | ||
| DSCP media packet tagging | ◼ | ◼ |
Notes
- Network bandwidth management — By default Zoom optimizes audio over video & video frames per second (FPS) over video resolution in low bandwidth environments. You may choose to override and manually configure the video quality preference.
- Quality of Service (QoS)
- Twilio — Quality of service is platform-agnostic for Twilio. See Video Insights and Using the network quality API for details.
- Zoom Video SDK — Quality of service is also platform-agnostic for Zoom. QoS data is included with Video SDK. See Service Quality for Android, iOS, and web, as well as Video SDK APIs, Webhooks, and Dashboard for details.
- Data center selection — Zoom connects to the closest & fastest responding data center. Configure data center regions account wide or per user connection. See
geo_regionsin the JWT payload documentation for details. - Noise cancellation
- Zoom Video SDK for web — Disabled by default as it requires
SharedArrayBuffer. Can be toggled. See Audio: Background noise suppression,backgroundNoiseSuppression, andenableBackgroundNoiseSuppressionfor details. - Zoom Video SDK for iOS — Enabled by default. Can be toggled. See for details.
- Zoom Video SDK for Android — Enabled by default. Can be toggled. See for details.
- Zoom Video SDK for web — Disabled by default as it requires
- Security — Zoom Video SDK is encrypted in transit using the following methods: HTTPS - TLS 1.2, and UDP 256-bit AES-GCM. See the Zoom Encryption Whitepaper and Security at Zoom for details.
- Reconnections — Zoom handles reconnections by default, and also offers event listeners and webhooks to build custom reconnection flows. See below for details.
- Zoom Video SDK for web — Connection change event, User remove event.
- Zoom Video SDK for iOS — Session callbacks.
- Zoom Video SDK for Android — Session callbacks.
- Raw data
- Twilio web — There is no dedicated API for accessing raw media on the web SDK, but it is possible using the way described in this GitHub comment: "...get access to the underlying MediaStream and MediaStreamTracks by [querying] the Tracks directly. Take a look at the
mediaStreamandmediaStreamTrackproperties [in the Track documentation]. You can also listen for the "trackAdded" and "trackRemoved" events on Media, in addition to iterating overtracksdirectly." - Twilio iOS — Developers can access audio and video raw data.
- For Video, developers can implement the custom renderer using the TVIVideoRenderer APIs. See the Twilio Video ARKit example for details.
- For Audio, developers can use raw audio data either by
- implementing custom audio device (see the Twilio Video TVIAudioDevice example for details),
- or using AudioSink APIs. See the Twilio Video TVIAudioSink example for details.
- Twilio Android — Developers can access audio and video raw data. See the Twilio Video Quickstart for Android for details.
- For Video, developers can implement the custom renderer using the VideoSink APIs.
- For Audio, developers can use raw audio data either by
- implementing custom audio device,
- or using AudioSink APIs.
- Zoom Video SDK for web — Feature not currently supported on web, but a native platform could be used to access the raw data along side web.
- Zoom Video SDK for iOS raw data documentation.
- Zoom Video SDK for Android raw data documentation.
- Twilio web — There is no dedicated API for accessing raw media on the web SDK, but it is possible using the way described in this GitHub comment: "...get access to the underlying MediaStream and MediaStreamTracks by [querying] the Tracks directly. Take a look at the
- Codecs — Zoom uses its own proprietary codec.
- WebView
- Microphone devices — handled by the system for Zoom Video SDK for iOS and Android.
- Diagnostics tooling
- Twilio web — Diagnostics application, Diagnostics SDK, and Pre-Flight API. See Pre-call Testing and Diagnostics for details.
- Zoom Video SDK — You can preview local video, microphone, and speaker functionality. See the the Video and Audio preview features for details. The network quality event listener is only available in sessions, not before, but you can implement a network check in JavaScript if you want to check the network condition before joining. For example, see this Stack Overflow question and answer for an example: How to detect internet speed in JavaScript?
- Zoom agnostic — See Zoom status and uptime history.
- Reports — Video SDK reports available via the reports APIs and the Dashboard.
- CallKit — Zoom Video SDK for iOS — No first class support, but can be handled by developer.