twilio-video 2.32.0 → 2.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/README.md +3 -3
  3. package/dist/twilio-video.js +2643 -1007
  4. package/dist/twilio-video.min.js +23 -22
  5. package/es5/cancelableroompromise.js.map +1 -1
  6. package/es5/connect.js +18 -8
  7. package/es5/connect.js.map +1 -1
  8. package/es5/createlocaltrack.js.map +1 -1
  9. package/es5/createlocaltracks.js +24 -18
  10. package/es5/createlocaltracks.js.map +1 -1
  11. package/es5/data/receiver.js.map +1 -1
  12. package/es5/data/sender.js.map +1 -1
  13. package/es5/data/transceiver.js.map +1 -1
  14. package/es5/data/transport.js.map +1 -1
  15. package/es5/encodingparameters.js.map +1 -1
  16. package/es5/eventtarget.js +10 -6
  17. package/es5/eventtarget.js.map +1 -1
  18. package/es5/index.js.map +1 -1
  19. package/es5/insights/applicationmonitor.js +93 -0
  20. package/es5/insights/applicationmonitor.js.map +1 -0
  21. package/es5/insights/computepressuremonitor.js +185 -0
  22. package/es5/insights/computepressuremonitor.js.map +1 -0
  23. package/es5/insights/events/application.js +46 -0
  24. package/es5/insights/events/application.js.map +1 -0
  25. package/es5/insights/events/getusermedia.js +51 -0
  26. package/es5/insights/events/getusermedia.js.map +1 -0
  27. package/es5/insights/events/network.js +54 -0
  28. package/es5/insights/events/network.js.map +1 -0
  29. package/es5/insights/events/quality.js +56 -0
  30. package/es5/insights/events/quality.js.map +1 -0
  31. package/es5/insights/events/system.js +31 -0
  32. package/es5/insights/events/system.js.map +1 -0
  33. package/es5/insights/events/track.js +58 -0
  34. package/es5/insights/events/track.js.map +1 -0
  35. package/es5/insights/monitorregistry.js +43 -0
  36. package/es5/insights/monitorregistry.js.map +1 -0
  37. package/es5/insights/networkmonitor.js +73 -0
  38. package/es5/insights/networkmonitor.js.map +1 -0
  39. package/es5/insights/resourcemonitor.js +56 -0
  40. package/es5/insights/resourcemonitor.js.map +1 -0
  41. package/es5/insights/statsmonitor.js +441 -0
  42. package/es5/insights/statsmonitor.js.map +1 -0
  43. package/es5/insights/telemetry.js +160 -0
  44. package/es5/insights/telemetry.js.map +1 -0
  45. package/es5/localparticipant.js +16 -16
  46. package/es5/localparticipant.js.map +1 -1
  47. package/es5/media/track/audiotrack.js.map +1 -1
  48. package/es5/media/track/capturevideoframes.js.map +1 -1
  49. package/es5/media/track/index.js.map +1 -1
  50. package/es5/media/track/localaudiotrack.js +6 -6
  51. package/es5/media/track/localaudiotrack.js.map +1 -1
  52. package/es5/media/track/localaudiotrackpublication.js +1 -1
  53. package/es5/media/track/localaudiotrackpublication.js.map +1 -1
  54. package/es5/media/track/localdatatrack.js.map +1 -1
  55. package/es5/media/track/localdatatrackpublication.js +1 -1
  56. package/es5/media/track/localdatatrackpublication.js.map +1 -1
  57. package/es5/media/track/localmediatrack.js +4 -4
  58. package/es5/media/track/localmediatrack.js.map +1 -1
  59. package/es5/media/track/localtrackpublication.js +10 -6
  60. package/es5/media/track/localtrackpublication.js.map +1 -1
  61. package/es5/media/track/localvideotrack.js +128 -6
  62. package/es5/media/track/localvideotrack.js.map +1 -1
  63. package/es5/media/track/localvideotrackpublication.js +1 -1
  64. package/es5/media/track/localvideotrackpublication.js.map +1 -1
  65. package/es5/media/track/mediatrack.js +4 -5
  66. package/es5/media/track/mediatrack.js.map +1 -1
  67. package/es5/media/track/noisecancellationimpl.js +8 -8
  68. package/es5/media/track/noisecancellationimpl.js.map +1 -1
  69. package/es5/media/track/receiver.js.map +1 -1
  70. package/es5/media/track/remoteaudiotrack.js +1 -1
  71. package/es5/media/track/remoteaudiotrack.js.map +1 -1
  72. package/es5/media/track/remoteaudiotrackpublication.js +1 -1
  73. package/es5/media/track/remoteaudiotrackpublication.js.map +1 -1
  74. package/es5/media/track/remotedatatrack.js +9 -5
  75. package/es5/media/track/remotedatatrack.js.map +1 -1
  76. package/es5/media/track/remotedatatrackpublication.js +1 -1
  77. package/es5/media/track/remotedatatrackpublication.js.map +1 -1
  78. package/es5/media/track/remotemediatrack.js +12 -8
  79. package/es5/media/track/remotemediatrack.js.map +1 -1
  80. package/es5/media/track/remotetrackpublication.js +2 -2
  81. package/es5/media/track/remotetrackpublication.js.map +1 -1
  82. package/es5/media/track/remotevideotrack.js +5 -3
  83. package/es5/media/track/remotevideotrack.js.map +1 -1
  84. package/es5/media/track/remotevideotrackpublication.js +1 -1
  85. package/es5/media/track/remotevideotrackpublication.js.map +1 -1
  86. package/es5/media/track/sender.js +1 -1
  87. package/es5/media/track/sender.js.map +1 -1
  88. package/es5/media/track/trackpublication.js +1 -1
  89. package/es5/media/track/trackpublication.js.map +1 -1
  90. package/es5/media/track/transceiver.js.map +1 -1
  91. package/es5/media/track/videoprocessoreventobserver.js +2 -2
  92. package/es5/media/track/videoprocessoreventobserver.js.map +1 -1
  93. package/es5/media/track/videotrack.js +106 -4
  94. package/es5/media/track/videotrack.js.map +1 -1
  95. package/es5/networkqualityconfiguration.js.map +1 -1
  96. package/es5/noisecancellationadapter.js +11 -12
  97. package/es5/noisecancellationadapter.js.map +1 -1
  98. package/es5/participant.js +20 -16
  99. package/es5/participant.js.map +1 -1
  100. package/es5/preflight/getCombinedConnectionStats.js +10 -11
  101. package/es5/preflight/getCombinedConnectionStats.js.map +1 -1
  102. package/es5/preflight/getturncredentials.js +2 -3
  103. package/es5/preflight/getturncredentials.js.map +1 -1
  104. package/es5/preflight/makestat.js +11 -8
  105. package/es5/preflight/makestat.js.map +1 -1
  106. package/es5/preflight/mos.js +2 -3
  107. package/es5/preflight/mos.js.map +1 -1
  108. package/es5/preflight/preflighttest.js +16 -16
  109. package/es5/preflight/preflighttest.js.map +1 -1
  110. package/es5/preflight/syntheticaudio.js +1 -2
  111. package/es5/preflight/syntheticaudio.js.map +1 -1
  112. package/es5/preflight/syntheticvideo.js +2 -3
  113. package/es5/preflight/syntheticvideo.js.map +1 -1
  114. package/es5/queueingeventemitter.js +10 -6
  115. package/es5/queueingeventemitter.js.map +1 -1
  116. package/es5/remoteparticipant.js +11 -7
  117. package/es5/remoteparticipant.js.map +1 -1
  118. package/es5/room.js +26 -10
  119. package/es5/room.js.map +1 -1
  120. package/es5/signaling/index.js +3 -3
  121. package/es5/signaling/index.js.map +1 -1
  122. package/es5/signaling/localparticipant.js.map +1 -1
  123. package/es5/signaling/localtrackpublication.js.map +1 -1
  124. package/es5/signaling/participant.js.map +1 -1
  125. package/es5/signaling/recording.js.map +1 -1
  126. package/es5/signaling/remoteparticipant.js.map +1 -1
  127. package/es5/signaling/remotetrackpublication.js.map +1 -1
  128. package/es5/signaling/room.js +1 -1
  129. package/es5/signaling/room.js.map +1 -1
  130. package/es5/signaling/track.js.map +1 -1
  131. package/es5/signaling/v2/cancelableroomsignalingpromise.js +3 -3
  132. package/es5/signaling/v2/cancelableroomsignalingpromise.js.map +1 -1
  133. package/es5/signaling/v2/dominantspeakersignaling.js.map +1 -1
  134. package/es5/signaling/v2/iceconnectionmonitor.js +0 -1
  135. package/es5/signaling/v2/iceconnectionmonitor.js.map +1 -1
  136. package/es5/signaling/v2/index.js.map +1 -1
  137. package/es5/signaling/v2/localparticipant.js +2 -2
  138. package/es5/signaling/v2/localparticipant.js.map +1 -1
  139. package/es5/signaling/v2/localtrackpublication.js +2 -2
  140. package/es5/signaling/v2/localtrackpublication.js.map +1 -1
  141. package/es5/signaling/v2/mediasignaling.js +2 -2
  142. package/es5/signaling/v2/mediasignaling.js.map +1 -1
  143. package/es5/signaling/v2/networkqualitymonitor.js.map +1 -1
  144. package/es5/signaling/v2/networkqualitysignaling.js.map +1 -1
  145. package/es5/signaling/v2/peerconnection.js +30 -27
  146. package/es5/signaling/v2/peerconnection.js.map +1 -1
  147. package/es5/signaling/v2/peerconnectionmanager.js +10 -6
  148. package/es5/signaling/v2/peerconnectionmanager.js.map +1 -1
  149. package/es5/signaling/v2/publisherhintsignaling.js.map +1 -1
  150. package/es5/signaling/v2/recording.js.map +1 -1
  151. package/es5/signaling/v2/remoteparticipant.js.map +1 -1
  152. package/es5/signaling/v2/remotetrackpublication.js.map +1 -1
  153. package/es5/signaling/v2/renderhintssignaling.js +0 -1
  154. package/es5/signaling/v2/renderhintssignaling.js.map +1 -1
  155. package/es5/signaling/v2/room.js +20 -176
  156. package/es5/signaling/v2/room.js.map +1 -1
  157. package/es5/signaling/v2/trackprioritysignaling.js.map +1 -1
  158. package/es5/signaling/v2/trackswitchoffsignaling.js.map +1 -1
  159. package/es5/signaling/v2/transcriptionsignaling.js.map +1 -1
  160. package/es5/signaling/v2/twilioconnectiontransport.js +2 -2
  161. package/es5/signaling/v2/twilioconnectiontransport.js.map +1 -1
  162. package/es5/statemachine.js +19 -15
  163. package/es5/statemachine.js.map +1 -1
  164. package/es5/stats/icereportfactory.js.map +1 -1
  165. package/es5/stats/localaudiotrackstats.js.map +1 -1
  166. package/es5/stats/localtrackstats.js.map +1 -1
  167. package/es5/stats/localvideotrackstats.js +5 -0
  168. package/es5/stats/localvideotrackstats.js.map +1 -1
  169. package/es5/stats/networkqualityaudiostats.js.map +1 -1
  170. package/es5/stats/networkqualityrecvstats.js.map +1 -1
  171. package/es5/stats/networkqualitysendstats.js.map +1 -1
  172. package/es5/stats/networkqualityvideostats.js.map +1 -1
  173. package/es5/stats/peerconnectionreportfactory.js +13 -9
  174. package/es5/stats/peerconnectionreportfactory.js.map +1 -1
  175. package/es5/stats/receiverreport.js.map +1 -1
  176. package/es5/stats/receiverreportfactory.js.map +1 -1
  177. package/es5/stats/remoteaudiotrackstats.js +0 -7
  178. package/es5/stats/remoteaudiotrackstats.js.map +1 -1
  179. package/es5/stats/remotetrackstats.js +7 -0
  180. package/es5/stats/remotetrackstats.js.map +1 -1
  181. package/es5/stats/remotevideotrackstats.js +7 -0
  182. package/es5/stats/remotevideotrackstats.js.map +1 -1
  183. package/es5/stats/senderreport.js.map +1 -1
  184. package/es5/stats/senderreportfactory.js.map +1 -1
  185. package/es5/stats/statsreport.js.map +1 -1
  186. package/es5/stats/trackstats.js.map +1 -1
  187. package/es5/transceiver.js.map +1 -1
  188. package/es5/twilioconnection.js +34 -30
  189. package/es5/twilioconnection.js.map +1 -1
  190. package/es5/util/asyncvar.js.map +1 -1
  191. package/es5/util/backoff.js.map +1 -1
  192. package/es5/util/browserdetection.js.map +1 -1
  193. package/es5/util/cancelablepromise.js +11 -7
  194. package/es5/util/cancelablepromise.js.map +1 -1
  195. package/es5/util/constants.js +7 -8
  196. package/es5/util/constants.js.map +1 -1
  197. package/es5/util/detectsilentaudio.js.map +1 -1
  198. package/es5/util/detectsilentvideo.js +3 -3
  199. package/es5/util/detectsilentvideo.js.map +1 -1
  200. package/es5/util/documentvisibilitymonitor.js +1 -1
  201. package/es5/util/documentvisibilitymonitor.js.map +1 -1
  202. package/es5/util/dynamicimport.js +2 -2
  203. package/es5/util/dynamicimport.js.map +1 -1
  204. package/es5/util/eventobserver.js +1 -2
  205. package/es5/util/eventobserver.js.map +1 -1
  206. package/es5/util/filter.js.map +1 -1
  207. package/es5/util/index.js +58 -27
  208. package/es5/util/index.js.map +1 -1
  209. package/es5/util/insightspublisher/index.js +5 -6
  210. package/es5/util/insightspublisher/index.js.map +1 -1
  211. package/es5/util/insightspublisher/null.js.map +1 -1
  212. package/es5/util/localmediarestartdeferreds.js.map +1 -1
  213. package/es5/util/log.js +10 -6
  214. package/es5/util/log.js.map +1 -1
  215. package/es5/util/networkmonitor.js.map +1 -1
  216. package/es5/util/nullobserver.js +0 -1
  217. package/es5/util/nullobserver.js.map +1 -1
  218. package/es5/util/sdp/index.js +32 -13
  219. package/es5/util/sdp/index.js.map +1 -1
  220. package/es5/util/sdp/issue8329.js +45 -8
  221. package/es5/util/sdp/issue8329.js.map +1 -1
  222. package/es5/util/sdp/simulcast.js +5 -5
  223. package/es5/util/sdp/simulcast.js.map +1 -1
  224. package/es5/util/sid.js +1 -1
  225. package/es5/util/sid.js.map +1 -1
  226. package/es5/util/support.js +1 -2
  227. package/es5/util/support.js.map +1 -1
  228. package/es5/util/timeout.js.map +1 -1
  229. package/es5/util/timeoutpromise.js +10 -6
  230. package/es5/util/timeoutpromise.js.map +1 -1
  231. package/es5/util/twilio-video-errors.js.map +1 -1
  232. package/es5/util/twilioerror.js +11 -7
  233. package/es5/util/twilioerror.js.map +1 -1
  234. package/es5/util/twiliowarning.js +0 -1
  235. package/es5/util/twiliowarning.js.map +1 -1
  236. package/es5/util/validate.js +4 -4
  237. package/es5/util/validate.js.map +1 -1
  238. package/es5/vendor/inherits.js.map +1 -1
  239. package/es5/vendor/loglevel.js.map +1 -1
  240. package/es5/webaudio/audiocontext.js.map +1 -1
  241. package/es5/webaudio/detectsilence.js.map +1 -1
  242. package/es5/webaudio/workaround180748.js +1 -1
  243. package/es5/webaudio/workaround180748.js.map +1 -1
  244. package/es5/webrtc/getstats.js +27 -13
  245. package/es5/webrtc/getstats.js.map +1 -1
  246. package/es5/webrtc/getusermedia.js.map +1 -1
  247. package/es5/webrtc/mediastream.js.map +1 -1
  248. package/es5/webrtc/mediastreamtrack.js.map +1 -1
  249. package/es5/webrtc/rtcicecandidate.js.map +1 -1
  250. package/es5/webrtc/rtcpeerconnection/chrome.js +16 -12
  251. package/es5/webrtc/rtcpeerconnection/chrome.js.map +1 -1
  252. package/es5/webrtc/rtcpeerconnection/firefox.js +14 -10
  253. package/es5/webrtc/rtcpeerconnection/firefox.js.map +1 -1
  254. package/es5/webrtc/rtcpeerconnection/index.js.map +1 -1
  255. package/es5/webrtc/rtcpeerconnection/safari.js +12 -8
  256. package/es5/webrtc/rtcpeerconnection/safari.js.map +1 -1
  257. package/es5/webrtc/rtcsessiondescription/index.js.map +1 -1
  258. package/es5/webrtc/util/index.js +10 -6
  259. package/es5/webrtc/util/index.js.map +1 -1
  260. package/es5/webrtc/util/latch.js +1 -1
  261. package/es5/webrtc/util/latch.js.map +1 -1
  262. package/es5/webrtc/util/sdp.js +7 -7
  263. package/es5/webrtc/util/sdp.js.map +1 -1
  264. package/eslint.config.js +308 -0
  265. package/lib/connect.js +18 -3
  266. package/lib/createlocaltracks.ts +9 -3
  267. package/lib/index.ts +1 -1
  268. package/lib/insights/applicationmonitor.js +101 -0
  269. package/lib/insights/computepressuremonitor.js +149 -0
  270. package/lib/insights/events/application.js +49 -0
  271. package/lib/insights/events/getusermedia.js +54 -0
  272. package/lib/insights/events/network.js +55 -0
  273. package/lib/insights/events/quality.js +59 -0
  274. package/lib/insights/events/system.js +32 -0
  275. package/lib/insights/events/track.js +58 -0
  276. package/lib/insights/monitorregistry.js +44 -0
  277. package/lib/insights/networkmonitor.js +82 -0
  278. package/lib/insights/resourcemonitor.js +63 -0
  279. package/lib/insights/statsmonitor.js +442 -0
  280. package/lib/insights/telemetry.js +172 -0
  281. package/lib/media/track/localvideotrack.js +143 -6
  282. package/lib/media/track/mediatrack.js +0 -1
  283. package/lib/media/track/remotevideotrack.js +6 -2
  284. package/lib/media/track/videotrack.js +122 -2
  285. package/lib/noisecancellationadapter.ts +1 -1
  286. package/lib/preflight/getCombinedConnectionStats.ts +1 -2
  287. package/lib/preflight/makestat.ts +1 -1
  288. package/lib/preflight/mos.ts +1 -1
  289. package/lib/preflight/preflighttest.ts +2 -2
  290. package/lib/room.js +12 -0
  291. package/lib/signaling/v2/cancelableroomsignalingpromise.js +3 -3
  292. package/lib/signaling/v2/iceconnectionmonitor.js +0 -1
  293. package/lib/signaling/v2/peerconnection.js +1 -2
  294. package/lib/signaling/v2/renderhintssignaling.js +0 -1
  295. package/lib/signaling/v2/room.js +23 -200
  296. package/lib/stats/localvideotrackstats.js +5 -0
  297. package/lib/stats/remoteaudiotrackstats.js +0 -7
  298. package/lib/stats/remotetrackstats.js +7 -0
  299. package/lib/stats/remotevideotrackstats.js +7 -0
  300. package/lib/util/constants.js +1 -1
  301. package/lib/util/eventobserver.js +1 -2
  302. package/lib/util/index.js +41 -13
  303. package/lib/util/insightspublisher/index.js +1 -2
  304. package/lib/util/log.js +3 -3
  305. package/lib/util/nullobserver.js +0 -1
  306. package/lib/util/sdp/index.js +17 -3
  307. package/lib/util/sdp/issue8329.js +43 -0
  308. package/lib/util/support.js +2 -2
  309. package/lib/util/twiliowarning.js +0 -1
  310. package/lib/webrtc/getstats.js +27 -10
  311. package/package.json +36 -38
  312. package/tsdef/AudioProcessor.d.ts +2 -2
  313. package/tsdef/LocalTrackOptions.d.ts +4 -4
  314. package/tsdef/PreflightTypes.d.ts +3 -3
  315. package/tsdef/index.d.ts +1 -1
  316. package/tsdef/loglevel.d.ts +43 -43
  317. package/tsdef/types.d.ts +6 -6
  318. package/.babelrc +0 -3
  319. package/.eslintrc.json +0 -369
  320. package/src/xmlhttprequest.js +0 -1
  321. package/tsdef/.eslintrc.json +0 -17
package/CHANGELOG.md CHANGED
@@ -1,7 +1,42 @@
1
- The Twilio Programmable Video SDKs use [Semantic Versioning](http://www.semver.org/). Twilio supports version N-1 for 12 months after the first GA release of version N. We recommend you upgrade to the latest version as soon as possible to avoid any breaking changes. Version 2.x is the lastest Video JavaScript SDK.
1
+ The Twilio Programmable Video SDKs use [Semantic Versioning](http://www.semver.org/). Twilio supports version N-1 for 12 months after the first GA release of version N. We recommend you upgrade to the latest version as soon as possible to avoid any breaking changes. Version 2.x is the latest Video JavaScript SDK.
2
2
 
3
3
  **Version 1.x reached End of Life on September 8th, 2021.** See the changelog entry [here](https://www.twilio.com/changelog/end-of-life-complete-for-unsupported-versions-of-the-programmable-video-sdk). Support for the 1.x version ended on December 4th, 2020.
4
4
 
5
+ 2.33.0 (November 6, 2025)
6
+ ====================
7
+
8
+ New Features
9
+ ------------
10
+
11
+ ### Enhanced Telemetry
12
+
13
+ Added new telemetry events for enhanced monitoring and diagnostics when `insights` is enabled:
14
+
15
+ - **Application Lifecycle** - Monitor application visibility changes (backgrounded/resumed) and termination
16
+ events.
17
+ - **Network Information** - Track connection type, bandwidth, RTT, and data saver mode changes.
18
+ - **Quality Limitation** - Report video quality limitation reasons (cpu, bandwidth, or other constraints).
19
+ - **CPU Pressure** - Monitor system CPU pressure states using the `Compute Pressure API`.
20
+ - **getUserMedia** - Track media acquisition success, permission denials, and failures.
21
+ - **Track Warning** - Report freeze counts for video tracks.
22
+
23
+ These events are automatically collected and reported through the existing insights pipeline when connecting to a
24
+ Room.
25
+
26
+ Changes
27
+ ------------
28
+
29
+ - `isSupported` now returns `true` for Microsoft Edge on iOS.
30
+
31
+ 2.32.1 (August 1, 2025)
32
+ ====================
33
+
34
+ Bug Fixes
35
+ ---------
36
+ - Fixed an issue where video tracks would freeze when the video element was offscreen in a document Picture-in-Picture window.
37
+ - Fixed an issue where `LocalVideoTrack.restart()` would fail on some devices when a video processor was active.
38
+ - Fixed an issue where SDP munging would generate duplicated payload types, causing SDP negotiation failures with Chrome 137+.
39
+
5
40
  2.32.0 (July 23, 2025)
6
41
  ====================
7
42
 
package/README.md CHANGED
@@ -24,7 +24,7 @@ Browser Support
24
24
  | | Chrome | Edge (Chromium) | Firefox | Safari | WebView |
25
25
  | ------------|--------|-----------------|---------|--------|---------|
26
26
  | **Android** | ✓ | - | ✓ | - | - |
27
- | **iOS** | ✓ | - | * | ✓ | ✓ |
27
+ | **iOS** | ✓ | | * | ✓ | ✓ |
28
28
  | **Linux** | ✓ | - | ✓ | - | - |
29
29
  | **macOS** | ✓ | ✓ ** | ✓ | ✓ | - |
30
30
  | **Windows** | ✓ | ✓ ** | ✓ | - | - |
@@ -60,7 +60,7 @@ function participantDisconnected(participant: Video.RemoteParticipant) {
60
60
  Alternatively, you can import just the definitions you need like so:
61
61
 
62
62
  ```ts
63
- import { RemoteParticiant } from 'twilio-video';
63
+ import { RemoteParticipant } from 'twilio-video';
64
64
 
65
65
  function participantDisconnected(participant: RemoteParticipant) {
66
66
  console.log('Participant "%s" disconnected', participant.identity);
@@ -74,7 +74,7 @@ Releases of twilio-video.js are hosted on a CDN, and you can include these
74
74
  directly in your web app using a <script> tag.
75
75
 
76
76
  ```html
77
- <script src="//sdk.twilio.com/js/video/releases/2.32.0/twilio-video.min.js"></script>
77
+ <script src="//sdk.twilio.com/js/video/releases/2.33.0/twilio-video.min.js"></script>
78
78
  ```
79
79
 
80
80
  Using this method, twilio-video.js will set a browser global: