@webex/plugin-meetings 2.19.1 → 2.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +0 -300
  2. package/dist/constants.js +3 -206
  3. package/dist/constants.js.map +1 -1
  4. package/dist/meeting/index.js +352 -489
  5. package/dist/meeting/index.js.map +1 -1
  6. package/dist/meeting/util.js +4 -213
  7. package/dist/meeting/util.js.map +1 -1
  8. package/dist/meetings/index.js +0 -28
  9. package/dist/meetings/index.js.map +1 -1
  10. package/dist/statsAnalyzer/index.js +145 -86
  11. package/dist/statsAnalyzer/index.js.map +1 -1
  12. package/package.json +5 -7
  13. package/src/constants.ts +1 -214
  14. package/src/meeting/index.js +110 -208
  15. package/src/meeting/util.js +4 -252
  16. package/src/meetings/index.js +0 -22
  17. package/src/statsAnalyzer/index.js +164 -99
  18. package/test/integration/spec/journey.js +2 -67
  19. package/test/unit/spec/meeting/index.js +88 -29
  20. package/test/unit/spec/meeting/utils.js +0 -2
  21. package/test/unit/spec/stats-analyzer/index.js +209 -1
  22. package/dist/analyzer/analyzer.js +0 -113
  23. package/dist/analyzer/analyzer.js.map +0 -1
  24. package/dist/analyzer/calculator.js +0 -87
  25. package/dist/analyzer/calculator.js.map +0 -1
  26. package/dist/metrics/mqa-processor.js +0 -170
  27. package/dist/metrics/mqa-processor.js.map +0 -1
  28. package/dist/stats/data.js +0 -93
  29. package/dist/stats/data.js.map +0 -1
  30. package/dist/stats/events.js +0 -222
  31. package/dist/stats/events.js.map +0 -1
  32. package/dist/stats/filter.js +0 -84
  33. package/dist/stats/filter.js.map +0 -1
  34. package/dist/stats/history.js +0 -147
  35. package/dist/stats/history.js.map +0 -1
  36. package/dist/stats/index.js +0 -425
  37. package/dist/stats/index.js.map +0 -1
  38. package/dist/stats/metrics.js +0 -112
  39. package/dist/stats/metrics.js.map +0 -1
  40. package/dist/stats/stats.js +0 -592
  41. package/dist/stats/stats.js.map +0 -1
  42. package/dist/stats/stream.js +0 -156
  43. package/dist/stats/stream.js.map +0 -1
  44. package/dist/stats/transformer.js +0 -126
  45. package/dist/stats/transformer.js.map +0 -1
  46. package/dist/stats/util.js +0 -64
  47. package/dist/stats/util.js.map +0 -1
  48. package/src/analyzer/analyzer.js +0 -78
  49. package/src/analyzer/calculator.js +0 -77
  50. package/src/metrics/mqa-processor.js +0 -118
  51. package/src/stats/data.js +0 -56
  52. package/src/stats/events.js +0 -185
  53. package/src/stats/filter.js +0 -40
  54. package/src/stats/history.js +0 -107
  55. package/src/stats/index.js +0 -320
  56. package/src/stats/metrics.js +0 -95
  57. package/src/stats/stats.js +0 -477
  58. package/src/stats/stream.js +0 -108
  59. package/src/stats/transformer.js +0 -109
  60. package/src/stats/util.js +0 -44
package/README.md CHANGED
@@ -111,12 +111,6 @@ webex.meetings.syncMeetings().then(() => {
111
111
  webex.meetings.getMeetingByType('SIP_URI', sipUri)
112
112
  ```
113
113
 
114
- ##### Get the StatsAnalyzer Or StatsCalculator Singleton(s)
115
- ```js
116
- const statsAnalyzer = webex.meetings.getAnalyzer();
117
- const statsCalculator = webex.meetings.getCalculator();
118
- ```
119
-
120
114
  ##### Properties
121
115
  ```js
122
116
  webex.meetings.personalMeetingRoom // the personal meeting room instance
@@ -693,280 +687,6 @@ meeting.reconnect();
693
687
  #### Scheduled Meetings
694
688
  For scheduled meetings see https://github.com/webex/webex-js-sdk/tree/master/packages/node_modules/%40webex/internal-plugin-calendar
695
689
 
696
- #### getStats
697
-
698
- Note: accessor methods get are simply helpers, one can always use dot notation to work on the objects in the same way
699
- Note: correlate values will be either 'audio', 'video', or 'share' for use with the default config (plugin-meeting's media)
700
-
701
- ##### Default configuration
702
- ```javascript
703
- // generate some IDs to use with the default configs
704
- const audioSenderId = '0';
705
- const audioReceiverId = '1';
706
- // for default configuration (using plugin-meetings media)
707
- const options = {
708
- useConfig: true, // inform to create using config
709
- senders: [
710
- { // audio sender object config option
711
- id: audioSenderId, // associate an id for later lookup
712
- correlate: 'audio', // NECESSARY KEY, see Note
713
- history: true, // optional extra, to track history on this sender's stats
714
- onData: (data) => { // callback for when filtered data comes through
715
- console.log('audioSender->', data);
716
- },
717
- onClose: (error) => { console.warn('audioSender->', error); }, // callback for when the stream closes for any reason
718
- onEvent: (event) => { console.log('audioSender->', event); } // callback for when triggered events come through the stream such as firstBytesSent
719
- }
720
- ],
721
- receivers: [
722
- { // audio receiver object config option
723
- id: audioReceiverId,
724
- correlate: 'audio',
725
- onData: (data) => { console.log('audioReceiver->', data); },
726
- onClose: (error) => { console.warn('audioReceiver->', error); },
727
- onEvent: (event) => { console.log('audioReceiver->', event); }
728
- }
729
- ]
730
- };
731
-
732
- // create the stats object using the options config, merged with the default config
733
- // pass true as the second option to override the previous stats object
734
- meeting.getStats(options, true);
735
- ```
736
-
737
- ##### Create Without Configuration
738
- ```javascript
739
- const shareSenderId = '4';
740
- // notice no meeting is needed, and no correlate key is required, this is the manual builder method
741
- meeting
742
- .getStats()
743
- .addSenderStats(shareSenderId)
744
- .withHistory()
745
- .withId(shareSenderId)
746
- .withName('shareSender')
747
- .withFilter(meeting.mediaProperties.peerConnection.shareTransceiver.sender, meeting.mediaProperties.peerConnection)
748
- .withEvents()
749
- .onData((data) => {
750
- console.log('shareSender->', data);
751
- })
752
- .onClose((error) => { console.warn('shareSender->', error); })
753
- .onEvent((event) => { console.log('shareSender->', event); })
754
- .build();
755
- ```
756
-
757
- ##### Create Configurations On The Fly
758
- ```javascript
759
- const videoSenderId = '2';
760
- const videoReceiverId = '3';
761
- const shareReceiverId = '5';
762
-
763
- meeting.getStats().associateMeeting(meeting); // NECESSARY for adding senders/receivers dynamically AFTER getStats was previously created
764
-
765
- meeting.getStats().addSenders(
766
- [
767
- { // video receiver config object, using default config
768
- id: videoSenderId, // associate the ID
769
- correlate: 'video', // NECESSARY KEY
770
- onData: (data) => { console.log('videoSender->', data); },
771
- onClose: (error) => { console.warn('videoSender->', error); },
772
- onEvent: (event) => { console.log('videoSender->', event); }
773
- }
774
- ],
775
- true // using the default configuration afterwards when adding new stats
776
- );
777
-
778
- meeting.getStats().addReceivers(
779
- [
780
- {
781
- id: videoReceiverId,
782
- correlate: 'video', // NECESSARY KEY
783
- history: true,
784
- onData: (data) => { console.log('videoReceiver->', data); },
785
- onClose: (error) => { console.warn('videoReceiver->', error); },
786
- onEvent: (event) => { console.log('videoReceiver->', event); }
787
- }
788
- ],
789
- true
790
- );
791
-
792
- meeting.getStats().addReceiver({
793
- id: shareReceiverId,
794
- correlate: 'share', // NECESSARY KEY
795
- // history: true, // could add this
796
- // aggregator: true, // could add this
797
- // interval: true, // could add this
798
- onData: (data) => { console.log('shareReceiver->', data); },
799
- onClose: (error) => { console.warn('shareReceiver->', error); },
800
- onEvent: (event) => { console.log('shareReceiver->', event); }
801
- }, true);
802
- ```
803
-
804
- ##### Add Configurations on the Fly
805
-
806
- ```javascript
807
- // you can always add additional configurations later on based on events, or some timing, using the builder above
808
- // say you created the object above with the options method, and you decided you wanted to add an aggregator to it
809
- meeting
810
- .getStats()
811
- .getSender('0')
812
- .withHistory()
813
- // and now you have an aggregator instance to work with on that sender stats object
814
- ```
815
-
816
- ##### History
817
-
818
- ```javascript
819
- meeting
820
- .getStats() // get the stats instance on the meeting
821
- .getSender('0') // get the sender stats instance
822
- .getHistory() // get the history instance on that media stats
823
- // call any history function
824
- ```
825
-
826
- ###### Adding Data to a Chart
827
- Using myChart you can add sections of data
828
- create the chart
829
- ```javascript
830
- document.getElementById('charting').addEventListener('click', () => {
831
- const ctx = document.getElementById('myChart').getContext('2d');
832
- const chart = new Chart(ctx, { // eslint-disable-line
833
- // The type of chart we want to create
834
- type: 'line',
835
- options: {
836
- title: {
837
- display: true,
838
- text: 'Time Series'
839
- },
840
- elements: {
841
- line: {
842
- tension: 0 // disables bezier curves
843
- }
844
- },
845
- scales: {
846
- yAxes: [{
847
- id: 'left-y-axis',
848
- type: 'linear',
849
- position: 'left'
850
- }, {
851
- id: 'right-y-axis',
852
- type: 'linear',
853
- position: 'right'
854
- }]
855
- }
856
- },
857
- // The data for our dataset
858
- data: {
859
- datasets: [
860
- {
861
- label: 'bytesSent',
862
- backgroundColor: 'rgb(255, 99, 132)',
863
- borderColor: 'rgb(255, 99, 132)',
864
- fill: false,
865
- yAxisID: 'left-y-axis'
866
- },
867
- {
868
- label: 'bytesSentDifference',
869
- backgroundColor: 'rgb(0, 0, 255)',
870
- borderColor: 'rgb(0, 0, 255)',
871
- fill: false,
872
- yAxisID: 'right-y-axis'
873
- }
874
- ]
875
- }
876
- });
877
-
878
- const analyzer = webex.meetings.getAnalyzer();
879
-
880
- document.getElementById('addChartData').addEventListener('click', () => {
881
- const thirtySecondsData = meeting.getStats().getSender('0').getHistory().getSlice(30);
882
- const analysis = analyzer.analyze(thirtySecondsData, {analysisKeys: [{key: 'bytesSent', check: 'increasing'}, {key: 'packetsSent', check: 'increasing'}]});
883
- const wholeData0 = [];
884
- const wholeData1 = [];
885
- const wholeDataLabel = [];
886
-
887
- analysis.data.bytesSent.reports.forEach((report) => {
888
- wholeDataLabel.push(report.index);
889
- wholeData0.push(report.value);
890
- wholeData1.push(report.difference);
891
- });
892
-
893
- chart.data.datasets[0].data = wholeData0;
894
- chart.data.datasets[1].data = wholeData1;
895
- chart.data.labels = wholeDataLabel;
896
- chart.update();
897
- });
898
- });
899
- ```
900
-
901
- Using real time data pushes, you can add data to the chart by the interval:
902
- ```javascript
903
- const ctx = document.getElementById('myChart2').getContext('2d');
904
- const chart = new Chart(ctx, { // eslint-disable-line
905
- // The type of chart we want to create
906
- type: 'line',
907
- options: {
908
- title: {
909
- display: true,
910
- text: 'Time Series'
911
- },
912
- elements: {
913
- line: {
914
- tension: 0 // disables bezier curves
915
- }
916
- },
917
- scales: {
918
- yAxes: [{
919
- id: 'left-y-axis',
920
- type: 'linear',
921
- position: 'left'
922
- }]
923
- }
924
- },
925
- // The data for our dataset
926
- data: {
927
- datasets: [
928
- {
929
- label: 'bytesReceived',
930
- backgroundColor: 'rgb(255, 99, 132)',
931
- borderColor: 'rgb(255, 99, 132)',
932
- fill: false,
933
- yAxisID: 'left-y-axis'
934
- }
935
- ]
936
- }
937
- });
938
- let i = 0;
939
- // when setting up the audioReceiver for example
940
- // ...
941
- receivers: [
942
- {
943
- id: audioReceiverId,
944
- correlate: 'audio', // NECESSARY KEY
945
- history: true,
946
- onData: (data) => {
947
- console.log('audioReceiver->', data);
948
- const k = data.data.getData();
949
-
950
- if (k && k.rtpInAudio && k.rtpInAudio.bytesReceived) {
951
- chart.data.labels.push(i);
952
- addData(chart, 0, k.rtpInAudio.bytesReceived);
953
- i += 1;
954
- }
955
-
956
- if (i > 30) {
957
- removeData(chart);
958
- }
959
- },
960
- onClose: (error) => { console.warn('audioReceiver->', error); },
961
- onEvent: (event) => { console.error('audioReceiver->', event); }
962
- }
963
- ]
964
- ```
965
-
966
- ##### Stop Stats Running
967
- ```js
968
- meeting.stopStats();
969
- ```
970
690
 
971
691
  #### Member
972
692
 
@@ -1305,26 +1025,6 @@ meeting.on('media:stopped', (media) => {
1305
1025
  }
1306
1026
  ```
1307
1027
 
1308
- `meeting:highPacketLoss` has the following payload
1309
- ```js
1310
- {
1311
- mediaType // String - Type of media experiencing packet loss
1312
- packetLossRatio // Number - current packet loss ratio
1313
- }
1314
- ```
1315
-
1316
- -note stats does not send events, but the onEvent callback payload always has the format
1317
- ```javascript
1318
- {
1319
- type, // local or remote
1320
- key, // which key it matched, i.e., rtpOutAudio, etc, defined by DEFAULT_EVENT_VIDEO|AUDIO_RECEIVE|SEND_KEYS
1321
- data, // the data at the point that the event was fired
1322
- stat, // the accessor for the stat itself, i.e, bytesSent, bytesReceived
1323
- id, // the id specified when creating the events instance
1324
- kind; // audio or video
1325
- }
1326
- ```
1327
-
1328
1028
  `meeting:recording:started`
1329
1029
  `meeting:recording:stopped`
1330
1030
  `meeting:recording:paused`
package/dist/constants.js CHANGED
@@ -8,8 +8,8 @@ _Object$defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
 
11
- exports.ONLINE = exports.OFFLINE = exports.OFFER = exports.NETWORK_TYPE = exports.NETWORK_STATUS = exports.MediaContent = exports.MQA_STATS = exports.MQA_INTEVAL = exports.MODERATOR_TRUE = exports.MODERATOR_FALSE = exports.METRICS_JOIN_TIMES_MAX_DURATION = exports.MEET_M = exports.MEETING_VIDEO_STATE_MACHINE = exports.MEETING_STATE_MACHINE = exports.MEETING_STATE = exports.MEETING_REMOVED_REASON = exports.MEETING_INFO_FAILURE_REASON = exports.MEETING_ERRORS = exports.MEETING_END_REASON = exports.MEETING_AUDIO_STATE_MACHINE = exports.MEETINGS = exports.MEETINGINFO = exports.MEET = exports.MEDIA_TRACK_CONSTRAINT = exports.MEDIA_STATE = exports.MEDIA_PEER_CONNECTION_NAME = exports.MEDIA_DEVICES = exports.MEDIA = exports.MAX_RANDOM_DELAY_FOR_MEETING_INFO = exports.MAX_FRAMESIZES = exports.LOCUS_URL = exports.LOCUSINFO = exports.LOCUSEVENT = exports.LOCUS = exports.LOCI = exports.LOCAL = exports.LIVE = exports.LEAVE = exports.LAYOUT_TYPES = exports.JOIN = exports.IPV4_REGEX = exports.INTENT_TO_JOIN = exports.ICE_TIMEOUT = exports.ICE_STATE = exports.ICE_GATHERING_STATE = exports.ICE_FAIL_TIMEOUT = exports.HTTP_VERBS = exports.HTTPS_PROTOCOL = exports.HOST = exports.HECATE = exports.GATHERING = exports.FULL_STATE = exports.FLOOR_ACTION = exports.EVENT_TYPES = exports.EVENT_TRIGGERS = exports.EVENT_STATS_MAP = exports.EVENTS = exports.ERROR_DICTIONARY = exports.ERROR = exports.ENDED = exports.END = exports.DISPLAY_HINTS = exports.DIALER_REGEX = exports.DEVELOPMENT = exports.DELTAEVENT = exports.DEFAULT_TRANSFORM_REGEX = exports.DEFAULT_TRANSFORM_KEYS = exports.DEFAULT_OMISSION_DATA_KEYS = exports.DEFAULT_GET_STATS_FILTER = exports.DEFAULT_FF_TRANSFORM_REGEX = exports.DEFAULT_EXCLUDED_STATS = exports.DEFAULT_EVENT_VIDEO_SEND_KEYS = exports.DEFAULT_EVENT_VIDEO_RECEIVE_KEYS = exports.DEFAULT_EVENT_AUDIO_SEND_KEYS = exports.DEFAULT_EVENT_AUDIO_RECEIVE_KEYS = exports.DECLINE = exports.CORRELATION_ID = exports.CONVERSATION_URL = exports.CONVERSATION_SERVICE = exports.CONTROLS = exports.CONTENT = exports.CONNECTION_STATE = exports.COMPLETE = exports.CMR_MEETINGS = exports.CLAIM = exports.CALL_REMOVED_REASON = exports.CALL = exports.CALENDAR_EVENTS_API = exports.CALENDAR_EVENTS = exports.CALENDAR = exports.BNR_STATUS = exports.AUDIO_STATUS = exports.AUDIO_INPUT = exports.AUDIO = exports.API = exports.ANSWER = exports.ANALYSIS_STATS = exports.ANALYSIS_CHECKS = exports.ALTERNATE_REDIRECT_TRUE = exports.ALERT = void 0;
12
- exports._WEBEX_MEETING_ = exports._WAIT_ = exports._USER_ = exports._UNKNOWN_ = exports._S_LINE = exports._SLIDES_ = exports._SIP_URI_ = exports._SIP_BRIDGE_ = exports._SEND_RECEIVE_ = exports._SEND_ONLY_ = exports._ROOM_ = exports._RESOURCE_ROOM_ = exports._REQUESTED_ = exports._REMOVE_ = exports._RECEIVE_ONLY_ = exports._PERSONAL_ROOM_ = exports._PEOPLE_ = exports._OFFER_ = exports._OBSERVE_ = exports._NOT_IN_MEETING_ = exports._NONE_ = exports._MOVE_MEDIA_ = exports._MEETING_UUID_ = exports._MEETING_LINK_ = exports._MEETING_ID_ = exports._MEETING_CENTER_ = exports._MEETING_ = exports._LOCUS_ID_ = exports._LEFT_ = exports._JOIN_ = exports._JOINED_ = exports._IN_MEETING_ = exports._IN_LOBBY_ = exports._IN_ = exports._INCOMING_ = exports._INACTIVE_ = exports._ID_ = exports._IDLE_ = exports._FORCED_ = exports._ERROR_ = exports._CREATED_ = exports._CONVERSATION_URL_ = exports._CONFLICT_ = exports._CALL_ = exports._ANSWER_ = exports._ACTIVE_ = exports.WWW_DOT = exports.WHITEBOARD = exports.WEBEX_DOT_COM = exports.VIDEO_STATUS = exports.VIDEO_RESOLUTIONS = exports.VIDEO_INPUT = exports.VIDEO = exports.VALID_PMR_LINK = exports.VALID_PMR_ADDRESS = exports.VALID_PIN = exports.VALID_EMAIL_ADDRESS = exports.UUID_REG = exports.USE_URI_LOOKUP_FALSE = exports.TYPE = exports.STATS = exports.SIP_URI = exports.SHARE_STOPPED_REASON = exports.SHARE_STATUS = exports.SHARE_PEER_CONNECTION_NAME = exports.SHARE = exports.SEND_DTMF_ENDPOINT = exports.SENDRECV = exports.SELF_ROLES = exports.SDP = exports.RTC_CONFIGURATION_FIREFOX = exports.RTC_CONFIGURATION = exports.ROAP_SEQ_PRE = exports.ROAP = exports.RETRY_TIMEOUT = exports.RESOURCE = exports.REMOTE = exports.RECORDING_STATE = exports.RECONNECTION = exports.READY = exports.REACHABILITY = exports.QUALITY_LEVELS = exports.PSTN_STATUS = exports.PROVISIONAL_TYPE_DIAL_OUT = exports.PROVISIONAL_TYPE_DIAL_IN = exports.PEER_CONNECTION_STATE = exports.PC_BAIL_TIMEOUT = exports.PASSWORD_STATUS = exports.PARTICIPANT_DELTAS = exports.PARTICIPANT = void 0;
11
+ exports.RECONNECTION = exports.READY = exports.REACHABILITY = exports.QUALITY_LEVELS = exports.PSTN_STATUS = exports.PROVISIONAL_TYPE_DIAL_OUT = exports.PROVISIONAL_TYPE_DIAL_IN = exports.PEER_CONNECTION_STATE = exports.PC_BAIL_TIMEOUT = exports.PASSWORD_STATUS = exports.PARTICIPANT_DELTAS = exports.PARTICIPANT = exports.ONLINE = exports.OFFLINE = exports.OFFER = exports.NETWORK_TYPE = exports.NETWORK_STATUS = exports.MediaContent = exports.MQA_STATS = exports.MQA_INTEVAL = exports.MODERATOR_TRUE = exports.MODERATOR_FALSE = exports.METRICS_JOIN_TIMES_MAX_DURATION = exports.MEET_M = exports.MEETING_VIDEO_STATE_MACHINE = exports.MEETING_STATE_MACHINE = exports.MEETING_STATE = exports.MEETING_REMOVED_REASON = exports.MEETING_INFO_FAILURE_REASON = exports.MEETING_ERRORS = exports.MEETING_END_REASON = exports.MEETING_AUDIO_STATE_MACHINE = exports.MEETINGS = exports.MEETINGINFO = exports.MEET = exports.MEDIA_TRACK_CONSTRAINT = exports.MEDIA_STATE = exports.MEDIA_PEER_CONNECTION_NAME = exports.MEDIA_DEVICES = exports.MEDIA = exports.MAX_RANDOM_DELAY_FOR_MEETING_INFO = exports.MAX_FRAMESIZES = exports.LOCUS_URL = exports.LOCUSINFO = exports.LOCUSEVENT = exports.LOCUS = exports.LOCI = exports.LOCAL = exports.LIVE = exports.LEAVE = exports.LAYOUT_TYPES = exports.JOIN = exports.IPV4_REGEX = exports.INTENT_TO_JOIN = exports.ICE_TIMEOUT = exports.ICE_STATE = exports.ICE_GATHERING_STATE = exports.ICE_FAIL_TIMEOUT = exports.HTTP_VERBS = exports.HTTPS_PROTOCOL = exports.HOST = exports.HECATE = exports.GATHERING = exports.FULL_STATE = exports.FLOOR_ACTION = exports.EVENT_TYPES = exports.EVENT_TRIGGERS = exports.EVENTS = exports.ERROR_DICTIONARY = exports.ERROR = exports.ENDED = exports.END = exports.DISPLAY_HINTS = exports.DIALER_REGEX = exports.DEVELOPMENT = exports.DEFAULT_GET_STATS_FILTER = exports.DEFAULT_EXCLUDED_STATS = exports.DECLINE = exports.CORRELATION_ID = exports.CONVERSATION_URL = exports.CONVERSATION_SERVICE = exports.CONTROLS = exports.CONTENT = exports.CONNECTION_STATE = exports.COMPLETE = exports.CMR_MEETINGS = exports.CLAIM = exports.CALL_REMOVED_REASON = exports.CALL = exports.CALENDAR_EVENTS_API = exports.CALENDAR_EVENTS = exports.CALENDAR = exports.BNR_STATUS = exports.AUDIO_STATUS = exports.AUDIO_INPUT = exports.AUDIO = exports.API = exports.ANSWER = exports.ALTERNATE_REDIRECT_TRUE = exports.ALERT = void 0;
12
+ exports._WEBEX_MEETING_ = exports._WAIT_ = exports._USER_ = exports._UNKNOWN_ = exports._S_LINE = exports._SLIDES_ = exports._SIP_URI_ = exports._SIP_BRIDGE_ = exports._SEND_RECEIVE_ = exports._SEND_ONLY_ = exports._ROOM_ = exports._RESOURCE_ROOM_ = exports._REQUESTED_ = exports._REMOVE_ = exports._RECEIVE_ONLY_ = exports._PERSONAL_ROOM_ = exports._PEOPLE_ = exports._OFFER_ = exports._OBSERVE_ = exports._NOT_IN_MEETING_ = exports._NONE_ = exports._MOVE_MEDIA_ = exports._MEETING_UUID_ = exports._MEETING_LINK_ = exports._MEETING_ID_ = exports._MEETING_CENTER_ = exports._MEETING_ = exports._LOCUS_ID_ = exports._LEFT_ = exports._JOIN_ = exports._JOINED_ = exports._IN_MEETING_ = exports._IN_LOBBY_ = exports._IN_ = exports._INCOMING_ = exports._INACTIVE_ = exports._ID_ = exports._IDLE_ = exports._FORCED_ = exports._ERROR_ = exports._CREATED_ = exports._CONVERSATION_URL_ = exports._CONFLICT_ = exports._CALL_ = exports._ANSWER_ = exports._ACTIVE_ = exports.WWW_DOT = exports.WHITEBOARD = exports.WEBEX_DOT_COM = exports.VIDEO_STATUS = exports.VIDEO_RESOLUTIONS = exports.VIDEO_INPUT = exports.VIDEO = exports.VALID_PMR_LINK = exports.VALID_PMR_ADDRESS = exports.VALID_PIN = exports.VALID_EMAIL_ADDRESS = exports.UUID_REG = exports.USE_URI_LOOKUP_FALSE = exports.TYPE = exports.STATS = exports.SIP_URI = exports.SHARE_STOPPED_REASON = exports.SHARE_STATUS = exports.SHARE_PEER_CONNECTION_NAME = exports.SHARE = exports.SEND_DTMF_ENDPOINT = exports.SENDRECV = exports.SELF_ROLES = exports.SDP = exports.RTC_CONFIGURATION_FIREFOX = exports.RTC_CONFIGURATION = exports.ROAP_SEQ_PRE = exports.ROAP = exports.RETRY_TIMEOUT = exports.RESOURCE = exports.REMOTE = exports.RECORDING_STATE = void 0;
13
13
 
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
15
15
 
@@ -294,103 +294,6 @@ var DIALER_REGEX = {
294
294
  exports.DIALER_REGEX = DIALER_REGEX;
295
295
  var IPV4_REGEX = /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}|.local/g;
296
296
  exports.IPV4_REGEX = IPV4_REGEX;
297
- var DEFAULT_TRANSFORM_REGEX = {
298
- rtpOutVideo: {
299
- regex: new RegExp('^(?:RTC)?[Oo]utbound_?[Rr][Tt][Pp]_?[Vv]ideo')
300
- },
301
- rtpOutAudio: {
302
- regex: new RegExp('^(?:RTC)?[Oo]utbound_?[Rr][Tt][Pp]_?[Aa]udio')
303
- },
304
- rtpInVideo: {
305
- regex: new RegExp('^(?:RTC)?[Ii]nbound_?[Rr][Tt][Pp]_?[Vv]ideo')
306
- },
307
- rtpInAudio: {
308
- regex: new RegExp('^(?:RTC)?[Ii]nbound_?[Rr][Tt][Pp]_?[Aa]udio')
309
- },
310
- rtpRemoteInboundAudio: {
311
- regex: new RegExp('^(?:RTC)?[Rr]emote[Ii]nbound_?[Rr][Tt][Pp]_?[Aa]udio[sS]tream_?.*')
312
- },
313
- rtpRemoteOutboundAudio: {
314
- regex: new RegExp('^(?:RTC)?[Rr]emote[Oo]utbound_?[Rr][Tt][Pp]_?[Aa]udio[sS]tream_?.*')
315
- },
316
- rtpRemoteInboundVideo: {
317
- regex: new RegExp('^(?:RTC)?[Rr]emote[Ii]nbound_?[Rr][Tt][Pp]_?[Vv]ideo[sS]tream_?.*')
318
- },
319
- rtpRemoteOutboundVideo: {
320
- regex: new RegExp('^(?:RTC)?[Rr]emote[Oo]utbound_?[Rr][Tt][Pp]_?[Vv]ideo[sS]tream_?.*')
321
- },
322
- rtcOutAudio: {
323
- regex: new RegExp('^RTCMediaStreamTrack_(?:local|sender)_'),
324
- profiler: {
325
- type: 'kind',
326
- value: 'audio'
327
- }
328
- },
329
- rtcOutVideo: {
330
- regex: new RegExp('^RTCMediaStreamTrack_(?:local|sender)_'),
331
- profiler: {
332
- type: 'kind',
333
- value: 'video'
334
- }
335
- },
336
- rtcInAudio: {
337
- regex: new RegExp('^RTCMediaStreamTrack_(?:remote|receiver)_'),
338
- profiler: {
339
- type: 'kind',
340
- value: 'audio'
341
- }
342
- },
343
- rtcInVideo: {
344
- regex: new RegExp('^RTCMediaStreamTrack_(?:remote|receiver)_'),
345
- profiler: {
346
- type: 'kind',
347
- value: 'video'
348
- }
349
- },
350
- rtcTransAudio: {
351
- regex: new RegExp('^RTCTransport_[Aa]udio')
352
- },
353
- rtcTransVideo: {
354
- regex: new RegExp('^RTCTransport_[Vv]ideo')
355
- },
356
- rtcCandidatePair: {
357
- regex: new RegExp('^RTCIceCandidatePair_'),
358
- decider: 'nominated',
359
- selector: true,
360
- profiler: {
361
- type: 'type',
362
- value: 'candidate-pair'
363
- }
364
- }
365
- }; // we need a specific firefox transform regular expression map
366
- // to convert firefox values to a consistent getStats type mapping
367
- // as with chrome/edge/safari
368
-
369
- exports.DEFAULT_TRANSFORM_REGEX = DEFAULT_TRANSFORM_REGEX;
370
- var DEFAULT_FF_TRANSFORM_REGEX = {
371
- rtpOutVideo: {
372
- regex: new RegExp('^outbound-rtp_video_.*')
373
- },
374
- rtpOutAudio: {
375
- regex: new RegExp('^outbound-rtp_audio_.*')
376
- },
377
- rtpInVideo: {
378
- regex: new RegExp('^inbound-rtp_video_.*')
379
- },
380
- rtpInAudio: {
381
- regex: new RegExp('^inbound-rtp_audio_.*')
382
- },
383
- rtcCandidatePair: {
384
- regex: new RegExp('^candidate-pair.*'),
385
- decider: 'nominated',
386
- selector: true,
387
- profiler: {
388
- type: 'type',
389
- value: 'candidate-pair'
390
- }
391
- }
392
- };
393
- exports.DEFAULT_FF_TRANSFORM_REGEX = DEFAULT_FF_TRANSFORM_REGEX;
394
297
  var VALID_EMAIL_ADDRESS = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
395
298
  exports.VALID_EMAIL_ADDRESS = VALID_EMAIL_ADDRESS;
396
299
  var VALID_PMR_ADDRESS = /([a-z0-9][-a-z0-9, '.']{0,62})@([a-z0-9][-a-z0-9, '.']{0,62})\.webex\.com/i;
@@ -409,24 +312,6 @@ var API = {
409
312
  LOCUS: 'locus'
410
313
  };
411
314
  exports.API = API;
412
- var ANALYSIS_CHECKS = {
413
- INCREASING: 'increasing',
414
- DECREASING: 'decreasing',
415
- CONSTANT: 'constant'
416
- };
417
- exports.ANALYSIS_CHECKS = ANALYSIS_CHECKS;
418
- var ANALYSIS_STATS = {
419
- DEFAULT_KEYS: [{
420
- key: 'bytesSent',
421
- check: 'increasing',
422
- prop: 'rtpOutAudio'
423
- }, {
424
- key: 'bytesReceived',
425
- check: 'increasing',
426
- prop: 'rtpInAudio'
427
- }]
428
- };
429
- exports.ANALYSIS_STATS = ANALYSIS_STATS;
430
315
  var CALENDAR_EVENTS = {
431
316
  CREATE: 'event:calendar.meeting.create',
432
317
  UPDATE: 'event:calendar.meeting.update',
@@ -439,26 +324,6 @@ var DEFAULT_GET_STATS_FILTER = {
439
324
  types: ['track', 'transport', 'candidate-pair', 'outbound-rtp', 'outboundrtp', 'inbound-rtp', 'inboundrtp', 'remote-inbound-rtp', 'remote-outbound-rtp', 'remote-candidate', 'local-candidate', 'media-source']
440
325
  };
441
326
  exports.DEFAULT_GET_STATS_FILTER = DEFAULT_GET_STATS_FILTER;
442
- var DEFAULT_EVENT_VIDEO_SEND_KEYS = ['rtpOutVideo', 'rtcOutVideo', 'rtcTransVideo'];
443
- exports.DEFAULT_EVENT_VIDEO_SEND_KEYS = DEFAULT_EVENT_VIDEO_SEND_KEYS;
444
- var DEFAULT_EVENT_AUDIO_SEND_KEYS = ['rtpOutAudio', 'rtcOutAudio', 'rtcTransAudio'];
445
- exports.DEFAULT_EVENT_AUDIO_SEND_KEYS = DEFAULT_EVENT_AUDIO_SEND_KEYS;
446
- var DEFAULT_EVENT_VIDEO_RECEIVE_KEYS = ['rtpInVideo', 'rtcInVideo', 'rtcTransVideo'];
447
- exports.DEFAULT_EVENT_VIDEO_RECEIVE_KEYS = DEFAULT_EVENT_VIDEO_RECEIVE_KEYS;
448
- var DEFAULT_EVENT_AUDIO_RECEIVE_KEYS = ['rtpInAudio', 'rtcInAudio', 'rtcTransAudio'];
449
- exports.DEFAULT_EVENT_AUDIO_RECEIVE_KEYS = DEFAULT_EVENT_AUDIO_RECEIVE_KEYS;
450
- var DEFAULT_TRANSFORM_KEYS = ['rtpOutVideo', 'rtpOutAudio', 'rtpInVideo', 'rtpInAudio', 'rtcOutAudio', 'rtcOutVideo', 'rtcInAudio', 'rtcInVideo', 'rtcTransAudio', 'rtcTransVideo', 'rtcCandidatePairAudio', 'rtcCandidatePairVideo']; // remove unneccessary data that stays constant during a call
451
-
452
- exports.DEFAULT_TRANSFORM_KEYS = DEFAULT_TRANSFORM_KEYS;
453
- var DEFAULT_OMISSION_DATA_KEYS = ['id', 'timestamp', 'type', 'ssrc', 'isRemote', 'mediaType', 'kind', 'trackId', 'transportId', 'codecId', 'mediaSourceId', 'trackIdentifier'];
454
- exports.DEFAULT_OMISSION_DATA_KEYS = DEFAULT_OMISSION_DATA_KEYS;
455
- var DELTAEVENT = {
456
- GT: 'GT',
457
- CF: 'CF',
458
- EQ: 'EQ',
459
- LT: 'LT'
460
- };
461
- exports.DELTAEVENT = DELTAEVENT;
462
327
  var RECORDING_STATE = {
463
328
  RECORDING: 'recording',
464
329
  IDLE: 'idle',
@@ -521,7 +386,6 @@ var EVENT_TRIGGERS = {
521
386
  MEETING_LOG_UPLOAD_FAILURE: 'meeting:logUpload:failure',
522
387
  MEETING_ACTIONS_UPDATE: 'meeting:actionsUpdate',
523
388
  MEETING_STATE_CHANGE: 'meeting:stateChange',
524
- MEETING_HIGH_PACKETLOSS: 'meeting:highPacketLoss',
525
389
  MEETING_MEETING_CONTAINER_UPDATE: 'meeting:meetingContainer:update',
526
390
  MEDIA_QUALITY: 'media:quality',
527
391
  MEETINGS_NETWORK_DISCONNECTED: 'network:disconnected',
@@ -606,11 +470,6 @@ var MEDIA_STATE = {
606
470
  inactive: 'inactive'
607
471
  };
608
472
  exports.MEDIA_STATE = MEDIA_STATE;
609
- var EVENT_STATS_MAP = {
610
- BYTES_SENT: 'bytesSent',
611
- BYTES_RECEIVED: 'bytesReceived'
612
- };
613
- exports.EVENT_STATS_MAP = EVENT_STATS_MAP;
614
473
  var ERROR_DICTIONARY = {
615
474
  PARAMETER: {
616
475
  NAME: 'ParameterError',
@@ -1082,71 +941,10 @@ var STATS = {
1082
941
  AUDIO_CORRELATE: 'audio',
1083
942
  VIDEO_CORRELATE: 'video',
1084
943
  SHARE_CORRELATE: 'share',
1085
- AUDIO_SENDER_ID: 'audioSender',
1086
- AUDIO_RECEIVER_ID: 'audioReceiver',
1087
- VIDEO_SENDER_ID: 'videoSender',
1088
- VIDEO_RECEIVER_ID: 'videoReceiver',
1089
- SHARE_SENDER_ID: 'shareSender',
1090
- SHARE_RECEIVER_ID: 'shareReceiver',
1091
944
  SEND_DIRECTION: 'send',
1092
945
  RECEIVE_DIRECTION: 'recv',
1093
- END: 'end',
1094
946
  REMOTE: 'remote',
1095
- LOCAL: 'local',
1096
- DATA: 'data',
1097
- CLOSED: 'closed',
1098
- SENDER: 'sender',
1099
- RECEIVER: 'receiver',
1100
- SENDERS: 'senders',
1101
- RECEIVERS: 'receivers',
1102
- CONFIG: {
1103
- senders: {
1104
- audio: {
1105
- transceiver: 'audioTransceiver',
1106
- child: 'sender',
1107
- parent: 'mediaProperties',
1108
- peerConnection: 'peerConnection',
1109
- name: 'audioSender'
1110
- },
1111
- video: {
1112
- transceiver: 'videoTransceiver',
1113
- child: 'sender',
1114
- parent: 'mediaProperties',
1115
- peerConnection: 'peerConnection',
1116
- name: 'videoSender'
1117
- },
1118
- share: {
1119
- transceiver: 'shareTransceiver',
1120
- child: 'sender',
1121
- parent: 'mediaProperties',
1122
- peerConnection: 'peerConnection',
1123
- name: 'shareSender'
1124
- }
1125
- },
1126
- receivers: {
1127
- audio: {
1128
- transceiver: 'audioTransceiver',
1129
- child: 'receiver',
1130
- parent: 'mediaProperties',
1131
- peerConnection: 'peerConnection',
1132
- name: 'audioReceiver'
1133
- },
1134
- video: {
1135
- transceiver: 'videoTransceiver',
1136
- child: 'receiver',
1137
- parent: 'mediaProperties',
1138
- peerConnection: 'peerConnection',
1139
- name: 'videoReceiver'
1140
- },
1141
- share: {
1142
- transceiver: 'shareTransceiver',
1143
- child: 'receiver',
1144
- parent: 'mediaProperties',
1145
- peerConnection: 'peerConnection',
1146
- name: 'shareReceiver'
1147
- }
1148
- }
1149
- }
947
+ LOCAL: 'local'
1150
948
  };
1151
949
  exports.STATS = STATS;
1152
950
  var MQA_STATS = {
@@ -1154,7 +952,6 @@ var MQA_STATS = {
1154
952
  // MQA is done on 60 second intervals by server def, add a buffer for missed events
1155
953
  CA_TYPE: 'MQA',
1156
954
  DEFAULT_IP: '0.0.0.0',
1157
- DATA_PLACEMENTS: [STATS.AUDIO_SENDER_ID, STATS.AUDIO_RECEIVER_ID, STATS.VIDEO_SENDER_ID, STATS.VIDEO_RECEIVER_ID, STATS.SHARE_SENDER_ID, STATS.SHARE_RECEIVER_ID],
1158
955
  DEFAULT_SHARE_SENDER_STATS: {
1159
956
  common: {
1160
957
  common: {