@webex/plugin-meetings 3.0.0-beta.1 → 3.0.0-beta.11

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 (281) hide show
  1. package/dist/common/browser-detection.js.map +1 -1
  2. package/dist/common/collection.js.map +1 -1
  3. package/dist/common/config.js.map +1 -1
  4. package/dist/common/errors/captcha-error.js +7 -0
  5. package/dist/common/errors/captcha-error.js.map +1 -1
  6. package/dist/common/errors/intent-to-join.js +8 -0
  7. package/dist/common/errors/intent-to-join.js.map +1 -1
  8. package/dist/common/errors/join-meeting.js +8 -0
  9. package/dist/common/errors/join-meeting.js.map +1 -1
  10. package/dist/common/errors/media.js +7 -0
  11. package/dist/common/errors/media.js.map +1 -1
  12. package/dist/common/errors/parameter.js.map +1 -1
  13. package/dist/common/errors/password-error.js +7 -0
  14. package/dist/common/errors/password-error.js.map +1 -1
  15. package/dist/common/errors/permission.js +7 -0
  16. package/dist/common/errors/permission.js.map +1 -1
  17. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  18. package/dist/common/errors/reconnection.js +7 -0
  19. package/dist/common/errors/reconnection.js.map +1 -1
  20. package/dist/common/errors/stats.js +7 -0
  21. package/dist/common/errors/stats.js.map +1 -1
  22. package/dist/common/errors/webex-errors.js +5 -29
  23. package/dist/common/errors/webex-errors.js.map +1 -1
  24. package/dist/common/errors/webex-meetings-error.js +5 -2
  25. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  26. package/dist/common/events/events-scope.js.map +1 -1
  27. package/dist/common/events/events.js.map +1 -1
  28. package/dist/common/events/trigger-proxy.js.map +1 -1
  29. package/dist/common/events/util.js.map +1 -1
  30. package/dist/common/logs/logger-config.js.map +1 -1
  31. package/dist/common/logs/logger-proxy.js.map +1 -1
  32. package/dist/common/logs/request.js +3 -0
  33. package/dist/common/logs/request.js.map +1 -1
  34. package/dist/common/queue.js.map +1 -1
  35. package/dist/config.js +1 -0
  36. package/dist/config.js.map +1 -1
  37. package/dist/constants.js +15 -74
  38. package/dist/constants.js.map +1 -1
  39. package/dist/locus-info/controlsUtils.js.map +1 -1
  40. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  41. package/dist/locus-info/fullState.js.map +1 -1
  42. package/dist/locus-info/hostUtils.js.map +1 -1
  43. package/dist/locus-info/index.js +43 -5
  44. package/dist/locus-info/index.js.map +1 -1
  45. package/dist/locus-info/infoUtils.js +4 -0
  46. package/dist/locus-info/infoUtils.js.map +1 -1
  47. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  48. package/dist/locus-info/parser.js +12 -3
  49. package/dist/locus-info/parser.js.map +1 -1
  50. package/dist/locus-info/selfUtils.js.map +1 -1
  51. package/dist/media/index.js +71 -210
  52. package/dist/media/index.js.map +1 -1
  53. package/dist/media/internal-media-core-wrapper.js +22 -0
  54. package/dist/media/internal-media-core-wrapper.js.map +1 -0
  55. package/dist/media/properties.js +32 -25
  56. package/dist/media/properties.js.map +1 -1
  57. package/dist/media/util.js +0 -27
  58. package/dist/media/util.js.map +1 -1
  59. package/dist/mediaQualityMetrics/config.js.map +1 -1
  60. package/dist/meeting/effectsState.js +8 -1
  61. package/dist/meeting/effectsState.js.map +1 -1
  62. package/dist/meeting/index.js +1146 -602
  63. package/dist/meeting/index.js.map +1 -1
  64. package/dist/meeting/muteState.js +6 -0
  65. package/dist/meeting/muteState.js.map +1 -1
  66. package/dist/meeting/request.js +83 -24
  67. package/dist/meeting/request.js.map +1 -1
  68. package/dist/meeting/state.js.map +1 -1
  69. package/dist/meeting/util.js +5 -44
  70. package/dist/meeting/util.js.map +1 -1
  71. package/dist/meeting-info/collection.js +4 -1
  72. package/dist/meeting-info/collection.js.map +1 -1
  73. package/dist/meeting-info/index.js +5 -0
  74. package/dist/meeting-info/index.js.map +1 -1
  75. package/dist/meeting-info/meeting-info-v2.js +14 -2
  76. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  77. package/dist/meeting-info/request.js +3 -0
  78. package/dist/meeting-info/request.js.map +1 -1
  79. package/dist/meeting-info/util.js.map +1 -1
  80. package/dist/meeting-info/utilv2.js.map +1 -1
  81. package/dist/meetings/collection.js +4 -1
  82. package/dist/meetings/collection.js.map +1 -1
  83. package/dist/meetings/index.js +136 -25
  84. package/dist/meetings/index.js.map +1 -1
  85. package/dist/meetings/request.js +4 -0
  86. package/dist/meetings/request.js.map +1 -1
  87. package/dist/meetings/util.js +24 -1
  88. package/dist/meetings/util.js.map +1 -1
  89. package/dist/member/index.js +30 -7
  90. package/dist/member/index.js.map +1 -1
  91. package/dist/member/util.js +2 -1
  92. package/dist/member/util.js.map +1 -1
  93. package/dist/members/collection.js +1 -0
  94. package/dist/members/collection.js.map +1 -1
  95. package/dist/members/index.js +82 -1
  96. package/dist/members/index.js.map +1 -1
  97. package/dist/members/request.js +19 -9
  98. package/dist/members/request.js.map +1 -1
  99. package/dist/members/util.js.map +1 -1
  100. package/dist/metrics/config.js.map +1 -1
  101. package/dist/metrics/constants.js.map +1 -1
  102. package/dist/metrics/index.js +8 -0
  103. package/dist/metrics/index.js.map +1 -1
  104. package/dist/multistream/mediaRequestManager.js +133 -0
  105. package/dist/multistream/mediaRequestManager.js.map +1 -0
  106. package/dist/multistream/multistreamMedia.js +116 -0
  107. package/dist/multistream/multistreamMedia.js.map +1 -0
  108. package/dist/multistream/receiveSlot.js +209 -0
  109. package/dist/multistream/receiveSlot.js.map +1 -0
  110. package/dist/multistream/receiveSlotManager.js +195 -0
  111. package/dist/multistream/receiveSlotManager.js.map +1 -0
  112. package/dist/multistream/remoteMedia.js +289 -0
  113. package/dist/multistream/remoteMedia.js.map +1 -0
  114. package/dist/multistream/remoteMediaGroup.js +243 -0
  115. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  116. package/dist/multistream/remoteMediaManager.js +1113 -0
  117. package/dist/multistream/remoteMediaManager.js.map +1 -0
  118. package/dist/networkQualityMonitor/index.js +10 -2
  119. package/dist/networkQualityMonitor/index.js.map +1 -1
  120. package/dist/personal-meeting-room/index.js +11 -0
  121. package/dist/personal-meeting-room/index.js.map +1 -1
  122. package/dist/personal-meeting-room/request.js +2 -1
  123. package/dist/personal-meeting-room/request.js.map +1 -1
  124. package/dist/personal-meeting-room/util.js.map +1 -1
  125. package/dist/reachability/index.js +17 -7
  126. package/dist/reachability/index.js.map +1 -1
  127. package/dist/reachability/request.js +1 -0
  128. package/dist/reachability/request.js.map +1 -1
  129. package/dist/reactions/reactions.js +111 -0
  130. package/dist/reactions/reactions.js.map +1 -0
  131. package/dist/reactions/reactions.type.js +40 -0
  132. package/dist/reactions/reactions.type.js.map +1 -0
  133. package/dist/reconnection-manager/index.js +130 -132
  134. package/dist/reconnection-manager/index.js.map +1 -1
  135. package/dist/roap/index.js +58 -231
  136. package/dist/roap/index.js.map +1 -1
  137. package/dist/roap/request.js +7 -116
  138. package/dist/roap/request.js.map +1 -1
  139. package/dist/roap/turnDiscovery.js +20 -6
  140. package/dist/roap/turnDiscovery.js.map +1 -1
  141. package/dist/statsAnalyzer/global.js +2 -0
  142. package/dist/statsAnalyzer/global.js.map +1 -1
  143. package/dist/statsAnalyzer/index.js +58 -37
  144. package/dist/statsAnalyzer/index.js.map +1 -1
  145. package/dist/statsAnalyzer/mqaUtil.js +9 -3
  146. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  147. package/dist/transcription/index.js +10 -3
  148. package/dist/transcription/index.js.map +1 -1
  149. package/package.json +21 -20
  150. package/src/common/{browser-detection.js → browser-detection.ts} +1 -1
  151. package/src/common/collection.ts +6 -6
  152. package/src/common/{config.js → config.ts} +1 -1
  153. package/src/common/errors/{captcha-error.js → captcha-error.ts} +5 -1
  154. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +6 -1
  155. package/src/common/errors/{join-meeting.js → join-meeting.ts} +6 -1
  156. package/src/common/errors/{media.js → media.ts} +5 -1
  157. package/src/common/errors/parameter.ts +3 -2
  158. package/src/common/errors/{password-error.js → password-error.ts} +5 -1
  159. package/src/common/errors/{permission.js → permission.ts} +5 -1
  160. package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
  161. package/src/common/errors/{reconnection.js → reconnection.ts} +5 -1
  162. package/src/common/errors/{stats.js → stats.ts} +5 -1
  163. package/src/common/errors/{webex-errors.js → webex-errors.ts} +1 -20
  164. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +3 -1
  165. package/src/common/events/{events-scope.js → events-scope.ts} +1 -1
  166. package/src/common/events/{events.js → events.ts} +0 -0
  167. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +1 -2
  168. package/src/common/events/{util.js → util.ts} +1 -1
  169. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  170. package/src/common/logs/{logger-proxy.js → logger-proxy.ts} +1 -1
  171. package/src/common/logs/{request.js → request.ts} +12 -2
  172. package/src/common/queue.ts +1 -2
  173. package/src/{config.js → config.ts} +2 -0
  174. package/src/constants.ts +139 -179
  175. package/src/locus-info/{controlsUtils.js → controlsUtils.ts} +4 -4
  176. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  177. package/src/locus-info/{fullState.js → fullState.ts} +1 -1
  178. package/src/locus-info/{hostUtils.js → hostUtils.ts} +5 -5
  179. package/src/locus-info/{index.js → index.ts} +67 -32
  180. package/src/locus-info/{infoUtils.js → infoUtils.ts} +7 -4
  181. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +13 -13
  182. package/src/locus-info/{parser.js → parser.ts} +22 -12
  183. package/src/locus-info/{selfUtils.js → selfUtils.ts} +17 -19
  184. package/src/media/{index.js → index.ts} +130 -205
  185. package/src/media/internal-media-core-wrapper.ts +9 -0
  186. package/src/media/{properties.js → properties.ts} +35 -29
  187. package/src/media/util.ts +16 -0
  188. package/src/mediaQualityMetrics/{config.js → config.ts} +1 -1
  189. package/src/meeting/{effectsState.js → effectsState.ts} +12 -6
  190. package/src/meeting/{index.js → index.ts} +993 -474
  191. package/src/meeting/{muteState.js → muteState.ts} +16 -11
  192. package/src/meeting/{request.js → request.ts} +148 -36
  193. package/src/meeting/{state.js → state.ts} +6 -6
  194. package/src/meeting/{util.js → util.ts} +9 -51
  195. package/src/meeting-info/{collection.js → collection.ts} +4 -1
  196. package/src/meeting-info/{index.js → index.ts} +10 -6
  197. package/src/meeting-info/{meeting-info-v2.js → meeting-info-v2.ts} +28 -10
  198. package/src/meeting-info/{request.js → request.ts} +6 -2
  199. package/src/meeting-info/{util.js → util.ts} +6 -5
  200. package/src/meeting-info/{utilv2.js → utilv2.ts} +8 -7
  201. package/src/meetings/{collection.js → collection.ts} +5 -2
  202. package/src/meetings/{index.js → index.ts} +118 -22
  203. package/src/meetings/{request.js → request.ts} +6 -1
  204. package/src/meetings/{util.js → util.ts} +28 -5
  205. package/src/member/{index.js → index.ts} +46 -15
  206. package/src/member/{util.js → util.ts} +17 -16
  207. package/src/members/{collection.js → collection.ts} +2 -1
  208. package/src/members/{index.js → index.ts} +94 -26
  209. package/src/members/{request.js → request.ts} +16 -5
  210. package/src/members/{util.js → util.ts} +7 -7
  211. package/src/metrics/{config.js → config.ts} +0 -2
  212. package/src/metrics/{constants.js → constants.ts} +0 -0
  213. package/src/metrics/{index.js → index.ts} +27 -8
  214. package/src/multistream/mediaRequestManager.ts +166 -0
  215. package/src/multistream/multistreamMedia.ts +92 -0
  216. package/src/multistream/receiveSlot.ts +141 -0
  217. package/src/multistream/receiveSlotManager.ts +142 -0
  218. package/src/multistream/remoteMedia.ts +228 -0
  219. package/src/multistream/remoteMediaGroup.ts +224 -0
  220. package/src/multistream/remoteMediaManager.ts +911 -0
  221. package/src/networkQualityMonitor/{index.js → index.ts} +18 -3
  222. package/src/personal-meeting-room/{index.js → index.ts} +17 -4
  223. package/src/personal-meeting-room/{request.js → request.ts} +3 -1
  224. package/src/personal-meeting-room/{util.js → util.ts} +1 -1
  225. package/src/reachability/{index.js → index.ts} +28 -17
  226. package/src/reachability/request.ts +4 -2
  227. package/src/reactions/reactions.ts +104 -0
  228. package/src/reactions/reactions.type.ts +36 -0
  229. package/src/reconnection-manager/{index.js → index.ts} +81 -65
  230. package/src/roap/index.ts +229 -0
  231. package/src/roap/{request.js → request.ts} +15 -74
  232. package/src/roap/turnDiscovery.ts +26 -11
  233. package/src/statsAnalyzer/{global.js → global.ts} +2 -0
  234. package/src/statsAnalyzer/{index.js → index.ts} +66 -61
  235. package/src/statsAnalyzer/{mqaUtil.js → mqaUtil.ts} +6 -1
  236. package/src/transcription/{index.js → index.ts} +16 -11
  237. package/test/integration/spec/journey.js +1 -1
  238. package/test/integration/spec/space-meeting.js +1 -2
  239. package/test/unit/spec/locus-info/infoUtils.js +17 -1
  240. package/test/unit/spec/media/index.ts +207 -0
  241. package/test/unit/spec/media/properties.ts +73 -82
  242. package/test/unit/spec/meeting/effectsState.js +1 -3
  243. package/test/unit/spec/meeting/index.js +672 -245
  244. package/test/unit/spec/meeting/muteState.js +7 -0
  245. package/test/unit/spec/meeting/request.js +25 -1
  246. package/test/unit/spec/meeting/utils.js +63 -2
  247. package/test/unit/spec/meetings/index.js +0 -4
  248. package/test/unit/spec/members/index.js +164 -2
  249. package/test/unit/spec/multistream/mediaRequestManager.ts +515 -0
  250. package/test/unit/spec/multistream/receiveSlot.ts +104 -0
  251. package/test/unit/spec/multistream/receiveSlotManager.ts +173 -0
  252. package/test/unit/spec/multistream/remoteMedia.ts +225 -0
  253. package/test/unit/spec/multistream/remoteMediaGroup.ts +396 -0
  254. package/test/unit/spec/multistream/remoteMediaManager.ts +1309 -0
  255. package/test/unit/spec/reconnection-manager/index.js +68 -2
  256. package/test/unit/spec/roap/index.ts +63 -35
  257. package/test/unit/spec/stats-analyzer/index.js +19 -22
  258. package/dist/peer-connection-manager/index.js +0 -794
  259. package/dist/peer-connection-manager/index.js.map +0 -1
  260. package/dist/peer-connection-manager/util.js +0 -124
  261. package/dist/peer-connection-manager/util.js.map +0 -1
  262. package/dist/roap/collection.js +0 -73
  263. package/dist/roap/collection.js.map +0 -1
  264. package/dist/roap/handler.js +0 -337
  265. package/dist/roap/handler.js.map +0 -1
  266. package/dist/roap/state.js +0 -164
  267. package/dist/roap/state.js.map +0 -1
  268. package/dist/roap/util.js +0 -102
  269. package/dist/roap/util.js.map +0 -1
  270. package/src/media/util.js +0 -38
  271. package/src/peer-connection-manager/index.js +0 -723
  272. package/src/peer-connection-manager/util.ts +0 -117
  273. package/src/roap/collection.js +0 -63
  274. package/src/roap/handler.js +0 -252
  275. package/src/roap/index.js +0 -380
  276. package/src/roap/state.js +0 -149
  277. package/src/roap/util.js +0 -93
  278. package/test/unit/spec/peerconnection-manager/index.js +0 -188
  279. package/test/unit/spec/peerconnection-manager/utils.js +0 -48
  280. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  281. package/test/unit/spec/roap/util.js +0 -30
@@ -1 +0,0 @@
1
- {"version":3,"names":["checkForAndHandleErrors","action","meeting","correlationId","type","msg","messageType","errorType","RoapUtil","findError","handleError","mediaProperties","peerConnection","then","res","RoapCollection","deleteSessionSequence","seq","catch","err","LoggerProxy","logger","warn","ensureMeeting","compareWithLastRoapMessage","lastRoapMessage","currentRoapMessage","handleSessionStep","roap","session","locusUrl","sequenceId","OFFER","_OFFER_","GLARE_OFFER","remote","metricName","BEHAVIORAL_METRICS","ROAP_GLARE_CONDITION","data","correlation_id","locus_id","split","pop","sequence","Metrics","sendBehavioralMetric","info","state","RoapHandler","attrs","options","roapOk","roapAnswer","roapFinished","ROAP","ROAP_STATE","INIT","WAIT_TX_ANSWER","shouldHandleMedia","updatePeerConnection","answerSdps","mediaId","sdps","audioMuted","isAudioMuted","videoMuted","isVideoMuted","error","ROAP_ANSWER_FAILURE","reason","message","stack","metadata","name","WAIT_TX_OK","setRemoteDescription","ERROR","GLARE","tieBreaker","log","step","ROAP_SIGNAL","GLARE_RESOLVED","perform","signal","prefix","RECEIVE_ROAP_MSG","execute","RX_","SEND_ROAP_MSG","local","TX_","SEND_ROAP_MSG_SUCCESS","RECEIVE_CALL_LEAVE","deleteSession","RESET_ROAP_STATE","getSessionSequence","webex","meetings","meetingCollection","getByKey","handleAction","StatelessWebexPlugin"],"sources":["handler.js"],"sourcesContent":["/* no-param-reassign */\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ROAP, _OFFER_} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport RoapUtil from './util';\nimport RoapCollection from './collection';\n\n\nconst checkForAndHandleErrors = (action, meeting, correlationId) => {\n if (action && action.type) {\n if (action.msg && action.msg.messageType && action.msg.errorType) {\n if (RoapUtil.findError(action.msg.messageType, action.msg.errorType, action.type)) {\n RoapUtil.handleError(meeting.mediaProperties.peerConnection)\n .then((res) => {\n if (res) {\n RoapCollection.deleteSessionSequence(correlationId, action.msg.seq);\n }\n })\n .catch((err) => {\n LoggerProxy.logger.warn(`Roap:handler#checkForAndHandleErrors --> Cannot reset the peer connection with error: ${err}`);\n });\n\n return true;\n }\n }\n if (!RoapUtil.ensureMeeting(meeting, action.type)) {\n return true;\n }\n }\n\n return false;\n};\n\nconst compareWithLastRoapMessage = (lastRoapMessage, currentRoapMessage) => lastRoapMessage?.msg?.seq === currentRoapMessage.msg.seq && lastRoapMessage?.msg?.messageType === currentRoapMessage.msg.messageType;\n\nconst handleSessionStep = ({\n roap, session, locusUrl, correlationId\n}) => {\n const {seq: sequenceId, messageType} = roap.msg;\n\n if (session.OFFER && messageType === _OFFER_) {\n session.GLARE_OFFER = roap.msg;\n session.GLARE_OFFER.remote = !!roap.remote;\n const metricName = BEHAVIORAL_METRICS.ROAP_GLARE_CONDITION;\n const data = {\n correlation_id: correlationId,\n locus_id: locusUrl.split('/').pop(),\n sequence: sequenceId\n };\n\n Metrics.sendBehavioralMetric(metricName, data);\n\n LoggerProxy.logger.warn(`Roap:handler#handleSessionStep --> Glare condition occurred with new mercury event, sequenceId: ${sequenceId}`);\n }\n else {\n LoggerProxy.logger.info(`Roap:handler#handleSessionStep --> Save OFFER/ANSWER seq:${sequenceId} new mercury event ${messageType}local state: ${JSON.stringify(session.state.state, null, 2)}`);\n session[messageType] = roap.msg;\n session[messageType].remote = !!roap.remote;\n }\n};\n\n/**\n * @class RoapHandler\n */\nexport default class RoapHandler extends StatelessWebexPlugin {\n constructor(attrs, options, roapOk, roapAnswer, roapFinished) {\n super({}, options);\n this.attrs = attrs;\n this.options = options;\n this.roapOk = roapOk;\n this.roapFinished = roapFinished;\n this.roapAnswer = roapAnswer;\n this.lastRoapMessage = null;\n }\n\n /**\n *\n * @param {Object} session\n * @param {Meeting} meeting\n * @param {Object} action\n * @returns {null}\n */\n perform(session, meeting, action) {\n switch (session.state.state) {\n case ROAP.ROAP_STATE.INIT:\n this.roapFinished(meeting.correlationId, action.msg.seq);\n break;\n\n // TODO: (important )handle roap state for sending offers as well\n // case ROAP.ROAP_STATE.WAIT_RX_OFFER:\n // case ROAP.ROAP_STATE.WAIT_RX_ANSWER:\n // case ROAP.ROAP_STATE.WAIT_RX_OK:\n case ROAP.ROAP_STATE.WAIT_TX_ANSWER:\n // eslint-disable-next-line no-warning-comments\n // TODO: sometime the you get an answer while you are creating an offer so SKIP\n // Server will send the mercury event comes back\n if (RoapUtil.shouldHandleMedia(meeting)) {\n RoapUtil.updatePeerConnection(meeting, session)\n .then((answerSdps) => {\n this.roapAnswer({\n mediaId: meeting.mediaId,\n sdps: answerSdps,\n seq: session.OFFER.seq,\n correlationId: meeting.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted()\n });\n })\n .catch((error) => {\n const metricName = BEHAVIORAL_METRICS.ROAP_ANSWER_FAILURE;\n const data = {\n correlation_id: meeting.correlationId,\n locus_id: meeting.locusUrl.split('/').pop(),\n reason: error.message,\n stack: error.stack\n };\n const metadata = {\n type: error.name\n };\n\n Metrics.sendBehavioralMetric(metricName, data, metadata);\n LoggerProxy.logger.error(`Roap:handler#perform --> Error occured during wait receive answer, continuing, ${error}`);\n });\n }\n break;\n case ROAP.ROAP_STATE.WAIT_TX_OK:\n if (!RoapUtil.shouldHandleMedia(meeting)) {\n RoapUtil.setRemoteDescription(meeting, session).then((res) => {\n this.roapOk(res);\n });\n }\n break;\n // case ROAP.ROAP_STATE.IDLE_LOCAL_OFFER:\n case ROAP.ROAP_STATE.ERROR:\n LoggerProxy.logger.error(`Roap:handler#perform --> Roap State ERROR for session: ${session}`);\n break;\n case ROAP.ROAP_STATE.GLARE:\n session.GLARE_OFFER.tieBreaker = session.GLARE_OFFER.tieBreaker || 0;\n session.OFFER.tieBreaker = session.OFFER.tieBreaker || 0;\n LoggerProxy.logger.warn('Roap:handler#perform --> Roap State resolved the GLARE condition.');\n if (session.GLARE_OFFER.tieBreaker < session.OFFER.tieBreaker) {\n // 2\n LoggerProxy.logger.log('Roap:handler#perform --> Roap State local offer won after GLARE.');\n }\n else {\n LoggerProxy.logger.log('Roap:handler#perform --> Roap State remote offer won after GLARE.');\n }\n session.state.step(ROAP.ROAP_SIGNAL.GLARE_RESOLVED, meeting, action);\n this.perform(session, meeting);\n break;\n default:\n break;\n }\n }\n\n /**\n *\n * @param {String} signal\n * @param {Object} session\n * @param {Object} action\n * @param {Meeting} meeting\n * @param {String} prefix\n * @returns {null}\n */\n execute(signal, session, action, meeting, prefix) {\n if (session && session.state) {\n handleSessionStep({\n roap: action,\n locusUrl: meeting.locusUrl,\n correlationId: meeting.correlationId,\n session\n });\n signal = ROAP.ROAP_SIGNAL[`${prefix}${action.msg.messageType}`];\n session.state.step(signal, meeting, action);\n this.perform(session, meeting, action);\n }\n }\n\n /**\n *\n * @param {Object} session\n * @param {Object} action\n * @param {Meeting} meeting\n * @param {String} correlationId\n * @returns {Boolean}\n */\n handleAction(session, action, meeting, correlationId) {\n let signal;\n\n\n switch (action.type) {\n case ROAP.RECEIVE_ROAP_MSG:\n LoggerProxy.logger.log(`Roap:handler#handleAction --> RECEIVE_ROAP_MSG event captured, reciving a roap message : ${JSON.stringify(action)}`);\n if (compareWithLastRoapMessage(this.lastRoapMessage, action)) {\n LoggerProxy.logger.warn(`Roap:handler#handleAction --> duplicate roap offer from server: ${action.msg.seq}`);\n }\n else {\n this.lastRoapMessage = action;\n action.remote = true;\n this.execute(signal, session, action, meeting, ROAP.RX_);\n }\n break;\n case ROAP.SEND_ROAP_MSG:\n LoggerProxy.logger.log(`Roap:handler#handleAction --> SEND_ROAP_MSG event captured, sending roap message ${JSON.stringify(action)}`);\n\n action.local = true;\n this.execute(signal, session, action, meeting, ROAP.TX_);\n break;\n case ROAP.SEND_ROAP_MSG_SUCCESS:\n // NOTE: When server send back an answer via mercury the\n // remote SDP is already saved sent and ok message is sent back\n // We dont have to indicate the roapHandler about the RX_ANSWER via SEND_ROAP_MSG_SUCCESS\n break;\n case ROAP.RECEIVE_CALL_LEAVE:\n RoapCollection.deleteSession(correlationId);\n LoggerProxy.logger.log(`Roap:handler#handleAction --> RECEIVE_CALL_LEAVE event captured, cleaning up the RoapHandler for correlationId: ${correlationId}`); break;\n case ROAP.RESET_ROAP_STATE:\n RoapCollection.deleteSessionSequence(correlationId, action.msg.seq);\n LoggerProxy.logger.log(`Roap:handler#handleAction --> RESET_ROAP_STATE event captured, resetting the RoapHandler state based on sequenceId: ${action.msg.seq}`); break;\n default:\n return true;\n }\n\n return true;\n }\n\n /**\n *\n * @param {Object} action\n * @returns {Boolean}\n */\n submit(action) {\n const {correlationId} = action;\n let {seq} = action;\n\n if (!seq && action.msg) {\n seq = action.msg.seq;\n }\n const session = RoapCollection.getSessionSequence(correlationId, seq);\n const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);\n\n if (checkForAndHandleErrors(action, meeting, correlationId)) {\n return true;\n }\n\n return this.handleAction(session, action, meeting, correlationId);\n }\n}\n"],"mappings":"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"}
@@ -1,164 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
- var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
- _Object$defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
-
11
- exports.default = void 0;
12
-
13
- var _javascriptStateMachine = _interopRequireDefault(require("javascript-state-machine"));
14
-
15
- var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
16
-
17
- var _constants = require("../constants");
18
-
19
- var shouldStep = function shouldStep(roap, meeting) {
20
- var messageType = roap.msg.messageType;
21
-
22
- if (meeting) {
23
- if (messageType === _constants._OFFER_ && roap.remote && meeting.shareStatus === _constants._REQUESTED_) {
24
- // The peer-connection is waiting for answer but got an offer Reset. Try to
25
- // send the offer later after you accept the answer
26
- return false;
27
- } // Assuming the mercury event has come first before the response for the event
28
- // we have to wait for the response and trigger the ROAP request later on
29
-
30
-
31
- if (!meeting.mediaProperties.peerConnection && messageType === _constants._ANSWER_) {
32
- return false;
33
- }
34
- }
35
-
36
- _loggerProxy.default.logger.log('Roap:state#shouldStep --> RoapStateMachine: PeerConnectionState, ', meeting.mediaProperties.peerConnection.signalingState);
37
-
38
- _loggerProxy.default.logger.log('Roap:state#shouldStep --> RoapStateMachine: success save proceeding with transition, ', roap.msg);
39
-
40
- return true;
41
- };
42
-
43
- var handleTransition = function handleTransition(value, signal, meeting) {
44
- _loggerProxy.default.logger.log("Roap:state#handleTransition --> current ".concat(value, " to ").concat(signal));
45
-
46
- switch (value) {
47
- case _constants.ROAP.ROAP_STATE.INIT:
48
- if (signal === _constants.ROAP.ROAP_SIGNAL.RX_OFFER) {
49
- return _constants.ROAP.ROAP_STATE.WAIT_TX_ANSWER;
50
- }
51
-
52
- if (signal === _constants.ROAP.ROAP_SIGNAL.TX_OFFER) {
53
- return _constants.ROAP.ROAP_STATE.WAIT_RX_ANSWER;
54
- }
55
-
56
- return value;
57
-
58
- case _constants.ROAP.ROAP_STATE.WAIT_RX_OFFER:
59
- return value;
60
-
61
- case _constants.ROAP.ROAP_STATE.WAIT_RX_ANSWER:
62
- if (signal === _constants.ROAP.ROAP_SIGNAL.RX_ANSWER) {
63
- // There is a race condition where the /call response comes after mercury event from the server
64
- // As mercury sends roap event if it didnt get back a response. We can send the roap ok after that
65
- if (meeting.mediaId) {
66
- return _constants.ROAP.ROAP_STATE.WAIT_TX_OK;
67
- }
68
-
69
- _loggerProxy.default.logger.error('Roap:state#handleTransition --> Race Condition no mediaId, continuing.');
70
-
71
- return value;
72
- }
73
-
74
- if (signal === _constants.ROAP.ROAP_SIGNAL.RX_OFFER) {
75
- return _constants.ROAP.ROAP_STATE.GLARE;
76
- }
77
-
78
- return value;
79
-
80
- case _constants.ROAP.ROAP_STATE.WAIT_TX_OFFER:
81
- return value;
82
-
83
- case _constants.ROAP.ROAP_STATE.WAIT_TX_ANSWER:
84
- if (signal === _constants.ROAP.ROAP_SIGNAL.TX_ANSWER) {
85
- return _constants.ROAP.ROAP_STATE.WAIT_RX_OK;
86
- }
87
-
88
- return value;
89
-
90
- case _constants.ROAP.ROAP_STATE.WAIT_TX_OK:
91
- if (signal === _constants.ROAP.ROAP_SIGNAL.TX_OK) {
92
- return _constants.ROAP.ROAP_STATE.INIT;
93
- }
94
-
95
- return value;
96
-
97
- case _constants.ROAP.ROAP_STATE.WAIT_RX_OK:
98
- if (signal === _constants.ROAP.ROAP_SIGNAL.RX_OK) {
99
- return _constants.ROAP.ROAP_STATE.INIT;
100
- }
101
-
102
- return value;
103
-
104
- case _constants.ROAP.ROAP_STATE.ERROR:
105
- // eslint-disable-next-line no-warning-comments
106
- // TODO: resolve error state. Add a signal constant and handle the cleanup
107
- return _constants.ROAP.ROAP_STATE.INIT;
108
-
109
- case _constants.ROAP.ROAP_STATE.GLARE:
110
- return _constants.ROAP.ROAP_STATE.WAIT_RX_ANSWER;
111
-
112
- default:
113
- return value;
114
- }
115
- };
116
-
117
- var RoapStateMachine = {
118
- /**
119
- * @param {Roap} roapRef
120
- * initializes the state machine
121
- * @returns {StateMachine} an instance of a state machine
122
- */
123
- createState: function createState() {
124
- var RoapState = _javascriptStateMachine.default.factory({
125
- init: _constants.ROAP.ROAP_STATE.INIT,
126
- transitions: [{
127
- name: _constants.ROAP.ROAP_TRANSITIONS.STEP,
128
- from: '*',
129
-
130
- /**
131
- * Method to handle the transitions between states
132
- * @param {String} signal
133
- * @param {Meeting} meeting instance of a Meeting
134
- * @param {Object} roap
135
- * @returns {String} new state value
136
- */
137
- to: function to(signal, meeting, roap) {
138
- var value = this.state;
139
-
140
- if (!shouldStep(roap, meeting)) {
141
- return value;
142
- }
143
-
144
- return handleTransition(value, signal, meeting);
145
- }
146
- }],
147
- methods: {
148
- /**
149
- * Event that fires after we've transitioned to a new state
150
- * @param {Object} transition
151
- * @returns {null}
152
- */
153
- onAfterStep: function onAfterStep(transition) {
154
- _loggerProxy.default.logger.log("Roap:state#onAfterStep --> RoapStateMachine->onAfterStep#fired! State changed from '".concat(transition.from, "' to '").concat(transition.to, "' with transition '").concat(transition.transition, "''."));
155
- }
156
- }
157
- });
158
-
159
- return new RoapState();
160
- }
161
- };
162
- var _default = RoapStateMachine;
163
- exports.default = _default;
164
- //# sourceMappingURL=state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["shouldStep","roap","meeting","messageType","msg","_OFFER_","remote","shareStatus","_REQUESTED_","mediaProperties","peerConnection","_ANSWER_","LoggerProxy","logger","log","signalingState","handleTransition","value","signal","ROAP","ROAP_STATE","INIT","ROAP_SIGNAL","RX_OFFER","WAIT_TX_ANSWER","TX_OFFER","WAIT_RX_ANSWER","WAIT_RX_OFFER","RX_ANSWER","mediaId","WAIT_TX_OK","error","GLARE","WAIT_TX_OFFER","TX_ANSWER","WAIT_RX_OK","TX_OK","RX_OK","ERROR","RoapStateMachine","createState","RoapState","StateMachine","factory","init","transitions","name","ROAP_TRANSITIONS","STEP","from","to","state","methods","onAfterStep","transition"],"sources":["state.js"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ROAP, _OFFER_, _ANSWER_, _REQUESTED_} from '../constants';\n\nconst shouldStep = (roap, meeting) => {\n const {messageType} = roap.msg;\n\n if (meeting) {\n if (messageType === _OFFER_ && roap.remote && meeting.shareStatus === _REQUESTED_) {\n // The peer-connection is waiting for answer but got an offer Reset. Try to\n // send the offer later after you accept the answer\n return false;\n }\n // Assuming the mercury event has come first before the response for the event\n // we have to wait for the response and trigger the ROAP request later on\n if (!meeting.mediaProperties.peerConnection && messageType === _ANSWER_) {\n return false;\n }\n }\n LoggerProxy.logger.log('Roap:state#shouldStep --> RoapStateMachine: PeerConnectionState, ', meeting.mediaProperties.peerConnection.signalingState);\n LoggerProxy.logger.log('Roap:state#shouldStep --> RoapStateMachine: success save proceeding with transition, ', roap.msg);\n\n return true;\n};\n\nconst handleTransition = (value, signal, meeting) => {\n LoggerProxy.logger.log(`Roap:state#handleTransition --> current ${value} to ${signal}`);\n\n switch (value) {\n case ROAP.ROAP_STATE.INIT:\n if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {\n return ROAP.ROAP_STATE.WAIT_TX_ANSWER;\n }\n if (signal === ROAP.ROAP_SIGNAL.TX_OFFER) {\n return ROAP.ROAP_STATE.WAIT_RX_ANSWER;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_OFFER:\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_ANSWER:\n if (signal === ROAP.ROAP_SIGNAL.RX_ANSWER) {\n // There is a race condition where the /call response comes after mercury event from the server\n // As mercury sends roap event if it didnt get back a response. We can send the roap ok after that\n if (meeting.mediaId) {\n return ROAP.ROAP_STATE.WAIT_TX_OK;\n }\n LoggerProxy.logger.error('Roap:state#handleTransition --> Race Condition no mediaId, continuing.');\n\n return value;\n }\n\n if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {\n return ROAP.ROAP_STATE.GLARE;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_OFFER:\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_ANSWER:\n if (signal === ROAP.ROAP_SIGNAL.TX_ANSWER) {\n return ROAP.ROAP_STATE.WAIT_RX_OK;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_OK:\n if (signal === ROAP.ROAP_SIGNAL.TX_OK) {\n return ROAP.ROAP_STATE.INIT;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_OK:\n if (signal === ROAP.ROAP_SIGNAL.RX_OK) {\n return ROAP.ROAP_STATE.INIT;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.ERROR:\n // eslint-disable-next-line no-warning-comments\n // TODO: resolve error state. Add a signal constant and handle the cleanup\n return ROAP.ROAP_STATE.INIT;\n\n case ROAP.ROAP_STATE.GLARE:\n return ROAP.ROAP_STATE.WAIT_RX_ANSWER;\n default:\n return value;\n }\n};\n\nconst RoapStateMachine = {\n /**\n * @param {Roap} roapRef\n * initializes the state machine\n * @returns {StateMachine} an instance of a state machine\n */\n createState() {\n const RoapState = StateMachine.factory({\n init: ROAP.ROAP_STATE.INIT,\n transitions: [\n {\n name: ROAP.ROAP_TRANSITIONS.STEP,\n from: '*',\n /**\n * Method to handle the transitions between states\n * @param {String} signal\n * @param {Meeting} meeting instance of a Meeting\n * @param {Object} roap\n * @returns {String} new state value\n */\n to(signal, meeting, roap) {\n const value = this.state;\n\n if (!shouldStep(roap, meeting)) {\n return value;\n }\n\n return handleTransition(value, signal, meeting);\n }\n }\n ],\n methods: {\n /**\n * Event that fires after we've transitioned to a new state\n * @param {Object} transition\n * @returns {null}\n */\n onAfterStep(transition) {\n LoggerProxy.logger.log(\n `Roap:state#onAfterStep --> RoapStateMachine->onAfterStep#fired! State changed from '${transition.from}' to '${\n transition.to\n }' with transition '${transition.transition}''.`\n );\n }\n }\n });\n\n return new RoapState();\n }\n};\n\nexport default RoapStateMachine;\n"],"mappings":"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"}
package/dist/roap/util.js DELETED
@@ -1,102 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
- var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
- _Object$defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
-
11
- exports.default = void 0;
12
-
13
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
14
-
15
- var _peerConnectionManager = _interopRequireDefault(require("../peer-connection-manager"));
16
-
17
- var _constants = require("../constants");
18
-
19
- var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
20
-
21
- var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
22
-
23
- var RoapUtil = {};
24
-
25
- var ROAP_ANSWER = _constants._ANSWER_.toLowerCase();
26
-
27
- RoapUtil.shouldHandleMedia = function (meeting) {
28
- var offer = meeting.mediaProperties.peerConnection && meeting.mediaProperties.peerConnection.signalingState === _constants.SDP.HAVE_LOCAL_OFFER;
29
-
30
- if (offer) {
31
- return false;
32
- }
33
-
34
- return true;
35
- };
36
-
37
- RoapUtil.handleError = function (pc) {
38
- return _peerConnectionManager.default.rollBackLocalDescription({
39
- peerConnection: pc
40
- }).then(function () {
41
- return _promise.default.resolve(true);
42
- }).catch(function (err) {
43
- _loggerProxy.default.logger.error("Roap:util#handleError --> ".concat(err));
44
-
45
- return _promise.default.reject(err);
46
- });
47
- };
48
-
49
- RoapUtil.findError = function (messageType, errorType, type) {
50
- return (type === _constants.ROAP.RECEIVE_ROAP_MSG || type === _constants.ROAP.SEND_ROAP_MSG) && messageType === _constants._ERROR_ && errorType === _constants._CONFLICT_;
51
- };
52
-
53
- RoapUtil.ensureMeeting = function (meeting, type) {
54
- if (type === _constants.ROAP.RECEIVE_ROAP_MSG || type === _constants.ROAP.SEND_ROAP_MSG || type === _constants.ROAP.SEND_ROAP_MSG_SUCCESS) {
55
- if (!meeting) {
56
- return false;
57
- }
58
- }
59
-
60
- return true;
61
- };
62
-
63
- RoapUtil.updatePeerConnection = function (meeting, session) {
64
- return _peerConnectionManager.default.updatePeerConnection({
65
- offerSdp: session.OFFER.sdps,
66
- peerConnection: meeting.mediaProperties.peerConnection
67
- }, {
68
- meetingId: meeting.id,
69
- remoteQualityLevel: meeting.mediaProperties.remoteQualityLevel
70
- }).then(function (res) {
71
- meeting.roap.lastRoapOffer = session.OFFER.sdps;
72
- return res;
73
- });
74
- };
75
-
76
- RoapUtil.setRemoteDescription = function (meeting, session) {
77
- _loggerProxy.default.logger.info("Roap:util#setRemoteDescription --> Transmit WAIT_TX_OK, correlationId: ".concat(meeting.correlationId));
78
-
79
- if (!(meeting && meeting.mediaProperties.peerConnection)) {
80
- _loggerProxy.default.logger.error("Roap:util#setRemoteDescription --> DANGER no media or screen peer connection, correlationId: ".concat(meeting.correlationId));
81
-
82
- return _promise.default.reject(new _parameter.default('Must provide a media or screen peer connection'));
83
- }
84
-
85
- return _peerConnectionManager.default.setRemoteSessionDetails(meeting.mediaProperties.peerConnection, ROAP_ANSWER, session.ANSWER.sdps[0], meeting.id).then(function () {
86
- _loggerProxy.default.logger.info("Roap:util#setRemoteDescription --> Success for correlationId: ".concat(meeting.correlationId));
87
-
88
- return {
89
- seq: session.ANSWER.seq,
90
- mediaId: meeting.mediaId,
91
- correlationId: meeting.correlationId
92
- };
93
- }).catch(function (err) {
94
- _loggerProxy.default.logger.error("Roap:util#setRemoteDescription --> ".concat(err));
95
-
96
- throw err;
97
- });
98
- };
99
-
100
- var _default = RoapUtil;
101
- exports.default = _default;
102
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["RoapUtil","ROAP_ANSWER","_ANSWER_","toLowerCase","shouldHandleMedia","meeting","offer","mediaProperties","peerConnection","signalingState","SDP","HAVE_LOCAL_OFFER","handleError","pc","PeerConnectionManager","rollBackLocalDescription","then","resolve","catch","err","LoggerProxy","logger","error","reject","findError","messageType","errorType","type","ROAP","RECEIVE_ROAP_MSG","SEND_ROAP_MSG","_ERROR_","_CONFLICT_","ensureMeeting","SEND_ROAP_MSG_SUCCESS","updatePeerConnection","session","offerSdp","OFFER","sdps","meetingId","id","remoteQualityLevel","res","roap","lastRoapOffer","setRemoteDescription","info","correlationId","ParameterError","setRemoteSessionDetails","ANSWER","seq","mediaId"],"sources":["util.js"],"sourcesContent":["\nimport PeerConnectionManager from '../peer-connection-manager';\nimport {\n _ANSWER_,\n _ERROR_,\n _CONFLICT_,\n ROAP,\n SDP\n} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport ParameterError from '../common/errors/parameter';\n\nconst RoapUtil = {};\nconst ROAP_ANSWER = _ANSWER_.toLowerCase();\n\nRoapUtil.shouldHandleMedia = (meeting) => {\n const offer =\n meeting.mediaProperties.peerConnection &&\n meeting.mediaProperties.peerConnection.signalingState === SDP.HAVE_LOCAL_OFFER;\n\n if (offer) {\n return false;\n }\n\n return true;\n};\n\nRoapUtil.handleError = (pc) =>\n PeerConnectionManager.rollBackLocalDescription({peerConnection: pc})\n .then(() => Promise.resolve(true))\n .catch((err) => {\n LoggerProxy.logger.error(`Roap:util#handleError --> ${err}`);\n\n return Promise.reject(err);\n });\n\nRoapUtil.findError = (messageType, errorType, type) =>\n (type === ROAP.RECEIVE_ROAP_MSG || type === ROAP.SEND_ROAP_MSG) && messageType === _ERROR_ && errorType === _CONFLICT_;\n\nRoapUtil.ensureMeeting = (meeting, type) => {\n if (type === ROAP.RECEIVE_ROAP_MSG || type === ROAP.SEND_ROAP_MSG || type === ROAP.SEND_ROAP_MSG_SUCCESS) {\n if (!meeting) {\n return false;\n }\n }\n\n return true;\n};\n\nRoapUtil.updatePeerConnection = (meeting, session) => PeerConnectionManager.updatePeerConnection({\n offerSdp: session.OFFER.sdps,\n peerConnection: meeting.mediaProperties.peerConnection\n},\n{\n meetingId: meeting.id,\n remoteQualityLevel: meeting.mediaProperties.remoteQualityLevel\n})\n .then((res) => {\n meeting.roap.lastRoapOffer = session.OFFER.sdps;\n\n return res;\n });\n\n\nRoapUtil.setRemoteDescription = (meeting, session) => {\n LoggerProxy.logger.info(`Roap:util#setRemoteDescription --> Transmit WAIT_TX_OK, correlationId: ${meeting.correlationId}`);\n if (!(meeting && (meeting.mediaProperties.peerConnection))) {\n LoggerProxy.logger.error(`Roap:util#setRemoteDescription --> DANGER no media or screen peer connection, correlationId: ${meeting.correlationId}`);\n\n return Promise.reject(new ParameterError('Must provide a media or screen peer connection'));\n }\n\n return PeerConnectionManager.setRemoteSessionDetails(\n meeting.mediaProperties.peerConnection,\n ROAP_ANSWER,\n session.ANSWER.sdps[0],\n meeting.id\n ).then(() => {\n LoggerProxy.logger.info(`Roap:util#setRemoteDescription --> Success for correlationId: ${meeting.correlationId}`);\n\n return {\n seq: session.ANSWER.seq,\n mediaId: meeting.mediaId,\n correlationId: meeting.correlationId\n };\n })\n .catch((err) => {\n LoggerProxy.logger.error(`Roap:util#setRemoteDescription --> ${err}`);\n throw err;\n });\n};\n\nexport default RoapUtil;\n"],"mappings":"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"}
package/src/media/util.js DELETED
@@ -1,38 +0,0 @@
1
- /* globals MediaStream */
2
- import window from 'global/window';
3
-
4
- import BrowserDetection from '../common/browser-detection';
5
- import LoggerProxy from '../common/logs/logger-proxy';
6
-
7
- const {isBrowser} = BrowserDetection();
8
-
9
- const MediaUtil = {};
10
-
11
- MediaUtil.createPeerConnection = (turnServerInfo) => {
12
- const config = {iceServers: []};
13
-
14
- if (turnServerInfo) {
15
- config.iceServers.push({
16
- urls: turnServerInfo.url,
17
- username: turnServerInfo.username || '',
18
- credential: turnServerInfo.password || ''
19
- });
20
- }
21
- if (isBrowser('firefox')) {
22
- config.bundlePolicy = 'max-compat';
23
- }
24
-
25
- return new window.RTCPeerConnection(config);
26
- };
27
-
28
-
29
- MediaUtil.createMediaStream = (tracks) => {
30
- if (!tracks) {
31
- LoggerProxy.logger.error('Media:util#createMediaStream --> Tracks don\'t exist');
32
- }
33
- const filtredTracks = tracks.filter((element) => !!element);
34
-
35
- return new MediaStream(filtredTracks);
36
- };
37
-
38
- export default MediaUtil;