@whereby.com/media 2.6.7 → 2.6.8

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
@@ -2309,8 +2309,6 @@ class Session {
2309
2309
  const desc = { type: message.type, sdp };
2310
2310
  return this._setRemoteDescription(desc).then(() => {
2311
2311
  return setVideoBandwidthUsingSetParameters(this.pc, this.bandwidth);
2312
- }, (e) => {
2313
- logger$7.warn("Could not set remote description from remote answer: ", e);
2314
2312
  });
2315
2313
  }
2316
2314
  addIceCandidate(candidate) {
@@ -2611,9 +2609,6 @@ var rtcManagerEvents = {
2611
2609
  SFU_CONNECTION_INFO: "sfu_connection_info",
2612
2610
  COLOCATION_SPEAKER: "colocation_speaker",
2613
2611
  DOMINANT_SPEAKER: "dominant_speaker",
2614
- PC_SLD_FAILURE: "pc_sld_failure",
2615
- PC_ON_ANSWER_FAILURE: "pc_on_answer_failure",
2616
- PC_ON_OFFER_FAILURE: "pc_on_offer_failure",
2617
2612
  };
2618
2613
 
2619
2614
  var _a$2, _b$1, _c;
@@ -2656,10 +2651,12 @@ class P2pRtcManager {
2656
2651
  this._audioTrackOnEnded = () => {
2657
2652
  rtcStats.sendEvent("audio_ended", { unloading: unloading$1 });
2658
2653
  this._emit(rtcManagerEvents.MICROPHONE_STOPPED_WORKING, {});
2654
+ this.analytics.micTrackEndedCount++;
2659
2655
  };
2660
2656
  this._videoTrackOnEnded = () => {
2661
2657
  rtcStats.sendEvent("video_ended", { unloading: unloading$1 });
2662
2658
  this._emit(rtcManagerEvents.CAMERA_STOPPED_WORKING, {});
2659
+ this.analytics.camTrackEndedCount++;
2663
2660
  };
2664
2661
  this._updateAndScheduleMediaServersRefresh({
2665
2662
  sfuServer,
@@ -2680,6 +2677,11 @@ class P2pRtcManager {
2680
2677
  numIceIpv6TeredoSeen: 0,
2681
2678
  numIceIpv6SixToFour: 0,
2682
2679
  numIceMdnsSeen: 0,
2680
+ micTrackEndedCount: 0,
2681
+ camTrackEndedCount: 0,
2682
+ numPcSldFailure: 0,
2683
+ numPcOnAnswerFailure: 0,
2684
+ numPcOnOfferFailure: 0,
2683
2685
  };
2684
2686
  }
2685
2687
  numberOfPeerconnections() {
@@ -2808,7 +2810,7 @@ class P2pRtcManager {
2808
2810
  message: this._transformOutgoingSdp(answer),
2809
2811
  });
2810
2812
  })).catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
2811
- this._emit(rtcManagerEvents.PC_ON_OFFER_FAILURE, e);
2813
+ this.analytics.numPcOnOfferFailure++;
2812
2814
  });
2813
2815
  }),
2814
2816
  this._serverSocket.on(RELAY_MESSAGES.SDP_ANSWER, (data) => {
@@ -2820,7 +2822,8 @@ class P2pRtcManager {
2820
2822
  }
2821
2823
  const answer = this._transformIncomingSdp(data.message, session.pc);
2822
2824
  (_b = (_a = session.handleAnswer(answer)) === null || _a === void 0 ? void 0 : _a.catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
2823
- this._emit(rtcManagerEvents.PC_ON_ANSWER_FAILURE, e);
2825
+ logger$6.warn("Could not set remote description from remote answer: ", e);
2826
+ this.analytics.numPcOnAnswerFailure++;
2824
2827
  });
2825
2828
  }),
2826
2829
  this._serverSocket.on(PROTOCOL_RESPONSES.ROOM_JOINED, (payload) => {
@@ -3369,7 +3372,7 @@ class P2pRtcManager {
3369
3372
  pc.setLocalDescription(offer)
3370
3373
  .catch((e) => {
3371
3374
  logger$6.warn("RTCPeerConnection.setLocalDescription() failed with local offer", e);
3372
- this._emit(rtcManagerEvents.PC_SLD_FAILURE, e);
3375
+ this.analytics.numPcSldFailure++;
3373
3376
  throw e;
3374
3377
  })
3375
3378
  .then(() => {
@@ -4546,10 +4549,12 @@ class VegaRtcManager {
4546
4549
  this._audioTrackOnEnded = () => {
4547
4550
  rtcStats.sendEvent("audio_ended", { unloading });
4548
4551
  this._emitToPWA(rtcManagerEvents.MICROPHONE_STOPPED_WORKING, {});
4552
+ this.analytics.micTrackEndedCount++;
4549
4553
  };
4550
4554
  this._videoTrackOnEnded = () => {
4551
4555
  rtcStats.sendEvent("video_ended", { unloading });
4552
4556
  this._emitToPWA(rtcManagerEvents.CAMERA_STOPPED_WORKING, {});
4557
+ this.analytics.camTrackEndedCount++;
4553
4558
  };
4554
4559
  this._updateAndScheduleMediaServersRefresh({
4555
4560
  sfuServer,
@@ -4576,6 +4581,8 @@ class VegaRtcManager {
4576
4581
  vegaIceRestartMissingTransport: 0,
4577
4582
  vegaIceRestartWrongTransportId: 0,
4578
4583
  vegaNonErrorRejectionValueGUMError: 0,
4584
+ micTrackEndedCount: 0,
4585
+ camTrackEndedCount: 0,
4579
4586
  };
4580
4587
  }
4581
4588
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }) {
package/dist/index.d.cts CHANGED
@@ -381,6 +381,14 @@ type RtcEvents = {
381
381
  remote_stream_track_added: void;
382
382
  remote_stream_track_removed: void;
383
383
  };
384
+ type SDPOfferRelayMessage = {
385
+ clientId: string;
386
+ message: RTCSessionDescription;
387
+ };
388
+ type SDPAnswerRelayMessage = {
389
+ clientId: string;
390
+ message: RTCSessionDescription;
391
+ };
384
392
  type GetMediaConstraintsOptions = {
385
393
  disableAEC: boolean;
386
394
  disableAGC: boolean;
@@ -1090,6 +1098,11 @@ type P2PAnalytics = {
1090
1098
  numIceIpv6TeredoSeen: number;
1091
1099
  numIceIpv6SixToFour: number;
1092
1100
  numIceMdnsSeen: number;
1101
+ micTrackEndedCount: number;
1102
+ camTrackEndedCount: number;
1103
+ numPcOnAnswerFailure: number;
1104
+ numPcOnOfferFailure: number;
1105
+ numPcSldFailure: number;
1093
1106
  };
1094
1107
  type P2PAnalyticMetric = keyof P2PAnalytics;
1095
1108
  type P2PIncrementAnalyticMetric = (metric: P2PAnalyticMetric) => void;
@@ -1256,9 +1269,6 @@ declare const _default: {
1256
1269
  SFU_CONNECTION_INFO: string;
1257
1270
  COLOCATION_SPEAKER: string;
1258
1271
  DOMINANT_SPEAKER: string;
1259
- PC_SLD_FAILURE: string;
1260
- PC_ON_ANSWER_FAILURE: string;
1261
- PC_ON_OFFER_FAILURE: string;
1262
1272
  };
1263
1273
 
1264
1274
  declare function setVideoBandwidthUsingSetParameters(pc: any, bandwidth: any, logger?: any): any;
@@ -1339,8 +1349,8 @@ declare class Session {
1339
1349
  removeTrack(track: MediaStreamTrack): void;
1340
1350
  removeStream(stream: MediaStream): void;
1341
1351
  _setRemoteDescription(desc: any): any;
1342
- handleOffer(message: any): any;
1343
- handleAnswer(message: any): any;
1352
+ handleOffer(message: RTCSessionDescription): any;
1353
+ handleAnswer(message: RTCSessionDescription): any;
1344
1354
  addIceCandidate(candidate: any): void;
1345
1355
  canModifyPeerConnection(): boolean;
1346
1356
  close(): void;
@@ -1503,6 +1513,8 @@ type VegaAnalytics = {
1503
1513
  vegaIceRestartMissingTransport: number;
1504
1514
  vegaIceRestartWrongTransportId: number;
1505
1515
  vegaNonErrorRejectionValueGUMError: number;
1516
+ micTrackEndedCount: number;
1517
+ camTrackEndedCount: number;
1506
1518
  };
1507
1519
 
1508
1520
  type MediaStreamWhichMayHaveInboundId = MediaStream & { inboundId?: string };
@@ -1875,4 +1887,4 @@ declare class RtcStream {
1875
1887
  }
1876
1888
 
1877
1889
  export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1878
- export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent };
1890
+ export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, SDPAnswerRelayMessage, SDPOfferRelayMessage, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent };
package/dist/index.d.mts CHANGED
@@ -381,6 +381,14 @@ type RtcEvents = {
381
381
  remote_stream_track_added: void;
382
382
  remote_stream_track_removed: void;
383
383
  };
384
+ type SDPOfferRelayMessage = {
385
+ clientId: string;
386
+ message: RTCSessionDescription;
387
+ };
388
+ type SDPAnswerRelayMessage = {
389
+ clientId: string;
390
+ message: RTCSessionDescription;
391
+ };
384
392
  type GetMediaConstraintsOptions = {
385
393
  disableAEC: boolean;
386
394
  disableAGC: boolean;
@@ -1090,6 +1098,11 @@ type P2PAnalytics = {
1090
1098
  numIceIpv6TeredoSeen: number;
1091
1099
  numIceIpv6SixToFour: number;
1092
1100
  numIceMdnsSeen: number;
1101
+ micTrackEndedCount: number;
1102
+ camTrackEndedCount: number;
1103
+ numPcOnAnswerFailure: number;
1104
+ numPcOnOfferFailure: number;
1105
+ numPcSldFailure: number;
1093
1106
  };
1094
1107
  type P2PAnalyticMetric = keyof P2PAnalytics;
1095
1108
  type P2PIncrementAnalyticMetric = (metric: P2PAnalyticMetric) => void;
@@ -1256,9 +1269,6 @@ declare const _default: {
1256
1269
  SFU_CONNECTION_INFO: string;
1257
1270
  COLOCATION_SPEAKER: string;
1258
1271
  DOMINANT_SPEAKER: string;
1259
- PC_SLD_FAILURE: string;
1260
- PC_ON_ANSWER_FAILURE: string;
1261
- PC_ON_OFFER_FAILURE: string;
1262
1272
  };
1263
1273
 
1264
1274
  declare function setVideoBandwidthUsingSetParameters(pc: any, bandwidth: any, logger?: any): any;
@@ -1339,8 +1349,8 @@ declare class Session {
1339
1349
  removeTrack(track: MediaStreamTrack): void;
1340
1350
  removeStream(stream: MediaStream): void;
1341
1351
  _setRemoteDescription(desc: any): any;
1342
- handleOffer(message: any): any;
1343
- handleAnswer(message: any): any;
1352
+ handleOffer(message: RTCSessionDescription): any;
1353
+ handleAnswer(message: RTCSessionDescription): any;
1344
1354
  addIceCandidate(candidate: any): void;
1345
1355
  canModifyPeerConnection(): boolean;
1346
1356
  close(): void;
@@ -1503,6 +1513,8 @@ type VegaAnalytics = {
1503
1513
  vegaIceRestartMissingTransport: number;
1504
1514
  vegaIceRestartWrongTransportId: number;
1505
1515
  vegaNonErrorRejectionValueGUMError: number;
1516
+ micTrackEndedCount: number;
1517
+ camTrackEndedCount: number;
1506
1518
  };
1507
1519
 
1508
1520
  type MediaStreamWhichMayHaveInboundId = MediaStream & { inboundId?: string };
@@ -1875,4 +1887,4 @@ declare class RtcStream {
1875
1887
  }
1876
1888
 
1877
1889
  export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1878
- export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent };
1890
+ export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, SDPAnswerRelayMessage, SDPOfferRelayMessage, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent };
package/dist/index.d.ts CHANGED
@@ -381,6 +381,14 @@ type RtcEvents = {
381
381
  remote_stream_track_added: void;
382
382
  remote_stream_track_removed: void;
383
383
  };
384
+ type SDPOfferRelayMessage = {
385
+ clientId: string;
386
+ message: RTCSessionDescription;
387
+ };
388
+ type SDPAnswerRelayMessage = {
389
+ clientId: string;
390
+ message: RTCSessionDescription;
391
+ };
384
392
  type GetMediaConstraintsOptions = {
385
393
  disableAEC: boolean;
386
394
  disableAGC: boolean;
@@ -1090,6 +1098,11 @@ type P2PAnalytics = {
1090
1098
  numIceIpv6TeredoSeen: number;
1091
1099
  numIceIpv6SixToFour: number;
1092
1100
  numIceMdnsSeen: number;
1101
+ micTrackEndedCount: number;
1102
+ camTrackEndedCount: number;
1103
+ numPcOnAnswerFailure: number;
1104
+ numPcOnOfferFailure: number;
1105
+ numPcSldFailure: number;
1093
1106
  };
1094
1107
  type P2PAnalyticMetric = keyof P2PAnalytics;
1095
1108
  type P2PIncrementAnalyticMetric = (metric: P2PAnalyticMetric) => void;
@@ -1256,9 +1269,6 @@ declare const _default: {
1256
1269
  SFU_CONNECTION_INFO: string;
1257
1270
  COLOCATION_SPEAKER: string;
1258
1271
  DOMINANT_SPEAKER: string;
1259
- PC_SLD_FAILURE: string;
1260
- PC_ON_ANSWER_FAILURE: string;
1261
- PC_ON_OFFER_FAILURE: string;
1262
1272
  };
1263
1273
 
1264
1274
  declare function setVideoBandwidthUsingSetParameters(pc: any, bandwidth: any, logger?: any): any;
@@ -1339,8 +1349,8 @@ declare class Session {
1339
1349
  removeTrack(track: MediaStreamTrack): void;
1340
1350
  removeStream(stream: MediaStream): void;
1341
1351
  _setRemoteDescription(desc: any): any;
1342
- handleOffer(message: any): any;
1343
- handleAnswer(message: any): any;
1352
+ handleOffer(message: RTCSessionDescription): any;
1353
+ handleAnswer(message: RTCSessionDescription): any;
1344
1354
  addIceCandidate(candidate: any): void;
1345
1355
  canModifyPeerConnection(): boolean;
1346
1356
  close(): void;
@@ -1503,6 +1513,8 @@ type VegaAnalytics = {
1503
1513
  vegaIceRestartMissingTransport: number;
1504
1514
  vegaIceRestartWrongTransportId: number;
1505
1515
  vegaNonErrorRejectionValueGUMError: number;
1516
+ micTrackEndedCount: number;
1517
+ camTrackEndedCount: number;
1506
1518
  };
1507
1519
 
1508
1520
  type MediaStreamWhichMayHaveInboundId = MediaStream & { inboundId?: string };
@@ -1875,4 +1887,4 @@ declare class RtcStream {
1875
1887
  }
1876
1888
 
1877
1889
  export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1878
- export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent };
1890
+ export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, SDPAnswerRelayMessage, SDPOfferRelayMessage, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent };
package/dist/index.mjs CHANGED
@@ -2288,8 +2288,6 @@ class Session {
2288
2288
  const desc = { type: message.type, sdp };
2289
2289
  return this._setRemoteDescription(desc).then(() => {
2290
2290
  return setVideoBandwidthUsingSetParameters(this.pc, this.bandwidth);
2291
- }, (e) => {
2292
- logger$7.warn("Could not set remote description from remote answer: ", e);
2293
2291
  });
2294
2292
  }
2295
2293
  addIceCandidate(candidate) {
@@ -2590,9 +2588,6 @@ var rtcManagerEvents = {
2590
2588
  SFU_CONNECTION_INFO: "sfu_connection_info",
2591
2589
  COLOCATION_SPEAKER: "colocation_speaker",
2592
2590
  DOMINANT_SPEAKER: "dominant_speaker",
2593
- PC_SLD_FAILURE: "pc_sld_failure",
2594
- PC_ON_ANSWER_FAILURE: "pc_on_answer_failure",
2595
- PC_ON_OFFER_FAILURE: "pc_on_offer_failure",
2596
2591
  };
2597
2592
 
2598
2593
  var _a$2, _b$1, _c;
@@ -2635,10 +2630,12 @@ class P2pRtcManager {
2635
2630
  this._audioTrackOnEnded = () => {
2636
2631
  rtcStats.sendEvent("audio_ended", { unloading: unloading$1 });
2637
2632
  this._emit(rtcManagerEvents.MICROPHONE_STOPPED_WORKING, {});
2633
+ this.analytics.micTrackEndedCount++;
2638
2634
  };
2639
2635
  this._videoTrackOnEnded = () => {
2640
2636
  rtcStats.sendEvent("video_ended", { unloading: unloading$1 });
2641
2637
  this._emit(rtcManagerEvents.CAMERA_STOPPED_WORKING, {});
2638
+ this.analytics.camTrackEndedCount++;
2642
2639
  };
2643
2640
  this._updateAndScheduleMediaServersRefresh({
2644
2641
  sfuServer,
@@ -2659,6 +2656,11 @@ class P2pRtcManager {
2659
2656
  numIceIpv6TeredoSeen: 0,
2660
2657
  numIceIpv6SixToFour: 0,
2661
2658
  numIceMdnsSeen: 0,
2659
+ micTrackEndedCount: 0,
2660
+ camTrackEndedCount: 0,
2661
+ numPcSldFailure: 0,
2662
+ numPcOnAnswerFailure: 0,
2663
+ numPcOnOfferFailure: 0,
2662
2664
  };
2663
2665
  }
2664
2666
  numberOfPeerconnections() {
@@ -2787,7 +2789,7 @@ class P2pRtcManager {
2787
2789
  message: this._transformOutgoingSdp(answer),
2788
2790
  });
2789
2791
  })).catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
2790
- this._emit(rtcManagerEvents.PC_ON_OFFER_FAILURE, e);
2792
+ this.analytics.numPcOnOfferFailure++;
2791
2793
  });
2792
2794
  }),
2793
2795
  this._serverSocket.on(RELAY_MESSAGES.SDP_ANSWER, (data) => {
@@ -2799,7 +2801,8 @@ class P2pRtcManager {
2799
2801
  }
2800
2802
  const answer = this._transformIncomingSdp(data.message, session.pc);
2801
2803
  (_b = (_a = session.handleAnswer(answer)) === null || _a === void 0 ? void 0 : _a.catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
2802
- this._emit(rtcManagerEvents.PC_ON_ANSWER_FAILURE, e);
2804
+ logger$6.warn("Could not set remote description from remote answer: ", e);
2805
+ this.analytics.numPcOnAnswerFailure++;
2803
2806
  });
2804
2807
  }),
2805
2808
  this._serverSocket.on(PROTOCOL_RESPONSES.ROOM_JOINED, (payload) => {
@@ -3348,7 +3351,7 @@ class P2pRtcManager {
3348
3351
  pc.setLocalDescription(offer)
3349
3352
  .catch((e) => {
3350
3353
  logger$6.warn("RTCPeerConnection.setLocalDescription() failed with local offer", e);
3351
- this._emit(rtcManagerEvents.PC_SLD_FAILURE, e);
3354
+ this.analytics.numPcSldFailure++;
3352
3355
  throw e;
3353
3356
  })
3354
3357
  .then(() => {
@@ -4525,10 +4528,12 @@ class VegaRtcManager {
4525
4528
  this._audioTrackOnEnded = () => {
4526
4529
  rtcStats.sendEvent("audio_ended", { unloading });
4527
4530
  this._emitToPWA(rtcManagerEvents.MICROPHONE_STOPPED_WORKING, {});
4531
+ this.analytics.micTrackEndedCount++;
4528
4532
  };
4529
4533
  this._videoTrackOnEnded = () => {
4530
4534
  rtcStats.sendEvent("video_ended", { unloading });
4531
4535
  this._emitToPWA(rtcManagerEvents.CAMERA_STOPPED_WORKING, {});
4536
+ this.analytics.camTrackEndedCount++;
4532
4537
  };
4533
4538
  this._updateAndScheduleMediaServersRefresh({
4534
4539
  sfuServer,
@@ -4555,6 +4560,8 @@ class VegaRtcManager {
4555
4560
  vegaIceRestartMissingTransport: 0,
4556
4561
  vegaIceRestartWrongTransportId: 0,
4557
4562
  vegaNonErrorRejectionValueGUMError: 0,
4563
+ micTrackEndedCount: 0,
4564
+ camTrackEndedCount: 0,
4558
4565
  };
4559
4566
  }
4560
4567
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }) {
@@ -2288,8 +2288,6 @@ class Session {
2288
2288
  const desc = { type: message.type, sdp };
2289
2289
  return this._setRemoteDescription(desc).then(() => {
2290
2290
  return setVideoBandwidthUsingSetParameters(this.pc, this.bandwidth);
2291
- }, (e) => {
2292
- logger$7.warn("Could not set remote description from remote answer: ", e);
2293
2291
  });
2294
2292
  }
2295
2293
  addIceCandidate(candidate) {
@@ -2590,9 +2588,6 @@ var rtcManagerEvents = {
2590
2588
  SFU_CONNECTION_INFO: "sfu_connection_info",
2591
2589
  COLOCATION_SPEAKER: "colocation_speaker",
2592
2590
  DOMINANT_SPEAKER: "dominant_speaker",
2593
- PC_SLD_FAILURE: "pc_sld_failure",
2594
- PC_ON_ANSWER_FAILURE: "pc_on_answer_failure",
2595
- PC_ON_OFFER_FAILURE: "pc_on_offer_failure",
2596
2591
  };
2597
2592
 
2598
2593
  var _a$2, _b$1, _c;
@@ -2635,10 +2630,12 @@ class P2pRtcManager {
2635
2630
  this._audioTrackOnEnded = () => {
2636
2631
  rtcStats.sendEvent("audio_ended", { unloading: unloading$1 });
2637
2632
  this._emit(rtcManagerEvents.MICROPHONE_STOPPED_WORKING, {});
2633
+ this.analytics.micTrackEndedCount++;
2638
2634
  };
2639
2635
  this._videoTrackOnEnded = () => {
2640
2636
  rtcStats.sendEvent("video_ended", { unloading: unloading$1 });
2641
2637
  this._emit(rtcManagerEvents.CAMERA_STOPPED_WORKING, {});
2638
+ this.analytics.camTrackEndedCount++;
2642
2639
  };
2643
2640
  this._updateAndScheduleMediaServersRefresh({
2644
2641
  sfuServer,
@@ -2659,6 +2656,11 @@ class P2pRtcManager {
2659
2656
  numIceIpv6TeredoSeen: 0,
2660
2657
  numIceIpv6SixToFour: 0,
2661
2658
  numIceMdnsSeen: 0,
2659
+ micTrackEndedCount: 0,
2660
+ camTrackEndedCount: 0,
2661
+ numPcSldFailure: 0,
2662
+ numPcOnAnswerFailure: 0,
2663
+ numPcOnOfferFailure: 0,
2662
2664
  };
2663
2665
  }
2664
2666
  numberOfPeerconnections() {
@@ -2787,7 +2789,7 @@ class P2pRtcManager {
2787
2789
  message: this._transformOutgoingSdp(answer),
2788
2790
  });
2789
2791
  })).catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
2790
- this._emit(rtcManagerEvents.PC_ON_OFFER_FAILURE, e);
2792
+ this.analytics.numPcOnOfferFailure++;
2791
2793
  });
2792
2794
  }),
2793
2795
  this._serverSocket.on(RELAY_MESSAGES.SDP_ANSWER, (data) => {
@@ -2799,7 +2801,8 @@ class P2pRtcManager {
2799
2801
  }
2800
2802
  const answer = this._transformIncomingSdp(data.message, session.pc);
2801
2803
  (_b = (_a = session.handleAnswer(answer)) === null || _a === void 0 ? void 0 : _a.catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
2802
- this._emit(rtcManagerEvents.PC_ON_ANSWER_FAILURE, e);
2804
+ logger$6.warn("Could not set remote description from remote answer: ", e);
2805
+ this.analytics.numPcOnAnswerFailure++;
2803
2806
  });
2804
2807
  }),
2805
2808
  this._serverSocket.on(PROTOCOL_RESPONSES.ROOM_JOINED, (payload) => {
@@ -3348,7 +3351,7 @@ class P2pRtcManager {
3348
3351
  pc.setLocalDescription(offer)
3349
3352
  .catch((e) => {
3350
3353
  logger$6.warn("RTCPeerConnection.setLocalDescription() failed with local offer", e);
3351
- this._emit(rtcManagerEvents.PC_SLD_FAILURE, e);
3354
+ this.analytics.numPcSldFailure++;
3352
3355
  throw e;
3353
3356
  })
3354
3357
  .then(() => {
@@ -4525,10 +4528,12 @@ class VegaRtcManager {
4525
4528
  this._audioTrackOnEnded = () => {
4526
4529
  rtcStats.sendEvent("audio_ended", { unloading });
4527
4530
  this._emitToPWA(rtcManagerEvents.MICROPHONE_STOPPED_WORKING, {});
4531
+ this.analytics.micTrackEndedCount++;
4528
4532
  };
4529
4533
  this._videoTrackOnEnded = () => {
4530
4534
  rtcStats.sendEvent("video_ended", { unloading });
4531
4535
  this._emitToPWA(rtcManagerEvents.CAMERA_STOPPED_WORKING, {});
4536
+ this.analytics.camTrackEndedCount++;
4532
4537
  };
4533
4538
  this._updateAndScheduleMediaServersRefresh({
4534
4539
  sfuServer,
@@ -4555,6 +4560,8 @@ class VegaRtcManager {
4555
4560
  vegaIceRestartMissingTransport: 0,
4556
4561
  vegaIceRestartWrongTransportId: 0,
4557
4562
  vegaNonErrorRejectionValueGUMError: 0,
4563
+ micTrackEndedCount: 0,
4564
+ camTrackEndedCount: 0,
4558
4565
  };
4559
4566
  }
4560
4567
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }) {
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": "2.6.7",
4
+ "version": "2.6.8",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/whereby/sdk",
7
7
  "repository": {