@whereby.com/media 2.8.4 → 2.8.5
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 +37 -21
- package/dist/index.d.cts +17 -12
- package/dist/index.d.mts +17 -12
- package/dist/index.d.ts +17 -12
- package/dist/index.mjs +37 -21
- package/dist/legacy-esm.js +37 -21
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2019,7 +2019,7 @@ const adapter$5 = (_a$5 = adapterRaw.default) !== null && _a$5 !== void 0 ? _a$5
|
|
|
2019
2019
|
const logger$8 = new Logger();
|
|
2020
2020
|
const browserName$2 = (_b$2 = adapter$5.browserDetails) === null || _b$2 === void 0 ? void 0 : _b$2.browser;
|
|
2021
2021
|
const browserVersion$1 = adapter$5.browserDetails.version;
|
|
2022
|
-
function setCodecPreferenceSDP(sdp, redOn) {
|
|
2022
|
+
function setCodecPreferenceSDP({ sdp, redOn, incrementAnalyticMetric }) {
|
|
2023
2023
|
var _a, _b;
|
|
2024
2024
|
try {
|
|
2025
2025
|
const sdpObject = sdpTransform__namespace.parse(sdp);
|
|
@@ -2057,7 +2057,10 @@ function setCodecPreferenceSDP(sdp, redOn) {
|
|
|
2057
2057
|
return newSdp;
|
|
2058
2058
|
}
|
|
2059
2059
|
catch (error) {
|
|
2060
|
+
incrementAnalyticMetric("P2PSetCodecPreferenceError");
|
|
2061
|
+
rtcStats.sendEvent("P2PSetCodecPreferenceError", { error });
|
|
2060
2062
|
logger$8.error("setCodecPreferenceSDP error:", error);
|
|
2063
|
+
return sdp;
|
|
2061
2064
|
}
|
|
2062
2065
|
}
|
|
2063
2066
|
function cleanSdp(sdp) {
|
|
@@ -2345,25 +2348,35 @@ class Session {
|
|
|
2345
2348
|
this.earlyIceCandidates = [];
|
|
2346
2349
|
});
|
|
2347
2350
|
}
|
|
2348
|
-
handleOffer(
|
|
2351
|
+
handleOffer(offer) {
|
|
2349
2352
|
if (!this.canModifyPeerConnection()) {
|
|
2350
2353
|
return new Promise((resolve) => {
|
|
2351
|
-
this.pending.push(() => this.handleOffer(
|
|
2354
|
+
this.pending.push(() => this.handleOffer(offer).then(resolve));
|
|
2352
2355
|
});
|
|
2353
2356
|
}
|
|
2354
2357
|
this.isOperationPending = true;
|
|
2355
|
-
let sdp =
|
|
2358
|
+
let sdp = offer.sdp;
|
|
2356
2359
|
sdp = filterMidExtension(sdp);
|
|
2357
2360
|
sdp = filterMsidSemantic(sdp);
|
|
2358
|
-
const desc = { type:
|
|
2361
|
+
const desc = { type: offer.type, sdp };
|
|
2359
2362
|
let answerToSignal;
|
|
2360
2363
|
return this._setRemoteDescription(desc)
|
|
2361
2364
|
.then(() => {
|
|
2362
2365
|
return this.pc.createAnswer();
|
|
2363
2366
|
})
|
|
2364
2367
|
.then((answer) => {
|
|
2365
|
-
|
|
2366
|
-
|
|
2368
|
+
if (!answer.sdp) {
|
|
2369
|
+
this._incrementAnalyticMetric("P2PCreateAnswerNoSDP");
|
|
2370
|
+
rtcStats.sendEvent("P2PCreateAnswerNoSDP", {});
|
|
2371
|
+
throw new Error("SDP undefined while creating answer");
|
|
2372
|
+
}
|
|
2373
|
+
else {
|
|
2374
|
+
answerToSignal = {
|
|
2375
|
+
sdp: answer.sdp,
|
|
2376
|
+
type: answer.type,
|
|
2377
|
+
};
|
|
2378
|
+
return this.pc.setLocalDescription(answer);
|
|
2379
|
+
}
|
|
2367
2380
|
})
|
|
2368
2381
|
.then(() => {
|
|
2369
2382
|
return setVideoBandwidthUsingSetParameters(this.pc, this.bandwidth);
|
|
@@ -2683,6 +2696,9 @@ class P2pRtcManager {
|
|
|
2683
2696
|
P2PReplaceTrackSourceKindNotFound: 0,
|
|
2684
2697
|
P2PRemoveStreamNoPC: 0,
|
|
2685
2698
|
P2POnTrackNoStream: 0,
|
|
2699
|
+
P2PSetCodecPreferenceError: 0,
|
|
2700
|
+
P2PCreateOfferNoSDP: 0,
|
|
2701
|
+
P2PCreateAnswerNoSDP: 0,
|
|
2686
2702
|
};
|
|
2687
2703
|
}
|
|
2688
2704
|
numberOfPeerconnections() {
|
|
@@ -2803,13 +2819,12 @@ class P2pRtcManager {
|
|
|
2803
2819
|
logger$6.warn("No RTCPeerConnection on SDP_OFFER", data);
|
|
2804
2820
|
return;
|
|
2805
2821
|
}
|
|
2806
|
-
const offer = this._transformIncomingSdp(data.message);
|
|
2807
2822
|
(_b = (_a = session
|
|
2808
|
-
.handleOffer(
|
|
2823
|
+
.handleOffer(data.message)
|
|
2809
2824
|
.then((answer) => {
|
|
2810
2825
|
this._emitServerEvent(RELAY_MESSAGES.SDP_ANSWER, {
|
|
2811
2826
|
receiverId: data.clientId,
|
|
2812
|
-
message:
|
|
2827
|
+
message: answer,
|
|
2813
2828
|
});
|
|
2814
2829
|
})).catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
|
|
2815
2830
|
this.analytics.numPcOnOfferFailure++;
|
|
@@ -2822,8 +2837,7 @@ class P2pRtcManager {
|
|
|
2822
2837
|
logger$6.warn("No RTCPeerConnection on SDP_ANSWER", data);
|
|
2823
2838
|
return;
|
|
2824
2839
|
}
|
|
2825
|
-
|
|
2826
|
-
(_b = (_a = session.handleAnswer(answer)) === null || _a === void 0 ? void 0 : _a.catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
|
|
2840
|
+
(_b = (_a = session.handleAnswer(data.message)) === null || _a === void 0 ? void 0 : _a.catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
|
|
2827
2841
|
logger$6.warn("Could not set remote description from remote answer: ", e);
|
|
2828
2842
|
this.analytics.numPcOnAnswerFailure++;
|
|
2829
2843
|
});
|
|
@@ -3002,13 +3016,6 @@ class P2pRtcManager {
|
|
|
3002
3016
|
const streamIds = this._getNonLocalCameraStreamIds();
|
|
3003
3017
|
return streamIds.length === 0 ? null : this.localStreams[streamIds[0]];
|
|
3004
3018
|
}
|
|
3005
|
-
_transformIncomingSdp(original) {
|
|
3006
|
-
const sdp = original.sdp ? original.sdp : original.sdpU;
|
|
3007
|
-
return { type: original.type, sdp };
|
|
3008
|
-
}
|
|
3009
|
-
_transformOutgoingSdp(original) {
|
|
3010
|
-
return { type: original.type, sdpU: original.sdp, sdp: original.sdp };
|
|
3011
|
-
}
|
|
3012
3019
|
_createSession({ clientId, initialBandwidth, isOfferer, peerConnectionId, }) {
|
|
3013
3020
|
if (!peerConnectionId) {
|
|
3014
3021
|
throw new Error("peerConnectionId is missing");
|
|
@@ -3373,10 +3380,19 @@ class P2pRtcManager {
|
|
|
3373
3380
|
this._setCodecPreferences(pc).then(() => pc
|
|
3374
3381
|
.createOffer(constraints || this.offerOptions)
|
|
3375
3382
|
.then((offer) => {
|
|
3383
|
+
if (!offer.sdp) {
|
|
3384
|
+
this.analytics.P2PCreateOfferNoSDP++;
|
|
3385
|
+
rtcStats.sendEvent("P2PCreateOfferNoSDP", {});
|
|
3386
|
+
throw new Error("SDP undefined while creating offer");
|
|
3387
|
+
}
|
|
3376
3388
|
if (rtpAbsCaptureTimeOn)
|
|
3377
3389
|
offer.sdp = addAbsCaptureTimeExtMap(offer.sdp);
|
|
3378
3390
|
if (browserName$1 === "firefox") {
|
|
3379
|
-
offer.sdp = setCodecPreferenceSDP(
|
|
3391
|
+
offer.sdp = setCodecPreferenceSDP({
|
|
3392
|
+
sdp: offer.sdp,
|
|
3393
|
+
redOn,
|
|
3394
|
+
incrementAnalyticMetric: (metric) => this.analytics[metric]++,
|
|
3395
|
+
});
|
|
3380
3396
|
}
|
|
3381
3397
|
if (cleanSdpOn)
|
|
3382
3398
|
offer.sdp = cleanSdp(offer.sdp);
|
|
@@ -3389,7 +3405,7 @@ class P2pRtcManager {
|
|
|
3389
3405
|
.then(() => {
|
|
3390
3406
|
this._emitServerEvent(RELAY_MESSAGES.SDP_OFFER, {
|
|
3391
3407
|
receiverId: clientId,
|
|
3392
|
-
message:
|
|
3408
|
+
message: offer,
|
|
3393
3409
|
});
|
|
3394
3410
|
});
|
|
3395
3411
|
})
|
package/dist/index.d.cts
CHANGED
|
@@ -1015,14 +1015,13 @@ type RtcEvents = {
|
|
|
1015
1015
|
remote_stream_track_added: void;
|
|
1016
1016
|
remote_stream_track_removed: void;
|
|
1017
1017
|
};
|
|
1018
|
-
type
|
|
1018
|
+
type RTCSessionDescription = {
|
|
1019
1019
|
sdp: string;
|
|
1020
|
-
sdpU: string;
|
|
1021
1020
|
type: RTCSdpType;
|
|
1022
1021
|
};
|
|
1023
1022
|
type SDPRelayMessage = {
|
|
1024
1023
|
clientId: string;
|
|
1025
|
-
message:
|
|
1024
|
+
message: RTCSessionDescription;
|
|
1026
1025
|
};
|
|
1027
1026
|
type GetMediaConstraintsOptions = {
|
|
1028
1027
|
disableAEC: boolean;
|
|
@@ -1204,9 +1203,9 @@ declare class Session {
|
|
|
1204
1203
|
addTrack(track: MediaStreamTrack, stream?: MediaStream): void;
|
|
1205
1204
|
removeTrack(track: MediaStreamTrack): void;
|
|
1206
1205
|
removeStream(stream: MediaStream): void;
|
|
1207
|
-
_setRemoteDescription(desc:
|
|
1208
|
-
handleOffer(
|
|
1209
|
-
handleAnswer(message: RTCSessionDescription):
|
|
1206
|
+
_setRemoteDescription(desc: RTCSessionDescription): Promise<void>;
|
|
1207
|
+
handleOffer(offer: RTCSessionDescription): Promise<RTCSessionDescription>;
|
|
1208
|
+
handleAnswer(message: RTCSessionDescription): Promise<void>;
|
|
1210
1209
|
addIceCandidate(candidate: any): void;
|
|
1211
1210
|
canModifyPeerConnection(): boolean;
|
|
1212
1211
|
close(): void;
|
|
@@ -1252,6 +1251,9 @@ type P2PAnalytics = {
|
|
|
1252
1251
|
P2PReplaceTrackSourceKindNotFound: number;
|
|
1253
1252
|
P2PRemoveStreamNoPC: number;
|
|
1254
1253
|
P2POnTrackNoStream: number;
|
|
1254
|
+
P2PSetCodecPreferenceError: number;
|
|
1255
|
+
P2PCreateOfferNoSDP: number;
|
|
1256
|
+
P2PCreateAnswerNoSDP: number;
|
|
1255
1257
|
};
|
|
1256
1258
|
type P2PAnalyticMetric = keyof P2PAnalytics;
|
|
1257
1259
|
type P2PIncrementAnalyticMetric = (metric: P2PAnalyticMetric) => void;
|
|
@@ -1324,8 +1326,6 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
1324
1326
|
_getNonLocalCameraStreamIds(): string[];
|
|
1325
1327
|
_isScreensharingLocally(): boolean;
|
|
1326
1328
|
_getFirstLocalNonCameraStream(): any;
|
|
1327
|
-
_transformIncomingSdp(original: UnifiedPlanSDP): RTCSessionDescription;
|
|
1328
|
-
_transformOutgoingSdp(original: RTCSessionDescription): UnifiedPlanSDP;
|
|
1329
1329
|
_createSession({ clientId, initialBandwidth, isOfferer, peerConnectionId, }: {
|
|
1330
1330
|
clientId: string;
|
|
1331
1331
|
initialBandwidth: any;
|
|
@@ -1348,7 +1348,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
1348
1348
|
_connect(clientId: string): Promise<Session>;
|
|
1349
1349
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
1350
1350
|
_setCodecPreferences(pc: RTCPeerConnection): Promise<void>;
|
|
1351
|
-
_negotiatePeerConnection(clientId: string, session:
|
|
1351
|
+
_negotiatePeerConnection(clientId: string, session: Session, constraints?: any): void;
|
|
1352
1352
|
_withForcedRenegotiation(session: Session, action: any): void;
|
|
1353
1353
|
_changeBandwidthForAllClients(isJoining: boolean): number;
|
|
1354
1354
|
_createP2pSession({ clientId, initialBandwidth, isOfferer, }: {
|
|
@@ -1402,7 +1402,7 @@ declare const _default: {
|
|
|
1402
1402
|
DOMINANT_SPEAKER: string;
|
|
1403
1403
|
};
|
|
1404
1404
|
|
|
1405
|
-
declare function setVideoBandwidthUsingSetParameters(pc:
|
|
1405
|
+
declare function setVideoBandwidthUsingSetParameters(pc: RTCPeerConnection, bandwidth: number, logger?: any): Promise<void>;
|
|
1406
1406
|
|
|
1407
1407
|
declare const rtcStats: {
|
|
1408
1408
|
sendEvent: (type: any, value: any) => void;
|
|
@@ -1417,7 +1417,12 @@ declare const rtcStats: {
|
|
|
1417
1417
|
};
|
|
1418
1418
|
};
|
|
1419
1419
|
|
|
1420
|
-
|
|
1420
|
+
interface SetCodecPreferenceSDPOptions {
|
|
1421
|
+
sdp: string;
|
|
1422
|
+
redOn: boolean;
|
|
1423
|
+
incrementAnalyticMetric: P2PIncrementAnalyticMetric;
|
|
1424
|
+
}
|
|
1425
|
+
declare function setCodecPreferenceSDP({ sdp, redOn, incrementAnalyticMetric }: SetCodecPreferenceSDPOptions): string;
|
|
1421
1426
|
declare function cleanSdp(sdp: string): string;
|
|
1422
1427
|
declare function maybeRejectNoH264(sdp: any): any;
|
|
1423
1428
|
declare function deprioritizeH264(sdp: any): string;
|
|
@@ -1924,4 +1929,4 @@ declare const STREAM_TYPES: {
|
|
|
1924
1929
|
};
|
|
1925
1930
|
|
|
1926
1931
|
export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, 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, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
|
|
1927
|
-
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, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, SDPRelayMessage, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRequests, SignalRoom, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol,
|
|
1932
|
+
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, RTCSessionDescription, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, SDPRelayMessage, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRequests, SignalRoom, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent };
|
package/dist/index.d.mts
CHANGED
|
@@ -1015,14 +1015,13 @@ type RtcEvents = {
|
|
|
1015
1015
|
remote_stream_track_added: void;
|
|
1016
1016
|
remote_stream_track_removed: void;
|
|
1017
1017
|
};
|
|
1018
|
-
type
|
|
1018
|
+
type RTCSessionDescription = {
|
|
1019
1019
|
sdp: string;
|
|
1020
|
-
sdpU: string;
|
|
1021
1020
|
type: RTCSdpType;
|
|
1022
1021
|
};
|
|
1023
1022
|
type SDPRelayMessage = {
|
|
1024
1023
|
clientId: string;
|
|
1025
|
-
message:
|
|
1024
|
+
message: RTCSessionDescription;
|
|
1026
1025
|
};
|
|
1027
1026
|
type GetMediaConstraintsOptions = {
|
|
1028
1027
|
disableAEC: boolean;
|
|
@@ -1204,9 +1203,9 @@ declare class Session {
|
|
|
1204
1203
|
addTrack(track: MediaStreamTrack, stream?: MediaStream): void;
|
|
1205
1204
|
removeTrack(track: MediaStreamTrack): void;
|
|
1206
1205
|
removeStream(stream: MediaStream): void;
|
|
1207
|
-
_setRemoteDescription(desc:
|
|
1208
|
-
handleOffer(
|
|
1209
|
-
handleAnswer(message: RTCSessionDescription):
|
|
1206
|
+
_setRemoteDescription(desc: RTCSessionDescription): Promise<void>;
|
|
1207
|
+
handleOffer(offer: RTCSessionDescription): Promise<RTCSessionDescription>;
|
|
1208
|
+
handleAnswer(message: RTCSessionDescription): Promise<void>;
|
|
1210
1209
|
addIceCandidate(candidate: any): void;
|
|
1211
1210
|
canModifyPeerConnection(): boolean;
|
|
1212
1211
|
close(): void;
|
|
@@ -1252,6 +1251,9 @@ type P2PAnalytics = {
|
|
|
1252
1251
|
P2PReplaceTrackSourceKindNotFound: number;
|
|
1253
1252
|
P2PRemoveStreamNoPC: number;
|
|
1254
1253
|
P2POnTrackNoStream: number;
|
|
1254
|
+
P2PSetCodecPreferenceError: number;
|
|
1255
|
+
P2PCreateOfferNoSDP: number;
|
|
1256
|
+
P2PCreateAnswerNoSDP: number;
|
|
1255
1257
|
};
|
|
1256
1258
|
type P2PAnalyticMetric = keyof P2PAnalytics;
|
|
1257
1259
|
type P2PIncrementAnalyticMetric = (metric: P2PAnalyticMetric) => void;
|
|
@@ -1324,8 +1326,6 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
1324
1326
|
_getNonLocalCameraStreamIds(): string[];
|
|
1325
1327
|
_isScreensharingLocally(): boolean;
|
|
1326
1328
|
_getFirstLocalNonCameraStream(): any;
|
|
1327
|
-
_transformIncomingSdp(original: UnifiedPlanSDP): RTCSessionDescription;
|
|
1328
|
-
_transformOutgoingSdp(original: RTCSessionDescription): UnifiedPlanSDP;
|
|
1329
1329
|
_createSession({ clientId, initialBandwidth, isOfferer, peerConnectionId, }: {
|
|
1330
1330
|
clientId: string;
|
|
1331
1331
|
initialBandwidth: any;
|
|
@@ -1348,7 +1348,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
1348
1348
|
_connect(clientId: string): Promise<Session>;
|
|
1349
1349
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
1350
1350
|
_setCodecPreferences(pc: RTCPeerConnection): Promise<void>;
|
|
1351
|
-
_negotiatePeerConnection(clientId: string, session:
|
|
1351
|
+
_negotiatePeerConnection(clientId: string, session: Session, constraints?: any): void;
|
|
1352
1352
|
_withForcedRenegotiation(session: Session, action: any): void;
|
|
1353
1353
|
_changeBandwidthForAllClients(isJoining: boolean): number;
|
|
1354
1354
|
_createP2pSession({ clientId, initialBandwidth, isOfferer, }: {
|
|
@@ -1402,7 +1402,7 @@ declare const _default: {
|
|
|
1402
1402
|
DOMINANT_SPEAKER: string;
|
|
1403
1403
|
};
|
|
1404
1404
|
|
|
1405
|
-
declare function setVideoBandwidthUsingSetParameters(pc:
|
|
1405
|
+
declare function setVideoBandwidthUsingSetParameters(pc: RTCPeerConnection, bandwidth: number, logger?: any): Promise<void>;
|
|
1406
1406
|
|
|
1407
1407
|
declare const rtcStats: {
|
|
1408
1408
|
sendEvent: (type: any, value: any) => void;
|
|
@@ -1417,7 +1417,12 @@ declare const rtcStats: {
|
|
|
1417
1417
|
};
|
|
1418
1418
|
};
|
|
1419
1419
|
|
|
1420
|
-
|
|
1420
|
+
interface SetCodecPreferenceSDPOptions {
|
|
1421
|
+
sdp: string;
|
|
1422
|
+
redOn: boolean;
|
|
1423
|
+
incrementAnalyticMetric: P2PIncrementAnalyticMetric;
|
|
1424
|
+
}
|
|
1425
|
+
declare function setCodecPreferenceSDP({ sdp, redOn, incrementAnalyticMetric }: SetCodecPreferenceSDPOptions): string;
|
|
1421
1426
|
declare function cleanSdp(sdp: string): string;
|
|
1422
1427
|
declare function maybeRejectNoH264(sdp: any): any;
|
|
1423
1428
|
declare function deprioritizeH264(sdp: any): string;
|
|
@@ -1924,4 +1929,4 @@ declare const STREAM_TYPES: {
|
|
|
1924
1929
|
};
|
|
1925
1930
|
|
|
1926
1931
|
export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, 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, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
|
|
1927
|
-
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, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, SDPRelayMessage, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRequests, SignalRoom, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol,
|
|
1932
|
+
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, RTCSessionDescription, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, SDPRelayMessage, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRequests, SignalRoom, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent };
|
package/dist/index.d.ts
CHANGED
|
@@ -1015,14 +1015,13 @@ type RtcEvents = {
|
|
|
1015
1015
|
remote_stream_track_added: void;
|
|
1016
1016
|
remote_stream_track_removed: void;
|
|
1017
1017
|
};
|
|
1018
|
-
type
|
|
1018
|
+
type RTCSessionDescription = {
|
|
1019
1019
|
sdp: string;
|
|
1020
|
-
sdpU: string;
|
|
1021
1020
|
type: RTCSdpType;
|
|
1022
1021
|
};
|
|
1023
1022
|
type SDPRelayMessage = {
|
|
1024
1023
|
clientId: string;
|
|
1025
|
-
message:
|
|
1024
|
+
message: RTCSessionDescription;
|
|
1026
1025
|
};
|
|
1027
1026
|
type GetMediaConstraintsOptions = {
|
|
1028
1027
|
disableAEC: boolean;
|
|
@@ -1204,9 +1203,9 @@ declare class Session {
|
|
|
1204
1203
|
addTrack(track: MediaStreamTrack, stream?: MediaStream): void;
|
|
1205
1204
|
removeTrack(track: MediaStreamTrack): void;
|
|
1206
1205
|
removeStream(stream: MediaStream): void;
|
|
1207
|
-
_setRemoteDescription(desc:
|
|
1208
|
-
handleOffer(
|
|
1209
|
-
handleAnswer(message: RTCSessionDescription):
|
|
1206
|
+
_setRemoteDescription(desc: RTCSessionDescription): Promise<void>;
|
|
1207
|
+
handleOffer(offer: RTCSessionDescription): Promise<RTCSessionDescription>;
|
|
1208
|
+
handleAnswer(message: RTCSessionDescription): Promise<void>;
|
|
1210
1209
|
addIceCandidate(candidate: any): void;
|
|
1211
1210
|
canModifyPeerConnection(): boolean;
|
|
1212
1211
|
close(): void;
|
|
@@ -1252,6 +1251,9 @@ type P2PAnalytics = {
|
|
|
1252
1251
|
P2PReplaceTrackSourceKindNotFound: number;
|
|
1253
1252
|
P2PRemoveStreamNoPC: number;
|
|
1254
1253
|
P2POnTrackNoStream: number;
|
|
1254
|
+
P2PSetCodecPreferenceError: number;
|
|
1255
|
+
P2PCreateOfferNoSDP: number;
|
|
1256
|
+
P2PCreateAnswerNoSDP: number;
|
|
1255
1257
|
};
|
|
1256
1258
|
type P2PAnalyticMetric = keyof P2PAnalytics;
|
|
1257
1259
|
type P2PIncrementAnalyticMetric = (metric: P2PAnalyticMetric) => void;
|
|
@@ -1324,8 +1326,6 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
1324
1326
|
_getNonLocalCameraStreamIds(): string[];
|
|
1325
1327
|
_isScreensharingLocally(): boolean;
|
|
1326
1328
|
_getFirstLocalNonCameraStream(): any;
|
|
1327
|
-
_transformIncomingSdp(original: UnifiedPlanSDP): RTCSessionDescription;
|
|
1328
|
-
_transformOutgoingSdp(original: RTCSessionDescription): UnifiedPlanSDP;
|
|
1329
1329
|
_createSession({ clientId, initialBandwidth, isOfferer, peerConnectionId, }: {
|
|
1330
1330
|
clientId: string;
|
|
1331
1331
|
initialBandwidth: any;
|
|
@@ -1348,7 +1348,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
1348
1348
|
_connect(clientId: string): Promise<Session>;
|
|
1349
1349
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
1350
1350
|
_setCodecPreferences(pc: RTCPeerConnection): Promise<void>;
|
|
1351
|
-
_negotiatePeerConnection(clientId: string, session:
|
|
1351
|
+
_negotiatePeerConnection(clientId: string, session: Session, constraints?: any): void;
|
|
1352
1352
|
_withForcedRenegotiation(session: Session, action: any): void;
|
|
1353
1353
|
_changeBandwidthForAllClients(isJoining: boolean): number;
|
|
1354
1354
|
_createP2pSession({ clientId, initialBandwidth, isOfferer, }: {
|
|
@@ -1402,7 +1402,7 @@ declare const _default: {
|
|
|
1402
1402
|
DOMINANT_SPEAKER: string;
|
|
1403
1403
|
};
|
|
1404
1404
|
|
|
1405
|
-
declare function setVideoBandwidthUsingSetParameters(pc:
|
|
1405
|
+
declare function setVideoBandwidthUsingSetParameters(pc: RTCPeerConnection, bandwidth: number, logger?: any): Promise<void>;
|
|
1406
1406
|
|
|
1407
1407
|
declare const rtcStats: {
|
|
1408
1408
|
sendEvent: (type: any, value: any) => void;
|
|
@@ -1417,7 +1417,12 @@ declare const rtcStats: {
|
|
|
1417
1417
|
};
|
|
1418
1418
|
};
|
|
1419
1419
|
|
|
1420
|
-
|
|
1420
|
+
interface SetCodecPreferenceSDPOptions {
|
|
1421
|
+
sdp: string;
|
|
1422
|
+
redOn: boolean;
|
|
1423
|
+
incrementAnalyticMetric: P2PIncrementAnalyticMetric;
|
|
1424
|
+
}
|
|
1425
|
+
declare function setCodecPreferenceSDP({ sdp, redOn, incrementAnalyticMetric }: SetCodecPreferenceSDPOptions): string;
|
|
1421
1426
|
declare function cleanSdp(sdp: string): string;
|
|
1422
1427
|
declare function maybeRejectNoH264(sdp: any): any;
|
|
1423
1428
|
declare function deprioritizeH264(sdp: any): string;
|
|
@@ -1924,4 +1929,4 @@ declare const STREAM_TYPES: {
|
|
|
1924
1929
|
};
|
|
1925
1930
|
|
|
1926
1931
|
export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, 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, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
|
|
1927
|
-
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, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, SDPRelayMessage, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRequests, SignalRoom, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol,
|
|
1932
|
+
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, RTCSessionDescription, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, SDPRelayMessage, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRequests, SignalRoom, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent };
|
package/dist/index.mjs
CHANGED
|
@@ -1998,7 +1998,7 @@ const adapter$5 = (_a$5 = adapterRaw.default) !== null && _a$5 !== void 0 ? _a$5
|
|
|
1998
1998
|
const logger$8 = new Logger();
|
|
1999
1999
|
const browserName$2 = (_b$2 = adapter$5.browserDetails) === null || _b$2 === void 0 ? void 0 : _b$2.browser;
|
|
2000
2000
|
const browserVersion$1 = adapter$5.browserDetails.version;
|
|
2001
|
-
function setCodecPreferenceSDP(sdp, redOn) {
|
|
2001
|
+
function setCodecPreferenceSDP({ sdp, redOn, incrementAnalyticMetric }) {
|
|
2002
2002
|
var _a, _b;
|
|
2003
2003
|
try {
|
|
2004
2004
|
const sdpObject = sdpTransform.parse(sdp);
|
|
@@ -2036,7 +2036,10 @@ function setCodecPreferenceSDP(sdp, redOn) {
|
|
|
2036
2036
|
return newSdp;
|
|
2037
2037
|
}
|
|
2038
2038
|
catch (error) {
|
|
2039
|
+
incrementAnalyticMetric("P2PSetCodecPreferenceError");
|
|
2040
|
+
rtcStats.sendEvent("P2PSetCodecPreferenceError", { error });
|
|
2039
2041
|
logger$8.error("setCodecPreferenceSDP error:", error);
|
|
2042
|
+
return sdp;
|
|
2040
2043
|
}
|
|
2041
2044
|
}
|
|
2042
2045
|
function cleanSdp(sdp) {
|
|
@@ -2324,25 +2327,35 @@ class Session {
|
|
|
2324
2327
|
this.earlyIceCandidates = [];
|
|
2325
2328
|
});
|
|
2326
2329
|
}
|
|
2327
|
-
handleOffer(
|
|
2330
|
+
handleOffer(offer) {
|
|
2328
2331
|
if (!this.canModifyPeerConnection()) {
|
|
2329
2332
|
return new Promise((resolve) => {
|
|
2330
|
-
this.pending.push(() => this.handleOffer(
|
|
2333
|
+
this.pending.push(() => this.handleOffer(offer).then(resolve));
|
|
2331
2334
|
});
|
|
2332
2335
|
}
|
|
2333
2336
|
this.isOperationPending = true;
|
|
2334
|
-
let sdp =
|
|
2337
|
+
let sdp = offer.sdp;
|
|
2335
2338
|
sdp = filterMidExtension(sdp);
|
|
2336
2339
|
sdp = filterMsidSemantic(sdp);
|
|
2337
|
-
const desc = { type:
|
|
2340
|
+
const desc = { type: offer.type, sdp };
|
|
2338
2341
|
let answerToSignal;
|
|
2339
2342
|
return this._setRemoteDescription(desc)
|
|
2340
2343
|
.then(() => {
|
|
2341
2344
|
return this.pc.createAnswer();
|
|
2342
2345
|
})
|
|
2343
2346
|
.then((answer) => {
|
|
2344
|
-
|
|
2345
|
-
|
|
2347
|
+
if (!answer.sdp) {
|
|
2348
|
+
this._incrementAnalyticMetric("P2PCreateAnswerNoSDP");
|
|
2349
|
+
rtcStats.sendEvent("P2PCreateAnswerNoSDP", {});
|
|
2350
|
+
throw new Error("SDP undefined while creating answer");
|
|
2351
|
+
}
|
|
2352
|
+
else {
|
|
2353
|
+
answerToSignal = {
|
|
2354
|
+
sdp: answer.sdp,
|
|
2355
|
+
type: answer.type,
|
|
2356
|
+
};
|
|
2357
|
+
return this.pc.setLocalDescription(answer);
|
|
2358
|
+
}
|
|
2346
2359
|
})
|
|
2347
2360
|
.then(() => {
|
|
2348
2361
|
return setVideoBandwidthUsingSetParameters(this.pc, this.bandwidth);
|
|
@@ -2662,6 +2675,9 @@ class P2pRtcManager {
|
|
|
2662
2675
|
P2PReplaceTrackSourceKindNotFound: 0,
|
|
2663
2676
|
P2PRemoveStreamNoPC: 0,
|
|
2664
2677
|
P2POnTrackNoStream: 0,
|
|
2678
|
+
P2PSetCodecPreferenceError: 0,
|
|
2679
|
+
P2PCreateOfferNoSDP: 0,
|
|
2680
|
+
P2PCreateAnswerNoSDP: 0,
|
|
2665
2681
|
};
|
|
2666
2682
|
}
|
|
2667
2683
|
numberOfPeerconnections() {
|
|
@@ -2782,13 +2798,12 @@ class P2pRtcManager {
|
|
|
2782
2798
|
logger$6.warn("No RTCPeerConnection on SDP_OFFER", data);
|
|
2783
2799
|
return;
|
|
2784
2800
|
}
|
|
2785
|
-
const offer = this._transformIncomingSdp(data.message);
|
|
2786
2801
|
(_b = (_a = session
|
|
2787
|
-
.handleOffer(
|
|
2802
|
+
.handleOffer(data.message)
|
|
2788
2803
|
.then((answer) => {
|
|
2789
2804
|
this._emitServerEvent(RELAY_MESSAGES.SDP_ANSWER, {
|
|
2790
2805
|
receiverId: data.clientId,
|
|
2791
|
-
message:
|
|
2806
|
+
message: answer,
|
|
2792
2807
|
});
|
|
2793
2808
|
})).catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
|
|
2794
2809
|
this.analytics.numPcOnOfferFailure++;
|
|
@@ -2801,8 +2816,7 @@ class P2pRtcManager {
|
|
|
2801
2816
|
logger$6.warn("No RTCPeerConnection on SDP_ANSWER", data);
|
|
2802
2817
|
return;
|
|
2803
2818
|
}
|
|
2804
|
-
|
|
2805
|
-
(_b = (_a = session.handleAnswer(answer)) === null || _a === void 0 ? void 0 : _a.catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
|
|
2819
|
+
(_b = (_a = session.handleAnswer(data.message)) === null || _a === void 0 ? void 0 : _a.catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
|
|
2806
2820
|
logger$6.warn("Could not set remote description from remote answer: ", e);
|
|
2807
2821
|
this.analytics.numPcOnAnswerFailure++;
|
|
2808
2822
|
});
|
|
@@ -2981,13 +2995,6 @@ class P2pRtcManager {
|
|
|
2981
2995
|
const streamIds = this._getNonLocalCameraStreamIds();
|
|
2982
2996
|
return streamIds.length === 0 ? null : this.localStreams[streamIds[0]];
|
|
2983
2997
|
}
|
|
2984
|
-
_transformIncomingSdp(original) {
|
|
2985
|
-
const sdp = original.sdp ? original.sdp : original.sdpU;
|
|
2986
|
-
return { type: original.type, sdp };
|
|
2987
|
-
}
|
|
2988
|
-
_transformOutgoingSdp(original) {
|
|
2989
|
-
return { type: original.type, sdpU: original.sdp, sdp: original.sdp };
|
|
2990
|
-
}
|
|
2991
2998
|
_createSession({ clientId, initialBandwidth, isOfferer, peerConnectionId, }) {
|
|
2992
2999
|
if (!peerConnectionId) {
|
|
2993
3000
|
throw new Error("peerConnectionId is missing");
|
|
@@ -3352,10 +3359,19 @@ class P2pRtcManager {
|
|
|
3352
3359
|
this._setCodecPreferences(pc).then(() => pc
|
|
3353
3360
|
.createOffer(constraints || this.offerOptions)
|
|
3354
3361
|
.then((offer) => {
|
|
3362
|
+
if (!offer.sdp) {
|
|
3363
|
+
this.analytics.P2PCreateOfferNoSDP++;
|
|
3364
|
+
rtcStats.sendEvent("P2PCreateOfferNoSDP", {});
|
|
3365
|
+
throw new Error("SDP undefined while creating offer");
|
|
3366
|
+
}
|
|
3355
3367
|
if (rtpAbsCaptureTimeOn)
|
|
3356
3368
|
offer.sdp = addAbsCaptureTimeExtMap(offer.sdp);
|
|
3357
3369
|
if (browserName$1 === "firefox") {
|
|
3358
|
-
offer.sdp = setCodecPreferenceSDP(
|
|
3370
|
+
offer.sdp = setCodecPreferenceSDP({
|
|
3371
|
+
sdp: offer.sdp,
|
|
3372
|
+
redOn,
|
|
3373
|
+
incrementAnalyticMetric: (metric) => this.analytics[metric]++,
|
|
3374
|
+
});
|
|
3359
3375
|
}
|
|
3360
3376
|
if (cleanSdpOn)
|
|
3361
3377
|
offer.sdp = cleanSdp(offer.sdp);
|
|
@@ -3368,7 +3384,7 @@ class P2pRtcManager {
|
|
|
3368
3384
|
.then(() => {
|
|
3369
3385
|
this._emitServerEvent(RELAY_MESSAGES.SDP_OFFER, {
|
|
3370
3386
|
receiverId: clientId,
|
|
3371
|
-
message:
|
|
3387
|
+
message: offer,
|
|
3372
3388
|
});
|
|
3373
3389
|
});
|
|
3374
3390
|
})
|
package/dist/legacy-esm.js
CHANGED
|
@@ -1998,7 +1998,7 @@ const adapter$5 = (_a$5 = adapterRaw.default) !== null && _a$5 !== void 0 ? _a$5
|
|
|
1998
1998
|
const logger$8 = new Logger();
|
|
1999
1999
|
const browserName$2 = (_b$2 = adapter$5.browserDetails) === null || _b$2 === void 0 ? void 0 : _b$2.browser;
|
|
2000
2000
|
const browserVersion$1 = adapter$5.browserDetails.version;
|
|
2001
|
-
function setCodecPreferenceSDP(sdp, redOn) {
|
|
2001
|
+
function setCodecPreferenceSDP({ sdp, redOn, incrementAnalyticMetric }) {
|
|
2002
2002
|
var _a, _b;
|
|
2003
2003
|
try {
|
|
2004
2004
|
const sdpObject = sdpTransform.parse(sdp);
|
|
@@ -2036,7 +2036,10 @@ function setCodecPreferenceSDP(sdp, redOn) {
|
|
|
2036
2036
|
return newSdp;
|
|
2037
2037
|
}
|
|
2038
2038
|
catch (error) {
|
|
2039
|
+
incrementAnalyticMetric("P2PSetCodecPreferenceError");
|
|
2040
|
+
rtcStats.sendEvent("P2PSetCodecPreferenceError", { error });
|
|
2039
2041
|
logger$8.error("setCodecPreferenceSDP error:", error);
|
|
2042
|
+
return sdp;
|
|
2040
2043
|
}
|
|
2041
2044
|
}
|
|
2042
2045
|
function cleanSdp(sdp) {
|
|
@@ -2324,25 +2327,35 @@ class Session {
|
|
|
2324
2327
|
this.earlyIceCandidates = [];
|
|
2325
2328
|
});
|
|
2326
2329
|
}
|
|
2327
|
-
handleOffer(
|
|
2330
|
+
handleOffer(offer) {
|
|
2328
2331
|
if (!this.canModifyPeerConnection()) {
|
|
2329
2332
|
return new Promise((resolve) => {
|
|
2330
|
-
this.pending.push(() => this.handleOffer(
|
|
2333
|
+
this.pending.push(() => this.handleOffer(offer).then(resolve));
|
|
2331
2334
|
});
|
|
2332
2335
|
}
|
|
2333
2336
|
this.isOperationPending = true;
|
|
2334
|
-
let sdp =
|
|
2337
|
+
let sdp = offer.sdp;
|
|
2335
2338
|
sdp = filterMidExtension(sdp);
|
|
2336
2339
|
sdp = filterMsidSemantic(sdp);
|
|
2337
|
-
const desc = { type:
|
|
2340
|
+
const desc = { type: offer.type, sdp };
|
|
2338
2341
|
let answerToSignal;
|
|
2339
2342
|
return this._setRemoteDescription(desc)
|
|
2340
2343
|
.then(() => {
|
|
2341
2344
|
return this.pc.createAnswer();
|
|
2342
2345
|
})
|
|
2343
2346
|
.then((answer) => {
|
|
2344
|
-
|
|
2345
|
-
|
|
2347
|
+
if (!answer.sdp) {
|
|
2348
|
+
this._incrementAnalyticMetric("P2PCreateAnswerNoSDP");
|
|
2349
|
+
rtcStats.sendEvent("P2PCreateAnswerNoSDP", {});
|
|
2350
|
+
throw new Error("SDP undefined while creating answer");
|
|
2351
|
+
}
|
|
2352
|
+
else {
|
|
2353
|
+
answerToSignal = {
|
|
2354
|
+
sdp: answer.sdp,
|
|
2355
|
+
type: answer.type,
|
|
2356
|
+
};
|
|
2357
|
+
return this.pc.setLocalDescription(answer);
|
|
2358
|
+
}
|
|
2346
2359
|
})
|
|
2347
2360
|
.then(() => {
|
|
2348
2361
|
return setVideoBandwidthUsingSetParameters(this.pc, this.bandwidth);
|
|
@@ -2662,6 +2675,9 @@ class P2pRtcManager {
|
|
|
2662
2675
|
P2PReplaceTrackSourceKindNotFound: 0,
|
|
2663
2676
|
P2PRemoveStreamNoPC: 0,
|
|
2664
2677
|
P2POnTrackNoStream: 0,
|
|
2678
|
+
P2PSetCodecPreferenceError: 0,
|
|
2679
|
+
P2PCreateOfferNoSDP: 0,
|
|
2680
|
+
P2PCreateAnswerNoSDP: 0,
|
|
2665
2681
|
};
|
|
2666
2682
|
}
|
|
2667
2683
|
numberOfPeerconnections() {
|
|
@@ -2782,13 +2798,12 @@ class P2pRtcManager {
|
|
|
2782
2798
|
logger$6.warn("No RTCPeerConnection on SDP_OFFER", data);
|
|
2783
2799
|
return;
|
|
2784
2800
|
}
|
|
2785
|
-
const offer = this._transformIncomingSdp(data.message);
|
|
2786
2801
|
(_b = (_a = session
|
|
2787
|
-
.handleOffer(
|
|
2802
|
+
.handleOffer(data.message)
|
|
2788
2803
|
.then((answer) => {
|
|
2789
2804
|
this._emitServerEvent(RELAY_MESSAGES.SDP_ANSWER, {
|
|
2790
2805
|
receiverId: data.clientId,
|
|
2791
|
-
message:
|
|
2806
|
+
message: answer,
|
|
2792
2807
|
});
|
|
2793
2808
|
})).catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
|
|
2794
2809
|
this.analytics.numPcOnOfferFailure++;
|
|
@@ -2801,8 +2816,7 @@ class P2pRtcManager {
|
|
|
2801
2816
|
logger$6.warn("No RTCPeerConnection on SDP_ANSWER", data);
|
|
2802
2817
|
return;
|
|
2803
2818
|
}
|
|
2804
|
-
|
|
2805
|
-
(_b = (_a = session.handleAnswer(answer)) === null || _a === void 0 ? void 0 : _a.catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
|
|
2819
|
+
(_b = (_a = session.handleAnswer(data.message)) === null || _a === void 0 ? void 0 : _a.catch) === null || _b === void 0 ? void 0 : _b.call(_a, (e) => {
|
|
2806
2820
|
logger$6.warn("Could not set remote description from remote answer: ", e);
|
|
2807
2821
|
this.analytics.numPcOnAnswerFailure++;
|
|
2808
2822
|
});
|
|
@@ -2981,13 +2995,6 @@ class P2pRtcManager {
|
|
|
2981
2995
|
const streamIds = this._getNonLocalCameraStreamIds();
|
|
2982
2996
|
return streamIds.length === 0 ? null : this.localStreams[streamIds[0]];
|
|
2983
2997
|
}
|
|
2984
|
-
_transformIncomingSdp(original) {
|
|
2985
|
-
const sdp = original.sdp ? original.sdp : original.sdpU;
|
|
2986
|
-
return { type: original.type, sdp };
|
|
2987
|
-
}
|
|
2988
|
-
_transformOutgoingSdp(original) {
|
|
2989
|
-
return { type: original.type, sdpU: original.sdp, sdp: original.sdp };
|
|
2990
|
-
}
|
|
2991
2998
|
_createSession({ clientId, initialBandwidth, isOfferer, peerConnectionId, }) {
|
|
2992
2999
|
if (!peerConnectionId) {
|
|
2993
3000
|
throw new Error("peerConnectionId is missing");
|
|
@@ -3352,10 +3359,19 @@ class P2pRtcManager {
|
|
|
3352
3359
|
this._setCodecPreferences(pc).then(() => pc
|
|
3353
3360
|
.createOffer(constraints || this.offerOptions)
|
|
3354
3361
|
.then((offer) => {
|
|
3362
|
+
if (!offer.sdp) {
|
|
3363
|
+
this.analytics.P2PCreateOfferNoSDP++;
|
|
3364
|
+
rtcStats.sendEvent("P2PCreateOfferNoSDP", {});
|
|
3365
|
+
throw new Error("SDP undefined while creating offer");
|
|
3366
|
+
}
|
|
3355
3367
|
if (rtpAbsCaptureTimeOn)
|
|
3356
3368
|
offer.sdp = addAbsCaptureTimeExtMap(offer.sdp);
|
|
3357
3369
|
if (browserName$1 === "firefox") {
|
|
3358
|
-
offer.sdp = setCodecPreferenceSDP(
|
|
3370
|
+
offer.sdp = setCodecPreferenceSDP({
|
|
3371
|
+
sdp: offer.sdp,
|
|
3372
|
+
redOn,
|
|
3373
|
+
incrementAnalyticMetric: (metric) => this.analytics[metric]++,
|
|
3374
|
+
});
|
|
3359
3375
|
}
|
|
3360
3376
|
if (cleanSdpOn)
|
|
3361
3377
|
offer.sdp = cleanSdp(offer.sdp);
|
|
@@ -3368,7 +3384,7 @@ class P2pRtcManager {
|
|
|
3368
3384
|
.then(() => {
|
|
3369
3385
|
this._emitServerEvent(RELAY_MESSAGES.SDP_OFFER, {
|
|
3370
3386
|
receiverId: clientId,
|
|
3371
|
-
message:
|
|
3387
|
+
message: offer,
|
|
3372
3388
|
});
|
|
3373
3389
|
});
|
|
3374
3390
|
})
|