voice-react-native-sdk 2.0.0-preview.fork.2 → 2.0.0-preview.fork.4
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/android/src/main/java/com/twiliovoicereactnative/CommonConstants.java +1 -0
- package/ios/TwilioVoiceReactNative+CallKit.m +3 -0
- package/ios/TwilioVoiceReactNative.m +16 -3
- package/ios/TwilioVoiceReactNativeConstants.h +1 -0
- package/lib/commonjs/Call.js +31 -7
- package/lib/commonjs/Call.js.map +1 -1
- package/lib/commonjs/constants.js +1 -0
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/module/Call.js +31 -7
- package/lib/module/Call.js.map +1 -1
- package/lib/module/constants.js +1 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/typescript/Call.d.ts +44 -0
- package/lib/typescript/constants.d.ts +1 -0
- package/lib/typescript/type/Call.d.ts +6 -2
- package/package.json +1 -1
- package/src/Call.tsx +81 -9
- package/src/constants.ts +1 -0
- package/src/type/Call.ts +7 -0
|
@@ -116,6 +116,7 @@ public class CommonConstants {
|
|
|
116
116
|
public static final String CallEventReconnecting = "callEventReconnecting";
|
|
117
117
|
public static final String CallEventReconnected = "callEventReconnected";
|
|
118
118
|
public static final String CallEventRinging = "callEventRinging";
|
|
119
|
+
public static final String CallEventHold = "callEventHold";
|
|
119
120
|
|
|
120
121
|
// Quality warnings
|
|
121
122
|
public static final String CallEventQualityWarningsChanged = "callEventQualityWarningsChanged";
|
|
@@ -308,6 +308,9 @@ NSString * const kDefaultCallKitConfigurationName = @"Twilio Voice React Native"
|
|
|
308
308
|
if (self.callMap[action.callUUID.UUIDString]) {
|
|
309
309
|
TVOCall *call = self.callMap[action.callUUID.UUIDString];
|
|
310
310
|
[call setOnHold:action.isOnHold];
|
|
311
|
+
[self sendEventWithName:kTwilioVoiceReactNativeScopeCall
|
|
312
|
+
body:@{kTwilioVoiceReactNativeVoiceEventType: kTwilioVoiceReactNativeCallEventHold,
|
|
313
|
+
kTwilioVoiceReactNativeEventKeyCall: [self callInfo:call]}];
|
|
311
314
|
[action fulfill];
|
|
312
315
|
} else {
|
|
313
316
|
[action fail];
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
@import AVKit;
|
|
9
|
+
@import CallKit;
|
|
9
10
|
|
|
10
11
|
#import "TwilioVoicePushRegistry.h"
|
|
11
12
|
#import "TwilioVoiceReactNative.h"
|
|
@@ -780,9 +781,21 @@ RCT_EXPORT_METHOD(call_hold:(NSString *)uuid
|
|
|
780
781
|
{
|
|
781
782
|
TVOCall *call = [self getCallFromMap:uuid resolver:resolver];
|
|
782
783
|
if (!call) return;
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
784
|
+
|
|
785
|
+
// Persist the hold state to CallKit
|
|
786
|
+
// This is to fix a bug where when ending a call, if there was another call on hold, the call would not allow voice input/output.
|
|
787
|
+
CXSetHeldCallAction *holdAction = [[CXSetHeldCallAction alloc] initWithCallUUID:call.uuid onHold:onHold];
|
|
788
|
+
CXTransaction *transaction = [[CXTransaction alloc] initWithAction:holdAction];
|
|
789
|
+
|
|
790
|
+
[self.callKitCallController requestTransaction:transaction completion:^(NSError *error) {
|
|
791
|
+
if (error) {
|
|
792
|
+
[call setOnHold:onHold];
|
|
793
|
+
if (!onHold) {
|
|
794
|
+
[TwilioVoiceReactNative twilioAudioDevice].enabled = YES;
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
[self resolvePromise:resolver value:@(call.isOnHold)];
|
|
798
|
+
}];
|
|
786
799
|
}
|
|
787
800
|
|
|
788
801
|
RCT_EXPORT_METHOD(call_isOnHold:(NSString *)uuid
|
|
@@ -122,6 +122,7 @@ static NSString * const kTwilioVoiceReactNativeCallEventDisconnected = @"callEve
|
|
|
122
122
|
static NSString * const kTwilioVoiceReactNativeCallEventReconnecting = @"callEventReconnecting";
|
|
123
123
|
static NSString * const kTwilioVoiceReactNativeCallEventReconnected = @"callEventReconnected";
|
|
124
124
|
static NSString * const kTwilioVoiceReactNativeCallEventRinging = @"callEventRinging";
|
|
125
|
+
static NSString * const kTwilioVoiceReactNativeCallEventHold = @"callEventHold";
|
|
125
126
|
|
|
126
127
|
// Quality warnings
|
|
127
128
|
static NSString * const kTwilioVoiceReactNativeCallEventQualityWarningsChanged = @"callEventQualityWarningsChanged";
|
package/lib/commonjs/Call.js
CHANGED
|
@@ -179,10 +179,11 @@ class Call extends _eventemitter.EventEmitter {
|
|
|
179
179
|
|
|
180
180
|
this._update(nativeCallEvent);
|
|
181
181
|
|
|
182
|
+
const event = nativeCallEvent;
|
|
182
183
|
const {
|
|
183
184
|
message,
|
|
184
185
|
code
|
|
185
|
-
} =
|
|
186
|
+
} = event.error;
|
|
186
187
|
const error = (0, _utility.constructTwilioError)(message, code);
|
|
187
188
|
this.emit(Call.Event.ConnectFailure, error);
|
|
188
189
|
});
|
|
@@ -194,11 +195,13 @@ class Call extends _eventemitter.EventEmitter {
|
|
|
194
195
|
|
|
195
196
|
this._update(nativeCallEvent);
|
|
196
197
|
|
|
197
|
-
|
|
198
|
+
const event = nativeCallEvent;
|
|
199
|
+
|
|
200
|
+
if (event.error) {
|
|
198
201
|
const {
|
|
199
202
|
message,
|
|
200
203
|
code
|
|
201
|
-
} =
|
|
204
|
+
} = event.error;
|
|
202
205
|
const error = (0, _utility.constructTwilioError)(message, code);
|
|
203
206
|
this.emit(Call.Event.Disconnected, error);
|
|
204
207
|
} else {
|
|
@@ -213,10 +216,11 @@ class Call extends _eventemitter.EventEmitter {
|
|
|
213
216
|
|
|
214
217
|
this._update(nativeCallEvent);
|
|
215
218
|
|
|
219
|
+
const event = nativeCallEvent;
|
|
216
220
|
const {
|
|
217
221
|
message,
|
|
218
222
|
code
|
|
219
|
-
} =
|
|
223
|
+
} = event.error;
|
|
220
224
|
const error = (0, _utility.constructTwilioError)(message, code);
|
|
221
225
|
this.emit(Call.Event.Reconnecting, error);
|
|
222
226
|
});
|
|
@@ -241,6 +245,18 @@ class Call extends _eventemitter.EventEmitter {
|
|
|
241
245
|
this.emit(Call.Event.Ringing);
|
|
242
246
|
});
|
|
243
247
|
|
|
248
|
+
_defineProperty(this, "_handleHoldEvent", nativeCallEvent => {
|
|
249
|
+
var _this$_isOnHold;
|
|
250
|
+
|
|
251
|
+
if (nativeCallEvent.type !== _constants.Constants.CallEventHold) {
|
|
252
|
+
throw new Error('Incorrect "call#hold" handler called for type ' + `"${nativeCallEvent.type}".`);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
this._update(nativeCallEvent);
|
|
256
|
+
|
|
257
|
+
this.emit(Call.Event.Hold, (_this$_isOnHold = this._isOnHold) !== null && _this$_isOnHold !== void 0 ? _this$_isOnHold : false);
|
|
258
|
+
});
|
|
259
|
+
|
|
244
260
|
_defineProperty(this, "_handleQualityWarningsChangedEvent", nativeCallEvent => {
|
|
245
261
|
if (nativeCallEvent.type !== _constants.Constants.CallEventQualityWarningsChanged) {
|
|
246
262
|
throw new Error('Incorrect "call#qualityWarnings" handler called for type ' + `"${nativeCallEvent.type}".`);
|
|
@@ -248,8 +264,9 @@ class Call extends _eventemitter.EventEmitter {
|
|
|
248
264
|
|
|
249
265
|
this._update(nativeCallEvent);
|
|
250
266
|
|
|
251
|
-
const
|
|
252
|
-
const
|
|
267
|
+
const event = nativeCallEvent;
|
|
268
|
+
const currentWarnings = event[_constants.Constants.CallEventCurrentWarnings];
|
|
269
|
+
const previousWarnings = event[_constants.Constants.CallEventPreviousWarnings];
|
|
253
270
|
this.emit(Call.Event.QualityWarningsChanged, currentWarnings, previousWarnings);
|
|
254
271
|
});
|
|
255
272
|
|
|
@@ -260,9 +277,10 @@ class Call extends _eventemitter.EventEmitter {
|
|
|
260
277
|
|
|
261
278
|
this._update(nativeCallEvent);
|
|
262
279
|
|
|
280
|
+
const event = nativeCallEvent;
|
|
263
281
|
const {
|
|
264
282
|
callMessage: callMessageInfo
|
|
265
|
-
} =
|
|
283
|
+
} = event;
|
|
266
284
|
const incomingCallMessage = new _IncomingCallMessage.IncomingCallMessage(callMessageInfo);
|
|
267
285
|
this.emit(Call.Event.MessageReceived, incomingCallMessage);
|
|
268
286
|
});
|
|
@@ -287,6 +305,7 @@ class Call extends _eventemitter.EventEmitter {
|
|
|
287
305
|
[_constants.Constants.CallEventReconnected]: this._handleReconnectedEvent,
|
|
288
306
|
[_constants.Constants.CallEventReconnecting]: this._handleReconnectingEvent,
|
|
289
307
|
[_constants.Constants.CallEventRinging]: this._handleRingingEvent,
|
|
308
|
+
[_constants.Constants.CallEventHold]: this._handleHoldEvent,
|
|
290
309
|
|
|
291
310
|
/**
|
|
292
311
|
* Call Quality
|
|
@@ -322,6 +341,8 @@ class Call extends _eventemitter.EventEmitter {
|
|
|
322
341
|
call: {
|
|
323
342
|
from,
|
|
324
343
|
initialConnectedTimestamp,
|
|
344
|
+
isOnHold,
|
|
345
|
+
isMuted,
|
|
325
346
|
sid,
|
|
326
347
|
to
|
|
327
348
|
}
|
|
@@ -334,6 +355,8 @@ class Call extends _eventemitter.EventEmitter {
|
|
|
334
355
|
|
|
335
356
|
this._from = from;
|
|
336
357
|
this._initialConnectedTimestamp = initialConnectedTimestamp ? new Date(initialConnectedTimestamp) : undefined;
|
|
358
|
+
this._isOnHold = isOnHold;
|
|
359
|
+
this._isMuted = isMuted;
|
|
337
360
|
this._sid = sid;
|
|
338
361
|
this._to = to;
|
|
339
362
|
}
|
|
@@ -649,6 +672,7 @@ exports.Call = Call;
|
|
|
649
672
|
Event["Reconnected"] = "reconnected";
|
|
650
673
|
Event["Disconnected"] = "disconnected";
|
|
651
674
|
Event["Ringing"] = "ringing";
|
|
675
|
+
Event["Hold"] = "hold";
|
|
652
676
|
Event["QualityWarningsChanged"] = "qualityWarningsChanged";
|
|
653
677
|
Event["MessageReceived"] = "messageReceived";
|
|
654
678
|
})(Event || (Event = {}));
|
package/lib/commonjs/Call.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Call.tsx"],"names":["Call","EventEmitter","constructor","uuid","customParameters","from","sid","state","to","isMuted","isOnHold","initialConnectedTimestamp","nativeCallEvent","type","call","callInfo","handler","_nativeEventHandler","Error","_uuid","Constants","CallEventConnected","_update","emit","Event","Connected","CallEventConnectFailure","message","code","error","ConnectFailure","CallEventDisconnected","Disconnected","CallEventReconnecting","Reconnecting","CallEventReconnected","Reconnected","CallEventRinging","Ringing","CallEventQualityWarningsChanged","currentWarnings","CallEventCurrentWarnings","previousWarnings","CallEventPreviousWarnings","QualityWarningsChanged","CallEventMessageReceived","callMessage","callMessageInfo","incomingCallMessage","IncomingCallMessage","MessageReceived","_customParameters","_from","_sid","_state","State","Connecting","_to","_isMuted","_isOnHold","_initialConnectedTimestamp","Date","undefined","_handleConnectedEvent","_handleConnectFailureEvent","_handleDisconnectedEvent","_handleReconnectedEvent","_handleReconnectingEvent","_handleRingingEvent","_handleQualityWarningsChangedEvent","_handleMessageReceivedEvent","NativeEventEmitter","addListener","ScopeCall","_handleNativeEvent","newState","eventTypeStateMap","disconnect","NativeModule","call_disconnect","getCustomParameters","getFrom","getInitialConnectedTimestamp","getSid","getState","getStats","stats","call_getStats","getTo","hold","call_hold","mute","call_mute","sendDigits","digits","call_sendDigits","sendMessage","content","contentType","messageType","voiceEventSid","call_sendMessage","outgoingCallMessage","OutgoingCallMessage","postFeedback","score","issue","validScores","includes","InvalidArgumentError","Object","values","Issue","nativeScore","scoreMap","nativeIssue","issueMap","call_postFeedback","CallStateConnected","CallStateConnecting","CallStateDisconnected","CallStateReconnecting","CallStateRinging","QualityWarning","Score","Listener","NotReported","One","Two","Three","Four","Five","CallFeedbackScoreNotReported","CallFeedbackScoreOne","CallFeedbackScoreTwo","CallFeedbackScoreThree","CallFeedbackScoreFour","CallFeedbackScoreFive","AudioLatency","CallFeedbackIssueAudioLatency","ChoppyAudio","CallFeedbackIssueChoppyAudio","DroppedCall","CallFeedbackIssueDroppedCall","Echo","CallFeedbackIssueEcho","NoisyCall","CallFeedbackIssueNoisyCall","CallFeedbackIssueNotReported","OneWayAudio","CallFeedbackIssueOneWayAudio"],"mappings":"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,QAAQ,GAAe;AACrB,WAAO,KAAK9B,MAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACgB,QAAR+B,QAAQ,GAAkC;AAC9C,UAAMC,KAAK,GAAG,MAAM,wCAClBR,qBAAaS,aAAb,CAA2B,KAAKpE,KAAhC,CADkB,CAApB;AAGA,WAAOmE,KAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEE,EAAAA,KAAK,GAAuB;AAC1B,WAAO,KAAK/B,GAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACY,QAAJgC,IAAI,CAACA,IAAD,EAAkC;AAC1C,SAAK9B,SAAL,GAAiB,MAAM,wCACrBmB,qBAAaY,SAAb,CAAuB,KAAKvE,KAA5B,EAAmCsE,IAAnC,CADqB,CAAvB;AAGA,WAAO,KAAK9B,SAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACY,QAAJgC,IAAI,CAACA,IAAD,EAAkC;AAC1C,SAAKjC,QAAL,GAAgB,MAAM,wCACpBoB,qBAAac,SAAb,CAAuB,KAAKzE,KAA5B,EAAmCwE,IAAnC,CADoB,CAAtB;AAGA,WAAO,KAAKjC,QAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACkB,QAAVmC,UAAU,CAACC,MAAD,EAAgC;AAC9C,UAAM,wCAAoBhB,qBAAaiB,eAAb,CAA6B,KAAK5E,KAAlC,EAAyC2E,MAAzC,CAApB,CAAN;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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","sourcesContent":["/**\n * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio\n * license.\n *\n * See LICENSE in the project root for license information.\n */\n\nimport { EventEmitter } from 'eventemitter3';\nimport type { RTCStats } from './';\nimport { NativeModule, NativeEventEmitter } from './common';\nimport { Constants } from './constants';\nimport type {\n NativeCallEvent,\n NativeCallEventType,\n NativeCallInfo,\n NativeCallFeedbackIssue,\n NativeCallFeedbackScore,\n} from './type/Call';\nimport type { CustomParameters, Uuid } from './type/common';\nimport type { TwilioError } from './error/TwilioError';\nimport { InvalidArgumentError } from './error/InvalidArgumentError';\nimport { constructTwilioError } from './error/utility';\nimport { CallMessage, validateCallMessage } from './CallMessage/CallMessage';\nimport { IncomingCallMessage } from './CallMessage/IncomingCallMessage';\nimport { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';\nimport { settleNativePromise } from './utility/nativePromise';\n\n/**\n * Defines strict typings for all events emitted by {@link (Call:class)\n * | Call objects}.\n *\n * @remarks\n * Note that the `on` function is an alias for the `addListener` function.\n * They share identical functionality and either may be used interchangeably.\n *\n * - See also the {@link (Call:class) | Call class}.\n * - See also the {@link (Call:namespace) | Call namespace}.\n *\n * @public\n */\nexport declare interface Call {\n /**\n * ------------\n * Emit Typings\n * ------------\n */\n\n /** @internal */\n emit(connectedEvent: Call.Event.Connected): boolean;\n\n /** @internal */\n emit(\n connectFailureEvent: Call.Event.ConnectFailure,\n error: TwilioError\n ): boolean;\n\n /** @internal */\n emit(reconnectingEvent: Call.Event.Reconnecting, error: TwilioError): boolean;\n\n /** @internal */\n emit(reconnectedEvent: Call.Event.Reconnected): boolean;\n\n /** @internal */\n emit(\n disconnectedEvent: Call.Event.Disconnected,\n error?: TwilioError\n ): boolean;\n\n /** @internal */\n emit(ringingEvent: Call.Event.Ringing): boolean;\n\n /** @internal */\n emit(\n qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged,\n currentQualityWarnings: Call.QualityWarning[],\n previousQualityWarnings: Call.QualityWarning[]\n ): boolean;\n\n /** @internal */\n emit(\n messageReceivedEvent: Call.Event.MessageReceived,\n incomingCallMessage: IncomingCallMessage\n ): boolean;\n\n /**\n * ----------------\n * Listener Typings\n * ----------------\n */\n\n /**\n * Connected event. Raised when the call has successfully connected.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Connected, () => {\n * // call has been connected\n * });\n * ```\n *\n * @param connectedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n connectedEvent: Call.Event.Connected,\n listener: Call.Listener.Connected\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:1)}\n */\n on(\n connectedEvent: Call.Event.Connected,\n listener: Call.Listener.Connected\n ): this;\n\n /**\n * Connect failure event. Raised when the call has failed to connect.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.ConnectFailure, (error) => {\n * // call was unable to connect, handle error\n * });\n * ```\n *\n * @param connectFailureEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n connectFailureEvent: Call.Event.ConnectFailure,\n listener: Call.Listener.ConnectFailure\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:2)}\n */\n on(\n connectFailureEvent: Call.Event.ConnectFailure,\n listener: Call.Listener.ConnectFailure\n ): this;\n\n /**\n * Reconnecting event. Raised when the call is reconnecting.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Reconnecting, (error) => {\n * // call is attempting to reconnect, handle error\n * });\n * ```\n *\n * @param reconnectingEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n reconnectingEvent: Call.Event.Reconnecting,\n listener: Call.Listener.Reconnecting\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:3)}\n */\n on(\n reconnectingEvent: Call.Event.Reconnecting,\n listener: Call.Listener.Reconnecting\n ): this;\n\n /**\n * Reconnected event. Raised when the call has recovered and reconnected.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Reconnected, () => {\n * // call has reconnected\n * });\n * ```\n *\n * @param reconnectedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n reconnectedEvent: Call.Event.Reconnected,\n listener: Call.Listener.Reconnected\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:4)}\n */\n on(\n reconnectedEvent: Call.Event.Reconnected,\n listener: Call.Listener.Reconnected\n ): this;\n\n /**\n * Disconnected event. Raised when the call has disconnected.\n *\n * @remarks\n * This event can occur in \"naturally\" disconnected calls and calls\n * disconnected from issues such as network problems. If the SDK has detected\n * an issue that has caused the call to disconnect, then the error parameter\n * will be defined, otherwise it will be undefined.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Disconnected, (error) => {\n * // call has disconnected\n * // if a natural disconnect occurred, then error is `undefined`\n * // if an unnatural disconnect occurred, then error is defined\n * });\n * ```\n *\n * @param disconnectedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n disconnectedEvent: Call.Event.Disconnected,\n listener: Call.Listener.Disconnected\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:5)}\n */\n on(\n disconnectedEvent: Call.Event.Disconnected,\n listener: Call.Listener.Disconnected\n ): this;\n\n /**\n * Ringing event. Raised when the call has begun to ring.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Ringing, () => {\n * // call is ringing\n * });\n * ```\n *\n * @param ringingEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n ringingEvent: Call.Event.Ringing,\n listener: Call.Listener.Ringing\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:6)}\n */\n on(ringingEvent: Call.Event.Ringing, listener: Call.Listener.Ringing): this;\n\n /**\n * Quality warnings changed event. Raised when a call quality warning is set\n * or unset. All \"ongoing\" call quality warnings are passed to the invoked\n * listener function.\n *\n * @example\n * ```typescript\n * call.addListener(\n * Call.Event.QualityWarningsChanged,\n * (\n * currentWarnings: Call.QualityWarning[],\n * previousWarnings: Call.QualityWarning[]\n * ) => {\n * // call quality warnings have changed\n * }\n * );\n * ```\n *\n * @param qualityWarningsChangedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged,\n listener: Call.Listener.QualityWarningsChanged\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:7)}\n */\n on(\n qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged,\n listener: Call.Listener.QualityWarningsChanged\n ): this;\n\n /**\n * MessageReceived event. Raised when a {@link IncomingCallMessage} is\n * received.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.MessageReceived, (message) => {\n * // callMessage received\n * })\n * ```\n *\n * @param messageReceivedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The callMessage object\n */\n addListener(\n messageReceivedEvent: Call.Event.MessageReceived,\n listener: Call.Listener.MessageReceived\n ): this;\n /** {@inheritDoc (Call:interface).(addListener:8)} */\n on(\n callMessageEvent: Call.Event.MessageReceived,\n listener: Call.Listener.MessageReceived\n ): this;\n\n /**\n * Generic event listener typings.\n * @param callEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(callEvent: Call.Event, listener: Call.Listener.Generic): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:9)}\n */\n on(callEvent: Call.Event, listener: Call.Listener.Generic): this;\n}\n\n/**\n * Provides access to information about a call, including the call parameters,\n * and exposes functionality for a call such as disconnecting, muting, and\n * holding.\n *\n * @remarks\n * Note that the call information is fetched as soon as possible from the native\n * layer, but there is no guarantee that all information is immediately\n * available. Methods such as `Call.getFrom()` or `Call.getTo()` may return\n * `undefined`.\n *\n * As call events are received from the native layer, call information will\n * propagate from the native layer to the JS layer and become available.\n * Therefore, it is good practice to read information from the call after an\n * event occurs, or as events occur.\n *\n * - See the {@link (Call:namespace).Event} enum for events emitted by `Call`\n * objects.\n * - See the {@link (Call:interface) | Call interface} for overloaded event\n * listening methods.\n * - See the {@link (Call:namespace) | Call namespace} for types and\n * enumerations used by this class.\n *\n * @public\n */\nexport class Call extends EventEmitter {\n /**\n * The `Uuid` of this call. Used to identify calls between the JS and native\n * layer so we can associate events and native functionality between the\n * layers.\n */\n private _uuid: Uuid;\n /**\n * Call custom parameters.\n */\n private _customParameters: CustomParameters;\n /**\n * Call `from` parameter.\n */\n private _from?: string;\n /**\n * Initial `connected` timestamp. Milliseconds since epoch.\n */\n private _initialConnectedTimestamp?: Date;\n /**\n * A boolean representing if the call is currently muted.\n */\n private _isMuted?: boolean;\n /**\n * A boolean representing if the call is currently on hold.\n */\n private _isOnHold?: boolean;\n /**\n * A string representing the SID of this call.\n */\n private _sid?: string;\n /**\n * The current state of the call.\n *\n * @remarks\n * See {@link (Call:namespace).State}.\n */\n private _state: Call.State;\n /**\n * Call `to` parameter.\n */\n private _to?: string;\n\n /**\n * Handlers for native call events. Set upon construction so we can\n * dynamically bind events to handlers.\n *\n * @privateRemarks\n * This is done by the constructor so this mapping isn't made every time the\n * {@link (Call:class)._handleNativeEvent} function is invoked.\n */\n private _nativeEventHandler: Record<\n NativeCallEventType,\n (callEvent: NativeCallEvent) => void\n >;\n\n /**\n * Constructor for the {@link (Call:class) | Call class}. This should not be\n * invoked by third-party code. All instances of the\n * {@link (Call:class) | Call class} should be made by the SDK and emitted by\n * {@link (Voice:class) | Voice objects}.\n *\n * @param nativeCallInfo - An object containing all of the data from the\n * native layer necessary to fully describe a call, as well as invoke native\n * functionality for the call.\n *\n * @internal\n */\n constructor({\n uuid,\n customParameters,\n from,\n sid,\n state,\n to,\n isMuted,\n isOnHold,\n initialConnectedTimestamp,\n }: NativeCallInfo) {\n super();\n\n this._uuid = uuid;\n this._customParameters = { ...customParameters };\n this._from = from;\n this._sid = sid;\n this._state = typeof state === 'string' ? state : Call.State.Connecting;\n this._to = to;\n this._isMuted = isMuted;\n this._isOnHold = isOnHold;\n this._initialConnectedTimestamp = initialConnectedTimestamp\n ? new Date(initialConnectedTimestamp)\n : undefined;\n\n this._nativeEventHandler = {\n /**\n * Call State\n */\n [Constants.CallEventConnected]: this._handleConnectedEvent,\n [Constants.CallEventConnectFailure]: this._handleConnectFailureEvent,\n [Constants.CallEventDisconnected]: this._handleDisconnectedEvent,\n [Constants.CallEventReconnected]: this._handleReconnectedEvent,\n [Constants.CallEventReconnecting]: this._handleReconnectingEvent,\n [Constants.CallEventRinging]: this._handleRingingEvent,\n\n /**\n * Call Quality\n */\n [Constants.CallEventQualityWarningsChanged]:\n this._handleQualityWarningsChangedEvent,\n\n /**\n * Call Message\n */\n [Constants.CallEventMessageReceived]: this._handleMessageReceivedEvent,\n };\n\n NativeEventEmitter.addListener(\n Constants.ScopeCall,\n this._handleNativeEvent\n );\n }\n\n /**\n * This intermediate native call event handler acts as a \"gate\", only\n * executing the actual call event handler (such as `Connected`) if this call\n * object matches the `Uuid` of the call that had an event raised.\n * @param nativeCallEvent - A call event directly from the native layer.\n */\n private _handleNativeEvent = (nativeCallEvent: NativeCallEvent) => {\n const { type, call: callInfo } = nativeCallEvent;\n\n const handler = this._nativeEventHandler[type];\n if (typeof handler === 'undefined') {\n throw new Error(\n `Unknown call event type received from the native layer: \"${type}\".`\n );\n }\n\n if (callInfo.uuid === this._uuid) {\n handler(nativeCallEvent);\n }\n };\n\n /**\n * Helper function to update the state of the call when a call event occurs\n * that necessitates an update, i.e. upon a\n * {@link (Call:namespace).Event.Connected | Connected event} we want to\n * update the state of the call to also reflect the\n * {@link (Call:namespace).State.Connected | Connected state}.\n * @param nativeCallEvent - The native call event.\n */\n private _update({\n type,\n call: { from, initialConnectedTimestamp, sid, to },\n }: NativeCallEvent) {\n const newState = eventTypeStateMap[type];\n if (typeof newState === 'string') {\n this._state = newState;\n }\n this._from = from;\n this._initialConnectedTimestamp = initialConnectedTimestamp\n ? new Date(initialConnectedTimestamp)\n : undefined;\n this._sid = sid;\n this._to = to;\n }\n\n /**\n * Handler for the the {@link (Call:namespace).Event.Connected} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleConnectedEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventConnected) {\n throw new Error(\n 'Incorrect \"call#connected\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n this.emit(Call.Event.Connected);\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.ConnectFailure} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleConnectFailureEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventConnectFailure) {\n throw new Error(\n 'Incorrect \"call#connectFailure\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n const { message, code } = nativeCallEvent.error;\n const error = constructTwilioError(message, code);\n this.emit(Call.Event.ConnectFailure, error);\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.Disconnected} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleDisconnectedEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventDisconnected) {\n throw new Error(\n 'Incorrect \"call#disconnected\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n if (nativeCallEvent.error) {\n const { message, code } = nativeCallEvent.error;\n const error = constructTwilioError(message, code);\n this.emit(Call.Event.Disconnected, error);\n } else {\n this.emit(Call.Event.Disconnected);\n }\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.Reconnecting} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleReconnectingEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventReconnecting) {\n throw new Error(\n 'Incorrect \"call#reconnecting\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n const { message, code } = nativeCallEvent.error;\n const error = constructTwilioError(message, code);\n this.emit(Call.Event.Reconnecting, error);\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.Reconnected} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleReconnectedEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventReconnected) {\n throw new Error(\n 'Incorrect \"call#reconnected\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n this.emit(Call.Event.Reconnected);\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.Ringing} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleRingingEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventRinging) {\n throw new Error(\n 'Incorrect \"call#ringing\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n this.emit(Call.Event.Ringing);\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.QualityWarningsChanged}\n * event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleQualityWarningsChangedEvent = (\n nativeCallEvent: NativeCallEvent\n ) => {\n if (nativeCallEvent.type !== Constants.CallEventQualityWarningsChanged) {\n throw new Error(\n 'Incorrect \"call#qualityWarnings\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n const currentWarnings = nativeCallEvent[Constants.CallEventCurrentWarnings];\n const previousWarnings =\n nativeCallEvent[Constants.CallEventPreviousWarnings];\n\n this.emit(\n Call.Event.QualityWarningsChanged,\n currentWarnings as Call.QualityWarning[],\n previousWarnings as Call.QualityWarning[]\n );\n };\n\n /**\n * Handler for the {@link (Call:namespace).Event.MessageReceived} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleMessageReceivedEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventMessageReceived) {\n throw new Error(\n 'Incorrect \"call#Received\" handler called for type' +\n `\"${nativeCallEvent.type}`\n );\n }\n\n this._update(nativeCallEvent);\n\n const { callMessage: callMessageInfo } = nativeCallEvent;\n\n const incomingCallMessage = new IncomingCallMessage(callMessageInfo);\n\n this.emit(Call.Event.MessageReceived, incomingCallMessage);\n };\n\n /**\n * Disconnect this side of the call.\n * @returns\n * A `Promise` that\n * - Resolves when the call has disconnected.\n * - Rejects if the native layer cannot disconnect the call.\n */\n async disconnect(): Promise<void> {\n await settleNativePromise(NativeModule.call_disconnect(this._uuid));\n }\n\n /**\n * Get the mute status of this side of the call.\n * @returns\n * - A boolean representing the muted status of the call.\n * - `undefined` if the call state has not yet been received from the native\n * layer.\n */\n isMuted(): boolean | undefined {\n return this._isMuted;\n }\n\n /**\n * Get the hold status of this side of the call.\n * @returns\n * - A boolean representing the hold status of the call.\n * - `undefined` if the call state has not yet been received from the native\n * layer.\n */\n isOnHold(): boolean | undefined {\n return this._isOnHold;\n }\n\n /**\n * Return a `Record` of custom parameters given to this call.\n * @returns\n * - A `Record` of custom parameters.\n */\n getCustomParameters(): CustomParameters {\n return this._customParameters;\n }\n\n /**\n * Get the value of the `from` parameter given to this call.\n * @returns\n * - A `String` representing the `from` parameter.\n * - `undefined` if the call information has not yet been received from the\n * native layer.\n */\n getFrom(): string | undefined {\n return this._from;\n }\n\n /**\n * Get the timestamp (milliseconds since epoch) of the call connected event.\n * @returns\n * - A `number` representing the timestamp.\n * - `undefined` if the call has not yet connected.\n */\n getInitialConnectedTimestamp(): Date | undefined {\n return this._initialConnectedTimestamp;\n }\n\n /**\n * Get the call `SID`.\n * @returns\n * - A `String` representing the `SID` of the call.\n * - `undefined` if the call information has not yet been received from the\n * native layer.\n */\n getSid(): string | undefined {\n return this._sid;\n }\n\n /**\n * Get the state of the call object, such as {@link (Call:namespace).State.Connected} or\n * {@link (Call:namespace).State.Disconnected}.\n * @returns\n * - A {@link (Call:namespace).State}.\n */\n getState(): Call.State {\n return this._state;\n }\n\n /**\n * Gets the `PeerConnection` `WebRTC` stats for the ongoing call.\n * @returns\n * A `Promise` that\n * - Resolves with a {@link RTCStats.StatsReport} object representing the\n * `WebRTC` `PeerConnection` stats of a call.\n * - Rejects when a {@link RTCStats.StatsReport} cannot be generated for a\n * call.\n */\n async getStats(): Promise<RTCStats.StatsReport> {\n const stats = await settleNativePromise(\n NativeModule.call_getStats(this._uuid)\n );\n return stats;\n }\n\n /**\n * Get the value of the `to` parameter given to this call.\n * @returns\n * - A `String` representing the `to` parameter.\n * - `undefined` if the call information has not yet been received from the\n * native layer.\n */\n getTo(): string | undefined {\n return this._to;\n }\n\n /**\n * Put this end of the call on hold or not on hold.\n *\n * @example\n * To put a call on hold\n * ```typescript\n * call.hold(true);\n * ```\n * @example\n * To take a call off hold\n * ```typescript\n * call.hold(false);\n * ```\n *\n * @param hold - A `boolean` representing whether or not to put this end of\n * the call on hold.\n *\n * @returns\n * A `Promise` that\n * - Resolves with the hold status when the call is put on hold or not on\n * hold.\n * - Rejects when the call is not able to be put on hold or not on hold.\n */\n async hold(hold: boolean): Promise<boolean> {\n this._isOnHold = await settleNativePromise(\n NativeModule.call_hold(this._uuid, hold)\n );\n return this._isOnHold;\n }\n\n /**\n * Mute or unmute this end of the call.\n *\n * @example\n * To mute a call\n * ```typescript\n * call.mute(true);\n * ```\n *\n * @example\n * To unmute a call\n * ```typescript\n * call.mute(false);\n * ```\n *\n * @param mute - A `boolean` representing whether or not to mute this end of\n * the call.\n *\n * @returns\n * A `Promise` that\n * - Resolves with the muted status of the call when the call is muted or\n * unmuted.\n * - Rejects when the call is not able to be muted or unmuted.\n */\n async mute(mute: boolean): Promise<boolean> {\n this._isMuted = await settleNativePromise(\n NativeModule.call_mute(this._uuid, mute)\n );\n return this._isMuted;\n }\n\n /**\n * Send DTMF digits.\n *\n * @example\n * To send the `0` dialtone:\n * ```typescript\n * call.sendDigits('0');\n * ```\n *\n * @example\n * To send the `0` and then `1` dialtone:\n * ```typescript\n * call.sendDigits('01');\n * ```\n *\n * @param digits - A sequence of DTMF digits in a string.\n *\n * @returns\n * A `Promise` that\n * - Resolves when the DTMF digits have been sent.\n * - Rejects when DTMF tones are not able to be sent.\n */\n async sendDigits(digits: string): Promise<void> {\n await settleNativePromise(NativeModule.call_sendDigits(this._uuid, digits));\n }\n\n /**\n * Send a CallMessage.\n *\n * @example\n * To send a user-defined-message\n * ```typescript\n * const outgoingCallMessage: OutgoingCallMessage = await call.sendMessage({\n * content: { key1: 'This is a messsage from the parent call' },\n * contentType: 'application/json',\n * messageType: 'user-defined-message'\n * });\n *\n * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {\n * // outgoingCallMessage failed, handle error\n * });\n *\n * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {\n * // outgoingCallMessage sent\n * });\n * ```\n *\n * @param message - The call message to send.\n *\n * @returns\n * A `Promise` that\n * - Resolves with the OutgoingCallMessage object.\n * - Rejects when the message is unable to be sent.\n */\n async sendMessage(message: CallMessage): Promise<OutgoingCallMessage> {\n const { content, contentType, messageType } = validateCallMessage(message);\n\n const voiceEventSid = await settleNativePromise(\n NativeModule.call_sendMessage(\n this._uuid,\n content,\n contentType,\n messageType\n )\n );\n\n const outgoingCallMessage = new OutgoingCallMessage({\n content,\n contentType,\n messageType,\n voiceEventSid,\n });\n\n return outgoingCallMessage;\n }\n\n /**\n * Post feedback about a call.\n *\n * @example\n * To report that a call had very significant audio latency:\n * ```typescript\n * call.postFeedback(Call.Score.Five, Call.Issue.AudioLatency);\n * ```\n *\n * @param score - A score representing the serverity of the issue being\n * reported.\n * @param issue - The issue being reported.\n * @returns\n * A `Promise` that\n * - Resolves when the feedback has been posted.\n * - Rejects when the feedback is unable to be sent.\n */\n async postFeedback(score: Call.Score, issue: Call.Issue): Promise<void> {\n if (!validScores.includes(score)) {\n throw new InvalidArgumentError(\n '\"score\" parameter invalid. Must be a member of the `Call.Score` enum.'\n );\n }\n\n if (!Object.values(Call.Issue).includes(issue)) {\n throw new InvalidArgumentError(\n '\"issue\" parameter invalid. Must be a member of the `Call.Issue` enum.'\n );\n }\n\n const nativeScore = scoreMap[score];\n const nativeIssue = issueMap[issue];\n\n await settleNativePromise(\n NativeModule.call_postFeedback(this._uuid, nativeScore, nativeIssue)\n );\n }\n}\n\n/**\n * Namespace for enumerations and types used by\n * {@link (Call:class) | Call objects}.\n *\n * @remarks\n * - See also the {@link (Call:class) | Call class}.\n * - See also the {@link (Call:interface) | Call interface}.\n *\n * @public\n */\nexport namespace Call {\n /**\n * Enumeration of all event strings emitted by {@link (Call:class)} objects.\n */\n export enum Event {\n /**\n * Event string for the `Connected` event.\n * See {@link (Call:interface).(addListener:1)}.\n */\n 'Connected' = 'connected',\n\n /**\n * Event string for the `ConnectedFailure` event.\n * See {@link (Call:interface).(addListener:2)}.\n */\n 'ConnectFailure' = 'connectFailure',\n\n /**\n * Event string for the `Reconnecting` event.\n * See {@link (Call:interface).(addListener:3)}.\n */\n 'Reconnecting' = 'reconnecting',\n\n /**\n * Event string for the `Reconnected` event.\n * See {@link (Call:interface).(addListener:4)}.\n */\n 'Reconnected' = 'reconnected',\n\n /**\n * Event string for the `Disconnected` event.\n * See {@link (Call:interface).(addListener:5)}.\n */\n 'Disconnected' = 'disconnected',\n\n /**\n * Event string for the `Ringing` event.\n * See {@link (Call:interface).(addListener:6)}.\n */\n 'Ringing' = 'ringing',\n\n /**\n * Event string for the `QualityWarningsChanged` event.\n * See {@link (Call:interface).(addListener:7)}.\n */\n 'QualityWarningsChanged' = 'qualityWarningsChanged',\n\n /**\n * Event string for the `MessageReceived` event.\n * See {@link (Call:interface).(addListener:8)}\n */\n 'MessageReceived' = 'messageReceived',\n }\n\n /**\n * An enumeration of all possible {@link (Call:class) | Call object} states.\n */\n export enum State {\n /**\n * Call `Connected` state.\n *\n * Occurs when the `Connected` and `Reconnected` event is raised.\n *\n * @remarks\n *\n * See {@link (Call:interface).(addListener:1)}.\n *\n * See {@link (Call:interface).(addListener:4)}.\n */\n 'Connected' = Constants.CallStateConnected,\n\n /**\n * Call `Connecting` state.\n *\n * The default state of an outgoing call.\n */\n 'Connecting' = Constants.CallStateConnecting,\n\n /**\n * Call `Disconnected` state.\n *\n * Occurs when the `Disconnected` or `ConnectFailure` event is raised.\n *\n * @remarks\n *\n * See {@link (Call:interface).(addListener:5)}.\n *\n * See {@link (Call:interface).(addListener:2)}.\n */\n 'Disconnected' = Constants.CallStateDisconnected,\n\n /**\n * Call `Reconnecting` state.\n *\n * Occurs when the `Reconnecting` event is raised.\n *\n * @remarks\n *\n * See {@link (Call:interface).(addListener:3)}.\n */\n 'Reconnecting' = Constants.CallStateReconnecting,\n\n /**\n * Call `Ringing` state. Occurs when the `Ringing` event is raised.\n *\n * @remarks\n *\n * See {@link (Call:interface).(addListener:6)}.\n */\n 'Ringing' = Constants.CallStateRinging,\n }\n\n /**\n * An enumeration of all call quality-warning types.\n */\n export enum QualityWarning {\n /**\n * Raised when the call detects constant audio input, such as silence.\n */\n 'ConstantAudioInputLevel' = 'constant-audio-input-level',\n /**\n * Raised when the network encounters high jitter.\n */\n 'HighJitter' = 'high-jitter',\n /**\n * Raised when the network encounters high packet loss.\n */\n 'HighPacketLoss' = 'high-packet-loss',\n /**\n * Raised when the network encounters high packet round-trip-time.\n */\n 'HighRtt' = 'high-rtt',\n /**\n * Raised when the call detects a low mean-opinion-score or MOS.\n */\n 'LowMos' = 'low-mos',\n }\n\n /**\n * An enumeration of all scores that could be used to rate the experience of\n * a call or issues encountered during the call.\n */\n export enum Score {\n /**\n * An issue was not encountered or there is no desire to report said issue.\n */\n 'NotReported' = 0,\n /**\n * An issue had severity approximately 1/5.\n */\n 'One' = 1,\n /**\n * An issue had severity approximately 2/5.\n */\n 'Two' = 2,\n /**\n * An issue had severity approximately 3/5.\n */\n 'Three' = 3,\n /**\n * An issue had severity approximately 4/5.\n */\n 'Four' = 4,\n /**\n * An issue had severity approximately 5/5.\n */\n 'Five' = 5,\n }\n\n /**\n * An enumeration of call issues that can be reported.\n */\n export enum Issue {\n /**\n * No issue is reported.\n */\n 'NotReported' = 'not-reported',\n /**\n * The call was dropped unexpectedly.\n */\n 'DroppedCall' = 'dropped-call',\n /**\n * The call encountered significant audio latency.\n */\n 'AudioLatency' = 'audio-latency',\n /**\n * One party of the call could not hear the other callee.\n */\n 'OneWayAudio' = 'one-way-audio',\n /**\n * Call audio was choppy.\n */\n 'ChoppyAudio' = 'choppy-audio',\n /**\n * Call audio had significant noise.\n */\n 'NoisyCall' = 'noisy-call',\n /**\n * Call audio had significant echo.\n */\n 'Echo' = 'echo',\n }\n\n /**\n * Listener types for all events emitted by a\n * {@link (Call:class) | Call object.}\n */\n export namespace Listener {\n /**\n * Connected event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Connected}\n * event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:1)}.\n */\n export type Connected = () => void;\n\n /**\n * Connect failure event listener. This should be the function signature of\n * any event listener bound to the\n * {@link (Call:namespace).Event.ConnectFailure} event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:2)}.\n *\n * See {@link TwilioErrors} for all error classes.\n */\n export type ConnectFailure = (error: TwilioError) => void;\n\n /**\n * Reconnecting event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Reconnecting}\n * event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:3)}.\n *\n * See {@link TwilioErrors} for all error classes.\n */\n export type Reconnecting = (error: TwilioError) => void;\n\n /**\n * Reconnected event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Reconnected}\n * event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:4)}.\n */\n export type Reconnected = () => void;\n\n /**\n * Disconnected event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Disconnected}\n * event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:5)}.\n *\n * See {@link TwilioErrors} for all error classes.\n */\n export type Disconnected = (error?: TwilioError) => void;\n\n /**\n * Ringing event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Ringing} event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:6)}.\n */\n export type Ringing = () => void;\n\n /**\n * Quality warnings changed event listener. This should be the function\n * signature of any event listener bound to the\n * {@link (Call:namespace).Event.QualityWarningsChanged} event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:7)}.\n */\n export type QualityWarningsChanged = (\n currentQualityWarnings: Call.QualityWarning[],\n previousQualityWarnings: Call.QualityWarning[]\n ) => void;\n\n /**\n * CallMessage received event listener. This should be the function signature of\n * any event listener bound to the {@link (Call:namespace).Event.MessageReceived} event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:8)}.\n */\n export type MessageReceived = (\n incomingCallMessage: IncomingCallMessage\n ) => void;\n\n /**\n * Generic event listener. This should be the function signature of any\n * event listener bound to any call event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:9)}.\n */\n export type Generic = (...args: any[]) => void;\n }\n}\n\n/**\n * Mapping of {@link (Call:namespace).Event | Call events} to\n * {@link (Call:namespace).State | Call states}.\n *\n * @remarks\n * Note that this mapping is not a 1:1 bijection. Not every event coming from\n * the native layer has a relevant state, and some events share a state.\n * Therefore, this `Record` needs to be marked as `Partial` and\n * undefined-checking logic is needed when using this mapping.\n *\n * @internal\n */\nconst eventTypeStateMap: Partial<Record<NativeCallEventType, Call.State>> = {\n [Constants.CallEventConnected]: Call.State.Connected,\n [Constants.CallEventConnectFailure]: Call.State.Disconnected,\n [Constants.CallEventDisconnected]: Call.State.Disconnected,\n [Constants.CallEventReconnecting]: Call.State.Reconnecting,\n [Constants.CallEventReconnected]: Call.State.Connected,\n [Constants.CallEventRinging]: Call.State.Ringing,\n};\n\n/**\n * Array of valid call scores.\n *\n * @internal\n */\nconst validScores = [\n Call.Score.NotReported,\n Call.Score.One,\n Call.Score.Two,\n Call.Score.Three,\n Call.Score.Four,\n Call.Score.Five,\n];\n\n/**\n * Mapping of the {@link (Call:namespace).Score | Call score} enum to\n * cross-platform common constants.\n *\n * @internal\n */\nconst scoreMap: Record<Call.Score, NativeCallFeedbackScore> = {\n [Call.Score.NotReported]: Constants.CallFeedbackScoreNotReported,\n [Call.Score.One]: Constants.CallFeedbackScoreOne,\n [Call.Score.Two]: Constants.CallFeedbackScoreTwo,\n [Call.Score.Three]: Constants.CallFeedbackScoreThree,\n [Call.Score.Four]: Constants.CallFeedbackScoreFour,\n [Call.Score.Five]: Constants.CallFeedbackScoreFive,\n};\n\n/**\n * Mapping of the {@link (Call:namespace).Issue | Call issue} enum to\n * cross-platform common constants.\n *\n * @internal\n */\nconst issueMap: Record<Call.Issue, NativeCallFeedbackIssue> = {\n [Call.Issue.AudioLatency]: Constants.CallFeedbackIssueAudioLatency,\n [Call.Issue.ChoppyAudio]: Constants.CallFeedbackIssueChoppyAudio,\n [Call.Issue.DroppedCall]: Constants.CallFeedbackIssueDroppedCall,\n [Call.Issue.Echo]: Constants.CallFeedbackIssueEcho,\n [Call.Issue.NoisyCall]: Constants.CallFeedbackIssueNoisyCall,\n [Call.Issue.NotReported]: Constants.CallFeedbackIssueNotReported,\n [Call.Issue.OneWayAudio]: Constants.CallFeedbackIssueOneWayAudio,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["Call.tsx"],"names":["Call","EventEmitter","constructor","uuid","customParameters","from","sid","state","to","isMuted","isOnHold","initialConnectedTimestamp","nativeCallEvent","type","call","callInfo","handler","_nativeEventHandler","Error","_uuid","Constants","CallEventConnected","_update","emit","Event","Connected","CallEventConnectFailure","event","message","code","error","ConnectFailure","CallEventDisconnected","Disconnected","CallEventReconnecting","Reconnecting","CallEventReconnected","Reconnected","CallEventRinging","Ringing","CallEventHold","Hold","_isOnHold","CallEventQualityWarningsChanged","currentWarnings","CallEventCurrentWarnings","previousWarnings","CallEventPreviousWarnings","QualityWarningsChanged","CallEventMessageReceived","callMessage","callMessageInfo","incomingCallMessage","IncomingCallMessage","MessageReceived","_customParameters","_from","_sid","_state","State","Connecting","_to","_isMuted","_initialConnectedTimestamp","Date","undefined","_handleConnectedEvent","_handleConnectFailureEvent","_handleDisconnectedEvent","_handleReconnectedEvent","_handleReconnectingEvent","_handleRingingEvent","_handleHoldEvent","_handleQualityWarningsChangedEvent","_handleMessageReceivedEvent","NativeEventEmitter","addListener","ScopeCall","_handleNativeEvent","newState","eventTypeStateMap","disconnect","NativeModule","call_disconnect","getCustomParameters","getFrom","getInitialConnectedTimestamp","getSid","getState","getStats","stats","call_getStats","getTo","hold","call_hold","mute","call_mute","sendDigits","digits","call_sendDigits","sendMessage","content","contentType","messageType","voiceEventSid","call_sendMessage","outgoingCallMessage","OutgoingCallMessage","postFeedback","score","issue","validScores","includes","InvalidArgumentError","Object","values","Issue","nativeScore","scoreMap","nativeIssue","issueMap","call_postFeedback","CallStateConnected","CallStateConnecting","CallStateDisconnected","CallStateReconnecting","CallStateRinging","QualityWarning","Score","Listener","NotReported","One","Two","Three","Four","Five","CallFeedbackScoreNotReported","CallFeedbackScoreOne","CallFeedbackScoreTwo","CallFeedbackScoreThree","CallFeedbackScoreFour","CallFeedbackScoreFive","AudioLatency","CallFeedbackIssueAudioLatency","ChoppyAudio","CallFeedbackIssueChoppyAudio","DroppedCall","CallFeedbackIssueDroppedCall","Echo","CallFeedbackIssueEcho","NoisyCall","CallFeedbackIssueNoisyCall","CallFeedbackIssueNotReported","OneWayAudio","CallFeedbackIssueOneWayAudio"],"mappings":"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;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEV,EAAAA,OAAO,GAAwB;AAC7B,WAAO,KAAKqD,QAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEpD,EAAAA,QAAQ,GAAwB;AAC9B,WAAO,KAAKgC,SAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;AACE0C,EAAAA,mBAAmB,GAAqB;AACtC,WAAO,KAAK7B,iBAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACE8B,EAAAA,OAAO,GAAuB;AAC5B,WAAO,KAAK7B,KAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;AACE8B,EAAAA,4BAA4B,GAAqB;AAC/C,WAAO,KAAKvB,0BAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEwB,EAAAA,MAAM,GAAuB;AAC3B,WAAO,KAAK9B,IAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;AACE+B,EAAAA,QAAQ,GAAe;AACrB,WAAO,KAAK9B,MAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACgB,QAAR+B,QAAQ,GAAkC;AAC9C,UAAMC,KAAK,GAAG,MAAM,wCAClBR,qBAAaS,aAAb,CAA2B,KAAKxE,KAAhC,CADkB,CAApB;AAGA,WAAOuE,KAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEE,EAAAA,KAAK,GAAuB;AAC1B,WAAO,KAAK/B,GAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACY,QAAJgC,IAAI,CAACA,IAAD,EAAkC;AAC1C,SAAKnD,SAAL,GAAiB,MAAM,wCACrBwC,qBAAaY,SAAb,CAAuB,KAAK3E,KAA5B,EAAmC0E,IAAnC,CADqB,CAAvB;AAGA,WAAO,KAAKnD,SAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACY,QAAJqD,IAAI,CAACA,IAAD,EAAkC;AAC1C,SAAKjC,QAAL,GAAgB,MAAM,wCACpBoB,qBAAac,SAAb,CAAuB,KAAK7E,KAA5B,EAAmC4E,IAAnC,CADoB,CAAtB;AAGA,WAAO,KAAKjC,QAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACkB,QAAVmC,UAAU,CAACC,MAAD,EAAgC;AAC9C,UAAM,wCAAoBhB,qBAAaiB,eAAb,CAA6B,KAAKhF,KAAlC,EAAyC+E,MAAzC,CAApB,CAAN;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACmB,QAAXE,WAAW,CAACxE,OAAD,EAAqD;AACpE,UAAM;AAAEyE,MAAAA,OAAF;AAAWC,MAAAA,WAAX;AAAwBC,MAAAA;AAAxB,QAAwC,sCAAoB3E,OAApB,CAA9C;AAEA,UAAM4E,aAAa,GAAG,MAAM,wCAC1BtB,qBAAauB,gBAAb,CACE,KAAKtF,KADP,EAEEkF,OAFF,EAGEC,WAHF,EAIEC,WAJF,CAD0B,CAA5B;AASA,UAAMG,mBAAmB,GAAG,IAAIC,wCAAJ,CAAwB;AAClDN,MAAAA,OADkD;AAElDC,MAAAA,WAFkD;AAGlDC,MAAAA,WAHkD;AAIlDC,MAAAA;AAJkD,KAAxB,CAA5B;AAOA,WAAOE,mBAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACoB,QAAZE,YAAY,CAACC,KAAD,EAAoBC,KAApB,EAAsD;AACtE,QAAI,CAACC,WAAW,CAACC,QAAZ,CAAqBH,KAArB,CAAL,EAAkC;AAChC,YAAM,IAAII,0CAAJ,CACJ,uEADI,CAAN;AAGD;;AAED,QAAI,CAACC,MAAM,CAACC,MAAP,CAAcnH,IAAI,CAACoH,KAAnB,EAA0BJ,QAA1B,CAAmCF,KAAnC,CAAL,EAAgD;AAC9C,YAAM,IAAIG,0CAAJ,CACJ,uEADI,CAAN;AAGD;;AAED,UAAMI,WAAW,GAAGC,QAAQ,CAACT,KAAD,CAA5B;AACA,UAAMU,WAAW,GAAGC,QAAQ,CAACV,KAAD,CAA5B;AAEA,UAAM,wCACJ5B,qBAAauC,iBAAb,CAA+B,KAAKtG,KAApC,EAA2CkG,WAA3C,EAAwDE,WAAxD,CADI,CAAN;AAGD;;AA7nBoC;AAgoBvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;MAKc/F,K;;aAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;KAAAA,K,KAAAA,K;;;MA2DAmC,K;;aAAAA,K;AAAAA,IAAAA,K,CAAAA,K,gBAYIvC,qBAAUsG,kB;AAZd/D,IAAAA,K,CAAAA,K,iBAmBKvC,qBAAUuG,mB;AAnBfhE,IAAAA,K,CAAAA,K,mBAgCOvC,qBAAUwG,qB;AAhCjBjE,IAAAA,K,CAAAA,K,mBA2COvC,qBAAUyG,qB;AA3CjBlE,IAAAA,K,CAAAA,K,cAoDEvC,qBAAU0G,gB;KApDZnE,K,KAAAA,K;;;MA0DAoE,c;;aAAAA,c;AAAAA,IAAAA,c;AAAAA,IAAAA,c;AAAAA,IAAAA,c;AAAAA,IAAAA,c;AAAAA,IAAAA,c;KAAAA,c,KAAAA,c;;;MA2BAC,K;;aAAAA,K;AAAAA,IAAAA,K,CAAAA,K;AAAAA,IAAAA,K,CAAAA,K;AAAAA,IAAAA,K,CAAAA,K;AAAAA,IAAAA,K,CAAAA,K;AAAAA,IAAAA,K,CAAAA,K;AAAAA,IAAAA,K,CAAAA,K;KAAAA,K,KAAAA,K;;;MA8BAZ,K;;aAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;KAAAA,K,KAAAA,K;;;;;4BAmCKa,Q,KAAAA,Q,SAAAA,Q,WAAAA,Q;GArNFjI,I,oBAAAA,I;AAqUjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMgF,iBAAmE,GAAG;AAC1E,GAAC5D,qBAAUC,kBAAX,GAAgCrB,IAAI,CAAC2D,KAAL,CAAWlC,SAD+B;AAE1E,GAACL,qBAAUM,uBAAX,GAAqC1B,IAAI,CAAC2D,KAAL,CAAW1B,YAF0B;AAG1E,GAACb,qBAAUY,qBAAX,GAAmChC,IAAI,CAAC2D,KAAL,CAAW1B,YAH4B;AAI1E,GAACb,qBAAUc,qBAAX,GAAmClC,IAAI,CAAC2D,KAAL,CAAWxB,YAJ4B;AAK1E,GAACf,qBAAUgB,oBAAX,GAAkCpC,IAAI,CAAC2D,KAAL,CAAWlC,SAL6B;AAM1E,GAACL,qBAAUkB,gBAAX,GAA8BtC,IAAI,CAAC2D,KAAL,CAAWpB;AANiC,CAA5E;AASA;AACA;AACA;AACA;AACA;;AACA,MAAMwE,WAAW,GAAG,CAClB/G,IAAI,CAACgI,KAAL,CAAWE,WADO,EAElBlI,IAAI,CAACgI,KAAL,CAAWG,GAFO,EAGlBnI,IAAI,CAACgI,KAAL,CAAWI,GAHO,EAIlBpI,IAAI,CAACgI,KAAL,CAAWK,KAJO,EAKlBrI,IAAI,CAACgI,KAAL,CAAWM,IALO,EAMlBtI,IAAI,CAACgI,KAAL,CAAWO,IANO,CAApB;AASA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMjB,QAAqD,GAAG;AAC5D,GAACtH,IAAI,CAACgI,KAAL,CAAWE,WAAZ,GAA0B9G,qBAAUoH,4BADwB;AAE5D,GAACxI,IAAI,CAACgI,KAAL,CAAWG,GAAZ,GAAkB/G,qBAAUqH,oBAFgC;AAG5D,GAACzI,IAAI,CAACgI,KAAL,CAAWI,GAAZ,GAAkBhH,qBAAUsH,oBAHgC;AAI5D,GAAC1I,IAAI,CAACgI,KAAL,CAAWK,KAAZ,GAAoBjH,qBAAUuH,sBAJ8B;AAK5D,GAAC3I,IAAI,CAACgI,KAAL,CAAWM,IAAZ,GAAmBlH,qBAAUwH,qBAL+B;AAM5D,GAAC5I,IAAI,CAACgI,KAAL,CAAWO,IAAZ,GAAmBnH,qBAAUyH;AAN+B,CAA9D;AASA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMrB,QAAqD,GAAG;AAC5D,GAACxH,IAAI,CAACoH,KAAL,CAAW0B,YAAZ,GAA2B1H,qBAAU2H,6BADuB;AAE5D,GAAC/I,IAAI,CAACoH,KAAL,CAAW4B,WAAZ,GAA0B5H,qBAAU6H,4BAFwB;AAG5D,GAACjJ,IAAI,CAACoH,KAAL,CAAW8B,WAAZ,GAA0B9H,qBAAU+H,4BAHwB;AAI5D,GAACnJ,IAAI,CAACoH,KAAL,CAAWgC,IAAZ,GAAmBhI,qBAAUiI,qBAJ+B;AAK5D,GAACrJ,IAAI,CAACoH,KAAL,CAAWkC,SAAZ,GAAwBlI,qBAAUmI,0BAL0B;AAM5D,GAACvJ,IAAI,CAACoH,KAAL,CAAWc,WAAZ,GAA0B9G,qBAAUoI,4BANwB;AAO5D,GAACxJ,IAAI,CAACoH,KAAL,CAAWqC,WAAZ,GAA0BrI,qBAAUsI;AAPwB,CAA9D","sourcesContent":["/**\n * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio\n * license.\n *\n * See LICENSE in the project root for license information.\n */\n\nimport { EventEmitter } from 'eventemitter3';\nimport type { RTCStats } from './';\nimport { NativeModule, NativeEventEmitter } from './common';\nimport { Constants } from './constants';\nimport type {\n NativeCallEvent,\n NativeCallEventType,\n NativeCallInfo,\n NativeCallFeedbackIssue,\n NativeCallFeedbackScore,\n NativeCallConnectFailureEvent,\n NativeCallDisconnectedEvent,\n NativeCallReconnectingEvent,\n NativeCallQualityWarningsEvent,\n NativeCallMessageReceivedEvent,\n} from './type/Call';\nimport type { CustomParameters, Uuid } from './type/common';\nimport type { TwilioError } from './error/TwilioError';\nimport { InvalidArgumentError } from './error/InvalidArgumentError';\nimport { constructTwilioError } from './error/utility';\nimport { CallMessage, validateCallMessage } from './CallMessage/CallMessage';\nimport { IncomingCallMessage } from './CallMessage/IncomingCallMessage';\nimport { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';\nimport { settleNativePromise } from './utility/nativePromise';\n\n/**\n * Defines strict typings for all events emitted by {@link (Call:class)\n * | Call objects}.\n *\n * @remarks\n * Note that the `on` function is an alias for the `addListener` function.\n * They share identical functionality and either may be used interchangeably.\n *\n * - See also the {@link (Call:class) | Call class}.\n * - See also the {@link (Call:namespace) | Call namespace}.\n *\n * @public\n */\nexport declare interface Call {\n /**\n * ------------\n * Emit Typings\n * ------------\n */\n\n /** @internal */\n emit(connectedEvent: Call.Event.Connected): boolean;\n\n /** @internal */\n emit(\n connectFailureEvent: Call.Event.ConnectFailure,\n error: TwilioError\n ): boolean;\n\n /** @internal */\n emit(reconnectingEvent: Call.Event.Reconnecting, error: TwilioError): boolean;\n\n /** @internal */\n emit(reconnectedEvent: Call.Event.Reconnected): boolean;\n\n /** @internal */\n emit(\n disconnectedEvent: Call.Event.Disconnected,\n error?: TwilioError\n ): boolean;\n\n /** @internal */\n emit(ringingEvent: Call.Event.Ringing): boolean;\n\n /** @internal */\n emit(\n qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged,\n currentQualityWarnings: Call.QualityWarning[],\n previousQualityWarnings: Call.QualityWarning[]\n ): boolean;\n\n /** @internal */\n emit(holdEvent: Call.Event.Hold, isOnHold: boolean): boolean;\n\n /** @internal */\n emit(\n messageReceivedEvent: Call.Event.MessageReceived,\n incomingCallMessage: IncomingCallMessage\n ): boolean;\n\n /**\n * ----------------\n * Listener Typings\n * ----------------\n */\n\n /**\n * Connected event. Raised when the call has successfully connected.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Connected, () => {\n * // call has been connected\n * });\n * ```\n *\n * @param connectedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n connectedEvent: Call.Event.Connected,\n listener: Call.Listener.Connected\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:1)}\n */\n on(\n connectedEvent: Call.Event.Connected,\n listener: Call.Listener.Connected\n ): this;\n\n /**\n * Connect failure event. Raised when the call has failed to connect.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.ConnectFailure, (error) => {\n * // call was unable to connect, handle error\n * });\n * ```\n *\n * @param connectFailureEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n connectFailureEvent: Call.Event.ConnectFailure,\n listener: Call.Listener.ConnectFailure\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:2)}\n */\n on(\n connectFailureEvent: Call.Event.ConnectFailure,\n listener: Call.Listener.ConnectFailure\n ): this;\n\n /**\n * Reconnecting event. Raised when the call is reconnecting.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Reconnecting, (error) => {\n * // call is attempting to reconnect, handle error\n * });\n * ```\n *\n * @param reconnectingEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n reconnectingEvent: Call.Event.Reconnecting,\n listener: Call.Listener.Reconnecting\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:3)}\n */\n on(\n reconnectingEvent: Call.Event.Reconnecting,\n listener: Call.Listener.Reconnecting\n ): this;\n\n /**\n * Reconnected event. Raised when the call has recovered and reconnected.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Reconnected, () => {\n * // call has reconnected\n * });\n * ```\n *\n * @param reconnectedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n reconnectedEvent: Call.Event.Reconnected,\n listener: Call.Listener.Reconnected\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:4)}\n */\n on(\n reconnectedEvent: Call.Event.Reconnected,\n listener: Call.Listener.Reconnected\n ): this;\n\n /**\n * Disconnected event. Raised when the call has disconnected.\n *\n * @remarks\n * This event can occur in \"naturally\" disconnected calls and calls\n * disconnected from issues such as network problems. If the SDK has detected\n * an issue that has caused the call to disconnect, then the error parameter\n * will be defined, otherwise it will be undefined.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Disconnected, (error) => {\n * // call has disconnected\n * // if a natural disconnect occurred, then error is `undefined`\n * // if an unnatural disconnect occurred, then error is defined\n * });\n * ```\n *\n * @param disconnectedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n disconnectedEvent: Call.Event.Disconnected,\n listener: Call.Listener.Disconnected\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:5)}\n */\n on(\n disconnectedEvent: Call.Event.Disconnected,\n listener: Call.Listener.Disconnected\n ): this;\n\n /**\n * Ringing event. Raised when the call has begun to ring.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Ringing, () => {\n * // call is ringing\n * });\n * ```\n *\n * @param ringingEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n ringingEvent: Call.Event.Ringing,\n listener: Call.Listener.Ringing\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:6)}\n */\n on(ringingEvent: Call.Event.Ringing, listener: Call.Listener.Ringing): this;\n\n /**\n * Hold event. Raised when the call hold state changes, for example when the\n * user swaps between calls using the native CallKit UI on iOS.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.Hold, (isOnHold) => {\n * // call hold state has changed\n * });\n * ```\n *\n * @param holdEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(holdEvent: Call.Event.Hold, listener: Call.Listener.Hold): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:9)}\n */\n on(holdEvent: Call.Event.Hold, listener: Call.Listener.Hold): this;\n\n /**\n * Quality warnings changed event. Raised when a call quality warning is set\n * or unset. All \"ongoing\" call quality warnings are passed to the invoked\n * listener function.\n *\n * @example\n * ```typescript\n * call.addListener(\n * Call.Event.QualityWarningsChanged,\n * (\n * currentWarnings: Call.QualityWarning[],\n * previousWarnings: Call.QualityWarning[]\n * ) => {\n * // call quality warnings have changed\n * }\n * );\n * ```\n *\n * @param qualityWarningsChangedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(\n qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged,\n listener: Call.Listener.QualityWarningsChanged\n ): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:7)}\n */\n on(\n qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged,\n listener: Call.Listener.QualityWarningsChanged\n ): this;\n\n /**\n * MessageReceived event. Raised when a {@link IncomingCallMessage} is\n * received.\n *\n * @example\n * ```typescript\n * call.addListener(Call.Event.MessageReceived, (message) => {\n * // callMessage received\n * })\n * ```\n *\n * @param messageReceivedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The callMessage object\n */\n addListener(\n messageReceivedEvent: Call.Event.MessageReceived,\n listener: Call.Listener.MessageReceived\n ): this;\n /** {@inheritDoc (Call:interface).(addListener:8)} */\n on(\n callMessageEvent: Call.Event.MessageReceived,\n listener: Call.Listener.MessageReceived\n ): this;\n\n /**\n * Generic event listener typings.\n * @param callEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call object.\n */\n addListener(callEvent: Call.Event, listener: Call.Listener.Generic): this;\n /**\n * {@inheritDoc (Call:interface).(addListener:9)}\n */\n on(callEvent: Call.Event, listener: Call.Listener.Generic): this;\n}\n\n/**\n * Provides access to information about a call, including the call parameters,\n * and exposes functionality for a call such as disconnecting, muting, and\n * holding.\n *\n * @remarks\n * Note that the call information is fetched as soon as possible from the native\n * layer, but there is no guarantee that all information is immediately\n * available. Methods such as `Call.getFrom()` or `Call.getTo()` may return\n * `undefined`.\n *\n * As call events are received from the native layer, call information will\n * propagate from the native layer to the JS layer and become available.\n * Therefore, it is good practice to read information from the call after an\n * event occurs, or as events occur.\n *\n * - See the {@link (Call:namespace).Event} enum for events emitted by `Call`\n * objects.\n * - See the {@link (Call:interface) | Call interface} for overloaded event\n * listening methods.\n * - See the {@link (Call:namespace) | Call namespace} for types and\n * enumerations used by this class.\n *\n * @public\n */\nexport class Call extends EventEmitter {\n /**\n * The `Uuid` of this call. Used to identify calls between the JS and native\n * layer so we can associate events and native functionality between the\n * layers.\n */\n private _uuid: Uuid;\n /**\n * Call custom parameters.\n */\n private _customParameters: CustomParameters;\n /**\n * Call `from` parameter.\n */\n private _from?: string;\n /**\n * Initial `connected` timestamp. Milliseconds since epoch.\n */\n private _initialConnectedTimestamp?: Date;\n /**\n * A boolean representing if the call is currently muted.\n */\n private _isMuted?: boolean;\n /**\n * A boolean representing if the call is currently on hold.\n */\n private _isOnHold?: boolean;\n /**\n * A string representing the SID of this call.\n */\n private _sid?: string;\n /**\n * The current state of the call.\n *\n * @remarks\n * See {@link (Call:namespace).State}.\n */\n private _state: Call.State;\n /**\n * Call `to` parameter.\n */\n private _to?: string;\n\n /**\n * Handlers for native call events. Set upon construction so we can\n * dynamically bind events to handlers.\n *\n * @privateRemarks\n * This is done by the constructor so this mapping isn't made every time the\n * {@link (Call:class)._handleNativeEvent} function is invoked.\n */\n private _nativeEventHandler: Record<\n NativeCallEventType,\n (callEvent: NativeCallEvent) => void\n >;\n\n /**\n * Constructor for the {@link (Call:class) | Call class}. This should not be\n * invoked by third-party code. All instances of the\n * {@link (Call:class) | Call class} should be made by the SDK and emitted by\n * {@link (Voice:class) | Voice objects}.\n *\n * @param nativeCallInfo - An object containing all of the data from the\n * native layer necessary to fully describe a call, as well as invoke native\n * functionality for the call.\n *\n * @internal\n */\n constructor({\n uuid,\n customParameters,\n from,\n sid,\n state,\n to,\n isMuted,\n isOnHold,\n initialConnectedTimestamp,\n }: NativeCallInfo) {\n super();\n\n this._uuid = uuid;\n this._customParameters = { ...customParameters };\n this._from = from;\n this._sid = sid;\n this._state = typeof state === 'string' ? state : Call.State.Connecting;\n this._to = to;\n this._isMuted = isMuted;\n this._isOnHold = isOnHold;\n this._initialConnectedTimestamp = initialConnectedTimestamp\n ? new Date(initialConnectedTimestamp)\n : undefined;\n\n this._nativeEventHandler = {\n /**\n * Call State\n */\n [Constants.CallEventConnected]: this._handleConnectedEvent,\n [Constants.CallEventConnectFailure]: this._handleConnectFailureEvent,\n [Constants.CallEventDisconnected]: this._handleDisconnectedEvent,\n [Constants.CallEventReconnected]: this._handleReconnectedEvent,\n [Constants.CallEventReconnecting]: this._handleReconnectingEvent,\n [Constants.CallEventRinging]: this._handleRingingEvent,\n [Constants.CallEventHold]: this._handleHoldEvent,\n\n /**\n * Call Quality\n */\n [Constants.CallEventQualityWarningsChanged]:\n this._handleQualityWarningsChangedEvent,\n\n /**\n * Call Message\n */\n [Constants.CallEventMessageReceived]: this._handleMessageReceivedEvent,\n };\n\n NativeEventEmitter.addListener(\n Constants.ScopeCall,\n this._handleNativeEvent\n );\n }\n\n /**\n * This intermediate native call event handler acts as a \"gate\", only\n * executing the actual call event handler (such as `Connected`) if this call\n * object matches the `Uuid` of the call that had an event raised.\n * @param nativeCallEvent - A call event directly from the native layer.\n */\n private _handleNativeEvent = (nativeCallEvent: NativeCallEvent) => {\n const { type, call: callInfo } = nativeCallEvent;\n\n const handler = this._nativeEventHandler[type];\n if (typeof handler === 'undefined') {\n throw new Error(\n `Unknown call event type received from the native layer: \"${type}\".`\n );\n }\n\n if (callInfo.uuid === this._uuid) {\n handler(nativeCallEvent);\n }\n };\n\n /**\n * Helper function to update the state of the call when a call event occurs\n * that necessitates an update, i.e. upon a\n * {@link (Call:namespace).Event.Connected | Connected event} we want to\n * update the state of the call to also reflect the\n * {@link (Call:namespace).State.Connected | Connected state}.\n * @param nativeCallEvent - The native call event.\n */\n private _update({\n type,\n call: { from, initialConnectedTimestamp, isOnHold, isMuted, sid, to },\n }: NativeCallEvent) {\n const newState = eventTypeStateMap[type];\n if (typeof newState === 'string') {\n this._state = newState;\n }\n this._from = from;\n this._initialConnectedTimestamp = initialConnectedTimestamp\n ? new Date(initialConnectedTimestamp)\n : undefined;\n this._isOnHold = isOnHold;\n this._isMuted = isMuted;\n this._sid = sid;\n this._to = to;\n }\n\n /**\n * Handler for the the {@link (Call:namespace).Event.Connected} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleConnectedEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventConnected) {\n throw new Error(\n 'Incorrect \"call#connected\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n this.emit(Call.Event.Connected);\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.ConnectFailure} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleConnectFailureEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventConnectFailure) {\n throw new Error(\n 'Incorrect \"call#connectFailure\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n const event = nativeCallEvent as NativeCallConnectFailureEvent;\n const { message, code } = event.error;\n const error = constructTwilioError(message, code);\n this.emit(Call.Event.ConnectFailure, error);\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.Disconnected} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleDisconnectedEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventDisconnected) {\n throw new Error(\n 'Incorrect \"call#disconnected\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n const event = nativeCallEvent as NativeCallDisconnectedEvent;\n if (event.error) {\n const { message, code } = event.error;\n const error = constructTwilioError(message, code);\n this.emit(Call.Event.Disconnected, error);\n } else {\n this.emit(Call.Event.Disconnected);\n }\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.Reconnecting} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleReconnectingEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventReconnecting) {\n throw new Error(\n 'Incorrect \"call#reconnecting\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n const event = nativeCallEvent as NativeCallReconnectingEvent;\n const { message, code } = event.error;\n const error = constructTwilioError(message, code);\n this.emit(Call.Event.Reconnecting, error);\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.Reconnected} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleReconnectedEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventReconnected) {\n throw new Error(\n 'Incorrect \"call#reconnected\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n this.emit(Call.Event.Reconnected);\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.Ringing} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleRingingEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventRinging) {\n throw new Error(\n 'Incorrect \"call#ringing\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n this.emit(Call.Event.Ringing);\n };\n\n /**\n * Handler for the {@link (Call:namespace).Event.Hold} event.\n * Raised when the call hold state changes via the native CallKit UI.\n * @param nativeCallEvent - The native call event.\n */\n private _handleHoldEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventHold) {\n throw new Error(\n 'Incorrect \"call#hold\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n this.emit(Call.Event.Hold, this._isOnHold ?? false);\n };\n\n /**\n * Handler for the the {@link (Call:namespace).Event.QualityWarningsChanged}\n * event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleQualityWarningsChangedEvent = (\n nativeCallEvent: NativeCallEvent\n ) => {\n if (nativeCallEvent.type !== Constants.CallEventQualityWarningsChanged) {\n throw new Error(\n 'Incorrect \"call#qualityWarnings\" handler called for type ' +\n `\"${nativeCallEvent.type}\".`\n );\n }\n\n this._update(nativeCallEvent);\n\n const event = nativeCallEvent as NativeCallQualityWarningsEvent;\n const currentWarnings = event[Constants.CallEventCurrentWarnings];\n const previousWarnings = event[Constants.CallEventPreviousWarnings];\n\n this.emit(\n Call.Event.QualityWarningsChanged,\n currentWarnings as Call.QualityWarning[],\n previousWarnings as Call.QualityWarning[]\n );\n };\n\n /**\n * Handler for the {@link (Call:namespace).Event.MessageReceived} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleMessageReceivedEvent = (nativeCallEvent: NativeCallEvent) => {\n if (nativeCallEvent.type !== Constants.CallEventMessageReceived) {\n throw new Error(\n 'Incorrect \"call#Received\" handler called for type' +\n `\"${nativeCallEvent.type}`\n );\n }\n\n this._update(nativeCallEvent);\n\n const event = nativeCallEvent as NativeCallMessageReceivedEvent;\n const { callMessage: callMessageInfo } = event;\n\n const incomingCallMessage = new IncomingCallMessage(callMessageInfo);\n\n this.emit(Call.Event.MessageReceived, incomingCallMessage);\n };\n\n /**\n * Disconnect this side of the call.\n * @returns\n * A `Promise` that\n * - Resolves when the call has disconnected.\n * - Rejects if the native layer cannot disconnect the call.\n */\n async disconnect(): Promise<void> {\n await settleNativePromise(NativeModule.call_disconnect(this._uuid));\n }\n\n /**\n * Get the mute status of this side of the call.\n * @returns\n * - A boolean representing the muted status of the call.\n * - `undefined` if the call state has not yet been received from the native\n * layer.\n */\n isMuted(): boolean | undefined {\n return this._isMuted;\n }\n\n /**\n * Get the hold status of this side of the call.\n * @returns\n * - A boolean representing the hold status of the call.\n * - `undefined` if the call state has not yet been received from the native\n * layer.\n */\n isOnHold(): boolean | undefined {\n return this._isOnHold;\n }\n\n /**\n * Return a `Record` of custom parameters given to this call.\n * @returns\n * - A `Record` of custom parameters.\n */\n getCustomParameters(): CustomParameters {\n return this._customParameters;\n }\n\n /**\n * Get the value of the `from` parameter given to this call.\n * @returns\n * - A `String` representing the `from` parameter.\n * - `undefined` if the call information has not yet been received from the\n * native layer.\n */\n getFrom(): string | undefined {\n return this._from;\n }\n\n /**\n * Get the timestamp (milliseconds since epoch) of the call connected event.\n * @returns\n * - A `number` representing the timestamp.\n * - `undefined` if the call has not yet connected.\n */\n getInitialConnectedTimestamp(): Date | undefined {\n return this._initialConnectedTimestamp;\n }\n\n /**\n * Get the call `SID`.\n * @returns\n * - A `String` representing the `SID` of the call.\n * - `undefined` if the call information has not yet been received from the\n * native layer.\n */\n getSid(): string | undefined {\n return this._sid;\n }\n\n /**\n * Get the state of the call object, such as {@link (Call:namespace).State.Connected} or\n * {@link (Call:namespace).State.Disconnected}.\n * @returns\n * - A {@link (Call:namespace).State}.\n */\n getState(): Call.State {\n return this._state;\n }\n\n /**\n * Gets the `PeerConnection` `WebRTC` stats for the ongoing call.\n * @returns\n * A `Promise` that\n * - Resolves with a {@link RTCStats.StatsReport} object representing the\n * `WebRTC` `PeerConnection` stats of a call.\n * - Rejects when a {@link RTCStats.StatsReport} cannot be generated for a\n * call.\n */\n async getStats(): Promise<RTCStats.StatsReport> {\n const stats = await settleNativePromise(\n NativeModule.call_getStats(this._uuid)\n );\n return stats;\n }\n\n /**\n * Get the value of the `to` parameter given to this call.\n * @returns\n * - A `String` representing the `to` parameter.\n * - `undefined` if the call information has not yet been received from the\n * native layer.\n */\n getTo(): string | undefined {\n return this._to;\n }\n\n /**\n * Put this end of the call on hold or not on hold.\n *\n * @example\n * To put a call on hold\n * ```typescript\n * call.hold(true);\n * ```\n * @example\n * To take a call off hold\n * ```typescript\n * call.hold(false);\n * ```\n *\n * @param hold - A `boolean` representing whether or not to put this end of\n * the call on hold.\n *\n * @returns\n * A `Promise` that\n * - Resolves with the hold status when the call is put on hold or not on\n * hold.\n * - Rejects when the call is not able to be put on hold or not on hold.\n */\n async hold(hold: boolean): Promise<boolean> {\n this._isOnHold = await settleNativePromise(\n NativeModule.call_hold(this._uuid, hold)\n );\n return this._isOnHold;\n }\n\n /**\n * Mute or unmute this end of the call.\n *\n * @example\n * To mute a call\n * ```typescript\n * call.mute(true);\n * ```\n *\n * @example\n * To unmute a call\n * ```typescript\n * call.mute(false);\n * ```\n *\n * @param mute - A `boolean` representing whether or not to mute this end of\n * the call.\n *\n * @returns\n * A `Promise` that\n * - Resolves with the muted status of the call when the call is muted or\n * unmuted.\n * - Rejects when the call is not able to be muted or unmuted.\n */\n async mute(mute: boolean): Promise<boolean> {\n this._isMuted = await settleNativePromise(\n NativeModule.call_mute(this._uuid, mute)\n );\n return this._isMuted;\n }\n\n /**\n * Send DTMF digits.\n *\n * @example\n * To send the `0` dialtone:\n * ```typescript\n * call.sendDigits('0');\n * ```\n *\n * @example\n * To send the `0` and then `1` dialtone:\n * ```typescript\n * call.sendDigits('01');\n * ```\n *\n * @param digits - A sequence of DTMF digits in a string.\n *\n * @returns\n * A `Promise` that\n * - Resolves when the DTMF digits have been sent.\n * - Rejects when DTMF tones are not able to be sent.\n */\n async sendDigits(digits: string): Promise<void> {\n await settleNativePromise(NativeModule.call_sendDigits(this._uuid, digits));\n }\n\n /**\n * Send a CallMessage.\n *\n * @example\n * To send a user-defined-message\n * ```typescript\n * const outgoingCallMessage: OutgoingCallMessage = await call.sendMessage({\n * content: { key1: 'This is a messsage from the parent call' },\n * contentType: 'application/json',\n * messageType: 'user-defined-message'\n * });\n *\n * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {\n * // outgoingCallMessage failed, handle error\n * });\n *\n * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {\n * // outgoingCallMessage sent\n * });\n * ```\n *\n * @param message - The call message to send.\n *\n * @returns\n * A `Promise` that\n * - Resolves with the OutgoingCallMessage object.\n * - Rejects when the message is unable to be sent.\n */\n async sendMessage(message: CallMessage): Promise<OutgoingCallMessage> {\n const { content, contentType, messageType } = validateCallMessage(message);\n\n const voiceEventSid = await settleNativePromise(\n NativeModule.call_sendMessage(\n this._uuid,\n content,\n contentType,\n messageType\n )\n );\n\n const outgoingCallMessage = new OutgoingCallMessage({\n content,\n contentType,\n messageType,\n voiceEventSid,\n });\n\n return outgoingCallMessage;\n }\n\n /**\n * Post feedback about a call.\n *\n * @example\n * To report that a call had very significant audio latency:\n * ```typescript\n * call.postFeedback(Call.Score.Five, Call.Issue.AudioLatency);\n * ```\n *\n * @param score - A score representing the serverity of the issue being\n * reported.\n * @param issue - The issue being reported.\n * @returns\n * A `Promise` that\n * - Resolves when the feedback has been posted.\n * - Rejects when the feedback is unable to be sent.\n */\n async postFeedback(score: Call.Score, issue: Call.Issue): Promise<void> {\n if (!validScores.includes(score)) {\n throw new InvalidArgumentError(\n '\"score\" parameter invalid. Must be a member of the `Call.Score` enum.'\n );\n }\n\n if (!Object.values(Call.Issue).includes(issue)) {\n throw new InvalidArgumentError(\n '\"issue\" parameter invalid. Must be a member of the `Call.Issue` enum.'\n );\n }\n\n const nativeScore = scoreMap[score];\n const nativeIssue = issueMap[issue];\n\n await settleNativePromise(\n NativeModule.call_postFeedback(this._uuid, nativeScore, nativeIssue)\n );\n }\n}\n\n/**\n * Namespace for enumerations and types used by\n * {@link (Call:class) | Call objects}.\n *\n * @remarks\n * - See also the {@link (Call:class) | Call class}.\n * - See also the {@link (Call:interface) | Call interface}.\n *\n * @public\n */\nexport namespace Call {\n /**\n * Enumeration of all event strings emitted by {@link (Call:class)} objects.\n */\n export enum Event {\n /**\n * Event string for the `Connected` event.\n * See {@link (Call:interface).(addListener:1)}.\n */\n 'Connected' = 'connected',\n\n /**\n * Event string for the `ConnectedFailure` event.\n * See {@link (Call:interface).(addListener:2)}.\n */\n 'ConnectFailure' = 'connectFailure',\n\n /**\n * Event string for the `Reconnecting` event.\n * See {@link (Call:interface).(addListener:3)}.\n */\n 'Reconnecting' = 'reconnecting',\n\n /**\n * Event string for the `Reconnected` event.\n * See {@link (Call:interface).(addListener:4)}.\n */\n 'Reconnected' = 'reconnected',\n\n /**\n * Event string for the `Disconnected` event.\n * See {@link (Call:interface).(addListener:5)}.\n */\n 'Disconnected' = 'disconnected',\n\n /**\n * Event string for the `Ringing` event.\n * See {@link (Call:interface).(addListener:6)}.\n */\n 'Ringing' = 'ringing',\n\n /**\n * Event string for the `Hold` event.\n * See {@link (Call:interface).(addListener:9)}.\n */\n 'Hold' = 'hold',\n\n /**\n * Event string for the `QualityWarningsChanged` event.\n * See {@link (Call:interface).(addListener:7)}.\n */\n 'QualityWarningsChanged' = 'qualityWarningsChanged',\n\n /**\n * Event string for the `MessageReceived` event.\n * See {@link (Call:interface).(addListener:8)}\n */\n 'MessageReceived' = 'messageReceived',\n }\n\n /**\n * An enumeration of all possible {@link (Call:class) | Call object} states.\n */\n export enum State {\n /**\n * Call `Connected` state.\n *\n * Occurs when the `Connected` and `Reconnected` event is raised.\n *\n * @remarks\n *\n * See {@link (Call:interface).(addListener:1)}.\n *\n * See {@link (Call:interface).(addListener:4)}.\n */\n 'Connected' = Constants.CallStateConnected,\n\n /**\n * Call `Connecting` state.\n *\n * The default state of an outgoing call.\n */\n 'Connecting' = Constants.CallStateConnecting,\n\n /**\n * Call `Disconnected` state.\n *\n * Occurs when the `Disconnected` or `ConnectFailure` event is raised.\n *\n * @remarks\n *\n * See {@link (Call:interface).(addListener:5)}.\n *\n * See {@link (Call:interface).(addListener:2)}.\n */\n 'Disconnected' = Constants.CallStateDisconnected,\n\n /**\n * Call `Reconnecting` state.\n *\n * Occurs when the `Reconnecting` event is raised.\n *\n * @remarks\n *\n * See {@link (Call:interface).(addListener:3)}.\n */\n 'Reconnecting' = Constants.CallStateReconnecting,\n\n /**\n * Call `Ringing` state. Occurs when the `Ringing` event is raised.\n *\n * @remarks\n *\n * See {@link (Call:interface).(addListener:6)}.\n */\n 'Ringing' = Constants.CallStateRinging,\n }\n\n /**\n * An enumeration of all call quality-warning types.\n */\n export enum QualityWarning {\n /**\n * Raised when the call detects constant audio input, such as silence.\n */\n 'ConstantAudioInputLevel' = 'constant-audio-input-level',\n /**\n * Raised when the network encounters high jitter.\n */\n 'HighJitter' = 'high-jitter',\n /**\n * Raised when the network encounters high packet loss.\n */\n 'HighPacketLoss' = 'high-packet-loss',\n /**\n * Raised when the network encounters high packet round-trip-time.\n */\n 'HighRtt' = 'high-rtt',\n /**\n * Raised when the call detects a low mean-opinion-score or MOS.\n */\n 'LowMos' = 'low-mos',\n }\n\n /**\n * An enumeration of all scores that could be used to rate the experience of\n * a call or issues encountered during the call.\n */\n export enum Score {\n /**\n * An issue was not encountered or there is no desire to report said issue.\n */\n 'NotReported' = 0,\n /**\n * An issue had severity approximately 1/5.\n */\n 'One' = 1,\n /**\n * An issue had severity approximately 2/5.\n */\n 'Two' = 2,\n /**\n * An issue had severity approximately 3/5.\n */\n 'Three' = 3,\n /**\n * An issue had severity approximately 4/5.\n */\n 'Four' = 4,\n /**\n * An issue had severity approximately 5/5.\n */\n 'Five' = 5,\n }\n\n /**\n * An enumeration of call issues that can be reported.\n */\n export enum Issue {\n /**\n * No issue is reported.\n */\n 'NotReported' = 'not-reported',\n /**\n * The call was dropped unexpectedly.\n */\n 'DroppedCall' = 'dropped-call',\n /**\n * The call encountered significant audio latency.\n */\n 'AudioLatency' = 'audio-latency',\n /**\n * One party of the call could not hear the other callee.\n */\n 'OneWayAudio' = 'one-way-audio',\n /**\n * Call audio was choppy.\n */\n 'ChoppyAudio' = 'choppy-audio',\n /**\n * Call audio had significant noise.\n */\n 'NoisyCall' = 'noisy-call',\n /**\n * Call audio had significant echo.\n */\n 'Echo' = 'echo',\n }\n\n /**\n * Listener types for all events emitted by a\n * {@link (Call:class) | Call object.}\n */\n export namespace Listener {\n /**\n * Connected event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Connected}\n * event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:1)}.\n */\n export type Connected = () => void;\n\n /**\n * Connect failure event listener. This should be the function signature of\n * any event listener bound to the\n * {@link (Call:namespace).Event.ConnectFailure} event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:2)}.\n *\n * See {@link TwilioErrors} for all error classes.\n */\n export type ConnectFailure = (error: TwilioError) => void;\n\n /**\n * Reconnecting event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Reconnecting}\n * event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:3)}.\n *\n * See {@link TwilioErrors} for all error classes.\n */\n export type Reconnecting = (error: TwilioError) => void;\n\n /**\n * Reconnected event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Reconnected}\n * event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:4)}.\n */\n export type Reconnected = () => void;\n\n /**\n * Disconnected event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Disconnected}\n * event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:5)}.\n *\n * See {@link TwilioErrors} for all error classes.\n */\n export type Disconnected = (error?: TwilioError) => void;\n\n /**\n * Ringing event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Ringing} event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:6)}.\n */\n export type Ringing = () => void;\n\n /**\n * Hold event listener. This should be the function signature of any\n * event listener bound to the {@link (Call:namespace).Event.Hold} event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:9)}.\n *\n * @param isOnHold - A boolean indicating whether the call is now on hold.\n */\n export type Hold = (isOnHold: boolean) => void;\n\n /**\n * Quality warnings changed event listener. This should be the function\n * signature of any event listener bound to the\n * {@link (Call:namespace).Event.QualityWarningsChanged} event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:7)}.\n */\n export type QualityWarningsChanged = (\n currentQualityWarnings: Call.QualityWarning[],\n previousQualityWarnings: Call.QualityWarning[]\n ) => void;\n\n /**\n * CallMessage received event listener. This should be the function signature of\n * any event listener bound to the {@link (Call:namespace).Event.MessageReceived} event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:8)}.\n */\n export type MessageReceived = (\n incomingCallMessage: IncomingCallMessage\n ) => void;\n\n /**\n * Generic event listener. This should be the function signature of any\n * event listener bound to any call event.\n *\n * @remarks\n * See {@link (Call:interface).(addListener:9)}.\n */\n export type Generic = (...args: any[]) => void;\n }\n}\n\n/**\n * Mapping of {@link (Call:namespace).Event | Call events} to\n * {@link (Call:namespace).State | Call states}.\n *\n * @remarks\n * Note that this mapping is not a 1:1 bijection. Not every event coming from\n * the native layer has a relevant state, and some events share a state.\n * Therefore, this `Record` needs to be marked as `Partial` and\n * undefined-checking logic is needed when using this mapping.\n *\n * @internal\n */\nconst eventTypeStateMap: Partial<Record<NativeCallEventType, Call.State>> = {\n [Constants.CallEventConnected]: Call.State.Connected,\n [Constants.CallEventConnectFailure]: Call.State.Disconnected,\n [Constants.CallEventDisconnected]: Call.State.Disconnected,\n [Constants.CallEventReconnecting]: Call.State.Reconnecting,\n [Constants.CallEventReconnected]: Call.State.Connected,\n [Constants.CallEventRinging]: Call.State.Ringing,\n};\n\n/**\n * Array of valid call scores.\n *\n * @internal\n */\nconst validScores = [\n Call.Score.NotReported,\n Call.Score.One,\n Call.Score.Two,\n Call.Score.Three,\n Call.Score.Four,\n Call.Score.Five,\n];\n\n/**\n * Mapping of the {@link (Call:namespace).Score | Call score} enum to\n * cross-platform common constants.\n *\n * @internal\n */\nconst scoreMap: Record<Call.Score, NativeCallFeedbackScore> = {\n [Call.Score.NotReported]: Constants.CallFeedbackScoreNotReported,\n [Call.Score.One]: Constants.CallFeedbackScoreOne,\n [Call.Score.Two]: Constants.CallFeedbackScoreTwo,\n [Call.Score.Three]: Constants.CallFeedbackScoreThree,\n [Call.Score.Four]: Constants.CallFeedbackScoreFour,\n [Call.Score.Five]: Constants.CallFeedbackScoreFive,\n};\n\n/**\n * Mapping of the {@link (Call:namespace).Issue | Call issue} enum to\n * cross-platform common constants.\n *\n * @internal\n */\nconst issueMap: Record<Call.Issue, NativeCallFeedbackIssue> = {\n [Call.Issue.AudioLatency]: Constants.CallFeedbackIssueAudioLatency,\n [Call.Issue.ChoppyAudio]: Constants.CallFeedbackIssueChoppyAudio,\n [Call.Issue.DroppedCall]: Constants.CallFeedbackIssueDroppedCall,\n [Call.Issue.Echo]: Constants.CallFeedbackIssueEcho,\n [Call.Issue.NoisyCall]: Constants.CallFeedbackIssueNoisyCall,\n [Call.Issue.NotReported]: Constants.CallFeedbackIssueNotReported,\n [Call.Issue.OneWayAudio]: Constants.CallFeedbackIssueOneWayAudio,\n};\n"]}
|
|
@@ -85,6 +85,7 @@ exports.Constants = Constants;
|
|
|
85
85
|
Constants["CallEventReconnecting"] = "callEventReconnecting";
|
|
86
86
|
Constants["CallEventReconnected"] = "callEventReconnected";
|
|
87
87
|
Constants["CallEventRinging"] = "callEventRinging";
|
|
88
|
+
Constants["CallEventHold"] = "callEventHold";
|
|
88
89
|
Constants["CallEventQualityWarningsChanged"] = "callEventQualityWarningsChanged";
|
|
89
90
|
Constants["CallEventCurrentWarnings"] = "callEventCurrentWarnings";
|
|
90
91
|
Constants["CallEventPreviousWarnings"] = "callEventPreviousWarnings";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["constants.ts"],"names":["Constants"],"mappings":";;;;;;IAAYA,S;;;WAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;GAAAA,S,yBAAAA,S","sourcesContent":["export enum Constants {\n // React Native Voice SDK\n 'ReactNativeVoiceSDK' = 'react-native',\n 'ReactNativeVoiceSDKVer' = '2.0.0-dev',\n\n // Scope names\n 'ScopeVoice' = 'scopeVoice',\n 'ScopeCall' = 'scopeCall',\n 'ScopeCallMessage' = 'scopeCallMessage',\n 'ScopeCallInvite' = 'scopeCallInvite',\n 'ScopePreflightTest' = 'scopePreflightTest',\n\n // Voice events\n // Common\n 'VoiceEventError' = 'voiceEventError',\n 'VoiceEventType' = 'type',\n\n // Error\n 'VoiceErrorKeyError' = 'error',\n 'VoiceErrorKeyCode' = 'code',\n 'VoiceErrorKeyMessage' = 'message',\n\n // Registration\n 'VoiceEventRegistered' = 'voiceEventRegistered',\n 'VoiceEventUnregistered' = 'voiceEventUnregistered',\n\n // Call Info\n 'CallInfoUuid' = 'uuid',\n 'CallInfoSid' = 'sid',\n 'CallInfoFrom' = 'from',\n 'CallInfoTo' = 'to',\n 'CallInfoIsMuted' = 'isMuted',\n 'CallInfoIsOnHold' = 'isOnHold',\n 'CallInfoState' = 'state',\n 'CallInfoInitialConnectedTimestamp' = 'initialConnectedTimestamp',\n\n // Call States\n 'CallStateConnected' = 'connected',\n 'CallStateConnecting' = 'connecting',\n 'CallStateDisconnected' = 'disconnected',\n 'CallStateReconnecting' = 'reconnecting',\n 'CallStateRinging' = 'ringing',\n\n // Call Options\n 'AudioCodecKeyType' = 'type',\n\n 'AudioCodecTypeValueOpus' = 'opus',\n 'AudioCodecOpusKeyMaxAverageBitrate' = 'maxAverageBitrate',\n\n 'AudioCodecTypeValuePCMU' = 'pcmu',\n\n 'IceTransportPolicyValueAll' = 'all',\n 'IceTransportPolicyValueRelay' = 'relay',\n\n 'IceServerKeyPassword' = 'password',\n 'IceServerKeyServerUrl' = 'serverUrl',\n 'IceServerKeyUsername' = 'username',\n\n 'CallOptionsKeyIceTransportPolicy' = 'iceTransportPolicy',\n 'CallOptionsKeyIceServers' = 'iceServers',\n 'CallOptionsKeyPreferredAudioCodecs' = 'preferredAudioCodecs',\n\n // Call Invite Info\n 'CallInviteInfoUuid' = 'uuid',\n 'CallInviteInfoCallSid' = 'callSid',\n 'CallInviteInfoFrom' = 'from',\n 'CallInviteInfoTo' = 'to',\n 'CallInviteInfoCustomParameters' = 'customParameters',\n\n // Cancelled Call Invite Info\n 'CancelledCallInviteInfoUuid' = 'uuid',\n 'CancelledCallInviteInfoCallSid' = 'callSid',\n 'CancelledCallInviteInfoFrom' = 'from',\n 'CancelledCallInviteInfoTo' = 'to',\n 'CancelledCallInviteInfoCustomParameters' = 'customParameters',\n\n // Incoming Call Invite event\n 'VoiceEventTypeValueIncomingCallInvite' = 'voiceEventTypeValueIncomingCallInvite',\n\n // Call Message\n 'VoiceEventSid' = 'voiceEventSid',\n 'CallMessage' = 'callMessage',\n 'CallMessageContent' = 'content',\n 'CallMessageContentType' = 'contentType',\n 'CallMessageMessageType' = 'messageType',\n 'JSEventKeyCallMessageInfo' = 'callMessage',\n\n // Audio Devices Updated Event\n 'VoiceEventAudioDevicesUpdated' = 'voiceEventAudioDevicesUpdated',\n\n // Audio Device\n 'AudioDeviceKeyUuid' = 'uuid',\n 'AudioDeviceKeyName' = 'name',\n 'AudioDeviceKeyType' = 'type',\n 'AudioDeviceKeyAudioDevices' = 'audioDevices',\n 'AudioDeviceKeySelectedDevice' = 'selectedDevice',\n 'AudioDeviceKeyEarpiece' = 'earpiece',\n 'AudioDeviceKeySpeaker' = 'speaker',\n 'AudioDeviceKeyBluetooth' = 'bluetooth',\n\n // CallInvite events\n 'CallInviteEventKeyType' = 'type',\n 'CallInviteEventTypeValueAccepted' = 'callInviteEventTypeValueCallInviteAccepted',\n 'CallInviteEventTypeValueNotificationTapped' = 'callInviteEventTypeValueCallInviteNotificationTapped',\n 'CallInviteEventTypeValueRejected' = 'callInviteEventTypeValueCallInviteRejected',\n 'CallInviteEventTypeValueCancelled' = 'callInviteEventTypeValueCallInviteCancelled',\n 'CallInviteEventKeyCallSid' = 'callSid',\n\n // Call events\n // State\n 'CallEventConnected' = 'callEventConnected',\n 'CallEventConnectFailure' = 'callEventConnectFailure',\n 'CallEventDisconnected' = 'callEventDisconnected',\n 'CallEventReconnecting' = 'callEventReconnecting',\n 'CallEventReconnected' = 'callEventReconnected',\n 'CallEventRinging' = 'callEventRinging',\n\n // Quality warnings\n 'CallEventQualityWarningsChanged' = 'callEventQualityWarningsChanged',\n 'CallEventCurrentWarnings' = 'callEventCurrentWarnings',\n 'CallEventPreviousWarnings' = 'callEventPreviousWarnings',\n\n // Call message events\n 'CallEventMessageFailure' = 'callEventMessageFailure',\n 'CallEventMessageReceived' = 'callEventMessageReceived',\n 'CallEventMessageSent' = 'callEventMessageSent',\n\n // Call feedback score\n 'CallFeedbackScoreNotReported' = 'callFeedbackScoreNotReported',\n 'CallFeedbackScoreOne' = 'callFeedbackScoreOne',\n 'CallFeedbackScoreTwo' = 'callFeedbackScoreTwo',\n 'CallFeedbackScoreThree' = 'callFeedbackScoreThree',\n 'CallFeedbackScoreFour' = 'callFeedbackScoreFour',\n 'CallFeedbackScoreFive' = 'callFeedbackScoreFive',\n\n // Call feedback issue\n 'CallFeedbackIssueNotReported' = 'callFeedbackIssueNotReported',\n 'CallFeedbackIssueDroppedCall' = 'callFeedbackIssueDroppedCall',\n 'CallFeedbackIssueAudioLatency' = 'callFeedbackIssueAudioLatency',\n 'CallFeedbackIssueOneWayAudio' = 'callFeedbackIssueOneWayAudio',\n 'CallFeedbackIssueChoppyAudio' = 'callFeedbackIssueChoppyAudio',\n 'CallFeedbackIssueNoisyCall' = 'callFeedbackIssueNoisyCall',\n 'CallFeedbackIssueEcho' = 'callFeedbackIssueEcho',\n\n // StatsReport\n 'PeerConnectionId' = 'peerConnectionId',\n 'LocalAudioTrackStats' = 'localAudioTrackStats',\n 'RemoteAudioTrackStats' = 'remoteAudioTrackStats',\n 'IceCandidatePairStats' = 'iceCandidatePairStats',\n 'IceCandidateStats' = 'iceCandidateStats',\n 'Codec' = 'codec',\n 'PacketsLost' = 'packetsLost',\n 'Ssrc' = 'ssrc',\n 'TrackId' = 'trackId',\n 'Timestamp' = 'timestamp',\n 'BytesSent' = 'bytesSent',\n 'PacketsSent' = 'packetsSent',\n 'RoundTripTime' = 'roundTripTime',\n 'AudioLevel' = 'audioLevel',\n 'Jitter' = 'jitter',\n 'BytesReceived' = 'bytesReceived',\n 'Mos' = 'mos',\n 'TransportId' = 'transportId',\n 'LocalCandidateId' = 'localCandidateId',\n 'RemoteCandidateId' = 'remoteCandidateId',\n 'State' = 'state',\n 'LocalCandidateIp' = 'localCandidateIp',\n 'RemoteCandidateIp' = 'remoteCandidateIp',\n 'Nominated' = 'nominated',\n 'Writeable' = 'writeable',\n 'Readable' = 'readable',\n 'TotalRoundTripTime' = 'totalRoundTripTime',\n 'CurrentRoundTripTime' = 'currentRoundTripTime',\n 'AvailableOutgoingBitrate' = 'availableOutgoingBitrate',\n 'AvailableIncomingBitrate' = 'availableIncomingBitrate',\n 'RequestsReceived' = 'requestsReceived',\n 'RequestsSent' = 'requestsSent',\n 'ResponsesReceived' = 'responsesReceived',\n 'ResponsesSent' = 'responsesSent',\n 'RetransmissionsReceived' = 'retransmissionsReceived',\n 'RetransmissionsSent' = 'retransmissionsSent',\n 'ConsentRequestsReceived' = 'consentRequestsReceived',\n 'ConsentRequestsSent' = 'consentRequestsSent',\n 'ConsentResponsesReceived' = 'consentResponsesReceived',\n 'ConsentResponsesSent' = 'consentResponsesSent',\n 'ActiveCandidatePair' = 'activeCandidatePair',\n 'RelayProtocol' = 'relayProtocol',\n 'IsRemote' = 'isRemote',\n 'Ip' = 'ip',\n 'Port' = 'port',\n 'Protocol' = 'protocol',\n 'CandidateType' = 'candidateType',\n 'Priority' = 'priority',\n 'Url' = 'url',\n 'Deleted' = 'deleted',\n 'PacketsReceived' = 'packetsReceived',\n\n // IceCandidatePairState\n 'StateFailed' = 'stateFailed',\n 'StateFrozen' = 'stateFrozen',\n 'StateInProgress' = 'stateInProgress',\n 'StateSucceeded' = 'stateSucceeded',\n 'StateWaiting' = 'stateWaiting',\n 'StateUnknown' = 'stateUnknown',\n\n // iOS CallKit configuration\n 'CallKitMaximumCallsPerCallGroup' = 'callKitMaximumCallsPerCallGroup',\n 'CallKitMaximumCallGroups' = 'callKitMaximumCallGroups',\n 'CallKitIncludesCallsInRecents' = 'callKitIncludesCallsInRecents',\n 'CallKitSupportedHandleTypes' = 'callKitSupportedHandleTypes',\n 'CallKitIconTemplateImageData' = 'callKitIconTemplateImageData',\n 'CallKitRingtoneSound' = 'callKitRingtoneSound',\n\n // PreflightTest events\n 'PreflightTestEventKeyType' = 'preflightTestEventKeyType',\n 'PreflightTestEventKeyUuid' = 'preflightTestEventKeyUuid',\n\n 'PreflightTestEventTypeValueConnected' = 'preflightTestEventTypeValueConnected',\n\n 'PreflightTestEventTypeValueCompleted' = 'preflightTestEventTypeValueCompleted',\n 'PreflightTestCompletedEventKeyReport' = 'preflightTestCompletedEventKeyReport',\n\n 'PreflightTestEventTypeValueFailed' = 'preflightTestEventTypeValueFailed',\n 'PreflightTestFailedEventKeyError' = 'preflightTestFailedEventKeyError',\n\n 'PreflightTestEventTypeValueSample' = 'preflightTestEventTypeValueSample',\n 'PreflightTestSampleEventKeySample' = 'preflightTestSampleEventKeySample',\n\n 'PreflightTestEventTypeValueQualityWarning' = 'preflightTestEventTypeValueQualityWarning',\n 'PreflightTestQualityWarningEventKeyCurrentWarnings' = 'preflightTestQualityWarningEventKeyCurrentWarnings',\n 'PreflightTestQualityWarningEventKeyPreviousWarnings' = 'preflightTestQualityWarningEventKeyPreviousWarnings',\n\n // PreflightTest state\n 'PreflightTestStateConnecting' = 'connecting',\n 'PreflightTestStateConnected' = 'connected',\n 'PreflightTestStateCompleted' = 'completed',\n 'PreflightTestStateFailed' = 'failed',\n\n // PreflightStats\n 'PreflightStatsAverage' = 'average',\n 'PreflightStatsMin' = 'min',\n 'PreflightStatsMax' = 'max',\n\n // PreflightRTCStats\n 'PreflightRTCStatsJitter' = 'jitter',\n 'PreflightRTCStatsMos' = 'mos',\n 'PreflightRTCStatsRtt' = 'rtt',\n\n // PreflightTimeMeasurement\n 'PreflightTimeMeasurementStart' = 'start',\n 'PreflightTimeMeasurementEnd' = 'end',\n 'PreflightTimeMeasurementDuration' = 'duration',\n\n // PreflightNetworkTiming\n 'PreflightNetworkTimingSignaling' = 'signaling',\n 'PreflightNetworkTimingPeerConnection' = 'peerConnection',\n 'PreflightNetworkTimingIce' = 'ice',\n\n // PreflightWarning\n 'PreflightWarningName' = 'name',\n 'PreflightWarningThreshold' = 'threshold',\n 'PreflightWarningValues' = 'values',\n 'PreflightWarningTimestamp' = 'timestamp',\n\n // PreflightWarningCleared\n 'PreflightWarningClearedName' = 'name',\n 'PreflightWarningClearedTimestamp' = 'timestamp',\n\n // PreflightRTCIceCandidateStats\n 'PreflightRTCIceCandidateStatsTransportId' = 'transportId',\n 'PreflightRTCIceCandidateStatsIsRemote' = 'isRemote',\n 'PreflightRTCIceCandidateStatsIp' = 'ip',\n 'PreflightRTCIceCandidateStatsPort' = 'port',\n 'PreflightRTCIceCandidateStatsProtocol' = 'protocol',\n 'PreflightRTCIceCandidateStatsCandidateType' = 'candidateType',\n 'PreflightRTCIceCandidateStatsPriority' = 'priority',\n 'PreflightRTCIceCandidateStatsUrl' = 'url',\n 'PreflightRTCIceCandidateStatsDeleted' = 'deleted',\n 'PreflightRTCIceCandidateStatsNetworkCost' = 'networkCost',\n 'PreflightRTCIceCandidateStatsNetworkId' = 'networkId',\n 'PreflightRTCIceCandidateStatsNetworkType' = 'networkType',\n 'PreflightRTCIceCandidateStatsRelatedAddress' = 'relatedAddress',\n 'PreflightRTCIceCandidateStatsRelatedPort' = 'relatedPort',\n 'PreflightRTCIceCandidateStatsTcpType' = 'tcpType',\n\n // PreflightRTCSelectedIceCandidatePairStats\n 'PreflightRTCSelectedIceCandidatePairStatsLocalCandidate' = 'localCandidate',\n 'PreflightRTCSelectedIceCandidatePairStatsRemoteCandidate' = 'remoteCandidate',\n\n // PreflightRTCSample\n 'PreflightRTCSampleCodec' = 'codec',\n 'PreflightRTCSampleAudioInputLevel' = 'audioInputLevel',\n 'PreflightRTCSampleAudioOutputLevel' = 'audioOutputLevel',\n 'PreflightRTCSampleBytesReceived' = 'bytesReceived',\n 'PreflightRTCSampleBytesSent' = 'bytesSent',\n 'PreflightRTCSamplePacketsReceived' = 'packetsReceived',\n 'PreflightRTCSamplePacketsSent' = 'packetsSent',\n 'PreflightRTCSamplePacketsLost' = 'packetsLost',\n 'PreflightRTCSamplePacketsLostFraction' = 'packetsLostFraction',\n 'PreflightRTCSampleJitter' = 'jitter',\n 'PreflightRTCSampleMos' = 'mos',\n 'PreflightRTCSampleRtt' = 'rtt',\n 'PreflightRTCSampleTimestamp' = 'timestamp',\n\n // PreflightCallQuality\n 'PreflightCallQualityExcellent' = 'excellent',\n 'PreflightCallQualityGreat' = 'great',\n 'PreflightCallQualityGood' = 'good',\n 'PreflightCallQualityFair' = 'fair',\n 'PreflightCallQualityDegraded' = 'degraded',\n 'PreflightCallQualityNull' = 'null',\n\n // PreflightReport\n 'PreflightReportCallSid' = 'callSid',\n 'PreflightReportEdge' = 'edge',\n 'PreflightReportSelectedEdge' = 'selectedEdge',\n 'PreflightReportIceCandidateStats' = 'iceCandidateStats',\n 'PreflightReportNetworkTiming' = 'networkTiming',\n 'PreflightReportTestTiming' = 'testTiming',\n 'PreflightReportSamples' = 'samples',\n 'PreflightReportStats' = 'stats',\n 'PreflightReportIsTurnRequired' = 'isTurnRequired',\n 'PreflightReportCallQuality' = 'callQuality',\n 'PreflightReportWarnings' = 'warnings',\n 'PreflightReportWarningsCleared' = 'warningsCleared',\n 'PreflightReportSelectedIceCandidatePairStats' = 'selectedIceCandidatePairStats',\n\n // Error codes\n 'ErrorCodeInvalidStateError' = 'InvalidStateError',\n 'ErrorCodeInvalidArgumentError' = 'InvalidArgumentError',\n\n // Native promise utilities\n 'PromiseKeyStatus' = 'promiseKeyStatus',\n 'PromiseStatusValueRejectedWithCode' = 'promiseStatusValueRejectedWithCode',\n 'PromiseKeyErrorCode' = 'promiseKeyErrorCode',\n 'PromiseStatusValueRejectedWithName' = 'promiseStatusValueRejectedWithName',\n 'PromiseKeyErrorName' = 'promiseKeyErrorName',\n 'PromiseKeyErrorMessage' = 'promiseKeyErrorMessage',\n 'PromiseStatusValueResolved' = 'promiseStatusValueResolved',\n 'PromiseKeyValue' = 'promiseKeyValue',\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["constants.ts"],"names":["Constants"],"mappings":";;;;;;IAAYA,S;;;WAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;GAAAA,S,yBAAAA,S","sourcesContent":["export enum Constants {\n // React Native Voice SDK\n 'ReactNativeVoiceSDK' = 'react-native',\n 'ReactNativeVoiceSDKVer' = '2.0.0-dev',\n\n // Scope names\n 'ScopeVoice' = 'scopeVoice',\n 'ScopeCall' = 'scopeCall',\n 'ScopeCallMessage' = 'scopeCallMessage',\n 'ScopeCallInvite' = 'scopeCallInvite',\n 'ScopePreflightTest' = 'scopePreflightTest',\n\n // Voice events\n // Common\n 'VoiceEventError' = 'voiceEventError',\n 'VoiceEventType' = 'type',\n\n // Error\n 'VoiceErrorKeyError' = 'error',\n 'VoiceErrorKeyCode' = 'code',\n 'VoiceErrorKeyMessage' = 'message',\n\n // Registration\n 'VoiceEventRegistered' = 'voiceEventRegistered',\n 'VoiceEventUnregistered' = 'voiceEventUnregistered',\n\n // Call Info\n 'CallInfoUuid' = 'uuid',\n 'CallInfoSid' = 'sid',\n 'CallInfoFrom' = 'from',\n 'CallInfoTo' = 'to',\n 'CallInfoIsMuted' = 'isMuted',\n 'CallInfoIsOnHold' = 'isOnHold',\n 'CallInfoState' = 'state',\n 'CallInfoInitialConnectedTimestamp' = 'initialConnectedTimestamp',\n\n // Call States\n 'CallStateConnected' = 'connected',\n 'CallStateConnecting' = 'connecting',\n 'CallStateDisconnected' = 'disconnected',\n 'CallStateReconnecting' = 'reconnecting',\n 'CallStateRinging' = 'ringing',\n\n // Call Options\n 'AudioCodecKeyType' = 'type',\n\n 'AudioCodecTypeValueOpus' = 'opus',\n 'AudioCodecOpusKeyMaxAverageBitrate' = 'maxAverageBitrate',\n\n 'AudioCodecTypeValuePCMU' = 'pcmu',\n\n 'IceTransportPolicyValueAll' = 'all',\n 'IceTransportPolicyValueRelay' = 'relay',\n\n 'IceServerKeyPassword' = 'password',\n 'IceServerKeyServerUrl' = 'serverUrl',\n 'IceServerKeyUsername' = 'username',\n\n 'CallOptionsKeyIceTransportPolicy' = 'iceTransportPolicy',\n 'CallOptionsKeyIceServers' = 'iceServers',\n 'CallOptionsKeyPreferredAudioCodecs' = 'preferredAudioCodecs',\n\n // Call Invite Info\n 'CallInviteInfoUuid' = 'uuid',\n 'CallInviteInfoCallSid' = 'callSid',\n 'CallInviteInfoFrom' = 'from',\n 'CallInviteInfoTo' = 'to',\n 'CallInviteInfoCustomParameters' = 'customParameters',\n\n // Cancelled Call Invite Info\n 'CancelledCallInviteInfoUuid' = 'uuid',\n 'CancelledCallInviteInfoCallSid' = 'callSid',\n 'CancelledCallInviteInfoFrom' = 'from',\n 'CancelledCallInviteInfoTo' = 'to',\n 'CancelledCallInviteInfoCustomParameters' = 'customParameters',\n\n // Incoming Call Invite event\n 'VoiceEventTypeValueIncomingCallInvite' = 'voiceEventTypeValueIncomingCallInvite',\n\n // Call Message\n 'VoiceEventSid' = 'voiceEventSid',\n 'CallMessage' = 'callMessage',\n 'CallMessageContent' = 'content',\n 'CallMessageContentType' = 'contentType',\n 'CallMessageMessageType' = 'messageType',\n 'JSEventKeyCallMessageInfo' = 'callMessage',\n\n // Audio Devices Updated Event\n 'VoiceEventAudioDevicesUpdated' = 'voiceEventAudioDevicesUpdated',\n\n // Audio Device\n 'AudioDeviceKeyUuid' = 'uuid',\n 'AudioDeviceKeyName' = 'name',\n 'AudioDeviceKeyType' = 'type',\n 'AudioDeviceKeyAudioDevices' = 'audioDevices',\n 'AudioDeviceKeySelectedDevice' = 'selectedDevice',\n 'AudioDeviceKeyEarpiece' = 'earpiece',\n 'AudioDeviceKeySpeaker' = 'speaker',\n 'AudioDeviceKeyBluetooth' = 'bluetooth',\n\n // CallInvite events\n 'CallInviteEventKeyType' = 'type',\n 'CallInviteEventTypeValueAccepted' = 'callInviteEventTypeValueCallInviteAccepted',\n 'CallInviteEventTypeValueNotificationTapped' = 'callInviteEventTypeValueCallInviteNotificationTapped',\n 'CallInviteEventTypeValueRejected' = 'callInviteEventTypeValueCallInviteRejected',\n 'CallInviteEventTypeValueCancelled' = 'callInviteEventTypeValueCallInviteCancelled',\n 'CallInviteEventKeyCallSid' = 'callSid',\n\n // Call events\n // State\n 'CallEventConnected' = 'callEventConnected',\n 'CallEventConnectFailure' = 'callEventConnectFailure',\n 'CallEventDisconnected' = 'callEventDisconnected',\n 'CallEventReconnecting' = 'callEventReconnecting',\n 'CallEventReconnected' = 'callEventReconnected',\n 'CallEventRinging' = 'callEventRinging',\n 'CallEventHold' = 'callEventHold',\n\n // Quality warnings\n 'CallEventQualityWarningsChanged' = 'callEventQualityWarningsChanged',\n 'CallEventCurrentWarnings' = 'callEventCurrentWarnings',\n 'CallEventPreviousWarnings' = 'callEventPreviousWarnings',\n\n // Call message events\n 'CallEventMessageFailure' = 'callEventMessageFailure',\n 'CallEventMessageReceived' = 'callEventMessageReceived',\n 'CallEventMessageSent' = 'callEventMessageSent',\n\n // Call feedback score\n 'CallFeedbackScoreNotReported' = 'callFeedbackScoreNotReported',\n 'CallFeedbackScoreOne' = 'callFeedbackScoreOne',\n 'CallFeedbackScoreTwo' = 'callFeedbackScoreTwo',\n 'CallFeedbackScoreThree' = 'callFeedbackScoreThree',\n 'CallFeedbackScoreFour' = 'callFeedbackScoreFour',\n 'CallFeedbackScoreFive' = 'callFeedbackScoreFive',\n\n // Call feedback issue\n 'CallFeedbackIssueNotReported' = 'callFeedbackIssueNotReported',\n 'CallFeedbackIssueDroppedCall' = 'callFeedbackIssueDroppedCall',\n 'CallFeedbackIssueAudioLatency' = 'callFeedbackIssueAudioLatency',\n 'CallFeedbackIssueOneWayAudio' = 'callFeedbackIssueOneWayAudio',\n 'CallFeedbackIssueChoppyAudio' = 'callFeedbackIssueChoppyAudio',\n 'CallFeedbackIssueNoisyCall' = 'callFeedbackIssueNoisyCall',\n 'CallFeedbackIssueEcho' = 'callFeedbackIssueEcho',\n\n // StatsReport\n 'PeerConnectionId' = 'peerConnectionId',\n 'LocalAudioTrackStats' = 'localAudioTrackStats',\n 'RemoteAudioTrackStats' = 'remoteAudioTrackStats',\n 'IceCandidatePairStats' = 'iceCandidatePairStats',\n 'IceCandidateStats' = 'iceCandidateStats',\n 'Codec' = 'codec',\n 'PacketsLost' = 'packetsLost',\n 'Ssrc' = 'ssrc',\n 'TrackId' = 'trackId',\n 'Timestamp' = 'timestamp',\n 'BytesSent' = 'bytesSent',\n 'PacketsSent' = 'packetsSent',\n 'RoundTripTime' = 'roundTripTime',\n 'AudioLevel' = 'audioLevel',\n 'Jitter' = 'jitter',\n 'BytesReceived' = 'bytesReceived',\n 'Mos' = 'mos',\n 'TransportId' = 'transportId',\n 'LocalCandidateId' = 'localCandidateId',\n 'RemoteCandidateId' = 'remoteCandidateId',\n 'State' = 'state',\n 'LocalCandidateIp' = 'localCandidateIp',\n 'RemoteCandidateIp' = 'remoteCandidateIp',\n 'Nominated' = 'nominated',\n 'Writeable' = 'writeable',\n 'Readable' = 'readable',\n 'TotalRoundTripTime' = 'totalRoundTripTime',\n 'CurrentRoundTripTime' = 'currentRoundTripTime',\n 'AvailableOutgoingBitrate' = 'availableOutgoingBitrate',\n 'AvailableIncomingBitrate' = 'availableIncomingBitrate',\n 'RequestsReceived' = 'requestsReceived',\n 'RequestsSent' = 'requestsSent',\n 'ResponsesReceived' = 'responsesReceived',\n 'ResponsesSent' = 'responsesSent',\n 'RetransmissionsReceived' = 'retransmissionsReceived',\n 'RetransmissionsSent' = 'retransmissionsSent',\n 'ConsentRequestsReceived' = 'consentRequestsReceived',\n 'ConsentRequestsSent' = 'consentRequestsSent',\n 'ConsentResponsesReceived' = 'consentResponsesReceived',\n 'ConsentResponsesSent' = 'consentResponsesSent',\n 'ActiveCandidatePair' = 'activeCandidatePair',\n 'RelayProtocol' = 'relayProtocol',\n 'IsRemote' = 'isRemote',\n 'Ip' = 'ip',\n 'Port' = 'port',\n 'Protocol' = 'protocol',\n 'CandidateType' = 'candidateType',\n 'Priority' = 'priority',\n 'Url' = 'url',\n 'Deleted' = 'deleted',\n 'PacketsReceived' = 'packetsReceived',\n\n // IceCandidatePairState\n 'StateFailed' = 'stateFailed',\n 'StateFrozen' = 'stateFrozen',\n 'StateInProgress' = 'stateInProgress',\n 'StateSucceeded' = 'stateSucceeded',\n 'StateWaiting' = 'stateWaiting',\n 'StateUnknown' = 'stateUnknown',\n\n // iOS CallKit configuration\n 'CallKitMaximumCallsPerCallGroup' = 'callKitMaximumCallsPerCallGroup',\n 'CallKitMaximumCallGroups' = 'callKitMaximumCallGroups',\n 'CallKitIncludesCallsInRecents' = 'callKitIncludesCallsInRecents',\n 'CallKitSupportedHandleTypes' = 'callKitSupportedHandleTypes',\n 'CallKitIconTemplateImageData' = 'callKitIconTemplateImageData',\n 'CallKitRingtoneSound' = 'callKitRingtoneSound',\n\n // PreflightTest events\n 'PreflightTestEventKeyType' = 'preflightTestEventKeyType',\n 'PreflightTestEventKeyUuid' = 'preflightTestEventKeyUuid',\n\n 'PreflightTestEventTypeValueConnected' = 'preflightTestEventTypeValueConnected',\n\n 'PreflightTestEventTypeValueCompleted' = 'preflightTestEventTypeValueCompleted',\n 'PreflightTestCompletedEventKeyReport' = 'preflightTestCompletedEventKeyReport',\n\n 'PreflightTestEventTypeValueFailed' = 'preflightTestEventTypeValueFailed',\n 'PreflightTestFailedEventKeyError' = 'preflightTestFailedEventKeyError',\n\n 'PreflightTestEventTypeValueSample' = 'preflightTestEventTypeValueSample',\n 'PreflightTestSampleEventKeySample' = 'preflightTestSampleEventKeySample',\n\n 'PreflightTestEventTypeValueQualityWarning' = 'preflightTestEventTypeValueQualityWarning',\n 'PreflightTestQualityWarningEventKeyCurrentWarnings' = 'preflightTestQualityWarningEventKeyCurrentWarnings',\n 'PreflightTestQualityWarningEventKeyPreviousWarnings' = 'preflightTestQualityWarningEventKeyPreviousWarnings',\n\n // PreflightTest state\n 'PreflightTestStateConnecting' = 'connecting',\n 'PreflightTestStateConnected' = 'connected',\n 'PreflightTestStateCompleted' = 'completed',\n 'PreflightTestStateFailed' = 'failed',\n\n // PreflightStats\n 'PreflightStatsAverage' = 'average',\n 'PreflightStatsMin' = 'min',\n 'PreflightStatsMax' = 'max',\n\n // PreflightRTCStats\n 'PreflightRTCStatsJitter' = 'jitter',\n 'PreflightRTCStatsMos' = 'mos',\n 'PreflightRTCStatsRtt' = 'rtt',\n\n // PreflightTimeMeasurement\n 'PreflightTimeMeasurementStart' = 'start',\n 'PreflightTimeMeasurementEnd' = 'end',\n 'PreflightTimeMeasurementDuration' = 'duration',\n\n // PreflightNetworkTiming\n 'PreflightNetworkTimingSignaling' = 'signaling',\n 'PreflightNetworkTimingPeerConnection' = 'peerConnection',\n 'PreflightNetworkTimingIce' = 'ice',\n\n // PreflightWarning\n 'PreflightWarningName' = 'name',\n 'PreflightWarningThreshold' = 'threshold',\n 'PreflightWarningValues' = 'values',\n 'PreflightWarningTimestamp' = 'timestamp',\n\n // PreflightWarningCleared\n 'PreflightWarningClearedName' = 'name',\n 'PreflightWarningClearedTimestamp' = 'timestamp',\n\n // PreflightRTCIceCandidateStats\n 'PreflightRTCIceCandidateStatsTransportId' = 'transportId',\n 'PreflightRTCIceCandidateStatsIsRemote' = 'isRemote',\n 'PreflightRTCIceCandidateStatsIp' = 'ip',\n 'PreflightRTCIceCandidateStatsPort' = 'port',\n 'PreflightRTCIceCandidateStatsProtocol' = 'protocol',\n 'PreflightRTCIceCandidateStatsCandidateType' = 'candidateType',\n 'PreflightRTCIceCandidateStatsPriority' = 'priority',\n 'PreflightRTCIceCandidateStatsUrl' = 'url',\n 'PreflightRTCIceCandidateStatsDeleted' = 'deleted',\n 'PreflightRTCIceCandidateStatsNetworkCost' = 'networkCost',\n 'PreflightRTCIceCandidateStatsNetworkId' = 'networkId',\n 'PreflightRTCIceCandidateStatsNetworkType' = 'networkType',\n 'PreflightRTCIceCandidateStatsRelatedAddress' = 'relatedAddress',\n 'PreflightRTCIceCandidateStatsRelatedPort' = 'relatedPort',\n 'PreflightRTCIceCandidateStatsTcpType' = 'tcpType',\n\n // PreflightRTCSelectedIceCandidatePairStats\n 'PreflightRTCSelectedIceCandidatePairStatsLocalCandidate' = 'localCandidate',\n 'PreflightRTCSelectedIceCandidatePairStatsRemoteCandidate' = 'remoteCandidate',\n\n // PreflightRTCSample\n 'PreflightRTCSampleCodec' = 'codec',\n 'PreflightRTCSampleAudioInputLevel' = 'audioInputLevel',\n 'PreflightRTCSampleAudioOutputLevel' = 'audioOutputLevel',\n 'PreflightRTCSampleBytesReceived' = 'bytesReceived',\n 'PreflightRTCSampleBytesSent' = 'bytesSent',\n 'PreflightRTCSamplePacketsReceived' = 'packetsReceived',\n 'PreflightRTCSamplePacketsSent' = 'packetsSent',\n 'PreflightRTCSamplePacketsLost' = 'packetsLost',\n 'PreflightRTCSamplePacketsLostFraction' = 'packetsLostFraction',\n 'PreflightRTCSampleJitter' = 'jitter',\n 'PreflightRTCSampleMos' = 'mos',\n 'PreflightRTCSampleRtt' = 'rtt',\n 'PreflightRTCSampleTimestamp' = 'timestamp',\n\n // PreflightCallQuality\n 'PreflightCallQualityExcellent' = 'excellent',\n 'PreflightCallQualityGreat' = 'great',\n 'PreflightCallQualityGood' = 'good',\n 'PreflightCallQualityFair' = 'fair',\n 'PreflightCallQualityDegraded' = 'degraded',\n 'PreflightCallQualityNull' = 'null',\n\n // PreflightReport\n 'PreflightReportCallSid' = 'callSid',\n 'PreflightReportEdge' = 'edge',\n 'PreflightReportSelectedEdge' = 'selectedEdge',\n 'PreflightReportIceCandidateStats' = 'iceCandidateStats',\n 'PreflightReportNetworkTiming' = 'networkTiming',\n 'PreflightReportTestTiming' = 'testTiming',\n 'PreflightReportSamples' = 'samples',\n 'PreflightReportStats' = 'stats',\n 'PreflightReportIsTurnRequired' = 'isTurnRequired',\n 'PreflightReportCallQuality' = 'callQuality',\n 'PreflightReportWarnings' = 'warnings',\n 'PreflightReportWarningsCleared' = 'warningsCleared',\n 'PreflightReportSelectedIceCandidatePairStats' = 'selectedIceCandidatePairStats',\n\n // Error codes\n 'ErrorCodeInvalidStateError' = 'InvalidStateError',\n 'ErrorCodeInvalidArgumentError' = 'InvalidArgumentError',\n\n // Native promise utilities\n 'PromiseKeyStatus' = 'promiseKeyStatus',\n 'PromiseStatusValueRejectedWithCode' = 'promiseStatusValueRejectedWithCode',\n 'PromiseKeyErrorCode' = 'promiseKeyErrorCode',\n 'PromiseStatusValueRejectedWithName' = 'promiseStatusValueRejectedWithName',\n 'PromiseKeyErrorName' = 'promiseKeyErrorName',\n 'PromiseKeyErrorMessage' = 'promiseKeyErrorMessage',\n 'PromiseStatusValueResolved' = 'promiseStatusValueResolved',\n 'PromiseKeyValue' = 'promiseKeyValue',\n}\n"]}
|