@webex/plugin-meetings 3.0.0-beta.170 → 3.0.0-beta.172

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 (40) hide show
  1. package/README.md +0 -6
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +1 -1
  4. package/dist/index.js +12 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/interpretation/index.js +1 -1
  7. package/dist/interpretation/siLanguage.js +1 -1
  8. package/dist/media/index.js +3 -3
  9. package/dist/media/index.js.map +1 -1
  10. package/dist/media/properties.js +22 -5
  11. package/dist/media/properties.js.map +1 -1
  12. package/dist/meeting/index.js +529 -415
  13. package/dist/meeting/index.js.map +1 -1
  14. package/dist/member/index.js +15 -0
  15. package/dist/member/index.js.map +1 -1
  16. package/dist/member/types.js +11 -1
  17. package/dist/member/types.js.map +1 -1
  18. package/dist/member/util.js +15 -0
  19. package/dist/member/util.js.map +1 -1
  20. package/dist/reconnection-manager/index.js +1 -2
  21. package/dist/reconnection-manager/index.js.map +1 -1
  22. package/dist/types/index.d.ts +1 -1
  23. package/dist/types/media/properties.d.ts +10 -3
  24. package/dist/types/meeting/index.d.ts +41 -9
  25. package/dist/types/member/index.d.ts +2 -1
  26. package/dist/types/member/types.d.ts +11 -0
  27. package/package.json +20 -20
  28. package/src/index.ts +2 -0
  29. package/src/media/index.ts +11 -5
  30. package/src/media/properties.ts +24 -5
  31. package/src/meeting/index.ts +210 -77
  32. package/src/member/index.ts +17 -1
  33. package/src/member/types.ts +14 -0
  34. package/src/member/util.ts +23 -1
  35. package/src/reconnection-manager/index.ts +4 -1
  36. package/test/integration/spec/journey.js +9 -9
  37. package/test/unit/spec/media/index.ts +13 -3
  38. package/test/unit/spec/meeting/index.js +106 -15
  39. package/test/unit/spec/member/index.js +36 -13
  40. package/test/unit/spec/member/util.js +31 -0
@@ -1,4 +1,4 @@
1
- import { IExternalRoles } from './types';
1
+ import { IExternalRoles, IMediaStatus } from './types';
2
2
  /**
3
3
  * @class Member
4
4
  */
@@ -23,6 +23,7 @@ export default class Member {
23
23
  isUser: any;
24
24
  isVideoMuted: any;
25
25
  roles: IExternalRoles;
26
+ mediaStatus: IMediaStatus;
26
27
  name: any;
27
28
  participant: any;
28
29
  status: any;
@@ -19,3 +19,14 @@ export type ParticipantWithRoles = {
19
19
  };
20
20
  };
21
21
  };
22
+ export declare enum MediaStatus {
23
+ RECVONLY = "RECVONLY",
24
+ SENDONLY = "SENDONLY",
25
+ SENDRECV = "SENDRECV",
26
+ INACTIVE = "INACTIVE",
27
+ UNKNOWN = "UNKNOWN"
28
+ }
29
+ export interface IMediaStatus {
30
+ audio: MediaStatus;
31
+ video: MediaStatus;
32
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/plugin-meetings",
3
- "version": "3.0.0-beta.170",
3
+ "version": "3.0.0-beta.172",
4
4
  "description": "",
5
5
  "license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
6
6
  "contributors": [
@@ -32,12 +32,12 @@
32
32
  "build": "yarn run -T tsc --declaration true --declarationDir ./dist/types"
33
33
  },
34
34
  "devDependencies": {
35
- "@webex/plugin-meetings": "3.0.0-beta.170",
36
- "@webex/test-helper-chai": "3.0.0-beta.170",
37
- "@webex/test-helper-mocha": "3.0.0-beta.170",
38
- "@webex/test-helper-mock-webex": "3.0.0-beta.170",
39
- "@webex/test-helper-retry": "3.0.0-beta.170",
40
- "@webex/test-helper-test-users": "3.0.0-beta.170",
35
+ "@webex/plugin-meetings": "3.0.0-beta.172",
36
+ "@webex/test-helper-chai": "3.0.0-beta.172",
37
+ "@webex/test-helper-mocha": "3.0.0-beta.172",
38
+ "@webex/test-helper-mock-webex": "3.0.0-beta.172",
39
+ "@webex/test-helper-retry": "3.0.0-beta.172",
40
+ "@webex/test-helper-test-users": "3.0.0-beta.172",
41
41
  "chai": "^4.3.4",
42
42
  "chai-as-promised": "^7.1.1",
43
43
  "jsdom-global": "3.0.2",
@@ -46,19 +46,19 @@
46
46
  "typescript": "^4.7.4"
47
47
  },
48
48
  "dependencies": {
49
- "@webex/common": "3.0.0-beta.170",
50
- "@webex/internal-media-core": "1.38.6",
51
- "@webex/internal-plugin-conversation": "3.0.0-beta.170",
52
- "@webex/internal-plugin-device": "3.0.0-beta.170",
53
- "@webex/internal-plugin-llm": "3.0.0-beta.170",
54
- "@webex/internal-plugin-mercury": "3.0.0-beta.170",
55
- "@webex/internal-plugin-metrics": "3.0.0-beta.170",
56
- "@webex/internal-plugin-support": "3.0.0-beta.170",
57
- "@webex/internal-plugin-user": "3.0.0-beta.170",
58
- "@webex/media-helpers": "3.0.0-beta.170",
59
- "@webex/plugin-people": "3.0.0-beta.170",
60
- "@webex/plugin-rooms": "3.0.0-beta.170",
61
- "@webex/webex-core": "3.0.0-beta.170",
49
+ "@webex/common": "3.0.0-beta.172",
50
+ "@webex/internal-media-core": "1.39.1",
51
+ "@webex/internal-plugin-conversation": "3.0.0-beta.172",
52
+ "@webex/internal-plugin-device": "3.0.0-beta.172",
53
+ "@webex/internal-plugin-llm": "3.0.0-beta.172",
54
+ "@webex/internal-plugin-mercury": "3.0.0-beta.172",
55
+ "@webex/internal-plugin-metrics": "3.0.0-beta.172",
56
+ "@webex/internal-plugin-support": "3.0.0-beta.172",
57
+ "@webex/internal-plugin-user": "3.0.0-beta.172",
58
+ "@webex/media-helpers": "3.0.0-beta.172",
59
+ "@webex/plugin-people": "3.0.0-beta.172",
60
+ "@webex/plugin-rooms": "3.0.0-beta.172",
61
+ "@webex/webex-core": "3.0.0-beta.172",
62
62
  "ampersand-collection": "^2.0.2",
63
63
  "bowser": "^2.11.0",
64
64
  "btoa": "^1.2.1",
package/src/index.ts CHANGED
@@ -12,6 +12,7 @@ export {
12
12
  getDevices,
13
13
  LocalTrack,
14
14
  LocalDisplayTrack,
15
+ LocalSystemAudioTrack,
15
16
  LocalTrackEvents,
16
17
  type TrackMuteEvent,
17
18
  type ServerMuteReason,
@@ -22,6 +23,7 @@ export {
22
23
  createMicrophoneTrack,
23
24
  createCameraTrack,
24
25
  createDisplayTrack,
26
+ createDisplayTrackWithAudio,
25
27
  FacingMode,
26
28
  DisplaySurface,
27
29
  PresetCameraConstraints,
@@ -4,7 +4,12 @@
4
4
  /* globals navigator */
5
5
 
6
6
  import {RoapMediaConnection, MultistreamRoapMediaConnection} from '@webex/internal-media-core';
7
- import {LocalCameraTrack, LocalDisplayTrack, LocalMicrophoneTrack} from '@webex/media-helpers';
7
+ import {
8
+ LocalCameraTrack,
9
+ LocalDisplayTrack,
10
+ LocalSystemAudioTrack,
11
+ LocalMicrophoneTrack,
12
+ } from '@webex/media-helpers';
8
13
  import LoggerProxy from '../common/logs/logger-proxy';
9
14
  import {MEDIA_TRACK_CONSTRAINT} from '../constants';
10
15
  import Config from '../config';
@@ -99,7 +104,7 @@ Media.getDirection = (forceSendRecv: boolean, receive: boolean, send: boolean) =
99
104
  * @param {string} debugId string useful for debugging (will appear in media connection logs)
100
105
  * @param {Object} options
101
106
  * @param {Object} [options.mediaProperties] contains mediaDirection and local tracks:
102
- * audioTrack, videoTrack and shareTrack
107
+ * audioTrack, videoTrack, shareVideoTrack, and shareAudioTrack
103
108
  * @param {string} [options.remoteQualityLevel] LOW|MEDIUM|HIGH applicable only to non-multistream connections
104
109
  * @param {boolean} [options.enableRtx] applicable only to non-multistream connections
105
110
  * @param {boolean} [options.enableExtmap] applicable only to non-multistream connections
@@ -122,7 +127,8 @@ Media.createMediaConnection = (
122
127
  };
123
128
  audioTrack?: LocalMicrophoneTrack;
124
129
  videoTrack?: LocalCameraTrack;
125
- shareTrack?: LocalDisplayTrack;
130
+ shareVideoTrack?: LocalDisplayTrack;
131
+ shareAudioTrack?: LocalSystemAudioTrack;
126
132
  };
127
133
  remoteQualityLevel?: 'LOW' | 'MEDIUM' | 'HIGH';
128
134
  enableRtx?: boolean;
@@ -174,7 +180,7 @@ Media.createMediaConnection = (
174
180
  throw new Error('mediaProperties have to be provided for non-multistream media connections');
175
181
  }
176
182
 
177
- const {mediaDirection, audioTrack, videoTrack, shareTrack} = mediaProperties;
183
+ const {mediaDirection, audioTrack, videoTrack, shareVideoTrack} = mediaProperties;
178
184
 
179
185
  return new RoapMediaConnection(
180
186
  {
@@ -198,7 +204,7 @@ Media.createMediaConnection = (
198
204
  localTracks: {
199
205
  audio: audioTrack?.underlyingTrack,
200
206
  video: videoTrack?.underlyingTrack,
201
- screenShareVideo: shareTrack?.underlyingTrack,
207
+ screenShareVideo: shareVideoTrack?.underlyingTrack,
202
208
  },
203
209
  direction: {
204
210
  audio: Media.getDirection(true, mediaDirection.receiveAudio, mediaDirection.sendAudio),
@@ -1,6 +1,11 @@
1
1
  import {ConnectionState, Event} from '@webex/internal-media-core';
2
2
 
3
- import {LocalCameraTrack, LocalMicrophoneTrack, LocalDisplayTrack} from '@webex/media-helpers';
3
+ import {
4
+ LocalCameraTrack,
5
+ LocalMicrophoneTrack,
6
+ LocalDisplayTrack,
7
+ LocalSystemAudioTrack,
8
+ } from '@webex/media-helpers';
4
9
 
5
10
  import {MEETINGS, PC_BAIL_TIMEOUT, QUALITY_LEVELS} from '../constants';
6
11
  import LoggerProxy from '../common/logs/logger-proxy';
@@ -26,7 +31,8 @@ export default class MediaProperties {
26
31
  remoteQualityLevel: any;
27
32
  remoteShare: any;
28
33
  remoteVideoTrack: any;
29
- shareTrack?: LocalDisplayTrack;
34
+ shareVideoTrack?: LocalDisplayTrack;
35
+ shareAudioTrack?: LocalSystemAudioTrack;
30
36
  videoDeviceId: any;
31
37
  videoTrack?: LocalCameraTrack;
32
38
  namespace = MEETINGS;
@@ -47,7 +53,8 @@ export default class MediaProperties {
47
53
  };
48
54
  this.videoTrack = null;
49
55
  this.audioTrack = null;
50
- this.shareTrack = null;
56
+ this.shareVideoTrack = null;
57
+ this.shareAudioTrack = null;
51
58
  this.remoteShare = undefined;
52
59
  this.remoteAudioTrack = undefined;
53
60
  this.remoteVideoTrack = undefined;
@@ -84,8 +91,12 @@ export default class MediaProperties {
84
91
  this.audioTrack = audioTrack;
85
92
  }
86
93
 
87
- setLocalShareTrack(shareTrack?: LocalDisplayTrack) {
88
- this.shareTrack = shareTrack;
94
+ setLocalShareVideoTrack(shareVideoTrack?: LocalDisplayTrack) {
95
+ this.shareVideoTrack = shareVideoTrack;
96
+ }
97
+
98
+ setLocalShareAudioTrack(shareAudioTrack?: LocalSystemAudioTrack) {
99
+ this.shareAudioTrack = shareAudioTrack;
89
100
  }
90
101
 
91
102
  setRemoteQualityLevel(remoteQualityLevel) {
@@ -149,6 +160,14 @@ export default class MediaProperties {
149
160
  this.unsetRemoteShare();
150
161
  }
151
162
 
163
+ /**
164
+ * Returns if we have at least one local share track or not.
165
+ * @returns {Boolean}
166
+ */
167
+ hasLocalShareTrack() {
168
+ return !!(this.shareAudioTrack || this.shareVideoTrack);
169
+ }
170
+
152
171
  /**
153
172
  * Waits for the webrtc media connection to be connected.
154
173
  *