@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 @@
1
+ {"version":3,"file":"SampleSdpStrings.js","sourceRoot":"","sources":["../../../../modules/sdp/SampleSdpStrings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,196 @@
1
+ import * as transform from 'sdp-transform';
2
+ import { MediaDirection } from '../../service/RTC/MediaDirection';
3
+ import { MediaType } from '../../service/RTC/MediaType';
4
+ import { SIM_LAYERS, SSRC_GROUP_SEMANTICS } from '../../service/RTC/StandardVideoQualitySettings';
5
+ /**
6
+ * This class handles SDP munging for enabling simulcast for local video streams in Unified plan. A set of random SSRCs
7
+ * are generated for the higher layer streams and they are cached for a given mid. The cached SSRCs are then reused on
8
+ * the subsequent iterations while munging the local description. This class also handles imploding of the simulcast
9
+ * SSRCs for remote endpoints into the primary FID group in remote description since Jicofo signals all SSRCs relevant
10
+ * to a given endpoint.
11
+ */
12
+ export default class SdpSimulcast {
13
+ /**
14
+ * Creates a new instance.
15
+ *
16
+ * @param options
17
+ */
18
+ constructor() {
19
+ this._ssrcCache = new Map();
20
+ this._numOfLayers = SIM_LAYERS.length;
21
+ }
22
+ /**
23
+ * Updates the given media description using the SSRCs that were cached for the mid associated
24
+ * with the media description and returns the modified media description.
25
+ *
26
+ * @param mLine
27
+ * @returns
28
+ */
29
+ _fillSsrcsFromCache(mLine) {
30
+ const mid = mLine.mid;
31
+ const cachedSsrcs = this._ssrcCache.get(mid);
32
+ const newSsrcs = this._parseSimLayers(mLine);
33
+ const newMsid = this._getSsrcAttribute(mLine, newSsrcs[0], 'msid');
34
+ const newCname = this._getSsrcAttribute(mLine, newSsrcs[0], 'cname');
35
+ mLine.ssrcs = [];
36
+ mLine.ssrcGroups = [];
37
+ for (const ssrc of cachedSsrcs) {
38
+ mLine.ssrcs.push({
39
+ attribute: 'msid',
40
+ id: ssrc,
41
+ value: newMsid
42
+ });
43
+ mLine.ssrcs.push({
44
+ attribute: 'cname',
45
+ id: ssrc,
46
+ value: newCname
47
+ });
48
+ }
49
+ mLine.ssrcGroups.push({
50
+ semantics: SSRC_GROUP_SEMANTICS.SIM,
51
+ ssrcs: cachedSsrcs.join(' ')
52
+ });
53
+ return mLine;
54
+ }
55
+ /**
56
+ * Generates a new set of SSRCs for the higher simulcast layers/streams and adds the attributes and SIM group to
57
+ * the given media description and returns the modified media description.
58
+ *
59
+ * @param mLine
60
+ * @param primarySsrc
61
+ * @returns
62
+ */
63
+ _generateNewSsrcsForSimulcast(mLine, primarySsrc) {
64
+ const cname = this._getSsrcAttribute(mLine, primarySsrc, 'cname');
65
+ let msid = this._getSsrcAttribute(mLine, primarySsrc, 'msid');
66
+ // In Unified-plan mode, the a=ssrc lines with the msid attribute are not present (only cname attributes are
67
+ // present) in the answers that Chrome and Safari generate for an offer received from Jicofo. Generate these
68
+ // a=ssrc lines using the msid values from the a=msid line.
69
+ if (!msid) {
70
+ msid = mLine.msid;
71
+ const primarySsrcs = mLine.ssrcs;
72
+ primarySsrcs.forEach(ssrc => {
73
+ mLine.ssrcs.push({
74
+ attribute: 'msid',
75
+ id: ssrc.id,
76
+ value: msid
77
+ });
78
+ });
79
+ }
80
+ // Generate SIM layers.
81
+ const simSsrcs = [];
82
+ for (let i = 0; i < this._numOfLayers - 1; ++i) {
83
+ const simSsrc = this._generateSsrc();
84
+ mLine.ssrcs.push({
85
+ attribute: 'cname',
86
+ id: simSsrc,
87
+ value: cname
88
+ });
89
+ mLine.ssrcs.push({
90
+ attribute: 'msid',
91
+ id: simSsrc,
92
+ value: msid
93
+ });
94
+ simSsrcs.push(simSsrc);
95
+ }
96
+ mLine.ssrcGroups = mLine.ssrcGroups || [];
97
+ mLine.ssrcGroups.push({
98
+ semantics: SSRC_GROUP_SEMANTICS.SIM,
99
+ ssrcs: `${primarySsrc} ${simSsrcs.join(' ')}`
100
+ });
101
+ return mLine;
102
+ }
103
+ /**
104
+ * Returns a random number to be used for the SSRC.
105
+ *
106
+ * @returns
107
+ */
108
+ _generateSsrc() {
109
+ const max = 0xffffffff;
110
+ return Math.floor(Math.random() * max);
111
+ }
112
+ /**
113
+ * Returns the requested attribute value for a SSRC from a given media description.
114
+ *
115
+ * @param mLine
116
+ * @param ssrc
117
+ * @param attributeName
118
+ * @returns
119
+ */
120
+ _getSsrcAttribute(mLine, ssrc, attributeName) {
121
+ return mLine.ssrcs?.find(ssrcInfo => Number(ssrcInfo.id) === ssrc
122
+ && ssrcInfo.attribute === attributeName)?.value;
123
+ }
124
+ /**
125
+ * Returns an array of all the primary SSRCs in the SIM group for a given media description.
126
+ *
127
+ * @param mLine
128
+ * @returns
129
+ */
130
+ _parseSimLayers(mLine) {
131
+ const simGroup = mLine.ssrcGroups?.find(group => group.semantics === SSRC_GROUP_SEMANTICS.SIM);
132
+ if (simGroup) {
133
+ return simGroup.ssrcs.split(' ').map(ssrc => Number(ssrc));
134
+ }
135
+ if (mLine.ssrcs?.length) {
136
+ return [Number(mLine.ssrcs[0].id)];
137
+ }
138
+ return null;
139
+ }
140
+ /**
141
+ * Munges the given media description to enable simulcast for the video media sections that are in either have
142
+ * SENDRECV or SENDONLY as the media direction thereby ignoring all the RECVONLY transceivers created for remote
143
+ * endpoints.
144
+ * NOTE: This needs to be called only when simulcast is enabled.
145
+ *
146
+ * @param description
147
+ * @returns
148
+ */
149
+ mungeLocalDescription(description) {
150
+ if (!description?.sdp) {
151
+ return description;
152
+ }
153
+ const session = transform.parse(description.sdp);
154
+ for (let media of session.media) {
155
+ // Ignore recvonly and inactive transceivers created for remote sources.
156
+ if (media.direction === MediaDirection.RECVONLY || media.direction === MediaDirection.INACTIVE) {
157
+ continue;
158
+ }
159
+ // Ignore audio m-lines.
160
+ if (media.type !== MediaType.VIDEO) {
161
+ continue;
162
+ }
163
+ const mid = media.mid;
164
+ const numSsrcs = new Set(media.ssrcs?.map(ssrcInfo => ssrcInfo.id));
165
+ const numGroups = media.ssrcGroups?.length ?? 0;
166
+ let primarySsrc;
167
+ // Do not munge if the description has no ssrcs or if simulcast is already enabled.
168
+ if (numSsrcs.size === 0 || numSsrcs.size > 2 || (numSsrcs.size === 2 && numGroups === 0)) {
169
+ continue;
170
+ }
171
+ if (numSsrcs.size === 1) {
172
+ primarySsrc = Number(media.ssrcs[0]?.id);
173
+ }
174
+ else {
175
+ const fidGroup = media.ssrcGroups.find(group => group.semantics === SSRC_GROUP_SEMANTICS.FID);
176
+ if (fidGroup) {
177
+ primarySsrc = Number(fidGroup.ssrcs.split(' ')[0]);
178
+ }
179
+ }
180
+ if (this._ssrcCache.has(mid)) {
181
+ media = this._fillSsrcsFromCache(media);
182
+ }
183
+ else {
184
+ media = this._generateNewSsrcsForSimulcast(media, primarySsrc);
185
+ const simulcastSsrcs = this._parseSimLayers(media);
186
+ // Update the SSRCs in the cache so that they can re-used for the same mid again.
187
+ this._ssrcCache.set(mid, simulcastSsrcs);
188
+ }
189
+ }
190
+ return new RTCSessionDescription({
191
+ sdp: transform.write(session),
192
+ type: description.type
193
+ });
194
+ }
195
+ }
196
+ //# sourceMappingURL=SdpSimulcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdpSimulcast.js","sourceRoot":"","sources":["../../../../modules/sdp/SdpSimulcast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,337 @@
1
+ import transform from 'sdp-transform';
2
+ import { SSRC_GROUP_SEMANTICS } from '../../service/RTC/StandardVideoQualitySettings';
3
+ /**
4
+ * Parses the primary SSRC of given SSRC group.
5
+ * @param {object} group the SSRC group object as defined by the 'sdp-transform'
6
+ * @return {Number} the primary SSRC number
7
+ */
8
+ export function parsePrimarySSRC(group) {
9
+ return parseInt(group.ssrcs.split(' ')[0], 10);
10
+ }
11
+ /**
12
+ * Parses the secondary SSRC of given SSRC group.
13
+ * @param {object} group the SSRC group object as defined by the 'sdp-transform'
14
+ * @return {Number} the secondary SSRC number
15
+ */
16
+ export function parseSecondarySSRC(group) {
17
+ return parseInt(group.ssrcs.split(' ')[1], 10);
18
+ }
19
+ /**
20
+ * Tells how many distinct SSRCs are contained in given media line.
21
+ * @param {Object} MediaDescription the media line object as defined by 'sdp-transform' lib
22
+ * @return {number}
23
+ */
24
+ function _getSSRCCount(mLine) {
25
+ if (!mLine.ssrcs) {
26
+ return 0;
27
+ }
28
+ return mLine.ssrcs
29
+ .map(ssrcInfo => ssrcInfo.id)
30
+ .filter((ssrc, index, array) => array.indexOf(ssrc) === index)
31
+ .length;
32
+ }
33
+ /**
34
+ * A wrapper around 'sdp-transform' media description object which provides
35
+ * utility methods for common SDP/SSRC related operations.
36
+ */
37
+ export class MLineWrap {
38
+ /**
39
+ * Creates new <tt>MLineWrap</t>>
40
+ * @param {Object} _mLine the media line object as defined by 'sdp-transform'
41
+ * lib.
42
+ */
43
+ constructor(mLine) {
44
+ if (!mLine) {
45
+ throw new Error('mLine is undefined');
46
+ }
47
+ this._mLine = mLine;
48
+ }
49
+ /**
50
+ * Getter for the mLine's "ssrcs" array. If the array was undefined an empty
51
+ * one will be preassigned.
52
+ *
53
+ * @return {Array<Object>} an array of 'sdp-transform' SSRC attributes
54
+ * objects.
55
+ */
56
+ get ssrcs() {
57
+ if (!this._mLine.ssrcs) {
58
+ this._mLine.ssrcs = [];
59
+ }
60
+ return this._mLine.ssrcs;
61
+ }
62
+ /**
63
+ * Setter for the mLine's "ssrcs" array.
64
+ *
65
+ * @param {Array<Object>} ssrcs an array of 'sdp-transform' SSRC attributes
66
+ * objects.
67
+ */
68
+ set ssrcs(ssrcs) {
69
+ this._mLine.ssrcs = ssrcs;
70
+ }
71
+ /**
72
+ * Returns the direction of the underlying media description.
73
+ * @return {Optional<string>} the media direction name as defined in the SDP.
74
+ */
75
+ get direction() {
76
+ return this._mLine.direction;
77
+ }
78
+ /**
79
+ * Modifies the direction of the underlying media description.
80
+ * @param {Optional<string>} direction the new direction to be set
81
+ */
82
+ set direction(direction) {
83
+ this._mLine.direction = direction;
84
+ }
85
+ /**
86
+ * Exposes the SSRC group array of the underlying media description object.
87
+ * @return {MediaDescription['ssrcGroups']}
88
+ */
89
+ get ssrcGroups() {
90
+ if (!this._mLine.ssrcGroups) {
91
+ this._mLine.ssrcGroups = [];
92
+ }
93
+ return this._mLine.ssrcGroups;
94
+ }
95
+ /**
96
+ * Modifies the SSRC groups array of the underlying media description
97
+ * object.
98
+ * @param {MediaDescription['ssrcGroups']} ssrcGroups
99
+ */
100
+ set ssrcGroups(ssrcGroups) {
101
+ this._mLine.ssrcGroups = ssrcGroups;
102
+ }
103
+ /**
104
+ * Obtains value from SSRC attribute.
105
+ * @param {number} ssrcNumber the SSRC number for which attribute is to be
106
+ * found
107
+ * @param {string} attrName the name of the SSRC attribute to be found.
108
+ * @return {Optional<string>} the value of SSRC attribute or
109
+ * <tt>undefined</tt> if no such attribute exists.
110
+ */
111
+ getSSRCAttrValue(ssrcNumber, attrName) {
112
+ const attribute = this.ssrcs.find(ssrcObj => ssrcObj.id === ssrcNumber
113
+ && ssrcObj.attribute === attrName);
114
+ return attribute?.value;
115
+ }
116
+ /**
117
+ * Removes all attributes for given SSRC number.
118
+ * @param {number} ssrcNum the SSRC number for which all attributes will be
119
+ * removed.
120
+ */
121
+ removeSSRC(ssrcNum) {
122
+ if (!this._mLine.ssrcs?.length) {
123
+ return;
124
+ }
125
+ this._mLine.ssrcs
126
+ = this._mLine.ssrcs.filter(ssrcObj => ssrcObj.id !== ssrcNum);
127
+ }
128
+ /**
129
+ * Adds SSRC attribute
130
+ * @param {object} ssrcObj the SSRC attribute object as defined in
131
+ * the 'sdp-transform' lib.
132
+ */
133
+ addSSRCAttribute(ssrcObj) {
134
+ this.ssrcs.push(ssrcObj);
135
+ }
136
+ /**
137
+ * Finds a SSRC group matching both semantics and SSRCs in order.
138
+ * @param {string} semantics the name of the semantics
139
+ * @param {string} [ssrcs] group SSRCs as a string (like it's defined in
140
+ * SSRC group object of the 'sdp-transform' lib) e.g. "1232546 342344 25434"
141
+ * @return {Optional<MediaDescription['ssrcGroups'][number]>} the SSRC group object or <tt>undefined</tt> if not found.
142
+ */
143
+ findGroup(semantics, ssrcs) {
144
+ return this.ssrcGroups.find(group => group.semantics === semantics
145
+ && (!ssrcs || ssrcs === group.ssrcs));
146
+ }
147
+ /**
148
+ * Finds all groups matching given semantic's name.
149
+ * @param {string} semantics the name of the semantics
150
+ * @return {MediaDescription['ssrcGroups']} an array of SSRC group objects as defined by the 'sdp-transform' lib.
151
+ */
152
+ findGroups(semantics) {
153
+ return this.ssrcGroups.filter(group => group.semantics === semantics);
154
+ }
155
+ /**
156
+ * Finds all groups matching given semantic's name and group's primary SSRC.
157
+ * @param {string} semantics the name of the semantics
158
+ * @param {number} primarySSRC the primary SSRC number to be matched
159
+ * @return {Optional<MediaDescription['ssrcGroups'][number]>} SSRC group object as defined by the 'sdp-transform' lib.
160
+ */
161
+ findGroupByPrimarySSRC(semantics, primarySSRC) {
162
+ return this.ssrcGroups.find(group => group.semantics === semantics
163
+ && parsePrimarySSRC(group) === primarySSRC);
164
+ }
165
+ /**
166
+ * Gets the SSRC count for the underlying media description.
167
+ * @return {number}
168
+ */
169
+ getSSRCCount() {
170
+ return _getSSRCCount(this._mLine);
171
+ }
172
+ /**
173
+ * Checks whether the underlying media description contains any SSRC groups.
174
+ * @return {boolean} <tt>true</tt> if there are any SSRC groups or
175
+ * <tt>false</tt> otherwise.
176
+ */
177
+ containsAnySSRCGroups() {
178
+ return this._mLine.ssrcGroups !== undefined;
179
+ }
180
+ /**
181
+ * Finds the primary video SSRC.
182
+ * @returns {Optional<number>} the primary video ssrc
183
+ * @throws Error if the underlying media description is not a video
184
+ */
185
+ getPrimaryVideoSsrc() {
186
+ const mediaType = this._mLine.type;
187
+ if (mediaType !== 'video') {
188
+ throw new Error(`getPrimarySsrc doesn't work with '${mediaType}'`);
189
+ }
190
+ const numSsrcs = _getSSRCCount(this._mLine);
191
+ if (numSsrcs === 1) {
192
+ // Not using "ssrcs" getter on purpose here
193
+ return this._mLine.ssrcs[0].id;
194
+ }
195
+ // Look for a SIM, FID, or FEC-FR group
196
+ if (this._mLine.ssrcGroups) {
197
+ const simGroup = this.findGroup(SSRC_GROUP_SEMANTICS.SIM);
198
+ if (simGroup) {
199
+ return parsePrimarySSRC(simGroup);
200
+ }
201
+ const fidGroup = this.findGroup(SSRC_GROUP_SEMANTICS.FID);
202
+ if (fidGroup) {
203
+ return parsePrimarySSRC(fidGroup);
204
+ }
205
+ const fecGroup = this.findGroup('FEC-FR');
206
+ if (fecGroup) {
207
+ return parsePrimarySSRC(fecGroup);
208
+ }
209
+ }
210
+ }
211
+ /**
212
+ * Obtains RTX SSRC from the underlying video description (the
213
+ * secondary SSRC of the first "FID" group found)
214
+ * @param {number} primarySsrc the video ssrc for which to find the
215
+ * corresponding rtx ssrc
216
+ * @returns {Optional<number>} the rtx ssrc (or undefined if there isn't
217
+ * one)
218
+ */
219
+ getRtxSSRC(primarySsrc) {
220
+ const fidGroup = this.findGroupByPrimarySSRC(SSRC_GROUP_SEMANTICS.FID, primarySsrc);
221
+ return fidGroup && parseSecondarySSRC(fidGroup);
222
+ }
223
+ /**
224
+ * Obtains all SSRCs contained in the underlying media description.
225
+ * @return {Array.<number>} an array with all SSRC as numbers.
226
+ */
227
+ getSSRCs() {
228
+ return this.ssrcs
229
+ .map(ssrcInfo => ssrcInfo.id)
230
+ .filter((ssrc, index, array) => array.indexOf(ssrc) === index);
231
+ }
232
+ /**
233
+ * Obtains primary video SSRCs.
234
+ * @return {Array.<number>} an array of all primary video SSRCs as numbers.
235
+ * @throws Error if the wrapped media description is not a video.
236
+ */
237
+ getPrimaryVideoSSRCs() {
238
+ const mediaType = this._mLine.type;
239
+ if (mediaType !== 'video') {
240
+ throw new Error(`getPrimaryVideoSSRCs doesn't work with ${mediaType}`);
241
+ }
242
+ const videoSSRCs = this.getSSRCs();
243
+ for (const ssrcGroupInfo of this.ssrcGroups) {
244
+ // Right now, FID and FEC-FR groups are the only ones we parse to
245
+ // disqualify streams. If/when others arise we'll
246
+ // need to add support for them here
247
+ if (ssrcGroupInfo.semantics === SSRC_GROUP_SEMANTICS.FID
248
+ || ssrcGroupInfo.semantics === 'FEC-FR') {
249
+ // secondary streams should be filtered out
250
+ const secondarySsrc = parseSecondarySSRC(ssrcGroupInfo);
251
+ videoSSRCs.splice(videoSSRCs.indexOf(secondarySsrc), 1);
252
+ }
253
+ }
254
+ return videoSSRCs;
255
+ }
256
+ /**
257
+ * Removes all SSRC groups which contain given SSRC number at any position.
258
+ * @param {number} ssrc the SSRC for which all matching groups are to be
259
+ * removed.
260
+ */
261
+ removeGroupsWithSSRC(ssrc) {
262
+ if (!this._mLine.ssrcGroups) {
263
+ return;
264
+ }
265
+ this._mLine.ssrcGroups = this._mLine.ssrcGroups
266
+ .filter(groupInfo => groupInfo.ssrcs.indexOf(`${ssrc}`) === -1);
267
+ }
268
+ /**
269
+ * Removes groups that match given semantics.
270
+ * @param {string} semantics e.g. "SIM" or "FID"
271
+ */
272
+ removeGroupsBySemantics(semantics) {
273
+ if (!this._mLine.ssrcGroups) {
274
+ return;
275
+ }
276
+ this._mLine.ssrcGroups
277
+ = this._mLine.ssrcGroups
278
+ .filter(groupInfo => groupInfo.semantics !== semantics);
279
+ }
280
+ /**
281
+ * Adds given SSRC group to this media description.
282
+ * @param {object} group the SSRC group object as defined by
283
+ * the 'sdp-transform' lib.
284
+ */
285
+ addSSRCGroup(group) {
286
+ this.ssrcGroups.push(group);
287
+ }
288
+ }
289
+ /**
290
+ * Utility class for SDP manipulation using the 'sdp-transform' library.
291
+ *
292
+ * Typical use usage scenario:
293
+ *
294
+ * const transformer = new SdpTransformWrap(rawSdp);
295
+ * const videoMLine = transformer.selectMedia('video);
296
+ * if (videoMLine) {
297
+ * videoMLiner.addSSRCAttribute({
298
+ * id: 2342343,
299
+ * attribute: "cname",
300
+ * value: "someCname"
301
+ * });
302
+ * rawSdp = transformer.toRawSdp();
303
+ * }
304
+ */
305
+ export class SdpTransformWrap {
306
+ /**
307
+ * Creates new instance and parses the raw SDP into objects using
308
+ * 'sdp-transform' lib.
309
+ * @param {string} rawSDP the SDP in raw text format.
310
+ */
311
+ constructor(rawSDP) {
312
+ this.parsedSDP = transform.parse(rawSDP);
313
+ }
314
+ /**
315
+ * Selects all the m-lines from the SDP for a given media type.
316
+ *
317
+ * @param {string} mediaType the name of the media e.g. 'audio', 'video', 'data'.
318
+ * @return {MLineWrap|null} return {@link MLineWrap} instance for the media line or <tt>null</tt> if not found. The
319
+ * object returned references the underlying SDP state held by this <tt>SdpTransformWrap</tt> instance (it's not a
320
+ * copy).
321
+ */
322
+ selectMedia(mediaType) {
323
+ const selectedMLines = this.parsedSDP.media
324
+ .filter(mLine => mLine.type === mediaType)
325
+ .map(mLine => new MLineWrap(mLine));
326
+ return selectedMLines ?? null;
327
+ }
328
+ /**
329
+ * Converts the currently stored SDP state in this instance to raw text SDP
330
+ * format.
331
+ * @return {string}
332
+ */
333
+ toRawSDP() {
334
+ return transform.write(this.parsedSDP);
335
+ }
336
+ }
337
+ //# sourceMappingURL=SdpTransformUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdpTransformUtil.js","sourceRoot":"","sources":["../../../../modules/sdp/SdpTransformUtil.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../modules/sdp/constants.ts"],"names":[],"mappings":""}
@@ -0,0 +1,95 @@
1
+ import { jitsiLocalStorage } from '@jitsi/js-utils';
2
+ import { getLogger } from '@jitsi/logger';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ import { generateUsername } from '../util/UsernameGenerator';
5
+ const logger = getLogger('settings:Settings');
6
+ let _callStatsUserName = null;
7
+ let _machineId = null;
8
+ const Settings = {
9
+ /**
10
+ * The storage used to store the settings.
11
+ */
12
+ _storage: jitsiLocalStorage,
13
+ /**
14
+ * Returns the ID to use for the purposes of stats, saved in localstorage as "callStatsUserName".
15
+ * @returns {string} fake username for callstats
16
+ */
17
+ get callStatsUserName() {
18
+ if (!_callStatsUserName) {
19
+ _callStatsUserName = this._storage.getItem('callStatsUserName');
20
+ if (!_callStatsUserName) {
21
+ _callStatsUserName = _generateStatsId();
22
+ this._storage.setItem('callStatsUserName', _callStatsUserName);
23
+ }
24
+ }
25
+ return _callStatsUserName;
26
+ },
27
+ /**
28
+ * Initializes the Settings class.
29
+ *
30
+ * @param {Storage|undefined} externalStorage - Object that implements the Storage interface. This object will be
31
+ * used for storing data instead of jitsiLocalStorage if specified.
32
+ */
33
+ init(externalStorage) {
34
+ this._storage = externalStorage || jitsiLocalStorage;
35
+ },
36
+ /**
37
+ * Returns current machine id.
38
+ * @returns {string} machine id
39
+ */
40
+ get machineId() {
41
+ if (!_machineId) {
42
+ const amDid = this._storage.getItem('billingId');
43
+ _machineId = amDid || this._storage.getItem('jitsiMeetId');
44
+ if (amDid) {
45
+ this._storage.setItem('jitsiMeetId', amDid);
46
+ }
47
+ else if (!_machineId) {
48
+ _machineId = generateJitsiMeetId();
49
+ this._storage.setItem('jitsiMeetId', _machineId);
50
+ }
51
+ }
52
+ return _machineId;
53
+ },
54
+ /**
55
+ * Returns current session id.
56
+ * @returns {string} current session id
57
+ */
58
+ get sessionId() {
59
+ // We may update sessionId in localStorage from another JitsiConference
60
+ // instance and that's why we should always re-read it.
61
+ return this._storage.getItem('sessionId') || '';
62
+ },
63
+ /**
64
+ * Save current session id.
65
+ * @param {string} sessionId session id
66
+ */
67
+ set sessionId(sessionId) {
68
+ if (sessionId) {
69
+ this._storage.setItem('sessionId', sessionId);
70
+ }
71
+ else {
72
+ this._storage.removeItem('sessionId');
73
+ }
74
+ }
75
+ };
76
+ /**
77
+ * Generate a random ID to be used for statistics.
78
+ * @returns {string} the random ID
79
+ */
80
+ function _generateStatsId() {
81
+ const username = generateUsername();
82
+ logger.info('generated stats id', username);
83
+ return username;
84
+ }
85
+ /**
86
+ * Generate unique id.
87
+ * @returns {string} random unique id
88
+ */
89
+ function generateJitsiMeetId() {
90
+ const jitsiMeetId = uuidv4().replaceAll('-', '');
91
+ logger.info('generated id', jitsiMeetId);
92
+ return jitsiMeetId;
93
+ }
94
+ export default Settings;
95
+ //# sourceMappingURL=Settings.js.map