genesys-cloud-streaming-client 19.2.0-develop.138 → 19.2.0-develop.140

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.
@@ -66,7 +66,6 @@ class GenesysCloudMediaSession {
66
66
  // if we have a state mismatch
67
67
  if (this.state !== 'ended' && ['failed', 'closed'].includes(this.peerConnection.connectionState)) {
68
68
  this.log('warn', 'state mismatch between session.state and peerConnection.connectionState, manually terminating the session', { sessionId: this.id, conversationId: this.conversationId, sessionType: this.sessionType });
69
- this.state = 'ended';
70
69
  this.onSessionTerminate();
71
70
  }
72
71
  }
@@ -171,7 +170,6 @@ class GenesysCloudMediaSession {
171
170
  }
172
171
  else if (connectionState === 'failed') {
173
172
  this.log('info', 'Connection was interrupted and failed to recover, cleaning up', { sessionId, conversationId, sessionType });
174
- this.state = 'ended';
175
173
  this.onSessionTerminate();
176
174
  }
177
175
  }
@@ -241,6 +239,7 @@ class GenesysCloudMediaSession {
241
239
  });
242
240
  }
243
241
  onSessionTerminate(reason) {
242
+ this.state = 'ended';
244
243
  if (this.peerConnection) {
245
244
  this.peerConnection.close();
246
245
  }
@@ -216,10 +216,10 @@ class WebrtcExtension extends events_1.EventEmitter {
216
216
  this.proxyStatsForSession(session);
217
217
  session.on('sendIq', (iq) => { var _a; return (_a = this.stanzaInstance) === null || _a === void 0 ? void 0 : _a.sendIQ(iq); });
218
218
  session.on('terminated', () => {
219
+ delete this.sessionsMap[session.id];
219
220
  this.webrtcSessions = this.webrtcSessions.filter(s => s.id !== session.id);
220
221
  });
221
222
  this.webrtcSessions.push(session);
222
- delete this.sessionsMap[session.id];
223
223
  this.logger.info('emitting sdp media-session (offer');
224
224
  this.applyEarlyIceCandidates(session);
225
225
  return this.emit(events.INCOMING_RTCSESSION, session);
@@ -11,8 +11,8 @@
11
11
  "file": "v19/streaming-client.browser.js"
12
12
  }
13
13
  ],
14
- "build": "138",
15
- "buildDate": "2025-06-02T21:46:52.002081231Z",
14
+ "build": "140",
15
+ "buildDate": "2025-06-05T19:35:24.249850717Z",
16
16
  "appName": "developercenter-cdn/streaming-client",
17
17
  "gcServiceName": "developercenter-cdn--streaming-client-webui"
18
18
  }
@@ -31477,7 +31477,6 @@ class GenesysCloudMediaSession {
31477
31477
  // if we have a state mismatch
31478
31478
  if (this.state !== 'ended' && ['failed', 'closed'].includes(this.peerConnection.connectionState)) {
31479
31479
  this.log('warn', 'state mismatch between session.state and peerConnection.connectionState, manually terminating the session', { sessionId: this.id, conversationId: this.conversationId, sessionType: this.sessionType });
31480
- this.state = 'ended';
31481
31480
  this.onSessionTerminate();
31482
31481
  }
31483
31482
  }
@@ -31590,7 +31589,6 @@ class GenesysCloudMediaSession {
31590
31589
  }
31591
31590
  else if (connectionState === 'failed') {
31592
31591
  this.log('info', 'Connection was interrupted and failed to recover, cleaning up', { sessionId, conversationId, sessionType });
31593
- this.state = 'ended';
31594
31592
  this.onSessionTerminate();
31595
31593
  }
31596
31594
  }
@@ -31662,6 +31660,7 @@ class GenesysCloudMediaSession {
31662
31660
  });
31663
31661
  }
31664
31662
  onSessionTerminate(reason) {
31663
+ this.state = 'ended';
31665
31664
  if (this.peerConnection) {
31666
31665
  this.peerConnection.close();
31667
31666
  }
@@ -32155,10 +32154,10 @@ class WebrtcExtension extends EventEmitter {
32155
32154
  this.proxyStatsForSession(session);
32156
32155
  session.on('sendIq', (iq) => { var _a; return (_a = this.stanzaInstance) === null || _a === void 0 ? void 0 : _a.sendIQ(iq); });
32157
32156
  session.on('terminated', () => {
32157
+ delete this.sessionsMap[session.id];
32158
32158
  this.webrtcSessions = this.webrtcSessions.filter(s => s.id !== session.id);
32159
32159
  });
32160
32160
  this.webrtcSessions.push(session);
32161
- delete this.sessionsMap[session.id];
32162
32161
  this.logger.info('emitting sdp media-session (offer');
32163
32162
  this.applyEarlyIceCandidates(session);
32164
32163
  return this.emit(events.INCOMING_RTCSESSION, session);
@@ -63,7 +63,6 @@ export class GenesysCloudMediaSession {
63
63
  // if we have a state mismatch
64
64
  if (this.state !== 'ended' && ['failed', 'closed'].includes(this.peerConnection.connectionState)) {
65
65
  this.log('warn', 'state mismatch between session.state and peerConnection.connectionState, manually terminating the session', { sessionId: this.id, conversationId: this.conversationId, sessionType: this.sessionType });
66
- this.state = 'ended';
67
66
  this.onSessionTerminate();
68
67
  }
69
68
  }
@@ -176,7 +175,6 @@ export class GenesysCloudMediaSession {
176
175
  }
177
176
  else if (connectionState === 'failed') {
178
177
  this.log('info', 'Connection was interrupted and failed to recover, cleaning up', { sessionId, conversationId, sessionType });
179
- this.state = 'ended';
180
178
  this.onSessionTerminate();
181
179
  }
182
180
  }
@@ -248,6 +246,7 @@ export class GenesysCloudMediaSession {
248
246
  });
249
247
  }
250
248
  onSessionTerminate(reason) {
249
+ this.state = 'ended';
251
250
  if (this.peerConnection) {
252
251
  this.peerConnection.close();
253
252
  }
package/dist/es/webrtc.js CHANGED
@@ -212,10 +212,10 @@ export class WebrtcExtension extends EventEmitter {
212
212
  this.proxyStatsForSession(session);
213
213
  session.on('sendIq', (iq) => { var _a; return (_a = this.stanzaInstance) === null || _a === void 0 ? void 0 : _a.sendIQ(iq); });
214
214
  session.on('terminated', () => {
215
+ delete this.sessionsMap[session.id];
215
216
  this.webrtcSessions = this.webrtcSessions.filter(s => s.id !== session.id);
216
217
  });
217
218
  this.webrtcSessions.push(session);
218
- delete this.sessionsMap[session.id];
219
219
  this.logger.info('emitting sdp media-session (offer');
220
220
  this.applyEarlyIceCandidates(session);
221
221
  return this.emit(events.INCOMING_RTCSESSION, session);
@@ -4,7 +4,12 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- # [Unreleased](https://github.com/purecloudlabs/genesys-cloud-streaming-client/compare/v19.2.0...HEAD)
7
+ # [Unreleased](https://github.com/purecloudlabs/genesys-cloud-streaming-client/compare/v19.2.1...HEAD)
8
+ ### Fixed
9
+ * [STREAM-262](https://inindca.atlassian.net/browse/STREAM-262) - Set the state of a GenesysCloudMediaSession to `ended` when a `terminate` is received (or we determine a hard closure of the PeerConnection is needed)
10
+ * [STREAM-582](https://inindca.atlassian.net/browse/STREAM-582) - Fix issue where `session-initiate` was not ignored when SDP-over-XMPP was turned on for a session.
11
+
12
+ # [v19.2.1](https://github.com/purecloudlabs/genesys-cloud-streaming-client/compare/v19.2.0...v19.2.1)
8
13
  ### Fixed
9
14
  * [STREAM-524](https://inindca.atlassian.net/browse/STREAM-524) - Fix issue where sdpOverXmpp flag could be overridden by a subsequent propose.
10
15
 
@@ -66,7 +66,6 @@ class GenesysCloudMediaSession {
66
66
  // if we have a state mismatch
67
67
  if (this.state !== 'ended' && ['failed', 'closed'].includes(this.peerConnection.connectionState)) {
68
68
  this.log('warn', 'state mismatch between session.state and peerConnection.connectionState, manually terminating the session', { sessionId: this.id, conversationId: this.conversationId, sessionType: this.sessionType });
69
- this.state = 'ended';
70
69
  this.onSessionTerminate();
71
70
  }
72
71
  }
@@ -171,7 +170,6 @@ class GenesysCloudMediaSession {
171
170
  }
172
171
  else if (connectionState === 'failed') {
173
172
  this.log('info', 'Connection was interrupted and failed to recover, cleaning up', { sessionId, conversationId, sessionType });
174
- this.state = 'ended';
175
173
  this.onSessionTerminate();
176
174
  }
177
175
  }
@@ -241,6 +239,7 @@ class GenesysCloudMediaSession {
241
239
  });
242
240
  }
243
241
  onSessionTerminate(reason) {
242
+ this.state = 'ended';
244
243
  if (this.peerConnection) {
245
244
  this.peerConnection.close();
246
245
  }
@@ -216,10 +216,10 @@ class WebrtcExtension extends events_1.EventEmitter {
216
216
  this.proxyStatsForSession(session);
217
217
  session.on('sendIq', (iq) => { var _a; return (_a = this.stanzaInstance) === null || _a === void 0 ? void 0 : _a.sendIQ(iq); });
218
218
  session.on('terminated', () => {
219
+ delete this.sessionsMap[session.id];
219
220
  this.webrtcSessions = this.webrtcSessions.filter(s => s.id !== session.id);
220
221
  });
221
222
  this.webrtcSessions.push(session);
222
- delete this.sessionsMap[session.id];
223
223
  this.logger.info('emitting sdp media-session (offer');
224
224
  this.applyEarlyIceCandidates(session);
225
225
  return this.emit(events.INCOMING_RTCSESSION, session);