@abrar71/lib-jitsi-meet 0.0.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 (350) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +26 -0
  3. package/dist/esm/JitsiConference.js +3692 -0
  4. package/dist/esm/JitsiConference.js.map +1 -0
  5. package/dist/esm/JitsiConferenceErrors.js +126 -0
  6. package/dist/esm/JitsiConferenceErrors.js.map +1 -0
  7. package/dist/esm/JitsiConferenceEventManager.js +424 -0
  8. package/dist/esm/JitsiConferenceEventManager.js.map +1 -0
  9. package/dist/esm/JitsiConferenceEvents.js +431 -0
  10. package/dist/esm/JitsiConferenceEvents.js.map +1 -0
  11. package/dist/esm/JitsiConnection.js +187 -0
  12. package/dist/esm/JitsiConnection.js.map +1 -0
  13. package/dist/esm/JitsiConnectionErrors.js +52 -0
  14. package/dist/esm/JitsiConnectionErrors.js.map +1 -0
  15. package/dist/esm/JitsiConnectionEvents.js +57 -0
  16. package/dist/esm/JitsiConnectionEvents.js.map +1 -0
  17. package/dist/esm/JitsiMediaDevices.js +221 -0
  18. package/dist/esm/JitsiMediaDevices.js.map +1 -0
  19. package/dist/esm/JitsiMediaDevicesEvents.js +29 -0
  20. package/dist/esm/JitsiMediaDevicesEvents.js.map +1 -0
  21. package/dist/esm/JitsiMeetJS.js +499 -0
  22. package/dist/esm/JitsiMeetJS.js.map +1 -0
  23. package/dist/esm/JitsiParticipant.js +323 -0
  24. package/dist/esm/JitsiParticipant.js.map +1 -0
  25. package/dist/esm/JitsiTrackError.js +122 -0
  26. package/dist/esm/JitsiTrackError.js.map +1 -0
  27. package/dist/esm/JitsiTrackErrors.js +91 -0
  28. package/dist/esm/JitsiTrackErrors.js.map +1 -0
  29. package/dist/esm/JitsiTrackEvents.js +60 -0
  30. package/dist/esm/JitsiTrackEvents.js.map +1 -0
  31. package/dist/esm/JitsiTranscriptionStatus.js +15 -0
  32. package/dist/esm/JitsiTranscriptionStatus.js.map +1 -0
  33. package/dist/esm/modules/RTC/BridgeChannel.js +398 -0
  34. package/dist/esm/modules/RTC/BridgeChannel.js.map +1 -0
  35. package/dist/esm/modules/RTC/JitsiLocalTrack.js +896 -0
  36. package/dist/esm/modules/RTC/JitsiLocalTrack.js.map +1 -0
  37. package/dist/esm/modules/RTC/JitsiRemoteTrack.js +427 -0
  38. package/dist/esm/modules/RTC/JitsiRemoteTrack.js.map +1 -0
  39. package/dist/esm/modules/RTC/JitsiTrack.js +453 -0
  40. package/dist/esm/modules/RTC/JitsiTrack.js.map +1 -0
  41. package/dist/esm/modules/RTC/MockClasses.js +388 -0
  42. package/dist/esm/modules/RTC/MockClasses.js.map +1 -0
  43. package/dist/esm/modules/RTC/RTC.js +658 -0
  44. package/dist/esm/modules/RTC/RTC.js.map +1 -0
  45. package/dist/esm/modules/RTC/RTCUtils.js +762 -0
  46. package/dist/esm/modules/RTC/RTCUtils.js.map +1 -0
  47. package/dist/esm/modules/RTC/ScreenObtainer.js +380 -0
  48. package/dist/esm/modules/RTC/ScreenObtainer.js.map +1 -0
  49. package/dist/esm/modules/RTC/TPCUtils.js +803 -0
  50. package/dist/esm/modules/RTC/TPCUtils.js.map +1 -0
  51. package/dist/esm/modules/RTC/TraceablePeerConnection.js +2223 -0
  52. package/dist/esm/modules/RTC/TraceablePeerConnection.js.map +1 -0
  53. package/dist/esm/modules/RTCStats/DefaulLogStorage.js +35 -0
  54. package/dist/esm/modules/RTCStats/DefaulLogStorage.js.map +1 -0
  55. package/dist/esm/modules/RTCStats/RTCStats.js +219 -0
  56. package/dist/esm/modules/RTCStats/RTCStats.js.map +1 -0
  57. package/dist/esm/modules/RTCStats/RTCStatsEvents.js +92 -0
  58. package/dist/esm/modules/RTCStats/RTCStatsEvents.js.map +1 -0
  59. package/dist/esm/modules/RTCStats/interfaces.js +2 -0
  60. package/dist/esm/modules/RTCStats/interfaces.js.map +1 -0
  61. package/dist/esm/modules/browser/BrowserCapabilities.js +345 -0
  62. package/dist/esm/modules/browser/BrowserCapabilities.js.map +1 -0
  63. package/dist/esm/modules/browser/index.js +3 -0
  64. package/dist/esm/modules/browser/index.js.map +1 -0
  65. package/dist/esm/modules/connectivity/ConnectionQuality.js +389 -0
  66. package/dist/esm/modules/connectivity/ConnectionQuality.js.map +1 -0
  67. package/dist/esm/modules/connectivity/IceFailedHandling.js +84 -0
  68. package/dist/esm/modules/connectivity/IceFailedHandling.js.map +1 -0
  69. package/dist/esm/modules/connectivity/NetworkInfo.js +49 -0
  70. package/dist/esm/modules/connectivity/NetworkInfo.js.map +1 -0
  71. package/dist/esm/modules/connectivity/TrackStreamingStatus.js +453 -0
  72. package/dist/esm/modules/connectivity/TrackStreamingStatus.js.map +1 -0
  73. package/dist/esm/modules/detection/ActiveDeviceDetector.js +79 -0
  74. package/dist/esm/modules/detection/ActiveDeviceDetector.js.map +1 -0
  75. package/dist/esm/modules/detection/DetectionEvents.js +58 -0
  76. package/dist/esm/modules/detection/DetectionEvents.js.map +1 -0
  77. package/dist/esm/modules/detection/NoAudioSignalDetection.js +127 -0
  78. package/dist/esm/modules/detection/NoAudioSignalDetection.js.map +1 -0
  79. package/dist/esm/modules/detection/P2PDominantSpeakerDetection.js +47 -0
  80. package/dist/esm/modules/detection/P2PDominantSpeakerDetection.js.map +1 -0
  81. package/dist/esm/modules/detection/TrackVADEmitter.js +190 -0
  82. package/dist/esm/modules/detection/TrackVADEmitter.js.map +1 -0
  83. package/dist/esm/modules/detection/VADAudioAnalyser.js +199 -0
  84. package/dist/esm/modules/detection/VADAudioAnalyser.js.map +1 -0
  85. package/dist/esm/modules/detection/VADNoiseDetection.js +168 -0
  86. package/dist/esm/modules/detection/VADNoiseDetection.js.map +1 -0
  87. package/dist/esm/modules/detection/VADReportingService.js +203 -0
  88. package/dist/esm/modules/detection/VADReportingService.js.map +1 -0
  89. package/dist/esm/modules/detection/VADTalkMutedDetection.js +131 -0
  90. package/dist/esm/modules/detection/VADTalkMutedDetection.js.map +1 -0
  91. package/dist/esm/modules/e2ee/Context.js +274 -0
  92. package/dist/esm/modules/e2ee/Context.js.map +1 -0
  93. package/dist/esm/modules/e2ee/E2EEContext.js +158 -0
  94. package/dist/esm/modules/e2ee/E2EEContext.js.map +1 -0
  95. package/dist/esm/modules/e2ee/E2EEErrors.js +10 -0
  96. package/dist/esm/modules/e2ee/E2EEErrors.js.map +1 -0
  97. package/dist/esm/modules/e2ee/E2EEncryption.js +87 -0
  98. package/dist/esm/modules/e2ee/E2EEncryption.js.map +1 -0
  99. package/dist/esm/modules/e2ee/ExternallyManagedKeyHandler.js +24 -0
  100. package/dist/esm/modules/e2ee/ExternallyManagedKeyHandler.js.map +1 -0
  101. package/dist/esm/modules/e2ee/KeyHandler.js +137 -0
  102. package/dist/esm/modules/e2ee/KeyHandler.js.map +1 -0
  103. package/dist/esm/modules/e2ee/ManagedKeyHandler.js +182 -0
  104. package/dist/esm/modules/e2ee/ManagedKeyHandler.js.map +1 -0
  105. package/dist/esm/modules/e2ee/OlmAdapter.js +860 -0
  106. package/dist/esm/modules/e2ee/OlmAdapter.js.map +1 -0
  107. package/dist/esm/modules/e2ee/SAS.js +128 -0
  108. package/dist/esm/modules/e2ee/SAS.js.map +1 -0
  109. package/dist/esm/modules/e2ee/Worker.js +102 -0
  110. package/dist/esm/modules/e2ee/Worker.js.map +1 -0
  111. package/dist/esm/modules/e2ee/crypto-utils.js +53 -0
  112. package/dist/esm/modules/e2ee/crypto-utils.js.map +1 -0
  113. package/dist/esm/modules/e2ee/utils.js +15 -0
  114. package/dist/esm/modules/e2ee/utils.js.map +1 -0
  115. package/dist/esm/modules/e2eping/e2eping.js +314 -0
  116. package/dist/esm/modules/e2eping/e2eping.js.map +1 -0
  117. package/dist/esm/modules/flags/FeatureFlags.js +36 -0
  118. package/dist/esm/modules/flags/FeatureFlags.js.map +1 -0
  119. package/dist/esm/modules/litemode/LiteModeContext.js +50 -0
  120. package/dist/esm/modules/litemode/LiteModeContext.js.map +1 -0
  121. package/dist/esm/modules/proxyconnection/CustomSignalingLayer.js +98 -0
  122. package/dist/esm/modules/proxyconnection/CustomSignalingLayer.js.map +1 -0
  123. package/dist/esm/modules/proxyconnection/ProxyConnectionPC.js +348 -0
  124. package/dist/esm/modules/proxyconnection/ProxyConnectionPC.js.map +1 -0
  125. package/dist/esm/modules/proxyconnection/ProxyConnectionService.js +279 -0
  126. package/dist/esm/modules/proxyconnection/ProxyConnectionService.js.map +1 -0
  127. package/dist/esm/modules/proxyconnection/constants.js +14 -0
  128. package/dist/esm/modules/proxyconnection/constants.js.map +1 -0
  129. package/dist/esm/modules/qualitycontrol/CodecSelection.js +222 -0
  130. package/dist/esm/modules/qualitycontrol/CodecSelection.js.map +1 -0
  131. package/dist/esm/modules/qualitycontrol/MockClasses.js +120 -0
  132. package/dist/esm/modules/qualitycontrol/MockClasses.js.map +1 -0
  133. package/dist/esm/modules/qualitycontrol/QualityController.js +366 -0
  134. package/dist/esm/modules/qualitycontrol/QualityController.js.map +1 -0
  135. package/dist/esm/modules/qualitycontrol/ReceiveAudioController.js +73 -0
  136. package/dist/esm/modules/qualitycontrol/ReceiveAudioController.js.map +1 -0
  137. package/dist/esm/modules/qualitycontrol/ReceiveVideoController.js +216 -0
  138. package/dist/esm/modules/qualitycontrol/ReceiveVideoController.js.map +1 -0
  139. package/dist/esm/modules/qualitycontrol/SendVideoController.js +133 -0
  140. package/dist/esm/modules/qualitycontrol/SendVideoController.js.map +1 -0
  141. package/dist/esm/modules/recording/JibriSession.js +279 -0
  142. package/dist/esm/modules/recording/JibriSession.js.map +1 -0
  143. package/dist/esm/modules/recording/RecordingManager.js +257 -0
  144. package/dist/esm/modules/recording/RecordingManager.js.map +1 -0
  145. package/dist/esm/modules/recording/recordingConstants.js +21 -0
  146. package/dist/esm/modules/recording/recordingConstants.js.map +1 -0
  147. package/dist/esm/modules/recording/recordingXMLUtils.js +69 -0
  148. package/dist/esm/modules/recording/recordingXMLUtils.js.map +1 -0
  149. package/dist/esm/modules/red/red.js +108 -0
  150. package/dist/esm/modules/red/red.js.map +1 -0
  151. package/dist/esm/modules/sdp/LocalSdpMunger.js +143 -0
  152. package/dist/esm/modules/sdp/LocalSdpMunger.js.map +1 -0
  153. package/dist/esm/modules/sdp/RtxModifier.js +179 -0
  154. package/dist/esm/modules/sdp/RtxModifier.js.map +1 -0
  155. package/dist/esm/modules/sdp/SDP.js +848 -0
  156. package/dist/esm/modules/sdp/SDP.js.map +1 -0
  157. package/dist/esm/modules/sdp/SDPDiffer.js +96 -0
  158. package/dist/esm/modules/sdp/SDPDiffer.js.map +1 -0
  159. package/dist/esm/modules/sdp/SDPUtil.js +798 -0
  160. package/dist/esm/modules/sdp/SDPUtil.js.map +1 -0
  161. package/dist/esm/modules/sdp/SampleSdpStrings.js +589 -0
  162. package/dist/esm/modules/sdp/SampleSdpStrings.js.map +1 -0
  163. package/dist/esm/modules/sdp/SdpSimulcast.js +196 -0
  164. package/dist/esm/modules/sdp/SdpSimulcast.js.map +1 -0
  165. package/dist/esm/modules/sdp/SdpTransformUtil.js +337 -0
  166. package/dist/esm/modules/sdp/SdpTransformUtil.js.map +1 -0
  167. package/dist/esm/modules/sdp/constants.js +2 -0
  168. package/dist/esm/modules/sdp/constants.js.map +1 -0
  169. package/dist/esm/modules/settings/Settings.js +95 -0
  170. package/dist/esm/modules/settings/Settings.js.map +1 -0
  171. package/dist/esm/modules/statistics/AnalyticsAdapter.js +277 -0
  172. package/dist/esm/modules/statistics/AnalyticsAdapter.js.map +1 -0
  173. package/dist/esm/modules/statistics/AvgRTPStatsReporter.js +817 -0
  174. package/dist/esm/modules/statistics/AvgRTPStatsReporter.js.map +1 -0
  175. package/dist/esm/modules/statistics/LocalStatsCollector.js +149 -0
  176. package/dist/esm/modules/statistics/LocalStatsCollector.js.map +1 -0
  177. package/dist/esm/modules/statistics/PreCallTest.js +15 -0
  178. package/dist/esm/modules/statistics/PreCallTest.js.map +1 -0
  179. package/dist/esm/modules/statistics/RTPStatsCollector.js +601 -0
  180. package/dist/esm/modules/statistics/RTPStatsCollector.js.map +1 -0
  181. package/dist/esm/modules/statistics/SpeakerStats.js +163 -0
  182. package/dist/esm/modules/statistics/SpeakerStats.js.map +1 -0
  183. package/dist/esm/modules/statistics/SpeakerStatsCollector.js +161 -0
  184. package/dist/esm/modules/statistics/SpeakerStatsCollector.js.map +1 -0
  185. package/dist/esm/modules/statistics/constants.js +7 -0
  186. package/dist/esm/modules/statistics/constants.js.map +1 -0
  187. package/dist/esm/modules/statistics/statistics.js +362 -0
  188. package/dist/esm/modules/statistics/statistics.js.map +1 -0
  189. package/dist/esm/modules/util/AsyncQueue.js +102 -0
  190. package/dist/esm/modules/util/AsyncQueue.js.map +1 -0
  191. package/dist/esm/modules/util/Deferred.js +41 -0
  192. package/dist/esm/modules/util/Deferred.js.map +1 -0
  193. package/dist/esm/modules/util/EventEmitter.js +17 -0
  194. package/dist/esm/modules/util/EventEmitter.js.map +1 -0
  195. package/dist/esm/modules/util/EventEmitterForwarder.js +52 -0
  196. package/dist/esm/modules/util/EventEmitterForwarder.js.map +1 -0
  197. package/dist/esm/modules/util/Listenable.js +106 -0
  198. package/dist/esm/modules/util/Listenable.js.map +1 -0
  199. package/dist/esm/modules/util/MathUtil.js +103 -0
  200. package/dist/esm/modules/util/MathUtil.js.map +1 -0
  201. package/dist/esm/modules/util/RandomUtil.js +66 -0
  202. package/dist/esm/modules/util/RandomUtil.js.map +1 -0
  203. package/dist/esm/modules/util/Retry.js +15 -0
  204. package/dist/esm/modules/util/Retry.js.map +1 -0
  205. package/dist/esm/modules/util/ScriptUtil.js +58 -0
  206. package/dist/esm/modules/util/ScriptUtil.js.map +1 -0
  207. package/dist/esm/modules/util/StringUtils.js +21 -0
  208. package/dist/esm/modules/util/StringUtils.js.map +1 -0
  209. package/dist/esm/modules/util/TestUtils.js +14 -0
  210. package/dist/esm/modules/util/TestUtils.js.map +1 -0
  211. package/dist/esm/modules/util/UsernameGenerator.js +436 -0
  212. package/dist/esm/modules/util/UsernameGenerator.js.map +1 -0
  213. package/dist/esm/modules/util/XMLUtils.js +135 -0
  214. package/dist/esm/modules/util/XMLUtils.js.map +1 -0
  215. package/dist/esm/modules/version/ComponentsVersions.js +52 -0
  216. package/dist/esm/modules/version/ComponentsVersions.js.map +1 -0
  217. package/dist/esm/modules/videosipgw/JitsiVideoSIPGWSession.js +137 -0
  218. package/dist/esm/modules/videosipgw/JitsiVideoSIPGWSession.js.map +1 -0
  219. package/dist/esm/modules/videosipgw/VideoSIPGW.js +102 -0
  220. package/dist/esm/modules/videosipgw/VideoSIPGW.js.map +1 -0
  221. package/dist/esm/modules/videosipgw/VideoSIPGWConstants.js +65 -0
  222. package/dist/esm/modules/videosipgw/VideoSIPGWConstants.js.map +1 -0
  223. package/dist/esm/modules/watchRTC/WatchRTC.js +69 -0
  224. package/dist/esm/modules/watchRTC/WatchRTC.js.map +1 -0
  225. package/dist/esm/modules/watchRTC/functions.js +31 -0
  226. package/dist/esm/modules/watchRTC/functions.js.map +1 -0
  227. package/dist/esm/modules/watchRTC/interfaces.js +2 -0
  228. package/dist/esm/modules/watchRTC/interfaces.js.map +1 -0
  229. package/dist/esm/modules/webaudio/AudioMixer.js +74 -0
  230. package/dist/esm/modules/webaudio/AudioMixer.js.map +1 -0
  231. package/dist/esm/modules/webaudio/WebAudioUtils.js +13 -0
  232. package/dist/esm/modules/webaudio/WebAudioUtils.js.map +1 -0
  233. package/dist/esm/modules/xmpp/AVModeration.js +156 -0
  234. package/dist/esm/modules/xmpp/AVModeration.js.map +1 -0
  235. package/dist/esm/modules/xmpp/BreakoutRooms.js +230 -0
  236. package/dist/esm/modules/xmpp/BreakoutRooms.js.map +1 -0
  237. package/dist/esm/modules/xmpp/Caps.js +223 -0
  238. package/dist/esm/modules/xmpp/Caps.js.map +1 -0
  239. package/dist/esm/modules/xmpp/ChatRoom.js +1877 -0
  240. package/dist/esm/modules/xmpp/ChatRoom.js.map +1 -0
  241. package/dist/esm/modules/xmpp/ConnectionPlugin.js +37 -0
  242. package/dist/esm/modules/xmpp/ConnectionPlugin.js.map +1 -0
  243. package/dist/esm/modules/xmpp/FileSharing.js +95 -0
  244. package/dist/esm/modules/xmpp/FileSharing.js.map +1 -0
  245. package/dist/esm/modules/xmpp/JingleHelperFunctions.js +168 -0
  246. package/dist/esm/modules/xmpp/JingleHelperFunctions.js.map +1 -0
  247. package/dist/esm/modules/xmpp/JingleSession.js +166 -0
  248. package/dist/esm/modules/xmpp/JingleSession.js.map +1 -0
  249. package/dist/esm/modules/xmpp/JingleSessionPC.js +1969 -0
  250. package/dist/esm/modules/xmpp/JingleSessionPC.js.map +1 -0
  251. package/dist/esm/modules/xmpp/JingleSessionState.js +23 -0
  252. package/dist/esm/modules/xmpp/JingleSessionState.js.map +1 -0
  253. package/dist/esm/modules/xmpp/Lobby.js +384 -0
  254. package/dist/esm/modules/xmpp/Lobby.js.map +1 -0
  255. package/dist/esm/modules/xmpp/MediaSessionEvents.js +12 -0
  256. package/dist/esm/modules/xmpp/MediaSessionEvents.js.map +1 -0
  257. package/dist/esm/modules/xmpp/MockClasses.js +77 -0
  258. package/dist/esm/modules/xmpp/MockClasses.js.map +1 -0
  259. package/dist/esm/modules/xmpp/Polls.js +87 -0
  260. package/dist/esm/modules/xmpp/Polls.js.map +1 -0
  261. package/dist/esm/modules/xmpp/ResumeTask.js +149 -0
  262. package/dist/esm/modules/xmpp/ResumeTask.js.map +1 -0
  263. package/dist/esm/modules/xmpp/RoomMetadata.js +96 -0
  264. package/dist/esm/modules/xmpp/RoomMetadata.js.map +1 -0
  265. package/dist/esm/modules/xmpp/SignalingLayerImpl.js +313 -0
  266. package/dist/esm/modules/xmpp/SignalingLayerImpl.js.map +1 -0
  267. package/dist/esm/modules/xmpp/StropheErrorHandler.js +53 -0
  268. package/dist/esm/modules/xmpp/StropheErrorHandler.js.map +1 -0
  269. package/dist/esm/modules/xmpp/StropheLastSuccess.js +52 -0
  270. package/dist/esm/modules/xmpp/StropheLastSuccess.js.map +1 -0
  271. package/dist/esm/modules/xmpp/XmppConnection.js +579 -0
  272. package/dist/esm/modules/xmpp/XmppConnection.js.map +1 -0
  273. package/dist/esm/modules/xmpp/moderator.js +524 -0
  274. package/dist/esm/modules/xmpp/moderator.js.map +1 -0
  275. package/dist/esm/modules/xmpp/sha1.js +165 -0
  276. package/dist/esm/modules/xmpp/sha1.js.map +1 -0
  277. package/dist/esm/modules/xmpp/strophe.disco.js +222 -0
  278. package/dist/esm/modules/xmpp/strophe.disco.js.map +1 -0
  279. package/dist/esm/modules/xmpp/strophe.emuc.js +206 -0
  280. package/dist/esm/modules/xmpp/strophe.emuc.js.map +1 -0
  281. package/dist/esm/modules/xmpp/strophe.jingle.js +404 -0
  282. package/dist/esm/modules/xmpp/strophe.jingle.js.map +1 -0
  283. package/dist/esm/modules/xmpp/strophe.logger.js +44 -0
  284. package/dist/esm/modules/xmpp/strophe.logger.js.map +1 -0
  285. package/dist/esm/modules/xmpp/strophe.ping.js +170 -0
  286. package/dist/esm/modules/xmpp/strophe.ping.js.map +1 -0
  287. package/dist/esm/modules/xmpp/strophe.rayo.js +117 -0
  288. package/dist/esm/modules/xmpp/strophe.rayo.js.map +1 -0
  289. package/dist/esm/modules/xmpp/strophe.stream-management.js +365 -0
  290. package/dist/esm/modules/xmpp/strophe.stream-management.js.map +1 -0
  291. package/dist/esm/modules/xmpp/strophe.util.js +116 -0
  292. package/dist/esm/modules/xmpp/strophe.util.js.map +1 -0
  293. package/dist/esm/modules/xmpp/xmpp.js +973 -0
  294. package/dist/esm/modules/xmpp/xmpp.js.map +1 -0
  295. package/dist/esm/service/RTC/BridgeVideoType.js +24 -0
  296. package/dist/esm/service/RTC/BridgeVideoType.js.map +1 -0
  297. package/dist/esm/service/RTC/CameraFacingMode.js +21 -0
  298. package/dist/esm/service/RTC/CameraFacingMode.js.map +1 -0
  299. package/dist/esm/service/RTC/CodecMimeType.js +36 -0
  300. package/dist/esm/service/RTC/CodecMimeType.js.map +1 -0
  301. package/dist/esm/service/RTC/MediaDirection.js +23 -0
  302. package/dist/esm/service/RTC/MediaDirection.js.map +1 -0
  303. package/dist/esm/service/RTC/MediaType.js +20 -0
  304. package/dist/esm/service/RTC/MediaType.js.map +1 -0
  305. package/dist/esm/service/RTC/RTCEvents.js +111 -0
  306. package/dist/esm/service/RTC/RTCEvents.js.map +1 -0
  307. package/dist/esm/service/RTC/ReceiverAudioSubscription.js +27 -0
  308. package/dist/esm/service/RTC/ReceiverAudioSubscription.js.map +1 -0
  309. package/dist/esm/service/RTC/Resolutions.js +56 -0
  310. package/dist/esm/service/RTC/Resolutions.js.map +1 -0
  311. package/dist/esm/service/RTC/SignalingEvents.js +42 -0
  312. package/dist/esm/service/RTC/SignalingEvents.js.map +1 -0
  313. package/dist/esm/service/RTC/SignalingLayer.js +153 -0
  314. package/dist/esm/service/RTC/SignalingLayer.js.map +1 -0
  315. package/dist/esm/service/RTC/StandardVideoQualitySettings.js +180 -0
  316. package/dist/esm/service/RTC/StandardVideoQualitySettings.js.map +1 -0
  317. package/dist/esm/service/RTC/VideoEncoderScalabilityMode.js +36 -0
  318. package/dist/esm/service/RTC/VideoEncoderScalabilityMode.js.map +1 -0
  319. package/dist/esm/service/RTC/VideoType.js +19 -0
  320. package/dist/esm/service/RTC/VideoType.js.map +1 -0
  321. package/dist/esm/service/authentication/AuthenticationEvents.js +13 -0
  322. package/dist/esm/service/authentication/AuthenticationEvents.js.map +1 -0
  323. package/dist/esm/service/connectivity/ConnectionQualityEvents.js +13 -0
  324. package/dist/esm/service/connectivity/ConnectionQualityEvents.js.map +1 -0
  325. package/dist/esm/service/connectivity/Constants.js +3 -0
  326. package/dist/esm/service/connectivity/Constants.js.map +1 -0
  327. package/dist/esm/service/e2eping/E2ePingEvents.js +8 -0
  328. package/dist/esm/service/e2eping/E2ePingEvents.js.map +1 -0
  329. package/dist/esm/service/statistics/AnalyticsEvents.js +521 -0
  330. package/dist/esm/service/statistics/AnalyticsEvents.js.map +1 -0
  331. package/dist/esm/service/statistics/Events.js +36 -0
  332. package/dist/esm/service/statistics/Events.js.map +1 -0
  333. package/dist/esm/service/statistics/constants.js +2 -0
  334. package/dist/esm/service/statistics/constants.js.map +1 -0
  335. package/dist/esm/service/xmpp/XMPPEvents.js +359 -0
  336. package/dist/esm/service/xmpp/XMPPEvents.js.map +1 -0
  337. package/dist/esm/service/xmpp/XMPPExtensioProtocols.js +64 -0
  338. package/dist/esm/service/xmpp/XMPPExtensioProtocols.js.map +1 -0
  339. package/dist/esm/test-setup-polyfill.js +34 -0
  340. package/dist/esm/test-setup-polyfill.js.map +1 -0
  341. package/dist/esm/tools/gen-version.js +15 -0
  342. package/dist/esm/tools/gen-version.js.map +1 -0
  343. package/dist/esm/version.js +3 -0
  344. package/dist/esm/version.js.map +1 -0
  345. package/dist/umd/lib-jitsi-meet.e2ee-worker.js +484 -0
  346. package/dist/umd/lib-jitsi-meet.min.js +3 -0
  347. package/dist/umd/lib-jitsi-meet.min.js.LICENSE.txt +18 -0
  348. package/dist/umd/lib-jitsi-meet.min.map +1 -0
  349. package/package.json +93 -0
  350. package/types/index.d.ts +16180 -0
@@ -0,0 +1,135 @@
1
+ import { getLogger } from '@jitsi/logger';
2
+ const logger = getLogger('util:XMLUtils');
3
+ /**
4
+ * Parses an XML string into a Document.
5
+ * @param xmlString - The XML string to parse.
6
+ * @returns Parsed XML Document or null if parsing fails.
7
+ */
8
+ export function parseXML(xmlString) {
9
+ if (!xmlString || typeof xmlString !== 'string') {
10
+ return null;
11
+ }
12
+ const parser = new DOMParser();
13
+ const doc = parser.parseFromString(xmlString, 'text/xml');
14
+ // Check for parser errors.
15
+ const parserError = findFirst(doc, 'parsererror');
16
+ if (parserError) {
17
+ logger.error('XML parsing error:', parserError.textContent || '');
18
+ // Return the document anyway for compatibility
19
+ // jQuery also returns a document with parser errors
20
+ }
21
+ return doc;
22
+ }
23
+ /**
24
+ * Finds all elements matching the CSS selector within the given element.
25
+ * @param element - The element or document to search within.
26
+ * @param selector - CSS selector string.
27
+ * @returns Array of matching elements.
28
+ */
29
+ export function findAll(element, selector) {
30
+ if (!element) {
31
+ return [];
32
+ }
33
+ try {
34
+ return Array.from(element.querySelectorAll(selector));
35
+ }
36
+ catch (error) {
37
+ logger.error('findAll error:', selector, error);
38
+ return [];
39
+ }
40
+ }
41
+ /**
42
+ * Gets the value of an attribute from an element.
43
+ * @param element - The element to get the attribute from.
44
+ * @param name - The attribute name.
45
+ * @returns The attribute value or null if not found.
46
+ */
47
+ export function getAttribute(element, name) {
48
+ if (!element || !name) {
49
+ return null;
50
+ }
51
+ return element.getAttribute(name);
52
+ }
53
+ /**
54
+ * Sets an attribute on an element.
55
+ * @param element - The element to set the attribute on.
56
+ * @param name - The attribute name.
57
+ * @param value - The attribute value.
58
+ */
59
+ export function setAttribute(element, name, value) {
60
+ if (!element || !name) {
61
+ return;
62
+ }
63
+ element.setAttribute(name, value);
64
+ }
65
+ /**
66
+ * Gets the text content of an element.
67
+ * @param element - The element to get text from.
68
+ * @returns The text content or empty string if element is null.
69
+ */
70
+ export function getText(element) {
71
+ if (!element) {
72
+ return '';
73
+ }
74
+ return element.textContent || '';
75
+ }
76
+ /**
77
+ * Sets the text content of an element.
78
+ * @param element - The element to set text on.
79
+ * @param text - The text content to set.
80
+ */
81
+ export function setText(element, text) {
82
+ if (!element) {
83
+ return;
84
+ }
85
+ element.textContent = text;
86
+ }
87
+ /**
88
+ * Gets the child elements of an element (excluding text nodes).
89
+ * @param element - The parent element.
90
+ * @returns Array of child elements.
91
+ */
92
+ export function getChildren(element) {
93
+ if (!element) {
94
+ return [];
95
+ }
96
+ return Array.from(element.children);
97
+ }
98
+ /**
99
+ * Checks if any elements match the selector within the given element.
100
+ * @param element - The element or document to search within.
101
+ * @param selector - CSS selector string.
102
+ * @returns True if at least one element matches the selector.
103
+ */
104
+ export function exists(element, selector) {
105
+ if (!element) {
106
+ return false;
107
+ }
108
+ try {
109
+ return element.querySelector(selector) !== null;
110
+ }
111
+ catch (error) {
112
+ logger.error('exists error:', selector, error);
113
+ return false;
114
+ }
115
+ }
116
+ /**
117
+ * Gets the first element matching the selector, or null if none found.
118
+ * This is a convenience function equivalent to findAll(...)[0] || null.
119
+ * @param element - The element or document to search within.
120
+ * @param selector - CSS selector string.
121
+ * @returns The first matching element or null.
122
+ */
123
+ export function findFirst(element, selector) {
124
+ if (!element) {
125
+ return null;
126
+ }
127
+ try {
128
+ return element.querySelector(selector);
129
+ }
130
+ catch (error) {
131
+ logger.error('findFirst error:', selector, error);
132
+ return null;
133
+ }
134
+ }
135
+ //# sourceMappingURL=XMLUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XMLUtils.js","sourceRoot":"","sources":["../../../../modules/util/XMLUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { getLogger } from '@jitsi/logger';
2
+ const logger = getLogger('misc:ComponentsVersions');
3
+ /**
4
+ * Discovers component versions in a conference.
5
+ */
6
+ export default class ComponentsVersions {
7
+ /**
8
+ * Creates new instance of <tt>ComponentsVersions</tt> which will be discovering
9
+ * the versions of conferencing system components in given
10
+ * <tt>JitsiConference</tt>.
11
+ * @param conference <tt>JitsiConference</tt> instance which will be used to
12
+ * listen for focus presence updates.
13
+ * @constructor
14
+ */
15
+ constructor(conference) {
16
+ this.versions = {};
17
+ this.conference = conference;
18
+ this.conference.addCommandListener('versions', this._processVersions.bind(this));
19
+ }
20
+ /**
21
+ * Processes versions information from presence.
22
+ *
23
+ * @param {*} versions - The versions element.
24
+ * @param {*} mucJid - MUC JID for the sender.
25
+ * @returns {void}
26
+ */
27
+ _processVersions(versions, _, mucJid) {
28
+ if (!this.conference.isFocus(mucJid)) {
29
+ logger.warn(`Received versions not from the focus user: ${versions}`, mucJid);
30
+ return;
31
+ }
32
+ versions.children.forEach(component => {
33
+ const name = component.attributes.name;
34
+ const version = component.value;
35
+ if (this.versions[name] !== version) {
36
+ this.versions[name] = version;
37
+ logger.info(`Got ${name} version: ${version}`);
38
+ }
39
+ });
40
+ }
41
+ /**
42
+ * Obtains the version of conferencing system component.
43
+ * @param componentName the name of the component for which we want to obtain
44
+ * the version.
45
+ * @returns {String} which describes the version of the component identified by
46
+ * given <tt>componentName</tt> or <tt>undefined</tt> if not found.
47
+ */
48
+ getComponentVersion(componentName) {
49
+ return this.versions[componentName];
50
+ }
51
+ }
52
+ //# sourceMappingURL=ComponentsVersions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentsVersions.js","sourceRoot":"","sources":["../../../../modules/version/ComponentsVersions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,MAAM,GAAG,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAInC;;;;;;;OAOG;IACH,YAAY,UAAU;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrF,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CACP,8CAA8C,QAAQ,EAAE,EACxD,MAAM,CAAC,CAAC;YAEZ,OAAO;QACX,CAAC;QAED,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAClC,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;YACvC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;YAEhC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,OAAO,EAAE,CAAC,CAAC;YACnD,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,aAAa;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;CACJ"}
@@ -0,0 +1,137 @@
1
+ import { getLogger } from '@jitsi/logger';
2
+ import { $iq } from 'strophe.js';
3
+ import Listenable from '../util/Listenable';
4
+ import { handleStropheError } from '../xmpp/StropheErrorHandler';
5
+ import * as VideoSIPGWConstants from './VideoSIPGWConstants';
6
+ const logger = getLogger('videosipgw:JitsiVideoSIPGWSession');
7
+ /**
8
+ * The event name for current sip video session state changed.
9
+ * @type {string} event name for sip video session state changed.
10
+ */
11
+ const STATE_CHANGED = 'STATE_CHANGED';
12
+ /**
13
+ * Jitsi video SIP GW session. Holding its state and able to start/stop it.
14
+ * When session is in OFF or FAILED stated it cannot be used anymore.
15
+ */
16
+ export default class JitsiVideoSIPGWSession extends Listenable {
17
+ /**
18
+ * Creates new session with the desired sip address and display name.
19
+ *
20
+ * @param {string} sipAddress - The sip address to use when
21
+ * starting the session.
22
+ * @param {string} displayName - The display name to use for
23
+ * that participant.
24
+ * @param {ChatRoom} chatRoom - The chat room this session is bound to.
25
+ */
26
+ constructor(sipAddress, displayName, chatRoom) {
27
+ super();
28
+ this.sipAddress = sipAddress;
29
+ this.displayName = displayName;
30
+ this.chatRoom = chatRoom;
31
+ /*
32
+ * The initial state is undefined. Initial state cannot be STATE_OFF,
33
+ * the session enters this state when it was in STATE_ON and was stopped
34
+ * and such session cannot be used anymore.
35
+ *
36
+ * @type {VideoSIPGWConstants|undefined}
37
+ */
38
+ this.state = undefined;
39
+ }
40
+ /**
41
+ * Sends a jibri command using an iq.
42
+ *
43
+ * @private
44
+ * @param {string} action - The action to send ('start' or 'stop').
45
+ */
46
+ _sendJibriIQ(action) {
47
+ const attributes = {
48
+ 'action': action,
49
+ 'displayname': this.displayName,
50
+ 'sipaddress': this.sipAddress,
51
+ 'xmlns': 'http://jitsi.org/protocol/jibri'
52
+ };
53
+ const iq = $iq({
54
+ to: this.chatRoom.focusMucJid,
55
+ type: 'set'
56
+ })
57
+ .c('jibri', attributes)
58
+ .up();
59
+ logger.debug(`${action} video SIP GW session`, iq.nodeTree);
60
+ this.chatRoom.connection.sendIQ(iq, () => { }, // eslint-disable-line @typescript-eslint/no-empty-function
61
+ (error) => {
62
+ handleStropheError(error, {
63
+ operation: `${action} video SIP GW session`,
64
+ roomJid: this.chatRoom.roomjid,
65
+ sipAddress: this.sipAddress,
66
+ userJid: this.chatRoom.connection.jid
67
+ });
68
+ this.setState(VideoSIPGWConstants.STATE_FAILED);
69
+ }, undefined);
70
+ }
71
+ /**
72
+ * Stops the current session.
73
+ */
74
+ stop() {
75
+ if (this.state === VideoSIPGWConstants.STATE_OFF
76
+ || this.state === VideoSIPGWConstants.STATE_FAILED) {
77
+ logger.warn('Video SIP GW session already stopped or failed!');
78
+ return;
79
+ }
80
+ this._sendJibriIQ('stop');
81
+ }
82
+ /**
83
+ * Starts a new session. Sends an iq to the focus.
84
+ */
85
+ start() {
86
+ // if state is off, this session was active for some reason
87
+ // and we should create new one, rather than reusing it
88
+ if (this.state === VideoSIPGWConstants.STATE_ON
89
+ || this.state === VideoSIPGWConstants.STATE_OFF
90
+ || this.state === VideoSIPGWConstants.STATE_PENDING
91
+ || this.state === VideoSIPGWConstants.STATE_RETRYING) {
92
+ logger.warn('Video SIP GW session already started!');
93
+ return;
94
+ }
95
+ this._sendJibriIQ('start');
96
+ }
97
+ /**
98
+ * Changes the state of this session.
99
+ *
100
+ * @param {string} newState - The new {VideoSIPGWConstants} state to set.
101
+ * @param {string} [optional] failureReason - The reason why a failure state
102
+ * was entered.
103
+ * @returns {void}
104
+ */
105
+ setState(newState, failureReason) {
106
+ if (newState === this.state) {
107
+ return;
108
+ }
109
+ const oldState = this.state;
110
+ this.state = newState;
111
+ this.eventEmitter.emit(STATE_CHANGED, {
112
+ address: this.sipAddress,
113
+ displayName: this.displayName,
114
+ failureReason,
115
+ newState: this.state,
116
+ oldState
117
+ });
118
+ }
119
+ /**
120
+ * Subscribes the passed listener to the event for state change of this
121
+ * session.
122
+ *
123
+ * @param {EventListener} listener - The function that will receive the event.
124
+ */
125
+ addStateListener(listener) {
126
+ this.addListener(STATE_CHANGED, listener);
127
+ }
128
+ /**
129
+ * Unsubscribes the passed handler.
130
+ *
131
+ * @param {EventListener} listener - The function to be removed.
132
+ */
133
+ removeStateListener(listener) {
134
+ this.removeListener(STATE_CHANGED, listener);
135
+ }
136
+ }
137
+ //# sourceMappingURL=JitsiVideoSIPGWSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JitsiVideoSIPGWSession.js","sourceRoot":"","sources":["../../../../modules/videosipgw/JitsiVideoSIPGWSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import { getLogger } from '@jitsi/logger';
2
+ const logger = getLogger('videosipgw:VideoSIPGW');
3
+ import { XMPPEvents } from '../../service/xmpp/XMPPEvents';
4
+ import JitsiVideoSIPGWSession from './JitsiVideoSIPGWSession';
5
+ import * as Constants from './VideoSIPGWConstants';
6
+ /**
7
+ * Main video SIP GW handler. Stores references of all created sessions.
8
+ */
9
+ export default class VideoSIPGW {
10
+ /**
11
+ * Creates new handler.
12
+ *
13
+ * @param {ChatRoom} chatRoom - Tha chat room to handle.
14
+ */
15
+ constructor(chatRoom) {
16
+ this.chatRoom = chatRoom;
17
+ this.eventEmitter = chatRoom.eventEmitter;
18
+ logger.debug('creating VideoSIPGW');
19
+ this.sessions = {};
20
+ this.sessionStateChangeListener = this.sessionStateChanged.bind(this);
21
+ // VideoSIPGW, JitsiConference and ChatRoom are not reusable and no
22
+ // more than one VideoSIPGW can be created per JitsiConference,
23
+ // so we don't bother to cleanup
24
+ chatRoom.addPresenceListener('jibri-sip-call-state', this.handleJibriSIPState.bind(this));
25
+ }
26
+ /**
27
+ * Handles presence nodes with name: jibri-sip-call-state.
28
+ *
29
+ * @param {Object} node the presence node Object to handle.
30
+ * Object representing part of the presence received over xmpp.
31
+ */
32
+ handleJibriSIPState(node) {
33
+ const attributes = node.attributes;
34
+ if (!attributes) {
35
+ return;
36
+ }
37
+ logger.debug('Handle video sip gw state : ', attributes);
38
+ const newState = attributes.state;
39
+ if (newState === this.state) {
40
+ return;
41
+ }
42
+ switch (newState) {
43
+ case Constants.STATE_ON:
44
+ case Constants.STATE_OFF:
45
+ case Constants.STATE_PENDING:
46
+ case Constants.STATE_RETRYING:
47
+ case Constants.STATE_FAILED: {
48
+ const address = attributes.sipaddress;
49
+ if (!address) {
50
+ return;
51
+ }
52
+ // find the corresponding session and set its state
53
+ const session = this.sessions[address];
54
+ if (session) {
55
+ session.setState(newState, attributes.failure_reason);
56
+ }
57
+ else {
58
+ logger.warn('Video SIP GW session not found:', address);
59
+ }
60
+ }
61
+ }
62
+ }
63
+ /**
64
+ * Creates new session and stores its reference if it does not exist or
65
+ * returns an error otherwise.
66
+ *
67
+ * @param {string} sipAddress - The sip address to use.
68
+ * @param {string} displayName - The display name to use.
69
+ * @returns {JitsiVideoSIPGWSession|Error}
70
+ */
71
+ createVideoSIPGWSession(sipAddress, displayName) {
72
+ if (this.sessions[sipAddress]) {
73
+ logger.warn('There was already a Video SIP GW session for address', sipAddress);
74
+ return new Error(Constants.ERROR_SESSION_EXISTS);
75
+ }
76
+ const session = new JitsiVideoSIPGWSession(sipAddress, displayName, this.chatRoom);
77
+ session.addStateListener(this.sessionStateChangeListener);
78
+ this.sessions[sipAddress] = session;
79
+ return session;
80
+ }
81
+ /**
82
+ * Listener for session state changed. When a session goes to off or failed
83
+ * we delete its reference.
84
+ *
85
+ * @param {options} event - { address, oldState, newState, displayName }
86
+ */
87
+ sessionStateChanged(event) {
88
+ const address = event.address;
89
+ if (event.newState === Constants.STATE_OFF
90
+ || event.newState === Constants.STATE_FAILED) {
91
+ const session = this.sessions[address];
92
+ if (!session) {
93
+ logger.error('Missing Video SIP GW session with address:', address);
94
+ return;
95
+ }
96
+ session.removeStateListener(this.sessionStateChangeListener);
97
+ delete this.sessions[address];
98
+ }
99
+ this.eventEmitter.emit(XMPPEvents.VIDEO_SIP_GW_SESSION_STATE_CHANGED, event);
100
+ }
101
+ }
102
+ //# sourceMappingURL=VideoSIPGW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoSIPGW.js","sourceRoot":"","sources":["../../../../modules/videosipgw/VideoSIPGW.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ export var VideoSIPGWStatusConstants;
2
+ (function (VideoSIPGWStatusConstants) {
3
+ /**
4
+ * Status that video SIP GW service is available.
5
+ */
6
+ VideoSIPGWStatusConstants["STATUS_AVAILABLE"] = "available";
7
+ /**
8
+ * Status that video SIP GW service is available but there are no free nodes
9
+ * at the moment to serve new requests.
10
+ */
11
+ VideoSIPGWStatusConstants["STATUS_BUSY"] = "busy";
12
+ /**
13
+ * Status that video SIP GW service is not available.
14
+ */
15
+ VideoSIPGWStatusConstants["STATUS_UNDEFINED"] = "undefined";
16
+ })(VideoSIPGWStatusConstants || (VideoSIPGWStatusConstants = {}));
17
+ export var VideoSIPGWStateConstants;
18
+ (function (VideoSIPGWStateConstants) {
19
+ /**
20
+ * Video SIP GW session state, tried to start but it failed.
21
+ */
22
+ VideoSIPGWStateConstants["STATE_FAILED"] = "failed";
23
+ /**
24
+ * Video SIP GW session state, currently stopped and not running.
25
+ */
26
+ VideoSIPGWStateConstants["STATE_OFF"] = "off";
27
+ /**
28
+ * Video SIP GW session state, currently running.
29
+ */
30
+ VideoSIPGWStateConstants["STATE_ON"] = "on";
31
+ /**
32
+ * Video SIP GW session state, currently is starting.
33
+ */
34
+ VideoSIPGWStateConstants["STATE_PENDING"] = "pending";
35
+ /**
36
+ * Video SIP GW session state, has observed some issues and is retrying at the
37
+ * moment.
38
+ */
39
+ VideoSIPGWStateConstants["STATE_RETRYING"] = "retrying";
40
+ })(VideoSIPGWStateConstants || (VideoSIPGWStateConstants = {}));
41
+ export var VideoSIPGWErrorConstants;
42
+ (function (VideoSIPGWErrorConstants) {
43
+ /**
44
+ * Error on trying to create video SIP GW session in conference where
45
+ * there is no room connection (hasn't joined or has left the room).
46
+ */
47
+ VideoSIPGWErrorConstants["ERROR_NO_CONNECTION"] = "error_no_connection";
48
+ /**
49
+ * Error on trying to create video SIP GW session with address for which
50
+ * there is an already created session.
51
+ */
52
+ VideoSIPGWErrorConstants["ERROR_SESSION_EXISTS"] = "error_session_already_exists";
53
+ })(VideoSIPGWErrorConstants || (VideoSIPGWErrorConstants = {}));
54
+ // exported for backward compatibility
55
+ export const STATUS_AVAILABLE = VideoSIPGWStatusConstants.STATUS_AVAILABLE;
56
+ export const STATUS_UNDEFINED = VideoSIPGWStatusConstants.STATUS_UNDEFINED;
57
+ export const STATUS_BUSY = VideoSIPGWStatusConstants.STATUS_BUSY;
58
+ export const STATE_ON = VideoSIPGWStateConstants.STATE_ON;
59
+ export const STATE_OFF = VideoSIPGWStateConstants.STATE_OFF;
60
+ export const STATE_PENDING = VideoSIPGWStateConstants.STATE_PENDING;
61
+ export const STATE_RETRYING = VideoSIPGWStateConstants.STATE_RETRYING;
62
+ export const STATE_FAILED = VideoSIPGWStateConstants.STATE_FAILED;
63
+ export const ERROR_NO_CONNECTION = VideoSIPGWErrorConstants.ERROR_NO_CONNECTION;
64
+ export const ERROR_SESSION_EXISTS = VideoSIPGWErrorConstants.ERROR_SESSION_EXISTS;
65
+ //# sourceMappingURL=VideoSIPGWConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoSIPGWConstants.js","sourceRoot":"","sources":["../../../../modules/videosipgw/VideoSIPGWConstants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,yBAiBX;AAjBD,WAAY,yBAAyB;IAEjC;;OAEG;IACH,2DAA8B,CAAA;IAE9B;;;OAGG;IACH,iDAAoB,CAAA;IAEpB;;OAEG;IACH,2DAA8B,CAAA;AAClC,CAAC,EAjBW,yBAAyB,KAAzB,yBAAyB,QAiBpC;AAED,MAAM,CAAN,IAAY,wBA2BX;AA3BD,WAAY,wBAAwB;IAEhC;;OAEG;IACH,mDAAuB,CAAA;IAEvB;;OAEG;IACH,6CAAiB,CAAA;IAEjB;;OAEG;IACH,2CAAe,CAAA;IAEf;;OAEG;IACH,qDAAyB,CAAA;IAEzB;;;OAGG;IACH,uDAA2B,CAAA;AAC/B,CAAC,EA3BW,wBAAwB,KAAxB,wBAAwB,QA2BnC;AAED,MAAM,CAAN,IAAY,wBAaX;AAbD,WAAY,wBAAwB;IAEhC;;;OAGG;IACH,uEAA2C,CAAA;IAE3C;;;OAGG;IACH,iFAAqD,CAAA;AACzD,CAAC,EAbW,wBAAwB,KAAxB,wBAAwB,QAanC;AAED,sCAAsC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,gBAAgB,CAAC;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,gBAAgB,CAAC;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAG,yBAAyB,CAAC,WAAW,CAAC;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,CAAC;AAC1D,MAAM,CAAC,MAAM,SAAS,GAAG,wBAAwB,CAAC,SAAS,CAAC;AAC5D,MAAM,CAAC,MAAM,aAAa,GAAG,wBAAwB,CAAC,aAAa,CAAC;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC,cAAc,CAAC;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC,YAAY,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,mBAAmB,CAAC;AAChF,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,oBAAoB,CAAC"}
@@ -0,0 +1,69 @@
1
+ import Logger from '@jitsi/logger';
2
+ import watchRTC from '@testrtc/watchrtc-sdk';
3
+ import browser from '../browser';
4
+ import { isAnalyticsEnabled, isWatchRTCEnabled } from './functions';
5
+ const logger = Logger.getLogger('analytics:WatchRTC');
6
+ /**
7
+ * Class that controls the watchRTC flow, because it overwrites and proxies global function it should only be
8
+ * initialized once.
9
+ */
10
+ class WatchRTCHandler {
11
+ /**
12
+ * Initialize watchRTC, it overwrites GUM and PeerConnection global functions and adds a proxy over them
13
+ * used to capture stats.
14
+ *
15
+ * @param {Object} options - Init options.
16
+ * @returns {void}
17
+ */
18
+ init(options) {
19
+ if (isWatchRTCEnabled(options)) {
20
+ // @ts-ignore
21
+ if (browser.isReactNative()) {
22
+ logger.warn('Cannot initialize WatchRTC in a react native environment!');
23
+ return;
24
+ }
25
+ if (!isAnalyticsEnabled(options)) {
26
+ logger.error('Cannot initialize WatchRTC when analytics or third party requests are disabled.');
27
+ return;
28
+ }
29
+ try {
30
+ if (options?.watchRTCConfigParams?.rtcApiKey) {
31
+ watchRTC.init({
32
+ rtcApiKey: options.watchRTCConfigParams.rtcApiKey,
33
+ });
34
+ this.options = options.watchRTCConfigParams;
35
+ logger.info('WatchRTC initialized.');
36
+ }
37
+ else {
38
+ logger.error('WatchRTC is enabled but missing API key.');
39
+ }
40
+ }
41
+ catch (error) {
42
+ logger.error('Failed to initialize WatchRTC: ', error);
43
+ }
44
+ }
45
+ }
46
+ /**
47
+ * Begin watchRTC session considering roomName and userName if already not available
48
+ *
49
+ * @param {string} roomName - The room name we are currently in.
50
+ * @param {string} userName - The user name. This value is obtained from
51
+ * JitsiConference.prototype.myUserId
52
+ * @returns {void}
53
+ */
54
+ start(roomName, userName) {
55
+ try {
56
+ if (this.options) {
57
+ this.options.rtcRoomId = this.options.rtcRoomId ? this.options.rtcRoomId : roomName;
58
+ this.options.rtcPeerId = this.options.rtcPeerId ? this.options.rtcPeerId : userName;
59
+ watchRTC.setConfig(this.options);
60
+ logger.info('WatchRTC setConfig.');
61
+ }
62
+ }
63
+ catch (error) {
64
+ logger.error('Failed to start WatchRTC session: ', error);
65
+ }
66
+ }
67
+ }
68
+ export default new WatchRTCHandler();
69
+ //# sourceMappingURL=WatchRTC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WatchRTC.js","sourceRoot":"","sources":["../../../../modules/watchRTC/WatchRTC.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAE7C,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGpE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;AAEtD;;;GAGG;AACH,MAAM,eAAe;IAGjB;;;;;;OAMG;IACH,IAAI,CAAC,OAAY;QACb,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAE7B,aAAa;YACb,IAAI,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;gBAEzE,OAAO;YACX,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;gBAEhG,OAAO;YACX,CAAC;YAED,IAAI,CAAC;gBACD,IAAI,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC;oBAC3C,QAAQ,CAAC,IAAI,CAAC;wBACV,SAAS,EAAE,OAAO,CAAC,oBAAoB,CAAC,SAAS;qBACpD,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;oBAC5C,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAgB,EAAE,QAAgB;QACpC,IAAI,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACpF,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACpF,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC;CACJ;AAED,eAAe,IAAI,eAAe,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Checks whether analytics is enabled or not.
3
+ *
4
+ * @param {Object} options - Init options.
5
+ * @returns {boolean}
6
+ */
7
+ export function isAnalyticsEnabled(options) {
8
+ const { analytics, disableThirdPartyRequests } = options;
9
+ return !(analytics?.disabled || disableThirdPartyRequests);
10
+ }
11
+ /**
12
+ * Checks whether rtcstats is enabled or not.
13
+ *
14
+ * @param {Object} options - Init options.
15
+ * @returns {boolean}
16
+ */
17
+ export function isRtcstatsEnabled(options) {
18
+ const { analytics } = options;
19
+ return analytics?.rtcstatsEnabled ?? false;
20
+ }
21
+ /**
22
+ * Checks whether watchrtc is enabled or not.
23
+ *
24
+ * @param {Object} options - Init options.
25
+ * @returns {boolean}
26
+ */
27
+ export function isWatchRTCEnabled(options) {
28
+ const { analytics } = options;
29
+ return analytics?.watchRTCEnabled ?? false;
30
+ }
31
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../modules/watchRTC/functions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAO;IACtC,MAAM,EAAE,SAAS,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC;IAEzD,OAAO,CAAC,CAAC,SAAS,EAAE,QAAQ,IAAI,yBAAyB,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAO;IACrC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,OAAO,SAAS,EAAE,eAAe,IAAI,KAAK,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAO;IACrC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,OAAO,SAAS,EAAE,eAAe,IAAI,KAAK,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../modules/watchRTC/interfaces.ts"],"names":[],"mappings":""}