@webex/plugin-meetings 3.0.0-beta.111 → 3.0.0-beta.113

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 (44) hide show
  1. package/README.md +45 -1
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +1 -1
  4. package/dist/media/index.js +0 -21
  5. package/dist/media/index.js.map +1 -1
  6. package/dist/meeting/index.js +19 -0
  7. package/dist/meeting/index.js.map +1 -1
  8. package/dist/meeting/locusMediaRequest.js +288 -0
  9. package/dist/meeting/locusMediaRequest.js.map +1 -0
  10. package/dist/meeting/muteState.js +49 -34
  11. package/dist/meeting/muteState.js.map +1 -1
  12. package/dist/meeting/request.js +12 -47
  13. package/dist/meeting/request.js.map +1 -1
  14. package/dist/meeting/util.js +20 -19
  15. package/dist/meeting/util.js.map +1 -1
  16. package/dist/roap/index.js +4 -19
  17. package/dist/roap/index.js.map +1 -1
  18. package/dist/roap/request.js +23 -39
  19. package/dist/roap/request.js.map +1 -1
  20. package/dist/roap/turnDiscovery.js +2 -10
  21. package/dist/roap/turnDiscovery.js.map +1 -1
  22. package/dist/types/meeting/index.d.ts +3 -0
  23. package/dist/types/meeting/locusMediaRequest.d.ts +68 -0
  24. package/dist/types/meeting/muteState.d.ts +3 -2
  25. package/dist/types/meeting/request.d.ts +4 -18
  26. package/dist/types/roap/request.d.ts +6 -8
  27. package/dist/types/roap/turnDiscovery.d.ts +4 -1
  28. package/package.json +19 -19
  29. package/src/media/index.ts +0 -23
  30. package/src/meeting/index.ts +22 -0
  31. package/src/meeting/locusMediaRequest.ts +303 -0
  32. package/src/meeting/muteState.ts +24 -9
  33. package/src/meeting/request.ts +15 -51
  34. package/src/meeting/util.ts +17 -13
  35. package/src/roap/index.ts +4 -16
  36. package/src/roap/request.ts +22 -42
  37. package/src/roap/turnDiscovery.ts +2 -8
  38. package/test/unit/spec/meeting/locusMediaRequest.ts +414 -0
  39. package/test/unit/spec/meeting/muteState.js +97 -71
  40. package/test/unit/spec/meeting/request.js +19 -0
  41. package/test/unit/spec/meeting/utils.js +31 -37
  42. package/test/unit/spec/roap/index.ts +2 -37
  43. package/test/unit/spec/roap/request.ts +27 -57
  44. package/test/unit/spec/roap/turnDiscovery.ts +3 -5
@@ -108,36 +108,39 @@ describe('plugin-meetings/roap', () => {
108
108
 
109
109
  describe('sendRoap', () => {
110
110
  it('includes joinCookie in the request correctly', async () => {
111
+ const locusMediaRequest = { send: sinon.stub().resolves({body: {locus: {}}})};
112
+
111
113
  await roapRequest.sendRoap({
112
114
  locusSelfUrl: locusUrl,
113
115
  mediaId: 'mediaId',
114
116
  roapMessage: {
115
117
  seq: 'seq',
116
118
  },
119
+ locusMediaRequest,
117
120
  });
118
121
 
119
- const requestParams = roapRequest.request.getCall(0).args[0];
120
- assert.equal(requestParams.method, 'PUT');
121
- assert.equal(requestParams.uri, `${locusUrl}/media`);
122
- assert.deepEqual(requestParams.body.localMedias, [
123
- {
124
- localSdp:
125
- '{"roapMessage":{"seq":"seq"},"audioMuted":false,"videoMuted":false,"reachability":{"clusterId":{"udp":"test"}}}',
126
- mediaId: 'mediaId',
127
- },
128
- ]);
129
- assert.deepEqual(requestParams.body.clientMediaPreferences, {
122
+ const requestParams = locusMediaRequest.send.getCall(0).args[0];
123
+ assert.deepEqual(requestParams, {
124
+ type: 'RoapMessage',
125
+ selfUrl: locusUrl,
130
126
  joinCookie: {
131
127
  anycastEntryPoint: 'aws-eu-west-1',
132
128
  },
133
- preferTranscoding: true,
129
+ mediaId: 'mediaId',
130
+ roapMessage: {
131
+ seq: 'seq',
132
+ },
133
+ reachability: {clusterId:{udp:"test"}},
134
134
  });
135
135
  });
136
136
  });
137
137
 
138
138
  it('calls attachReachabilityData when sendRoap', async () => {
139
+ const locusMediaRequest = { send: sinon.stub().resolves({body: {locus: {}}})};
140
+
139
141
  const newSdp = {
140
142
  new: 'sdp',
143
+ reachability: { someResult: 'whatever' }
141
144
  };
142
145
 
143
146
  roapRequest.attachReachabilityData = sinon.stub().returns(
@@ -148,70 +151,37 @@ describe('plugin-meetings/roap', () => {
148
151
  },
149
152
  })
150
153
  );
151
- webex.request.returns(
152
- Promise.resolve({
153
- body: {
154
- locus: {},
155
- },
156
- })
157
- );
158
154
 
159
- const result = await roapRequest.sendRoap({
155
+ await roapRequest.sendRoap({
160
156
  roapMessage: {
161
157
  seq: 1,
162
158
  },
163
159
  locusSelfUrl: 'locusSelfUrl',
164
160
  mediaId: 'mediaId',
165
- correlationId: 'correlationId',
166
- audioMuted: true,
167
- videoMuted: true,
168
161
  meetingId: 'meetingId',
169
162
  preferTranscoding: true,
163
+ locusMediaRequest
170
164
  });
171
165
 
172
- const requestParams = roapRequest.request.getCall(0).args[0];
166
+ const requestParams = locusMediaRequest.send.getCall(0).args[0];
173
167
 
174
168
  assert.deepEqual(requestParams, {
175
- uri: 'locusSelfUrl/media',
176
- method: 'PUT',
177
- body: {
178
- device: {
179
- url: 'url',
180
- deviceType: undefined,
181
- },
182
- correlationId: 'correlationId',
183
- localMedias: [
184
- {
185
- localSdp: JSON.stringify(newSdp),
186
- mediaId: 'mediaId',
187
- },
188
- ],
189
- clientMediaPreferences: {
190
- joinCookie: {
191
- anycastEntryPoint: 'aws-eu-west-1',
192
- },
193
- preferTranscoding: true,
194
- },
169
+ type: 'RoapMessage',
170
+ selfUrl: 'locusSelfUrl',
171
+ joinCookie: {
172
+ anycastEntryPoint: 'aws-eu-west-1',
173
+ },
174
+ mediaId: 'mediaId',
175
+ roapMessage: {
176
+ seq: 1,
195
177
  },
178
+ reachability: { someResult: 'whatever' },
196
179
  });
197
180
 
198
181
  assert.calledOnceWithExactly(roapRequest.attachReachabilityData, {
199
182
  roapMessage: {
200
183
  seq: 1,
201
184
  },
202
- audioMuted: true,
203
- videoMuted: true,
204
- });
205
-
206
- assert.deepEqual(result, {
207
- locus: {
208
- fullState: {
209
- lastActive: 'lastActive',
210
- },
211
- id: '',
212
- roapSeq: 1,
213
- url: 'url/path',
214
- }
215
185
  });
216
186
  });
217
187
  });
@@ -51,7 +51,8 @@ describe('TurnDiscovery', () => {
51
51
  }),
52
52
  updateMediaConnections: sinon.stub(),
53
53
  webex: {meetings: {reachability: {isAnyClusterReachable: () => Promise.resolve(false)}}},
54
- isMultistream: false
54
+ isMultistream: false,
55
+ locusMediaRequest: { fake: true },
55
56
  };
56
57
  });
57
58
 
@@ -74,13 +75,10 @@ describe('TurnDiscovery', () => {
74
75
  version: '2',
75
76
  seq: expectedSeq,
76
77
  },
77
- correlationId: testMeeting.correlationId,
78
78
  locusSelfUrl: testMeeting.selfUrl,
79
79
  mediaId: expectedMediaId,
80
- audioMuted: testMeeting.audio?.isLocallyMuted(),
81
- videoMuted: testMeeting.video?.isLocallyMuted(),
82
80
  meetingId: testMeeting.id,
83
- preferTranscoding: !testMeeting.isMultistream
81
+ locusMediaRequest: testMeeting.locusMediaRequest
84
82
  });
85
83
 
86
84
  if (messageType === 'TURN_DISCOVERY_REQUEST') {