@whereby.com/media 8.3.3 → 8.3.4

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.
package/dist/index.cjs CHANGED
@@ -622,6 +622,15 @@ class Session {
622
622
  });
623
623
  }
624
624
  handleAnswer(message) {
625
+ if (this.pc.signalingState !== "have-local-offer") {
626
+ logger$a.warn("Ignoring stale SDP answer for client %s (signalingState: %s)", this.clientId, this.pc.signalingState);
627
+ this._incrementAnalyticMetric("P2PStaleAnswerIgnored");
628
+ rtcStats.sendEvent("P2PStaleAnswerIgnored", {
629
+ clientId: this.clientId,
630
+ signalingState: this.pc.signalingState,
631
+ });
632
+ return Promise.resolve();
633
+ }
625
634
  const sdp = filterMsidSemantic(message.sdp);
626
635
  const desc = { type: message.type, sdp };
627
636
  return this._setRemoteDescription(desc).then(() => {
@@ -2543,6 +2552,7 @@ class P2pRtcManager {
2543
2552
  numPcSldFailure: 0,
2544
2553
  numPcOnAnswerFailure: 0,
2545
2554
  numPcOnOfferFailure: 0,
2555
+ P2PStaleAnswerIgnored: 0,
2546
2556
  P2PReplaceTrackNoStream: 0,
2547
2557
  P2PReplaceTrackNewTrackNotInStream: 0,
2548
2558
  P2POnTrackNoStream: 0,
package/dist/index.d.cts CHANGED
@@ -1368,6 +1368,7 @@ type P2PAnalytics = {
1368
1368
  numPcOnAnswerFailure: number;
1369
1369
  numPcOnOfferFailure: number;
1370
1370
  numPcSldFailure: number;
1371
+ P2PStaleAnswerIgnored: number;
1371
1372
  P2PReplaceTrackNoStream: number;
1372
1373
  P2PReplaceTrackNewTrackNotInStream: number;
1373
1374
  P2POnTrackNoStream: number;
package/dist/index.d.mts CHANGED
@@ -1368,6 +1368,7 @@ type P2PAnalytics = {
1368
1368
  numPcOnAnswerFailure: number;
1369
1369
  numPcOnOfferFailure: number;
1370
1370
  numPcSldFailure: number;
1371
+ P2PStaleAnswerIgnored: number;
1371
1372
  P2PReplaceTrackNoStream: number;
1372
1373
  P2PReplaceTrackNewTrackNotInStream: number;
1373
1374
  P2POnTrackNoStream: number;
package/dist/index.d.ts CHANGED
@@ -1368,6 +1368,7 @@ type P2PAnalytics = {
1368
1368
  numPcOnAnswerFailure: number;
1369
1369
  numPcOnOfferFailure: number;
1370
1370
  numPcSldFailure: number;
1371
+ P2PStaleAnswerIgnored: number;
1371
1372
  P2PReplaceTrackNoStream: number;
1372
1373
  P2PReplaceTrackNewTrackNotInStream: number;
1373
1374
  P2POnTrackNoStream: number;
package/dist/index.mjs CHANGED
@@ -601,6 +601,15 @@ class Session {
601
601
  });
602
602
  }
603
603
  handleAnswer(message) {
604
+ if (this.pc.signalingState !== "have-local-offer") {
605
+ logger$a.warn("Ignoring stale SDP answer for client %s (signalingState: %s)", this.clientId, this.pc.signalingState);
606
+ this._incrementAnalyticMetric("P2PStaleAnswerIgnored");
607
+ rtcStats.sendEvent("P2PStaleAnswerIgnored", {
608
+ clientId: this.clientId,
609
+ signalingState: this.pc.signalingState,
610
+ });
611
+ return Promise.resolve();
612
+ }
604
613
  const sdp = filterMsidSemantic(message.sdp);
605
614
  const desc = { type: message.type, sdp };
606
615
  return this._setRemoteDescription(desc).then(() => {
@@ -2522,6 +2531,7 @@ class P2pRtcManager {
2522
2531
  numPcSldFailure: 0,
2523
2532
  numPcOnAnswerFailure: 0,
2524
2533
  numPcOnOfferFailure: 0,
2534
+ P2PStaleAnswerIgnored: 0,
2525
2535
  P2PReplaceTrackNoStream: 0,
2526
2536
  P2PReplaceTrackNewTrackNotInStream: 0,
2527
2537
  P2POnTrackNoStream: 0,
@@ -601,6 +601,15 @@ class Session {
601
601
  });
602
602
  }
603
603
  handleAnswer(message) {
604
+ if (this.pc.signalingState !== "have-local-offer") {
605
+ logger$a.warn("Ignoring stale SDP answer for client %s (signalingState: %s)", this.clientId, this.pc.signalingState);
606
+ this._incrementAnalyticMetric("P2PStaleAnswerIgnored");
607
+ rtcStats.sendEvent("P2PStaleAnswerIgnored", {
608
+ clientId: this.clientId,
609
+ signalingState: this.pc.signalingState,
610
+ });
611
+ return Promise.resolve();
612
+ }
604
613
  const sdp = filterMsidSemantic(message.sdp);
605
614
  const desc = { type: message.type, sdp };
606
615
  return this._setRemoteDescription(desc).then(() => {
@@ -2522,6 +2531,7 @@ class P2pRtcManager {
2522
2531
  numPcSldFailure: 0,
2523
2532
  numPcOnAnswerFailure: 0,
2524
2533
  numPcOnOfferFailure: 0,
2534
+ P2PStaleAnswerIgnored: 0,
2525
2535
  P2PReplaceTrackNoStream: 0,
2526
2536
  P2PReplaceTrackNewTrackNotInStream: 0,
2527
2537
  P2POnTrackNoStream: 0,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@whereby.com/media",
3
3
  "description": "Media library for Whereby",
4
- "version": "8.3.3",
4
+ "version": "8.3.4",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/whereby/sdk",
7
7
  "repository": {
@@ -61,11 +61,11 @@
61
61
  "prettier": "^3.5.3",
62
62
  "process": "^0.11.10",
63
63
  "typescript": "^5.8.3",
64
+ "@whereby.com/eslint-config": "0.1.0",
64
65
  "@whereby.com/jest-config": "0.1.0",
65
66
  "@whereby.com/prettier-config": "0.1.0",
66
67
  "@whereby.com/rollup-config": "0.1.1",
67
- "@whereby.com/tsconfig": "0.1.0",
68
- "@whereby.com/eslint-config": "0.1.0"
68
+ "@whereby.com/tsconfig": "0.1.0"
69
69
  },
70
70
  "engines": {
71
71
  "node": ">=16.0.0"