@signalapp/ringrtc 2.27.0 → 2.28.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.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/ringrtc/Service.d.ts +20 -14
- package/dist/ringrtc/Service.js +58 -34
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RingRTCType } from './ringrtc/Service';
|
|
2
|
-
export { AnswerMessage, AudioDevice,
|
|
2
|
+
export { AnswerMessage, AudioDevice, DataMode, BusyMessage, Call, CallEndedReason, CallId, CallLogLevel, CallMessageUrgency, CallSettings, CallState, CallingMessage, ConnectionState, DeviceId, GroupCall, GroupCallEndReason, GroupCallObserver, GroupMemberInfo, HangupMessage, HangupType, HttpMethod, HttpResult, IceCandidateMessage, JoinState, LocalDeviceState, OfferMessage, OfferType, OpaqueMessage, PeekDeviceInfo, PeekInfo, PeekStatusCodes, RemoteDeviceState, RingCancelReason, RingRTCType, RingUpdate, UserId, VideoCapturer, VideoRenderer, VideoRequest, callIdFromEra, callIdFromRingId, } from './ringrtc/Service';
|
|
3
3
|
export { CanvasVideoRenderer, GumVideoCapturer, VideoFrameSource, MAX_VIDEO_CAPTURE_AREA, MAX_VIDEO_CAPTURE_BUFFER_SIZE, MAX_VIDEO_CAPTURE_HEIGHT, MAX_VIDEO_CAPTURE_WIDTH, } from './ringrtc/VideoSupport';
|
|
4
4
|
export { CallLinkRootKey, CallLinkRestrictions, CallLinkState, } from './ringrtc/CallLinks';
|
|
5
5
|
export declare const RingRTC: RingRTCType;
|
package/dist/index.js
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
5
5
|
//
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.RingRTC = exports.CallLinkState = exports.CallLinkRestrictions = exports.CallLinkRootKey = exports.MAX_VIDEO_CAPTURE_WIDTH = exports.MAX_VIDEO_CAPTURE_HEIGHT = exports.MAX_VIDEO_CAPTURE_BUFFER_SIZE = exports.MAX_VIDEO_CAPTURE_AREA = exports.GumVideoCapturer = exports.CanvasVideoRenderer = exports.callIdFromRingId = exports.callIdFromEra = exports.VideoRequest = exports.RingUpdate = exports.RingRTCType = exports.RingCancelReason = exports.RemoteDeviceState = exports.
|
|
7
|
+
exports.RingRTC = exports.CallLinkState = exports.CallLinkRestrictions = exports.CallLinkRootKey = exports.MAX_VIDEO_CAPTURE_WIDTH = exports.MAX_VIDEO_CAPTURE_HEIGHT = exports.MAX_VIDEO_CAPTURE_BUFFER_SIZE = exports.MAX_VIDEO_CAPTURE_AREA = exports.GumVideoCapturer = exports.CanvasVideoRenderer = exports.callIdFromRingId = exports.callIdFromEra = exports.VideoRequest = exports.RingUpdate = exports.RingRTCType = exports.RingCancelReason = exports.RemoteDeviceState = exports.PeekStatusCodes = exports.OpaqueMessage = exports.OfferType = exports.OfferMessage = exports.LocalDeviceState = exports.JoinState = exports.IceCandidateMessage = exports.HttpMethod = exports.HangupType = exports.HangupMessage = exports.GroupMemberInfo = exports.GroupCallEndReason = exports.GroupCall = exports.ConnectionState = exports.CallingMessage = exports.CallState = exports.CallMessageUrgency = exports.CallLogLevel = exports.CallEndedReason = exports.Call = exports.BusyMessage = exports.DataMode = exports.AnswerMessage = void 0;
|
|
8
8
|
const Service_1 = require("./ringrtc/Service");
|
|
9
9
|
var Service_2 = require("./ringrtc/Service");
|
|
10
10
|
Object.defineProperty(exports, "AnswerMessage", { enumerable: true, get: function () { return Service_2.AnswerMessage; } });
|
|
11
|
-
Object.defineProperty(exports, "
|
|
11
|
+
Object.defineProperty(exports, "DataMode", { enumerable: true, get: function () { return Service_2.DataMode; } });
|
|
12
12
|
Object.defineProperty(exports, "BusyMessage", { enumerable: true, get: function () { return Service_2.BusyMessage; } });
|
|
13
13
|
Object.defineProperty(exports, "Call", { enumerable: true, get: function () { return Service_2.Call; } });
|
|
14
14
|
Object.defineProperty(exports, "CallEndedReason", { enumerable: true, get: function () { return Service_2.CallEndedReason; } });
|
|
@@ -29,7 +29,7 @@ Object.defineProperty(exports, "LocalDeviceState", { enumerable: true, get: func
|
|
|
29
29
|
Object.defineProperty(exports, "OfferMessage", { enumerable: true, get: function () { return Service_2.OfferMessage; } });
|
|
30
30
|
Object.defineProperty(exports, "OfferType", { enumerable: true, get: function () { return Service_2.OfferType; } });
|
|
31
31
|
Object.defineProperty(exports, "OpaqueMessage", { enumerable: true, get: function () { return Service_2.OpaqueMessage; } });
|
|
32
|
-
Object.defineProperty(exports, "
|
|
32
|
+
Object.defineProperty(exports, "PeekStatusCodes", { enumerable: true, get: function () { return Service_2.PeekStatusCodes; } });
|
|
33
33
|
Object.defineProperty(exports, "RemoteDeviceState", { enumerable: true, get: function () { return Service_2.RemoteDeviceState; } });
|
|
34
34
|
Object.defineProperty(exports, "RingCancelReason", { enumerable: true, get: function () { return Service_2.RingCancelReason; } });
|
|
35
35
|
Object.defineProperty(exports, "RingRTCType", { enumerable: true, get: function () { return Service_2.RingRTCType; } });
|
|
@@ -9,18 +9,20 @@ declare class Config {
|
|
|
9
9
|
}
|
|
10
10
|
type GroupId = Buffer;
|
|
11
11
|
type GroupCallUserId = Buffer;
|
|
12
|
-
export
|
|
12
|
+
export interface PeekDeviceInfo {
|
|
13
13
|
demuxId: number;
|
|
14
14
|
userId?: GroupCallUserId;
|
|
15
|
-
constructor(demuxId: number, userId: GroupCallUserId | undefined);
|
|
16
15
|
}
|
|
17
|
-
export
|
|
16
|
+
export interface PeekInfo {
|
|
18
17
|
devices: Array<PeekDeviceInfo>;
|
|
19
18
|
creator?: GroupCallUserId;
|
|
20
19
|
eraId?: string;
|
|
21
20
|
maxDevices?: number;
|
|
22
21
|
deviceCount: number;
|
|
23
|
-
|
|
22
|
+
}
|
|
23
|
+
export declare enum PeekStatusCodes {
|
|
24
|
+
EXPIRED_CALL_LINK = 703,
|
|
25
|
+
INVALID_CALL_LINK = 704
|
|
24
26
|
}
|
|
25
27
|
declare enum NetworkAdapterType {
|
|
26
28
|
Unknown = 0,
|
|
@@ -191,7 +193,9 @@ export declare class RingRTCType {
|
|
|
191
193
|
receivedHttpResponse(requestId: number, status: number, body: Buffer): void;
|
|
192
194
|
httpRequestFailed(requestId: number, debugInfo: string | undefined): void;
|
|
193
195
|
getGroupCall(groupId: Buffer, sfuUrl: string, hkdfExtraInfo: Buffer, audioLevelsIntervalMillis: number | undefined, observer: GroupCallObserver): GroupCall | undefined;
|
|
196
|
+
getCallLinkCall(sfuUrl: string, authCredentialPresentation: Buffer, rootKey: CallLinkRootKey, adminPasskey: Buffer | undefined, hkdfExtraInfo: Buffer, audioLevelsIntervalMillis: number | undefined, observer: GroupCallObserver): GroupCall | undefined;
|
|
194
197
|
peekGroupCall(sfuUrl: string, membershipProof: Buffer, groupMembers: Array<GroupMemberInfo>): Promise<PeekInfo>;
|
|
198
|
+
peekCallLinkCall(sfuUrl: string, authCredentialPresentation: Buffer, rootKey: CallLinkRootKey): Promise<HttpResult<PeekInfo>>;
|
|
195
199
|
requestMembershipProof(clientId: GroupCallClientId): void;
|
|
196
200
|
requestGroupMembers(clientId: GroupCallClientId): void;
|
|
197
201
|
handleConnectionStateChanged(clientId: GroupCallClientId, connectionState: ConnectionState): void;
|
|
@@ -200,7 +204,7 @@ export declare class RingRTCType {
|
|
|
200
204
|
handleAudioLevels(clientId: GroupCallClientId, capturedLevel: RawAudioLevel, receivedLevels: Array<ReceivedAudioLevel>): void;
|
|
201
205
|
handleRemoteDevicesChanged(clientId: GroupCallClientId, remoteDeviceStates: Array<RemoteDeviceState>): void;
|
|
202
206
|
handlePeekChanged(clientId: GroupCallClientId, info: PeekInfo): void;
|
|
203
|
-
handlePeekResponse(requestId: number, info: PeekInfo): void;
|
|
207
|
+
handlePeekResponse(requestId: number, statusCode: number, info: PeekInfo | undefined): void;
|
|
204
208
|
handleCallLinkResponse(requestId: number, statusCode: number, state: {
|
|
205
209
|
name: string;
|
|
206
210
|
rawRestrictions: number;
|
|
@@ -238,7 +242,7 @@ export declare class RingRTCType {
|
|
|
238
242
|
export interface CallSettings {
|
|
239
243
|
iceServer: IceServer;
|
|
240
244
|
hideIp: boolean;
|
|
241
|
-
|
|
245
|
+
dataMode: DataMode;
|
|
242
246
|
audioLevelsIntervalMillis?: number;
|
|
243
247
|
}
|
|
244
248
|
interface IceServer {
|
|
@@ -309,7 +313,7 @@ export declare class Call {
|
|
|
309
313
|
receiveVideoFrame(buffer: Buffer, maxWidth: number, maxHeight: number): [number, number] | undefined;
|
|
310
314
|
private enableOrDisableCapturer;
|
|
311
315
|
private setOutgoingVideoEnabled;
|
|
312
|
-
|
|
316
|
+
updateDataMode(dataMode: DataMode): void;
|
|
313
317
|
private enableOrDisableRenderer;
|
|
314
318
|
}
|
|
315
319
|
export type GroupCallClientId = number;
|
|
@@ -416,7 +420,7 @@ export declare class GroupCall {
|
|
|
416
420
|
private _localDeviceState;
|
|
417
421
|
private _remoteDeviceStates;
|
|
418
422
|
private _peekInfo;
|
|
419
|
-
constructor(callManager: CallManager,
|
|
423
|
+
constructor(callManager: CallManager, observer: GroupCallObserver, clientId: GroupCallClientId);
|
|
420
424
|
connect(): void;
|
|
421
425
|
join(): void;
|
|
422
426
|
leave(): void;
|
|
@@ -430,7 +434,7 @@ export declare class GroupCall {
|
|
|
430
434
|
setOutgoingVideoIsScreenShare(isScreenShare: boolean): void;
|
|
431
435
|
ringAll(): void;
|
|
432
436
|
resendMediaKeys(): void;
|
|
433
|
-
|
|
437
|
+
setDataMode(dataMode: DataMode): void;
|
|
434
438
|
requestVideo(resolutions: Array<VideoRequest>, activeSpeakerHeight: number): void;
|
|
435
439
|
setGroupMembers(members: Array<GroupMemberInfo>): void;
|
|
436
440
|
setMembershipProof(proof: Buffer): void;
|
|
@@ -515,7 +519,7 @@ export declare enum HangupType {
|
|
|
515
519
|
Busy = 3,
|
|
516
520
|
NeedPermission = 4
|
|
517
521
|
}
|
|
518
|
-
export declare enum
|
|
522
|
+
export declare enum DataMode {
|
|
519
523
|
Low = 0,
|
|
520
524
|
Normal = 1
|
|
521
525
|
}
|
|
@@ -527,7 +531,7 @@ export interface CallManager {
|
|
|
527
531
|
setConfig(config: Config): void;
|
|
528
532
|
setSelfUuid(uuid: Buffer): void;
|
|
529
533
|
createOutgoingCall(remoteUserId: UserId, isVideoCall: boolean, localDeviceId: DeviceId): CallId;
|
|
530
|
-
proceed(callId: CallId, iceServerUsername: string, iceServerPassword: string, iceServerUrls: Array<string>, hideIp: boolean,
|
|
534
|
+
proceed(callId: CallId, iceServerUsername: string, iceServerPassword: string, iceServerUrls: Array<string>, hideIp: boolean, dataMode: DataMode, audioLevelsIntervalMillis: number): void;
|
|
531
535
|
accept(callId: CallId): void;
|
|
532
536
|
ignore(callId: CallId): void;
|
|
533
537
|
hangup(): void;
|
|
@@ -537,7 +541,7 @@ export interface CallManager {
|
|
|
537
541
|
setOutgoingAudioEnabled(enabled: boolean): void;
|
|
538
542
|
setOutgoingVideoEnabled(enabled: boolean): void;
|
|
539
543
|
setOutgoingVideoIsScreenShare(enabled: boolean): void;
|
|
540
|
-
|
|
544
|
+
updateDataMode(dataMode: DataMode): void;
|
|
541
545
|
sendVideoFrame(width: number, height: number, format: VideoPixelFormatEnum, buffer: Buffer): void;
|
|
542
546
|
receiveVideoFrame(buffer: Buffer, maxWidth: number, maxHeight: number): [number, number] | undefined;
|
|
543
547
|
receivedOffer(remoteUserId: UserId, remoteDeviceId: DeviceId, localDeviceId: DeviceId, messageAgeSec: number, callId: CallId, offerType: OfferType, opaque: Buffer, senderIdentityKey: Buffer, receiverIdentityKey: Buffer): void;
|
|
@@ -549,6 +553,7 @@ export interface CallManager {
|
|
|
549
553
|
receivedHttpResponse(requestId: number, status: number, body: Buffer): void;
|
|
550
554
|
httpRequestFailed(requestId: number, debugInfo: string | undefined): void;
|
|
551
555
|
createGroupCallClient(groupId: Buffer, sfuUrl: string, hkdfExtraInfo: Buffer, audioLevelsIntervalMillis: number): GroupCallClientId;
|
|
556
|
+
createCallLinkCallClient(sfuUrl: string, authCredentialPresentation: Buffer, linkRootKey: Buffer, adminPasskey: Buffer | undefined, hkdfExtraInfo: Buffer, audioLevelsIntervalMillis: number): GroupCallClientId;
|
|
552
557
|
deleteGroupCallClient(clientId: GroupCallClientId): void;
|
|
553
558
|
connect(clientId: GroupCallClientId): void;
|
|
554
559
|
join(clientId: GroupCallClientId): void;
|
|
@@ -560,7 +565,7 @@ export interface CallManager {
|
|
|
560
565
|
setOutgoingGroupCallVideoIsScreenShare(clientId: GroupCallClientId, isScreenShare: boolean): void;
|
|
561
566
|
groupRing(clientId: GroupCallClientId, recipient: Buffer | undefined): void;
|
|
562
567
|
resendMediaKeys(clientId: GroupCallClientId): void;
|
|
563
|
-
|
|
568
|
+
setDataMode(clientId: GroupCallClientId, dataMode: DataMode): void;
|
|
564
569
|
requestVideo(clientId: GroupCallClientId, resolutions: Array<VideoRequest>, activeSpeakerHeight: number): void;
|
|
565
570
|
setGroupMembers(clientId: GroupCallClientId, members: Array<GroupMemberInfo>): void;
|
|
566
571
|
setMembershipProof(clientId: GroupCallClientId, proof: Buffer): void;
|
|
@@ -569,6 +574,7 @@ export interface CallManager {
|
|
|
569
574
|
createCallLink(requestId: number, sfuUrl: string, createCredentialPresentation: Buffer, linkRootKey: Buffer, adminPasskey: Buffer, callLinkPublicParams: Buffer): void;
|
|
570
575
|
updateCallLink(requestId: number, sfuUrl: string, authCredentialPresentation: Buffer, linkRootKey: Buffer, adminPasskey: Buffer, newName: string | undefined, newRestrictions: number | undefined, newRevoked: boolean | undefined): void;
|
|
571
576
|
peekGroupCall(requestId: number, sfu_url: string, membership_proof: Buffer, group_members: Array<GroupMemberInfo>): void;
|
|
577
|
+
peekCallLinkCall(requestId: number, sfuUrl: string, authCredentialPresentation: Buffer, linkRootKey: Buffer): void;
|
|
572
578
|
getAudioInputs(): Array<AudioDevice>;
|
|
573
579
|
setAudioInput(index: number): void;
|
|
574
580
|
getAudioOutputs(): Array<AudioDevice>;
|
|
@@ -597,7 +603,7 @@ export interface CallManagerCallbacks {
|
|
|
597
603
|
handleJoinStateChanged(clientId: GroupCallClientId, joinState: JoinState, demuxId: number | undefined): void;
|
|
598
604
|
handleRemoteDevicesChanged(clientId: GroupCallClientId, remoteDeviceStates: Array<RemoteDeviceState>): void;
|
|
599
605
|
handlePeekChanged(clientId: GroupCallClientId, info: PeekInfo): void;
|
|
600
|
-
handlePeekResponse(requestId: number, info: PeekInfo): void;
|
|
606
|
+
handlePeekResponse(requestId: number, statusCode: number, info: PeekInfo | undefined): void;
|
|
601
607
|
handleEnded(clientId: GroupCallClientId, reason: GroupCallEndReason): void;
|
|
602
608
|
onLogMessage(level: number, fileName: string, line: number, message: string): void;
|
|
603
609
|
}
|
package/dist/ringrtc/Service.js
CHANGED
|
@@ -39,7 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
40
|
};
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.CallLogLevel = exports.CallEndedReason = exports.CallState = exports.RingCancelReason = exports.
|
|
42
|
+
exports.CallLogLevel = exports.CallEndedReason = exports.CallState = exports.RingCancelReason = exports.DataMode = exports.HangupType = exports.OpaqueMessage = exports.HangupMessage = exports.BusyMessage = exports.IceCandidateMessage = exports.AnswerMessage = exports.OfferType = exports.OfferMessage = exports.CallingMessage = exports.GroupCall = exports.VideoRequest = exports.GroupMemberInfo = exports.RemoteDeviceState = exports.LocalDeviceState = exports.HttpMethod = exports.RingUpdate = exports.CallMessageUrgency = exports.GroupCallEndReason = exports.JoinState = exports.ConnectionState = exports.Call = exports.RingRTCType = exports.ReceivedAudioLevel = exports.NetworkRoute = exports.PeekStatusCodes = exports.callIdFromRingId = exports.callIdFromEra = void 0;
|
|
43
43
|
/* eslint-disable max-classes-per-file */
|
|
44
44
|
const process = __importStar(require("process"));
|
|
45
45
|
const CallLinks_1 = require("./CallLinks");
|
|
@@ -110,8 +110,7 @@ NativeCallManager.prototype.signalingMessageSent =
|
|
|
110
110
|
Native_1.default.cm_signalingMessageSent;
|
|
111
111
|
NativeCallManager.prototype.signalingMessageSendFailed =
|
|
112
112
|
Native_1.default.cm_signalingMessageSendFailed;
|
|
113
|
-
NativeCallManager.prototype.
|
|
114
|
-
Native_1.default.cm_updateBandwidthMode;
|
|
113
|
+
NativeCallManager.prototype.updateDataMode = Native_1.default.cm_updateDataMode;
|
|
115
114
|
NativeCallManager.prototype.receivedOffer = Native_1.default.cm_receivedOffer;
|
|
116
115
|
NativeCallManager.prototype.receivedAnswer = Native_1.default.cm_receivedAnswer;
|
|
117
116
|
NativeCallManager.prototype.receivedIceCandidates =
|
|
@@ -137,6 +136,8 @@ NativeCallManager.prototype.receiveGroupCallVideoFrame =
|
|
|
137
136
|
Native_1.default.cm_receiveGroupCallVideoFrame;
|
|
138
137
|
NativeCallManager.prototype.createGroupCallClient =
|
|
139
138
|
Native_1.default.cm_createGroupCallClient;
|
|
139
|
+
NativeCallManager.prototype.createCallLinkCallClient =
|
|
140
|
+
Native_1.default.cm_createCallLinkCallClient;
|
|
140
141
|
NativeCallManager.prototype.deleteGroupCallClient =
|
|
141
142
|
Native_1.default.cm_deleteGroupCallClient;
|
|
142
143
|
NativeCallManager.prototype.connect = Native_1.default.cm_connect;
|
|
@@ -153,8 +154,7 @@ NativeCallManager.prototype.setOutgoingGroupCallVideoIsScreenShare =
|
|
|
153
154
|
NativeCallManager.prototype.setPresenting = Native_1.default.cm_setPresenting;
|
|
154
155
|
NativeCallManager.prototype.resendMediaKeys =
|
|
155
156
|
Native_1.default.cm_resendMediaKeys;
|
|
156
|
-
NativeCallManager.prototype.
|
|
157
|
-
Native_1.default.cm_setBandwidthMode;
|
|
157
|
+
NativeCallManager.prototype.setDataMode = Native_1.default.cm_setDataMode;
|
|
158
158
|
NativeCallManager.prototype.requestVideo = Native_1.default.cm_requestVideo;
|
|
159
159
|
NativeCallManager.prototype.setGroupMembers =
|
|
160
160
|
Native_1.default.cm_setGroupMembers;
|
|
@@ -164,26 +164,19 @@ NativeCallManager.prototype.readCallLink = Native_1.default.cm_readCallLink;
|
|
|
164
164
|
NativeCallManager.prototype.createCallLink = Native_1.default.cm_createCallLink;
|
|
165
165
|
NativeCallManager.prototype.updateCallLink = Native_1.default.cm_updateCallLink;
|
|
166
166
|
NativeCallManager.prototype.peekGroupCall = Native_1.default.cm_peekGroupCall;
|
|
167
|
+
NativeCallManager.prototype.peekCallLinkCall =
|
|
168
|
+
Native_1.default.cm_peekCallLinkCall;
|
|
167
169
|
NativeCallManager.prototype.getAudioInputs = Native_1.default.cm_getAudioInputs;
|
|
168
170
|
NativeCallManager.prototype.setAudioInput = Native_1.default.cm_setAudioInput;
|
|
169
171
|
NativeCallManager.prototype.getAudioOutputs =
|
|
170
172
|
Native_1.default.cm_getAudioOutputs;
|
|
171
173
|
NativeCallManager.prototype.setAudioOutput = Native_1.default.cm_setAudioOutput;
|
|
172
174
|
NativeCallManager.prototype.processEvents = Native_1.default.cm_processEvents;
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
-
exports.PeekDeviceInfo = PeekDeviceInfo;
|
|
180
|
-
class PeekInfo {
|
|
181
|
-
constructor() {
|
|
182
|
-
this.devices = [];
|
|
183
|
-
this.deviceCount = 0;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
exports.PeekInfo = PeekInfo;
|
|
175
|
+
var PeekStatusCodes;
|
|
176
|
+
(function (PeekStatusCodes) {
|
|
177
|
+
PeekStatusCodes[PeekStatusCodes["EXPIRED_CALL_LINK"] = 703] = "EXPIRED_CALL_LINK";
|
|
178
|
+
PeekStatusCodes[PeekStatusCodes["INVALID_CALL_LINK"] = 704] = "INVALID_CALL_LINK";
|
|
179
|
+
})(PeekStatusCodes = exports.PeekStatusCodes || (exports.PeekStatusCodes = {}));
|
|
187
180
|
// In sync with WebRTC's PeerConnection.AdapterType.
|
|
188
181
|
// Despite how it looks, this is not an option set.
|
|
189
182
|
// A network adapter type can only be one of the listed values.
|
|
@@ -384,7 +377,7 @@ class RingRTCType {
|
|
|
384
377
|
}
|
|
385
378
|
proceed(callId, settings) {
|
|
386
379
|
sillyDeadlockProtection(() => {
|
|
387
|
-
this.callManager.proceed(callId, settings.iceServer.username || '', settings.iceServer.password || '', settings.iceServer.urls, settings.hideIp, settings.
|
|
380
|
+
this.callManager.proceed(callId, settings.iceServer.username || '', settings.iceServer.password || '', settings.iceServer.urls, settings.hideIp, settings.dataMode, settings.audioLevelsIntervalMillis || 0);
|
|
388
381
|
});
|
|
389
382
|
}
|
|
390
383
|
// Called by Rust
|
|
@@ -708,7 +701,15 @@ class RingRTCType {
|
|
|
708
701
|
// Group Calls
|
|
709
702
|
// Called by UX
|
|
710
703
|
getGroupCall(groupId, sfuUrl, hkdfExtraInfo, audioLevelsIntervalMillis, observer) {
|
|
711
|
-
const
|
|
704
|
+
const clientId = this.callManager.createGroupCallClient(groupId, sfuUrl, hkdfExtraInfo, audioLevelsIntervalMillis || 0);
|
|
705
|
+
const groupCall = new GroupCall(this.callManager, observer, clientId);
|
|
706
|
+
this._groupCallByClientId.set(groupCall.clientId, groupCall);
|
|
707
|
+
return groupCall;
|
|
708
|
+
}
|
|
709
|
+
// Called by UX
|
|
710
|
+
getCallLinkCall(sfuUrl, authCredentialPresentation, rootKey, adminPasskey, hkdfExtraInfo, audioLevelsIntervalMillis, observer) {
|
|
711
|
+
const clientId = this.callManager.createCallLinkCallClient(sfuUrl, authCredentialPresentation, rootKey.bytes, adminPasskey, hkdfExtraInfo, audioLevelsIntervalMillis || 0);
|
|
712
|
+
const groupCall = new GroupCall(this.callManager, observer, clientId);
|
|
712
713
|
this._groupCallByClientId.set(groupCall.clientId, groupCall);
|
|
713
714
|
return groupCall;
|
|
714
715
|
}
|
|
@@ -720,6 +721,22 @@ class RingRTCType {
|
|
|
720
721
|
sillyDeadlockProtection(() => {
|
|
721
722
|
this.callManager.peekGroupCall(requestId, sfuUrl, membershipProof, groupMembers);
|
|
722
723
|
});
|
|
724
|
+
return promise.then(result => {
|
|
725
|
+
if (result.success) {
|
|
726
|
+
return result.value;
|
|
727
|
+
}
|
|
728
|
+
else {
|
|
729
|
+
return { devices: [], deviceCount: 0 };
|
|
730
|
+
}
|
|
731
|
+
});
|
|
732
|
+
}
|
|
733
|
+
// Called by UX
|
|
734
|
+
peekCallLinkCall(sfuUrl, authCredentialPresentation, rootKey) {
|
|
735
|
+
const [requestId, promise] = this._peekRequests.add();
|
|
736
|
+
// Response comes back via handlePeekResponse
|
|
737
|
+
sillyDeadlockProtection(() => {
|
|
738
|
+
this.callManager.peekCallLinkCall(requestId, sfuUrl, authCredentialPresentation, rootKey.bytes);
|
|
739
|
+
});
|
|
723
740
|
return promise;
|
|
724
741
|
}
|
|
725
742
|
// Called by Rust
|
|
@@ -809,9 +826,16 @@ class RingRTCType {
|
|
|
809
826
|
});
|
|
810
827
|
}
|
|
811
828
|
// Called by Rust
|
|
812
|
-
handlePeekResponse(requestId, info) {
|
|
829
|
+
handlePeekResponse(requestId, statusCode, info) {
|
|
813
830
|
sillyDeadlockProtection(() => {
|
|
814
|
-
|
|
831
|
+
let result;
|
|
832
|
+
if (info) {
|
|
833
|
+
result = { success: true, value: info };
|
|
834
|
+
}
|
|
835
|
+
else {
|
|
836
|
+
result = { success: false, errorStatusCode: statusCode };
|
|
837
|
+
}
|
|
838
|
+
if (!this._peekRequests.resolve(requestId, result)) {
|
|
815
839
|
this.logWarn(`Invalid request ID for handlePeekResponse: ${requestId}`);
|
|
816
840
|
}
|
|
817
841
|
});
|
|
@@ -1259,10 +1283,10 @@ class Call {
|
|
|
1259
1283
|
}
|
|
1260
1284
|
});
|
|
1261
1285
|
}
|
|
1262
|
-
|
|
1286
|
+
updateDataMode(dataMode) {
|
|
1263
1287
|
sillyDeadlockProtection(() => {
|
|
1264
1288
|
try {
|
|
1265
|
-
this._callManager.
|
|
1289
|
+
this._callManager.updateDataMode(dataMode);
|
|
1266
1290
|
}
|
|
1267
1291
|
catch (_a) {
|
|
1268
1292
|
// We may not have an active connection any more.
|
|
@@ -1410,11 +1434,11 @@ class GroupCall {
|
|
|
1410
1434
|
return this._clientId;
|
|
1411
1435
|
}
|
|
1412
1436
|
// Called by UI via RingRTC object
|
|
1413
|
-
constructor(callManager,
|
|
1437
|
+
constructor(callManager, observer, clientId) {
|
|
1414
1438
|
this._callManager = callManager;
|
|
1415
1439
|
this._observer = observer;
|
|
1440
|
+
this._clientId = clientId;
|
|
1416
1441
|
this._localDeviceState = new LocalDeviceState();
|
|
1417
|
-
this._clientId = this._callManager.createGroupCallClient(groupId, sfuUrl, hkdfExtraInfo, audioLevelsIntervalMillis || 0);
|
|
1418
1442
|
}
|
|
1419
1443
|
// Called by UI
|
|
1420
1444
|
connect() {
|
|
@@ -1477,8 +1501,8 @@ class GroupCall {
|
|
|
1477
1501
|
this._callManager.resendMediaKeys(this._clientId);
|
|
1478
1502
|
}
|
|
1479
1503
|
// Called by UI
|
|
1480
|
-
|
|
1481
|
-
this._callManager.
|
|
1504
|
+
setDataMode(dataMode) {
|
|
1505
|
+
this._callManager.setDataMode(this._clientId, dataMode);
|
|
1482
1506
|
}
|
|
1483
1507
|
// Called by UI
|
|
1484
1508
|
requestVideo(resolutions, activeSpeakerHeight) {
|
|
@@ -1656,11 +1680,11 @@ var HangupType;
|
|
|
1656
1680
|
HangupType[HangupType["Busy"] = 3] = "Busy";
|
|
1657
1681
|
HangupType[HangupType["NeedPermission"] = 4] = "NeedPermission";
|
|
1658
1682
|
})(HangupType = exports.HangupType || (exports.HangupType = {}));
|
|
1659
|
-
var
|
|
1660
|
-
(function (
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
})(
|
|
1683
|
+
var DataMode;
|
|
1684
|
+
(function (DataMode) {
|
|
1685
|
+
DataMode[DataMode["Low"] = 0] = "Low";
|
|
1686
|
+
DataMode[DataMode["Normal"] = 1] = "Normal";
|
|
1687
|
+
})(DataMode = exports.DataMode || (exports.DataMode = {}));
|
|
1664
1688
|
/// Describes why a ring was cancelled.
|
|
1665
1689
|
var RingCancelReason;
|
|
1666
1690
|
(function (RingCancelReason) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signalapp/ringrtc",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.28.0",
|
|
4
4
|
"description": "Signal Messenger voice and video calling library.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"config": {
|
|
25
25
|
"prebuildUrl": "https://build-artifacts.signal.org/libraries/ringrtc-desktop-build-v${npm_package_version}.tar.gz",
|
|
26
|
-
"prebuildChecksum": "
|
|
26
|
+
"prebuildChecksum": "5d4bd3c13ee3373d0e67dacce7e64a422fdc4e0eb8f9c551495fa5b90ec1f322"
|
|
27
27
|
},
|
|
28
28
|
"author": "",
|
|
29
29
|
"license": "AGPL-3.0-only",
|