@webex/plugin-meetings 3.1.0 → 3.3.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 (206) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/common/errors/{reconnection-in-progress.js → reconnection-not-started.js} +27 -15
  4. package/dist/common/errors/reconnection-not-started.js.map +1 -0
  5. package/dist/constants.js +12 -3
  6. package/dist/constants.js.map +1 -1
  7. package/dist/index.js +80 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/interpretation/index.js +1 -1
  10. package/dist/interpretation/siLanguage.js +1 -1
  11. package/dist/locus-info/controlsUtils.js +7 -1
  12. package/dist/locus-info/controlsUtils.js.map +1 -1
  13. package/dist/locus-info/index.js +10 -0
  14. package/dist/locus-info/index.js.map +1 -1
  15. package/dist/media/properties.js +102 -57
  16. package/dist/media/properties.js.map +1 -1
  17. package/dist/meeting/in-meeting-actions.js +6 -0
  18. package/dist/meeting/in-meeting-actions.js.map +1 -1
  19. package/dist/meeting/index.js +543 -467
  20. package/dist/meeting/index.js.map +1 -1
  21. package/dist/meeting/locusMediaRequest.js +27 -0
  22. package/dist/meeting/locusMediaRequest.js.map +1 -1
  23. package/dist/meeting/util.js +9 -16
  24. package/dist/meeting/util.js.map +1 -1
  25. package/dist/meeting/voicea-meeting.js +37 -49
  26. package/dist/meeting/voicea-meeting.js.map +1 -1
  27. package/dist/meeting-info/util.js +304 -267
  28. package/dist/meeting-info/util.js.map +1 -1
  29. package/dist/meeting-info/utilv2.js +334 -298
  30. package/dist/meeting-info/utilv2.js.map +1 -1
  31. package/dist/meetings/index.js +6 -27
  32. package/dist/meetings/index.js.map +1 -1
  33. package/dist/reachability/index.js +6 -0
  34. package/dist/reachability/index.js.map +1 -1
  35. package/dist/reconnection-manager/index.js +138 -109
  36. package/dist/reconnection-manager/index.js.map +1 -1
  37. package/dist/roap/request.js +3 -27
  38. package/dist/roap/request.js.map +1 -1
  39. package/dist/statsAnalyzer/index.js +4 -0
  40. package/dist/statsAnalyzer/index.js.map +1 -1
  41. package/dist/statsAnalyzer/mqaUtil.js +3 -0
  42. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  43. package/dist/types/common/errors/reconnection-not-started.d.ts +13 -0
  44. package/dist/{constants.d.ts → types/constants.d.ts} +11 -2
  45. package/dist/types/index.d.ts +19 -0
  46. package/dist/{media → types/media}/properties.d.ts +26 -2
  47. package/dist/{meeting → types/meeting}/in-meeting-actions.d.ts +6 -0
  48. package/dist/{meeting → types/meeting}/index.d.ts +5 -6
  49. package/dist/{meeting → types/meeting}/locusMediaRequest.d.ts +1 -0
  50. package/dist/{meeting → types/meeting}/util.d.ts +3 -0
  51. package/dist/{meeting → types/meeting}/voicea-meeting.d.ts +3 -2
  52. package/dist/{meeting-info → types/meeting-info}/index.d.ts +1 -1
  53. package/dist/{meeting-info → types/meeting-info}/meeting-info-v2.d.ts +1 -1
  54. package/dist/types/meeting-info/util.d.ts +49 -0
  55. package/dist/types/meeting-info/utilv2.d.ts +65 -0
  56. package/dist/{meetings → types/meetings}/index.d.ts +1 -16
  57. package/dist/{reconnection-manager → types/reconnection-manager}/index.d.ts +4 -14
  58. package/dist/webinar/index.js +1 -1
  59. package/package.json +22 -22
  60. package/src/common/errors/reconnection-not-started.ts +25 -0
  61. package/src/constants.ts +12 -4
  62. package/src/index.ts +30 -0
  63. package/src/locus-info/controlsUtils.ts +11 -0
  64. package/src/locus-info/index.ts +16 -0
  65. package/src/media/properties.ts +67 -15
  66. package/src/meeting/in-meeting-actions.ts +12 -0
  67. package/src/meeting/index.ts +121 -98
  68. package/src/meeting/locusMediaRequest.ts +31 -0
  69. package/src/meeting/util.ts +9 -16
  70. package/src/meeting/voicea-meeting.ts +44 -46
  71. package/src/meeting-info/util.ts +241 -233
  72. package/src/meeting-info/utilv2.ts +250 -244
  73. package/src/meetings/index.ts +8 -25
  74. package/src/reachability/index.ts +3 -0
  75. package/src/reconnection-manager/index.ts +128 -105
  76. package/src/roap/request.ts +1 -24
  77. package/src/statsAnalyzer/index.ts +4 -0
  78. package/src/statsAnalyzer/mqaUtil.ts +5 -0
  79. package/test/unit/spec/locus-info/controlsUtils.js +20 -0
  80. package/test/unit/spec/locus-info/index.js +21 -0
  81. package/test/unit/spec/media/properties.ts +145 -140
  82. package/test/unit/spec/meeting/in-meeting-actions.ts +6 -0
  83. package/test/unit/spec/meeting/index.js +243 -97
  84. package/test/unit/spec/meeting/locusMediaRequest.ts +49 -0
  85. package/test/unit/spec/meeting/utils.js +3 -10
  86. package/test/unit/spec/meeting/voicea-meeting.ts +5 -14
  87. package/test/unit/spec/meetings/index.js +27 -8
  88. package/test/unit/spec/reconnection-manager/index.js +127 -39
  89. package/test/unit/spec/roap/request.ts +0 -37
  90. package/test/unit/spec/stats-analyzer/index.js +11 -0
  91. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  92. package/dist/common/errors/reconnection-in-progress.js.map +0 -1
  93. package/dist/index.d.ts +0 -7
  94. package/dist/meeting-info/util.d.ts +0 -2
  95. package/dist/meeting-info/utilv2.d.ts +0 -2
  96. package/src/common/errors/reconnection-in-progress.ts +0 -8
  97. /package/dist/{annotation → types/annotation}/annotation.types.d.ts +0 -0
  98. /package/dist/{annotation → types/annotation}/constants.d.ts +0 -0
  99. /package/dist/{annotation → types/annotation}/index.d.ts +0 -0
  100. /package/dist/{breakouts → types/breakouts}/breakout.d.ts +0 -0
  101. /package/dist/{breakouts → types/breakouts}/collection.d.ts +0 -0
  102. /package/dist/{breakouts → types/breakouts}/edit-lock-error.d.ts +0 -0
  103. /package/dist/{breakouts → types/breakouts}/events.d.ts +0 -0
  104. /package/dist/{breakouts → types/breakouts}/index.d.ts +0 -0
  105. /package/dist/{breakouts → types/breakouts}/request.d.ts +0 -0
  106. /package/dist/{breakouts → types/breakouts}/utils.d.ts +0 -0
  107. /package/dist/{common → types/common}/browser-detection.d.ts +0 -0
  108. /package/dist/{common → types/common}/collection.d.ts +0 -0
  109. /package/dist/{common → types/common}/config.d.ts +0 -0
  110. /package/dist/{common → types/common}/errors/captcha-error.d.ts +0 -0
  111. /package/dist/{common → types/common}/errors/intent-to-join.d.ts +0 -0
  112. /package/dist/{common → types/common}/errors/join-meeting.d.ts +0 -0
  113. /package/dist/{common → types/common}/errors/media.d.ts +0 -0
  114. /package/dist/{common → types/common}/errors/no-meeting-info.d.ts +0 -0
  115. /package/dist/{common → types/common}/errors/parameter.d.ts +0 -0
  116. /package/dist/{common → types/common}/errors/password-error.d.ts +0 -0
  117. /package/dist/{common → types/common}/errors/permission.d.ts +0 -0
  118. /package/dist/{common → types/common}/errors/reclaim-host-role-errors.d.ts +0 -0
  119. /package/dist/{common → types/common}/errors/reconnection.d.ts +0 -0
  120. /package/dist/{common → types/common}/errors/stats.d.ts +0 -0
  121. /package/dist/{common → types/common}/errors/webex-errors.d.ts +0 -0
  122. /package/dist/{common → types/common}/errors/webex-meetings-error.d.ts +0 -0
  123. /package/dist/{common → types/common}/events/events-scope.d.ts +0 -0
  124. /package/dist/{common → types/common}/events/events.d.ts +0 -0
  125. /package/dist/{common → types/common}/events/trigger-proxy.d.ts +0 -0
  126. /package/dist/{common → types/common}/events/util.d.ts +0 -0
  127. /package/dist/{common → types/common}/logs/logger-config.d.ts +0 -0
  128. /package/dist/{common → types/common}/logs/logger-proxy.d.ts +0 -0
  129. /package/dist/{common → types/common}/logs/request.d.ts +0 -0
  130. /package/dist/{common → types/common}/queue.d.ts +0 -0
  131. /package/dist/{config.d.ts → types/config.d.ts} +0 -0
  132. /package/dist/{controls-options-manager → types/controls-options-manager}/constants.d.ts +0 -0
  133. /package/dist/{controls-options-manager → types/controls-options-manager}/enums.d.ts +0 -0
  134. /package/dist/{controls-options-manager → types/controls-options-manager}/index.d.ts +0 -0
  135. /package/dist/{controls-options-manager → types/controls-options-manager}/types.d.ts +0 -0
  136. /package/dist/{controls-options-manager → types/controls-options-manager}/util.d.ts +0 -0
  137. /package/dist/{interceptors → types/interceptors}/index.d.ts +0 -0
  138. /package/dist/{interceptors → types/interceptors}/locusRetry.d.ts +0 -0
  139. /package/dist/{interpretation → types/interpretation}/collection.d.ts +0 -0
  140. /package/dist/{interpretation → types/interpretation}/index.d.ts +0 -0
  141. /package/dist/{interpretation → types/interpretation}/siLanguage.d.ts +0 -0
  142. /package/dist/{locus-info → types/locus-info}/controlsUtils.d.ts +0 -0
  143. /package/dist/{locus-info → types/locus-info}/embeddedAppsUtils.d.ts +0 -0
  144. /package/dist/{locus-info → types/locus-info}/fullState.d.ts +0 -0
  145. /package/dist/{locus-info → types/locus-info}/hostUtils.d.ts +0 -0
  146. /package/dist/{locus-info → types/locus-info}/index.d.ts +0 -0
  147. /package/dist/{locus-info → types/locus-info}/infoUtils.d.ts +0 -0
  148. /package/dist/{locus-info → types/locus-info}/mediaSharesUtils.d.ts +0 -0
  149. /package/dist/{locus-info → types/locus-info}/parser.d.ts +0 -0
  150. /package/dist/{locus-info → types/locus-info}/selfUtils.d.ts +0 -0
  151. /package/dist/{media → types/media}/MediaConnectionAwaiter.d.ts +0 -0
  152. /package/dist/{media → types/media}/index.d.ts +0 -0
  153. /package/dist/{media → types/media}/util.d.ts +0 -0
  154. /package/dist/{mediaQualityMetrics → types/mediaQualityMetrics}/config.d.ts +0 -0
  155. /package/dist/{meeting → types/meeting}/muteState.d.ts +0 -0
  156. /package/dist/{meeting → types/meeting}/request.d.ts +0 -0
  157. /package/dist/{meeting → types/meeting}/request.type.d.ts +0 -0
  158. /package/dist/{meeting → types/meeting}/state.d.ts +0 -0
  159. /package/dist/{meeting-info → types/meeting-info}/collection.d.ts +0 -0
  160. /package/dist/{meeting-info → types/meeting-info}/request.d.ts +0 -0
  161. /package/dist/{meetings → types/meetings}/collection.d.ts +0 -0
  162. /package/dist/{meetings → types/meetings}/meetings.types.d.ts +0 -0
  163. /package/dist/{meetings → types/meetings}/request.d.ts +0 -0
  164. /package/dist/{meetings → types/meetings}/util.d.ts +0 -0
  165. /package/dist/{member → types/member}/index.d.ts +0 -0
  166. /package/dist/{member → types/member}/types.d.ts +0 -0
  167. /package/dist/{member → types/member}/util.d.ts +0 -0
  168. /package/dist/{members → types/members}/collection.d.ts +0 -0
  169. /package/dist/{members → types/members}/index.d.ts +0 -0
  170. /package/dist/{members → types/members}/request.d.ts +0 -0
  171. /package/dist/{members → types/members}/types.d.ts +0 -0
  172. /package/dist/{members → types/members}/util.d.ts +0 -0
  173. /package/dist/{metrics → types/metrics}/constants.d.ts +0 -0
  174. /package/dist/{metrics → types/metrics}/index.d.ts +0 -0
  175. /package/dist/{multistream → types/multistream}/mediaRequestManager.d.ts +0 -0
  176. /package/dist/{multistream → types/multistream}/receiveSlot.d.ts +0 -0
  177. /package/dist/{multistream → types/multistream}/receiveSlotManager.d.ts +0 -0
  178. /package/dist/{multistream → types/multistream}/remoteMedia.d.ts +0 -0
  179. /package/dist/{multistream → types/multistream}/remoteMediaGroup.d.ts +0 -0
  180. /package/dist/{multistream → types/multistream}/remoteMediaManager.d.ts +0 -0
  181. /package/dist/{multistream → types/multistream}/sendSlotManager.d.ts +0 -0
  182. /package/dist/{networkQualityMonitor → types/networkQualityMonitor}/index.d.ts +0 -0
  183. /package/dist/{personal-meeting-room → types/personal-meeting-room}/index.d.ts +0 -0
  184. /package/dist/{personal-meeting-room → types/personal-meeting-room}/request.d.ts +0 -0
  185. /package/dist/{personal-meeting-room → types/personal-meeting-room}/util.d.ts +0 -0
  186. /package/dist/{reachability → types/reachability}/clusterReachability.d.ts +0 -0
  187. /package/dist/{reachability → types/reachability}/index.d.ts +0 -0
  188. /package/dist/{reachability → types/reachability}/request.d.ts +0 -0
  189. /package/dist/{reachability → types/reachability}/util.d.ts +0 -0
  190. /package/dist/{reactions → types/reactions}/constants.d.ts +0 -0
  191. /package/dist/{reactions → types/reactions}/reactions.d.ts +0 -0
  192. /package/dist/{reactions → types/reactions}/reactions.type.d.ts +0 -0
  193. /package/dist/{recording-controller → types/recording-controller}/enums.d.ts +0 -0
  194. /package/dist/{recording-controller → types/recording-controller}/index.d.ts +0 -0
  195. /package/dist/{recording-controller → types/recording-controller}/util.d.ts +0 -0
  196. /package/dist/{roap → types/roap}/index.d.ts +0 -0
  197. /package/dist/{roap → types/roap}/request.d.ts +0 -0
  198. /package/dist/{roap → types/roap}/turnDiscovery.d.ts +0 -0
  199. /package/dist/{rtcMetrics → types/rtcMetrics}/constants.d.ts +0 -0
  200. /package/dist/{rtcMetrics → types/rtcMetrics}/index.d.ts +0 -0
  201. /package/dist/{statsAnalyzer → types/statsAnalyzer}/global.d.ts +0 -0
  202. /package/dist/{statsAnalyzer → types/statsAnalyzer}/index.d.ts +0 -0
  203. /package/dist/{statsAnalyzer → types/statsAnalyzer}/mqaUtil.d.ts +0 -0
  204. /package/dist/{transcription → types/transcription}/index.d.ts +0 -0
  205. /package/dist/{webinar → types/webinar}/collection.d.ts +0 -0
  206. /package/dist/{webinar → types/webinar}/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_triggerProxy","_constants","_constants2","_reconnectionInProgress","_metrics","_reconnection","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","NeedsRetryError","_Error","_inherits2","_super","_classCallCheck2","_createClass2","_wrapNativeSuper2","Error","NeedsRejoinError","_Error2","_super2","_ref","_this","wasSharing","_ref$error","error","_defineProperty2","_assertThisInitialized2","ReconnectionManager","exports","meeting","iceState","disconnected","resolve","timer","undefined","timeoutDuration","config","reconnection","iceReconnectionTimeout","status","RECONNECTION","STATE","DEFAULT_STATUS","tryCount","DEFAULT_TRY_COUNT","webex","maxRejoinAttempts","rejoinAttempts","autoRejoinEnabled","autoRejoin","reset","key","value","resetReconnectionTimer","clearTimeout","iceReconnected","LoggerProxy","logger","log","waitForIceReconnect","_this2","_promise","reject","setTimeout","concat","cleanUp","_stopLocalShareStream","_asyncToGenerator2","_regenerator","mark","_callee","reason","wrap","_callee$","_context","prev","next","unpublishStreams","mediaProperties","shareVideoStream","shareAudioStream","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_STOPPED_SHARING_LOCAL","stop","stopLocalShareStream","_x","isReconnectInProgress","IN_PROGRESS","setStatus","validate","enabled","COMPLETE","info","ReconnectInProgress","ReconnectionError","_reconnect","_callee2","_ref2","_ref2$networkDisconne","networkDisconnect","_ref2$networkRetry","networkRetry","media","_args2","_callee2$","_context2","length","id","t0","internal","newMetrics","submitClientEvent","name","options","meetingId","meetings","startReachability","t1","executeReconnection","sent","abrupt","t2","reconnect","message","payload","errors","category","errorCode","fatal","shownToUser","rejoinMeeting","_executeReconnection","_callee3","_ref3","_ref3$networkDisconne","_callee3$","_context3","shareStatus","SHARE_STATUS","LOCAL_SHARE_ACTIVE","SHARE_STOPPED_REASON","MEDIA_RECONNECTION","reconnectMercuryWebSocket","device","url","FAILURE","syncMeetings","keepOnlyLocusMeetings","getMeetingByType","_ID_","state","_LEFT_","type","_CALL_","reconnectMedia","_x2","_rejoinMeeting","_callee4","_args4","_callee4$","_context4","join","rejoin","MEETING_REJOIN","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_MAX_REJOIN_FAILURE","locus_id","locusUrl","split","pop","stack","_reconnectMedia","_callee5","_turnServerResult$tur","turnServerResult","iceServers","_callee5$","_context5","roap","doTurnDiscovery","turnServerInfo","push","urls","username","credential","password","webrtcMediaConnection","isMultistream","_values","mediaRequestManagers","forEach","mediaRequestManager","clearPreviousRequests","commit","_reconnectMercuryWebSocket","_callee6","_callee6$","_context6","mercury","connected","disconnect","connect"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-disable no-warning-comments */\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport {\n EVENT_TRIGGERS,\n RECONNECTION,\n SHARE_STATUS,\n SHARE_STOPPED_REASON,\n _CALL_,\n _LEFT_,\n _ID_,\n RECONNECTION_STATE,\n} from '../constants';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\nimport ReconnectInProgress from '../common/errors/reconnection-in-progress';\nimport Metrics from '../metrics';\nimport Meeting from '../meeting';\nimport {MediaRequestManager} from '../multistream/mediaRequestManager';\nimport ReconnectionError from '../common/errors/reconnection';\n\n/**\n * Used to indicate that the reconnect logic needs to be retried.\n *\n * @class NeedsRetryError\n * @extends {Error}\n */\nclass NeedsRetryError extends Error {}\n\n/**\n * Used to indicate that the meeting needs to be rejoined, not just media reconnected\n *\n * @class NeedsRejoinError\n * @extends {Error}\n */\nclass NeedsRejoinError extends Error {\n wasSharing: any;\n\n /**\n * Creates an instance of NeedsRejoinError.\n * @param {Object} params\n * @param {boolean} params.wasSharing\n * @param {Error} params.error\n * @memberof NeedsRejoinError\n */\n constructor({\n wasSharing,\n error = new Error('Meeting needs to be rejoined'),\n }: {\n wasSharing?: boolean;\n error?: Error;\n }) {\n // @ts-ignore\n super(error);\n\n this.wasSharing = wasSharing;\n }\n}\n\n/**\n * @export\n * @class ReconnectionManager\n */\nexport default class ReconnectionManager {\n autoRejoinEnabled: any;\n iceState: any;\n maxRejoinAttempts: any;\n meeting: any;\n rejoinAttempts: any;\n shareStatus: any;\n status: any;\n tryCount: any;\n webex: any;\n /**\n * @param {Meeting} meeting\n */\n constructor(meeting: Meeting) {\n /**\n * Stores ICE reconnection state data.\n *\n * @instance\n * @type {Object}\n * @private\n * @memberof ReconnectionManager\n */\n this.iceState = {\n disconnected: false,\n resolve: () => {},\n timer: undefined,\n // @ts-ignore\n timeoutDuration: meeting.config.reconnection.iceReconnectionTimeout,\n };\n\n /**\n * @instance\n * @type {RECONNECTION_STATE}\n * @private\n * @memberof ReconnectionManager\n */\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\n /**\n * @instance\n * @type {Number}\n * @private\n * @memberof ReconnectionManager\n */\n this.tryCount = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof ReconnectionManager\n */\n // TODO : change this logic to not save the meeting instance\n // It gets complicated when meeting ends on remote side , We have a old meeting instance which is not up to date\n // @ts-ignore\n this.webex = meeting.webex;\n /**\n * @instance\n * @type {Meeting}\n * @private\n * @memberof ReconnectionManager\n */\n // TODO: try removing the circular dependency for meeting and reconnection manager\n // try moving this to meetings collection\n this.meeting = meeting;\n\n // @ts-ignore\n this.maxRejoinAttempts = meeting.config.reconnection.maxRejoinAttempts;\n this.rejoinAttempts = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\n // @ts-ignore\n this.autoRejoinEnabled = meeting.config.reconnection.autoRejoin;\n\n // Make sure reconnection state is in default\n this.reset();\n }\n\n /**\n * @public\n * @memberof ReconnectionManager\n * @returns {void}\n */\n resetReconnectionTimer() {\n this.iceState.resolve();\n this.iceState.resolve = () => {};\n\n if (this.iceState.timer) {\n clearTimeout(this.iceState.timer);\n delete this.iceState.timer;\n }\n }\n\n /**\n * Sets the iceState to connected and clears any disconnect timeouts and\n * related timeout data within the iceState.\n *\n * @returns {undefined}\n * @public\n * @memberof ReconnectionManager\n */\n public iceReconnected() {\n if (this.iceState.disconnected) {\n LoggerProxy.logger.log('ReconnectionManager:index#iceReconnected --> ice has reconnected');\n\n this.resetReconnectionTimer();\n\n this.iceState.disconnected = false;\n }\n }\n\n /**\n * Set the iceState to disconnected and generates a timeout that waits for the\n * iceState to reconnect and then resolves. If the ice state is already\n * processing a reconnect, it immediately resolves. Rejects if the timeout\n * duration is reached.\n *\n * @returns {Promise<undefined>}\n * @public\n * @memberof ReconnectionManager\n */\n public waitForIceReconnect() {\n if (!this.iceState.disconnected) {\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#waitForIceReconnect --> waiting for ice reconnect'\n );\n\n this.iceState.disconnected = true;\n\n return new Promise<void>((resolve, reject) => {\n this.iceState.timer = setTimeout(() => {\n if (this.iceState.disconnected === false) {\n resolve();\n } else {\n this.iceState.disconnected = false;\n reject(\n new Error(`ice reconnection did not occur in ${this.iceState.timeoutDuration}ms`)\n );\n }\n }, this.iceState.timeoutDuration);\n\n this.iceState.resolve = resolve;\n });\n }\n\n // return a resolved promise to prevent multiple catch executions of reconnect\n return Promise.resolve();\n }\n\n /**\n * @returns {undefined}\n * @public\n * @memberof ReconnectionManager\n */\n public reset() {\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\n this.tryCount = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\n this.rejoinAttempts = RECONNECTION.STATE.DEFAULT_TRY_COUNT;\n }\n\n /**\n * @returns {undefined}\n * @public\n * @memberof ReconnectionManager\n */\n public cleanUp() {\n this.reset();\n }\n\n /**\n * Stop the local share stream.\n *\n * @param {string} reason a {@link SHARE_STOPPED_REASON}\n * @returns {undefined}\n * @private\n * @memberof ReconnectionManager\n */\n private async stopLocalShareStream(reason: string) {\n await this.meeting.unpublishStreams([\n this.meeting.mediaProperties.shareVideoStream,\n this.meeting.mediaProperties.shareAudioStream,\n ]);\n Trigger.trigger(\n this.meeting,\n {\n file: 'reconnection-manager/index',\n function: 'stopLocalShareStream',\n },\n EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL,\n {\n reason,\n }\n );\n }\n\n /**\n * @public\n * @memberof ReconnectionManager\n * @returns {Boolean} true if reconnection operation is in progress\n */\n isReconnectInProgress() {\n return this.status === RECONNECTION.STATE.IN_PROGRESS;\n }\n\n /**\n * Sets the reconnection status\n *\n * @public\n * @param {RECONNECTION_STATE} status\n * @memberof ReconnectionManager\n * @returns {undefined}\n */\n public setStatus(status: RECONNECTION_STATE) {\n this.status = status;\n }\n\n /**\n * @returns {Boolean}\n * @throws {ReconnectionError}\n * @private\n * @memberof ReconnectionManager\n */\n private validate() {\n if (this.meeting.config.reconnection.enabled) {\n if (\n this.status === RECONNECTION.STATE.DEFAULT_STATUS ||\n this.status === RECONNECTION.STATE.COMPLETE\n ) {\n return true;\n }\n\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#validate --> Reconnection already in progress.'\n );\n\n throw new ReconnectInProgress('Reconnection already in progress.');\n }\n\n LoggerProxy.logger.info('ReconnectionManager:index#validate --> Reconnection is not enabled.');\n\n throw new ReconnectionError('Reconnection is not enabled.');\n }\n\n /**\n * Initiates a media reconnect for the active meeting\n * @param {Object} reconnectOptions\n * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened\n * @param {boolean} [reconnectOptions.networkRetry=false] indicates if we are retrying the reconnect\n * @returns {Promise}\n * @public\n * @memberof ReconnectionManager\n */\n public async reconnect({\n networkDisconnect = false,\n networkRetry = false,\n }: {\n networkDisconnect?: boolean;\n networkRetry?: boolean;\n } = {}) {\n LoggerProxy.logger.info(\n `ReconnectionManager:index#reconnect --> Reconnection start for meeting ${this.meeting.id}.`\n );\n // First, validate that we can reconnect, if not, it will throw an error\n try {\n this.validate();\n } catch (error) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Reconnection unable to begin.',\n error\n );\n throw error;\n }\n\n if (!networkRetry) {\n // Only log START metrics on the initial reconnect\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Sending reconnect start metric.'\n );\n\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.media.reconnecting',\n options: {\n meetingId: this.meeting.id,\n },\n });\n }\n\n try {\n await this.webex.meetings.startReachability();\n } catch (err) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Reachability failed, continuing with reconnection attempt, err: ',\n err\n );\n }\n\n try {\n const media = await this.executeReconnection({networkDisconnect});\n\n return media;\n } catch (reconnectError) {\n if (reconnectError instanceof NeedsRetryError) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Reconnection not successful, retrying.'\n );\n // Reset our reconnect status since we are looping back to the beginning\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\n\n // This is a network retry, so we should not log START metrics again\n return this.reconnect({networkDisconnect: true, networkRetry: true});\n }\n\n // Reconnect has failed\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#reconnect --> Reconnection failed.',\n reconnectError.message\n );\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Sending reconnect abort metric.'\n );\n\n // send call aborted event with catogery as expected as we are trying to rejoin\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.call.aborted',\n payload: {\n errors: [\n {\n category: 'expected',\n errorCode: 2008,\n fatal: true,\n name: 'media-engine',\n shownToUser: false,\n },\n ],\n },\n options: {\n meetingId: this.meeting.id,\n },\n });\n\n if (reconnectError instanceof NeedsRejoinError && this.autoRejoinEnabled) {\n return this.rejoinMeeting(reconnectError.wasSharing);\n }\n\n throw reconnectError;\n }\n }\n\n /**\n * @param {Object} reconnectOptions\n * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened\n * @returns {Promise}\n * @throws {NeedsRetryError}\n * @private\n * @memberof ReconnectionManager\n */\n private async executeReconnection({networkDisconnect = false}: {networkDisconnect?: boolean}) {\n this.status = RECONNECTION.STATE.IN_PROGRESS;\n\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Attempting to reconnect to meeting.'\n );\n\n const wasSharing = this.meeting.shareStatus === SHARE_STATUS.LOCAL_SHARE_ACTIVE;\n\n if (wasSharing) {\n await this.stopLocalShareStream(SHARE_STOPPED_REASON.MEDIA_RECONNECTION);\n }\n\n if (networkDisconnect) {\n try {\n await this.reconnectMercuryWebSocket();\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#executeReconnection --> Websocket reconnected.',\n this.webex.internal.device.url\n );\n } catch (error) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#executeReconnection --> Unable to reconnect to websocket, giving up.'\n );\n this.status = RECONNECTION.STATE.FAILURE;\n throw error;\n }\n }\n\n try {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Updating meeting data from server.'\n );\n await this.webex.meetings.syncMeetings({keepOnlyLocusMeetings: false});\n } catch (syncError) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.',\n syncError\n );\n throw new NeedsRetryError(syncError);\n }\n\n // TODO: try to improve this logic as the reconnection manager saves the instance of deleted meeting object\n // So that on rejoin it known what parametrs it was using\n if (!this.meeting || !this.webex.meetings.getMeetingByType(_ID_, this.meeting.id)) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely.'\n );\n\n throw new Error('Unable to rejoin a meeting already ended or inactive.');\n }\n\n LoggerProxy.logger.info(\n `ReconnectionManager:index#executeReconnection --> Current state of meeting is ${this.meeting.state}`\n );\n\n // If the meeting state was left, no longer reconnect media\n if (this.meeting.state === _LEFT_) {\n if (this.meeting.type === _CALL_) {\n throw new Error('Unable to rejoin a call in LEFT state.');\n }\n\n throw new NeedsRejoinError({wasSharing});\n }\n\n try {\n const media = await this.reconnectMedia();\n\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#executeReconnection --> webRTC media connection renewed and local sdp offer sent'\n );\n\n return media;\n } catch (error) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#executeReconnection --> failed to renew webRTC media connection or initiate offer'\n );\n this.status = RECONNECTION.STATE.FAILURE;\n\n throw error;\n }\n }\n\n /**\n * Rejoins a meeting after detecting the member was in a LEFT state\n *\n * @async\n * @param {boolean} wasSharing\n * @returns {Promise}\n */\n async rejoinMeeting(wasSharing = false) {\n try {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin'\n );\n\n await this.meeting.join({rejoin: true});\n LoggerProxy.logger.info('ReconnectionManager:index#rejoinMeeting --> meeting rejoined');\n\n if (wasSharing) {\n await this.stopLocalShareStream(SHARE_STOPPED_REASON.MEETING_REJOIN);\n }\n } catch (joinError) {\n this.rejoinAttempts += 1;\n if (this.rejoinAttempts <= this.maxRejoinAttempts) {\n LoggerProxy.logger.info(\n `ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #${this.rejoinAttempts}, retrying.`,\n joinError\n );\n this.rejoinMeeting();\n } else {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.',\n joinError\n );\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_MAX_REJOIN_FAILURE, {\n locus_id: this.meeting.locusUrl.split('/').pop(),\n reason: joinError.message,\n stack: joinError.stack,\n });\n this.status = RECONNECTION.STATE.FAILURE;\n throw joinError;\n }\n }\n\n try {\n await this.reconnectMedia();\n } catch (mediaError) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.',\n mediaError\n );\n throw mediaError;\n }\n }\n\n /**\n * @returns {Promise}\n * @private\n * @memberof ReconnectionManager\n */\n async reconnectMedia() {\n LoggerProxy.logger.log('ReconnectionManager:index#reconnectMedia --> do turn discovery');\n\n // do the TURN server discovery again and ignore reachability results since the TURN server might change\n const turnServerResult = await this.meeting.roap.doTurnDiscovery(this.meeting, true, true);\n\n const iceServers = [];\n\n if (turnServerResult.turnServerInfo?.url) {\n iceServers.push({\n urls: turnServerResult.turnServerInfo.url,\n username: turnServerResult.turnServerInfo.username || '',\n credential: turnServerResult.turnServerInfo.password || '',\n });\n }\n\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#reconnectMedia --> renew webRTC media connection and send local sdp offer'\n );\n\n await this.meeting.mediaProperties.webrtcMediaConnection.reconnect(iceServers);\n\n // resend media requests\n if (this.meeting.isMultistream) {\n Object.values(this.meeting.mediaRequestManagers).forEach(\n (mediaRequestManager: MediaRequestManager) => {\n mediaRequestManager.clearPreviousRequests();\n mediaRequestManager.commit();\n }\n );\n }\n }\n\n /**\n * Attempt to Reconnect Mercury Websocket\n * @returns {Promise}\n * @private\n * @memberof ReconnectionManager\n */\n private async reconnectMercuryWebSocket() {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.'\n );\n // First, attempt to disconnect if we think we are already connected.\n if (this.webex.internal.mercury.connected) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.'\n );\n try {\n await this.webex.internal.mercury.disconnect();\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.'\n );\n } catch (disconnectError) {\n // If we can't disconnect, the sdk is in such a bad state that reconnecting is not going to happen.\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.',\n disconnectError\n );\n throw disconnectError;\n }\n }\n\n try {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.'\n );\n await this.webex.internal.mercury.connect();\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.'\n );\n } catch (connectError) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.',\n connectError\n );\n\n throw connectError;\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_triggerProxy","_constants","_constants2","_reconnection","_reconnectionNotStarted","_metrics","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","NeedsRetryError","_Error","_inherits2","_super","_classCallCheck2","_createClass2","_wrapNativeSuper2","Error","NeedsRejoinError","_Error2","_super2","_ref","_this","wasSharing","_ref$error","error","_defineProperty2","_assertThisInitialized2","ReconnectionManager","exports","meeting","iceState","disconnected","resolve","timer","undefined","timeoutDuration","config","reconnection","iceReconnectionTimeout","status","RECONNECTION","STATE","DEFAULT_STATUS","webex","maxRejoinAttempts","rejoinAttempts","autoRejoinEnabled","autoRejoin","reset","key","value","resetReconnectionTimer","clearTimeout","iceReconnected","LoggerProxy","logger","log","waitForIceReconnect","_this2","_promise","reject","setTimeout","concat","cleanUp","_stopLocalShareStream","_asyncToGenerator2","_regenerator","mark","_callee","reason","wrap","_callee$","_context","prev","next","unpublishStreams","mediaProperties","shareVideoStream","shareAudioStream","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_STOPPED_SHARING_LOCAL","stop","stopLocalShareStream","_x","isReconnectInProgress","IN_PROGRESS","canStartReconnection","enabled","info","_reconnect","_callee2","_this3","_ref2","_ref2$networkDisconne","networkDisconnect","_ref2$networkRetry","networkRetry","completionCallback","triggerEvent","_args2","_callee2$","_context2","length","id","event","payload","ReconnectionNotStartedError","MEETING_RECONNECTION_STARTING","internal","newMetrics","submitClientEvent","name","options","meetingId","meetings","startReachability","t0","executeReconnection","t1","reconnect","abrupt","message","errors","category","errorCode","fatal","shownToUser","rejoinMeeting","MEETING_RECONNECTION_SUCCESS","recoveredBy","t2","MEETING_RECONNECTION_FAILURE","ReconnectionError","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_RECONNECT_FAILURE","correlation_id","correlationId","locus_id","locusUrl","split","pop","stack","finish","_executeReconnection","_callee3","_ref3","_ref3$networkDisconne","media","_callee3$","_context3","shareStatus","SHARE_STATUS","LOCAL_SHARE_ACTIVE","SHARE_STOPPED_REASON","MEDIA_RECONNECTION","reconnectMercuryWebSocket","device","url","FAILURE","syncMeetings","keepOnlyLocusMeetings","getMeetingByType","_ID_","state","_LEFT_","type","_CALL_","reconnectMedia","sent","_x2","_rejoinMeeting","_callee4","_args4","_callee4$","_context4","join","rejoin","MEETING_REJOIN","MEETING_MAX_REJOIN_FAILURE","_reconnectMedia","_callee5","_turnServerResult$tur","turnServerResult","iceServers","_callee5$","_context5","roap","doTurnDiscovery","turnServerInfo","push","urls","username","credential","password","webrtcMediaConnection","isMultistream","_values","mediaRequestManagers","forEach","mediaRequestManager","clearPreviousRequests","commit","_reconnectMercuryWebSocket","_callee6","_callee6$","_context6","mercury","connected","disconnect","connect"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-disable no-warning-comments */\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport {\n EVENT_TRIGGERS,\n RECONNECTION,\n SHARE_STATUS,\n SHARE_STOPPED_REASON,\n _CALL_,\n _LEFT_,\n _ID_,\n RECONNECTION_STATE,\n} from '../constants';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\nimport ReconnectionError from '../common/errors/reconnection';\nimport ReconnectionNotStartedError from '../common/errors/reconnection-not-started';\nimport Metrics from '../metrics';\nimport Meeting from '../meeting';\nimport {MediaRequestManager} from '../multistream/mediaRequestManager';\n\n/**\n * Used to indicate that the reconnect logic needs to be retried.\n *\n * @class NeedsRetryError\n * @extends {Error}\n */\nclass NeedsRetryError extends Error {}\n\n/**\n * Used to indicate that the meeting needs to be rejoined, not just media reconnected\n *\n * @class NeedsRejoinError\n * @extends {Error}\n */\nclass NeedsRejoinError extends Error {\n wasSharing: any;\n\n /**\n * Creates an instance of NeedsRejoinError.\n * @param {Object} params\n * @param {boolean} params.wasSharing\n * @param {Error} params.error\n * @memberof NeedsRejoinError\n */\n constructor({\n wasSharing,\n error = new Error('Meeting needs to be rejoined'),\n }: {\n wasSharing?: boolean;\n error?: Error;\n }) {\n // @ts-ignore\n super(error);\n\n this.wasSharing = wasSharing;\n }\n}\n\n/**\n * @export\n * @class ReconnectionManager\n */\nexport default class ReconnectionManager {\n autoRejoinEnabled: any;\n iceState: any;\n maxRejoinAttempts: any;\n meeting: any;\n rejoinAttempts: any;\n shareStatus: any;\n status: any;\n webex: any;\n /**\n * @param {Meeting} meeting\n */\n constructor(meeting: Meeting) {\n /**\n * Stores ICE reconnection state data.\n *\n * @instance\n * @type {Object}\n * @private\n * @memberof ReconnectionManager\n */\n this.iceState = {\n disconnected: false,\n resolve: () => {},\n timer: undefined,\n // @ts-ignore\n timeoutDuration: meeting.config.reconnection.iceReconnectionTimeout,\n };\n\n /**\n * @instance\n * @type {RECONNECTION_STATE}\n * @private\n * @memberof ReconnectionManager\n */\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof ReconnectionManager\n */\n // TODO : change this logic to not save the meeting instance\n // It gets complicated when meeting ends on remote side , We have a old meeting instance which is not up to date\n // @ts-ignore\n this.webex = meeting.webex;\n /**\n * @instance\n * @type {Meeting}\n * @private\n * @memberof ReconnectionManager\n */\n // TODO: try removing the circular dependency for meeting and reconnection manager\n // try moving this to meetings collection\n this.meeting = meeting;\n\n // @ts-ignore\n this.maxRejoinAttempts = meeting.config.reconnection.maxRejoinAttempts;\n this.rejoinAttempts = 0;\n // @ts-ignore\n this.autoRejoinEnabled = meeting.config.reconnection.autoRejoin;\n\n // Make sure reconnection state is in default\n this.reset();\n }\n\n /**\n * @public\n * @memberof ReconnectionManager\n * @returns {void}\n */\n resetReconnectionTimer() {\n this.iceState.resolve();\n this.iceState.resolve = () => {};\n\n if (this.iceState.timer) {\n clearTimeout(this.iceState.timer);\n delete this.iceState.timer;\n }\n }\n\n /**\n * Sets the iceState to connected and clears any disconnect timeouts and\n * related timeout data within the iceState.\n *\n * @returns {undefined}\n * @public\n * @memberof ReconnectionManager\n */\n public iceReconnected() {\n if (this.iceState.disconnected) {\n LoggerProxy.logger.log('ReconnectionManager:index#iceReconnected --> ice has reconnected');\n\n this.resetReconnectionTimer();\n\n this.iceState.disconnected = false;\n }\n }\n\n /**\n * Set the iceState to disconnected and generates a timeout that waits for the\n * iceState to reconnect and then resolves. If the ice state is already\n * processing a reconnect, it immediately resolves. Rejects if the timeout\n * duration is reached.\n *\n * @returns {Promise<undefined>}\n * @public\n * @memberof ReconnectionManager\n */\n public waitForIceReconnect() {\n if (!this.iceState.disconnected) {\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#waitForIceReconnect --> waiting for ice reconnect'\n );\n\n this.iceState.disconnected = true;\n\n return new Promise<void>((resolve, reject) => {\n this.iceState.timer = setTimeout(() => {\n if (this.iceState.disconnected === false) {\n resolve();\n } else {\n this.iceState.disconnected = false;\n reject(\n new Error(`ice reconnection did not occur in ${this.iceState.timeoutDuration}ms`)\n );\n }\n }, this.iceState.timeoutDuration);\n\n this.iceState.resolve = resolve;\n });\n }\n\n // return a resolved promise to prevent multiple catch executions of reconnect\n return Promise.resolve();\n }\n\n /**\n * @returns {undefined}\n * @public\n * @memberof ReconnectionManager\n */\n public reset() {\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\n this.rejoinAttempts = 0;\n }\n\n /**\n * @returns {undefined}\n * @public\n * @memberof ReconnectionManager\n */\n public cleanUp() {\n this.reset();\n }\n\n /**\n * Stop the local share stream.\n *\n * @param {string} reason a {@link SHARE_STOPPED_REASON}\n * @returns {undefined}\n * @private\n * @memberof ReconnectionManager\n */\n private async stopLocalShareStream(reason: string) {\n await this.meeting.unpublishStreams([\n this.meeting.mediaProperties.shareVideoStream,\n this.meeting.mediaProperties.shareAudioStream,\n ]);\n Trigger.trigger(\n this.meeting,\n {\n file: 'reconnection-manager/index',\n function: 'stopLocalShareStream',\n },\n EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL,\n {\n reason,\n }\n );\n }\n\n /**\n * @public\n * @memberof ReconnectionManager\n * @returns {Boolean} true if reconnection operation is in progress\n */\n isReconnectInProgress() {\n return this.status === RECONNECTION.STATE.IN_PROGRESS;\n }\n\n /**\n * @returns {Boolean}\n * @throws {ReconnectInProgress, ReconnectionDisabled}\n * @private\n * @memberof ReconnectionManager\n */\n private canStartReconnection() {\n if (this.meeting.config.reconnection.enabled) {\n if (this.status === RECONNECTION.STATE.DEFAULT_STATUS) {\n return true;\n }\n\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#canStartReconnection --> Reconnection already in progress.'\n );\n\n return false;\n }\n\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#canStartReconnection --> Reconnection is not enabled.'\n );\n\n return false;\n }\n\n /**\n * Initiates a media reconnect for the active meeting\n * @param {Object} reconnectOptions\n * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened\n * @param {boolean} [reconnectOptions.networkRetry=false] indicates if we are retrying the reconnect\n * @param {Function} [completionCallback] callback that gets called when reconnection is started successfully\n * @returns {Promise}\n * @public\n * @memberof ReconnectionManager\n */\n public async reconnect(\n {\n networkDisconnect = false,\n networkRetry = false,\n }: {\n networkDisconnect?: boolean;\n networkRetry?: boolean;\n } = {},\n completionCallback: (() => Promise<void>) | undefined = undefined\n ) {\n LoggerProxy.logger.info(\n `ReconnectionManager:index#reconnect --> Reconnection start for meeting ${this.meeting.id}.`\n );\n\n const triggerEvent = (event, payload = undefined) =>\n Trigger.trigger(\n this.meeting,\n {\n file: 'reconnection-manager/index',\n function: 'reconnect',\n },\n event,\n payload\n );\n\n if (!this.canStartReconnection()) {\n throw new ReconnectionNotStartedError();\n }\n\n try {\n this.status = RECONNECTION.STATE.IN_PROGRESS;\n\n triggerEvent(EVENT_TRIGGERS.MEETING_RECONNECTION_STARTING);\n\n if (!networkRetry) {\n // Only log START metrics on the initial reconnect\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Sending reconnect start metric.'\n );\n\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.media.reconnecting',\n options: {\n meetingId: this.meeting.id,\n },\n });\n }\n\n try {\n await this.webex.meetings.startReachability();\n } catch (err) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Reachability failed, continuing with reconnection attempt, err: ',\n err\n );\n }\n\n try {\n await this.executeReconnection({networkDisconnect});\n } catch (reconnectError) {\n if (reconnectError instanceof NeedsRetryError) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnect --> Reconnection not successful, retrying.'\n );\n // Reset our reconnect status since we are looping back to the beginning\n this.status = RECONNECTION.STATE.DEFAULT_STATUS;\n\n // This is a network retry, so we should not log START metrics again\n await this.reconnect({networkDisconnect: true, networkRetry: true}, completionCallback);\n\n return;\n }\n\n // Reconnect has failed\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#reconnect --> Reconnection failed.',\n reconnectError.message\n );\n\n // send call aborted event with category as expected as we are trying to rejoin\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.call.aborted',\n payload: {\n errors: [\n {\n category: 'expected',\n errorCode: 2008,\n fatal: true,\n name: 'media-engine',\n shownToUser: false,\n },\n ],\n },\n options: {\n meetingId: this.meeting.id,\n },\n });\n\n if (reconnectError instanceof NeedsRejoinError && this.autoRejoinEnabled) {\n await this.rejoinMeeting(reconnectError.wasSharing);\n\n return;\n }\n\n throw reconnectError;\n }\n\n // finalize the reconnection process by calling the completionCallback\n if (completionCallback) {\n await completionCallback();\n }\n\n triggerEvent(EVENT_TRIGGERS.MEETING_RECONNECTION_SUCCESS);\n\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.media.recovered',\n payload: {\n recoveredBy: 'new',\n },\n options: {\n meetingId: this.meeting.id,\n },\n });\n } catch (error) {\n triggerEvent(EVENT_TRIGGERS.MEETING_RECONNECTION_FAILURE, {\n error: new ReconnectionError('Reconnection failure event', error),\n });\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_RECONNECT_FAILURE, {\n correlation_id: this.meeting.correlationId,\n locus_id: this.meeting.locusUrl.split('/').pop(),\n reason: error.message,\n stack: error.stack,\n });\n\n throw new ReconnectionError('Reconnection failure event', error);\n } finally {\n this.reset();\n }\n }\n\n /**\n * @param {Object} reconnectOptions\n * @param {boolean} [reconnectOptions.networkDisconnect=false] indicates if a network disconnect event happened\n * @returns {Promise}\n * @throws {NeedsRetryError}\n * @private\n * @memberof ReconnectionManager\n */\n private async executeReconnection({networkDisconnect = false}: {networkDisconnect?: boolean}) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Attempting to reconnect to meeting.'\n );\n\n const wasSharing = this.meeting.shareStatus === SHARE_STATUS.LOCAL_SHARE_ACTIVE;\n\n if (wasSharing) {\n await this.stopLocalShareStream(SHARE_STOPPED_REASON.MEDIA_RECONNECTION);\n }\n\n if (networkDisconnect) {\n try {\n await this.reconnectMercuryWebSocket();\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#executeReconnection --> Websocket reconnected.',\n this.webex.internal.device.url\n );\n } catch (error) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#executeReconnection --> Unable to reconnect to websocket, giving up.'\n );\n this.status = RECONNECTION.STATE.FAILURE;\n throw error;\n }\n }\n\n try {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Updating meeting data from server.'\n );\n await this.webex.meetings.syncMeetings({keepOnlyLocusMeetings: false});\n } catch (syncError) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.',\n syncError\n );\n throw new NeedsRetryError(syncError);\n }\n\n // TODO: try to improve this logic as the reconnection manager saves the instance of deleted meeting object\n // So that on rejoin it known what parametrs it was using\n if (!this.meeting || !this.webex.meetings.getMeetingByType(_ID_, this.meeting.id)) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely.'\n );\n\n throw new Error('Unable to rejoin a meeting already ended or inactive.');\n }\n\n LoggerProxy.logger.info(\n `ReconnectionManager:index#executeReconnection --> Current state of meeting is ${this.meeting.state}`\n );\n\n // If the meeting state was left, no longer reconnect media\n if (this.meeting.state === _LEFT_) {\n if (this.meeting.type === _CALL_) {\n throw new Error('Unable to rejoin a call in LEFT state.');\n }\n\n throw new NeedsRejoinError({wasSharing});\n }\n\n try {\n const media = await this.reconnectMedia();\n\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#executeReconnection --> webRTC media connection renewed and local sdp offer sent'\n );\n\n return media;\n } catch (error) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#executeReconnection --> failed to renew webRTC media connection or initiate offer'\n );\n this.status = RECONNECTION.STATE.FAILURE;\n\n throw error;\n }\n }\n\n /**\n * Rejoins a meeting after detecting the member was in a LEFT state\n *\n * @async\n * @param {boolean} wasSharing\n * @returns {Promise}\n */\n async rejoinMeeting(wasSharing = false) {\n try {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin'\n );\n\n await this.meeting.join({rejoin: true});\n LoggerProxy.logger.info('ReconnectionManager:index#rejoinMeeting --> meeting rejoined');\n\n if (wasSharing) {\n await this.stopLocalShareStream(SHARE_STOPPED_REASON.MEETING_REJOIN);\n }\n } catch (joinError) {\n this.rejoinAttempts += 1;\n if (this.rejoinAttempts <= this.maxRejoinAttempts) {\n LoggerProxy.logger.info(\n `ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #${this.rejoinAttempts}, retrying.`,\n joinError\n );\n this.rejoinMeeting();\n } else {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.',\n joinError\n );\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_MAX_REJOIN_FAILURE, {\n locus_id: this.meeting.locusUrl.split('/').pop(),\n reason: joinError.message,\n stack: joinError.stack,\n });\n this.status = RECONNECTION.STATE.FAILURE;\n throw joinError;\n }\n }\n\n try {\n await this.reconnectMedia();\n } catch (mediaError) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.',\n mediaError\n );\n throw mediaError;\n }\n }\n\n /**\n * @returns {Promise}\n * @private\n * @memberof ReconnectionManager\n */\n async reconnectMedia() {\n LoggerProxy.logger.log('ReconnectionManager:index#reconnectMedia --> do turn discovery');\n\n // do the TURN server discovery again and ignore reachability results since the TURN server might change\n const turnServerResult = await this.meeting.roap.doTurnDiscovery(this.meeting, true, true);\n\n const iceServers = [];\n\n if (turnServerResult.turnServerInfo?.url) {\n iceServers.push({\n urls: turnServerResult.turnServerInfo.url,\n username: turnServerResult.turnServerInfo.username || '',\n credential: turnServerResult.turnServerInfo.password || '',\n });\n }\n\n LoggerProxy.logger.log(\n 'ReconnectionManager:index#reconnectMedia --> renew webRTC media connection and send local sdp offer'\n );\n\n await this.meeting.mediaProperties.webrtcMediaConnection.reconnect(iceServers);\n\n // resend media requests\n if (this.meeting.isMultistream) {\n Object.values(this.meeting.mediaRequestManagers).forEach(\n (mediaRequestManager: MediaRequestManager) => {\n mediaRequestManager.clearPreviousRequests();\n mediaRequestManager.commit();\n }\n );\n }\n }\n\n /**\n * Attempt to Reconnect Mercury Websocket\n * @returns {Promise}\n * @private\n * @memberof ReconnectionManager\n */\n private async reconnectMercuryWebSocket() {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.'\n );\n // First, attempt to disconnect if we think we are already connected.\n if (this.webex.internal.mercury.connected) {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.'\n );\n try {\n await this.webex.internal.mercury.disconnect();\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.'\n );\n } catch (disconnectError) {\n // If we can't disconnect, the sdk is in such a bad state that reconnecting is not going to happen.\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.',\n disconnectError\n );\n throw disconnectError;\n }\n }\n\n try {\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.'\n );\n await this.webex.internal.mercury.connect();\n LoggerProxy.logger.info(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.'\n );\n } catch (connectError) {\n LoggerProxy.logger.error(\n 'ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.',\n connectError\n );\n\n throw connectError;\n }\n }\n}\n"],"mappings":"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"}
@@ -105,12 +105,11 @@ var RoapRequest = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin
105
105
  key: "sendRoap",
106
106
  value: (function () {
107
107
  var _sendRoap = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
108
- var _this = this;
109
- var roapMessage, locusSelfUrl, mediaId, meetingId, locusMediaRequest, ipVersion, _yield$this$attachRea, localSdpWithReachabilityData, joinCookie;
108
+ var roapMessage, locusSelfUrl, mediaId, locusMediaRequest, ipVersion, _yield$this$attachRea, localSdpWithReachabilityData, joinCookie;
110
109
  return _regenerator.default.wrap(function _callee2$(_context2) {
111
110
  while (1) switch (_context2.prev = _context2.next) {
112
111
  case 0:
113
- roapMessage = options.roapMessage, locusSelfUrl = options.locusSelfUrl, mediaId = options.mediaId, meetingId = options.meetingId, locusMediaRequest = options.locusMediaRequest, ipVersion = options.ipVersion;
112
+ roapMessage = options.roapMessage, locusSelfUrl = options.locusSelfUrl, mediaId = options.mediaId, locusMediaRequest = options.locusMediaRequest, ipVersion = options.ipVersion;
114
113
  if (!mediaId) {
115
114
  _loggerProxy.default.logger.info('Roap:request#sendRoap --> sending empty mediaID');
116
115
  }
@@ -130,14 +129,6 @@ var RoapRequest = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin
130
129
  localSdpWithReachabilityData = _yield$this$attachRea.localSdp;
131
130
  joinCookie = _yield$this$attachRea.joinCookie;
132
131
  _loggerProxy.default.logger.info("Roap:request#sendRoap --> ".concat(locusSelfUrl, " \n ").concat(roapMessage.messageType, " \n seq:").concat(roapMessage.seq));
133
-
134
- // @ts-ignore
135
- this.webex.internal.newMetrics.submitClientEvent({
136
- name: 'client.locus.media.request',
137
- options: {
138
- meetingId: meetingId
139
- }
140
- });
141
132
  return _context2.abrupt("return", locusMediaRequest.send({
142
133
  type: 'RoapMessage',
143
134
  selfUrl: locusSelfUrl,
@@ -147,13 +138,6 @@ var RoapRequest = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin
147
138
  reachability: localSdpWithReachabilityData.reachability,
148
139
  ipVersion: ipVersion
149
140
  }).then(function (res) {
150
- // @ts-ignore
151
- _this.webex.internal.newMetrics.submitClientEvent({
152
- name: 'client.locus.media.response',
153
- options: {
154
- meetingId: meetingId
155
- }
156
- });
157
141
  // always it will be the first mediaConnection Object
158
142
  var mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];
159
143
  _loggerProxy.default.logger.debug("Roap:request#sendRoap --> response:".concat((0, _stringify.default)(mediaConnections, null, 2), "'\n StatusCode:'").concat(res.statusCode));
@@ -165,19 +149,11 @@ var RoapRequest = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin
165
149
  mediaConnections: res.body.mediaConnections
166
150
  });
167
151
  }).catch(function (err) {
168
- // @ts-ignore
169
- _this.webex.internal.newMetrics.submitClientEvent({
170
- name: 'client.locus.media.response',
171
- options: {
172
- meetingId: meetingId,
173
- rawError: err
174
- }
175
- });
176
152
  _loggerProxy.default.logger.error("Roap:request#sendRoap --> Error:", err);
177
153
  _loggerProxy.default.logger.error("Roap:request#sendRoapRequest --> roapMessage that caused error:".concat((0, _stringify.default)(roapMessage, null, 2), " + '\\n mediaId:'").concat(options.mediaId));
178
154
  throw err;
179
155
  }));
180
- case 13:
156
+ case 12:
181
157
  case "end":
182
158
  return _context2.stop();
183
159
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_loggerProxy","_interopRequireDefault","_constants","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","RoapRequest","exports","_StatelessWebexPlugin","_inherits2","_super","_classCallCheck2","_createClass2","key","value","_attachReachabilityData","_asyncToGenerator2","_regenerator","mark","_callee","localSdp","joinCookie","reachabilityResult","joinCookieRaw","wrap","_callee$","_context","prev","next","webex","meetings","reachability","getReachabilityResults","sent","_keys","boundedStorage","get","REACHABILITY","namespace","localStorageJoinCookie","catch","JSON","parse","LoggerProxy","logger","error","concat","abrupt","stop","attachReachabilityData","_x","_sendRoap","_callee2","options","_this","roapMessage","locusSelfUrl","mediaId","meetingId","locusMediaRequest","ipVersion","_yield$this$attachRea","localSdpWithReachabilityData","_callee2$","_context2","info","warn","_promise","reject","Error","messageType","seq","internal","newMetrics","submitClientEvent","name","send","type","selfUrl","then","res","mediaConnections","body","debug","_stringify","statusCode","locus","roapSeq","err","rawError","sendRoap","_x2","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {IP_VERSION, REACHABILITY} from '../constants';\nimport {LocusMediaRequest} from '../meeting/locusMediaRequest';\n\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Returns reachability data.\n * @param {Object} localSdp\n * @returns {Object}\n */\n async attachReachabilityData(localSdp) {\n let joinCookie;\n\n // @ts-ignore\n const reachabilityResult = await this.webex.meetings.reachability.getReachabilityResults();\n\n if (reachabilityResult && Object.keys(reachabilityResult).length) {\n localSdp.reachability = reachabilityResult;\n }\n\n // @ts-ignore\n const joinCookieRaw = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)\n .catch(() => {});\n\n if (joinCookieRaw) {\n try {\n joinCookie = JSON.parse(joinCookieRaw);\n } catch (e) {\n LoggerProxy.logger.error(\n `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`\n );\n }\n }\n\n return {localSdp, joinCookie};\n }\n\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {Object} options.roapMessage\n * @param {String} options.locusSelfUrl\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @param {String} options.meetingId\n * @param {IP_VERSION} options.ipVersion only required for offers\n * @returns {Promise} returns the response/failure of the request\n */\n async sendRoap(options: {\n roapMessage: any;\n locusSelfUrl: string;\n mediaId: string;\n meetingId: string;\n ipVersion?: IP_VERSION;\n locusMediaRequest?: LocusMediaRequest;\n }) {\n const {roapMessage, locusSelfUrl, mediaId, meetingId, locusMediaRequest, ipVersion} = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> sending empty mediaID');\n }\n\n if (!locusMediaRequest) {\n LoggerProxy.logger.warn(\n 'Roap:request#sendRoap --> locusMediaRequest unavailable, not sending roap'\n );\n\n return Promise.reject(new Error('sendRoap called when locusMediaRequest is undefined'));\n }\n const {localSdp: localSdpWithReachabilityData, joinCookie} = await this.attachReachabilityData({\n roapMessage,\n });\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> ${locusSelfUrl} \\n ${roapMessage.messageType} \\n seq:${roapMessage.seq}`\n );\n\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.request',\n options: {\n meetingId,\n },\n });\n\n return locusMediaRequest\n .send({\n type: 'RoapMessage',\n selfUrl: locusSelfUrl,\n joinCookie,\n mediaId,\n roapMessage,\n reachability: localSdpWithReachabilityData.reachability,\n ipVersion,\n })\n .then((res) => {\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {\n meetingId,\n },\n });\n // always it will be the first mediaConnection Object\n const mediaConnections =\n res.body.mediaConnections &&\n res.body.mediaConnections.length > 0 &&\n res.body.mediaConnections[0];\n\n LoggerProxy.logger.debug(\n `Roap:request#sendRoap --> response:${JSON.stringify(\n mediaConnections,\n null,\n 2\n )}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections}),\n };\n })\n .catch((err) => {\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {\n meetingId,\n rawError: err,\n },\n });\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:`, err);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> roapMessage that caused error:${JSON.stringify(\n roapMessage,\n null,\n 2\n )} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_webexCore","require","_loggerProxy","_interopRequireDefault","_constants","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","RoapRequest","exports","_StatelessWebexPlugin","_inherits2","_super","_classCallCheck2","_createClass2","key","value","_attachReachabilityData","_asyncToGenerator2","_regenerator","mark","_callee","localSdp","joinCookie","reachabilityResult","joinCookieRaw","wrap","_callee$","_context","prev","next","webex","meetings","reachability","getReachabilityResults","sent","_keys","boundedStorage","get","REACHABILITY","namespace","localStorageJoinCookie","catch","JSON","parse","LoggerProxy","logger","error","concat","abrupt","stop","attachReachabilityData","_x","_sendRoap","_callee2","options","roapMessage","locusSelfUrl","mediaId","locusMediaRequest","ipVersion","_yield$this$attachRea","localSdpWithReachabilityData","_callee2$","_context2","info","warn","_promise","reject","Error","messageType","seq","send","type","selfUrl","then","res","mediaConnections","body","debug","_stringify","statusCode","locus","roapSeq","err","sendRoap","_x2","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {IP_VERSION, REACHABILITY} from '../constants';\nimport {LocusMediaRequest} from '../meeting/locusMediaRequest';\n\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Returns reachability data.\n * @param {Object} localSdp\n * @returns {Object}\n */\n async attachReachabilityData(localSdp) {\n let joinCookie;\n\n // @ts-ignore\n const reachabilityResult = await this.webex.meetings.reachability.getReachabilityResults();\n\n if (reachabilityResult && Object.keys(reachabilityResult).length) {\n localSdp.reachability = reachabilityResult;\n }\n\n // @ts-ignore\n const joinCookieRaw = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)\n .catch(() => {});\n\n if (joinCookieRaw) {\n try {\n joinCookie = JSON.parse(joinCookieRaw);\n } catch (e) {\n LoggerProxy.logger.error(\n `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`\n );\n }\n }\n\n return {localSdp, joinCookie};\n }\n\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {Object} options.roapMessage\n * @param {String} options.locusSelfUrl\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @param {String} options.meetingId\n * @param {IP_VERSION} options.ipVersion only required for offers\n * @returns {Promise} returns the response/failure of the request\n */\n async sendRoap(options: {\n roapMessage: any;\n locusSelfUrl: string;\n mediaId: string;\n meetingId: string;\n ipVersion?: IP_VERSION;\n locusMediaRequest?: LocusMediaRequest;\n }) {\n const {roapMessage, locusSelfUrl, mediaId, locusMediaRequest, ipVersion} = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> sending empty mediaID');\n }\n\n if (!locusMediaRequest) {\n LoggerProxy.logger.warn(\n 'Roap:request#sendRoap --> locusMediaRequest unavailable, not sending roap'\n );\n\n return Promise.reject(new Error('sendRoap called when locusMediaRequest is undefined'));\n }\n const {localSdp: localSdpWithReachabilityData, joinCookie} = await this.attachReachabilityData({\n roapMessage,\n });\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> ${locusSelfUrl} \\n ${roapMessage.messageType} \\n seq:${roapMessage.seq}`\n );\n\n return locusMediaRequest\n .send({\n type: 'RoapMessage',\n selfUrl: locusSelfUrl,\n joinCookie,\n mediaId,\n roapMessage,\n reachability: localSdpWithReachabilityData.reachability,\n ipVersion,\n })\n .then((res) => {\n // always it will be the first mediaConnection Object\n const mediaConnections =\n res.body.mediaConnections &&\n res.body.mediaConnections.length > 0 &&\n res.body.mediaConnections[0];\n\n LoggerProxy.logger.debug(\n `Roap:request#sendRoap --> response:${JSON.stringify(\n mediaConnections,\n null,\n 2\n )}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections}),\n };\n })\n .catch((err) => {\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:`, err);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> roapMessage that caused error:${JSON.stringify(\n roapMessage,\n null,\n 2\n )} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"],"mappings":"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"}
@@ -923,6 +923,8 @@ var StatsAnalyzer = exports.StatsAnalyzer = /*#__PURE__*/function (_EventsScope)
923
923
  this.statsResults[mediaType][sendrecvType].totalBytesSent = result.bytesSent;
924
924
  this.statsResults[mediaType][sendrecvType].headerBytesSent = result.headerBytesSent;
925
925
  this.statsResults[mediaType][sendrecvType].retransmittedBytesSent = result.retransmittedBytesSent;
926
+ this.statsResults[mediaType][sendrecvType].requestedBitrate = result.requestedBitrate;
927
+ this.statsResults[mediaType][sendrecvType].requestedFrameSize = result.requestedFrameSize;
926
928
  }
927
929
  }
928
930
 
@@ -996,6 +998,8 @@ var StatsAnalyzer = exports.StatsAnalyzer = /*#__PURE__*/function (_EventsScope)
996
998
  this.statsResults[mediaType][sendrecvType].totalPacketsLost = 0;
997
999
  }
998
1000
  this.statsResults[mediaType][sendrecvType].lastPacketReceivedTimestamp = result.lastPacketReceivedTimestamp;
1001
+ this.statsResults[mediaType][sendrecvType].requestedBitrate = result.requestedBitrate;
1002
+ this.statsResults[mediaType][sendrecvType].requestedFrameSize = result.requestedFrameSize;
999
1003
 
1000
1004
  // From Thin
1001
1005
  this.statsResults[mediaType][sendrecvType].totalNackCount = result.nackCount;