@signalapp/ringrtc 2.27.0 → 2.28.1
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 +4 -3
- package/dist/ringrtc/Service.d.ts +26 -14
- package/dist/ringrtc/Service.js +67 -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, GroupCallKind, 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.GroupCallKind = 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; } });
|
|
@@ -19,6 +19,7 @@ Object.defineProperty(exports, "CallingMessage", { enumerable: true, get: functi
|
|
|
19
19
|
Object.defineProperty(exports, "ConnectionState", { enumerable: true, get: function () { return Service_2.ConnectionState; } });
|
|
20
20
|
Object.defineProperty(exports, "GroupCall", { enumerable: true, get: function () { return Service_2.GroupCall; } });
|
|
21
21
|
Object.defineProperty(exports, "GroupCallEndReason", { enumerable: true, get: function () { return Service_2.GroupCallEndReason; } });
|
|
22
|
+
Object.defineProperty(exports, "GroupCallKind", { enumerable: true, get: function () { return Service_2.GroupCallKind; } });
|
|
22
23
|
Object.defineProperty(exports, "GroupMemberInfo", { enumerable: true, get: function () { return Service_2.GroupMemberInfo; } });
|
|
23
24
|
Object.defineProperty(exports, "HangupMessage", { enumerable: true, get: function () { return Service_2.HangupMessage; } });
|
|
24
25
|
Object.defineProperty(exports, "HangupType", { enumerable: true, get: function () { return Service_2.HangupType; } });
|
|
@@ -29,7 +30,7 @@ Object.defineProperty(exports, "LocalDeviceState", { enumerable: true, get: func
|
|
|
29
30
|
Object.defineProperty(exports, "OfferMessage", { enumerable: true, get: function () { return Service_2.OfferMessage; } });
|
|
30
31
|
Object.defineProperty(exports, "OfferType", { enumerable: true, get: function () { return Service_2.OfferType; } });
|
|
31
32
|
Object.defineProperty(exports, "OpaqueMessage", { enumerable: true, get: function () { return Service_2.OpaqueMessage; } });
|
|
32
|
-
Object.defineProperty(exports, "
|
|
33
|
+
Object.defineProperty(exports, "PeekStatusCodes", { enumerable: true, get: function () { return Service_2.PeekStatusCodes; } });
|
|
33
34
|
Object.defineProperty(exports, "RemoteDeviceState", { enumerable: true, get: function () { return Service_2.RemoteDeviceState; } });
|
|
34
35
|
Object.defineProperty(exports, "RingCancelReason", { enumerable: true, get: function () { return Service_2.RingCancelReason; } });
|
|
35
36
|
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;
|
|
@@ -399,6 +403,10 @@ export declare class VideoRequest {
|
|
|
399
403
|
framerate: number | undefined;
|
|
400
404
|
constructor(demuxId: number, width: number, height: number, framerate: number | undefined);
|
|
401
405
|
}
|
|
406
|
+
export declare enum GroupCallKind {
|
|
407
|
+
SignalGroup = 0,
|
|
408
|
+
CallLink = 1
|
|
409
|
+
}
|
|
402
410
|
export interface GroupCallObserver {
|
|
403
411
|
requestMembershipProof(groupCall: GroupCall): void;
|
|
404
412
|
requestGroupMembers(groupCall: GroupCall): void;
|
|
@@ -409,6 +417,7 @@ export interface GroupCallObserver {
|
|
|
409
417
|
onEnded(groupCall: GroupCall, reason: GroupCallEndReason): void;
|
|
410
418
|
}
|
|
411
419
|
export declare class GroupCall {
|
|
420
|
+
private readonly _kind;
|
|
412
421
|
private readonly _callManager;
|
|
413
422
|
private readonly _observer;
|
|
414
423
|
private readonly _clientId;
|
|
@@ -416,7 +425,8 @@ export declare class GroupCall {
|
|
|
416
425
|
private _localDeviceState;
|
|
417
426
|
private _remoteDeviceStates;
|
|
418
427
|
private _peekInfo;
|
|
419
|
-
constructor(
|
|
428
|
+
constructor(kind: GroupCallKind, callManager: CallManager, observer: GroupCallObserver, clientId: GroupCallClientId);
|
|
429
|
+
getKind(): GroupCallKind;
|
|
420
430
|
connect(): void;
|
|
421
431
|
join(): void;
|
|
422
432
|
leave(): void;
|
|
@@ -430,7 +440,7 @@ export declare class GroupCall {
|
|
|
430
440
|
setOutgoingVideoIsScreenShare(isScreenShare: boolean): void;
|
|
431
441
|
ringAll(): void;
|
|
432
442
|
resendMediaKeys(): void;
|
|
433
|
-
|
|
443
|
+
setDataMode(dataMode: DataMode): void;
|
|
434
444
|
requestVideo(resolutions: Array<VideoRequest>, activeSpeakerHeight: number): void;
|
|
435
445
|
setGroupMembers(members: Array<GroupMemberInfo>): void;
|
|
436
446
|
setMembershipProof(proof: Buffer): void;
|
|
@@ -515,7 +525,7 @@ export declare enum HangupType {
|
|
|
515
525
|
Busy = 3,
|
|
516
526
|
NeedPermission = 4
|
|
517
527
|
}
|
|
518
|
-
export declare enum
|
|
528
|
+
export declare enum DataMode {
|
|
519
529
|
Low = 0,
|
|
520
530
|
Normal = 1
|
|
521
531
|
}
|
|
@@ -527,7 +537,7 @@ export interface CallManager {
|
|
|
527
537
|
setConfig(config: Config): void;
|
|
528
538
|
setSelfUuid(uuid: Buffer): void;
|
|
529
539
|
createOutgoingCall(remoteUserId: UserId, isVideoCall: boolean, localDeviceId: DeviceId): CallId;
|
|
530
|
-
proceed(callId: CallId, iceServerUsername: string, iceServerPassword: string, iceServerUrls: Array<string>, hideIp: boolean,
|
|
540
|
+
proceed(callId: CallId, iceServerUsername: string, iceServerPassword: string, iceServerUrls: Array<string>, hideIp: boolean, dataMode: DataMode, audioLevelsIntervalMillis: number): void;
|
|
531
541
|
accept(callId: CallId): void;
|
|
532
542
|
ignore(callId: CallId): void;
|
|
533
543
|
hangup(): void;
|
|
@@ -537,7 +547,7 @@ export interface CallManager {
|
|
|
537
547
|
setOutgoingAudioEnabled(enabled: boolean): void;
|
|
538
548
|
setOutgoingVideoEnabled(enabled: boolean): void;
|
|
539
549
|
setOutgoingVideoIsScreenShare(enabled: boolean): void;
|
|
540
|
-
|
|
550
|
+
updateDataMode(dataMode: DataMode): void;
|
|
541
551
|
sendVideoFrame(width: number, height: number, format: VideoPixelFormatEnum, buffer: Buffer): void;
|
|
542
552
|
receiveVideoFrame(buffer: Buffer, maxWidth: number, maxHeight: number): [number, number] | undefined;
|
|
543
553
|
receivedOffer(remoteUserId: UserId, remoteDeviceId: DeviceId, localDeviceId: DeviceId, messageAgeSec: number, callId: CallId, offerType: OfferType, opaque: Buffer, senderIdentityKey: Buffer, receiverIdentityKey: Buffer): void;
|
|
@@ -549,6 +559,7 @@ export interface CallManager {
|
|
|
549
559
|
receivedHttpResponse(requestId: number, status: number, body: Buffer): void;
|
|
550
560
|
httpRequestFailed(requestId: number, debugInfo: string | undefined): void;
|
|
551
561
|
createGroupCallClient(groupId: Buffer, sfuUrl: string, hkdfExtraInfo: Buffer, audioLevelsIntervalMillis: number): GroupCallClientId;
|
|
562
|
+
createCallLinkCallClient(sfuUrl: string, authCredentialPresentation: Buffer, linkRootKey: Buffer, adminPasskey: Buffer | undefined, hkdfExtraInfo: Buffer, audioLevelsIntervalMillis: number): GroupCallClientId;
|
|
552
563
|
deleteGroupCallClient(clientId: GroupCallClientId): void;
|
|
553
564
|
connect(clientId: GroupCallClientId): void;
|
|
554
565
|
join(clientId: GroupCallClientId): void;
|
|
@@ -560,7 +571,7 @@ export interface CallManager {
|
|
|
560
571
|
setOutgoingGroupCallVideoIsScreenShare(clientId: GroupCallClientId, isScreenShare: boolean): void;
|
|
561
572
|
groupRing(clientId: GroupCallClientId, recipient: Buffer | undefined): void;
|
|
562
573
|
resendMediaKeys(clientId: GroupCallClientId): void;
|
|
563
|
-
|
|
574
|
+
setDataMode(clientId: GroupCallClientId, dataMode: DataMode): void;
|
|
564
575
|
requestVideo(clientId: GroupCallClientId, resolutions: Array<VideoRequest>, activeSpeakerHeight: number): void;
|
|
565
576
|
setGroupMembers(clientId: GroupCallClientId, members: Array<GroupMemberInfo>): void;
|
|
566
577
|
setMembershipProof(clientId: GroupCallClientId, proof: Buffer): void;
|
|
@@ -569,6 +580,7 @@ export interface CallManager {
|
|
|
569
580
|
createCallLink(requestId: number, sfuUrl: string, createCredentialPresentation: Buffer, linkRootKey: Buffer, adminPasskey: Buffer, callLinkPublicParams: Buffer): void;
|
|
570
581
|
updateCallLink(requestId: number, sfuUrl: string, authCredentialPresentation: Buffer, linkRootKey: Buffer, adminPasskey: Buffer, newName: string | undefined, newRestrictions: number | undefined, newRevoked: boolean | undefined): void;
|
|
571
582
|
peekGroupCall(requestId: number, sfu_url: string, membership_proof: Buffer, group_members: Array<GroupMemberInfo>): void;
|
|
583
|
+
peekCallLinkCall(requestId: number, sfuUrl: string, authCredentialPresentation: Buffer, linkRootKey: Buffer): void;
|
|
572
584
|
getAudioInputs(): Array<AudioDevice>;
|
|
573
585
|
setAudioInput(index: number): void;
|
|
574
586
|
getAudioOutputs(): Array<AudioDevice>;
|
|
@@ -597,7 +609,7 @@ export interface CallManagerCallbacks {
|
|
|
597
609
|
handleJoinStateChanged(clientId: GroupCallClientId, joinState: JoinState, demuxId: number | undefined): void;
|
|
598
610
|
handleRemoteDevicesChanged(clientId: GroupCallClientId, remoteDeviceStates: Array<RemoteDeviceState>): void;
|
|
599
611
|
handlePeekChanged(clientId: GroupCallClientId, info: PeekInfo): void;
|
|
600
|
-
handlePeekResponse(requestId: number, info: PeekInfo): void;
|
|
612
|
+
handlePeekResponse(requestId: number, statusCode: number, info: PeekInfo | undefined): void;
|
|
601
613
|
handleEnded(clientId: GroupCallClientId, reason: GroupCallEndReason): void;
|
|
602
614
|
onLogMessage(level: number, fileName: string, line: number, message: string): void;
|
|
603
615
|
}
|
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.GroupCallKind = 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(GroupCallKind.SignalGroup, 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(GroupCallKind.CallLink, 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.
|
|
@@ -1405,16 +1429,25 @@ class VideoRequest {
|
|
|
1405
1429
|
}
|
|
1406
1430
|
}
|
|
1407
1431
|
exports.VideoRequest = VideoRequest;
|
|
1432
|
+
var GroupCallKind;
|
|
1433
|
+
(function (GroupCallKind) {
|
|
1434
|
+
GroupCallKind[GroupCallKind["SignalGroup"] = 0] = "SignalGroup";
|
|
1435
|
+
GroupCallKind[GroupCallKind["CallLink"] = 1] = "CallLink";
|
|
1436
|
+
})(GroupCallKind = exports.GroupCallKind || (exports.GroupCallKind = {}));
|
|
1408
1437
|
class GroupCall {
|
|
1409
1438
|
get clientId() {
|
|
1410
1439
|
return this._clientId;
|
|
1411
1440
|
}
|
|
1412
1441
|
// Called by UI via RingRTC object
|
|
1413
|
-
constructor(
|
|
1442
|
+
constructor(kind, callManager, observer, clientId) {
|
|
1443
|
+
this._kind = kind;
|
|
1414
1444
|
this._callManager = callManager;
|
|
1415
1445
|
this._observer = observer;
|
|
1446
|
+
this._clientId = clientId;
|
|
1416
1447
|
this._localDeviceState = new LocalDeviceState();
|
|
1417
|
-
|
|
1448
|
+
}
|
|
1449
|
+
getKind() {
|
|
1450
|
+
return this._kind;
|
|
1418
1451
|
}
|
|
1419
1452
|
// Called by UI
|
|
1420
1453
|
connect() {
|
|
@@ -1477,8 +1510,8 @@ class GroupCall {
|
|
|
1477
1510
|
this._callManager.resendMediaKeys(this._clientId);
|
|
1478
1511
|
}
|
|
1479
1512
|
// Called by UI
|
|
1480
|
-
|
|
1481
|
-
this._callManager.
|
|
1513
|
+
setDataMode(dataMode) {
|
|
1514
|
+
this._callManager.setDataMode(this._clientId, dataMode);
|
|
1482
1515
|
}
|
|
1483
1516
|
// Called by UI
|
|
1484
1517
|
requestVideo(resolutions, activeSpeakerHeight) {
|
|
@@ -1656,11 +1689,11 @@ var HangupType;
|
|
|
1656
1689
|
HangupType[HangupType["Busy"] = 3] = "Busy";
|
|
1657
1690
|
HangupType[HangupType["NeedPermission"] = 4] = "NeedPermission";
|
|
1658
1691
|
})(HangupType = exports.HangupType || (exports.HangupType = {}));
|
|
1659
|
-
var
|
|
1660
|
-
(function (
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
})(
|
|
1692
|
+
var DataMode;
|
|
1693
|
+
(function (DataMode) {
|
|
1694
|
+
DataMode[DataMode["Low"] = 0] = "Low";
|
|
1695
|
+
DataMode[DataMode["Normal"] = 1] = "Normal";
|
|
1696
|
+
})(DataMode = exports.DataMode || (exports.DataMode = {}));
|
|
1664
1697
|
/// Describes why a ring was cancelled.
|
|
1665
1698
|
var RingCancelReason;
|
|
1666
1699
|
(function (RingCancelReason) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signalapp/ringrtc",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.28.1",
|
|
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": "dbb62fd077e90117bb6c4d093c8da810067054ad4f577e943e0b9ed22419a10b"
|
|
27
27
|
},
|
|
28
28
|
"author": "",
|
|
29
29
|
"license": "AGPL-3.0-only",
|