genesys-cloud-streaming-client 19.2.0 → 19.2.1-release.1

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.
@@ -63,7 +63,7 @@ class WebrtcExtension extends events_1.EventEmitter {
63
63
  max: 5,
64
64
  ttl: 1000 * 60 * 3
65
65
  });
66
- this.sdpOverXmpp = false;
66
+ this.sessionsMap = {};
67
67
  this.client = client;
68
68
  this.config = {
69
69
  allowIPv6: clientOptions.allowIPv6 === true,
@@ -219,6 +219,7 @@ class WebrtcExtension extends events_1.EventEmitter {
219
219
  this.webrtcSessions = this.webrtcSessions.filter(s => s.id !== session.id);
220
220
  });
221
221
  this.webrtcSessions.push(session);
222
+ delete this.sessionsMap[session.id];
222
223
  this.logger.info('emitting sdp media-session (offer');
223
224
  this.applyEarlyIceCandidates(session);
224
225
  return this.emit(events.INCOMING_RTCSESSION, session);
@@ -301,13 +302,14 @@ class WebrtcExtension extends events_1.EventEmitter {
301
302
  }
302
303
  }
303
304
  prepareSession(options) {
304
- if (this.sdpOverXmpp) {
305
+ if (options.sid && this.sessionsMap[options.sid]) {
305
306
  this.logger.debug('skipping creation of jingle webrtc session due to sdpOverXmpp');
306
307
  return;
307
308
  }
308
309
  const pendingSession = this.pendingSessions[options.sid];
309
310
  if (pendingSession) {
310
311
  delete this.pendingSessions[pendingSession.sessionId];
312
+ delete this.sessionsMap[pendingSession.sessionId];
311
313
  }
312
314
  const ignoreHostCandidatesForForceTurnFF = this.getIceTransportPolicy() === 'relay' && browserama_1.isFirefox;
313
315
  const gcSessionOpts = {
@@ -524,8 +526,10 @@ class WebrtcExtension extends events_1.EventEmitter {
524
526
  sdpOverXmpp: msg.propose.sdpOverXmpp,
525
527
  privAnswerMode: msg.propose.privAnswerMode
526
528
  };
527
- this.sdpOverXmpp = !!sessionInfo.sdpOverXmpp;
528
- this.pendingSessions[sessionId] = sessionInfo;
529
+ if (!isDuplicatePropose) {
530
+ this.sessionsMap[sessionInfo.id] = !!sessionInfo.sdpOverXmpp;
531
+ this.pendingSessions[sessionId] = sessionInfo;
532
+ }
529
533
  }
530
534
  if (sessionInfo.accepted) {
531
535
  this.logger.info('proceed already sent for this session, but sending another', loggingParams);
@@ -536,6 +540,7 @@ class WebrtcExtension extends events_1.EventEmitter {
536
540
  }
537
541
  handleRetract(sessionId) {
538
542
  this.logger.info('retract received', this.getLogDetailsForPendingSessionId(sessionId));
543
+ delete this.sessionsMap[sessionId];
539
544
  delete this.pendingSessions[sessionId];
540
545
  return this.emit(events.CANCEL_INCOMING_RTCSESSION, sessionId);
541
546
  }
@@ -633,6 +638,7 @@ class WebrtcExtension extends events_1.EventEmitter {
633
638
  this.emit(events.RTCSESSION_ERROR, 'Cannot reject session because it is not pending or does not exist');
634
639
  return;
635
640
  }
641
+ delete this.sessionsMap[sessionId];
636
642
  delete this.pendingSessions[sessionId];
637
643
  if (ignore) {
638
644
  this.ignoredSessions.set(sessionId, true);
@@ -708,6 +714,7 @@ class WebrtcExtension extends events_1.EventEmitter {
708
714
  }
709
715
  };
710
716
  delete this.pendingSessions[sessionId];
717
+ delete this.sessionsMap[sessionId];
711
718
  this.logger.info('sending jingle retract', logDetails);
712
719
  await this.stanzaInstance.send('message', retract); // send as Message
713
720
  this.logger.info('sent jingle retract', logDetails);