@webex/plugin-meetings 3.0.0-beta.146 → 3.0.0-beta.147

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 (56) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/common/errors/webex-errors.js +3 -2
  4. package/dist/common/errors/webex-errors.js.map +1 -1
  5. package/dist/config.js +1 -7
  6. package/dist/config.js.map +1 -1
  7. package/dist/constants.js +7 -15
  8. package/dist/constants.js.map +1 -1
  9. package/dist/index.js +6 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/media/index.js +5 -56
  12. package/dist/media/index.js.map +1 -1
  13. package/dist/media/properties.js +15 -93
  14. package/dist/media/properties.js.map +1 -1
  15. package/dist/meeting/index.js +1092 -1865
  16. package/dist/meeting/index.js.map +1 -1
  17. package/dist/meeting/muteState.js +88 -184
  18. package/dist/meeting/muteState.js.map +1 -1
  19. package/dist/meeting/util.js +1 -23
  20. package/dist/meeting/util.js.map +1 -1
  21. package/dist/meetings/index.js +1 -2
  22. package/dist/meetings/index.js.map +1 -1
  23. package/dist/reconnection-manager/index.js +153 -134
  24. package/dist/reconnection-manager/index.js.map +1 -1
  25. package/dist/roap/index.js +8 -7
  26. package/dist/roap/index.js.map +1 -1
  27. package/dist/types/common/errors/webex-errors.d.ts +1 -1
  28. package/dist/types/config.d.ts +0 -6
  29. package/dist/types/constants.d.ts +1 -18
  30. package/dist/types/index.d.ts +1 -1
  31. package/dist/types/media/properties.d.ts +16 -38
  32. package/dist/types/meeting/index.d.ts +90 -353
  33. package/dist/types/meeting/muteState.d.ts +36 -38
  34. package/dist/types/meeting/util.d.ts +2 -4
  35. package/package.json +19 -19
  36. package/src/common/errors/webex-errors.ts +6 -2
  37. package/src/config.ts +0 -6
  38. package/src/constants.ts +1 -14
  39. package/src/index.ts +1 -0
  40. package/src/media/index.ts +10 -53
  41. package/src/media/properties.ts +32 -92
  42. package/src/meeting/index.ts +530 -1566
  43. package/src/meeting/muteState.ts +87 -178
  44. package/src/meeting/util.ts +3 -24
  45. package/src/meetings/index.ts +0 -1
  46. package/src/reconnection-manager/index.ts +4 -9
  47. package/src/roap/index.ts +13 -14
  48. package/test/integration/spec/converged-space-meetings.js +59 -3
  49. package/test/integration/spec/journey.js +330 -256
  50. package/test/integration/spec/space-meeting.js +75 -3
  51. package/test/unit/spec/meeting/index.js +767 -1344
  52. package/test/unit/spec/meeting/muteState.js +238 -394
  53. package/test/unit/spec/meeting/utils.js +2 -9
  54. package/test/unit/spec/multistream/receiveSlot.ts +1 -1
  55. package/test/unit/spec/roap/index.ts +2 -2
  56. package/test/utils/integrationTestUtils.js +5 -23
@@ -207,15 +207,16 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
207
207
  locusSelfUrl: meeting.selfUrl,
208
208
  mediaId: sendEmptyMediaId ? '' : meeting.mediaId,
209
209
  meetingId: meeting.id,
210
+ preferTranscoding: !meeting.isMultistream,
210
211
  locusMediaRequest: meeting.locusMediaRequest
212
+ }).then(function (_ref) {
213
+ var locus = _ref.locus,
214
+ mediaConnections = _ref.mediaConnections;
215
+ if (mediaConnections) {
216
+ meeting.updateMediaConnections(mediaConnections);
217
+ }
218
+ return locus;
211
219
  });
212
- }).then(function (_ref) {
213
- var locus = _ref.locus,
214
- mediaConnections = _ref.mediaConnections;
215
- if (mediaConnections) {
216
- meeting.updateMediaConnections(mediaConnections);
217
- }
218
- return locus;
219
220
  });
220
221
  }
221
222
 
@@ -1 +1 @@
1
- {"version":3,"names":["Roap","attrs","options","roapRequest","RoapRequest","turnDiscovery","TurnDiscovery","resolve","then","meeting","webex","meetings","meetingCollection","getByKey","correlationId","roapMessage","messageType","ROAP","ROAP_TYPES","OK","version","ROAP_VERSION","seq","LoggerProxy","logger","log","sendRoap","locusSelfUrl","selfUrl","mediaId","meetingId","id","locusMediaRequest","ANSWER","sdps","sdp","ERROR","errorType","reconnect","tieBreaker","OFFER","isSkipped","isTurnDiscoverySkipped","sendEmptyMediaId","locus","mediaConnections","updateMediaConnections","isReconnecting","doTurnDiscovery","StatelessWebexPlugin"],"sources":["index.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {ROAP} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport RoapRequest from './request';\nimport TurnDiscovery from './turnDiscovery';\nimport Meeting from '../meeting';\n\n/**\n * Roap options\n * @typedef {Object} RoapOptions\n * @property {String} sdp\n * @property {Meeting} meeting\n * @property {Number} seq\n * @property {Number} tieBreaker\n * @property {Boolean} reconnect\n */\n\n/**\n * @typedef {Object} SeqOptions\n * @property {String} correlationId\n * @property {String} mediaId\n * @property {Number} seq\n */\n\n/**\n * @class Roap\n * @export\n * @private\n */\nexport default class Roap extends StatelessWebexPlugin {\n attrs: any;\n lastRoapOffer: any;\n options: any;\n roapHandler: any;\n roapRequest: any;\n turnDiscovery: any;\n\n /**\n *\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: any, options: any) {\n super({}, options);\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.attrs = attrs;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.options = options;\n /**\n * The Roap Request Server Proxy Object\n * @instance\n * @type {RoapRequest}\n * @private\n * @memberof Roap\n */\n // @ts-ignore\n this.roapRequest = new RoapRequest({}, options);\n\n this.turnDiscovery = new TurnDiscovery(this.roapRequest);\n }\n\n /**\n *\n * @param {SeqOptions} options\n * @returns {null}\n * @memberof Roap\n */\n public sendRoapOK(options: any) {\n return Promise.resolve().then(() => {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OK,\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sending with seq ${options.seq}`);\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n })\n .then(() => {\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sent with seq ${options.seq}`);\n });\n });\n }\n\n /**\n * Sends a ROAP answer...\n * @param {SeqOptions} options\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @returns {Promise}\n * @memberof Roap\n */\n public sendRoapAnswer(options: any) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ANSWER,\n sdps: [options.sdp],\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n return this.roapRequest.sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n });\n }\n\n /**\n * Sends a ROAP error...\n * @param {Object} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapError(options) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ERROR,\n version: ROAP.ROAP_VERSION,\n errorType: options.errorType,\n seq: options.seq,\n };\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n })\n .then(() => {\n LoggerProxy.logger.log(\n `Roap:index#sendRoapError --> ROAP ERROR sent with seq ${options.seq}`\n );\n });\n }\n\n /**\n * sends a roap media request\n * @param {RoapOptions} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapMediaRequest(options: any) {\n const {meeting, seq, sdp, reconnect, tieBreaker} = options;\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OFFER,\n sdps: [sdp],\n version: ROAP.ROAP_VERSION,\n seq,\n tieBreaker,\n };\n\n // When reconnecting, it's important that the first roap message being sent out has empty media id.\n // Normally this is the roap offer, but when TURN discovery is enabled,\n // then this is the TURN discovery request message\n return this.turnDiscovery\n .isSkipped(meeting)\n .then((isTurnDiscoverySkipped) => {\n const sendEmptyMediaId = reconnect && isTurnDiscoverySkipped;\n\n return this.roapRequest.sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: sendEmptyMediaId ? '' : meeting.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n });\n })\n\n .then(({locus, mediaConnections}) => {\n if (mediaConnections) {\n meeting.updateMediaConnections(mediaConnections);\n }\n\n return locus;\n });\n }\n\n /**\n * Performs a TURN server discovery procedure, which involves exchanging\n * some roap messages with the server. This exchange has to be done before\n * any other roap messages are sent\n *\n * @param {Meeting} meeting\n * @param {Boolean} isReconnecting should be set to true if this is a new\n * media connection just after a reconnection\n * @returns {Promise}\n */\n doTurnDiscovery(meeting: Meeting, isReconnecting: boolean) {\n return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Roap","attrs","options","roapRequest","RoapRequest","turnDiscovery","TurnDiscovery","resolve","then","meeting","webex","meetings","meetingCollection","getByKey","correlationId","roapMessage","messageType","ROAP","ROAP_TYPES","OK","version","ROAP_VERSION","seq","LoggerProxy","logger","log","sendRoap","locusSelfUrl","selfUrl","mediaId","meetingId","id","locusMediaRequest","ANSWER","sdps","sdp","ERROR","errorType","reconnect","tieBreaker","OFFER","isSkipped","isTurnDiscoverySkipped","sendEmptyMediaId","preferTranscoding","isMultistream","locus","mediaConnections","updateMediaConnections","isReconnecting","doTurnDiscovery","StatelessWebexPlugin"],"sources":["index.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {ROAP} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport RoapRequest from './request';\nimport TurnDiscovery from './turnDiscovery';\nimport Meeting from '../meeting';\n\n/**\n * Roap options\n * @typedef {Object} RoapOptions\n * @property {String} sdp\n * @property {Meeting} meeting\n * @property {Number} seq\n * @property {Number} tieBreaker\n * @property {Boolean} reconnect\n */\n\n/**\n * @typedef {Object} SeqOptions\n * @property {String} correlationId\n * @property {String} mediaId\n * @property {Number} seq\n */\n\n/**\n * @class Roap\n * @export\n * @private\n */\nexport default class Roap extends StatelessWebexPlugin {\n attrs: any;\n lastRoapOffer: any;\n options: any;\n roapHandler: any;\n roapRequest: any;\n turnDiscovery: any;\n\n /**\n *\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: any, options: any) {\n super({}, options);\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.attrs = attrs;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.options = options;\n /**\n * The Roap Request Server Proxy Object\n * @instance\n * @type {RoapRequest}\n * @private\n * @memberof Roap\n */\n // @ts-ignore\n this.roapRequest = new RoapRequest({}, options);\n\n this.turnDiscovery = new TurnDiscovery(this.roapRequest);\n }\n\n /**\n *\n * @param {SeqOptions} options\n * @returns {null}\n * @memberof Roap\n */\n public sendRoapOK(options: any) {\n return Promise.resolve().then(() => {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OK,\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sending with seq ${options.seq}`);\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n })\n .then(() => {\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sent with seq ${options.seq}`);\n });\n });\n }\n\n /**\n * Sends a ROAP answer...\n * @param {SeqOptions} options\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @returns {Promise}\n * @memberof Roap\n */\n public sendRoapAnswer(options: any) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ANSWER,\n sdps: [options.sdp],\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n return this.roapRequest.sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n });\n }\n\n /**\n * Sends a ROAP error...\n * @param {Object} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapError(options) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ERROR,\n version: ROAP.ROAP_VERSION,\n errorType: options.errorType,\n seq: options.seq,\n };\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n meetingId: meeting.id,\n locusMediaRequest: meeting.locusMediaRequest,\n })\n .then(() => {\n LoggerProxy.logger.log(\n `Roap:index#sendRoapError --> ROAP ERROR sent with seq ${options.seq}`\n );\n });\n }\n\n /**\n * sends a roap media request\n * @param {RoapOptions} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapMediaRequest(options: any) {\n const {meeting, seq, sdp, reconnect, tieBreaker} = options;\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OFFER,\n sdps: [sdp],\n version: ROAP.ROAP_VERSION,\n seq,\n tieBreaker,\n };\n\n // When reconnecting, it's important that the first roap message being sent out has empty media id.\n // Normally this is the roap offer, but when TURN discovery is enabled,\n // then this is the TURN discovery request message\n return this.turnDiscovery.isSkipped(meeting).then((isTurnDiscoverySkipped) => {\n const sendEmptyMediaId = reconnect && isTurnDiscoverySkipped;\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: sendEmptyMediaId ? '' : meeting.mediaId,\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n locusMediaRequest: meeting.locusMediaRequest,\n })\n .then(({locus, mediaConnections}) => {\n if (mediaConnections) {\n meeting.updateMediaConnections(mediaConnections);\n }\n\n return locus;\n });\n });\n }\n\n /**\n * Performs a TURN server discovery procedure, which involves exchanging\n * some roap messages with the server. This exchange has to be done before\n * any other roap messages are sent\n *\n * @param {Meeting} meeting\n * @param {Boolean} isReconnecting should be set to true if this is a new\n * media connection just after a reconnection\n * @returns {Promise}\n */\n doTurnDiscovery(meeting: Meeting, isReconnecting: boolean) {\n return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting);\n }\n}\n"],"mappings":"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"}
@@ -36,7 +36,7 @@ export { UserNotJoinedError };
36
36
  * @classdesc Raised whenever the user has not established media yet.
37
37
  * @extends WebexMeetingsError
38
38
  * @property {number} code - 30103
39
- * @property {string} message - 'User has not established media yet'
39
+ * @property {string} message - error message
40
40
  */
41
41
  declare class NoMediaEstablishedYetError extends WebexMeetingsError {
42
42
  static CODE: number;
@@ -2,13 +2,7 @@ declare const _default: {
2
2
  meetings: {
3
3
  deviceType: any;
4
4
  mediaSettings: {
5
- sendAudio: boolean;
6
- sendVideo: boolean;
7
- receiveAudio: boolean;
8
- receiveVideo: boolean;
9
5
  pstn: boolean;
10
- sendShare: boolean;
11
- receiveShare: boolean;
12
6
  };
13
7
  reconnection: {
14
8
  enabled: boolean;
@@ -1,5 +1,4 @@
1
1
  export declare const AUDIO = "audio";
2
- export declare const AUDIO_INPUT = "audioinput";
3
2
  export declare const AUDIO_STATUS = "audioStatus";
4
3
  export declare const ALERT = "alert";
5
4
  export declare const ALIAS = "alias";
@@ -48,7 +47,6 @@ export declare const SIP_URI = "sipUri";
48
47
  export declare const SHARE = "share";
49
48
  export declare const TYPE = "type";
50
49
  export declare const VIDEO = "video";
51
- export declare const VIDEO_INPUT = "videoinput";
52
50
  export declare const VIDEO_STATUS = "videoStatus";
53
51
  export declare const _ANSWER_ = "ANSWER";
54
52
  export declare const _ACTIVE_ = "ACTIVE";
@@ -258,12 +256,10 @@ export declare const EVENT_TRIGGERS: {
258
256
  export declare const EVENT_TYPES: {
259
257
  SELF: string;
260
258
  OTHER: string;
261
- LOCAL: string;
262
259
  REMOTE: string;
263
260
  REMOTE_AUDIO: string;
264
261
  REMOTE_VIDEO: string;
265
262
  REMOTE_SHARE: string;
266
- LOCAL_SHARE: string;
267
263
  ERROR: string;
268
264
  };
269
265
  export declare const MEETING_REMOVED_REASON: {
@@ -285,6 +281,7 @@ export declare const SHARE_STOPPED_REASON: {
285
281
  SELF_STOPPED: string;
286
282
  MEETING_REJOIN: string;
287
283
  MEDIA_RECONNECTION: string;
284
+ TRACK_ENDED: string;
288
285
  };
289
286
  export declare const EVENTS: {
290
287
  SELF_UNADMITTED_GUEST: string;
@@ -937,20 +934,6 @@ export declare const AVAILABLE_RESOLUTIONS: {
937
934
  };
938
935
  };
939
936
  };
940
- export declare const VIDEO_RESOLUTIONS: {
941
- [x: string]: {
942
- video: {
943
- width: {
944
- max: number;
945
- ideal: number;
946
- };
947
- height: {
948
- max: number;
949
- ideal: number;
950
- };
951
- };
952
- };
953
- };
954
937
  export declare const MQA_INTEVAL = 60000;
955
938
  export declare const MEDIA_DEVICES: {
956
939
  MICROPHONE: string;
@@ -1,5 +1,5 @@
1
1
  import Meetings from './meetings';
2
- export { LocalTrack, LocalDisplayTrack, LocalTrackEvents, type TrackMuteEvent, type ServerMuteReason, LocalMicrophoneTrackEvents, LocalCameraTrackEvents, LocalMicrophoneTrack, LocalCameraTrack, createMicrophoneTrack, createCameraTrack, createDisplayTrack, } from '@webex/media-helpers';
2
+ export { getDevices, LocalTrack, LocalDisplayTrack, LocalTrackEvents, type TrackMuteEvent, type ServerMuteReason, LocalMicrophoneTrackEvents, LocalCameraTrackEvents, LocalMicrophoneTrack, LocalCameraTrack, createMicrophoneTrack, createCameraTrack, createDisplayTrack, } from '@webex/media-helpers';
3
3
  export default Meetings;
4
4
  export * as CONSTANTS from './constants';
5
5
  export * as REACTIONS from './reactions/reactions';
@@ -1,26 +1,33 @@
1
1
  import { LocalCameraTrack, LocalMicrophoneTrack, LocalDisplayTrack } from '@webex/media-helpers';
2
+ export type MediaDirection = {
3
+ sendAudio: boolean;
4
+ sendVideo: boolean;
5
+ sendShare: boolean;
6
+ receiveAudio: boolean;
7
+ receiveVideo: boolean;
8
+ receiveShare: boolean;
9
+ };
2
10
  /**
3
11
  * @class MediaProperties
4
12
  */
5
13
  export default class MediaProperties {
6
- audioTrack: LocalMicrophoneTrack | null;
7
- localQualityLevel: any;
8
- mediaDirection: any;
14
+ audioTrack?: LocalMicrophoneTrack;
15
+ mediaDirection: MediaDirection;
9
16
  mediaSettings: any;
10
17
  webrtcMediaConnection: any;
11
18
  remoteAudioTrack: any;
12
19
  remoteQualityLevel: any;
13
20
  remoteShare: any;
14
21
  remoteVideoTrack: any;
15
- shareTrack: LocalDisplayTrack | null;
22
+ shareTrack?: LocalDisplayTrack;
16
23
  videoDeviceId: any;
17
- videoTrack: LocalCameraTrack | null;
24
+ videoTrack?: LocalCameraTrack;
18
25
  namespace: string;
19
26
  /**
20
27
  * @param {Object} [options] -- to auto construct
21
28
  * @returns {MediaProperties}
22
29
  */
23
- constructor(options?: any);
30
+ constructor();
24
31
  /**
25
32
  * Retrieves the preferred video input device
26
33
  * @returns {Object|null}
@@ -29,10 +36,9 @@ export default class MediaProperties {
29
36
  setMediaDirection(mediaDirection: any): void;
30
37
  setMediaSettings(type: any, values: any): void;
31
38
  setMediaPeerConnection(mediaPeerConnection: any): void;
32
- setLocalVideoTrack(videoTrack: LocalCameraTrack | null): void;
33
- setLocalAudioTrack(audioTrack: LocalMicrophoneTrack | null): void;
34
- setLocalQualityLevel(localQualityLevel: any): void;
35
- setLocalShareTrack(shareTrack: LocalDisplayTrack | null): void;
39
+ setLocalVideoTrack(videoTrack?: LocalCameraTrack): void;
40
+ setLocalAudioTrack(audioTrack?: LocalMicrophoneTrack): void;
41
+ setLocalShareTrack(shareTrack?: LocalDisplayTrack): void;
36
42
  setRemoteQualityLevel(remoteQualityLevel: any): void;
37
43
  setRemoteShare(remoteShare: any): void;
38
44
  /**
@@ -54,45 +60,17 @@ export default class MediaProperties {
54
60
  */
55
61
  setVideoDeviceId(deviceId: string): void;
56
62
  unsetPeerConnection(): void;
57
- unsetLocalVideoTrack(): void;
58
- unsetLocalShareTrack(): void;
59
- unsetLocalAudioTrack(): void;
60
- /**
61
- * Removes remote stream from class instance
62
- * @deprecated after v1.89.3
63
- * @returns {void}
64
- */
65
- unsetRemoteStream(): void;
66
63
  /**
67
64
  * Removes both remote audio and video from class instance
68
65
  * @returns {void}
69
66
  */
70
67
  unsetRemoteMedia(): void;
71
68
  unsetRemoteShare(): void;
72
- unsetLocalVideoTracks(): void;
73
- /**
74
- * Removes remote stream and remote share from class instance
75
- * @deprecated after v1.89.3
76
- * @returns {void}
77
- */
78
- unsetRemoteStreams(): void;
79
69
  /**
80
70
  * Unsets all remote tracks
81
71
  * @returns {void}
82
72
  */
83
73
  unsetRemoteTracks(): void;
84
- unsetShareStreams(): void;
85
- /**
86
- * Removes both local and remote video stream from class instance
87
- * @deprecated after v1.89.3
88
- * @returns {void}
89
- */
90
- unsetMediaStreams(): void;
91
- /**
92
- * Removes both local and remote video stream from class instance
93
- * @returns {void}
94
- */
95
- unsetMediaTracks(): void;
96
74
  /**
97
75
  * Waits for the webrtc media connection to be connected.
98
76
  *