@whereby.com/media 1.20.0 → 1.21.0
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 +71 -54
- package/dist/index.d.cts +15 -6
- package/dist/index.d.mts +15 -6
- package/dist/index.d.ts +15 -6
- package/dist/index.mjs +70 -55
- package/dist/legacy-esm.js +70 -55
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -3028,18 +3028,62 @@ class ServerSocket {
|
|
|
3028
3028
|
}
|
|
3029
3029
|
}
|
|
3030
3030
|
|
|
3031
|
-
const maybeTurnOnly = (
|
|
3031
|
+
const maybeTurnOnly = (iceConfig, features) => {
|
|
3032
3032
|
if (!features.useOnlyTURN) {
|
|
3033
3033
|
return;
|
|
3034
3034
|
}
|
|
3035
|
-
|
|
3035
|
+
iceConfig.iceTransportPolicy = "relay";
|
|
3036
3036
|
const filter = {
|
|
3037
3037
|
onlyudp: /^turn:.*transport=udp$/,
|
|
3038
3038
|
onlytcp: /^turn:.*transport=tcp$/,
|
|
3039
3039
|
onlytls: /^turns:.*transport=tcp$/,
|
|
3040
3040
|
}[features.useOnlyTURN];
|
|
3041
3041
|
if (filter) {
|
|
3042
|
-
|
|
3042
|
+
iceConfig.iceServers = iceConfig.iceServers.filter((entry) => {
|
|
3043
|
+
if (entry.url && entry.url.match(filter))
|
|
3044
|
+
return entry;
|
|
3045
|
+
if (entry.urls) {
|
|
3046
|
+
entry.urls = (entry.urls.some ? entry.urls : [entry.urls]).filter((url) => url.match(filter));
|
|
3047
|
+
if (entry.urls.length > 0)
|
|
3048
|
+
return entry;
|
|
3049
|
+
}
|
|
3050
|
+
});
|
|
3051
|
+
}
|
|
3052
|
+
};
|
|
3053
|
+
const external_stun_servers = (iceConfig, features) => {
|
|
3054
|
+
if (features.addGoogleStunServers) {
|
|
3055
|
+
iceConfig.iceServers = [
|
|
3056
|
+
{ urls: "stun:stun.l.google.com:19302" },
|
|
3057
|
+
{ urls: "stun:stun2.l.google.com:19302" },
|
|
3058
|
+
...iceConfig.iceServers,
|
|
3059
|
+
];
|
|
3060
|
+
}
|
|
3061
|
+
if (features.addCloudflareStunServers) {
|
|
3062
|
+
iceConfig.iceServers = [
|
|
3063
|
+
{ urls: "stun:stun.cloudflare.com:3478" },
|
|
3064
|
+
{ urls: "stun:stun.cloudflare.com:53" },
|
|
3065
|
+
...iceConfig.iceServers,
|
|
3066
|
+
];
|
|
3067
|
+
}
|
|
3068
|
+
};
|
|
3069
|
+
const turnServerOverride = (iceServers, overrideHost) => {
|
|
3070
|
+
if (overrideHost && iceServers) {
|
|
3071
|
+
const host = overrideHost;
|
|
3072
|
+
const port = host.indexOf(":") > 0 ? "" : ":443";
|
|
3073
|
+
const override = ":" + host + port;
|
|
3074
|
+
return iceServers.map((original) => {
|
|
3075
|
+
const entry = Object.assign({}, original);
|
|
3076
|
+
if (entry.url) {
|
|
3077
|
+
entry.url = entry.url.replace(/:[^?]*/, override);
|
|
3078
|
+
}
|
|
3079
|
+
if (entry.urls) {
|
|
3080
|
+
entry.urls = entry.urls.map((url) => url.replace(/:[^?]*/, override));
|
|
3081
|
+
}
|
|
3082
|
+
return entry;
|
|
3083
|
+
});
|
|
3084
|
+
}
|
|
3085
|
+
else {
|
|
3086
|
+
return iceServers;
|
|
3043
3087
|
}
|
|
3044
3088
|
};
|
|
3045
3089
|
|
|
@@ -3098,7 +3142,7 @@ if (browserName$1 === "chrome") {
|
|
|
3098
3142
|
}
|
|
3099
3143
|
class P2pRtcManager {
|
|
3100
3144
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, }) {
|
|
3101
|
-
const { name, session, iceServers, sfuServer, mediaserverConfigTtlSeconds } = room;
|
|
3145
|
+
const { name, session, iceServers, turnServers, sfuServer, mediaserverConfigTtlSeconds } = room;
|
|
3102
3146
|
this._selfId = selfId;
|
|
3103
3147
|
this._roomName = name;
|
|
3104
3148
|
this._roomSessionId = session && session.id;
|
|
@@ -3125,7 +3169,8 @@ class P2pRtcManager {
|
|
|
3125
3169
|
};
|
|
3126
3170
|
this._updateAndScheduleMediaServersRefresh({
|
|
3127
3171
|
sfuServer,
|
|
3128
|
-
iceServers: iceServers.iceServers || [],
|
|
3172
|
+
iceServers: (iceServers === null || iceServers === void 0 ? void 0 : iceServers.iceServers) || [],
|
|
3173
|
+
turnServers: turnServers || [],
|
|
3129
3174
|
mediaserverConfigTtlSeconds,
|
|
3130
3175
|
});
|
|
3131
3176
|
this.totalSessionsCreated = 0;
|
|
@@ -3454,48 +3499,11 @@ class P2pRtcManager {
|
|
|
3454
3499
|
constraints.optional.push({ rtcStatsPeerId: peerConnectionId });
|
|
3455
3500
|
constraints.optional.push({ rtcStatsConferenceId: this._roomName });
|
|
3456
3501
|
const peerConnectionConfig = {
|
|
3457
|
-
iceServers: this._iceServers,
|
|
3502
|
+
iceServers: this._features.turnServersOn ? this._turnServers : this._iceServers,
|
|
3458
3503
|
};
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
const override = ":" + host + port;
|
|
3463
|
-
peerConnectionConfig.iceServers = peerConnectionConfig.iceServers.map((original) => {
|
|
3464
|
-
const entry = Object.assign({}, original);
|
|
3465
|
-
if (entry.url) {
|
|
3466
|
-
entry.url = entry.url.replace(/:[^?]*/, override);
|
|
3467
|
-
}
|
|
3468
|
-
if (entry.urls) {
|
|
3469
|
-
entry.urls = entry.urls.map((url) => url.replace(/:[^?]*/, override));
|
|
3470
|
-
}
|
|
3471
|
-
return entry;
|
|
3472
|
-
});
|
|
3473
|
-
}
|
|
3474
|
-
if (this._features.addGoogleStunServers) {
|
|
3475
|
-
peerConnectionConfig.iceServers = [
|
|
3476
|
-
...peerConnectionConfig.iceServers,
|
|
3477
|
-
{ urls: "stun:stun.l.google.com:19302" },
|
|
3478
|
-
{ urls: "stun:stun2.l.google.com:19302" },
|
|
3479
|
-
];
|
|
3480
|
-
}
|
|
3481
|
-
if (this._features.addCloudflareStunServers) {
|
|
3482
|
-
peerConnectionConfig.iceServers = [
|
|
3483
|
-
...peerConnectionConfig.iceServers,
|
|
3484
|
-
{ urls: "stun:stun.cloudflare.com:3478" },
|
|
3485
|
-
{ urls: "stun:stun.cloudflare.com:53" },
|
|
3486
|
-
];
|
|
3487
|
-
}
|
|
3488
|
-
if (this._features.useOnlyTURN) {
|
|
3489
|
-
peerConnectionConfig.iceTransportPolicy = "relay";
|
|
3490
|
-
const filter = {
|
|
3491
|
-
onlyudp: /^turn:.*transport=udp$/,
|
|
3492
|
-
onlytcp: /^turn:.*transport=tcp$/,
|
|
3493
|
-
onlytls: /^turns:.*transport=tcp$/,
|
|
3494
|
-
}[this._features.useOnlyTURN];
|
|
3495
|
-
if (filter) {
|
|
3496
|
-
peerConnectionConfig.iceServers = peerConnectionConfig.iceServers.filter((entry) => entry.url && entry.url.match(filter));
|
|
3497
|
-
}
|
|
3498
|
-
}
|
|
3504
|
+
peerConnectionConfig.iceServers = turnServerOverride(peerConnectionConfig.iceServers, this._features.turnServerOverrideHost);
|
|
3505
|
+
external_stun_servers(peerConnectionConfig, this._features);
|
|
3506
|
+
maybeTurnOnly(peerConnectionConfig, this._features);
|
|
3499
3507
|
if (browserName$1 === "chrome") {
|
|
3500
3508
|
peerConnectionConfig.sdpSemantics = "unified-plan";
|
|
3501
3509
|
}
|
|
@@ -3709,8 +3717,9 @@ class P2pRtcManager {
|
|
|
3709
3717
|
delete this.localStreams[streamId];
|
|
3710
3718
|
this._deleteEnabledLocalStreamId(streamId);
|
|
3711
3719
|
}
|
|
3712
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, mediaserverConfigTtlSeconds }) {
|
|
3720
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, mediaserverConfigTtlSeconds }) {
|
|
3713
3721
|
this._iceServers = iceServers;
|
|
3722
|
+
this._turnServers = turnServers;
|
|
3714
3723
|
this._sfuServer = sfuServer;
|
|
3715
3724
|
this._mediaserverConfigTtlSeconds = mediaserverConfigTtlSeconds;
|
|
3716
3725
|
this._clearMediaServersRefresh();
|
|
@@ -3778,7 +3787,7 @@ class P2pRtcManager {
|
|
|
3778
3787
|
this._negotiatePeerConnection(clientId, session, Object.assign({}, this.offerOptions, { iceRestart: true }));
|
|
3779
3788
|
}
|
|
3780
3789
|
}
|
|
3781
|
-
_setCodecPreferences(pc, { vp9On, av1On, redOn }) {
|
|
3790
|
+
_setCodecPreferences(pc, { vp9On, av1On, redOn, }) {
|
|
3782
3791
|
try {
|
|
3783
3792
|
const audioTransceivers = pc
|
|
3784
3793
|
.getTransceivers()
|
|
@@ -4941,7 +4950,7 @@ if (browserName === "chrome")
|
|
|
4941
4950
|
window.document.addEventListener("beforeunload", () => (unloading = true));
|
|
4942
4951
|
class VegaRtcManager {
|
|
4943
4952
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, eventClaim, }) {
|
|
4944
|
-
const { session, iceServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds } = room;
|
|
4953
|
+
const { session, iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds } = room;
|
|
4945
4954
|
this._selfId = selfId;
|
|
4946
4955
|
this._room = room;
|
|
4947
4956
|
this._roomSessionId = session === null || session === void 0 ? void 0 : session.id;
|
|
@@ -4994,7 +5003,8 @@ class VegaRtcManager {
|
|
|
4994
5003
|
this._updateAndScheduleMediaServersRefresh({
|
|
4995
5004
|
sfuServer,
|
|
4996
5005
|
sfuServers,
|
|
4997
|
-
iceServers: iceServers.iceServers || [],
|
|
5006
|
+
iceServers: (iceServers === null || iceServers === void 0 ? void 0 : iceServers.iceServers) || [],
|
|
5007
|
+
turnServers: turnServers || [],
|
|
4998
5008
|
mediaserverConfigTtlSeconds,
|
|
4999
5009
|
});
|
|
5000
5010
|
this._socketListenerDeregisterFunctions = [];
|
|
@@ -5008,9 +5018,10 @@ class VegaRtcManager {
|
|
|
5008
5018
|
});
|
|
5009
5019
|
this._networkIsDetectedUpBySignal = false;
|
|
5010
5020
|
}
|
|
5011
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }) {
|
|
5021
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }) {
|
|
5012
5022
|
var _a, _b, _c;
|
|
5013
5023
|
this._iceServers = iceServers;
|
|
5024
|
+
this._turnServers = turnServers;
|
|
5014
5025
|
this._sfuServer = sfuServer;
|
|
5015
5026
|
this._sfuServers = sfuServers;
|
|
5016
5027
|
if (!sfuServers && (sfuServer === null || sfuServer === void 0 ? void 0 : sfuServer.fallbackServers)) {
|
|
@@ -5024,8 +5035,12 @@ class VegaRtcManager {
|
|
|
5024
5035
|
this._sfuServers ||
|
|
5025
5036
|
this._features.sfuServerOverrideHost ||
|
|
5026
5037
|
sfuServer.url);
|
|
5027
|
-
|
|
5028
|
-
|
|
5038
|
+
const iceServersList = {
|
|
5039
|
+
iceServers: this._features.turnServersOn ? this._turnServers : this._iceServers,
|
|
5040
|
+
};
|
|
5041
|
+
iceServersList.iceServers = turnServerOverride(iceServersList.iceServers, this._features.turnServerOverrideHost);
|
|
5042
|
+
(_b = this._sendTransport) === null || _b === void 0 ? void 0 : _b.updateIceServers(iceServersList);
|
|
5043
|
+
(_c = this._receiveTransport) === null || _c === void 0 ? void 0 : _c.updateIceServers(iceServersList);
|
|
5029
5044
|
this._clearMediaServersRefresh();
|
|
5030
5045
|
if (!mediaserverConfigTtlSeconds) {
|
|
5031
5046
|
return;
|
|
@@ -5222,7 +5237,7 @@ class VegaRtcManager {
|
|
|
5222
5237
|
sctpSendBufferSize: 262144,
|
|
5223
5238
|
},
|
|
5224
5239
|
});
|
|
5225
|
-
transportOptions.iceServers = this._iceServers;
|
|
5240
|
+
transportOptions.iceServers = turnServerOverride(this._features.turnServersOn ? this._turnServers : this._iceServers, this._features.turnServerOverrideHost);
|
|
5226
5241
|
maybeTurnOnly(transportOptions, this._features);
|
|
5227
5242
|
const transport = (_a = this._mediasoupDevice) === null || _a === void 0 ? void 0 : _a[creator](transportOptions);
|
|
5228
5243
|
const onConnectionStateListener = (connectionState) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -8000,6 +8015,7 @@ exports.createWorker = createWorker;
|
|
|
8000
8015
|
exports.deprioritizeH264 = deprioritizeH264;
|
|
8001
8016
|
exports.detectMicrophoneNotWorking = detectMicrophoneNotWorking;
|
|
8002
8017
|
exports.enumerate = enumerate;
|
|
8018
|
+
exports.external_stun_servers = external_stun_servers;
|
|
8003
8019
|
exports.filterMidExtension = filterMidExtension;
|
|
8004
8020
|
exports.filterMsidSemantic = filterMsidSemantic;
|
|
8005
8021
|
exports.fromLocation = fromLocation;
|
|
@@ -8044,5 +8060,6 @@ exports.startPerformanceMonitor = startPerformanceMonitor;
|
|
|
8044
8060
|
exports.stopStreamTracks = stopStreamTracks;
|
|
8045
8061
|
exports.subscribeIssues = subscribeIssues;
|
|
8046
8062
|
exports.subscribeStats = subscribeStats;
|
|
8063
|
+
exports.turnServerOverride = turnServerOverride;
|
|
8047
8064
|
exports.variance = variance;
|
|
8048
8065
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.d.cts
CHANGED
|
@@ -458,6 +458,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
458
458
|
_videoTrackOnEnded: () => void;
|
|
459
459
|
totalSessionsCreated: number;
|
|
460
460
|
_iceServers: any;
|
|
461
|
+
_turnServers: any;
|
|
461
462
|
_sfuServer: any;
|
|
462
463
|
_mediaserverConfigTtlSeconds: any;
|
|
463
464
|
_fetchMediaServersTimer: any;
|
|
@@ -534,13 +535,13 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
534
535
|
_removeTrackFromPeerConnections(track: any): void;
|
|
535
536
|
_addLocalStream(streamId: string, stream: any): void;
|
|
536
537
|
_removeLocalStream(streamId: string): void;
|
|
537
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, mediaserverConfigTtlSeconds }: any): void;
|
|
538
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, mediaserverConfigTtlSeconds }: any): void;
|
|
538
539
|
_clearMediaServersRefresh(): void;
|
|
539
540
|
_monitorAudioTrack(track: any): void;
|
|
540
541
|
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
541
542
|
_connect(clientId: string): Promise<any>;
|
|
542
543
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
543
|
-
_setCodecPreferences(pc: RTCPeerConnection, { vp9On, av1On, redOn }: {
|
|
544
|
+
_setCodecPreferences(pc: RTCPeerConnection, { vp9On, av1On, redOn, }: {
|
|
544
545
|
vp9On?: boolean;
|
|
545
546
|
av1On?: boolean;
|
|
546
547
|
redOn?: boolean;
|
|
@@ -681,9 +682,14 @@ declare class ServerSocket {
|
|
|
681
682
|
getReconnectThreshold(): number | undefined;
|
|
682
683
|
}
|
|
683
684
|
|
|
684
|
-
declare const maybeTurnOnly: (
|
|
685
|
+
declare const maybeTurnOnly: (iceConfig: any, features: {
|
|
685
686
|
useOnlyTURN: string;
|
|
686
687
|
}) => void;
|
|
688
|
+
declare const external_stun_servers: (iceConfig: any, features: {
|
|
689
|
+
addGoogleStunServers: string;
|
|
690
|
+
addCloudflareStunServers: string;
|
|
691
|
+
}) => void;
|
|
692
|
+
declare const turnServerOverride: (iceServers: any, overrideHost: any) => any;
|
|
687
693
|
|
|
688
694
|
interface Credentials {
|
|
689
695
|
credentials: {
|
|
@@ -895,11 +901,12 @@ interface SpotlightRemovedEvent {
|
|
|
895
901
|
requestedByClientId: string;
|
|
896
902
|
}
|
|
897
903
|
interface LiveTranscriptionStartedEvent {
|
|
898
|
-
startedAt: string;
|
|
899
904
|
transcriptionId: string;
|
|
905
|
+
startedAt: string;
|
|
900
906
|
}
|
|
901
907
|
interface LiveTranscriptionStoppedEvent {
|
|
902
908
|
transcriptionId: string;
|
|
909
|
+
endedAt: string;
|
|
903
910
|
}
|
|
904
911
|
interface SignalEvents {
|
|
905
912
|
audio_enabled: AudioEnabledEvent;
|
|
@@ -1354,6 +1361,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1354
1361
|
_qualityMonitor: any;
|
|
1355
1362
|
_fetchMediaServersTimer: any;
|
|
1356
1363
|
_iceServers: any;
|
|
1364
|
+
_turnServers: any;
|
|
1357
1365
|
_sfuServer: any;
|
|
1358
1366
|
_sfuServers?: HostListEntryOptionalDC[];
|
|
1359
1367
|
_mediaserverConfigTtlSeconds: any;
|
|
@@ -1372,8 +1380,9 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1372
1380
|
features?: any;
|
|
1373
1381
|
eventClaim?: string;
|
|
1374
1382
|
});
|
|
1375
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }: {
|
|
1383
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }: {
|
|
1376
1384
|
iceServers: any;
|
|
1385
|
+
turnServers: any;
|
|
1377
1386
|
sfuServer: any;
|
|
1378
1387
|
sfuServers: any;
|
|
1379
1388
|
mediaserverConfigTtlSeconds: any;
|
|
@@ -1649,4 +1658,4 @@ declare class RtcStream {
|
|
|
1649
1658
|
static getTypeFromId(id: string): string;
|
|
1650
1659
|
}
|
|
1651
1660
|
|
|
1652
|
-
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Codec, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecsByMimeType, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
1661
|
+
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Codec, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, 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, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecsByMimeType, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
|
package/dist/index.d.mts
CHANGED
|
@@ -458,6 +458,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
458
458
|
_videoTrackOnEnded: () => void;
|
|
459
459
|
totalSessionsCreated: number;
|
|
460
460
|
_iceServers: any;
|
|
461
|
+
_turnServers: any;
|
|
461
462
|
_sfuServer: any;
|
|
462
463
|
_mediaserverConfigTtlSeconds: any;
|
|
463
464
|
_fetchMediaServersTimer: any;
|
|
@@ -534,13 +535,13 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
534
535
|
_removeTrackFromPeerConnections(track: any): void;
|
|
535
536
|
_addLocalStream(streamId: string, stream: any): void;
|
|
536
537
|
_removeLocalStream(streamId: string): void;
|
|
537
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, mediaserverConfigTtlSeconds }: any): void;
|
|
538
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, mediaserverConfigTtlSeconds }: any): void;
|
|
538
539
|
_clearMediaServersRefresh(): void;
|
|
539
540
|
_monitorAudioTrack(track: any): void;
|
|
540
541
|
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
541
542
|
_connect(clientId: string): Promise<any>;
|
|
542
543
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
543
|
-
_setCodecPreferences(pc: RTCPeerConnection, { vp9On, av1On, redOn }: {
|
|
544
|
+
_setCodecPreferences(pc: RTCPeerConnection, { vp9On, av1On, redOn, }: {
|
|
544
545
|
vp9On?: boolean;
|
|
545
546
|
av1On?: boolean;
|
|
546
547
|
redOn?: boolean;
|
|
@@ -681,9 +682,14 @@ declare class ServerSocket {
|
|
|
681
682
|
getReconnectThreshold(): number | undefined;
|
|
682
683
|
}
|
|
683
684
|
|
|
684
|
-
declare const maybeTurnOnly: (
|
|
685
|
+
declare const maybeTurnOnly: (iceConfig: any, features: {
|
|
685
686
|
useOnlyTURN: string;
|
|
686
687
|
}) => void;
|
|
688
|
+
declare const external_stun_servers: (iceConfig: any, features: {
|
|
689
|
+
addGoogleStunServers: string;
|
|
690
|
+
addCloudflareStunServers: string;
|
|
691
|
+
}) => void;
|
|
692
|
+
declare const turnServerOverride: (iceServers: any, overrideHost: any) => any;
|
|
687
693
|
|
|
688
694
|
interface Credentials {
|
|
689
695
|
credentials: {
|
|
@@ -895,11 +901,12 @@ interface SpotlightRemovedEvent {
|
|
|
895
901
|
requestedByClientId: string;
|
|
896
902
|
}
|
|
897
903
|
interface LiveTranscriptionStartedEvent {
|
|
898
|
-
startedAt: string;
|
|
899
904
|
transcriptionId: string;
|
|
905
|
+
startedAt: string;
|
|
900
906
|
}
|
|
901
907
|
interface LiveTranscriptionStoppedEvent {
|
|
902
908
|
transcriptionId: string;
|
|
909
|
+
endedAt: string;
|
|
903
910
|
}
|
|
904
911
|
interface SignalEvents {
|
|
905
912
|
audio_enabled: AudioEnabledEvent;
|
|
@@ -1354,6 +1361,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1354
1361
|
_qualityMonitor: any;
|
|
1355
1362
|
_fetchMediaServersTimer: any;
|
|
1356
1363
|
_iceServers: any;
|
|
1364
|
+
_turnServers: any;
|
|
1357
1365
|
_sfuServer: any;
|
|
1358
1366
|
_sfuServers?: HostListEntryOptionalDC[];
|
|
1359
1367
|
_mediaserverConfigTtlSeconds: any;
|
|
@@ -1372,8 +1380,9 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1372
1380
|
features?: any;
|
|
1373
1381
|
eventClaim?: string;
|
|
1374
1382
|
});
|
|
1375
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }: {
|
|
1383
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }: {
|
|
1376
1384
|
iceServers: any;
|
|
1385
|
+
turnServers: any;
|
|
1377
1386
|
sfuServer: any;
|
|
1378
1387
|
sfuServers: any;
|
|
1379
1388
|
mediaserverConfigTtlSeconds: any;
|
|
@@ -1649,4 +1658,4 @@ declare class RtcStream {
|
|
|
1649
1658
|
static getTypeFromId(id: string): string;
|
|
1650
1659
|
}
|
|
1651
1660
|
|
|
1652
|
-
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Codec, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecsByMimeType, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
1661
|
+
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Codec, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, 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, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecsByMimeType, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
|
package/dist/index.d.ts
CHANGED
|
@@ -458,6 +458,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
458
458
|
_videoTrackOnEnded: () => void;
|
|
459
459
|
totalSessionsCreated: number;
|
|
460
460
|
_iceServers: any;
|
|
461
|
+
_turnServers: any;
|
|
461
462
|
_sfuServer: any;
|
|
462
463
|
_mediaserverConfigTtlSeconds: any;
|
|
463
464
|
_fetchMediaServersTimer: any;
|
|
@@ -534,13 +535,13 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
534
535
|
_removeTrackFromPeerConnections(track: any): void;
|
|
535
536
|
_addLocalStream(streamId: string, stream: any): void;
|
|
536
537
|
_removeLocalStream(streamId: string): void;
|
|
537
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, mediaserverConfigTtlSeconds }: any): void;
|
|
538
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, mediaserverConfigTtlSeconds }: any): void;
|
|
538
539
|
_clearMediaServersRefresh(): void;
|
|
539
540
|
_monitorAudioTrack(track: any): void;
|
|
540
541
|
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
541
542
|
_connect(clientId: string): Promise<any>;
|
|
542
543
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
543
|
-
_setCodecPreferences(pc: RTCPeerConnection, { vp9On, av1On, redOn }: {
|
|
544
|
+
_setCodecPreferences(pc: RTCPeerConnection, { vp9On, av1On, redOn, }: {
|
|
544
545
|
vp9On?: boolean;
|
|
545
546
|
av1On?: boolean;
|
|
546
547
|
redOn?: boolean;
|
|
@@ -681,9 +682,14 @@ declare class ServerSocket {
|
|
|
681
682
|
getReconnectThreshold(): number | undefined;
|
|
682
683
|
}
|
|
683
684
|
|
|
684
|
-
declare const maybeTurnOnly: (
|
|
685
|
+
declare const maybeTurnOnly: (iceConfig: any, features: {
|
|
685
686
|
useOnlyTURN: string;
|
|
686
687
|
}) => void;
|
|
688
|
+
declare const external_stun_servers: (iceConfig: any, features: {
|
|
689
|
+
addGoogleStunServers: string;
|
|
690
|
+
addCloudflareStunServers: string;
|
|
691
|
+
}) => void;
|
|
692
|
+
declare const turnServerOverride: (iceServers: any, overrideHost: any) => any;
|
|
687
693
|
|
|
688
694
|
interface Credentials {
|
|
689
695
|
credentials: {
|
|
@@ -895,11 +901,12 @@ interface SpotlightRemovedEvent {
|
|
|
895
901
|
requestedByClientId: string;
|
|
896
902
|
}
|
|
897
903
|
interface LiveTranscriptionStartedEvent {
|
|
898
|
-
startedAt: string;
|
|
899
904
|
transcriptionId: string;
|
|
905
|
+
startedAt: string;
|
|
900
906
|
}
|
|
901
907
|
interface LiveTranscriptionStoppedEvent {
|
|
902
908
|
transcriptionId: string;
|
|
909
|
+
endedAt: string;
|
|
903
910
|
}
|
|
904
911
|
interface SignalEvents {
|
|
905
912
|
audio_enabled: AudioEnabledEvent;
|
|
@@ -1354,6 +1361,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1354
1361
|
_qualityMonitor: any;
|
|
1355
1362
|
_fetchMediaServersTimer: any;
|
|
1356
1363
|
_iceServers: any;
|
|
1364
|
+
_turnServers: any;
|
|
1357
1365
|
_sfuServer: any;
|
|
1358
1366
|
_sfuServers?: HostListEntryOptionalDC[];
|
|
1359
1367
|
_mediaserverConfigTtlSeconds: any;
|
|
@@ -1372,8 +1380,9 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1372
1380
|
features?: any;
|
|
1373
1381
|
eventClaim?: string;
|
|
1374
1382
|
});
|
|
1375
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }: {
|
|
1383
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }: {
|
|
1376
1384
|
iceServers: any;
|
|
1385
|
+
turnServers: any;
|
|
1377
1386
|
sfuServer: any;
|
|
1378
1387
|
sfuServers: any;
|
|
1379
1388
|
mediaserverConfigTtlSeconds: any;
|
|
@@ -1649,4 +1658,4 @@ declare class RtcStream {
|
|
|
1649
1658
|
static getTypeFromId(id: string): string;
|
|
1650
1659
|
}
|
|
1651
1660
|
|
|
1652
|
-
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Codec, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecsByMimeType, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
1661
|
+
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Codec, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, 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, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecsByMimeType, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
|
package/dist/index.mjs
CHANGED
|
@@ -3003,18 +3003,62 @@ class ServerSocket {
|
|
|
3003
3003
|
}
|
|
3004
3004
|
}
|
|
3005
3005
|
|
|
3006
|
-
const maybeTurnOnly = (
|
|
3006
|
+
const maybeTurnOnly = (iceConfig, features) => {
|
|
3007
3007
|
if (!features.useOnlyTURN) {
|
|
3008
3008
|
return;
|
|
3009
3009
|
}
|
|
3010
|
-
|
|
3010
|
+
iceConfig.iceTransportPolicy = "relay";
|
|
3011
3011
|
const filter = {
|
|
3012
3012
|
onlyudp: /^turn:.*transport=udp$/,
|
|
3013
3013
|
onlytcp: /^turn:.*transport=tcp$/,
|
|
3014
3014
|
onlytls: /^turns:.*transport=tcp$/,
|
|
3015
3015
|
}[features.useOnlyTURN];
|
|
3016
3016
|
if (filter) {
|
|
3017
|
-
|
|
3017
|
+
iceConfig.iceServers = iceConfig.iceServers.filter((entry) => {
|
|
3018
|
+
if (entry.url && entry.url.match(filter))
|
|
3019
|
+
return entry;
|
|
3020
|
+
if (entry.urls) {
|
|
3021
|
+
entry.urls = (entry.urls.some ? entry.urls : [entry.urls]).filter((url) => url.match(filter));
|
|
3022
|
+
if (entry.urls.length > 0)
|
|
3023
|
+
return entry;
|
|
3024
|
+
}
|
|
3025
|
+
});
|
|
3026
|
+
}
|
|
3027
|
+
};
|
|
3028
|
+
const external_stun_servers = (iceConfig, features) => {
|
|
3029
|
+
if (features.addGoogleStunServers) {
|
|
3030
|
+
iceConfig.iceServers = [
|
|
3031
|
+
{ urls: "stun:stun.l.google.com:19302" },
|
|
3032
|
+
{ urls: "stun:stun2.l.google.com:19302" },
|
|
3033
|
+
...iceConfig.iceServers,
|
|
3034
|
+
];
|
|
3035
|
+
}
|
|
3036
|
+
if (features.addCloudflareStunServers) {
|
|
3037
|
+
iceConfig.iceServers = [
|
|
3038
|
+
{ urls: "stun:stun.cloudflare.com:3478" },
|
|
3039
|
+
{ urls: "stun:stun.cloudflare.com:53" },
|
|
3040
|
+
...iceConfig.iceServers,
|
|
3041
|
+
];
|
|
3042
|
+
}
|
|
3043
|
+
};
|
|
3044
|
+
const turnServerOverride = (iceServers, overrideHost) => {
|
|
3045
|
+
if (overrideHost && iceServers) {
|
|
3046
|
+
const host = overrideHost;
|
|
3047
|
+
const port = host.indexOf(":") > 0 ? "" : ":443";
|
|
3048
|
+
const override = ":" + host + port;
|
|
3049
|
+
return iceServers.map((original) => {
|
|
3050
|
+
const entry = Object.assign({}, original);
|
|
3051
|
+
if (entry.url) {
|
|
3052
|
+
entry.url = entry.url.replace(/:[^?]*/, override);
|
|
3053
|
+
}
|
|
3054
|
+
if (entry.urls) {
|
|
3055
|
+
entry.urls = entry.urls.map((url) => url.replace(/:[^?]*/, override));
|
|
3056
|
+
}
|
|
3057
|
+
return entry;
|
|
3058
|
+
});
|
|
3059
|
+
}
|
|
3060
|
+
else {
|
|
3061
|
+
return iceServers;
|
|
3018
3062
|
}
|
|
3019
3063
|
};
|
|
3020
3064
|
|
|
@@ -3073,7 +3117,7 @@ if (browserName$1 === "chrome") {
|
|
|
3073
3117
|
}
|
|
3074
3118
|
class P2pRtcManager {
|
|
3075
3119
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, }) {
|
|
3076
|
-
const { name, session, iceServers, sfuServer, mediaserverConfigTtlSeconds } = room;
|
|
3120
|
+
const { name, session, iceServers, turnServers, sfuServer, mediaserverConfigTtlSeconds } = room;
|
|
3077
3121
|
this._selfId = selfId;
|
|
3078
3122
|
this._roomName = name;
|
|
3079
3123
|
this._roomSessionId = session && session.id;
|
|
@@ -3100,7 +3144,8 @@ class P2pRtcManager {
|
|
|
3100
3144
|
};
|
|
3101
3145
|
this._updateAndScheduleMediaServersRefresh({
|
|
3102
3146
|
sfuServer,
|
|
3103
|
-
iceServers: iceServers.iceServers || [],
|
|
3147
|
+
iceServers: (iceServers === null || iceServers === void 0 ? void 0 : iceServers.iceServers) || [],
|
|
3148
|
+
turnServers: turnServers || [],
|
|
3104
3149
|
mediaserverConfigTtlSeconds,
|
|
3105
3150
|
});
|
|
3106
3151
|
this.totalSessionsCreated = 0;
|
|
@@ -3429,48 +3474,11 @@ class P2pRtcManager {
|
|
|
3429
3474
|
constraints.optional.push({ rtcStatsPeerId: peerConnectionId });
|
|
3430
3475
|
constraints.optional.push({ rtcStatsConferenceId: this._roomName });
|
|
3431
3476
|
const peerConnectionConfig = {
|
|
3432
|
-
iceServers: this._iceServers,
|
|
3477
|
+
iceServers: this._features.turnServersOn ? this._turnServers : this._iceServers,
|
|
3433
3478
|
};
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
const override = ":" + host + port;
|
|
3438
|
-
peerConnectionConfig.iceServers = peerConnectionConfig.iceServers.map((original) => {
|
|
3439
|
-
const entry = Object.assign({}, original);
|
|
3440
|
-
if (entry.url) {
|
|
3441
|
-
entry.url = entry.url.replace(/:[^?]*/, override);
|
|
3442
|
-
}
|
|
3443
|
-
if (entry.urls) {
|
|
3444
|
-
entry.urls = entry.urls.map((url) => url.replace(/:[^?]*/, override));
|
|
3445
|
-
}
|
|
3446
|
-
return entry;
|
|
3447
|
-
});
|
|
3448
|
-
}
|
|
3449
|
-
if (this._features.addGoogleStunServers) {
|
|
3450
|
-
peerConnectionConfig.iceServers = [
|
|
3451
|
-
...peerConnectionConfig.iceServers,
|
|
3452
|
-
{ urls: "stun:stun.l.google.com:19302" },
|
|
3453
|
-
{ urls: "stun:stun2.l.google.com:19302" },
|
|
3454
|
-
];
|
|
3455
|
-
}
|
|
3456
|
-
if (this._features.addCloudflareStunServers) {
|
|
3457
|
-
peerConnectionConfig.iceServers = [
|
|
3458
|
-
...peerConnectionConfig.iceServers,
|
|
3459
|
-
{ urls: "stun:stun.cloudflare.com:3478" },
|
|
3460
|
-
{ urls: "stun:stun.cloudflare.com:53" },
|
|
3461
|
-
];
|
|
3462
|
-
}
|
|
3463
|
-
if (this._features.useOnlyTURN) {
|
|
3464
|
-
peerConnectionConfig.iceTransportPolicy = "relay";
|
|
3465
|
-
const filter = {
|
|
3466
|
-
onlyudp: /^turn:.*transport=udp$/,
|
|
3467
|
-
onlytcp: /^turn:.*transport=tcp$/,
|
|
3468
|
-
onlytls: /^turns:.*transport=tcp$/,
|
|
3469
|
-
}[this._features.useOnlyTURN];
|
|
3470
|
-
if (filter) {
|
|
3471
|
-
peerConnectionConfig.iceServers = peerConnectionConfig.iceServers.filter((entry) => entry.url && entry.url.match(filter));
|
|
3472
|
-
}
|
|
3473
|
-
}
|
|
3479
|
+
peerConnectionConfig.iceServers = turnServerOverride(peerConnectionConfig.iceServers, this._features.turnServerOverrideHost);
|
|
3480
|
+
external_stun_servers(peerConnectionConfig, this._features);
|
|
3481
|
+
maybeTurnOnly(peerConnectionConfig, this._features);
|
|
3474
3482
|
if (browserName$1 === "chrome") {
|
|
3475
3483
|
peerConnectionConfig.sdpSemantics = "unified-plan";
|
|
3476
3484
|
}
|
|
@@ -3684,8 +3692,9 @@ class P2pRtcManager {
|
|
|
3684
3692
|
delete this.localStreams[streamId];
|
|
3685
3693
|
this._deleteEnabledLocalStreamId(streamId);
|
|
3686
3694
|
}
|
|
3687
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, mediaserverConfigTtlSeconds }) {
|
|
3695
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, mediaserverConfigTtlSeconds }) {
|
|
3688
3696
|
this._iceServers = iceServers;
|
|
3697
|
+
this._turnServers = turnServers;
|
|
3689
3698
|
this._sfuServer = sfuServer;
|
|
3690
3699
|
this._mediaserverConfigTtlSeconds = mediaserverConfigTtlSeconds;
|
|
3691
3700
|
this._clearMediaServersRefresh();
|
|
@@ -3753,7 +3762,7 @@ class P2pRtcManager {
|
|
|
3753
3762
|
this._negotiatePeerConnection(clientId, session, Object.assign({}, this.offerOptions, { iceRestart: true }));
|
|
3754
3763
|
}
|
|
3755
3764
|
}
|
|
3756
|
-
_setCodecPreferences(pc, { vp9On, av1On, redOn }) {
|
|
3765
|
+
_setCodecPreferences(pc, { vp9On, av1On, redOn, }) {
|
|
3757
3766
|
try {
|
|
3758
3767
|
const audioTransceivers = pc
|
|
3759
3768
|
.getTransceivers()
|
|
@@ -4916,7 +4925,7 @@ if (browserName === "chrome")
|
|
|
4916
4925
|
window.document.addEventListener("beforeunload", () => (unloading = true));
|
|
4917
4926
|
class VegaRtcManager {
|
|
4918
4927
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, eventClaim, }) {
|
|
4919
|
-
const { session, iceServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds } = room;
|
|
4928
|
+
const { session, iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds } = room;
|
|
4920
4929
|
this._selfId = selfId;
|
|
4921
4930
|
this._room = room;
|
|
4922
4931
|
this._roomSessionId = session === null || session === void 0 ? void 0 : session.id;
|
|
@@ -4969,7 +4978,8 @@ class VegaRtcManager {
|
|
|
4969
4978
|
this._updateAndScheduleMediaServersRefresh({
|
|
4970
4979
|
sfuServer,
|
|
4971
4980
|
sfuServers,
|
|
4972
|
-
iceServers: iceServers.iceServers || [],
|
|
4981
|
+
iceServers: (iceServers === null || iceServers === void 0 ? void 0 : iceServers.iceServers) || [],
|
|
4982
|
+
turnServers: turnServers || [],
|
|
4973
4983
|
mediaserverConfigTtlSeconds,
|
|
4974
4984
|
});
|
|
4975
4985
|
this._socketListenerDeregisterFunctions = [];
|
|
@@ -4983,9 +4993,10 @@ class VegaRtcManager {
|
|
|
4983
4993
|
});
|
|
4984
4994
|
this._networkIsDetectedUpBySignal = false;
|
|
4985
4995
|
}
|
|
4986
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }) {
|
|
4996
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }) {
|
|
4987
4997
|
var _a, _b, _c;
|
|
4988
4998
|
this._iceServers = iceServers;
|
|
4999
|
+
this._turnServers = turnServers;
|
|
4989
5000
|
this._sfuServer = sfuServer;
|
|
4990
5001
|
this._sfuServers = sfuServers;
|
|
4991
5002
|
if (!sfuServers && (sfuServer === null || sfuServer === void 0 ? void 0 : sfuServer.fallbackServers)) {
|
|
@@ -4999,8 +5010,12 @@ class VegaRtcManager {
|
|
|
4999
5010
|
this._sfuServers ||
|
|
5000
5011
|
this._features.sfuServerOverrideHost ||
|
|
5001
5012
|
sfuServer.url);
|
|
5002
|
-
|
|
5003
|
-
|
|
5013
|
+
const iceServersList = {
|
|
5014
|
+
iceServers: this._features.turnServersOn ? this._turnServers : this._iceServers,
|
|
5015
|
+
};
|
|
5016
|
+
iceServersList.iceServers = turnServerOverride(iceServersList.iceServers, this._features.turnServerOverrideHost);
|
|
5017
|
+
(_b = this._sendTransport) === null || _b === void 0 ? void 0 : _b.updateIceServers(iceServersList);
|
|
5018
|
+
(_c = this._receiveTransport) === null || _c === void 0 ? void 0 : _c.updateIceServers(iceServersList);
|
|
5004
5019
|
this._clearMediaServersRefresh();
|
|
5005
5020
|
if (!mediaserverConfigTtlSeconds) {
|
|
5006
5021
|
return;
|
|
@@ -5197,7 +5212,7 @@ class VegaRtcManager {
|
|
|
5197
5212
|
sctpSendBufferSize: 262144,
|
|
5198
5213
|
},
|
|
5199
5214
|
});
|
|
5200
|
-
transportOptions.iceServers = this._iceServers;
|
|
5215
|
+
transportOptions.iceServers = turnServerOverride(this._features.turnServersOn ? this._turnServers : this._iceServers, this._features.turnServerOverrideHost);
|
|
5201
5216
|
maybeTurnOnly(transportOptions, this._features);
|
|
5202
5217
|
const transport = (_a = this._mediasoupDevice) === null || _a === void 0 ? void 0 : _a[creator](transportOptions);
|
|
5203
5218
|
const onConnectionStateListener = (connectionState) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -7930,4 +7945,4 @@ var RtcEventNames;
|
|
|
7930
7945
|
RtcEventNames["stream_added"] = "stream_added";
|
|
7931
7946
|
})(RtcEventNames || (RtcEventNames = {}));
|
|
7932
7947
|
|
|
7933
|
-
export { BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecsByMimeType, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
7948
|
+
export { BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, 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, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecsByMimeType, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
|
package/dist/legacy-esm.js
CHANGED
|
@@ -3003,18 +3003,62 @@ class ServerSocket {
|
|
|
3003
3003
|
}
|
|
3004
3004
|
}
|
|
3005
3005
|
|
|
3006
|
-
const maybeTurnOnly = (
|
|
3006
|
+
const maybeTurnOnly = (iceConfig, features) => {
|
|
3007
3007
|
if (!features.useOnlyTURN) {
|
|
3008
3008
|
return;
|
|
3009
3009
|
}
|
|
3010
|
-
|
|
3010
|
+
iceConfig.iceTransportPolicy = "relay";
|
|
3011
3011
|
const filter = {
|
|
3012
3012
|
onlyudp: /^turn:.*transport=udp$/,
|
|
3013
3013
|
onlytcp: /^turn:.*transport=tcp$/,
|
|
3014
3014
|
onlytls: /^turns:.*transport=tcp$/,
|
|
3015
3015
|
}[features.useOnlyTURN];
|
|
3016
3016
|
if (filter) {
|
|
3017
|
-
|
|
3017
|
+
iceConfig.iceServers = iceConfig.iceServers.filter((entry) => {
|
|
3018
|
+
if (entry.url && entry.url.match(filter))
|
|
3019
|
+
return entry;
|
|
3020
|
+
if (entry.urls) {
|
|
3021
|
+
entry.urls = (entry.urls.some ? entry.urls : [entry.urls]).filter((url) => url.match(filter));
|
|
3022
|
+
if (entry.urls.length > 0)
|
|
3023
|
+
return entry;
|
|
3024
|
+
}
|
|
3025
|
+
});
|
|
3026
|
+
}
|
|
3027
|
+
};
|
|
3028
|
+
const external_stun_servers = (iceConfig, features) => {
|
|
3029
|
+
if (features.addGoogleStunServers) {
|
|
3030
|
+
iceConfig.iceServers = [
|
|
3031
|
+
{ urls: "stun:stun.l.google.com:19302" },
|
|
3032
|
+
{ urls: "stun:stun2.l.google.com:19302" },
|
|
3033
|
+
...iceConfig.iceServers,
|
|
3034
|
+
];
|
|
3035
|
+
}
|
|
3036
|
+
if (features.addCloudflareStunServers) {
|
|
3037
|
+
iceConfig.iceServers = [
|
|
3038
|
+
{ urls: "stun:stun.cloudflare.com:3478" },
|
|
3039
|
+
{ urls: "stun:stun.cloudflare.com:53" },
|
|
3040
|
+
...iceConfig.iceServers,
|
|
3041
|
+
];
|
|
3042
|
+
}
|
|
3043
|
+
};
|
|
3044
|
+
const turnServerOverride = (iceServers, overrideHost) => {
|
|
3045
|
+
if (overrideHost && iceServers) {
|
|
3046
|
+
const host = overrideHost;
|
|
3047
|
+
const port = host.indexOf(":") > 0 ? "" : ":443";
|
|
3048
|
+
const override = ":" + host + port;
|
|
3049
|
+
return iceServers.map((original) => {
|
|
3050
|
+
const entry = Object.assign({}, original);
|
|
3051
|
+
if (entry.url) {
|
|
3052
|
+
entry.url = entry.url.replace(/:[^?]*/, override);
|
|
3053
|
+
}
|
|
3054
|
+
if (entry.urls) {
|
|
3055
|
+
entry.urls = entry.urls.map((url) => url.replace(/:[^?]*/, override));
|
|
3056
|
+
}
|
|
3057
|
+
return entry;
|
|
3058
|
+
});
|
|
3059
|
+
}
|
|
3060
|
+
else {
|
|
3061
|
+
return iceServers;
|
|
3018
3062
|
}
|
|
3019
3063
|
};
|
|
3020
3064
|
|
|
@@ -3073,7 +3117,7 @@ if (browserName$1 === "chrome") {
|
|
|
3073
3117
|
}
|
|
3074
3118
|
class P2pRtcManager {
|
|
3075
3119
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, }) {
|
|
3076
|
-
const { name, session, iceServers, sfuServer, mediaserverConfigTtlSeconds } = room;
|
|
3120
|
+
const { name, session, iceServers, turnServers, sfuServer, mediaserverConfigTtlSeconds } = room;
|
|
3077
3121
|
this._selfId = selfId;
|
|
3078
3122
|
this._roomName = name;
|
|
3079
3123
|
this._roomSessionId = session && session.id;
|
|
@@ -3100,7 +3144,8 @@ class P2pRtcManager {
|
|
|
3100
3144
|
};
|
|
3101
3145
|
this._updateAndScheduleMediaServersRefresh({
|
|
3102
3146
|
sfuServer,
|
|
3103
|
-
iceServers: iceServers.iceServers || [],
|
|
3147
|
+
iceServers: (iceServers === null || iceServers === void 0 ? void 0 : iceServers.iceServers) || [],
|
|
3148
|
+
turnServers: turnServers || [],
|
|
3104
3149
|
mediaserverConfigTtlSeconds,
|
|
3105
3150
|
});
|
|
3106
3151
|
this.totalSessionsCreated = 0;
|
|
@@ -3429,48 +3474,11 @@ class P2pRtcManager {
|
|
|
3429
3474
|
constraints.optional.push({ rtcStatsPeerId: peerConnectionId });
|
|
3430
3475
|
constraints.optional.push({ rtcStatsConferenceId: this._roomName });
|
|
3431
3476
|
const peerConnectionConfig = {
|
|
3432
|
-
iceServers: this._iceServers,
|
|
3477
|
+
iceServers: this._features.turnServersOn ? this._turnServers : this._iceServers,
|
|
3433
3478
|
};
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
const override = ":" + host + port;
|
|
3438
|
-
peerConnectionConfig.iceServers = peerConnectionConfig.iceServers.map((original) => {
|
|
3439
|
-
const entry = Object.assign({}, original);
|
|
3440
|
-
if (entry.url) {
|
|
3441
|
-
entry.url = entry.url.replace(/:[^?]*/, override);
|
|
3442
|
-
}
|
|
3443
|
-
if (entry.urls) {
|
|
3444
|
-
entry.urls = entry.urls.map((url) => url.replace(/:[^?]*/, override));
|
|
3445
|
-
}
|
|
3446
|
-
return entry;
|
|
3447
|
-
});
|
|
3448
|
-
}
|
|
3449
|
-
if (this._features.addGoogleStunServers) {
|
|
3450
|
-
peerConnectionConfig.iceServers = [
|
|
3451
|
-
...peerConnectionConfig.iceServers,
|
|
3452
|
-
{ urls: "stun:stun.l.google.com:19302" },
|
|
3453
|
-
{ urls: "stun:stun2.l.google.com:19302" },
|
|
3454
|
-
];
|
|
3455
|
-
}
|
|
3456
|
-
if (this._features.addCloudflareStunServers) {
|
|
3457
|
-
peerConnectionConfig.iceServers = [
|
|
3458
|
-
...peerConnectionConfig.iceServers,
|
|
3459
|
-
{ urls: "stun:stun.cloudflare.com:3478" },
|
|
3460
|
-
{ urls: "stun:stun.cloudflare.com:53" },
|
|
3461
|
-
];
|
|
3462
|
-
}
|
|
3463
|
-
if (this._features.useOnlyTURN) {
|
|
3464
|
-
peerConnectionConfig.iceTransportPolicy = "relay";
|
|
3465
|
-
const filter = {
|
|
3466
|
-
onlyudp: /^turn:.*transport=udp$/,
|
|
3467
|
-
onlytcp: /^turn:.*transport=tcp$/,
|
|
3468
|
-
onlytls: /^turns:.*transport=tcp$/,
|
|
3469
|
-
}[this._features.useOnlyTURN];
|
|
3470
|
-
if (filter) {
|
|
3471
|
-
peerConnectionConfig.iceServers = peerConnectionConfig.iceServers.filter((entry) => entry.url && entry.url.match(filter));
|
|
3472
|
-
}
|
|
3473
|
-
}
|
|
3479
|
+
peerConnectionConfig.iceServers = turnServerOverride(peerConnectionConfig.iceServers, this._features.turnServerOverrideHost);
|
|
3480
|
+
external_stun_servers(peerConnectionConfig, this._features);
|
|
3481
|
+
maybeTurnOnly(peerConnectionConfig, this._features);
|
|
3474
3482
|
if (browserName$1 === "chrome") {
|
|
3475
3483
|
peerConnectionConfig.sdpSemantics = "unified-plan";
|
|
3476
3484
|
}
|
|
@@ -3684,8 +3692,9 @@ class P2pRtcManager {
|
|
|
3684
3692
|
delete this.localStreams[streamId];
|
|
3685
3693
|
this._deleteEnabledLocalStreamId(streamId);
|
|
3686
3694
|
}
|
|
3687
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, mediaserverConfigTtlSeconds }) {
|
|
3695
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, mediaserverConfigTtlSeconds }) {
|
|
3688
3696
|
this._iceServers = iceServers;
|
|
3697
|
+
this._turnServers = turnServers;
|
|
3689
3698
|
this._sfuServer = sfuServer;
|
|
3690
3699
|
this._mediaserverConfigTtlSeconds = mediaserverConfigTtlSeconds;
|
|
3691
3700
|
this._clearMediaServersRefresh();
|
|
@@ -3753,7 +3762,7 @@ class P2pRtcManager {
|
|
|
3753
3762
|
this._negotiatePeerConnection(clientId, session, Object.assign({}, this.offerOptions, { iceRestart: true }));
|
|
3754
3763
|
}
|
|
3755
3764
|
}
|
|
3756
|
-
_setCodecPreferences(pc, { vp9On, av1On, redOn }) {
|
|
3765
|
+
_setCodecPreferences(pc, { vp9On, av1On, redOn, }) {
|
|
3757
3766
|
try {
|
|
3758
3767
|
const audioTransceivers = pc
|
|
3759
3768
|
.getTransceivers()
|
|
@@ -4916,7 +4925,7 @@ if (browserName === "chrome")
|
|
|
4916
4925
|
window.document.addEventListener("beforeunload", () => (unloading = true));
|
|
4917
4926
|
class VegaRtcManager {
|
|
4918
4927
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, eventClaim, }) {
|
|
4919
|
-
const { session, iceServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds } = room;
|
|
4928
|
+
const { session, iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds } = room;
|
|
4920
4929
|
this._selfId = selfId;
|
|
4921
4930
|
this._room = room;
|
|
4922
4931
|
this._roomSessionId = session === null || session === void 0 ? void 0 : session.id;
|
|
@@ -4969,7 +4978,8 @@ class VegaRtcManager {
|
|
|
4969
4978
|
this._updateAndScheduleMediaServersRefresh({
|
|
4970
4979
|
sfuServer,
|
|
4971
4980
|
sfuServers,
|
|
4972
|
-
iceServers: iceServers.iceServers || [],
|
|
4981
|
+
iceServers: (iceServers === null || iceServers === void 0 ? void 0 : iceServers.iceServers) || [],
|
|
4982
|
+
turnServers: turnServers || [],
|
|
4973
4983
|
mediaserverConfigTtlSeconds,
|
|
4974
4984
|
});
|
|
4975
4985
|
this._socketListenerDeregisterFunctions = [];
|
|
@@ -4983,9 +4993,10 @@ class VegaRtcManager {
|
|
|
4983
4993
|
});
|
|
4984
4994
|
this._networkIsDetectedUpBySignal = false;
|
|
4985
4995
|
}
|
|
4986
|
-
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }) {
|
|
4996
|
+
_updateAndScheduleMediaServersRefresh({ iceServers, turnServers, sfuServer, sfuServers, mediaserverConfigTtlSeconds, }) {
|
|
4987
4997
|
var _a, _b, _c;
|
|
4988
4998
|
this._iceServers = iceServers;
|
|
4999
|
+
this._turnServers = turnServers;
|
|
4989
5000
|
this._sfuServer = sfuServer;
|
|
4990
5001
|
this._sfuServers = sfuServers;
|
|
4991
5002
|
if (!sfuServers && (sfuServer === null || sfuServer === void 0 ? void 0 : sfuServer.fallbackServers)) {
|
|
@@ -4999,8 +5010,12 @@ class VegaRtcManager {
|
|
|
4999
5010
|
this._sfuServers ||
|
|
5000
5011
|
this._features.sfuServerOverrideHost ||
|
|
5001
5012
|
sfuServer.url);
|
|
5002
|
-
|
|
5003
|
-
|
|
5013
|
+
const iceServersList = {
|
|
5014
|
+
iceServers: this._features.turnServersOn ? this._turnServers : this._iceServers,
|
|
5015
|
+
};
|
|
5016
|
+
iceServersList.iceServers = turnServerOverride(iceServersList.iceServers, this._features.turnServerOverrideHost);
|
|
5017
|
+
(_b = this._sendTransport) === null || _b === void 0 ? void 0 : _b.updateIceServers(iceServersList);
|
|
5018
|
+
(_c = this._receiveTransport) === null || _c === void 0 ? void 0 : _c.updateIceServers(iceServersList);
|
|
5004
5019
|
this._clearMediaServersRefresh();
|
|
5005
5020
|
if (!mediaserverConfigTtlSeconds) {
|
|
5006
5021
|
return;
|
|
@@ -5197,7 +5212,7 @@ class VegaRtcManager {
|
|
|
5197
5212
|
sctpSendBufferSize: 262144,
|
|
5198
5213
|
},
|
|
5199
5214
|
});
|
|
5200
|
-
transportOptions.iceServers = this._iceServers;
|
|
5215
|
+
transportOptions.iceServers = turnServerOverride(this._features.turnServersOn ? this._turnServers : this._iceServers, this._features.turnServerOverrideHost);
|
|
5201
5216
|
maybeTurnOnly(transportOptions, this._features);
|
|
5202
5217
|
const transport = (_a = this._mediasoupDevice) === null || _a === void 0 ? void 0 : _a[creator](transportOptions);
|
|
5203
5218
|
const onConnectionStateListener = (connectionState) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -7930,5 +7945,5 @@ var RtcEventNames;
|
|
|
7930
7945
|
RtcEventNames["stream_added"] = "stream_added";
|
|
7931
7946
|
})(RtcEventNames || (RtcEventNames = {}));
|
|
7932
7947
|
|
|
7933
|
-
export { BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecsByMimeType, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
7948
|
+
export { BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, 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, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecsByMimeType, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
|
|
7934
7949
|
//# sourceMappingURL=legacy-esm.js.map
|
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": "1.
|
|
4
|
+
"version": "1.21.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/whereby/sdk",
|
|
7
7
|
"repository": {
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"scripts": {
|
|
15
15
|
"clean": "rimraf dist node_modules .turbo",
|
|
16
16
|
"build": "rimraf dist && rollup -c rollup.config.js",
|
|
17
|
+
"watch": "rimraf dist && rollup -w -c rollup.config.js",
|
|
17
18
|
"test": "npm run test:lint && npm run test:unit",
|
|
18
19
|
"test:unit": "jest",
|
|
19
20
|
"test:lint": "eslint src tests",
|