@webex/plugin-meetings 3.1.0-next.9 → 3.2.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.
- package/dist/annotation/annotation.types.d.ts +42 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1 -1
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/common/browser-detection.d.ts +9 -0
- package/dist/common/collection.d.ts +48 -0
- package/dist/common/config.d.ts +2 -0
- package/dist/common/errors/captcha-error.d.ts +15 -0
- package/dist/common/errors/intent-to-join.d.ts +16 -0
- package/dist/common/errors/join-meeting.d.ts +17 -0
- package/dist/common/errors/media.d.ts +15 -0
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/parameter.d.ts +15 -0
- package/dist/common/errors/password-error.d.ts +15 -0
- package/dist/common/errors/permission.d.ts +14 -0
- package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/common/errors/reconnection-in-progress.js +34 -0
- package/dist/common/errors/reconnection-in-progress.js.map +1 -0
- package/dist/common/errors/reconnection.d.ts +15 -0
- package/dist/common/errors/stats.d.ts +15 -0
- package/dist/common/errors/webex-errors.d.ts +93 -0
- package/dist/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/common/events/events-scope.d.ts +17 -0
- package/dist/common/events/events.d.ts +12 -0
- package/dist/common/events/trigger-proxy.d.ts +2 -0
- package/dist/common/events/util.d.ts +2 -0
- package/dist/common/logs/logger-config.d.ts +2 -0
- package/dist/common/logs/logger-proxy.d.ts +2 -0
- package/dist/common/logs/request.d.ts +36 -0
- package/dist/common/queue.d.ts +34 -0
- package/dist/config.d.ts +73 -0
- package/dist/constants.d.ts +1088 -0
- package/dist/constants.js +6 -3
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.d.ts +4 -0
- package/dist/controls-options-manager/enums.d.ts +15 -0
- package/dist/controls-options-manager/index.d.ts +136 -0
- package/dist/controls-options-manager/types.d.ts +43 -0
- package/dist/controls-options-manager/util.d.ts +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.d.ts +2 -0
- package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/locus-info/fullState.d.ts +2 -0
- package/dist/locus-info/hostUtils.d.ts +2 -0
- package/dist/locus-info/index.d.ts +322 -0
- package/dist/locus-info/infoUtils.d.ts +2 -0
- package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/locus-info/parser.d.ts +272 -0
- package/dist/locus-info/selfUtils.d.ts +2 -0
- package/dist/media/MediaConnectionAwaiter.d.ts +61 -0
- package/dist/media/index.d.ts +34 -0
- package/dist/media/properties.d.ts +93 -0
- package/dist/media/util.d.ts +2 -0
- package/dist/mediaQualityMetrics/config.d.ts +241 -0
- package/dist/mediaQualityMetrics/config.js +10 -10
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +167 -0
- package/dist/meeting/index.d.ts +1825 -0
- package/dist/meeting/index.js +112 -64
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +27 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.d.ts +178 -0
- package/dist/meeting/request.d.ts +295 -0
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/state.d.ts +9 -0
- package/dist/meeting/util.d.ts +119 -0
- package/dist/meeting/util.js +0 -16
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.d.ts +16 -0
- package/dist/meeting/voicea-meeting.js +37 -49
- package/dist/meeting/voicea-meeting.js.map +1 -1
- package/dist/meeting-info/collection.d.ts +20 -0
- package/dist/meeting-info/index.d.ts +69 -0
- package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
- package/dist/meeting-info/request.d.ts +22 -0
- package/dist/meeting-info/util.d.ts +2 -0
- package/dist/meeting-info/utilv2.d.ts +2 -0
- package/dist/meetings/collection.d.ts +40 -0
- package/dist/meetings/index.d.ts +398 -0
- package/dist/meetings/index.js +12 -28
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/request.d.ts +27 -0
- package/dist/meetings/util.d.ts +18 -0
- package/dist/member/index.d.ts +160 -0
- package/dist/member/types.d.ts +32 -0
- package/dist/member/util.d.ts +2 -0
- package/dist/members/collection.d.ts +29 -0
- package/dist/members/index.d.ts +353 -0
- package/dist/members/request.d.ts +114 -0
- package/dist/members/types.d.ts +25 -0
- package/dist/members/util.d.ts +215 -0
- package/dist/metrics/constants.d.ts +70 -0
- package/dist/metrics/index.d.ts +45 -0
- package/dist/multistream/mediaRequestManager.d.ts +119 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMediaGroup.d.ts +49 -0
- package/dist/multistream/remoteMediaManager.d.ts +300 -0
- package/dist/multistream/sendSlotManager.d.ts +69 -0
- package/dist/networkQualityMonitor/index.d.ts +70 -0
- package/dist/personal-meeting-room/index.d.ts +47 -0
- package/dist/personal-meeting-room/request.d.ts +14 -0
- package/dist/personal-meeting-room/util.d.ts +2 -0
- package/dist/reachability/clusterReachability.d.ts +110 -0
- package/dist/reachability/index.d.ts +109 -0
- package/dist/reachability/index.js +88 -9
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +39 -0
- package/dist/reachability/util.d.ts +15 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/reactions.d.ts +4 -0
- package/dist/reactions/reactions.type.d.ts +52 -0
- package/dist/reconnection-manager/index.d.ts +136 -0
- package/dist/recording-controller/enums.d.ts +7 -0
- package/dist/recording-controller/index.d.ts +207 -0
- package/dist/recording-controller/util.d.ts +14 -0
- package/dist/roap/index.d.ts +86 -0
- package/dist/roap/request.d.ts +39 -0
- package/dist/roap/request.js +3 -27
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +155 -0
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/index.d.ts +61 -0
- package/dist/statsAnalyzer/global.d.ts +36 -0
- package/dist/statsAnalyzer/index.d.ts +217 -0
- package/dist/statsAnalyzer/index.js +4 -2
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/statsAnalyzer/mqaUtil.js +14 -0
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.d.ts +64 -0
- package/dist/types/constants.d.ts +3 -1
- package/dist/types/mediaQualityMetrics/config.d.ts +8 -2
- package/dist/types/meeting/index.d.ts +10 -1
- package/dist/types/meeting/locusMediaRequest.d.ts +1 -0
- package/dist/types/meeting/voicea-meeting.d.ts +3 -2
- package/dist/types/meetings/index.d.ts +1 -16
- package/dist/types/reachability/index.d.ts +11 -0
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +21 -21
- package/src/constants.ts +3 -2
- package/src/mediaQualityMetrics/config.ts +13 -7
- package/src/meeting/index.ts +73 -30
- package/src/meeting/locusMediaRequest.ts +31 -0
- package/src/meeting/util.ts +1 -16
- package/src/meeting/voicea-meeting.ts +44 -46
- package/src/meetings/index.ts +15 -27
- package/src/reachability/index.ts +60 -0
- package/src/roap/request.ts +1 -24
- package/src/statsAnalyzer/index.ts +6 -3
- package/src/statsAnalyzer/mqaUtil.ts +18 -0
- package/test/unit/spec/meeting/index.js +70 -33
- package/test/unit/spec/meeting/locusMediaRequest.ts +49 -0
- package/test/unit/spec/meeting/utils.js +0 -10
- package/test/unit/spec/meeting/voicea-meeting.ts +5 -14
- package/test/unit/spec/meetings/index.js +59 -17
- package/test/unit/spec/reachability/index.ts +266 -0
- package/test/unit/spec/roap/request.ts +0 -37
- package/test/unit/spec/stats-analyzer/index.js +89 -8
|
@@ -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","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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"}
|
|
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","lastRtxPacketsReceived","lastRtxBytesReceived","totalRtxPacketsReceived","totalRtxBytesReceived","totalBytesReceivedInaMin","totalRtxBytesReceivedInaMin","rtxPackets","rtxBitrate","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","lastRtxPacketsSent","lastRtxBytesSent","availableOutgoingBitrate","totalRtxPacketsSent","totalRtxBytesSent","totalRtxBytesSentInaMin","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 lastRtxPacketsReceived = getLastTotalValue('totalRtxPacketsReceived');\n const lastRtxBytesReceived = getLastTotalValue('totalRtxBytesReceived');\n\n const packetsLost = getTotalValue('totalPacketsLost');\n const totalPacketsReceived = getTotalValue('totalPacketsReceived');\n const totalBytesReceived = getTotalValue('totalBytesReceived');\n\n const totalRtxPacketsReceived = getTotalValue('totalRtxPacketsReceived');\n const totalRtxBytesReceived = getTotalValue('totalRtxBytesReceived');\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 const totalRtxBytesReceivedInaMin = totalRtxBytesReceived - lastRtxBytesReceived;\n\n videoReceiver.common.rtpBitrate = totalBytesReceivedInaMin\n ? (totalBytesReceivedInaMin * 8) / 60\n : 0;\n videoReceiver.common.rtxPackets = totalRtxPacketsReceived - lastRtxPacketsReceived;\n videoReceiver.common.rtxBitrate = totalRtxBytesReceivedInaMin\n ? (totalRtxBytesReceivedInaMin * 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 const lastRtxPacketsSent = getLastTotalValue('totalRtxPacketsSent');\n const lastRtxBytesSent = getLastTotalValue('totalRtxBytesSent');\n\n const totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');\n const totalPacketsSent = getTotalValue('totalPacketsSent');\n const totalBytesSent = getTotalValue('totalBytesSent');\n const availableOutgoingBitrate = getTotalValue('availableOutgoingBitrate');\n const totalRtxPacketsSent = getTotalValue('totalRtxPacketsSent');\n const totalRtxBytesSent = getTotalValue('totalRtxBytesSent');\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 const totalRtxBytesSentInaMin = totalRtxBytesSent - lastRtxBytesSent;\n\n videoSender.common.rtpBitrate = totalBytesSentInaMin ? (totalBytesSentInaMin * 8) / 60 : 0;\n videoSender.common.rtxPackets = totalRtxPacketsSent - lastRtxPacketsSent;\n videoSender.common.rtxBitrate = totalRtxBytesSentInaMin ? (totalRtxBytesSentInaMin * 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,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Meeting Webex assistance transcription feature.
|
|
3
|
+
* @exports
|
|
4
|
+
* @class Transcription
|
|
5
|
+
*/
|
|
6
|
+
export default class Transcription {
|
|
7
|
+
webSocketUrl: any;
|
|
8
|
+
sessionID: any;
|
|
9
|
+
members: any;
|
|
10
|
+
memberCSIs: any;
|
|
11
|
+
webSocket: any;
|
|
12
|
+
/**
|
|
13
|
+
* @param {string} webSocketUrl
|
|
14
|
+
* @param {sessionID} sessionId
|
|
15
|
+
* @param {object} members
|
|
16
|
+
* @constructor
|
|
17
|
+
* @memberof Transcription
|
|
18
|
+
*/
|
|
19
|
+
constructor(webSocketUrl: string, sessionId: any, members: object);
|
|
20
|
+
/**
|
|
21
|
+
* open the Low Latency Mercury connection
|
|
22
|
+
* An event parameter will be send to the callback.
|
|
23
|
+
*
|
|
24
|
+
* @param {string} token
|
|
25
|
+
* @param {string} sessionID
|
|
26
|
+
* @returns {void}
|
|
27
|
+
*/
|
|
28
|
+
connect(token: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Sets callback to invoke when the web socket connection is closed.
|
|
31
|
+
*
|
|
32
|
+
* @param {Function} callback
|
|
33
|
+
* @returns {void}
|
|
34
|
+
*/
|
|
35
|
+
onCloseSocket(callback: any): void;
|
|
36
|
+
/**
|
|
37
|
+
* Sets callback to invoke when a web socket connection error occurs.
|
|
38
|
+
* An event parameter will be send to the callback.
|
|
39
|
+
*
|
|
40
|
+
* @param {Function} callback
|
|
41
|
+
* @returns {void}
|
|
42
|
+
*/
|
|
43
|
+
onErrorSocket(callback: any): void;
|
|
44
|
+
/**
|
|
45
|
+
* Get current speaker from the given csis payload and update the global csis map
|
|
46
|
+
*
|
|
47
|
+
* @private
|
|
48
|
+
* @param {object} csis
|
|
49
|
+
* @returns {object}
|
|
50
|
+
*/
|
|
51
|
+
private getSpeaker;
|
|
52
|
+
/**
|
|
53
|
+
* Sends transcription data to given callback as it arrives.
|
|
54
|
+
*
|
|
55
|
+
* @param {Function} callback
|
|
56
|
+
* @returns {void}
|
|
57
|
+
*/
|
|
58
|
+
subscribe(callback: any): void;
|
|
59
|
+
/**
|
|
60
|
+
* Close the LLM web socket connection
|
|
61
|
+
* @returns {void}
|
|
62
|
+
*/
|
|
63
|
+
closeSocket(): void;
|
|
64
|
+
}
|
|
@@ -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";
|
|
@@ -912,6 +913,8 @@ export declare const MQA_STATS: {
|
|
|
912
913
|
direction: string;
|
|
913
914
|
isMain: boolean;
|
|
914
915
|
mariFecEnabled: boolean;
|
|
916
|
+
mariRtxEnabled: boolean;
|
|
917
|
+
mariLiteEnabled: boolean;
|
|
915
918
|
mariQosEnabled: boolean;
|
|
916
919
|
multistreamEnabled: boolean;
|
|
917
920
|
};
|
|
@@ -924,7 +927,6 @@ export declare const MQA_STATS: {
|
|
|
924
927
|
queueDelay: number;
|
|
925
928
|
remoteJitter: number;
|
|
926
929
|
remoteLossRate: number;
|
|
927
|
-
remoteReceiveRate: number;
|
|
928
930
|
roundTripTime: number;
|
|
929
931
|
rtcpBitrate: number;
|
|
930
932
|
rtcpPackets: number;
|
|
@@ -20,7 +20,9 @@ export declare const emptyAudioReceive: {
|
|
|
20
20
|
direction: string;
|
|
21
21
|
isMain: boolean;
|
|
22
22
|
mariFecEnabled: boolean;
|
|
23
|
+
mariRtxEnabled: boolean;
|
|
23
24
|
mariQosEnabled: boolean;
|
|
25
|
+
mariLiteEnabled: boolean;
|
|
24
26
|
multistreamEnabled: boolean;
|
|
25
27
|
};
|
|
26
28
|
dtlsBitrate: number;
|
|
@@ -72,7 +74,9 @@ export declare const emptyAudioTransmit: {
|
|
|
72
74
|
direction: string;
|
|
73
75
|
isMain: boolean;
|
|
74
76
|
mariFecEnabled: boolean;
|
|
77
|
+
mariRtxEnabled: boolean;
|
|
75
78
|
mariQosEnabled: boolean;
|
|
79
|
+
mariLiteEnabled: boolean;
|
|
76
80
|
multistreamEnabled: boolean;
|
|
77
81
|
};
|
|
78
82
|
dtlsBitrate: number;
|
|
@@ -83,7 +87,6 @@ export declare const emptyAudioTransmit: {
|
|
|
83
87
|
queueDelay: number;
|
|
84
88
|
remoteJitter: number;
|
|
85
89
|
remoteLossRate: number;
|
|
86
|
-
remoteReceiveRate: number;
|
|
87
90
|
roundTripTime: number;
|
|
88
91
|
rtcpBitrate: number;
|
|
89
92
|
rtcpPackets: number;
|
|
@@ -115,7 +118,9 @@ export declare const emptyVideoReceive: {
|
|
|
115
118
|
direction: string;
|
|
116
119
|
isMain: boolean;
|
|
117
120
|
mariFecEnabled: boolean;
|
|
121
|
+
mariRtxEnabled: boolean;
|
|
118
122
|
mariQosEnabled: boolean;
|
|
123
|
+
mariLiteEnabled: boolean;
|
|
119
124
|
multistreamEnabled: boolean;
|
|
120
125
|
};
|
|
121
126
|
dtlsBitrate: number;
|
|
@@ -178,7 +183,9 @@ export declare const emptyVideoTransmit: {
|
|
|
178
183
|
direction: string;
|
|
179
184
|
isMain: boolean;
|
|
180
185
|
mariFecEnabled: boolean;
|
|
186
|
+
mariRtxEnabled: boolean;
|
|
181
187
|
mariQosEnabled: boolean;
|
|
188
|
+
mariLiteEnabled: boolean;
|
|
182
189
|
multistreamEnabled: boolean;
|
|
183
190
|
};
|
|
184
191
|
dtlsBitrate: number;
|
|
@@ -189,7 +196,6 @@ export declare const emptyVideoTransmit: {
|
|
|
189
196
|
queueDelay: number;
|
|
190
197
|
remoteJitter: number;
|
|
191
198
|
remoteLossRate: number;
|
|
192
|
-
remoteReceiveRate: number;
|
|
193
199
|
roundTripTime: number;
|
|
194
200
|
rtcpBitrate: number;
|
|
195
201
|
rtcpPackets: number;
|
|
@@ -448,6 +448,7 @@ 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;
|
|
@@ -1140,6 +1141,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1140
1141
|
* @returns{void}
|
|
1141
1142
|
*/
|
|
1142
1143
|
private triggerStopReceivingTranscriptionEvent;
|
|
1144
|
+
/**
|
|
1145
|
+
* This is a callback for the LLM event that is triggered when it comes online
|
|
1146
|
+
* This method in turn will trigger an event to the developers that the LLM is connected
|
|
1147
|
+
* @private
|
|
1148
|
+
* @memberof Meeting
|
|
1149
|
+
* @returns {null}
|
|
1150
|
+
*/
|
|
1151
|
+
private handleLLMOnline;
|
|
1143
1152
|
/**
|
|
1144
1153
|
* Specify joining via audio (option: pstn), video, screenshare
|
|
1145
1154
|
* @param {JoinOptions} options A configurable options object for joining a meeting
|
|
@@ -1329,7 +1338,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1329
1338
|
/**
|
|
1330
1339
|
* Performs TURN discovery as a separate call to the Locus /media API
|
|
1331
1340
|
*
|
|
1332
|
-
* @param {boolean}
|
|
1341
|
+
* @param {boolean} isReconnecting
|
|
1333
1342
|
* @param {boolean} isForced
|
|
1334
1343
|
* @returns {Promise}
|
|
1335
1344
|
*/
|
|
@@ -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:
|
|
14
|
+
export declare const processNewCaptions: ({ data, meeting, }: {
|
|
15
|
+
data: MeetingTranscriptPayload;
|
|
15
16
|
meeting: any;
|
|
16
17
|
}) => void;
|
|
@@ -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(
|
|
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}
|
|
@@ -86,6 +86,17 @@ export default class Reachability {
|
|
|
86
86
|
* @memberof Reachability
|
|
87
87
|
*/
|
|
88
88
|
isAnyPublicClusterReachable(): Promise<boolean>;
|
|
89
|
+
/**
|
|
90
|
+
* Returns true only if ALL protocols (UDP, TCP and TLS) have been tested and none
|
|
91
|
+
* of the media clusters where reachable with any of the protocols. This is done
|
|
92
|
+
* irrespective of the config, so for example:
|
|
93
|
+
* if config.meetings.experimental.enableTlsReachability === false,
|
|
94
|
+
* it will return false, because TLS reachability won't be tested,
|
|
95
|
+
* so we can't say for sure that media backend is unreachable over TLS.
|
|
96
|
+
*
|
|
97
|
+
* @returns {boolean}
|
|
98
|
+
*/
|
|
99
|
+
isWebexMediaBackendUnreachable(): Promise<boolean>;
|
|
89
100
|
/**
|
|
90
101
|
* Get list of all unreachable clusters
|
|
91
102
|
* @returns {array} Unreachable clusters
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
declare class WebinarCollection {
|
|
5
|
+
webinarInfo: any;
|
|
6
|
+
namespace: string;
|
|
7
|
+
mainIndex: string;
|
|
8
|
+
constructor();
|
|
9
|
+
set(id: any, info: any): void;
|
|
10
|
+
/**
|
|
11
|
+
* @param {String} id
|
|
12
|
+
* @returns {Member}
|
|
13
|
+
*/
|
|
14
|
+
get(id: string): any;
|
|
15
|
+
}
|
|
16
|
+
export default WebinarCollection;
|
package/dist/webinar/index.js
CHANGED
|
@@ -62,7 +62,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
62
62
|
updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
|
|
63
63
|
this.set('canManageWebcast', canManageWebcast);
|
|
64
64
|
},
|
|
65
|
-
version: "3.
|
|
65
|
+
version: "3.2.0"
|
|
66
66
|
});
|
|
67
67
|
var _default = exports.default = Webinar;
|
|
68
68
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
44
44
|
"@webex/jest-config-legacy": "0.0.0",
|
|
45
45
|
"@webex/legacy-tools": "0.0.0",
|
|
46
|
-
"@webex/plugin-meetings": "3.
|
|
47
|
-
"@webex/plugin-rooms": "3.
|
|
48
|
-
"@webex/test-helper-chai": "3.
|
|
49
|
-
"@webex/test-helper-mocha": "3.
|
|
50
|
-
"@webex/test-helper-mock-webex": "3.
|
|
51
|
-
"@webex/test-helper-retry": "3.
|
|
52
|
-
"@webex/test-helper-test-users": "3.
|
|
46
|
+
"@webex/plugin-meetings": "3.2.0",
|
|
47
|
+
"@webex/plugin-rooms": "3.2.0",
|
|
48
|
+
"@webex/test-helper-chai": "3.2.0",
|
|
49
|
+
"@webex/test-helper-mocha": "3.2.0",
|
|
50
|
+
"@webex/test-helper-mock-webex": "3.2.0",
|
|
51
|
+
"@webex/test-helper-retry": "3.2.0",
|
|
52
|
+
"@webex/test-helper-test-users": "3.2.0",
|
|
53
53
|
"chai": "^4.3.4",
|
|
54
54
|
"chai-as-promised": "^7.1.1",
|
|
55
55
|
"eslint": "^8.24.0",
|
|
@@ -61,20 +61,20 @@
|
|
|
61
61
|
"typescript": "^4.7.4"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@webex/common": "3.
|
|
64
|
+
"@webex/common": "3.2.0",
|
|
65
65
|
"@webex/internal-media-core": "2.5.0",
|
|
66
|
-
"@webex/internal-plugin-conversation": "3.
|
|
67
|
-
"@webex/internal-plugin-device": "3.
|
|
68
|
-
"@webex/internal-plugin-llm": "3.
|
|
69
|
-
"@webex/internal-plugin-mercury": "3.
|
|
70
|
-
"@webex/internal-plugin-metrics": "3.
|
|
71
|
-
"@webex/internal-plugin-support": "3.
|
|
72
|
-
"@webex/internal-plugin-user": "3.
|
|
73
|
-
"@webex/internal-plugin-voicea": "3.
|
|
74
|
-
"@webex/media-helpers": "3.
|
|
75
|
-
"@webex/plugin-people": "3.
|
|
76
|
-
"@webex/plugin-rooms": "3.
|
|
77
|
-
"@webex/webex-core": "3.
|
|
66
|
+
"@webex/internal-plugin-conversation": "3.2.0",
|
|
67
|
+
"@webex/internal-plugin-device": "3.2.0",
|
|
68
|
+
"@webex/internal-plugin-llm": "3.2.0",
|
|
69
|
+
"@webex/internal-plugin-mercury": "3.2.0",
|
|
70
|
+
"@webex/internal-plugin-metrics": "3.2.0",
|
|
71
|
+
"@webex/internal-plugin-support": "3.2.0",
|
|
72
|
+
"@webex/internal-plugin-user": "3.2.0",
|
|
73
|
+
"@webex/internal-plugin-voicea": "3.2.0",
|
|
74
|
+
"@webex/media-helpers": "3.2.0",
|
|
75
|
+
"@webex/plugin-people": "3.2.0",
|
|
76
|
+
"@webex/plugin-rooms": "3.2.0",
|
|
77
|
+
"@webex/webex-core": "3.2.0",
|
|
78
78
|
"ampersand-collection": "^2.0.2",
|
|
79
79
|
"bowser": "^2.11.0",
|
|
80
80
|
"btoa": "^1.2.1",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"//": [
|
|
92
92
|
"TODO: upgrade jwt-decode when moving to node 18"
|
|
93
93
|
],
|
|
94
|
-
"version": "3.
|
|
94
|
+
"version": "3.2.0"
|
|
95
95
|
}
|
package/src/constants.ts
CHANGED
|
@@ -100,7 +100,7 @@ export const _JOINED_ = 'JOINED';
|
|
|
100
100
|
export const _LOCUS_ID_ = 'LOCUS_ID';
|
|
101
101
|
export const _LEFT_ = 'LEFT';
|
|
102
102
|
export const _MOVED_ = 'MOVED';
|
|
103
|
-
|
|
103
|
+
export const _ON_HOLD_LOBBY_ = 'ON_HOLD_LOBBY';
|
|
104
104
|
export const _MEETING_LINK_ = 'MEETING_LINK';
|
|
105
105
|
export const _MEETING_UUID_ = 'MEETING_UUID';
|
|
106
106
|
export const _MEETING_ = 'MEETING';
|
|
@@ -1122,6 +1122,8 @@ export const MQA_STATS = {
|
|
|
1122
1122
|
direction: 'sendrecv', // TODO: parse from SDP and save globally
|
|
1123
1123
|
isMain: false, // always true for share sender
|
|
1124
1124
|
mariFecEnabled: false, // unavailable
|
|
1125
|
+
mariRtxEnabled: false, // unavailable
|
|
1126
|
+
mariLiteEnabled: false, // unavailable
|
|
1125
1127
|
mariQosEnabled: false, // unavailable
|
|
1126
1128
|
multistreamEnabled: false, // unavailable
|
|
1127
1129
|
},
|
|
@@ -1134,7 +1136,6 @@ export const MQA_STATS = {
|
|
|
1134
1136
|
queueDelay: 0, // unavailable
|
|
1135
1137
|
remoteJitter: 0, // unavailable
|
|
1136
1138
|
remoteLossRate: 0,
|
|
1137
|
-
remoteReceiveRate: 0, // unavailable
|
|
1138
1139
|
roundTripTime: 0,
|
|
1139
1140
|
rtcpBitrate: 0, // unavailable
|
|
1140
1141
|
rtcpPackets: 0, // unavailable
|