@webex/plugin-meetings 2.59.1 → 2.59.3-next.1
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/.eslintrc.js +6 -6
- package/LICENSE +1 -1
- package/README.md +1204 -1204
- package/UPGRADING.md +287 -287
- package/babel.config.js +3 -3
- package/browsers.js +108 -108
- package/dist/common/browser-detection.d.ts +9 -9
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.d.ts +48 -48
- package/dist/common/collection.js +43 -43
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.d.ts +2 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.d.ts +15 -15
- package/dist/common/errors/captcha-error.js +7 -7
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.d.ts +16 -16
- package/dist/common/errors/intent-to-join.js +7 -7
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.d.ts +17 -17
- package/dist/common/errors/join-meeting.js +8 -8
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.d.ts +15 -15
- package/dist/common/errors/media.js +7 -7
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.d.ts +15 -15
- package/dist/common/errors/parameter.js +7 -7
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.d.ts +15 -15
- package/dist/common/errors/password-error.js +7 -7
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.d.ts +14 -14
- package/dist/common/errors/permission.js +6 -6
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.d.ts +9 -9
- package/dist/common/errors/reconnection-in-progress.js +6 -6
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.d.ts +15 -15
- package/dist/common/errors/reconnection.js +7 -7
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.d.ts +15 -15
- package/dist/common/errors/stats.js +7 -7
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +81 -81
- package/dist/common/errors/webex-errors.js +42 -42
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.d.ts +20 -20
- package/dist/common/errors/webex-meetings-error.js +12 -12
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.d.ts +17 -17
- package/dist/common/events/events-scope.js +10 -10
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.d.ts +12 -12
- package/dist/common/events/events.js +4 -4
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.d.ts +2 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.d.ts +2 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.d.ts +2 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.d.ts +2 -2
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +34 -34
- package/dist/common/logs/request.js +18 -18
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +32 -32
- package/dist/common/queue.js +18 -18
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +73 -73
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +924 -924
- package/dist/constants.js +9 -9
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.d.ts +4 -4
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +5 -5
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +120 -120
- package/dist/controls-options-manager/index.js +81 -81
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/util.d.ts +7 -7
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.d.ts +2 -2
- package/dist/locus-info/controlsUtils.js +21 -21
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.d.ts +2 -2
- package/dist/locus-info/embeddedAppsUtils.js +14 -14
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.d.ts +2 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.d.ts +2 -2
- package/dist/locus-info/hostUtils.js +19 -19
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +269 -269
- package/dist/locus-info/index.js +180 -180
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.d.ts +2 -2
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.d.ts +2 -2
- package/dist/locus-info/mediaSharesUtils.js +50 -50
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +212 -212
- package/dist/locus-info/parser.js +136 -136
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.d.ts +2 -2
- package/dist/locus-info/selfUtils.js +52 -52
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +32 -32
- package/dist/media/index.js +145 -145
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +108 -108
- package/dist/media/properties.js +49 -49
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.d.ts +2 -2
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +233 -233
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.d.ts +42 -42
- package/dist/meeting/effectsState.js +24 -24
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +79 -79
- package/dist/meeting/in-meeting-actions.js +11 -11
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +1621 -1621
- package/dist/meeting/index.js +1502 -1505
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.d.ts +116 -116
- package/dist/meeting/muteState.js +85 -85
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +255 -255
- package/dist/meeting/request.js +141 -141
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/state.d.ts +9 -9
- package/dist/meeting/state.js +30 -30
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +2 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.d.ts +20 -20
- package/dist/meeting-info/collection.js +11 -11
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +57 -57
- package/dist/meeting-info/index.js +50 -50
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +93 -93
- package/dist/meeting-info/meeting-info-v2.js +52 -52
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.d.ts +22 -22
- package/dist/meeting-info/request.js +14 -14
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.d.ts +2 -2
- package/dist/meeting-info/util.js +9 -9
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.d.ts +2 -2
- package/dist/meeting-info/utilv2.js +20 -20
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +23 -23
- package/dist/meetings/collection.js +14 -14
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +296 -296
- package/dist/meetings/index.js +259 -259
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.d.ts +27 -27
- package/dist/meetings/request.js +15 -15
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.d.ts +18 -18
- package/dist/meetings/util.js +29 -29
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +147 -147
- package/dist/member/index.js +214 -214
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.d.ts +11 -11
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/util.d.ts +2 -2
- package/dist/member/util.js +60 -60
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +24 -24
- package/dist/members/collection.js +11 -11
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +298 -298
- package/dist/members/index.js +275 -275
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +50 -50
- package/dist/members/request.js +27 -27
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.d.ts +2 -2
- package/dist/members/util.js +21 -21
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.d.ts +169 -169
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.d.ts +57 -57
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +152 -152
- package/dist/metrics/index.js +90 -90
- package/dist/metrics/index.js.map +1 -1
- package/dist/networkQualityMonitor/index.d.ts +70 -70
- package/dist/networkQualityMonitor/index.js +65 -65
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.d.ts +6 -6
- package/dist/peer-connection-manager/index.js +87 -87
- package/dist/peer-connection-manager/index.js.map +1 -1
- package/dist/peer-connection-manager/util.d.ts +6 -6
- package/dist/peer-connection-manager/util.js +9 -9
- package/dist/peer-connection-manager/util.js.map +1 -1
- package/dist/personal-meeting-room/index.d.ts +47 -47
- package/dist/personal-meeting-room/index.js +67 -67
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.d.ts +14 -14
- package/dist/personal-meeting-room/request.js +7 -7
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.d.ts +2 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.d.ts +139 -139
- package/dist/reachability/index.js +110 -110
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +35 -35
- package/dist/reachability/request.js +15 -15
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.d.ts +4 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +32 -32
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +112 -112
- package/dist/reconnection-manager/index.js +112 -112
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.d.ts +7 -7
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +193 -193
- package/dist/recording-controller/index.js +127 -127
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +13 -13
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/collection.d.ts +10 -10
- package/dist/roap/collection.js.map +1 -1
- package/dist/roap/handler.d.ts +47 -47
- package/dist/roap/handler.js +27 -27
- package/dist/roap/handler.js.map +1 -1
- package/dist/roap/index.d.ts +116 -116
- package/dist/roap/index.js +111 -111
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +35 -35
- package/dist/roap/request.js +17 -17
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.d.ts +9 -9
- package/dist/roap/state.js +14 -14
- package/dist/roap/state.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +67 -67
- package/dist/roap/turnDiscovery.js +46 -46
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/util.d.ts +2 -2
- package/dist/roap/util.js.map +1 -1
- package/dist/statsAnalyzer/global.d.ts +126 -126
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +190 -190
- package/dist/statsAnalyzer/index.js +128 -128
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +22 -22
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.d.ts +64 -64
- package/dist/transcription/index.js +42 -42
- package/dist/transcription/index.js.map +1 -1
- package/internal-README.md +172 -172
- package/jest.config.js +3 -3
- package/package.json +22 -21
- package/process +1 -1
- package/src/common/browser-detection.ts +39 -39
- package/src/common/collection.ts +94 -94
- package/src/common/config.ts +9 -9
- package/src/common/errors/captcha-error.ts +25 -25
- package/src/common/errors/intent-to-join.ts +27 -27
- package/src/common/errors/join-meeting.ts +32 -32
- package/src/common/errors/media.ts +25 -25
- package/src/common/errors/parameter.ts +33 -33
- package/src/common/errors/password-error.ts +25 -25
- package/src/common/errors/permission.ts +24 -24
- package/src/common/errors/reconnection-in-progress.ts +8 -8
- package/src/common/errors/reconnection.ts +25 -25
- package/src/common/errors/stats.ts +25 -25
- package/src/common/errors/webex-errors.ts +140 -140
- package/src/common/errors/webex-meetings-error.ts +35 -35
- package/src/common/events/events-scope.ts +30 -30
- package/src/common/events/events.ts +25 -25
- package/src/common/events/trigger-proxy.ts +25 -25
- package/src/common/events/util.ts +39 -39
- package/src/common/logs/logger-config.ts +8 -8
- package/src/common/logs/logger-proxy.ts +44 -44
- package/src/common/logs/request.ts +65 -65
- package/src/common/queue.ts +50 -50
- package/src/config.ts +96 -96
- package/src/constants.ts +1121 -1121
- package/src/controls-options-manager/constants.ts +5 -5
- package/src/controls-options-manager/enums.ts +6 -6
- package/src/controls-options-manager/index.ts +183 -183
- package/src/controls-options-manager/util.ts +20 -20
- package/src/index.js +15 -15
- package/src/locus-info/controlsUtils.ts +112 -112
- package/src/locus-info/embeddedAppsUtils.ts +57 -57
- package/src/locus-info/fullState.ts +69 -69
- package/src/locus-info/hostUtils.ts +60 -60
- package/src/locus-info/index.ts +1303 -1303
- package/src/locus-info/infoUtils.ts +101 -101
- package/src/locus-info/mediaSharesUtils.ts +173 -173
- package/src/locus-info/parser.ts +680 -680
- package/src/locus-info/selfUtils.ts +428 -428
- package/src/media/index.ts +675 -675
- package/src/media/properties.ts +313 -313
- package/src/media/util.ts +37 -37
- package/src/mediaQualityMetrics/config.ts +382 -382
- package/src/meeting/effectsState.ts +209 -209
- package/src/meeting/in-meeting-actions.ts +153 -153
- package/src/meeting/index.ts +6537 -6543
- package/src/meeting/muteState.ts +365 -365
- package/src/meeting/request.ts +810 -810
- package/src/meeting/state.ts +194 -194
- package/src/meeting/util.ts +530 -530
- package/src/meeting-info/collection.ts +41 -41
- package/src/meeting-info/index.ts +137 -137
- package/src/meeting-info/meeting-info-v2.ts +273 -273
- package/src/meeting-info/request.ts +46 -46
- package/src/meeting-info/util.ts +314 -314
- package/src/meeting-info/utilv2.ts +324 -324
- package/src/meetings/collection.ts +43 -43
- package/src/meetings/index.ts +1128 -1128
- package/src/meetings/request.ts +81 -81
- package/src/meetings/util.ts +181 -181
- package/src/member/index.ts +446 -446
- package/src/member/member.types.ts +13 -13
- package/src/member/util.ts +286 -286
- package/src/members/collection.ts +40 -40
- package/src/members/index.ts +900 -900
- package/src/members/request.ts +175 -175
- package/src/members/util.ts +260 -260
- package/src/metrics/config.ts +485 -485
- package/src/metrics/constants.ts +61 -61
- package/src/metrics/index.ts +543 -543
- package/src/networkQualityMonitor/index.ts +211 -211
- package/src/peer-connection-manager/index.ts +847 -847
- package/src/peer-connection-manager/util.ts +119 -119
- package/src/personal-meeting-room/index.ts +157 -157
- package/src/personal-meeting-room/request.ts +48 -48
- package/src/personal-meeting-room/util.ts +49 -49
- package/src/reachability/index.ts +478 -478
- package/src/reachability/request.ts +81 -81
- package/src/reactions/reactions.ts +104 -104
- package/src/reactions/reactions.type.ts +36 -36
- package/src/reconnection-manager/index.ts +622 -622
- package/src/recording-controller/enums.ts +8 -8
- package/src/recording-controller/index.ts +315 -315
- package/src/recording-controller/util.ts +58 -58
- package/src/roap/collection.ts +62 -62
- package/src/roap/handler.ts +294 -294
- package/src/roap/index.ts +413 -413
- package/src/roap/request.ts +229 -229
- package/src/roap/state.ts +156 -156
- package/src/roap/turnDiscovery.ts +283 -283
- package/src/roap/util.ts +100 -100
- package/src/statsAnalyzer/global.ts +128 -128
- package/src/statsAnalyzer/index.ts +1266 -1266
- package/src/statsAnalyzer/mqaUtil.ts +290 -290
- package/src/transcription/index.ts +154 -154
- package/test/integration/spec/journey.js +941 -941
- package/test/integration/spec/space-meeting.js +457 -457
- package/test/integration/spec/transcription.js +55 -55
- package/test/unit/spec/common/browser-detection.js +119 -119
- package/test/unit/spec/common/queue.js +69 -69
- package/test/unit/spec/controls-options-manager/index.js +123 -123
- package/test/unit/spec/controls-options-manager/util.js +65 -65
- package/test/unit/spec/fixture/locus.js +406 -406
- package/test/unit/spec/locus-info/controlsUtils.js +82 -82
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
- package/test/unit/spec/locus-info/index.js +1272 -1272
- package/test/unit/spec/locus-info/infoUtils.js +138 -138
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
- package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
- package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
- package/test/unit/spec/locus-info/parser.js +298 -298
- package/test/unit/spec/locus-info/selfUtils.js +185 -185
- package/test/unit/spec/media/properties.ts +305 -305
- package/test/unit/spec/meeting/effectsState.js +281 -281
- package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
- package/test/unit/spec/meeting/index.js +5227 -5227
- package/test/unit/spec/meeting/muteState.js +430 -430
- package/test/unit/spec/meeting/request.js +317 -317
- package/test/unit/spec/meeting/utils.js +319 -319
- package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
- package/test/unit/spec/meeting-info/request.js +64 -64
- package/test/unit/spec/meeting-info/util.js +37 -37
- package/test/unit/spec/meeting-info/utilv2.js +330 -330
- package/test/unit/spec/meetings/collection.js +52 -52
- package/test/unit/spec/meetings/index.js +1375 -1375
- package/test/unit/spec/meetings/utils.js +66 -66
- package/test/unit/spec/member/index.js +47 -47
- package/test/unit/spec/member/util.js +80 -80
- package/test/unit/spec/members/index.js +364 -364
- package/test/unit/spec/members/request.js +200 -200
- package/test/unit/spec/members/utils.js +42 -42
- package/test/unit/spec/metrics/index.js +111 -111
- package/test/unit/spec/networkQualityMonitor/index.js +99 -99
- package/test/unit/spec/peerconnection-manager/index.js +218 -218
- package/test/unit/spec/peerconnection-manager/utils.js +49 -49
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
- package/test/unit/spec/reachability/index.ts +50 -50
- package/test/unit/spec/reconnection-manager/index.js +206 -206
- package/test/unit/spec/recording-controller/index.js +230 -230
- package/test/unit/spec/recording-controller/util.js +101 -101
- package/test/unit/spec/roap/index.ts +128 -128
- package/test/unit/spec/roap/turnDiscovery.ts +372 -372
- package/test/unit/spec/roap/util.js +30 -30
- package/test/unit/spec/stats-analyzer/index.js +287 -287
- package/test/utils/cmr.js +104 -104
- package/test/utils/testUtils.js +287 -287
- package/test/utils/webex-config.js +77 -77
- package/test/utils/webex-test-users.js +82 -82
- package/tsconfig.json +5 -5
|
@@ -19,34 +19,34 @@ var _eventsScope = _interopRequireDefault(require("../common/events/events-scope
|
|
|
19
19
|
var _constants = require("../constants");
|
|
20
20
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
21
21
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
22
|
-
/**
|
|
23
|
-
* Meeting - network quality event
|
|
24
|
-
* Emitted on each interval of retrieving stats Analyzer data
|
|
25
|
-
* @event network:quality
|
|
26
|
-
* @type {Object}
|
|
27
|
-
* @property {string} mediaType {video|audio}
|
|
28
|
-
* @property {number} networkQualityScore - value determined in determineUplinkNetworkQuality
|
|
29
|
-
* @memberof NetworkQualityMonitor
|
|
22
|
+
/**
|
|
23
|
+
* Meeting - network quality event
|
|
24
|
+
* Emitted on each interval of retrieving stats Analyzer data
|
|
25
|
+
* @event network:quality
|
|
26
|
+
* @type {Object}
|
|
27
|
+
* @property {string} mediaType {video|audio}
|
|
28
|
+
* @property {number} networkQualityScore - value determined in determineUplinkNetworkQuality
|
|
29
|
+
* @memberof NetworkQualityMonitor
|
|
30
30
|
*/
|
|
31
|
-
/**
|
|
32
|
-
* NetworkQualityMonitor class that will emit events based on detected quality
|
|
33
|
-
*
|
|
34
|
-
* @class NetworkQualityMonitor
|
|
35
|
-
* @extends {EventsScope}
|
|
31
|
+
/**
|
|
32
|
+
* NetworkQualityMonitor class that will emit events based on detected quality
|
|
33
|
+
*
|
|
34
|
+
* @class NetworkQualityMonitor
|
|
35
|
+
* @extends {EventsScope}
|
|
36
36
|
*/
|
|
37
37
|
var NetworkQualityMonitor = /*#__PURE__*/function (_EventsScope) {
|
|
38
38
|
(0, _inherits2.default)(NetworkQualityMonitor, _EventsScope);
|
|
39
39
|
var _super = _createSuper(NetworkQualityMonitor);
|
|
40
|
-
/**
|
|
41
|
-
* Creates a new instance of NetworkQualityMonitor
|
|
42
|
-
* @constructor
|
|
43
|
-
* @public
|
|
44
|
-
* @param {Object} config
|
|
45
|
-
* @property {Object} indicatorTypes - network properties used to evaluate network quality used as constants
|
|
46
|
-
* @property {Object} frequencyTypes - frequency properties used as constants {uplink|send} {downlink|receive}
|
|
47
|
-
* @property {number} networkQualityScore - 0|1 1 is acceptable 0 is bad/unknown
|
|
48
|
-
* @property {Object} networkQualityStatus - hash object based on indicatorTypes and frequencyTypes
|
|
49
|
-
* @property {string} mediaType - audio|video
|
|
40
|
+
/**
|
|
41
|
+
* Creates a new instance of NetworkQualityMonitor
|
|
42
|
+
* @constructor
|
|
43
|
+
* @public
|
|
44
|
+
* @param {Object} config
|
|
45
|
+
* @property {Object} indicatorTypes - network properties used to evaluate network quality used as constants
|
|
46
|
+
* @property {Object} frequencyTypes - frequency properties used as constants {uplink|send} {downlink|receive}
|
|
47
|
+
* @property {number} networkQualityScore - 0|1 1 is acceptable 0 is bad/unknown
|
|
48
|
+
* @property {Object} networkQualityStatus - hash object based on indicatorTypes and frequencyTypes
|
|
49
|
+
* @property {string} mediaType - audio|video
|
|
50
50
|
*/
|
|
51
51
|
function NetworkQualityMonitor(config) {
|
|
52
52
|
var _this$frequencyTypes$;
|
|
@@ -75,11 +75,11 @@ var NetworkQualityMonitor = /*#__PURE__*/function (_EventsScope) {
|
|
|
75
75
|
return _this;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
/**
|
|
79
|
-
* emits NETWORK_QUALITY event on meeting with payload of media type and uplinkNetworkQuality score
|
|
80
|
-
*
|
|
81
|
-
* @memberof NetworkQualityMonitor
|
|
82
|
-
* @returns {void}
|
|
78
|
+
/**
|
|
79
|
+
* emits NETWORK_QUALITY event on meeting with payload of media type and uplinkNetworkQuality score
|
|
80
|
+
*
|
|
81
|
+
* @memberof NetworkQualityMonitor
|
|
82
|
+
* @returns {void}
|
|
83
83
|
*/
|
|
84
84
|
(0, _createClass2.default)(NetworkQualityMonitor, [{
|
|
85
85
|
key: "emitNetworkQuality",
|
|
@@ -93,10 +93,10 @@ var NetworkQualityMonitor = /*#__PURE__*/function (_EventsScope) {
|
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
/**
|
|
97
|
-
* invokes emitNetworkQuality method resets values back to default
|
|
98
|
-
* @returns {void}
|
|
99
|
-
* @memberof NetworkQualityMonitor
|
|
96
|
+
/**
|
|
97
|
+
* invokes emitNetworkQuality method resets values back to default
|
|
98
|
+
* @returns {void}
|
|
99
|
+
* @memberof NetworkQualityMonitor
|
|
100
100
|
*/
|
|
101
101
|
}, {
|
|
102
102
|
key: "updateNetworkQualityStatus",
|
|
@@ -108,15 +108,15 @@ var NetworkQualityMonitor = /*#__PURE__*/function (_EventsScope) {
|
|
|
108
108
|
this.mediaType = null;
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
/**
|
|
112
|
-
* filter data to determine uplink network quality, invoked on same interval as stats analyzer remote-inbout-rtp
|
|
113
|
-
* @param {Object} configObj
|
|
114
|
-
* @param {string} configObj.mediaType {audio|video}
|
|
115
|
-
* @param {RTCStats} configObj.remoteRtpResults RTC stats remote obj
|
|
116
|
-
* @param {Object} configObj.statsAnalyzerCurrentStats statsResults
|
|
117
|
-
* @returns {void}
|
|
118
|
-
* @public
|
|
119
|
-
* @memberof NetworkQualityMonitor
|
|
111
|
+
/**
|
|
112
|
+
* filter data to determine uplink network quality, invoked on same interval as stats analyzer remote-inbout-rtp
|
|
113
|
+
* @param {Object} configObj
|
|
114
|
+
* @param {string} configObj.mediaType {audio|video}
|
|
115
|
+
* @param {RTCStats} configObj.remoteRtpResults RTC stats remote obj
|
|
116
|
+
* @param {Object} configObj.statsAnalyzerCurrentStats statsResults
|
|
117
|
+
* @returns {void}
|
|
118
|
+
* @public
|
|
119
|
+
* @memberof NetworkQualityMonitor
|
|
120
120
|
*/
|
|
121
121
|
}, {
|
|
122
122
|
key: "determineUplinkNetworkQuality",
|
|
@@ -135,10 +135,10 @@ var NetworkQualityMonitor = /*#__PURE__*/function (_EventsScope) {
|
|
|
135
135
|
LATENCY = _this$indicatorTypes.LATENCY;
|
|
136
136
|
var UPLINK = this.frequencyTypes.UPLINK;
|
|
137
137
|
|
|
138
|
-
/**
|
|
139
|
-
* determines if packetLoss ratio is over threshold set in config
|
|
140
|
-
* sets networkQualityScore to 0 if over threshold
|
|
141
|
-
* @returns {boolean}
|
|
138
|
+
/**
|
|
139
|
+
* determines if packetLoss ratio is over threshold set in config
|
|
140
|
+
* sets networkQualityScore to 0 if over threshold
|
|
141
|
+
* @returns {boolean}
|
|
142
142
|
*/
|
|
143
143
|
var determinePacketLoss = function determinePacketLoss() {
|
|
144
144
|
if (currentPacketLossRatio > _this2.config.videoPacketLossRatioThreshold) {
|
|
@@ -148,10 +148,10 @@ var NetworkQualityMonitor = /*#__PURE__*/function (_EventsScope) {
|
|
|
148
148
|
return true;
|
|
149
149
|
};
|
|
150
150
|
|
|
151
|
-
/**
|
|
152
|
-
* determines if round trip time value is over threshold set in config
|
|
153
|
-
* sets networkQualityScore to 0 if over threshold
|
|
154
|
-
* @returns {boolean}
|
|
151
|
+
/**
|
|
152
|
+
* determines if round trip time value is over threshold set in config
|
|
153
|
+
* sets networkQualityScore to 0 if over threshold
|
|
154
|
+
* @returns {boolean}
|
|
155
155
|
*/
|
|
156
156
|
var determineLatency = function determineLatency() {
|
|
157
157
|
if (roundTripTimeInMilliseconds > _this2.config.rttThreshold) {
|
|
@@ -161,10 +161,10 @@ var NetworkQualityMonitor = /*#__PURE__*/function (_EventsScope) {
|
|
|
161
161
|
return true;
|
|
162
162
|
};
|
|
163
163
|
|
|
164
|
-
/**
|
|
165
|
-
* determines if jitter value is over threshold in config
|
|
166
|
-
* sets networkQualityScore to 0 if over threshold
|
|
167
|
-
* @returns {boolean}
|
|
164
|
+
/**
|
|
165
|
+
* determines if jitter value is over threshold in config
|
|
166
|
+
* sets networkQualityScore to 0 if over threshold
|
|
167
|
+
* @returns {boolean}
|
|
168
168
|
*/
|
|
169
169
|
var deterMineJitter = function deterMineJitter() {
|
|
170
170
|
if (jitterInMilliseconds > _this2.config.jitterThreshold) {
|
|
@@ -174,19 +174,19 @@ var NetworkQualityMonitor = /*#__PURE__*/function (_EventsScope) {
|
|
|
174
174
|
return true;
|
|
175
175
|
};
|
|
176
176
|
|
|
177
|
-
/**
|
|
178
|
-
* returns null if val is specifically undefined
|
|
179
|
-
* @param {(number|undefined)} value
|
|
180
|
-
* @returns {(number|null)}
|
|
177
|
+
/**
|
|
178
|
+
* returns null if val is specifically undefined
|
|
179
|
+
* @param {(number|undefined)} value
|
|
180
|
+
* @returns {(number|null)}
|
|
181
181
|
*/
|
|
182
182
|
var determineIfUndefined = function determineIfUndefined(value) {
|
|
183
183
|
return typeof value === 'undefined' ? null : value;
|
|
184
184
|
};
|
|
185
185
|
|
|
186
|
-
/**
|
|
187
|
-
* Values for some browsers specifically Safari will be undefined we explicitly set to null
|
|
188
|
-
* https://bugs.webkit.org/show_bug.cgi?id=206645
|
|
189
|
-
* https://bugs.webkit.org/show_bug.cgi?id=212668
|
|
186
|
+
/**
|
|
187
|
+
* Values for some browsers specifically Safari will be undefined we explicitly set to null
|
|
188
|
+
* https://bugs.webkit.org/show_bug.cgi?id=206645
|
|
189
|
+
* https://bugs.webkit.org/show_bug.cgi?id=212668
|
|
190
190
|
*/
|
|
191
191
|
// PACKET LOSS
|
|
192
192
|
this.networkQualityStatus[UPLINK][mediaType][PACKETLOSS] = {
|
|
@@ -208,10 +208,10 @@ var NetworkQualityMonitor = /*#__PURE__*/function (_EventsScope) {
|
|
|
208
208
|
this.updateNetworkQualityStatus();
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
-
/**
|
|
212
|
-
* Get the current status of network quaility object - networkQualityStatus
|
|
213
|
-
* @returns {Object}
|
|
214
|
-
* @public
|
|
211
|
+
/**
|
|
212
|
+
* Get the current status of network quaility object - networkQualityStatus
|
|
213
|
+
* @returns {Object}
|
|
214
|
+
* @public
|
|
215
215
|
*/
|
|
216
216
|
}, {
|
|
217
217
|
key: "networkQualityStats",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_eventsScope","_interopRequireDefault","require","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","NetworkQualityMonitor","_EventsScope","_inherits2","_super","config","_this$frequencyTypes$","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","indicatorTypes","_freeze","PACKETLOSS","LATENCY","JITTER","frequencyTypes","UPLINK","DOWNLINK","networkQualityScore","networkQualityStatus","STATS","VIDEO_CORRELATE","AUDIO_CORRELATE","SHARE_CORRELATE","mediaType","_createClass2","key","value","emitNetworkQuality","emit","file","function","EVENT_TRIGGERS","NETWORK_QUALITY","updateNetworkQualityStatus","determineUplinkNetworkQuality","_ref","_this2","remoteRtpResults","statsAnalyzerCurrentStats","roundTripTimeInMilliseconds","roundTripTime","jitterInMilliseconds","jitter","currentPacketLossRatio","send","_this$indicatorTypes","determinePacketLoss","videoPacketLossRatioThreshold","determineLatency","rttThreshold","deterMineJitter","jitterThreshold","determineIfUndefined","acceptable","get","EventsScope","exports"],"sources":["index.ts"],"sourcesContent":["import EventsScope from '../common/events/events-scope';\nimport {EVENT_TRIGGERS, STATS} from '../constants';\n\n/**\n * Meeting - network quality event\n * Emitted on each interval of retrieving stats Analyzer data\n * @event network:quality\n * @type {Object}\n * @property {string} mediaType {video|audio}\n * @property {number} networkQualityScore - value determined in determineUplinkNetworkQuality\n * @memberof NetworkQualityMonitor\n */\n/**\n * NetworkQualityMonitor class that will emit events based on detected quality\n *\n * @class NetworkQualityMonitor\n * @extends {EventsScope}\n */\nexport default class NetworkQualityMonitor extends EventsScope {\n config: any;\n frequencyTypes: any;\n indicatorTypes: any;\n mediaType: any;\n networkQualityScore: any;\n networkQualityStatus: any;\n\n /**\n * Creates a new instance of NetworkQualityMonitor\n * @constructor\n * @public\n * @param {Object} config\n * @property {Object} indicatorTypes - network properties used to evaluate network quality used as constants\n * @property {Object} frequencyTypes - frequency properties used as constants {uplink|send} {downlink|receive}\n * @property {number} networkQualityScore - 0|1 1 is acceptable 0 is bad/unknown\n * @property {Object} networkQualityStatus - hash object based on indicatorTypes and frequencyTypes\n * @property {string} mediaType - audio|video\n */\n constructor(config: any) {\n super();\n this.config = config;\n this.indicatorTypes = Object.freeze({\n PACKETLOSS: 'packetLoss',\n LATENCY: 'latency',\n JITTER: 'jitter',\n });\n this.frequencyTypes = Object.freeze({\n UPLINK: 'uplink',\n DOWNLINK: 'downlink',\n });\n this.networkQualityScore = 1;\n this.networkQualityStatus = {\n [this.frequencyTypes.UPLINK]: {\n [STATS.VIDEO_CORRELATE]: {},\n [STATS.AUDIO_CORRELATE]: {},\n [STATS.SHARE_CORRELATE]: {},\n },\n };\n this.mediaType = null;\n }\n\n /**\n * emits NETWORK_QUALITY event on meeting with payload of media type and uplinkNetworkQuality score\n *\n * @memberof NetworkQualityMonitor\n * @returns {void}\n */\n emitNetworkQuality() {\n this.emit(\n {\n file: 'networkQualityMonitor',\n function: 'emitNetworkQuality',\n },\n EVENT_TRIGGERS.NETWORK_QUALITY,\n {\n mediaType: this.mediaType,\n networkQualityScore: this.networkQualityScore,\n }\n );\n }\n\n /**\n * invokes emitNetworkQuality method resets values back to default\n * @returns {void}\n * @memberof NetworkQualityMonitor\n */\n updateNetworkQualityStatus() {\n this.emitNetworkQuality();\n\n // reset values\n this.networkQualityScore = 1;\n this.mediaType = null;\n }\n\n /**\n * filter data to determine uplink network quality, invoked on same interval as stats analyzer remote-inbout-rtp\n * @param {Object} configObj\n * @param {string} configObj.mediaType {audio|video}\n * @param {RTCStats} configObj.remoteRtpResults RTC stats remote obj\n * @param {Object} configObj.statsAnalyzerCurrentStats statsResults\n * @returns {void}\n * @public\n * @memberof NetworkQualityMonitor\n */\n public determineUplinkNetworkQuality({\n mediaType,\n remoteRtpResults,\n statsAnalyzerCurrentStats,\n }: {\n mediaType: string;\n remoteRtpResults: any;\n statsAnalyzerCurrentStats: object;\n }) {\n const roundTripTimeInMilliseconds = remoteRtpResults.roundTripTime * 1000;\n const jitterInMilliseconds = remoteRtpResults.jitter * 1000;\n const {currentPacketLossRatio} = statsAnalyzerCurrentStats[mediaType].send;\n\n this.mediaType = mediaType;\n\n const {JITTER, PACKETLOSS, LATENCY} = this.indicatorTypes;\n const {UPLINK} = this.frequencyTypes;\n\n /**\n * determines if packetLoss ratio is over threshold set in config\n * sets networkQualityScore to 0 if over threshold\n * @returns {boolean}\n */\n const determinePacketLoss = () => {\n if (currentPacketLossRatio > this.config.videoPacketLossRatioThreshold) {\n this.networkQualityScore = 0;\n\n return false;\n }\n\n return true;\n };\n\n /**\n * determines if round trip time value is over threshold set in config\n * sets networkQualityScore to 0 if over threshold\n * @returns {boolean}\n */\n const determineLatency = () => {\n if (roundTripTimeInMilliseconds > this.config.rttThreshold) {\n this.networkQualityScore = 0;\n\n return false;\n }\n\n return true;\n };\n\n /**\n * determines if jitter value is over threshold in config\n * sets networkQualityScore to 0 if over threshold\n * @returns {boolean}\n */\n const deterMineJitter = () => {\n if (jitterInMilliseconds > this.config.jitterThreshold) {\n this.networkQualityScore = 0;\n\n return false;\n }\n\n return true;\n };\n\n /**\n * returns null if val is specifically undefined\n * @param {(number|undefined)} value\n * @returns {(number|null)}\n */\n const determineIfUndefined = (value: number | undefined) =>\n typeof value === 'undefined' ? null : value;\n\n /**\n * Values for some browsers specifically Safari will be undefined we explicitly set to null\n * https://bugs.webkit.org/show_bug.cgi?id=206645\n * https://bugs.webkit.org/show_bug.cgi?id=212668\n */\n // PACKET LOSS\n this.networkQualityStatus[UPLINK][mediaType][PACKETLOSS] = {\n acceptable: determinePacketLoss(),\n value: determineIfUndefined(currentPacketLossRatio),\n };\n\n // LATENCY measured in Round trip time\n this.networkQualityStatus[UPLINK][mediaType][LATENCY] = {\n acceptable: determineLatency(),\n value: determineIfUndefined(remoteRtpResults.roundTripTime),\n };\n\n // JITTER\n this.networkQualityStatus[UPLINK][mediaType][JITTER] = {\n acceptable: deterMineJitter(),\n value: determineIfUndefined(remoteRtpResults.jitter),\n };\n\n this.updateNetworkQualityStatus();\n }\n\n /**\n * Get the current status of network quaility object - networkQualityStatus\n * @returns {Object}\n * @public\n */\n get networkQualityStats() {\n const {UPLINK} = this.frequencyTypes;\n\n return this.networkQualityStatus[UPLINK];\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_eventsScope","_interopRequireDefault","require","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","NetworkQualityMonitor","_EventsScope","_inherits2","_super","config","_this$frequencyTypes$","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","indicatorTypes","_freeze","PACKETLOSS","LATENCY","JITTER","frequencyTypes","UPLINK","DOWNLINK","networkQualityScore","networkQualityStatus","STATS","VIDEO_CORRELATE","AUDIO_CORRELATE","SHARE_CORRELATE","mediaType","_createClass2","key","value","emitNetworkQuality","emit","file","function","EVENT_TRIGGERS","NETWORK_QUALITY","updateNetworkQualityStatus","determineUplinkNetworkQuality","_ref","_this2","remoteRtpResults","statsAnalyzerCurrentStats","roundTripTimeInMilliseconds","roundTripTime","jitterInMilliseconds","jitter","currentPacketLossRatio","send","_this$indicatorTypes","determinePacketLoss","videoPacketLossRatioThreshold","determineLatency","rttThreshold","deterMineJitter","jitterThreshold","determineIfUndefined","acceptable","get","EventsScope","exports"],"sources":["index.ts"],"sourcesContent":["import EventsScope from '../common/events/events-scope';\r\nimport {EVENT_TRIGGERS, STATS} from '../constants';\r\n\r\n/**\r\n * Meeting - network quality event\r\n * Emitted on each interval of retrieving stats Analyzer data\r\n * @event network:quality\r\n * @type {Object}\r\n * @property {string} mediaType {video|audio}\r\n * @property {number} networkQualityScore - value determined in determineUplinkNetworkQuality\r\n * @memberof NetworkQualityMonitor\r\n */\r\n/**\r\n * NetworkQualityMonitor class that will emit events based on detected quality\r\n *\r\n * @class NetworkQualityMonitor\r\n * @extends {EventsScope}\r\n */\r\nexport default class NetworkQualityMonitor extends EventsScope {\r\n config: any;\r\n frequencyTypes: any;\r\n indicatorTypes: any;\r\n mediaType: any;\r\n networkQualityScore: any;\r\n networkQualityStatus: any;\r\n\r\n /**\r\n * Creates a new instance of NetworkQualityMonitor\r\n * @constructor\r\n * @public\r\n * @param {Object} config\r\n * @property {Object} indicatorTypes - network properties used to evaluate network quality used as constants\r\n * @property {Object} frequencyTypes - frequency properties used as constants {uplink|send} {downlink|receive}\r\n * @property {number} networkQualityScore - 0|1 1 is acceptable 0 is bad/unknown\r\n * @property {Object} networkQualityStatus - hash object based on indicatorTypes and frequencyTypes\r\n * @property {string} mediaType - audio|video\r\n */\r\n constructor(config: any) {\r\n super();\r\n this.config = config;\r\n this.indicatorTypes = Object.freeze({\r\n PACKETLOSS: 'packetLoss',\r\n LATENCY: 'latency',\r\n JITTER: 'jitter',\r\n });\r\n this.frequencyTypes = Object.freeze({\r\n UPLINK: 'uplink',\r\n DOWNLINK: 'downlink',\r\n });\r\n this.networkQualityScore = 1;\r\n this.networkQualityStatus = {\r\n [this.frequencyTypes.UPLINK]: {\r\n [STATS.VIDEO_CORRELATE]: {},\r\n [STATS.AUDIO_CORRELATE]: {},\r\n [STATS.SHARE_CORRELATE]: {},\r\n },\r\n };\r\n this.mediaType = null;\r\n }\r\n\r\n /**\r\n * emits NETWORK_QUALITY event on meeting with payload of media type and uplinkNetworkQuality score\r\n *\r\n * @memberof NetworkQualityMonitor\r\n * @returns {void}\r\n */\r\n emitNetworkQuality() {\r\n this.emit(\r\n {\r\n file: 'networkQualityMonitor',\r\n function: 'emitNetworkQuality',\r\n },\r\n EVENT_TRIGGERS.NETWORK_QUALITY,\r\n {\r\n mediaType: this.mediaType,\r\n networkQualityScore: this.networkQualityScore,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * invokes emitNetworkQuality method resets values back to default\r\n * @returns {void}\r\n * @memberof NetworkQualityMonitor\r\n */\r\n updateNetworkQualityStatus() {\r\n this.emitNetworkQuality();\r\n\r\n // reset values\r\n this.networkQualityScore = 1;\r\n this.mediaType = null;\r\n }\r\n\r\n /**\r\n * filter data to determine uplink network quality, invoked on same interval as stats analyzer remote-inbout-rtp\r\n * @param {Object} configObj\r\n * @param {string} configObj.mediaType {audio|video}\r\n * @param {RTCStats} configObj.remoteRtpResults RTC stats remote obj\r\n * @param {Object} configObj.statsAnalyzerCurrentStats statsResults\r\n * @returns {void}\r\n * @public\r\n * @memberof NetworkQualityMonitor\r\n */\r\n public determineUplinkNetworkQuality({\r\n mediaType,\r\n remoteRtpResults,\r\n statsAnalyzerCurrentStats,\r\n }: {\r\n mediaType: string;\r\n remoteRtpResults: any;\r\n statsAnalyzerCurrentStats: object;\r\n }) {\r\n const roundTripTimeInMilliseconds = remoteRtpResults.roundTripTime * 1000;\r\n const jitterInMilliseconds = remoteRtpResults.jitter * 1000;\r\n const {currentPacketLossRatio} = statsAnalyzerCurrentStats[mediaType].send;\r\n\r\n this.mediaType = mediaType;\r\n\r\n const {JITTER, PACKETLOSS, LATENCY} = this.indicatorTypes;\r\n const {UPLINK} = this.frequencyTypes;\r\n\r\n /**\r\n * determines if packetLoss ratio is over threshold set in config\r\n * sets networkQualityScore to 0 if over threshold\r\n * @returns {boolean}\r\n */\r\n const determinePacketLoss = () => {\r\n if (currentPacketLossRatio > this.config.videoPacketLossRatioThreshold) {\r\n this.networkQualityScore = 0;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n /**\r\n * determines if round trip time value is over threshold set in config\r\n * sets networkQualityScore to 0 if over threshold\r\n * @returns {boolean}\r\n */\r\n const determineLatency = () => {\r\n if (roundTripTimeInMilliseconds > this.config.rttThreshold) {\r\n this.networkQualityScore = 0;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n /**\r\n * determines if jitter value is over threshold in config\r\n * sets networkQualityScore to 0 if over threshold\r\n * @returns {boolean}\r\n */\r\n const deterMineJitter = () => {\r\n if (jitterInMilliseconds > this.config.jitterThreshold) {\r\n this.networkQualityScore = 0;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n /**\r\n * returns null if val is specifically undefined\r\n * @param {(number|undefined)} value\r\n * @returns {(number|null)}\r\n */\r\n const determineIfUndefined = (value: number | undefined) =>\r\n typeof value === 'undefined' ? null : value;\r\n\r\n /**\r\n * Values for some browsers specifically Safari will be undefined we explicitly set to null\r\n * https://bugs.webkit.org/show_bug.cgi?id=206645\r\n * https://bugs.webkit.org/show_bug.cgi?id=212668\r\n */\r\n // PACKET LOSS\r\n this.networkQualityStatus[UPLINK][mediaType][PACKETLOSS] = {\r\n acceptable: determinePacketLoss(),\r\n value: determineIfUndefined(currentPacketLossRatio),\r\n };\r\n\r\n // LATENCY measured in Round trip time\r\n this.networkQualityStatus[UPLINK][mediaType][LATENCY] = {\r\n acceptable: determineLatency(),\r\n value: determineIfUndefined(remoteRtpResults.roundTripTime),\r\n };\r\n\r\n // JITTER\r\n this.networkQualityStatus[UPLINK][mediaType][JITTER] = {\r\n acceptable: deterMineJitter(),\r\n value: determineIfUndefined(remoteRtpResults.jitter),\r\n };\r\n\r\n this.updateNetworkQualityStatus();\r\n }\r\n\r\n /**\r\n * Get the current status of network quaility object - networkQualityStatus\r\n * @returns {Object}\r\n * @public\r\n */\r\n get networkQualityStats() {\r\n const {UPLINK} = this.frequencyTypes;\r\n\r\n return this.networkQualityStatus[UPLINK];\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @export
|
|
3
|
-
* @public
|
|
4
|
-
*/
|
|
5
|
-
declare const pc: any;
|
|
6
|
-
export default pc;
|
|
1
|
+
/**
|
|
2
|
+
* @export
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
declare const pc: any;
|
|
6
|
+
export default pc;
|
|
@@ -32,17 +32,17 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
32
32
|
var _BrowserDetection = (0, _browserDetection.default)(),
|
|
33
33
|
isBrowser = _BrowserDetection.isBrowser;
|
|
34
34
|
|
|
35
|
-
/**
|
|
36
|
-
* @export
|
|
37
|
-
* @public
|
|
35
|
+
/**
|
|
36
|
+
* @export
|
|
37
|
+
* @public
|
|
38
38
|
*/
|
|
39
39
|
var pc = {};
|
|
40
40
|
|
|
41
|
-
/**
|
|
42
|
-
* munges the bandwidth limit into the sdp
|
|
43
|
-
* @param {String} sdpLines
|
|
44
|
-
* @param {Number} index
|
|
45
|
-
* @returns {String}
|
|
41
|
+
/**
|
|
42
|
+
* munges the bandwidth limit into the sdp
|
|
43
|
+
* @param {String} sdpLines
|
|
44
|
+
* @param {Number} index
|
|
45
|
+
* @returns {String}
|
|
46
46
|
*/
|
|
47
47
|
var insertBandwidthLimit = function insertBandwidthLimit(sdpLines, index) {
|
|
48
48
|
// eslint-disable-next-line no-warning-comments
|
|
@@ -60,11 +60,11 @@ var insertBandwidthLimit = function insertBandwidthLimit(sdpLines, index) {
|
|
|
60
60
|
return sdpLines;
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
/**
|
|
64
|
-
* needed for calliope max-fs
|
|
65
|
-
* @param {String} sdp
|
|
66
|
-
* @param {String} [level=QUALITY_LEVELS.HIGH] quality level for max-fs
|
|
67
|
-
* @returns {String}
|
|
63
|
+
/**
|
|
64
|
+
* needed for calliope max-fs
|
|
65
|
+
* @param {String} sdp
|
|
66
|
+
* @param {String} [level=QUALITY_LEVELS.HIGH] quality level for max-fs
|
|
67
|
+
* @returns {String}
|
|
68
68
|
*/
|
|
69
69
|
var setRemoteVideoConstraints = function setRemoteVideoConstraints(sdp) {
|
|
70
70
|
var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.QUALITY_LEVELS.HIGH;
|
|
@@ -82,10 +82,10 @@ var setStartBitrateOnRemoteSdp = function setStartBitrateOnRemoteSdp(sdp) {
|
|
|
82
82
|
return sdp;
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
-
/**
|
|
86
|
-
* checks that sdp has h264 codec in it
|
|
87
|
-
* @param {String} sdp
|
|
88
|
-
* @returns {boolean}
|
|
85
|
+
/**
|
|
86
|
+
* checks that sdp has h264 codec in it
|
|
87
|
+
* @param {String} sdp
|
|
88
|
+
* @returns {boolean}
|
|
89
89
|
*/
|
|
90
90
|
var checkH264Support = function checkH264Support(sdp) {
|
|
91
91
|
// eslint-disable-next-line no-warning-comments
|
|
@@ -98,10 +98,10 @@ var checkH264Support = function checkH264Support(sdp) {
|
|
|
98
98
|
return true;
|
|
99
99
|
};
|
|
100
100
|
|
|
101
|
-
/**
|
|
102
|
-
* validates the sdp, checks port, candidates, and ice info
|
|
103
|
-
* @param {String} sdp
|
|
104
|
-
* @returns {String}
|
|
101
|
+
/**
|
|
102
|
+
* validates the sdp, checks port, candidates, and ice info
|
|
103
|
+
* @param {String} sdp
|
|
104
|
+
* @returns {String}
|
|
105
105
|
*/
|
|
106
106
|
var isSdpInvalid = function isSdpInvalid(sdp) {
|
|
107
107
|
var parsedSdp = _sdpTransform.default.parse(sdp);
|
|
@@ -132,10 +132,10 @@ var isSdpInvalid = function isSdpInvalid(sdp) {
|
|
|
132
132
|
return '';
|
|
133
133
|
};
|
|
134
134
|
|
|
135
|
-
/**
|
|
136
|
-
* munges the bandwidth into the sdp
|
|
137
|
-
* @param {String} sdp
|
|
138
|
-
* @returns {String}
|
|
135
|
+
/**
|
|
136
|
+
* munges the bandwidth into the sdp
|
|
137
|
+
* @param {String} sdp
|
|
138
|
+
* @returns {String}
|
|
139
139
|
*/
|
|
140
140
|
var limitBandwidth = function limitBandwidth(sdp) {
|
|
141
141
|
// TODO convert to sdp parser
|
|
@@ -150,10 +150,10 @@ var limitBandwidth = function limitBandwidth(sdp) {
|
|
|
150
150
|
return offerSdp;
|
|
151
151
|
};
|
|
152
152
|
|
|
153
|
-
/**
|
|
154
|
-
* makes sure the screen pc sdp has content:slides for server
|
|
155
|
-
* @param {RTCPeerConnection} screenPc
|
|
156
|
-
* @returns {RTCPeerConnection}
|
|
153
|
+
/**
|
|
154
|
+
* makes sure the screen pc sdp has content:slides for server
|
|
155
|
+
* @param {RTCPeerConnection} screenPc
|
|
156
|
+
* @returns {RTCPeerConnection}
|
|
157
157
|
*/
|
|
158
158
|
pc.setContentSlides = function (screenPc) {
|
|
159
159
|
if (screenPc && screenPc.sdp) {
|
|
@@ -162,12 +162,12 @@ pc.setContentSlides = function (screenPc) {
|
|
|
162
162
|
return screenPc;
|
|
163
163
|
};
|
|
164
164
|
|
|
165
|
-
/**
|
|
166
|
-
* handles ice trickling and establishes ICE connection onto peer connection object
|
|
167
|
-
* @param {Object} peerConnection
|
|
168
|
-
* @param {Object} options
|
|
169
|
-
* @param {String} options.remoteQualityLevel
|
|
170
|
-
* @returns {Promise.RTCPeerConnection}
|
|
165
|
+
/**
|
|
166
|
+
* handles ice trickling and establishes ICE connection onto peer connection object
|
|
167
|
+
* @param {Object} peerConnection
|
|
168
|
+
* @param {Object} options
|
|
169
|
+
* @param {String} options.remoteQualityLevel
|
|
170
|
+
* @returns {Promise.RTCPeerConnection}
|
|
171
171
|
*/
|
|
172
172
|
pc.iceCandidate = function (peerConnection, _ref) {
|
|
173
173
|
var remoteQualityLevel = _ref.remoteQualityLevel;
|
|
@@ -218,11 +218,11 @@ pc.iceCandidate = function (peerConnection, _ref) {
|
|
|
218
218
|
});
|
|
219
219
|
};
|
|
220
220
|
|
|
221
|
-
/**
|
|
222
|
-
* swapping tracks
|
|
223
|
-
* @param {Object} peerConnection
|
|
224
|
-
* @param {Object} track
|
|
225
|
-
* @returns {undefined}
|
|
221
|
+
/**
|
|
222
|
+
* swapping tracks
|
|
223
|
+
* @param {Object} peerConnection
|
|
224
|
+
* @param {Object} track
|
|
225
|
+
* @returns {undefined}
|
|
226
226
|
*/
|
|
227
227
|
pc.replaceTrack = function (peerConnection, track) {
|
|
228
228
|
try {
|
|
@@ -239,11 +239,11 @@ pc.replaceTrack = function (peerConnection, track) {
|
|
|
239
239
|
}
|
|
240
240
|
};
|
|
241
241
|
|
|
242
|
-
/**
|
|
243
|
-
* adding streams to peerConnection
|
|
244
|
-
* @param {Object} peerConnection
|
|
245
|
-
* @param {Object} stream
|
|
246
|
-
* @returns {undefined}
|
|
242
|
+
/**
|
|
243
|
+
* adding streams to peerConnection
|
|
244
|
+
* @param {Object} peerConnection
|
|
245
|
+
* @param {Object} stream
|
|
246
|
+
* @returns {undefined}
|
|
247
247
|
*/
|
|
248
248
|
pc.addStream = function (peerConnection, stream) {
|
|
249
249
|
try {
|
|
@@ -272,13 +272,13 @@ pc.addStream = function (peerConnection, stream) {
|
|
|
272
272
|
}
|
|
273
273
|
};
|
|
274
274
|
|
|
275
|
-
/**
|
|
276
|
-
* setting the remote description
|
|
277
|
-
* @param {Object} peerConnection
|
|
278
|
-
* @param {String} typeStr
|
|
279
|
-
* @param {String} remoteSdp
|
|
280
|
-
* @param {String} meetingId
|
|
281
|
-
* @returns {undefined}
|
|
275
|
+
/**
|
|
276
|
+
* setting the remote description
|
|
277
|
+
* @param {Object} peerConnection
|
|
278
|
+
* @param {String} typeStr
|
|
279
|
+
* @param {String} remoteSdp
|
|
280
|
+
* @param {String} meetingId
|
|
281
|
+
* @returns {undefined}
|
|
282
282
|
*/
|
|
283
283
|
pc.setRemoteSessionDetails = function (peerConnection, typeStr, remoteSdp, meetingId) {
|
|
284
284
|
_loggerProxy.default.logger.log("PeerConnectionManager:index#setRemoteSessionDetails --> Setting the remote description type: ".concat(typeStr, "State: ").concat(peerConnection.signalingState));
|
|
@@ -342,15 +342,15 @@ pc.setRemoteSessionDetails = function (peerConnection, typeStr, remoteSdp, meeti
|
|
|
342
342
|
return _promise.default.reject(new _media.default('PeerConnection in wrong state'));
|
|
343
343
|
};
|
|
344
344
|
|
|
345
|
-
/**
|
|
346
|
-
* Create offer with a valid parameter
|
|
347
|
-
* @param {Object} peerConnection
|
|
348
|
-
* @param {Object} meetingProperties
|
|
349
|
-
* @param {string} meetingProperties.meetingId
|
|
350
|
-
* @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
|
|
351
|
-
* @param {string} meetingProperties.enableRtx
|
|
352
|
-
* @param {string} meetingProperties.enableExtmap
|
|
353
|
-
* @returns {RTCPeerConnection}
|
|
345
|
+
/**
|
|
346
|
+
* Create offer with a valid parameter
|
|
347
|
+
* @param {Object} peerConnection
|
|
348
|
+
* @param {Object} meetingProperties
|
|
349
|
+
* @param {string} meetingProperties.meetingId
|
|
350
|
+
* @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
|
|
351
|
+
* @param {string} meetingProperties.enableRtx
|
|
352
|
+
* @param {string} meetingProperties.enableExtmap
|
|
353
|
+
* @returns {RTCPeerConnection}
|
|
354
354
|
*/
|
|
355
355
|
pc.createOffer = function (peerConnection, _ref2) {
|
|
356
356
|
var meetingId = _ref2.meetingId,
|
|
@@ -426,10 +426,10 @@ pc.createOffer = function (peerConnection, _ref2) {
|
|
|
426
426
|
});
|
|
427
427
|
};
|
|
428
428
|
|
|
429
|
-
/**
|
|
430
|
-
* rollBack local description in peerconnection
|
|
431
|
-
* @param {Object} peerConnection
|
|
432
|
-
* @returns {Promise.RTCPeerConnection}
|
|
429
|
+
/**
|
|
430
|
+
* rollBack local description in peerconnection
|
|
431
|
+
* @param {Object} peerConnection
|
|
432
|
+
* @returns {Promise.RTCPeerConnection}
|
|
433
433
|
*/
|
|
434
434
|
pc.rollBackLocalDescription = function (peerConnection) {
|
|
435
435
|
return peerConnection
|
|
@@ -446,16 +446,16 @@ pc.rollBackLocalDescription = function (peerConnection) {
|
|
|
446
446
|
});
|
|
447
447
|
};
|
|
448
448
|
|
|
449
|
-
/**
|
|
450
|
-
* @param {Object} params {
|
|
451
|
-
* @param {Boolean} params.offerToReceiveAudio
|
|
452
|
-
* @param {Boolean} params.offerToReceiveVideo
|
|
453
|
-
* @param {string} params.offerSdp
|
|
454
|
-
* @param {MediaStream} params.stream
|
|
455
|
-
* @param {Object} meetingProperties
|
|
456
|
-
* @param {string} meetingProperties.meetingId
|
|
457
|
-
* @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
|
|
458
|
-
* @returns {Promise.<Array>} [MediaSDP, ScreenSDP]
|
|
449
|
+
/**
|
|
450
|
+
* @param {Object} params {
|
|
451
|
+
* @param {Boolean} params.offerToReceiveAudio
|
|
452
|
+
* @param {Boolean} params.offerToReceiveVideo
|
|
453
|
+
* @param {string} params.offerSdp
|
|
454
|
+
* @param {MediaStream} params.stream
|
|
455
|
+
* @param {Object} meetingProperties
|
|
456
|
+
* @param {string} meetingProperties.meetingId
|
|
457
|
+
* @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
|
|
458
|
+
* @returns {Promise.<Array>} [MediaSDP, ScreenSDP]
|
|
459
459
|
*/
|
|
460
460
|
pc.updatePeerConnection = function (params, _ref3) {
|
|
461
461
|
var meetingId = _ref3.meetingId,
|
|
@@ -476,14 +476,14 @@ pc.updatePeerConnection = function (params, _ref3) {
|
|
|
476
476
|
});
|
|
477
477
|
};
|
|
478
478
|
|
|
479
|
-
/**
|
|
480
|
-
* @param {Object} params
|
|
481
|
-
* @param {Object} params.peerConnection
|
|
482
|
-
* @param {Object} params.sdpConstraints
|
|
483
|
-
* @param {Object} meetingProperties
|
|
484
|
-
* @param {string} meetingProperties.meetingId
|
|
485
|
-
* @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
|
|
486
|
-
* @returns {RTCPeerConnection} peerConnection
|
|
479
|
+
/**
|
|
480
|
+
* @param {Object} params
|
|
481
|
+
* @param {Object} params.peerConnection
|
|
482
|
+
* @param {Object} params.sdpConstraints
|
|
483
|
+
* @param {Object} meetingProperties
|
|
484
|
+
* @param {string} meetingProperties.meetingId
|
|
485
|
+
* @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
|
|
486
|
+
* @returns {RTCPeerConnection} peerConnection
|
|
487
487
|
*/
|
|
488
488
|
pc.createAnswer = function (params, _ref4) {
|
|
489
489
|
var meetingId = _ref4.meetingId,
|
|
@@ -534,10 +534,10 @@ pc.createAnswer = function (params, _ref4) {
|
|
|
534
534
|
});
|
|
535
535
|
};
|
|
536
536
|
|
|
537
|
-
/**
|
|
538
|
-
* shut down the peer connection
|
|
539
|
-
* @param {Object} peerConnection
|
|
540
|
-
* @returns {undefined}
|
|
537
|
+
/**
|
|
538
|
+
* shut down the peer connection
|
|
539
|
+
* @param {Object} peerConnection
|
|
540
|
+
* @returns {undefined}
|
|
541
541
|
*/
|
|
542
542
|
pc.close = function (peerConnection) {
|
|
543
543
|
// peerConnection.close() fails on firefox on network changes and gives a Dom exception
|