@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":["_lodash","require","_constants","getTotalValueFromBaseType","stats","sendrecvType","baseMediaType","value","_keys","default","filter","mt","includes","reduce","acc","_stats$mt","_stats$mt$sendrecvTyp","getAudioReceiverMqa","exports","_ref","_statsResults$Object$","audioReceiver","statsResults","lastMqaDataSent","STATS","RECEIVE_DIRECTION","getLastTotalValue","getTotalValue","lastPacketsReceived","lastPacketsLost","lastBytesReceived","lastFecPacketsReceived","lastFecPacketsDiscarded","totalPacketsReceived","packetsLost","totalBytesReceived","totalFecPacketsReceived","totalFecPacketsDiscarded","common","direction","find","mediaType","isMain","transportType","connectionType","local","transport","rtpPackets","totalPacketsLost","mediaHopByHopLost","rtpHopByHopLost","fecRecovered","fecPackets","rtpBitrate","getAudioReceiverStreamMqa","_ref2","_lastMqaDataSent$medi","_lastMqaDataSent$medi2","_lastMqaDataSent$medi3","_lastMqaDataSent$medi4","_lastMqaDataSent$medi5","_lastMqaDataSent$medi6","_lastMqaDataSent$medi7","_lastMqaDataSent$medi8","audioReceiverStream","lastPacketsDecoded","totalSamplesDecoded","lastSamplesReceived","totalSamplesReceived","lastConcealedSamples","concealedSamples","fecPacketsReceived","fecPacketsDiscarded","csi","push","maxRtpJitter","max","meanRtpJitter","mean","rtpJitter","rtpEndToEndLost","framesDropped","renderedFrameRate","framesReceived","concealedFrames","receivedBitrate","getAudioSenderMqa","_ref3","_statsResults$Object$2","audioSender","SEND_DIRECTION","lastPacketsSent","lastPacketsLostTotal","totalPacketsLostOnReceiver","totalPacketsSent","meanRemoteJitter","concat","meanRoundTripTime","maxRemoteJitter","availableBitrate","totalPacketsLostForaMin","remoteLossRate","maxRoundTripTime","roundTripTime","totalBytesSentInaMin","getAudioSenderStreamMqa","_ref4","_lastMqaDataSent$medi9","_lastMqaDataSent$medi10","_lastMqaDataSent$medi11","_lastMqaDataSent$medi12","audioSenderStream","lastBytesSent","totalBytesSent","lastFramesEncoded","totalKeyFramesEncoded","lastFirCount","totalFirCount","transmittedBitrate","transmittedKeyFrames","requestedKeyFrames","getVideoReceiverMqa","_ref5","_statsResults$Object$3","videoReceiver","totalBytesReceivedInaMin","getVideoReceiverStreamMqa","_ref6","_lastMqaDataSent$medi13","_lastMqaDataSent$medi14","_lastMqaDataSent$medi15","_lastMqaDataSent$medi16","_lastMqaDataSent$medi17","_lastMqaDataSent$medi18","_lastMqaDataSent$medi19","_lastMqaDataSent$medi20","videoReceiverStream","lastFramesReceived","lastFramesDecoded","framesDecoded","lastFramesDropped","lastKeyFramesDecoded","keyFramesDecoded","lastPliCount","totalPliCount","totalPacketLoss","totalFrameReceivedInaMin","totalFrameDecodedInaMin","receivedFrameRate","Math","round","receivedHeight","height","receivedWidth","width","receivedFrameSize","receivedKeyFrames","getVideoSenderMqa","_ref7","_statsResults$Object$4","videoSender","availableOutgoingBitrate","getVideoSenderStreamMqa","_ref8","_lastMqaDataSent$medi21","_lastMqaDataSent$medi22","_lastMqaDataSent$medi23","_lastMqaDataSent$medi24","_lastMqaDataSent$medi25","videoSenderStream","lastKeyFramesEncoded","lastFramesSent","framesSent","totalFrameSentInaMin","transmittedFrameRate","transmittedHeight","transmittedWidth","transmittedFrameSize"],"sources":["mqaUtil.ts"],"sourcesContent":["/* eslint-disable no-param-reassign, prefer-destructuring */\n\nimport {mean, max} from 'lodash';\n\nimport {STATS} from '../constants';\n\n/**\n * Get the totals of a certain value from a certain media type.\n *\n * @param {object} stats - The large stats object.\n * @param {string} sendrecvType - \"send\" or \"recv\".\n * @param {string} baseMediaType - audio or video _and_ share or non-share.\n * @param {string} value - The value we want to get the totals of.\n * @returns {number}\n */\nconst getTotalValueFromBaseType = (\n stats: object,\n sendrecvType: string,\n baseMediaType: string,\n value: string\n): number =>\n Object.keys(stats)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc + (stats[mt]?.[sendrecvType]?.[value] || 0), 0);\n\nexport const getAudioReceiverMqa = ({\n audioReceiver,\n statsResults,\n lastMqaDataSent,\n baseMediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsReceived = getLastTotalValue('totalPacketsReceived');\n const lastPacketsLost = getLastTotalValue('totalPacketsLost');\n const lastBytesReceived = getLastTotalValue('totalBytesReceived');\n const lastFecPacketsReceived = getLastTotalValue('fecPacketsReceived');\n const lastFecPacketsDiscarded = getLastTotalValue('fecPacketsDiscarded');\n\n const totalPacketsReceived = getTotalValue('totalPacketsReceived');\n const packetsLost = getTotalValue('totalPacketsLost');\n const totalBytesReceived = getTotalValue('totalBytesReceived');\n const totalFecPacketsReceived = getTotalValue('fecPacketsReceived');\n const totalFecPacketsDiscarded = getTotalValue('fecPacketsDiscarded');\n\n audioReceiver.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n audioReceiver.common.common.isMain = !baseMediaType.includes('-share');\n audioReceiver.common.transportType = statsResults.connectionType.local.transport;\n\n // add rtpPacket info inside common as also for call analyzer\n audioReceiver.common.rtpPackets = totalPacketsReceived - lastPacketsReceived;\n\n // Hop by hop are numbers and not percentage so we compare on what we sent the last min\n // collect the packets received for the last min\n const totalPacketsLost = packetsLost - lastPacketsLost;\n audioReceiver.common.mediaHopByHopLost = totalPacketsLost;\n audioReceiver.common.rtpHopByHopLost = totalPacketsLost;\n\n const fecRecovered =\n totalFecPacketsReceived -\n lastFecPacketsReceived -\n (totalFecPacketsDiscarded - lastFecPacketsDiscarded);\n audioReceiver.common.fecPackets = fecRecovered;\n\n audioReceiver.common.rtpBitrate = ((totalBytesReceived - lastBytesReceived) * 8) / 60 || 0;\n};\n\nexport const getAudioReceiverStreamMqa = ({\n audioReceiverStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesDecoded || 0;\n const lastSamplesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesReceived || 0;\n const lastConcealedSamples = lastMqaDataSent[mediaType]?.[sendrecvType].concealedSamples || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFecPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsReceived || 0;\n const lastFecPacketsDiscarded =\n lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsDiscarded || 0;\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioReceiverStream.common.csi.includes(csi)) {\n audioReceiverStream.common.csi.push(csi);\n }\n\n audioReceiverStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n\n audioReceiverStream.common.maxRtpJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiverStream.common.meanRtpJitter =\n mean(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiverStream.common.rtpJitter = audioReceiverStream.common.maxRtpJitter;\n\n // Fec packets do come in as part of the FEC only for audio\n const fecRecovered =\n statsResults[mediaType][sendrecvType].fecPacketsReceived -\n lastFecPacketsReceived -\n (statsResults[mediaType][sendrecvType].fecPacketsDiscarded - lastFecPacketsDiscarded);\n\n audioReceiverStream.common.rtpEndToEndLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost - fecRecovered || 0;\n\n audioReceiverStream.common.framesDropped =\n statsResults[mediaType][sendrecvType].totalSamplesDecoded - lastPacketsDecoded || 0;\n audioReceiverStream.common.renderedFrameRate =\n (audioReceiverStream.common.framesDropped * 100) / 60 || 0;\n\n audioReceiverStream.common.framesReceived =\n statsResults[mediaType][sendrecvType].totalSamplesReceived - lastSamplesReceived || 0;\n audioReceiverStream.common.concealedFrames =\n statsResults[mediaType][sendrecvType].concealedSamples - lastConcealedSamples || 0;\n audioReceiverStream.common.receivedBitrate =\n ((statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived) * 8) / 60 || 0;\n};\n\nexport const getAudioSenderMqa = ({audioSender, statsResults, lastMqaDataSent, baseMediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsSent = getLastTotalValue('totalPacketsSent');\n const lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');\n\n const totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');\n const totalPacketsSent = getTotalValue('totalPacketsSent');\n\n const meanRemoteJitter = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter), []);\n const meanRoundTripTime = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRoundTripTime), []);\n\n audioSender.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n audioSender.common.common.isMain = !baseMediaType.includes('-share');\n audioSender.common.transportType = statsResults.connectionType.local.transport;\n\n audioSender.common.maxRemoteJitter = max(meanRemoteJitter) * 1000 || 0;\n audioSender.common.meanRemoteJitter = mean(meanRemoteJitter) * 1000 || 0;\n\n audioSender.common.rtpPackets = totalPacketsSent - lastPacketsSent || 0;\n // audioSender.streams[0].common.rtpPackets = audioSender.common.rtpPackets;\n // From candidate-pair\n audioSender.common.availableBitrate = getTotalValueFromBaseType(\n statsResults,\n sendrecvType,\n baseMediaType,\n 'availableOutgoingBitrate'\n );\n // Calculate based on how much packets lost of received compated to how to the client sent\n\n const totalPacketsLostForaMin = totalPacketsLostOnReceiver - lastPacketsLostTotal;\n audioSender.common.remoteLossRate =\n totalPacketsSent - lastPacketsSent > 0\n ? (totalPacketsLostForaMin * 100) / (totalPacketsSent - lastPacketsSent)\n : 0; // This is the packets sent with in last min\n\n audioSender.common.maxRoundTripTime = max(meanRoundTripTime) * 1000 || 0;\n audioSender.common.meanRoundTripTime = mean(meanRoundTripTime) * 1000 || 0;\n audioSender.common.roundTripTime = audioSender.common.maxRoundTripTime;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin =\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, 'totalBytesSent') -\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, 'totalBytesSent');\n\n audioSender.common.rtpBitrate = totalBytesSentInaMin ? (totalBytesSentInaMin * 8) / 60 : 0;\n};\n\nexport const getAudioSenderStreamMqa = ({\n audioSenderStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastFramesEncoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioSenderStream.common.csi.includes(csi)) {\n audioSenderStream.common.csi.push(csi);\n }\n\n audioSenderStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n audioSenderStream.common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n\n audioSenderStream.transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastFramesEncoded || 0;\n audioSenderStream.requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n};\n\nexport const getVideoReceiverMqa = ({\n videoReceiver,\n statsResults,\n lastMqaDataSent,\n baseMediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsReceived = getLastTotalValue('totalPacketsReceived');\n const lastPacketsLost = getLastTotalValue('totalPacketsLost');\n const lastBytesReceived = getLastTotalValue('totalBytesReceived');\n\n const packetsLost = getTotalValue('totalPacketsLost');\n const totalPacketsReceived = getTotalValue('totalPacketsReceived');\n const totalBytesReceived = getTotalValue('totalBytesReceived');\n\n const meanRemoteJitter = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter), []);\n\n videoReceiver.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n videoReceiver.common.common.isMain = !baseMediaType.includes('-share');\n videoReceiver.common.transportType = statsResults.connectionType.local.transport;\n\n // collect the packets received for the last min\n videoReceiver.common.rtpPackets = totalPacketsReceived - lastPacketsReceived || 0;\n\n // Hop by hop are numbers and not percentage so we compare on what we sent the last min\n // this is including packet lost\n const totalPacketsLost = packetsLost - lastPacketsLost;\n videoReceiver.common.mediaHopByHopLost = totalPacketsLost;\n videoReceiver.common.rtpHopByHopLost = totalPacketsLost;\n\n // calculate this values\n videoReceiver.common.maxRemoteJitter = max(meanRemoteJitter) * 1000 || 0;\n videoReceiver.common.meanRemoteJitter = mean(meanRemoteJitter) * 1000 || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesReceivedInaMin = totalBytesReceived - lastBytesReceived;\n\n videoReceiver.common.rtpBitrate = totalBytesReceivedInaMin\n ? (totalBytesReceivedInaMin * 8) / 60\n : 0;\n};\n\nexport const getVideoReceiverStreamMqa = ({\n videoReceiverStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFramesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].framesReceived || 0;\n const lastFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].framesDecoded || 0;\n const lastFramesDropped = lastMqaDataSent[mediaType]?.[sendrecvType].framesDropped || 0;\n const lastKeyFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].keyFramesDecoded || 0;\n const lastPliCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalPliCount || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !videoReceiverStream.common.csi.includes(csi)) {\n videoReceiverStream.common.csi.push(csi);\n }\n\n videoReceiverStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n\n const totalPacketLoss =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n\n // End to end packetloss is after recovery\n videoReceiverStream.common.rtpEndToEndLost = totalPacketLoss;\n\n videoReceiverStream.common.rtpJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n const totalBytesReceivedInaMin =\n statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived;\n videoReceiverStream.common.receivedBitrate = totalBytesReceivedInaMin\n ? (totalBytesReceivedInaMin * 8) / 60\n : 0;\n\n const totalFrameReceivedInaMin =\n statsResults[mediaType][sendrecvType].framesReceived - lastFramesReceived;\n const totalFrameDecodedInaMin =\n statsResults[mediaType][sendrecvType].framesDecoded - lastFramesDecoded;\n\n videoReceiverStream.common.receivedFrameRate = Math.round(\n totalFrameReceivedInaMin ? totalFrameReceivedInaMin / 60 : 0\n );\n videoReceiverStream.common.renderedFrameRate = Math.round(\n totalFrameDecodedInaMin ? totalFrameDecodedInaMin / 60 : 0\n );\n\n videoReceiverStream.common.framesDropped =\n statsResults[mediaType][sendrecvType].framesDropped - lastFramesDropped || 0;\n videoReceiverStream.receivedHeight = statsResults[mediaType][sendrecvType].height || 0;\n videoReceiverStream.receivedWidth = statsResults[mediaType][sendrecvType].width || 0;\n videoReceiverStream.receivedFrameSize =\n (videoReceiverStream.receivedHeight * videoReceiverStream.receivedWidth) / 256;\n\n videoReceiverStream.receivedKeyFrames =\n statsResults[mediaType][sendrecvType].keyFramesDecoded - lastKeyFramesDecoded || 0;\n videoReceiverStream.requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalPliCount - lastPliCount || 0;\n};\n\nexport const getVideoSenderMqa = ({videoSender, statsResults, lastMqaDataSent, baseMediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsSent = getLastTotalValue('totalPacketsSent');\n const lastBytesSent = getLastTotalValue('totalBytesSent');\n const lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');\n\n const totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');\n const totalPacketsSent = getTotalValue('totalPacketsSent');\n const totalBytesSent = getTotalValue('totalBytesSent');\n const availableOutgoingBitrate = getTotalValue('availableOutgoingBitrate');\n\n videoSender.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n videoSender.common.common.isMain = !baseMediaType.includes('-share');\n videoSender.common.transportType = statsResults.connectionType.local.transport;\n\n const meanRemoteJitter = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter), []);\n const meanRoundTripTime = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRoundTripTime), []);\n\n // @ts-ignore\n videoSender.common.maxRemoteJitter = max(meanRemoteJitter) * 1000 || 0;\n videoSender.common.meanRemoteJitter = mean(meanRemoteJitter) * 1000 || 0;\n\n videoSender.common.rtpPackets = totalPacketsSent - lastPacketsSent;\n videoSender.common.availableBitrate = availableOutgoingBitrate;\n\n // Calculate based on how much packets lost of received compated to how to the client sent\n const totalPacketsLostForaMin = totalPacketsLostOnReceiver - lastPacketsLostTotal;\n\n videoSender.common.remoteLossRate =\n totalPacketsSent - lastPacketsSent > 0\n ? (totalPacketsLostForaMin * 100) / (totalPacketsSent - lastPacketsSent)\n : 0; // This is the packets sent with in last min || 0;\n\n videoSender.common.maxRoundTripTime = max(meanRoundTripTime) * 1000 || 0;\n videoSender.common.meanRoundTripTime = mean(meanRoundTripTime) * 1000 || 0;\n videoSender.common.roundTripTime = videoSender.common.maxRoundTripTime;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = totalBytesSent - lastBytesSent;\n\n videoSender.common.rtpBitrate = totalBytesSentInaMin ? (totalBytesSentInaMin * 8) / 60 : 0;\n};\n\nexport const getVideoSenderStreamMqa = ({\n videoSenderStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastKeyFramesEncoded =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n const lastFramesSent = lastMqaDataSent[mediaType]?.[sendrecvType].framesSent || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !videoSenderStream.common.csi.includes(csi)) {\n videoSenderStream.common.csi.push(csi);\n }\n\n videoSenderStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n\n videoSenderStream.common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n\n videoSenderStream.transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastKeyFramesEncoded || 0;\n videoSenderStream.requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n\n // From tracks //TODO: calculate a proper one\n const totalFrameSentInaMin =\n statsResults[mediaType][sendrecvType].framesSent - (lastFramesSent || 0);\n\n videoSenderStream.common.transmittedFrameRate = Math.round(\n totalFrameSentInaMin ? totalFrameSentInaMin / 60 : 0\n );\n videoSenderStream.transmittedHeight = statsResults[mediaType][sendrecvType].height || 0;\n videoSenderStream.transmittedWidth = statsResults[mediaType][sendrecvType].width || 0;\n videoSenderStream.transmittedFrameSize =\n (videoSenderStream.transmittedHeight * videoSenderStream.transmittedWidth) / 256;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","require","_constants","getTotalValueFromBaseType","stats","sendrecvType","baseMediaType","value","_keys","default","filter","mt","includes","reduce","acc","_stats$mt","_stats$mt$sendrecvTyp","getAudioReceiverMqa","exports","_ref","_statsResults$Object$","audioReceiver","statsResults","lastMqaDataSent","STATS","RECEIVE_DIRECTION","getLastTotalValue","getTotalValue","lastPacketsReceived","lastPacketsLost","lastBytesReceived","lastFecPacketsReceived","lastFecPacketsDiscarded","totalPacketsReceived","packetsLost","totalBytesReceived","totalFecPacketsReceived","totalFecPacketsDiscarded","common","direction","find","mediaType","isMain","transportType","connectionType","local","transport","rtpPackets","totalPacketsLost","mediaHopByHopLost","rtpHopByHopLost","fecRecovered","fecPackets","rtpBitrate","getAudioReceiverStreamMqa","_ref2","_lastMqaDataSent$medi","_lastMqaDataSent$medi2","_lastMqaDataSent$medi3","_lastMqaDataSent$medi4","_lastMqaDataSent$medi5","_lastMqaDataSent$medi6","_lastMqaDataSent$medi7","_lastMqaDataSent$medi8","audioReceiverStream","lastPacketsDecoded","totalSamplesDecoded","lastSamplesReceived","totalSamplesReceived","lastConcealedSamples","concealedSamples","fecPacketsReceived","fecPacketsDiscarded","csi","push","maxRtpJitter","max","meanRtpJitter","mean","rtpJitter","rtpEndToEndLost","framesDropped","renderedFrameRate","framesReceived","concealedFrames","receivedBitrate","getAudioSenderMqa","_ref3","_statsResults$Object$2","audioSender","SEND_DIRECTION","lastPacketsSent","lastPacketsLostTotal","totalPacketsLostOnReceiver","totalPacketsSent","meanRemoteJitter","concat","meanRoundTripTime","maxRemoteJitter","availableBitrate","totalPacketsLostForaMin","remoteLossRate","maxRoundTripTime","roundTripTime","totalBytesSentInaMin","getAudioSenderStreamMqa","_ref4","_lastMqaDataSent$medi9","_lastMqaDataSent$medi10","_lastMqaDataSent$medi11","_lastMqaDataSent$medi12","audioSenderStream","lastBytesSent","totalBytesSent","lastFramesEncoded","totalKeyFramesEncoded","lastFirCount","totalFirCount","transmittedBitrate","transmittedKeyFrames","requestedKeyFrames","requestedBitrate","getVideoReceiverMqa","_ref5","_statsResults$Object$3","videoReceiver","totalBytesReceivedInaMin","getVideoReceiverStreamMqa","_ref6","_lastMqaDataSent$medi13","_lastMqaDataSent$medi14","_lastMqaDataSent$medi15","_lastMqaDataSent$medi16","_lastMqaDataSent$medi17","_lastMqaDataSent$medi18","_lastMqaDataSent$medi19","_lastMqaDataSent$medi20","videoReceiverStream","lastFramesReceived","lastFramesDecoded","framesDecoded","lastFramesDropped","lastKeyFramesDecoded","keyFramesDecoded","lastPliCount","totalPliCount","totalPacketLoss","totalFrameReceivedInaMin","totalFrameDecodedInaMin","receivedFrameRate","Math","round","receivedHeight","height","receivedWidth","width","receivedFrameSize","receivedKeyFrames","getVideoSenderMqa","_ref7","_statsResults$Object$4","videoSender","availableOutgoingBitrate","getVideoSenderStreamMqa","_ref8","_lastMqaDataSent$medi21","_lastMqaDataSent$medi22","_lastMqaDataSent$medi23","_lastMqaDataSent$medi24","_lastMqaDataSent$medi25","videoSenderStream","lastKeyFramesEncoded","lastFramesSent","framesSent","totalFrameSentInaMin","transmittedFrameRate","transmittedHeight","transmittedWidth","transmittedFrameSize","requestedFrameSize"],"sources":["mqaUtil.ts"],"sourcesContent":["/* eslint-disable no-param-reassign, prefer-destructuring */\n\nimport {mean, max} from 'lodash';\n\nimport {STATS} from '../constants';\n\n/**\n * Get the totals of a certain value from a certain media type.\n *\n * @param {object} stats - The large stats object.\n * @param {string} sendrecvType - \"send\" or \"recv\".\n * @param {string} baseMediaType - audio or video _and_ share or non-share.\n * @param {string} value - The value we want to get the totals of.\n * @returns {number}\n */\nconst getTotalValueFromBaseType = (\n stats: object,\n sendrecvType: string,\n baseMediaType: string,\n value: string\n): number =>\n Object.keys(stats)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc + (stats[mt]?.[sendrecvType]?.[value] || 0), 0);\n\nexport const getAudioReceiverMqa = ({\n audioReceiver,\n statsResults,\n lastMqaDataSent,\n baseMediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsReceived = getLastTotalValue('totalPacketsReceived');\n const lastPacketsLost = getLastTotalValue('totalPacketsLost');\n const lastBytesReceived = getLastTotalValue('totalBytesReceived');\n const lastFecPacketsReceived = getLastTotalValue('fecPacketsReceived');\n const lastFecPacketsDiscarded = getLastTotalValue('fecPacketsDiscarded');\n\n const totalPacketsReceived = getTotalValue('totalPacketsReceived');\n const packetsLost = getTotalValue('totalPacketsLost');\n const totalBytesReceived = getTotalValue('totalBytesReceived');\n const totalFecPacketsReceived = getTotalValue('fecPacketsReceived');\n const totalFecPacketsDiscarded = getTotalValue('fecPacketsDiscarded');\n\n audioReceiver.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n audioReceiver.common.common.isMain = !baseMediaType.includes('-share');\n audioReceiver.common.transportType = statsResults.connectionType.local.transport;\n\n // add rtpPacket info inside common as also for call analyzer\n audioReceiver.common.rtpPackets = totalPacketsReceived - lastPacketsReceived;\n\n // Hop by hop are numbers and not percentage so we compare on what we sent the last min\n // collect the packets received for the last min\n const totalPacketsLost = packetsLost - lastPacketsLost;\n audioReceiver.common.mediaHopByHopLost = totalPacketsLost;\n audioReceiver.common.rtpHopByHopLost = totalPacketsLost;\n\n const fecRecovered =\n totalFecPacketsReceived -\n lastFecPacketsReceived -\n (totalFecPacketsDiscarded - lastFecPacketsDiscarded);\n audioReceiver.common.fecPackets = fecRecovered;\n\n audioReceiver.common.rtpBitrate = ((totalBytesReceived - lastBytesReceived) * 8) / 60 || 0;\n};\n\nexport const getAudioReceiverStreamMqa = ({\n audioReceiverStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesDecoded || 0;\n const lastSamplesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesReceived || 0;\n const lastConcealedSamples = lastMqaDataSent[mediaType]?.[sendrecvType].concealedSamples || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFecPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsReceived || 0;\n const lastFecPacketsDiscarded =\n lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsDiscarded || 0;\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioReceiverStream.common.csi.includes(csi)) {\n audioReceiverStream.common.csi.push(csi);\n }\n\n audioReceiverStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n\n audioReceiverStream.common.maxRtpJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiverStream.common.meanRtpJitter =\n mean(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiverStream.common.rtpJitter = audioReceiverStream.common.maxRtpJitter;\n\n // Fec packets do come in as part of the FEC only for audio\n const fecRecovered =\n statsResults[mediaType][sendrecvType].fecPacketsReceived -\n lastFecPacketsReceived -\n (statsResults[mediaType][sendrecvType].fecPacketsDiscarded - lastFecPacketsDiscarded);\n\n audioReceiverStream.common.rtpEndToEndLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost - fecRecovered || 0;\n\n audioReceiverStream.common.framesDropped =\n statsResults[mediaType][sendrecvType].totalSamplesDecoded - lastPacketsDecoded || 0;\n audioReceiverStream.common.renderedFrameRate =\n (audioReceiverStream.common.framesDropped * 100) / 60 || 0;\n\n audioReceiverStream.common.framesReceived =\n statsResults[mediaType][sendrecvType].totalSamplesReceived - lastSamplesReceived || 0;\n audioReceiverStream.common.concealedFrames =\n statsResults[mediaType][sendrecvType].concealedSamples - lastConcealedSamples || 0;\n audioReceiverStream.common.receivedBitrate =\n ((statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived) * 8) / 60 || 0;\n};\n\nexport const getAudioSenderMqa = ({audioSender, statsResults, lastMqaDataSent, baseMediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsSent = getLastTotalValue('totalPacketsSent');\n const lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');\n\n const totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');\n const totalPacketsSent = getTotalValue('totalPacketsSent');\n\n const meanRemoteJitter = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter), []);\n const meanRoundTripTime = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRoundTripTime), []);\n\n audioSender.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n audioSender.common.common.isMain = !baseMediaType.includes('-share');\n audioSender.common.transportType = statsResults.connectionType.local.transport;\n\n audioSender.common.maxRemoteJitter = max(meanRemoteJitter) * 1000 || 0;\n audioSender.common.meanRemoteJitter = mean(meanRemoteJitter) * 1000 || 0;\n\n audioSender.common.rtpPackets = totalPacketsSent - lastPacketsSent || 0;\n // audioSender.streams[0].common.rtpPackets = audioSender.common.rtpPackets;\n // From candidate-pair\n audioSender.common.availableBitrate = getTotalValueFromBaseType(\n statsResults,\n sendrecvType,\n baseMediaType,\n 'availableOutgoingBitrate'\n );\n // Calculate based on how much packets lost of received compated to how to the client sent\n\n const totalPacketsLostForaMin = totalPacketsLostOnReceiver - lastPacketsLostTotal;\n audioSender.common.remoteLossRate =\n totalPacketsSent - lastPacketsSent > 0\n ? (totalPacketsLostForaMin * 100) / (totalPacketsSent - lastPacketsSent)\n : 0; // This is the packets sent with in last min\n\n audioSender.common.maxRoundTripTime = max(meanRoundTripTime) * 1000 || 0;\n audioSender.common.meanRoundTripTime = mean(meanRoundTripTime) * 1000 || 0;\n audioSender.common.roundTripTime = audioSender.common.maxRoundTripTime;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin =\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, 'totalBytesSent') -\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, 'totalBytesSent');\n\n audioSender.common.rtpBitrate = totalBytesSentInaMin ? (totalBytesSentInaMin * 8) / 60 : 0;\n};\n\nexport const getAudioSenderStreamMqa = ({\n audioSenderStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastFramesEncoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioSenderStream.common.csi.includes(csi)) {\n audioSenderStream.common.csi.push(csi);\n }\n\n audioSenderStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n audioSenderStream.common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n\n audioSenderStream.transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastFramesEncoded || 0;\n audioSenderStream.requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n\n audioSenderStream.requestedBitrate = statsResults[mediaType][sendrecvType].requestedBitrate || 0;\n};\n\nexport const getVideoReceiverMqa = ({\n videoReceiver,\n statsResults,\n lastMqaDataSent,\n baseMediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsReceived = getLastTotalValue('totalPacketsReceived');\n const lastPacketsLost = getLastTotalValue('totalPacketsLost');\n const lastBytesReceived = getLastTotalValue('totalBytesReceived');\n\n const packetsLost = getTotalValue('totalPacketsLost');\n const totalPacketsReceived = getTotalValue('totalPacketsReceived');\n const totalBytesReceived = getTotalValue('totalBytesReceived');\n\n const meanRemoteJitter = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter), []);\n\n videoReceiver.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n videoReceiver.common.common.isMain = !baseMediaType.includes('-share');\n videoReceiver.common.transportType = statsResults.connectionType.local.transport;\n\n // collect the packets received for the last min\n videoReceiver.common.rtpPackets = totalPacketsReceived - lastPacketsReceived || 0;\n\n // Hop by hop are numbers and not percentage so we compare on what we sent the last min\n // this is including packet lost\n const totalPacketsLost = packetsLost - lastPacketsLost;\n videoReceiver.common.mediaHopByHopLost = totalPacketsLost;\n videoReceiver.common.rtpHopByHopLost = totalPacketsLost;\n\n // calculate this values\n videoReceiver.common.maxRemoteJitter = max(meanRemoteJitter) * 1000 || 0;\n videoReceiver.common.meanRemoteJitter = mean(meanRemoteJitter) * 1000 || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesReceivedInaMin = totalBytesReceived - lastBytesReceived;\n\n videoReceiver.common.rtpBitrate = totalBytesReceivedInaMin\n ? (totalBytesReceivedInaMin * 8) / 60\n : 0;\n};\n\nexport const getVideoReceiverStreamMqa = ({\n videoReceiverStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFramesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].framesReceived || 0;\n const lastFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].framesDecoded || 0;\n const lastFramesDropped = lastMqaDataSent[mediaType]?.[sendrecvType].framesDropped || 0;\n const lastKeyFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].keyFramesDecoded || 0;\n const lastPliCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalPliCount || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !videoReceiverStream.common.csi.includes(csi)) {\n videoReceiverStream.common.csi.push(csi);\n }\n\n videoReceiverStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n\n const totalPacketLoss =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n\n // End to end packetloss is after recovery\n videoReceiverStream.common.rtpEndToEndLost = totalPacketLoss;\n\n videoReceiverStream.common.rtpJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n const totalBytesReceivedInaMin =\n statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived;\n videoReceiverStream.common.receivedBitrate = totalBytesReceivedInaMin\n ? (totalBytesReceivedInaMin * 8) / 60\n : 0;\n\n const totalFrameReceivedInaMin =\n statsResults[mediaType][sendrecvType].framesReceived - lastFramesReceived;\n const totalFrameDecodedInaMin =\n statsResults[mediaType][sendrecvType].framesDecoded - lastFramesDecoded;\n\n videoReceiverStream.common.receivedFrameRate = Math.round(\n totalFrameReceivedInaMin ? totalFrameReceivedInaMin / 60 : 0\n );\n videoReceiverStream.common.renderedFrameRate = Math.round(\n totalFrameDecodedInaMin ? totalFrameDecodedInaMin / 60 : 0\n );\n\n videoReceiverStream.common.framesDropped =\n statsResults[mediaType][sendrecvType].framesDropped - lastFramesDropped || 0;\n videoReceiverStream.receivedHeight = statsResults[mediaType][sendrecvType].height || 0;\n videoReceiverStream.receivedWidth = statsResults[mediaType][sendrecvType].width || 0;\n videoReceiverStream.receivedFrameSize =\n (videoReceiverStream.receivedHeight * videoReceiverStream.receivedWidth) / 256;\n\n videoReceiverStream.receivedKeyFrames =\n statsResults[mediaType][sendrecvType].keyFramesDecoded - lastKeyFramesDecoded || 0;\n videoReceiverStream.requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalPliCount - lastPliCount || 0;\n};\n\nexport const getVideoSenderMqa = ({videoSender, statsResults, lastMqaDataSent, baseMediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const getLastTotalValue = (value: string) =>\n getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);\n const getTotalValue = (value: string) =>\n getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);\n\n const lastPacketsSent = getLastTotalValue('totalPacketsSent');\n const lastBytesSent = getLastTotalValue('totalBytesSent');\n const lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');\n\n const totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');\n const totalPacketsSent = getTotalValue('totalPacketsSent');\n const totalBytesSent = getTotalValue('totalBytesSent');\n const availableOutgoingBitrate = getTotalValue('availableOutgoingBitrate');\n\n videoSender.common.common.direction =\n statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]\n ?.direction || 'inactive';\n videoSender.common.common.isMain = !baseMediaType.includes('-share');\n videoSender.common.transportType = statsResults.connectionType.local.transport;\n\n const meanRemoteJitter = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter), []);\n const meanRoundTripTime = Object.keys(statsResults)\n .filter((mt) => mt.includes(baseMediaType))\n .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRoundTripTime), []);\n\n // @ts-ignore\n videoSender.common.maxRemoteJitter = max(meanRemoteJitter) * 1000 || 0;\n videoSender.common.meanRemoteJitter = mean(meanRemoteJitter) * 1000 || 0;\n\n videoSender.common.rtpPackets = totalPacketsSent - lastPacketsSent;\n videoSender.common.availableBitrate = availableOutgoingBitrate;\n\n // Calculate based on how much packets lost of received compated to how to the client sent\n const totalPacketsLostForaMin = totalPacketsLostOnReceiver - lastPacketsLostTotal;\n\n videoSender.common.remoteLossRate =\n totalPacketsSent - lastPacketsSent > 0\n ? (totalPacketsLostForaMin * 100) / (totalPacketsSent - lastPacketsSent)\n : 0; // This is the packets sent with in last min || 0;\n\n videoSender.common.maxRoundTripTime = max(meanRoundTripTime) * 1000 || 0;\n videoSender.common.meanRoundTripTime = mean(meanRoundTripTime) * 1000 || 0;\n videoSender.common.roundTripTime = videoSender.common.maxRoundTripTime;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = totalBytesSent - lastBytesSent;\n\n videoSender.common.rtpBitrate = totalBytesSentInaMin ? (totalBytesSentInaMin * 8) / 60 : 0;\n};\n\nexport const getVideoSenderStreamMqa = ({\n videoSenderStream,\n statsResults,\n lastMqaDataSent,\n mediaType,\n}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastKeyFramesEncoded =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n const lastFramesSent = lastMqaDataSent[mediaType]?.[sendrecvType].framesSent || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !videoSenderStream.common.csi.includes(csi)) {\n videoSenderStream.common.csi.push(csi);\n }\n\n videoSenderStream.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n\n videoSenderStream.common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n\n videoSenderStream.transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastKeyFramesEncoded || 0;\n videoSenderStream.requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n\n // From tracks //TODO: calculate a proper one\n const totalFrameSentInaMin =\n statsResults[mediaType][sendrecvType].framesSent - (lastFramesSent || 0);\n\n videoSenderStream.common.transmittedFrameRate = Math.round(\n totalFrameSentInaMin ? totalFrameSentInaMin / 60 : 0\n );\n videoSenderStream.transmittedHeight = statsResults[mediaType][sendrecvType].height || 0;\n videoSenderStream.transmittedWidth = statsResults[mediaType][sendrecvType].width || 0;\n videoSenderStream.transmittedFrameSize =\n (videoSenderStream.transmittedHeight * videoSenderStream.transmittedWidth) / 256;\n videoSenderStream.requestedBitrate = statsResults[mediaType][sendrecvType].requestedBitrate || 0;\n videoSenderStream.requestedFrameSize =\n statsResults[mediaType][sendrecvType].requestedFrameSize || 0;\n};\n"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import ReconnectionError from './reconnection';
2
+ /**
3
+ * Error object for cases when new reconnection cannot be started
4
+ */
5
+ export default class ReconnectionNotStartedError extends ReconnectionError {
6
+ /**
7
+ *
8
+ * @constructor
9
+ * @param {String} [message]
10
+ * @param {Object} [error]
11
+ */
12
+ constructor(message?: string, error?: any);
13
+ }
@@ -71,6 +71,7 @@ export declare const _JOINED_ = "JOINED";
71
71
  export declare const _LOCUS_ID_ = "LOCUS_ID";
72
72
  export declare const _LEFT_ = "LEFT";
73
73
  export declare const _MOVED_ = "MOVED";
74
+ export declare const _ON_HOLD_LOBBY_ = "ON_HOLD_LOBBY";
74
75
  export declare const _MEETING_LINK_ = "MEETING_LINK";
75
76
  export declare const _MEETING_UUID_ = "MEETING_UUID";
76
77
  export declare const _MEETING_ = "MEETING";
@@ -271,6 +272,7 @@ export declare const EVENT_TRIGGERS: {
271
272
  MEETING_TRANSCRIPTION_CONNECTED: string;
272
273
  MEETING_STARTED_RECEIVING_TRANSCRIPTION: string;
273
274
  MEETING_STOPPED_RECEIVING_TRANSCRIPTION: string;
275
+ MEETING_MANUAL_CAPTION_UPDATED: string;
274
276
  MEETING_CAPTION_RECEIVED: string;
275
277
  };
276
278
  export declare const EVENT_TYPES: {
@@ -402,6 +404,11 @@ export declare const ERROR_DICTIONARY: {
402
404
  MESSAGE: string;
403
405
  CODE: number;
404
406
  };
407
+ RECONNECTION_NOT_STARTED: {
408
+ NAME: string;
409
+ MESSAGE: string;
410
+ CODE: number;
411
+ };
405
412
  };
406
413
  export declare const FLOOR_ACTION: {
407
414
  GRANTED: string;
@@ -526,6 +533,7 @@ export declare const LOCUSINFO: {
526
533
  CONTROLS_MEETING_LAYOUT_UPDATED: string;
527
534
  CONTROLS_RECORDING_UPDATED: string;
528
535
  CONTROLS_MEETING_TRANSCRIBE_UPDATED: string;
536
+ CONTROLS_MEETING_MANUAL_CAPTION_UPDATED: string;
529
537
  CONTROLS_MEETING_BREAKOUT_UPDATED: string;
530
538
  CONTROLS_MEETING_CONTAINER_UPDATED: string;
531
539
  CONTROLS_MEETING_INTERPRETATION_UPDATED: string;
@@ -729,6 +737,9 @@ export declare const DISPLAY_HINTS: {
729
737
  LEAVE_END_MEETING: string;
730
738
  CAPTION_START: string;
731
739
  CAPTION_STATUS_ACTIVE: string;
740
+ MANUAL_CAPTION_START: string;
741
+ MANUAL_CAPTION_STOP: string;
742
+ MANUAL_CAPTION_STATUS_ACTIVE: string;
732
743
  DISPLAY_REAL_TIME_TRANSLATION: string;
733
744
  ENABLE_CAPTION_PANEL: string;
734
745
  DISPLAY_NON_ENGLISH_ASR: string;
@@ -843,9 +854,7 @@ export declare const PEER_CONNECTION_STATE: {
843
854
  export declare const RECONNECTION: {
844
855
  readonly STATE: {
845
856
  readonly IN_PROGRESS: "IN_PROGRESS";
846
- readonly COMPLETE: "COMPLETE";
847
857
  readonly FAILURE: "FAILURE";
848
- readonly DEFAULT_TRY_COUNT: 0;
849
858
  readonly DEFAULT_STATUS: "";
850
859
  };
851
860
  };
@@ -0,0 +1,19 @@
1
+ import Meetings from './meetings';
2
+ import CaptchaError from './common/errors/captcha-error';
3
+ import IntentToJoinError from './common/errors/intent-to-join';
4
+ import PasswordError from './common/errors/password-error';
5
+ import PermissionError from './common/errors/permission';
6
+ import { ReclaimHostEmptyWrongKeyError, ReclaimHostIsHostAlreadyError, ReclaimHostNotAllowedError, ReclaimHostNotSupportedError } from './common/errors/reclaim-host-role-errors';
7
+ import Meeting from './meeting';
8
+ import MeetingInfoUtil from './meeting-info/utilv2';
9
+ import JoinMeetingError from './common/errors/join-meeting';
10
+ export { getDevices, LocalStream, LocalDisplayStream, LocalSystemAudioStream, LocalStreamEventNames, StreamEventNames, RemoteStreamEventNames, type ServerMuteReason, LocalMicrophoneStreamEventNames, LocalCameraStreamEventNames, LocalMicrophoneStream, LocalCameraStream, createMicrophoneStream, createCameraStream, createDisplayStream, createDisplayStreamWithAudio, FacingMode, DisplaySurface, PresetCameraConstraints, type VideoContentHint, } from '@webex/media-helpers';
11
+ export default Meetings;
12
+ export * as CONSTANTS from './constants';
13
+ export * as REACTIONS from './reactions/reactions';
14
+ export * as sdkAnnotationTypes from './annotation/annotation.types';
15
+ export * as MeetingInfoV2 from './meeting-info/meeting-info-v2';
16
+ export { type Reaction } from './reactions/reactions.type';
17
+ export { CaptchaError, IntentToJoinError, JoinMeetingError, PasswordError, PermissionError, ReclaimHostIsHostAlreadyError, ReclaimHostNotAllowedError, ReclaimHostNotSupportedError, ReclaimHostEmptyWrongKeyError, Meeting, MeetingInfoUtil, };
18
+ export { RemoteMedia } from './multistream/remoteMedia';
19
+ export { default as TriggerProxy } from './common/events/trigger-proxy';
@@ -84,10 +84,34 @@ export default class MediaProperties {
84
84
  * @returns {Promise<void>}
85
85
  */
86
86
  waitForMediaConnectionConnected(): Promise<void>;
87
+ /**
88
+ * Returns ICE transport information:
89
+ * - selectedCandidatePairChanges - number of times the selected candidate pair was changed, it should be at least 1 for successful connections
90
+ * it will be -1 if browser doesn't supply this information
91
+ * - numTransports - number of transports (should be 1 if we're using bundle)
92
+ *
93
+ * @param {Array<any>} allStatsReports array of RTC stats reports
94
+ * @returns {Object}
95
+ */
96
+ private getTransportInfo;
87
97
  /**
88
98
  * Returns the type of a connection that has been established
99
+ * It should be 'UDP' | 'TCP' | 'TURN-TLS' | 'TURN-TCP' | 'TURN-UDP' | 'unknown'
100
+ *
101
+ * If connection was not established, it returns 'unknown'
102
+ *
103
+ * @param {Array<any>} allStatsReports array of RTC stats reports
104
+ * @returns {string}
105
+ */
106
+ private getConnectionType;
107
+ /**
108
+ * Returns information about current webrtc media connection
89
109
  *
90
- * @returns {Promise<'UDP' | 'TCP' | 'TURN-TLS' | 'TURN-TCP' | 'TURN-UDP' | 'unknown'>}
110
+ * @returns {Promise<Object>}
91
111
  */
92
- getCurrentConnectionType(): Promise<string>;
112
+ getCurrentConnectionInfo(): Promise<{
113
+ connectionType: string;
114
+ selectedCandidatePairChanges: number;
115
+ numTransports: number;
116
+ }>;
93
117
  }
@@ -31,6 +31,9 @@ interface IInMeetingActions {
31
31
  canStartTranscribing?: boolean;
32
32
  canStopTranscribing?: boolean;
33
33
  isClosedCaptionActive?: boolean;
34
+ canStartManualCaption?: boolean;
35
+ canStopManualCaption?: boolean;
36
+ isManualCaptionActive?: boolean;
34
37
  isSaveTranscriptsEnabled?: boolean;
35
38
  isWebexAssistantActive?: boolean;
36
39
  canViewCaptionPanel?: boolean;
@@ -107,6 +110,9 @@ export default class InMeetingActions implements IInMeetingActions {
107
110
  canStartTranscribing: any;
108
111
  canStopTranscribing: any;
109
112
  isClosedCaptionActive: any;
113
+ canStartManualCaption: any;
114
+ canStopManualCaption: any;
115
+ isManualCaptionActive: any;
110
116
  isSaveTranscriptsEnabled: any;
111
117
  isWebexAssistantActive: any;
112
118
  canViewCaptionPanel: any;
@@ -448,12 +448,14 @@ export default class Meeting extends StatelessWebexPlugin {
448
448
  turnDiscoverySkippedReason: TurnDiscoverySkipReason;
449
449
  turnServerUsed: boolean;
450
450
  areVoiceaEventsSetup: boolean;
451
+ isMoveToInProgress: boolean;
451
452
  voiceaListenerCallbacks: object;
452
453
  private retriedWithTurnServer;
453
454
  private sendSlotManager;
454
455
  private deferSDPAnswer?;
455
456
  private sdpResponseTimer?;
456
457
  private hasMediaConnectionConnectedAtLeastOnce;
458
+ private joinWithMediaRetryInfo?;
457
459
  /**
458
460
  * @param {Object} attrs
459
461
  * @param {Object} options
@@ -1078,10 +1080,7 @@ export default class Meeting extends StatelessWebexPlugin {
1078
1080
  joinWithMedia(options?: {
1079
1081
  joinOptions?: any;
1080
1082
  mediaOptions?: AddMediaOptions;
1081
- }): Promise<{
1082
- join: any;
1083
- media: void;
1084
- }>;
1083
+ }): any;
1085
1084
  /**
1086
1085
  * Initiates the reconnection of the media in the meeting
1087
1086
  *
@@ -1090,7 +1089,7 @@ export default class Meeting extends StatelessWebexPlugin {
1090
1089
  * @public
1091
1090
  * @memberof Meeting
1092
1091
  */
1093
- reconnect(options?: object): any;
1092
+ reconnect(options?: object): Promise<void>;
1094
1093
  /**
1095
1094
  * Check if the meeting supports the Webex Assistant feature
1096
1095
  * @returns {boolean}
@@ -1331,7 +1330,7 @@ export default class Meeting extends StatelessWebexPlugin {
1331
1330
  /**
1332
1331
  * Performs TURN discovery as a separate call to the Locus /media API
1333
1332
  *
1334
- * @param {boolean} isRetry
1333
+ * @param {boolean} isReconnecting
1335
1334
  * @param {boolean} isForced
1336
1335
  * @returns {Promise}
1337
1336
  */
@@ -31,6 +31,7 @@ export type Config = {
31
31
  regionCode?: string;
32
32
  };
33
33
  correlationId: string;
34
+ meetingId: string;
34
35
  preferTranscoding: boolean;
35
36
  };
36
37
  /**
@@ -70,6 +70,9 @@ declare const MeetingUtil: {
70
70
  canStartTranscribing: (displayHints: any) => any;
71
71
  canStopTranscribing: (displayHints: any) => any;
72
72
  isClosedCaptionActive: (displayHints: any) => any;
73
+ canStartManualCaption: (displayHints: any) => any;
74
+ canStopManualCaption: (displayHints: any) => any;
75
+ isManualCaptionActive: (displayHints: any) => any;
73
76
  isWebexAssistantActive: (displayHints: any) => any;
74
77
  canViewCaptionPanel: (displayHints: any) => any;
75
78
  isRealTimeTranslationEnabled: (displayHints: any) => any;
@@ -1,3 +1,4 @@
1
+ import { type MeetingTranscriptPayload } from '@webex/internal-plugin-voicea';
1
2
  export declare const getSpeaker: (members: any, csis?: any[]) => unknown;
2
3
  export declare const getSpeakerFromProxyOrStore: ({ csisKey, meetingMembers, transcriptData }: {
3
4
  csisKey: any;
@@ -10,7 +11,7 @@ export declare const getSpeakerFromProxyOrStore: ({ csisKey, meetingMembers, tra
10
11
  };
11
12
  needsCaching: boolean;
12
13
  };
13
- export declare const processNewCaptions: ({ data, meeting }: {
14
- data: any;
14
+ export declare const processNewCaptions: ({ data, meeting, }: {
15
+ data: MeetingTranscriptPayload;
15
16
  meeting: any;
16
17
  }) => void;
@@ -65,5 +65,5 @@ export default class MeetingInfo {
65
65
  }, installedOrgID?: any, locusId?: any, extraParams?: object, options?: {
66
66
  meetingId?: string;
67
67
  sendCAevents?: boolean;
68
- }): any;
68
+ }): Promise<any>;
69
69
  }
@@ -81,7 +81,7 @@ export default class MeetingInfoV2 {
81
81
  * @public
82
82
  * @memberof MeetingInfo
83
83
  */
84
- fetchInfoOptions(destination: string, type?: string): any;
84
+ fetchInfoOptions(destination: string, type?: string): Promise<any>;
85
85
  /**
86
86
  * Raises a MeetingInfoV2PolicyError for policy error codes
87
87
  * @param {any} err the error from the request
@@ -0,0 +1,49 @@
1
+ /// <reference types="node" />
2
+ import url from 'url';
3
+ /**
4
+ * @class MeetingInfoUtil
5
+ */
6
+ export default class MeetingInfoUtil {
7
+ static extractDestination(destination: any, type: any): any;
8
+ static getParsedUrl(link: any): false | url.UrlWithStringQuery;
9
+ /**
10
+ * Helper function to check if a string matches a known meeting link pattern
11
+ * @param {String} value string to parse and see if it matches a meeting link
12
+ * @returns {Boolean}
13
+ */
14
+ static isMeetingLink(value: string): any;
15
+ static isConversationUrl(value: any, webex: any): any;
16
+ static convertLinkToSip(value: any): string;
17
+ static isSipUri(sipString: any): RegExpExecArray;
18
+ static isPhoneNumber(phoneNumber: any): boolean;
19
+ static getHydraId(destination: any): {
20
+ room: boolean;
21
+ destination: any;
22
+ cluster: any;
23
+ people?: undefined;
24
+ } | {
25
+ people: boolean;
26
+ destination: any;
27
+ cluster: any;
28
+ room?: undefined;
29
+ } | {
30
+ room?: undefined;
31
+ destination?: undefined;
32
+ cluster?: undefined;
33
+ people?: undefined;
34
+ };
35
+ static getSipUriFromHydraPersonId(destination: any, webex: any): any;
36
+ static generateOptions(from: any): Promise<any>;
37
+ /**
38
+ * Helper function to build up a correct locus url depending on the value passed
39
+ * @param {String} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
40
+ * @param {Object} value ?? value.value
41
+ * @returns {Object} returns an object with {resource, method}
42
+ */
43
+ static getResourceUrl(type: string, value: any): {
44
+ uri: any;
45
+ resource: string;
46
+ method: string;
47
+ };
48
+ static getRequestParams(resourceOptions: any, type: any, value: any, api: any): any;
49
+ }
@@ -0,0 +1,65 @@
1
+ /// <reference types="node" />
2
+ import url from 'url';
3
+ /**
4
+ * @class MeetingInfoUtil
5
+ */
6
+ export default class MeetingInfoUtil {
7
+ static meetingInfoError: string;
8
+ static getParsedUrl(link: any): false | url.UrlWithStringQuery;
9
+ /**
10
+ * Helper function to check if a string matches a known meeting link pattern
11
+ * @param {String} value string to parse and see if it matches a meeting link
12
+ * @returns {Boolean}
13
+ */
14
+ static isMeetingLink(value: string): any;
15
+ static isConversationUrl(value: any, webex: any): any;
16
+ static isSipUri(sipString: any): RegExpExecArray;
17
+ static isPhoneNumber(phoneNumber: any): boolean;
18
+ static getHydraId(destination: any): {
19
+ room: boolean;
20
+ destination: any;
21
+ cluster: any;
22
+ people?: undefined;
23
+ } | {
24
+ people: boolean;
25
+ destination: any;
26
+ cluster: any;
27
+ room?: undefined;
28
+ } | {
29
+ room?: undefined;
30
+ destination?: undefined;
31
+ cluster?: undefined;
32
+ people?: undefined;
33
+ };
34
+ static getSipUriFromHydraPersonId(destination: any, webex: any): any;
35
+ static getDestinationType(from: any): Promise<any>;
36
+ /**
37
+ * Helper function to build up a correct locus url depending on the value passed
38
+ * @param {Object} options type and value to fetch meeting info
39
+ * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
40
+ * @param {String} options.installedOrgID org ID of user's machine
41
+ * @param {Object} options.destination ?? value.value
42
+ * @returns {Object} returns an object with {resource, method}
43
+ */
44
+ static getRequestBody(options: {
45
+ type: string;
46
+ destination: object;
47
+ } | any): any;
48
+ /**
49
+ * Helper function to parse the webex site/host from a URI string.
50
+ * @param {String} uri string (e.g. '10019857020@convergedats.webex.com')
51
+ * @returns {String} the site/host part of the URI string (e.g. 'convergedats.webex.com')
52
+ */
53
+ static getWebexSite(uri: string): string;
54
+ /**
55
+ * Helper function to return the direct URI for fetching meeting info (to avoid a redirect).
56
+ * @param {Object} options type and value to fetch meeting info
57
+ * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
58
+ * @param {Object} options.destination ?? value.value
59
+ * @returns {String} returns a URI string or null of there is no direct URI
60
+ */
61
+ static getDirectMeetingInfoURI(options: {
62
+ type: string;
63
+ destination: any;
64
+ }): string;
65
+ }
@@ -336,17 +336,11 @@ export default class Meetings extends WebexPlugin {
336
336
  getMeetingByType(type: string, value: object): any;
337
337
  /**
338
338
  * Get all meetings.
339
- * @param {object} options
340
- * @param {object} options.startDate - get meetings after this start date
341
- * @param {object} options.endDate - get meetings before this end date
342
339
  * @returns {Object} All currently active meetings.
343
340
  * @public
344
341
  * @memberof Meetings
345
342
  */
346
- getAllMeetings(options?: {
347
- startDate: object;
348
- endDate: object;
349
- }): any;
343
+ getAllMeetings(): any;
350
344
  /**
351
345
  * Syncs all the meetings from server. Does nothing and returns immediately if unverified guest.
352
346
  * @param {boolean} keepOnlyLocusMeetings - whether the sync should keep only locus meetings or any other meeting in meetingCollection
@@ -373,15 +367,6 @@ export default class Meetings extends WebexPlugin {
373
367
  * @memberof Meetings
374
368
  */
375
369
  checkHandleBreakoutLocus(newCreatedLocus: any): void;
376
- /**
377
- * Get all scheduled meetings.
378
- * @param {object} options
379
- * @param {object} options.startDate - get meetings after this start date
380
- * @param {object} options.endDate - get meetings before this end date
381
- * @returns {Object} All scheduled meetings.
382
- * @memberof Meetings
383
- */
384
- getScheduledMeetings(): any;
385
370
  /**
386
371
  * Get the logger instance for plugin-meetings
387
372
  * @returns {Logger}