diff --git a/android/src/main/java/com/twiliovoicereactnative/CommonConstants.java b/android/src/main/java/com/twiliovoicereactnative/CommonConstants.java
new file mode 100644
index 00000000..3d09163c
--- /dev/null
+++ b/android/src/main/java/com/twiliovoicereactnative/CommonConstants.java
@@ -0,0 +1,182 @@
+package com.twiliovoicereactnative;
+
+public class CommonConstants {
+ // React Native Voice SDK
+ public static final String ReactNativeVoiceSDK = "react-native";
+ public static final String ReactNativeVoiceSDKVer = "1.2.0";
+
+ // Scope names
+ public static final String ScopeVoice = "scopeVoice";
+ public static final String ScopeCall = "scopeCall";
+ public static final String ScopeCallMessage = "scopeCallMessage";
+ public static final String ScopeCallInvite = "scopeCallInvite";
+
+ // Voice events
+ // Common
+ public static final String VoiceEventError = "voiceEventError";
+ public static final String VoiceEventType = "type";
+
+ // Error
+ public static final String VoiceErrorKeyError = "error";
+ public static final String VoiceErrorKeyCode = "code";
+ public static final String VoiceErrorKeyMessage = "message";
+
+ // Registration
+ public static final String VoiceEventRegistered = "voiceEventRegistered";
+ public static final String VoiceEventUnregistered = "voiceEventUnregistered";
+
+ // Call Info
+ public static final String CallInfoUuid = "uuid";
+ public static final String CallInfoSid = "sid";
+ public static final String CallInfoFrom = "from";
+ public static final String CallInfoTo = "to";
+ public static final String CallInfoIsMuted = "isMuted";
+ public static final String CallInfoIsOnHold = "isOnHold";
+ public static final String CallInfoState = "state";
+ public static final String CallInfoInitialConnectedTimestamp = "initialConnectedTimestamp";
+
+ // Call States
+ public static final String CallStateConnected = "connected";
+ public static final String CallStateConnecting = "connecting";
+ public static final String CallStateDisconnected = "disconnected";
+ public static final String CallStateReconnecting = "reconnecting";
+ public static final String CallStateRinging = "ringing";
+
+ // Call Invite Info
+ public static final String CallInviteInfoUuid = "uuid";
+ public static final String CallInviteInfoCallSid = "callSid";
+ public static final String CallInviteInfoFrom = "from";
+ public static final String CallInviteInfoTo = "to";
+ public static final String CallInviteInfoCustomParameters = "customParameters";
+
+ // Cancelled Call Invite Info
+ public static final String CancelledCallInviteInfoUuid = "uuid";
+ public static final String CancelledCallInviteInfoCallSid = "callSid";
+ public static final String CancelledCallInviteInfoFrom = "from";
+ public static final String CancelledCallInviteInfoTo = "to";
+ public static final String CancelledCallInviteInfoCustomParameters = "customParameters";
+
+ // Incoming Call Invite event
+ public static final String VoiceEventTypeValueIncomingCallInvite = "voiceEventTypeValueIncomingCallInvite";
+
+ // Call Message
+ public static final String VoiceEventSid = "voiceEventSid";
+ public static final String CallMessage = "callMessage";
+ public static final String CallMessageContent = "content";
+ public static final String CallMessageContentType = "contentType";
+ public static final String CallMessageMessageType = "messageType";
+ public static final String JSEventKeyCallMessageInfo = "callMessage";
+
+ // Audio Devices Updated Event
+ public static final String VoiceEventAudioDevicesUpdated = "voiceEventAudioDevicesUpdated";
+
+ // Audio Device
+ public static final String AudioDeviceKeyUuid = "uuid";
+ public static final String AudioDeviceKeyName = "name";
+ public static final String AudioDeviceKeyType = "type";
+ public static final String AudioDeviceKeyAudioDevices = "audioDevices";
+ public static final String AudioDeviceKeySelectedDevice = "selectedDevice";
+ public static final String AudioDeviceKeyEarpiece = "earpiece";
+ public static final String AudioDeviceKeySpeaker = "speaker";
+ public static final String AudioDeviceKeyBluetooth = "bluetooth";
+
+ // CallInvite events
+ public static final String CallInviteEventKeyType = "type";
+ public static final String CallInviteEventTypeValueAccepted = "callInviteEventTypeValueCallInviteAccepted";
+ public static final String CallInviteEventTypeValueNotificationTapped = "callInviteEventTypeValueCallInviteNotificationTapped";
+ public static final String CallInviteEventTypeValueRejected = "callInviteEventTypeValueCallInviteRejected";
+ public static final String CallInviteEventTypeValueCancelled = "callInviteEventTypeValueCallInviteCancelled";
+ public static final String CallInviteEventKeyCallSid = "callSid";
+
+ // Call events
+ // State
+ public static final String CallEventConnected = "callEventConnected";
+ public static final String CallEventConnectFailure = "callEventConnectFailure";
+ public static final String CallEventDisconnected = "callEventDisconnected";
+ public static final String CallEventReconnecting = "callEventReconnecting";
+ public static final String CallEventReconnected = "callEventReconnected";
+ public static final String CallEventRinging = "callEventRinging";
+
+ // Quality warnings
+ public static final String CallEventQualityWarningsChanged = "callEventQualityWarningsChanged";
+ public static final String CallEventCurrentWarnings = "callEventCurrentWarnings";
+ public static final String CallEventPreviousWarnings = "callEventPreviousWarnings";
+
+ // Call message events
+ public static final String CallEventMessageFailure = "callEventMessageFailure";
+ public static final String CallEventMessageReceived = "callEventMessageReceived";
+ public static final String CallEventMessageSent = "callEventMessageSent";
+
+ // Post feedback
+ public static final String Score = "score";
+ public static final String Issue = "issue";
+
+ // StatsReport
+ public static final String PeerConnectionId = "peerConnectionId";
+ public static final String LocalAudioTrackStats = "localAudioTrackStats";
+ public static final String RemoteAudioTrackStats = "remoteAudioTrackStats";
+ public static final String IceCandidatePairStats = "iceCandidatePairStats";
+ public static final String IceCandidateStats = "iceCandidateStats";
+ public static final String Codec = "codec";
+ public static final String PacketsLost = "packetsLost";
+ public static final String Ssrc = "ssrc";
+ public static final String TrackId = "trackId";
+ public static final String Timestamp = "timestamp";
+ public static final String BytesSent = "bytesSent";
+ public static final String PacketsSent = "packetsSent";
+ public static final String RoundTripTime = "roundTripTime";
+ public static final String AudioLevel = "audioLevel";
+ public static final String Jitter = "jitter";
+ public static final String BytesReceived = "bytesReceived";
+ public static final String Mos = "mos";
+ public static final String TransportId = "transportId";
+ public static final String LocalCandidateId = "localCandidateId";
+ public static final String RemoteCandidateId = "remoteCandidateId";
+ public static final String State = "state";
+ public static final String LocalCandidateIp = "localCandidateIp";
+ public static final String RemoteCandidateIp = "remoteCandidateIp";
+ public static final String Nominated = "nominated";
+ public static final String Writeable = "writeable";
+ public static final String Readable = "readable";
+ public static final String TotalRoundTripTime = "totalRoundTripTime";
+ public static final String CurrentRoundTripTime = "currentRoundTripTime";
+ public static final String AvailableOutgoingBitrate = "availableOutgoingBitrate";
+ public static final String AvailableIncomingBitrate = "availableIncomingBitrate";
+ public static final String RequestsReceived = "requestsReceived";
+ public static final String RequestsSent = "requestsSent";
+ public static final String ResponsesReceived = "responsesReceived";
+ public static final String ResponsesSent = "responsesSent";
+ public static final String RetransmissionsReceived = "retransmissionsReceived";
+ public static final String RetransmissionsSent = "retransmissionsSent";
+ public static final String ConsentRequestsReceived = "consentRequestsReceived";
+ public static final String ConsentRequestsSent = "consentRequestsSent";
+ public static final String ConsentResponsesReceived = "consentResponsesReceived";
+ public static final String ConsentResponsesSent = "consentResponsesSent";
+ public static final String ActiveCandidatePair = "activeCandidatePair";
+ public static final String RelayProtocol = "relayProtocol";
+ public static final String IsRemote = "isRemote";
+ public static final String Ip = "ip";
+ public static final String Port = "port";
+ public static final String Protocol = "protocol";
+ public static final String CandidateType = "candidateType";
+ public static final String Priority = "priority";
+ public static final String Url = "url";
+ public static final String Deleted = "deleted";
+ public static final String PacketsReceived = "packetsReceived";
+
+ // IceCandidatePairState
+ public static final String StateFailed = "stateFailed";
+ public static final String StateFrozen = "stateFrozen";
+ public static final String StateInProgress = "stateInProgress";
+ public static final String StateSucceeded = "stateSucceeded";
+ public static final String StateWaiting = "stateWaiting";
+ public static final String StateUnknown = "stateUnknown";
+
+ // iOS CallKit configuration
+ public static final String CallKitMaximumCallsPerCallGroup = "callKitMaximumCallsPerCallGroup";
+ public static final String CallKitMaximumCallGroups = "callKitMaximumCallGroups";
+ public static final String CallKitIncludesCallsInRecents = "callKitIncludesCallsInRecents";
+ public static final String CallKitSupportedHandleTypes = "callKitSupportedHandleTypes";
+ public static final String CallKitIconTemplateImageData = "callKitIconTemplateImageData";
+ public static final String CallKitRingtoneSound = "callKitRingtoneSound";
+}
diff --git a/constants/constants.src b/constants/constants.src
index eed86c2c..94ca3a09 100644
--- a/constants/constants.src
+++ b/constants/constants.src
@@ -1,6 +1,6 @@
// React Native Voice SDK
ReactNativeVoiceSDK=react-native
-ReactNativeVoiceSDKVer=1.2.0-dev
+ReactNativeVoiceSDKVer=1.2.0
// Scope names
ScopeVoice=scopeVoice
diff --git a/docs/api/index.md b/docs/api/index.md
new file mode 100644
index 00000000..f477946b
--- /dev/null
+++ b/docs/api/index.md
@@ -0,0 +1,12 @@
+
+
+[Home](./index.md)
+
+## API Reference
+
+## Packages
+
+| Package | Description |
+| --- | --- |
+| [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) | Provides access to Twilio Programmable Voice for React Native applications running on iOS and Android devices. |
+
diff --git a/docs/api/voice-react-native-sdk.audiodevice_class.md b/docs/api/voice-react-native-sdk.audiodevice_class.md
new file mode 100644
index 00000000..5b82bee4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.audiodevice_class.md
@@ -0,0 +1,35 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [AudioDevice](./voice-react-native-sdk.audiodevice_class.md)
+
+## AudioDevice class
+
+Describes audio devices as reported by the native layer and allows the native selection of the described audio device.
+
+Signature:
+
+```typescript
+export declare class AudioDevice
+```
+
+## Remarks
+
+To fetch a list of available audio devices and the currently selected audio device, see [Voice.getAudioDevices()](./voice-react-native-sdk.voice_class.getaudiodevices_method.md).
+
+- See also the [AudioDevice namespace](./voice-react-native-sdk.audiodevice_namespace.md) for types used by this class.
+
+The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `AudioDevice` class.
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [name](./voice-react-native-sdk.audiodevice_class.name_property.md) | | string | The name of the audio device. |
+| [type](./voice-react-native-sdk.audiodevice_class.type_property.md) | | [AudioDevice.Type](./voice-react-native-sdk.audiodevice_namespace.type_enum.md) | The type of the audio device. |
+
+## Methods
+
+| Method | Modifiers | Description |
+| --- | --- | --- |
+| [select()](./voice-react-native-sdk.audiodevice_class.select_method.md) | | Calling this method will select this audio device as the active audio device. |
+
diff --git a/docs/api/voice-react-native-sdk.audiodevice_class.name_property.md b/docs/api/voice-react-native-sdk.audiodevice_class.name_property.md
new file mode 100644
index 00000000..9ae653d0
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.audiodevice_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [AudioDevice](./voice-react-native-sdk.audiodevice_class.md) > [name](./voice-react-native-sdk.audiodevice_class.name_property.md)
+
+## AudioDevice.name property
+
+The name of the audio device.
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.audiodevice_class.select_method.md b/docs/api/voice-react-native-sdk.audiodevice_class.select_method.md
new file mode 100644
index 00000000..7902c779
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.audiodevice_class.select_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [AudioDevice](./voice-react-native-sdk.audiodevice_class.md) > [select](./voice-react-native-sdk.audiodevice_class.select_method.md)
+
+## AudioDevice.select() method
+
+Calling this method will select this audio device as the active audio device.
+
+Signature:
+
+```typescript
+select(): Promise;
+```
+Returns:
+
+Promise<void>
+
+A `Promise` that - Resolves with `void` when the audio device has been successfully selected as the active audio device. - Rejects if the audio device cannot be selected.
+
diff --git a/docs/api/voice-react-native-sdk.audiodevice_class.type_property.md b/docs/api/voice-react-native-sdk.audiodevice_class.type_property.md
new file mode 100644
index 00000000..4d6f23d4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.audiodevice_class.type_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [AudioDevice](./voice-react-native-sdk.audiodevice_class.md) > [type](./voice-react-native-sdk.audiodevice_class.type_property.md)
+
+## AudioDevice.type property
+
+The type of the audio device.
+
+Signature:
+
+```typescript
+type: AudioDevice.Type;
+```
diff --git a/docs/api/voice-react-native-sdk.audiodevice_namespace.md b/docs/api/voice-react-native-sdk.audiodevice_namespace.md
new file mode 100644
index 00000000..a1bec5fd
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.audiodevice_namespace.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [AudioDevice](./voice-react-native-sdk.audiodevice_namespace.md)
+
+## AudioDevice namespace
+
+Contains interfaces and enumerations associated with audio devices.
+
+Signature:
+
+```typescript
+export declare namespace AudioDevice
+```
+
+## Remarks
+
+- See also the [AudioDevice class](./voice-react-native-sdk.audiodevice_class.md).
+
+## Enumerations
+
+| Enumeration | Description |
+| --- | --- |
+| [Type](./voice-react-native-sdk.audiodevice_namespace.type_enum.md) | Audio device type enumeration. Describes all possible audio device types as reportable by the native layer. |
+
diff --git a/docs/api/voice-react-native-sdk.audiodevice_namespace.type_enum.md b/docs/api/voice-react-native-sdk.audiodevice_namespace.type_enum.md
new file mode 100644
index 00000000..804cae03
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.audiodevice_namespace.type_enum.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [AudioDevice](./voice-react-native-sdk.audiodevice_namespace.md) > [Type](./voice-react-native-sdk.audiodevice_namespace.type_enum.md)
+
+## AudioDevice.Type enum
+
+Audio device type enumeration. Describes all possible audio device types as reportable by the native layer.
+
+Signature:
+
+```typescript
+enum Type
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| Bluetooth | "bluetooth"
| |
+| Earpiece | "earpiece"
| |
+| Speaker | "speaker"
| |
+
diff --git a/docs/api/voice-react-native-sdk.call_class.disconnect_method.md b/docs/api/voice-react-native-sdk.call_class.disconnect_method.md
new file mode 100644
index 00000000..3fe1b410
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.disconnect_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [disconnect](./voice-react-native-sdk.call_class.disconnect_method.md)
+
+## Call.disconnect() method
+
+Disconnect this side of the call.
+
+Signature:
+
+```typescript
+disconnect(): Promise;
+```
+Returns:
+
+Promise<void>
+
+A `Promise` that - Resolves when the call has disconnected. - Rejects if the native layer cannot disconnect the call.
+
diff --git a/docs/api/voice-react-native-sdk.call_class.getcustomparameters_method.md b/docs/api/voice-react-native-sdk.call_class.getcustomparameters_method.md
new file mode 100644
index 00000000..d52b5b30
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.getcustomparameters_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [getCustomParameters](./voice-react-native-sdk.call_class.getcustomparameters_method.md)
+
+## Call.getCustomParameters() method
+
+Return a `Record` of custom parameters given to this call.
+
+Signature:
+
+```typescript
+getCustomParameters(): CustomParameters;
+```
+Returns:
+
+[CustomParameters](./voice-react-native-sdk.customparameters_typealias.md)
+
+- A `Record` of custom parameters.
+
diff --git a/docs/api/voice-react-native-sdk.call_class.getfrom_method.md b/docs/api/voice-react-native-sdk.call_class.getfrom_method.md
new file mode 100644
index 00000000..d6bffbf7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.getfrom_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [getFrom](./voice-react-native-sdk.call_class.getfrom_method.md)
+
+## Call.getFrom() method
+
+Get the value of the `from` parameter given to this call.
+
+Signature:
+
+```typescript
+getFrom(): string | undefined;
+```
+Returns:
+
+string \| undefined
+
+- A `String` representing the `from` parameter. - `undefined` if the call information has not yet been received from the native layer.
+
diff --git a/docs/api/voice-react-native-sdk.call_class.getinitialconnectedtimestamp_method.md b/docs/api/voice-react-native-sdk.call_class.getinitialconnectedtimestamp_method.md
new file mode 100644
index 00000000..3be5a46c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.getinitialconnectedtimestamp_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [getInitialConnectedTimestamp](./voice-react-native-sdk.call_class.getinitialconnectedtimestamp_method.md)
+
+## Call.getInitialConnectedTimestamp() method
+
+Get the timestamp (milliseconds since epoch) of the call connected event.
+
+Signature:
+
+```typescript
+getInitialConnectedTimestamp(): Date | undefined;
+```
+Returns:
+
+Date \| undefined
+
+- A `number` representing the timestamp. - `undefined` if the call has not yet connected.
+
diff --git a/docs/api/voice-react-native-sdk.call_class.getsid_method.md b/docs/api/voice-react-native-sdk.call_class.getsid_method.md
new file mode 100644
index 00000000..91083d18
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.getsid_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [getSid](./voice-react-native-sdk.call_class.getsid_method.md)
+
+## Call.getSid() method
+
+Get the call `SID`.
+
+Signature:
+
+```typescript
+getSid(): string | undefined;
+```
+Returns:
+
+string \| undefined
+
+- A `String` representing the `SID` of the call. - `undefined` if the call information has not yet been received from the native layer.
+
diff --git a/docs/api/voice-react-native-sdk.call_class.getstate_method.md b/docs/api/voice-react-native-sdk.call_class.getstate_method.md
new file mode 100644
index 00000000..0d855301
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.getstate_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [getState](./voice-react-native-sdk.call_class.getstate_method.md)
+
+## Call.getState() method
+
+Get the state of the call object, such as [Call.State.Connected](./voice-react-native-sdk.call_namespace.state_enum.md) or [Call.State.Disconnected](./voice-react-native-sdk.call_namespace.state_enum.md).
+
+Signature:
+
+```typescript
+getState(): Call.State;
+```
+Returns:
+
+[Call.State](./voice-react-native-sdk.call_namespace.state_enum.md)
+
+- A [Call.State](./voice-react-native-sdk.call_namespace.state_enum.md).
+
diff --git a/docs/api/voice-react-native-sdk.call_class.getstats_method.md b/docs/api/voice-react-native-sdk.call_class.getstats_method.md
new file mode 100644
index 00000000..bfd4f899
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.getstats_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [getStats](./voice-react-native-sdk.call_class.getstats_method.md)
+
+## Call.getStats() method
+
+Gets the `PeerConnection` `WebRTC` stats for the ongoing call.
+
+Signature:
+
+```typescript
+getStats(): Promise;
+```
+Returns:
+
+Promise<[RTCStats.StatsReport](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md)>
+
+A `Promise` that - Resolves with a [RTCStats.StatsReport](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md) object representing the `WebRTC` `PeerConnection` stats of a call. - Rejects when a [RTCStats.StatsReport](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md) cannot be generated for a call.
+
diff --git a/docs/api/voice-react-native-sdk.call_class.getto_method.md b/docs/api/voice-react-native-sdk.call_class.getto_method.md
new file mode 100644
index 00000000..18020feb
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.getto_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [getTo](./voice-react-native-sdk.call_class.getto_method.md)
+
+## Call.getTo() method
+
+Get the value of the `to` parameter given to this call.
+
+Signature:
+
+```typescript
+getTo(): string | undefined;
+```
+Returns:
+
+string \| undefined
+
+- A `String` representing the `to` parameter. - `undefined` if the call information has not yet been received from the native layer.
+
diff --git a/docs/api/voice-react-native-sdk.call_class.hold_method.md b/docs/api/voice-react-native-sdk.call_class.hold_method.md
new file mode 100644
index 00000000..c1dc8c77
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.hold_method.md
@@ -0,0 +1,42 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [hold](./voice-react-native-sdk.call_class.hold_method.md)
+
+## Call.hold() method
+
+Put this end of the call on hold or not on hold.
+
+Signature:
+
+```typescript
+hold(hold: boolean): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| hold | boolean | A boolean
representing whether or not to put this end of the call on hold. |
+
+Returns:
+
+Promise<boolean>
+
+A `Promise` that - Resolves with the hold status when the call is put on hold or not on hold. - Rejects when the call is not able to be put on hold or not on hold.
+
+## Example 1
+
+To put a call on hold
+
+```typescript
+call.hold(true);
+```
+
+## Example 2
+
+To take a call off hold
+
+```typescript
+call.hold(false);
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_class.ismuted_method.md b/docs/api/voice-react-native-sdk.call_class.ismuted_method.md
new file mode 100644
index 00000000..fb051e00
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.ismuted_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [isMuted](./voice-react-native-sdk.call_class.ismuted_method.md)
+
+## Call.isMuted() method
+
+Get the mute status of this side of the call.
+
+Signature:
+
+```typescript
+isMuted(): boolean | undefined;
+```
+Returns:
+
+boolean \| undefined
+
+- A boolean representing the muted status of the call. - `undefined` if the call state has not yet been received from the native layer.
+
diff --git a/docs/api/voice-react-native-sdk.call_class.isonhold_method.md b/docs/api/voice-react-native-sdk.call_class.isonhold_method.md
new file mode 100644
index 00000000..abd84dac
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.isonhold_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [isOnHold](./voice-react-native-sdk.call_class.isonhold_method.md)
+
+## Call.isOnHold() method
+
+Get the hold status of this side of the call.
+
+Signature:
+
+```typescript
+isOnHold(): boolean | undefined;
+```
+Returns:
+
+boolean \| undefined
+
+- A boolean representing the hold status of the call. - `undefined` if the call state has not yet been received from the native layer.
+
diff --git a/docs/api/voice-react-native-sdk.call_class.md b/docs/api/voice-react-native-sdk.call_class.md
new file mode 100644
index 00000000..7a663279
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.md
@@ -0,0 +1,45 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md)
+
+## Call class
+
+Provides access to information about a call, including the call parameters, and exposes functionality for a call such as disconnecting, muting, and holding.
+
+Signature:
+
+```typescript
+export declare class Call extends EventEmitter
+```
+Extends: EventEmitter
+
+## Remarks
+
+Note that the call information is fetched as soon as possible from the native layer, but there is no guarantee that all information is immediately available. Methods such as `Call.getFrom()` or `Call.getTo()` may return `undefined`.
+
+As call events are received from the native layer, call information will propagate from the native layer to the JS layer and become available. Therefore, it is good practice to read information from the call after an event occurs, or as events occur.
+
+- See the [Call.Event](./voice-react-native-sdk.call_namespace.event_enum.md) enum for events emitted by `Call` objects. - See the [Call interface](./voice-react-native-sdk.call_interface.md) for overloaded event listening methods. - See the [Call namespace](./voice-react-native-sdk.call_namespace.md) for types and enumerations used by this class.
+
+The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `Call` class.
+
+## Methods
+
+| Method | Modifiers | Description |
+| --- | --- | --- |
+| [disconnect()](./voice-react-native-sdk.call_class.disconnect_method.md) | | Disconnect this side of the call. |
+| [getCustomParameters()](./voice-react-native-sdk.call_class.getcustomparameters_method.md) | | Return a Record
of custom parameters given to this call. |
+| [getFrom()](./voice-react-native-sdk.call_class.getfrom_method.md) | | Get the value of the from
parameter given to this call. |
+| [getInitialConnectedTimestamp()](./voice-react-native-sdk.call_class.getinitialconnectedtimestamp_method.md) | | Get the timestamp (milliseconds since epoch) of the call connected event. |
+| [getSid()](./voice-react-native-sdk.call_class.getsid_method.md) | | Get the call SID
. |
+| [getState()](./voice-react-native-sdk.call_class.getstate_method.md) | | Get the state of the call object, such as [Call.State.Connected](./voice-react-native-sdk.call_namespace.state_enum.md) or [Call.State.Disconnected](./voice-react-native-sdk.call_namespace.state_enum.md). |
+| [getStats()](./voice-react-native-sdk.call_class.getstats_method.md) | | Gets the PeerConnection
WebRTC
stats for the ongoing call. |
+| [getTo()](./voice-react-native-sdk.call_class.getto_method.md) | | Get the value of the to
parameter given to this call. |
+| [hold(hold)](./voice-react-native-sdk.call_class.hold_method.md) | | Put this end of the call on hold or not on hold. |
+| [isMuted()](./voice-react-native-sdk.call_class.ismuted_method.md) | | Get the mute status of this side of the call. |
+| [isOnHold()](./voice-react-native-sdk.call_class.isonhold_method.md) | | Get the hold status of this side of the call. |
+| [mute(mute)](./voice-react-native-sdk.call_class.mute_method.md) | | Mute or unmute this end of the call. |
+| [postFeedback(score, issue)](./voice-react-native-sdk.call_class.postfeedback_method.md) | | Post feedback about a call. |
+| [sendDigits(digits)](./voice-react-native-sdk.call_class.senddigits_method.md) | | Send DTMF digits. |
+| [sendMessage(message)](./voice-react-native-sdk.call_class.sendmessage_method.md) | | Send a CallMessage. |
+
diff --git a/docs/api/voice-react-native-sdk.call_class.mute_method.md b/docs/api/voice-react-native-sdk.call_class.mute_method.md
new file mode 100644
index 00000000..b54fe43c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.mute_method.md
@@ -0,0 +1,42 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [mute](./voice-react-native-sdk.call_class.mute_method.md)
+
+## Call.mute() method
+
+Mute or unmute this end of the call.
+
+Signature:
+
+```typescript
+mute(mute: boolean): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| mute | boolean | A boolean
representing whether or not to mute this end of the call. |
+
+Returns:
+
+Promise<boolean>
+
+A `Promise` that - Resolves with the muted status of the call when the call is muted or unmuted. - Rejects when the call is not able to be muted or unmuted.
+
+## Example 1
+
+To mute a call
+
+```typescript
+call.mute(true);
+```
+
+## Example 2
+
+To unmute a call
+
+```typescript
+call.mute(false);
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_class.postfeedback_method.md b/docs/api/voice-react-native-sdk.call_class.postfeedback_method.md
new file mode 100644
index 00000000..8508d889
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.postfeedback_method.md
@@ -0,0 +1,35 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [postFeedback](./voice-react-native-sdk.call_class.postfeedback_method.md)
+
+## Call.postFeedback() method
+
+Post feedback about a call.
+
+Signature:
+
+```typescript
+postFeedback(score: Call.Score, issue: Call.Issue): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| score | [Call.Score](./voice-react-native-sdk.call_namespace.score_enum.md) | A score representing the serverity of the issue being reported. |
+| issue | [Call.Issue](./voice-react-native-sdk.call_namespace.issue_enum.md) | The issue being reported. |
+
+Returns:
+
+Promise<void>
+
+A `Promise` that - Resolves when the feedback has been posted. - Rejects when the feedback is unable to be sent.
+
+## Example
+
+To report that a call had very significant audio latency:
+
+```typescript
+call.postFeedback(Call.Score.Five, Call.Issue.AudioLatency);
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_class.senddigits_method.md b/docs/api/voice-react-native-sdk.call_class.senddigits_method.md
new file mode 100644
index 00000000..b061dbf7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.senddigits_method.md
@@ -0,0 +1,42 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [sendDigits](./voice-react-native-sdk.call_class.senddigits_method.md)
+
+## Call.sendDigits() method
+
+Send DTMF digits.
+
+Signature:
+
+```typescript
+sendDigits(digits: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| digits | string | A sequence of DTMF digits in a string. |
+
+Returns:
+
+Promise<void>
+
+A `Promise` that - Resolves when the DTMF digits have been sent. - Rejects when DTMF tones are not able to be sent.
+
+## Example 1
+
+To send the `0` dialtone:
+
+```typescript
+call.sendDigits('0');
+```
+
+## Example 2
+
+To send the `0` and then `1` dialtone:
+
+```typescript
+call.sendDigits('01');
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_class.sendmessage_method.md b/docs/api/voice-react-native-sdk.call_class.sendmessage_method.md
new file mode 100644
index 00000000..df9c5fd1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_class.sendmessage_method.md
@@ -0,0 +1,46 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_class.md) > [sendMessage](./voice-react-native-sdk.call_class.sendmessage_method.md)
+
+## Call.sendMessage() method
+
+Send a CallMessage.
+
+Signature:
+
+```typescript
+sendMessage(message: CallMessage): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | [CallMessage](./voice-react-native-sdk.callmessage_interface.md) | The call message to send. |
+
+Returns:
+
+Promise<[OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_class.md)>
+
+A `Promise` that - Resolves with the OutgoingCallMessage object. - Rejects when the message is unable to be sent.
+
+## Example
+
+To send a user-defined-message
+
+```typescript
+const outgoingCallMessage: OutgoingCallMessage = await call.sendMessage({
+ content: { key1: 'This is a messsage from the parent call' },
+ contentType: 'application/json',
+ messageType: 'user-defined-message'
+});
+
+outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
+ // outgoingCallMessage failed, handle error
+});
+
+outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
+ // outgoingCallMessage sent
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.addlistener_1_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.addlistener_1_methodsignature.md
new file mode 100644
index 00000000..9963341a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.addlistener_1_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [addListener](./voice-react-native-sdk.call_interface.addlistener_1_methodsignature.md)
+
+## Call.addListener() method
+
+Connect failure event. Raised when the call has failed to connect.
+
+Signature:
+
+```typescript
+addListener(connectFailureEvent: Call.Event.ConnectFailure, listener: Call.Listener.ConnectFailure): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| connectFailureEvent | [Call.Event.ConnectFailure](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.ConnectFailure](./voice-react-native-sdk.call_namespace.listener_namespace.connectfailure_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+call.addListener(Call.Event.ConnectFailure, (error) => {
+ // call was unable to connect, handle error
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.addlistener_2_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.addlistener_2_methodsignature.md
new file mode 100644
index 00000000..63103f31
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.addlistener_2_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [addListener](./voice-react-native-sdk.call_interface.addlistener_2_methodsignature.md)
+
+## Call.addListener() method
+
+Reconnecting event. Raised when the call is reconnecting.
+
+Signature:
+
+```typescript
+addListener(reconnectingEvent: Call.Event.Reconnecting, listener: Call.Listener.Reconnecting): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| reconnectingEvent | [Call.Event.Reconnecting](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Reconnecting](./voice-react-native-sdk.call_namespace.listener_namespace.reconnecting_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+call.addListener(Call.Event.Reconnecting, (error) => {
+ // call is attempting to reconnect, handle error
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.addlistener_3_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.addlistener_3_methodsignature.md
new file mode 100644
index 00000000..347d87fd
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.addlistener_3_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [addListener](./voice-react-native-sdk.call_interface.addlistener_3_methodsignature.md)
+
+## Call.addListener() method
+
+Reconnected event. Raised when the call has recovered and reconnected.
+
+Signature:
+
+```typescript
+addListener(reconnectedEvent: Call.Event.Reconnected, listener: Call.Listener.Reconnected): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| reconnectedEvent | [Call.Event.Reconnected](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Reconnected](./voice-react-native-sdk.call_namespace.listener_namespace.reconnected_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+call.addListener(Call.Event.Reconnected, () => {
+ // call has reconnected
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.addlistener_4_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.addlistener_4_methodsignature.md
new file mode 100644
index 00000000..51f9b34d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.addlistener_4_methodsignature.md
@@ -0,0 +1,42 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [addListener](./voice-react-native-sdk.call_interface.addlistener_4_methodsignature.md)
+
+## Call.addListener() method
+
+Disconnected event. Raised when the call has disconnected.
+
+Signature:
+
+```typescript
+addListener(disconnectedEvent: Call.Event.Disconnected, listener: Call.Listener.Disconnected): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| disconnectedEvent | [Call.Event.Disconnected](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Disconnected](./voice-react-native-sdk.call_namespace.listener_namespace.disconnected_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Remarks
+
+This event can occur in "naturally" disconnected calls and calls disconnected from issues such as network problems. If the SDK has detected an issue that has caused the call to disconnect, then the error parameter will be defined, otherwise it will be undefined.
+
+## Example
+
+
+```typescript
+call.addListener(Call.Event.Disconnected, (error) => {
+ // call has disconnected
+ // if a natural disconnect occurred, then error is `undefined`
+ // if an unnatural disconnect occurred, then error is defined
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.addlistener_5_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.addlistener_5_methodsignature.md
new file mode 100644
index 00000000..224af75d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.addlistener_5_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [addListener](./voice-react-native-sdk.call_interface.addlistener_5_methodsignature.md)
+
+## Call.addListener() method
+
+Ringing event. Raised when the call has begun to ring.
+
+Signature:
+
+```typescript
+addListener(ringingEvent: Call.Event.Ringing, listener: Call.Listener.Ringing): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| ringingEvent | [Call.Event.Ringing](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Ringing](./voice-react-native-sdk.call_namespace.listener_namespace.ringing_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+call.addListener(Call.Event.Ringing, () => {
+ // call is ringing
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.addlistener_6_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.addlistener_6_methodsignature.md
new file mode 100644
index 00000000..5ce6082e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.addlistener_6_methodsignature.md
@@ -0,0 +1,42 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [addListener](./voice-react-native-sdk.call_interface.addlistener_6_methodsignature.md)
+
+## Call.addListener() method
+
+Quality warnings changed event. Raised when a call quality warning is set or unset. All "ongoing" call quality warnings are passed to the invoked listener function.
+
+Signature:
+
+```typescript
+addListener(qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged, listener: Call.Listener.QualityWarningsChanged): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| qualityWarningsChangedEvent | [Call.Event.QualityWarningsChanged](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.QualityWarningsChanged](./voice-react-native-sdk.call_namespace.listener_namespace.qualitywarningschanged_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+call.addListener(
+ Call.Event.QualityWarningsChanged,
+ (
+ currentWarnings: Call.QualityWarning[],
+ previousWarnings: Call.QualityWarning[]
+ ) => {
+ // call quality warnings have changed
+ }
+);
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.addlistener_7_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.addlistener_7_methodsignature.md
new file mode 100644
index 00000000..d906974e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.addlistener_7_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [addListener](./voice-react-native-sdk.call_interface.addlistener_7_methodsignature.md)
+
+## Call.addListener() method
+
+MessageReceived event. Raised when a [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) is received.
+
+Signature:
+
+```typescript
+addListener(messageReceivedEvent: Call.Event.MessageReceived, listener: Call.Listener.MessageReceived): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| messageReceivedEvent | [Call.Event.MessageReceived](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.MessageReceived](./voice-react-native-sdk.call_namespace.listener_namespace.messagereceived_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The callMessage object
+
+## Example
+
+
+```typescript
+call.addListener(Call.Event.MessageReceived, (message) => {
+ // callMessage received
+})
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.addlistener_8_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.addlistener_8_methodsignature.md
new file mode 100644
index 00000000..a0511f7d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.addlistener_8_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [addListener](./voice-react-native-sdk.call_interface.addlistener_8_methodsignature.md)
+
+## Call.addListener() method
+
+Generic event listener typings.
+
+Signature:
+
+```typescript
+addListener(callEvent: Call.Event, listener: Call.Listener.Generic): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| callEvent | [Call.Event](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Generic](./voice-react-native-sdk.call_namespace.listener_namespace.generic_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.addlistener_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.addlistener_methodsignature.md
new file mode 100644
index 00000000..0d2e697c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.addlistener_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [addListener](./voice-react-native-sdk.call_interface.addlistener_methodsignature.md)
+
+## Call.addListener() method
+
+Connected event. Raised when the call has successfully connected.
+
+Signature:
+
+```typescript
+addListener(connectedEvent: Call.Event.Connected, listener: Call.Listener.Connected): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| connectedEvent | [Call.Event.Connected](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Connected](./voice-react-native-sdk.call_namespace.listener_namespace.connected_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+call.addListener(Call.Event.Connected, () => {
+ // call has been connected
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.md b/docs/api/voice-react-native-sdk.call_interface.md
new file mode 100644
index 00000000..3d1aad22
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.md
@@ -0,0 +1,43 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md)
+
+## Call interface
+
+Defines strict typings for all events emitted by [Call objects](./voice-react-native-sdk.call_class.md).
+
+Signature:
+
+```typescript
+export declare interface Call
+```
+
+## Remarks
+
+Note that the `on` function is an alias for the `addListener` function. They share identical functionality and either may be used interchangeably.
+
+- See also the [Call class](./voice-react-native-sdk.call_class.md). - See also the [Call namespace](./voice-react-native-sdk.call_namespace.md).
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [addListener(connectedEvent, listener)](./voice-react-native-sdk.call_interface.addlistener_methodsignature.md) | Connected event. Raised when the call has successfully connected. |
+| [addListener(connectFailureEvent, listener)](./voice-react-native-sdk.call_interface.addlistener_1_methodsignature.md) | Connect failure event. Raised when the call has failed to connect. |
+| [addListener(reconnectingEvent, listener)](./voice-react-native-sdk.call_interface.addlistener_2_methodsignature.md) | Reconnecting event. Raised when the call is reconnecting. |
+| [addListener(reconnectedEvent, listener)](./voice-react-native-sdk.call_interface.addlistener_3_methodsignature.md) | Reconnected event. Raised when the call has recovered and reconnected. |
+| [addListener(disconnectedEvent, listener)](./voice-react-native-sdk.call_interface.addlistener_4_methodsignature.md) | Disconnected event. Raised when the call has disconnected. |
+| [addListener(ringingEvent, listener)](./voice-react-native-sdk.call_interface.addlistener_5_methodsignature.md) | Ringing event. Raised when the call has begun to ring. |
+| [addListener(qualityWarningsChangedEvent, listener)](./voice-react-native-sdk.call_interface.addlistener_6_methodsignature.md) | Quality warnings changed event. Raised when a call quality warning is set or unset. All "ongoing" call quality warnings are passed to the invoked listener function. |
+| [addListener(messageReceivedEvent, listener)](./voice-react-native-sdk.call_interface.addlistener_7_methodsignature.md) | MessageReceived event. Raised when a [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) is received. |
+| [addListener(callEvent, listener)](./voice-react-native-sdk.call_interface.addlistener_8_methodsignature.md) | Generic event listener typings. |
+| [on(connectedEvent, listener)](./voice-react-native-sdk.call_interface.on_methodsignature.md) | Connected event. Raised when the call has successfully connected. |
+| [on(connectFailureEvent, listener)](./voice-react-native-sdk.call_interface.on_1_methodsignature.md) | Connect failure event. Raised when the call has failed to connect. |
+| [on(reconnectingEvent, listener)](./voice-react-native-sdk.call_interface.on_2_methodsignature.md) | Reconnecting event. Raised when the call is reconnecting. |
+| [on(reconnectedEvent, listener)](./voice-react-native-sdk.call_interface.on_3_methodsignature.md) | Reconnected event. Raised when the call has recovered and reconnected. |
+| [on(disconnectedEvent, listener)](./voice-react-native-sdk.call_interface.on_4_methodsignature.md) | Disconnected event. Raised when the call has disconnected. |
+| [on(ringingEvent, listener)](./voice-react-native-sdk.call_interface.on_5_methodsignature.md) | Ringing event. Raised when the call has begun to ring. |
+| [on(qualityWarningsChangedEvent, listener)](./voice-react-native-sdk.call_interface.on_6_methodsignature.md) | Quality warnings changed event. Raised when a call quality warning is set or unset. All "ongoing" call quality warnings are passed to the invoked listener function. |
+| [on(callMessageEvent, listener)](./voice-react-native-sdk.call_interface.on_7_methodsignature.md) | MessageReceived event. Raised when a [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) is received. |
+| [on(callEvent, listener)](./voice-react-native-sdk.call_interface.on_8_methodsignature.md) | Generic event listener typings. |
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.on_1_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.on_1_methodsignature.md
new file mode 100644
index 00000000..60d1b759
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.on_1_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [on](./voice-react-native-sdk.call_interface.on_1_methodsignature.md)
+
+## Call.on() method
+
+Connect failure event. Raised when the call has failed to connect.
+
+Signature:
+
+```typescript
+on(connectFailureEvent: Call.Event.ConnectFailure, listener: Call.Listener.ConnectFailure): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| connectFailureEvent | [Call.Event.ConnectFailure](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.ConnectFailure](./voice-react-native-sdk.call_namespace.listener_namespace.connectfailure_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.on_2_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.on_2_methodsignature.md
new file mode 100644
index 00000000..2c80449c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.on_2_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [on](./voice-react-native-sdk.call_interface.on_2_methodsignature.md)
+
+## Call.on() method
+
+Reconnecting event. Raised when the call is reconnecting.
+
+Signature:
+
+```typescript
+on(reconnectingEvent: Call.Event.Reconnecting, listener: Call.Listener.Reconnecting): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| reconnectingEvent | [Call.Event.Reconnecting](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Reconnecting](./voice-react-native-sdk.call_namespace.listener_namespace.reconnecting_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.on_3_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.on_3_methodsignature.md
new file mode 100644
index 00000000..069893af
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.on_3_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [on](./voice-react-native-sdk.call_interface.on_3_methodsignature.md)
+
+## Call.on() method
+
+Reconnected event. Raised when the call has recovered and reconnected.
+
+Signature:
+
+```typescript
+on(reconnectedEvent: Call.Event.Reconnected, listener: Call.Listener.Reconnected): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| reconnectedEvent | [Call.Event.Reconnected](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Reconnected](./voice-react-native-sdk.call_namespace.listener_namespace.reconnected_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.on_4_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.on_4_methodsignature.md
new file mode 100644
index 00000000..9cdae756
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.on_4_methodsignature.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [on](./voice-react-native-sdk.call_interface.on_4_methodsignature.md)
+
+## Call.on() method
+
+Disconnected event. Raised when the call has disconnected.
+
+Signature:
+
+```typescript
+on(disconnectedEvent: Call.Event.Disconnected, listener: Call.Listener.Disconnected): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| disconnectedEvent | [Call.Event.Disconnected](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Disconnected](./voice-react-native-sdk.call_namespace.listener_namespace.disconnected_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Remarks
+
+This event can occur in "naturally" disconnected calls and calls disconnected from issues such as network problems. If the SDK has detected an issue that has caused the call to disconnect, then the error parameter will be defined, otherwise it will be undefined.
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.on_5_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.on_5_methodsignature.md
new file mode 100644
index 00000000..9a6979f8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.on_5_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [on](./voice-react-native-sdk.call_interface.on_5_methodsignature.md)
+
+## Call.on() method
+
+Ringing event. Raised when the call has begun to ring.
+
+Signature:
+
+```typescript
+on(ringingEvent: Call.Event.Ringing, listener: Call.Listener.Ringing): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| ringingEvent | [Call.Event.Ringing](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Ringing](./voice-react-native-sdk.call_namespace.listener_namespace.ringing_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.on_6_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.on_6_methodsignature.md
new file mode 100644
index 00000000..2188807f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.on_6_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [on](./voice-react-native-sdk.call_interface.on_6_methodsignature.md)
+
+## Call.on() method
+
+Quality warnings changed event. Raised when a call quality warning is set or unset. All "ongoing" call quality warnings are passed to the invoked listener function.
+
+Signature:
+
+```typescript
+on(qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged, listener: Call.Listener.QualityWarningsChanged): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| qualityWarningsChangedEvent | [Call.Event.QualityWarningsChanged](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.QualityWarningsChanged](./voice-react-native-sdk.call_namespace.listener_namespace.qualitywarningschanged_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.on_7_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.on_7_methodsignature.md
new file mode 100644
index 00000000..28a567be
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.on_7_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [on](./voice-react-native-sdk.call_interface.on_7_methodsignature.md)
+
+## Call.on() method
+
+MessageReceived event. Raised when a [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) is received.
+
+Signature:
+
+```typescript
+on(callMessageEvent: Call.Event.MessageReceived, listener: Call.Listener.MessageReceived): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| callMessageEvent | [Call.Event.MessageReceived](./voice-react-native-sdk.call_namespace.event_enum.md) | |
+| listener | [Call.Listener.MessageReceived](./voice-react-native-sdk.call_namespace.listener_namespace.messagereceived_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The callMessage object
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.on_8_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.on_8_methodsignature.md
new file mode 100644
index 00000000..5f171445
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.on_8_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [on](./voice-react-native-sdk.call_interface.on_8_methodsignature.md)
+
+## Call.on() method
+
+Generic event listener typings.
+
+Signature:
+
+```typescript
+on(callEvent: Call.Event, listener: Call.Listener.Generic): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| callEvent | [Call.Event](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Generic](./voice-react-native-sdk.call_namespace.listener_namespace.generic_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.call_interface.on_methodsignature.md b/docs/api/voice-react-native-sdk.call_interface.on_methodsignature.md
new file mode 100644
index 00000000..759e24cf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_interface.on_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_interface.md) > [on](./voice-react-native-sdk.call_interface.on_methodsignature.md)
+
+## Call.on() method
+
+Connected event. Raised when the call has successfully connected.
+
+Signature:
+
+```typescript
+on(connectedEvent: Call.Event.Connected, listener: Call.Listener.Connected): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| connectedEvent | [Call.Event.Connected](./voice-react-native-sdk.call_namespace.event_enum.md) | The raised event string. |
+| listener | [Call.Listener.Connected](./voice-react-native-sdk.call_namespace.listener_namespace.connected_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.event_enum.md b/docs/api/voice-react-native-sdk.call_namespace.event_enum.md
new file mode 100644
index 00000000..582f0889
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.event_enum.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Event](./voice-react-native-sdk.call_namespace.event_enum.md)
+
+## Call.Event enum
+
+Enumeration of all event strings emitted by [Call](./voice-react-native-sdk.call_class.md) objects.
+
+Signature:
+
+```typescript
+enum Event
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| Connected | "connected"
| Event string for the Connected
event. See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_methodsignature.md). |
+| ConnectFailure | "connectFailure"
| Event string for the ConnectedFailure
event. See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_1_methodsignature.md). |
+| Disconnected | "disconnected"
| Event string for the Disconnected
event. See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_4_methodsignature.md). |
+| MessageReceived | "messageReceived"
| Event string for the MessageReceived
event. See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_7_methodsignature.md) |
+| QualityWarningsChanged | "qualityWarningsChanged"
| Event string for the QualityWarningsChanged
event. See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_6_methodsignature.md). |
+| Reconnected | "reconnected"
| Event string for the Reconnected
event. See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_3_methodsignature.md). |
+| Reconnecting | "reconnecting"
| Event string for the Reconnecting
event. See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_2_methodsignature.md). |
+| Ringing | "ringing"
| Event string for the Ringing
event. See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_5_methodsignature.md). |
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.issue_enum.md b/docs/api/voice-react-native-sdk.call_namespace.issue_enum.md
new file mode 100644
index 00000000..7b4960b1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.issue_enum.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Issue](./voice-react-native-sdk.call_namespace.issue_enum.md)
+
+## Call.Issue enum
+
+An enumeration of call issues that can be reported.
+
+Signature:
+
+```typescript
+enum Issue
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| AudioLatency | "audio-latency"
| The call encountered significant audio latency. |
+| ChoppyAudio | "choppy-audio"
| Call audio was choppy. |
+| DroppedCall | "dropped-call"
| The call was dropped unexpectedly. |
+| Echo | "echo"
| Call audio had significant echo. |
+| NoisyCall | "noisy-call"
| Call audio had significant noise. |
+| NotReported | "not-reported"
| No issue is reported. |
+| OneWayAudio | "one-way-audio"
| One party of the call could not hear the other callee. |
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.connected_typealias.md b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.connected_typealias.md
new file mode 100644
index 00000000..e870c796
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.connected_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md) > [Connected](./voice-react-native-sdk.call_namespace.listener_namespace.connected_typealias.md)
+
+## Call.Listener.Connected type
+
+Connected event listener. This should be the function signature of any event listener bound to the [Call.Event.Connected](./voice-react-native-sdk.call_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Connected = () => void;
+```
+
+## Remarks
+
+See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.connectfailure_typealias.md b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.connectfailure_typealias.md
new file mode 100644
index 00000000..e32ed341
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.connectfailure_typealias.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md) > [ConnectFailure](./voice-react-native-sdk.call_namespace.listener_namespace.connectfailure_typealias.md)
+
+## Call.Listener.ConnectFailure type
+
+Connect failure event listener. This should be the function signature of any event listener bound to the [Call.Event.ConnectFailure](./voice-react-native-sdk.call_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type ConnectFailure = (error: TwilioError) => void;
+```
+
+## Remarks
+
+See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_1_methodsignature.md).
+
+See [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) for all error classes.
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.disconnected_typealias.md b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.disconnected_typealias.md
new file mode 100644
index 00000000..2b58175a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.disconnected_typealias.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md) > [Disconnected](./voice-react-native-sdk.call_namespace.listener_namespace.disconnected_typealias.md)
+
+## Call.Listener.Disconnected type
+
+Disconnected event listener. This should be the function signature of any event listener bound to the [Call.Event.Disconnected](./voice-react-native-sdk.call_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Disconnected = (error?: TwilioError) => void;
+```
+
+## Remarks
+
+See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_4_methodsignature.md).
+
+See [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) for all error classes.
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.generic_typealias.md b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.generic_typealias.md
new file mode 100644
index 00000000..8e427653
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.generic_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md) > [Generic](./voice-react-native-sdk.call_namespace.listener_namespace.generic_typealias.md)
+
+## Call.Listener.Generic type
+
+Generic event listener. This should be the function signature of any event listener bound to any call event.
+
+Signature:
+
+```typescript
+type Generic = (...args: any[]) => void;
+```
+
+## Remarks
+
+See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_8_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.md b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.md
new file mode 100644
index 00000000..7ca6a888
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md)
+
+## Call.Listener namespace
+
+Listener types for all events emitted by a [Call object.](./voice-react-native-sdk.call_class.md)
+
+Signature:
+
+```typescript
+namespace Listener
+```
+
+## Type Aliases
+
+| Type Alias | Description |
+| --- | --- |
+| [Connected](./voice-react-native-sdk.call_namespace.listener_namespace.connected_typealias.md) | Connected event listener. This should be the function signature of any event listener bound to the [Call.Event.Connected](./voice-react-native-sdk.call_namespace.event_enum.md) event. |
+| [ConnectFailure](./voice-react-native-sdk.call_namespace.listener_namespace.connectfailure_typealias.md) | Connect failure event listener. This should be the function signature of any event listener bound to the [Call.Event.ConnectFailure](./voice-react-native-sdk.call_namespace.event_enum.md) event. |
+| [Disconnected](./voice-react-native-sdk.call_namespace.listener_namespace.disconnected_typealias.md) | Disconnected event listener. This should be the function signature of any event listener bound to the [Call.Event.Disconnected](./voice-react-native-sdk.call_namespace.event_enum.md) event. |
+| [Generic](./voice-react-native-sdk.call_namespace.listener_namespace.generic_typealias.md) | Generic event listener. This should be the function signature of any event listener bound to any call event. |
+| [MessageReceived](./voice-react-native-sdk.call_namespace.listener_namespace.messagereceived_typealias.md) | CallMessage received event listener. This should be the function signature of any event listener bound to the [Call.Event.MessageReceived](./voice-react-native-sdk.call_namespace.event_enum.md) event. |
+| [QualityWarningsChanged](./voice-react-native-sdk.call_namespace.listener_namespace.qualitywarningschanged_typealias.md) | Quality warnings changed event listener. This should be the function signature of any event listener bound to the [Call.Event.QualityWarningsChanged](./voice-react-native-sdk.call_namespace.event_enum.md) event. |
+| [Reconnected](./voice-react-native-sdk.call_namespace.listener_namespace.reconnected_typealias.md) | Reconnected event listener. This should be the function signature of any event listener bound to the [Call.Event.Reconnected](./voice-react-native-sdk.call_namespace.event_enum.md) event. |
+| [Reconnecting](./voice-react-native-sdk.call_namespace.listener_namespace.reconnecting_typealias.md) | Reconnecting event listener. This should be the function signature of any event listener bound to the [Call.Event.Reconnecting](./voice-react-native-sdk.call_namespace.event_enum.md) event. |
+| [Ringing](./voice-react-native-sdk.call_namespace.listener_namespace.ringing_typealias.md) | Ringing event listener. This should be the function signature of any event listener bound to the [Call.Event.Ringing](./voice-react-native-sdk.call_namespace.event_enum.md) event. |
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.messagereceived_typealias.md b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.messagereceived_typealias.md
new file mode 100644
index 00000000..604898c9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.messagereceived_typealias.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md) > [MessageReceived](./voice-react-native-sdk.call_namespace.listener_namespace.messagereceived_typealias.md)
+
+## Call.Listener.MessageReceived type
+
+CallMessage received event listener. This should be the function signature of any event listener bound to the [Call.Event.MessageReceived](./voice-react-native-sdk.call_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type MessageReceived = (incomingCallMessage: IncomingCallMessage) => void;
+```
+References: [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md)
+
+## Remarks
+
+See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_7_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.qualitywarningschanged_typealias.md b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.qualitywarningschanged_typealias.md
new file mode 100644
index 00000000..4f6d05c3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.qualitywarningschanged_typealias.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md) > [QualityWarningsChanged](./voice-react-native-sdk.call_namespace.listener_namespace.qualitywarningschanged_typealias.md)
+
+## Call.Listener.QualityWarningsChanged type
+
+Quality warnings changed event listener. This should be the function signature of any event listener bound to the [Call.Event.QualityWarningsChanged](./voice-react-native-sdk.call_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type QualityWarningsChanged = (currentQualityWarnings: Call.QualityWarning[], previousQualityWarnings: Call.QualityWarning[]) => void;
+```
+References: [Call.QualityWarning](./voice-react-native-sdk.call_namespace.qualitywarning_enum.md)
+
+## Remarks
+
+See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_6_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.reconnected_typealias.md b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.reconnected_typealias.md
new file mode 100644
index 00000000..ab867983
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.reconnected_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md) > [Reconnected](./voice-react-native-sdk.call_namespace.listener_namespace.reconnected_typealias.md)
+
+## Call.Listener.Reconnected type
+
+Reconnected event listener. This should be the function signature of any event listener bound to the [Call.Event.Reconnected](./voice-react-native-sdk.call_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Reconnected = () => void;
+```
+
+## Remarks
+
+See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_3_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.reconnecting_typealias.md b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.reconnecting_typealias.md
new file mode 100644
index 00000000..7ff9d3e8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.reconnecting_typealias.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md) > [Reconnecting](./voice-react-native-sdk.call_namespace.listener_namespace.reconnecting_typealias.md)
+
+## Call.Listener.Reconnecting type
+
+Reconnecting event listener. This should be the function signature of any event listener bound to the [Call.Event.Reconnecting](./voice-react-native-sdk.call_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Reconnecting = (error: TwilioError) => void;
+```
+
+## Remarks
+
+See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_2_methodsignature.md).
+
+See [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) for all error classes.
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.ringing_typealias.md b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.ringing_typealias.md
new file mode 100644
index 00000000..aaad8d04
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.listener_namespace.ringing_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md) > [Ringing](./voice-react-native-sdk.call_namespace.listener_namespace.ringing_typealias.md)
+
+## Call.Listener.Ringing type
+
+Ringing event listener. This should be the function signature of any event listener bound to the [Call.Event.Ringing](./voice-react-native-sdk.call_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Ringing = () => void;
+```
+
+## Remarks
+
+See [Call.addListener()](./voice-react-native-sdk.call_interface.addlistener_5_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.md b/docs/api/voice-react-native-sdk.call_namespace.md
new file mode 100644
index 00000000..577f9497
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.md
@@ -0,0 +1,34 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md)
+
+## Call namespace
+
+Namespace for enumerations and types used by [Call objects](./voice-react-native-sdk.call_class.md).
+
+Signature:
+
+```typescript
+export declare namespace Call
+```
+
+## Remarks
+
+- See also the [Call class](./voice-react-native-sdk.call_class.md). - See also the [Call interface](./voice-react-native-sdk.call_interface.md).
+
+## Enumerations
+
+| Enumeration | Description |
+| --- | --- |
+| [Event](./voice-react-native-sdk.call_namespace.event_enum.md) | Enumeration of all event strings emitted by [Call](./voice-react-native-sdk.call_class.md) objects. |
+| [Issue](./voice-react-native-sdk.call_namespace.issue_enum.md) | An enumeration of call issues that can be reported. |
+| [QualityWarning](./voice-react-native-sdk.call_namespace.qualitywarning_enum.md) | An enumeration of all call quality-warning types. |
+| [Score](./voice-react-native-sdk.call_namespace.score_enum.md) | An enumeration of all scores that could be used to rate the experience of a call or issues encountered during the call. |
+| [State](./voice-react-native-sdk.call_namespace.state_enum.md) | An enumeration of all possible [Call object](./voice-react-native-sdk.call_class.md) states. |
+
+## Namespaces
+
+| Namespace | Description |
+| --- | --- |
+| [Listener](./voice-react-native-sdk.call_namespace.listener_namespace.md) | Listener types for all events emitted by a [Call object.](./voice-react-native-sdk.call_class.md) |
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.qualitywarning_enum.md b/docs/api/voice-react-native-sdk.call_namespace.qualitywarning_enum.md
new file mode 100644
index 00000000..76f0e71d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.qualitywarning_enum.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [QualityWarning](./voice-react-native-sdk.call_namespace.qualitywarning_enum.md)
+
+## Call.QualityWarning enum
+
+An enumeration of all call quality-warning types.
+
+Signature:
+
+```typescript
+enum QualityWarning
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| ConstantAudioInputLevel | "constant-audio-input-level"
| Raised when the call detects constant audio input, such as silence. |
+| HighJitter | "high-jitter"
| Raised when the network encounters high jitter. |
+| HighPacketLoss | "high-packet-loss"
| Raised when the network encounters high packet loss. |
+| HighRtt | "high-rtt"
| Raised when the network encounters high packet round-trip-time. |
+| LowMos | "low-mos"
| Raised when the call detects a low mean-opinion-score or MOS. |
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.score_enum.md b/docs/api/voice-react-native-sdk.call_namespace.score_enum.md
new file mode 100644
index 00000000..97ffbeb7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.score_enum.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [Score](./voice-react-native-sdk.call_namespace.score_enum.md)
+
+## Call.Score enum
+
+An enumeration of all scores that could be used to rate the experience of a call or issues encountered during the call.
+
+Signature:
+
+```typescript
+enum Score
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| Five | 5
| An issue had severity approximately 5/5. |
+| Four | 4
| An issue had severity approximately 4/5. |
+| NotReported | 0
| An issue was not encountered or there is no desire to report said issue. |
+| One | 1
| An issue had severity approximately 1/5. |
+| Three | 3
| An issue had severity approximately 3/5. |
+| Two | 2
| An issue had severity approximately 2/5. |
+
diff --git a/docs/api/voice-react-native-sdk.call_namespace.state_enum.md b/docs/api/voice-react-native-sdk.call_namespace.state_enum.md
new file mode 100644
index 00000000..7e19c1b6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.call_namespace.state_enum.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Call](./voice-react-native-sdk.call_namespace.md) > [State](./voice-react-native-sdk.call_namespace.state_enum.md)
+
+## Call.State enum
+
+An enumeration of all possible [Call object](./voice-react-native-sdk.call_class.md) states.
+
+Signature:
+
+```typescript
+enum State
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| Connected | "connected"
| Call Connected
state.Occurs when the Connected
and Reconnected
event is raised. |
+| Connecting | "connecting"
| Call Connecting
state.The default state of an outgoing call. |
+| Disconnected | "disconnected"
| Call Disconnected
state.Occurs when the Disconnected
or ConnectFailure
event is raised. |
+| Reconnecting | "reconnecting"
| Call Reconnecting
state.Occurs when the Reconnecting
event is raised. |
+| Ringing | "ringing"
| Call Ringing
state. Occurs when the Ringing
event is raised. |
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_class.accept_method.md b/docs/api/voice-react-native-sdk.callinvite_class.accept_method.md
new file mode 100644
index 00000000..1b24eb51
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_class.accept_method.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_class.md) > [accept](./voice-react-native-sdk.callinvite_class.accept_method.md)
+
+## CallInvite.accept() method
+
+Accept a call invite. Sets the state of this call invite to [CallInvite.State.Accepted](./voice-react-native-sdk.callinvite_namespace.state_enum.md).
+
+Signature:
+
+```typescript
+accept(options?: CallInvite.AcceptOptions): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| options | [CallInvite.AcceptOptions](./voice-react-native-sdk.callinvite_namespace.acceptoptions_interface.md) | (Optional) Options to pass to the native layer when accepting the call. |
+
+Returns:
+
+Promise<[Call](./voice-react-native-sdk.call_class.md)>
+
+- Resolves when a [Call object](./voice-react-native-sdk.call_class.md) associated with this [CallInvite](./voice-react-native-sdk.callinvite_class.md) has been created.
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_class.getcallsid_method.md b/docs/api/voice-react-native-sdk.callinvite_class.getcallsid_method.md
new file mode 100644
index 00000000..965cbc28
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_class.getcallsid_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_class.md) > [getCallSid](./voice-react-native-sdk.callinvite_class.getcallsid_method.md)
+
+## CallInvite.getCallSid() method
+
+Get the call SID associated with this `CallInvite` class.
+
+Signature:
+
+```typescript
+getCallSid(): string;
+```
+Returns:
+
+string
+
+- A string representing the call SID.
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_class.getcustomparameters_method.md b/docs/api/voice-react-native-sdk.callinvite_class.getcustomparameters_method.md
new file mode 100644
index 00000000..310dcfd7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_class.getcustomparameters_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_class.md) > [getCustomParameters](./voice-react-native-sdk.callinvite_class.getcustomparameters_method.md)
+
+## CallInvite.getCustomParameters() method
+
+Get the custom parameters of the call associated with this `CallInvite` class.
+
+Signature:
+
+```typescript
+getCustomParameters(): CustomParameters;
+```
+Returns:
+
+[CustomParameters](./voice-react-native-sdk.customparameters_typealias.md)
+
+- A `Record` of custom parameters.
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_class.getfrom_method.md b/docs/api/voice-react-native-sdk.callinvite_class.getfrom_method.md
new file mode 100644
index 00000000..551ce576
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_class.getfrom_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_class.md) > [getFrom](./voice-react-native-sdk.callinvite_class.getfrom_method.md)
+
+## CallInvite.getFrom() method
+
+Get the `from` parameter of the call associated with this `CallInvite` class.
+
+Signature:
+
+```typescript
+getFrom(): string;
+```
+Returns:
+
+string
+
+- A `string` representing the `from` parameter.
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_class.getstate_method.md b/docs/api/voice-react-native-sdk.callinvite_class.getstate_method.md
new file mode 100644
index 00000000..7a32fdaf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_class.getstate_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_class.md) > [getState](./voice-react-native-sdk.callinvite_class.getstate_method.md)
+
+## CallInvite.getState() method
+
+Get the `state` of the `CallInvite`.
+
+Signature:
+
+```typescript
+getState(): CallInvite.State;
+```
+Returns:
+
+[CallInvite.State](./voice-react-native-sdk.callinvite_namespace.state_enum.md)
+
+- The `state` of this `CallInvite`.
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_class.getto_method.md b/docs/api/voice-react-native-sdk.callinvite_class.getto_method.md
new file mode 100644
index 00000000..bb77d8b7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_class.getto_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_class.md) > [getTo](./voice-react-native-sdk.callinvite_class.getto_method.md)
+
+## CallInvite.getTo() method
+
+Get the `to` parameter of the call associated with this `CallInvite` class.
+
+Signature:
+
+```typescript
+getTo(): string;
+```
+Returns:
+
+string
+
+- A `string` representing the `to` parameter.
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_class.md b/docs/api/voice-react-native-sdk.callinvite_class.md
new file mode 100644
index 00000000..ba791dd7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_class.md
@@ -0,0 +1,41 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_class.md)
+
+## CallInvite class
+
+Provides access to information about a call invite, including the call parameters, and exposes functionality to accept or decline a call.
+
+Signature:
+
+```typescript
+export declare class CallInvite extends EventEmitter
+```
+Extends: EventEmitter
+
+## Remarks
+
+Note that when a `CallInvite` is acted upon (i.e. when [CallInvite.accept()](./voice-react-native-sdk.callinvite_class.accept_method.md) or [CallInvite.reject()](./voice-react-native-sdk.callinvite_class.reject_method.md) is invoked), then the `CallInvite` is "settled".
+
+The state of the `CallInvite` is changed from [CallInvite.State.Pending](./voice-react-native-sdk.callinvite_namespace.state_enum.md) to [CallInvite.State.Accepted](./voice-react-native-sdk.callinvite_namespace.state_enum.md) or [CallInvite.State.Rejected](./voice-react-native-sdk.callinvite_namespace.state_enum.md) and the `CallInvite` can no longer be acted upon further.
+
+Further action after "settling" a `CallInvite` will throw an error.
+
+- See the [CallInvite namespace](./voice-react-native-sdk.callinvite_namespace.md) for enumerations and types used by this class.
+
+The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `CallInvite` class.
+
+## Methods
+
+| Method | Modifiers | Description |
+| --- | --- | --- |
+| [accept(options)](./voice-react-native-sdk.callinvite_class.accept_method.md) | | Accept a call invite. Sets the state of this call invite to [CallInvite.State.Accepted](./voice-react-native-sdk.callinvite_namespace.state_enum.md). |
+| [getCallSid()](./voice-react-native-sdk.callinvite_class.getcallsid_method.md) | | Get the call SID associated with this CallInvite
class. |
+| [getCustomParameters()](./voice-react-native-sdk.callinvite_class.getcustomparameters_method.md) | | Get the custom parameters of the call associated with this CallInvite
class. |
+| [getFrom()](./voice-react-native-sdk.callinvite_class.getfrom_method.md) | | Get the from
parameter of the call associated with this CallInvite
class. |
+| [getState()](./voice-react-native-sdk.callinvite_class.getstate_method.md) | | Get the state
of the CallInvite
. |
+| [getTo()](./voice-react-native-sdk.callinvite_class.getto_method.md) | | Get the to
parameter of the call associated with this CallInvite
class. |
+| [reject()](./voice-react-native-sdk.callinvite_class.reject_method.md) | | Reject a call invite. Sets the state of this call invite to [CallInvite.State.Rejected](./voice-react-native-sdk.callinvite_namespace.state_enum.md). |
+| [sendMessage(message)](./voice-react-native-sdk.callinvite_class.sendmessage_method.md) | | Send a CallMessage. |
+| [updateCallerHandle(newHandle)](./voice-react-native-sdk.callinvite_class.updatecallerhandle_method.md) | | Update the caller name displayed in the iOS system incoming call screen. |
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_class.reject_method.md b/docs/api/voice-react-native-sdk.callinvite_class.reject_method.md
new file mode 100644
index 00000000..adf41d8f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_class.reject_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_class.md) > [reject](./voice-react-native-sdk.callinvite_class.reject_method.md)
+
+## CallInvite.reject() method
+
+Reject a call invite. Sets the state of this call invite to [CallInvite.State.Rejected](./voice-react-native-sdk.callinvite_namespace.state_enum.md).
+
+Signature:
+
+```typescript
+reject(): Promise;
+```
+Returns:
+
+Promise<void>
+
+- Resolves when the [CallInvite](./voice-react-native-sdk.callinvite_class.md) has been rejected.
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_class.sendmessage_method.md b/docs/api/voice-react-native-sdk.callinvite_class.sendmessage_method.md
new file mode 100644
index 00000000..0a3244e2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_class.sendmessage_method.md
@@ -0,0 +1,46 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_class.md) > [sendMessage](./voice-react-native-sdk.callinvite_class.sendmessage_method.md)
+
+## CallInvite.sendMessage() method
+
+Send a CallMessage.
+
+Signature:
+
+```typescript
+sendMessage(message: CallMessage): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | [CallMessage](./voice-react-native-sdk.callmessage_interface.md) | The call message to send. |
+
+Returns:
+
+Promise<[OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_class.md)>
+
+A `Promise` that - Resolves with the OutgoingCallMessage object. - Rejects when the message is unable to be sent.
+
+## Example
+
+To send a user-defined-message
+
+```typescript
+const outgoingCallMessage: OutgoingCallMessage = await callInvite.sendMessage({
+ content: { key1: 'This is a messsage from the parent call invite' },
+ contentType: 'application/json',
+ messageType: 'user-defined-message'
+});
+
+outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
+ // outgoingCallMessage failed, handle error
+});
+
+outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
+ // outgoingCallMessage sent
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_class.updatecallerhandle_method.md b/docs/api/voice-react-native-sdk.callinvite_class.updatecallerhandle_method.md
new file mode 100644
index 00000000..b80f10c2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_class.updatecallerhandle_method.md
@@ -0,0 +1,32 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_class.md) > [updateCallerHandle](./voice-react-native-sdk.callinvite_class.updatecallerhandle_method.md)
+
+## CallInvite.updateCallerHandle() method
+
+Update the caller name displayed in the iOS system incoming call screen.
+
+Signature:
+
+```typescript
+updateCallerHandle(newHandle: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| newHandle | string | The new value of the caller's name. |
+
+Returns:
+
+Promise<void>
+
+- Resolves when the caller name has been updated.
+
+## Remarks
+
+Unsupported platforms: - Android
+
+This API is specific to iOS and unavailable in Android. Invoke this method after the incoming call has been reported to CallKit and before the call has been accepted. For example, perform an async request to your app server to fetch the full name of the caller and use this method to replace the default caller name in `from`.
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_1_methodsignature.md b/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_1_methodsignature.md
new file mode 100644
index 00000000..b5cb7460
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_1_methodsignature.md
@@ -0,0 +1,42 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md) > [addListener](./voice-react-native-sdk.callinvite_interface.addlistener_1_methodsignature.md)
+
+## CallInvite.addListener() method
+
+Rejected event. Raised when the call invite has been rejected.
+
+Signature:
+
+```typescript
+addListener(rejectedEvent: CallInvite.Event.Rejected, listener: CallInvite.Listener.Rejected): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| rejectedEvent | [CallInvite.Event.Rejected](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | The raised event string. |
+| listener | [CallInvite.Listener.Rejected](./voice-react-native-sdk.callinvite_namespace.listener_namespace.rejected_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call invite object.
+
+## Remarks
+
+
+## Example
+
+
+```ts
+voice.on(Voice.Event.CallInvite, (callInvite) => {
+ callInvite.on(CallInvite.Event.Rejected, () => {
+ // the call invite was rejected through either the native layer
+ // or the js layer
+ });
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_2_methodsignature.md b/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_2_methodsignature.md
new file mode 100644
index 00000000..5e034cbf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_2_methodsignature.md
@@ -0,0 +1,41 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md) > [addListener](./voice-react-native-sdk.callinvite_interface.addlistener_2_methodsignature.md)
+
+## CallInvite.addListener() method
+
+Cancelled event. Raised when the call invite has been cancelled.
+
+Signature:
+
+```typescript
+addListener(cancelledEvent: CallInvite.Event.Cancelled, listener: CallInvite.Listener.Cancelled): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| cancelledEvent | [CallInvite.Event.Cancelled](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | The raised event string. |
+| listener | [CallInvite.Listener.Cancelled](./voice-react-native-sdk.callinvite_namespace.listener_namespace.cancelled_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call invite object.
+
+## Remarks
+
+
+## Example
+
+
+```ts
+voice.on(Voice.Event.CallInvite, (callInvite) => {
+ callInvite.on(CallInvite.Event.Cancelled, (error) => {
+ // the call invite was cancelled
+ });
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_3_methodsignature.md b/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_3_methodsignature.md
new file mode 100644
index 00000000..21064a5b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_3_methodsignature.md
@@ -0,0 +1,42 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md) > [addListener](./voice-react-native-sdk.callinvite_interface.addlistener_3_methodsignature.md)
+
+## CallInvite.addListener() method
+
+Notification tapped event. Raised when the call invite notification has been tapped.
+
+Signature:
+
+```typescript
+addListener(notificationTappedEvent: CallInvite.Event.NotificationTapped, listener: CallInvite.Listener.NotificationTapped): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| notificationTappedEvent | [CallInvite.Event.NotificationTapped](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | The raised event string. |
+| listener | [CallInvite.Listener.NotificationTapped](./voice-react-native-sdk.callinvite_namespace.listener_namespace.notificationtapped_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call invite object.
+
+## Remarks
+
+This API is Android specific.
+
+## Example
+
+
+```ts
+voice.on(Voice.Event.CallInvite, (callInvite) => {
+ callInvite.on(CallInvite.Event.NotificationTapped, () => {
+ // the call invite notification was tapped
+ });
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_4_methodsignature.md b/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_4_methodsignature.md
new file mode 100644
index 00000000..1b845a30
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_4_methodsignature.md
@@ -0,0 +1,38 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md) > [addListener](./voice-react-native-sdk.callinvite_interface.addlistener_4_methodsignature.md)
+
+## CallInvite.addListener() method
+
+MessageReceived event. Raised when a [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) is received.
+
+Signature:
+
+```typescript
+addListener(messageReceivedEvent: CallInvite.Event.MessageReceived, listener: CallInvite.Listener.MessageReceived): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| messageReceivedEvent | [CallInvite.Event.MessageReceived](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | The raised event string. |
+| listener | [CallInvite.Listener.MessageReceived](./voice-react-native-sdk.callinvite_namespace.listener_namespace.messagereceived_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The callMessage object
+
+## Example
+
+
+```typescript
+voice.on(Voice.Event.CallInvite, (callInvite) => {
+ callInvite.addListener(CallInvite.Event.MessageReceived, (message) => {
+ // callMessage received
+ });
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_methodsignature.md b/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_methodsignature.md
new file mode 100644
index 00000000..0b9864f5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.addlistener_methodsignature.md
@@ -0,0 +1,42 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md) > [addListener](./voice-react-native-sdk.callinvite_interface.addlistener_methodsignature.md)
+
+## CallInvite.addListener() method
+
+Accepted event. Raised when the call invite has been accepted.
+
+Signature:
+
+```typescript
+addListener(acceptedEvent: CallInvite.Event.Accepted, listener: CallInvite.Listener.Accepted): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| acceptedEvent | [CallInvite.Event.Accepted](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | The raised event string. |
+| listener | [CallInvite.Listener.Accepted](./voice-react-native-sdk.callinvite_namespace.listener_namespace.accepted_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call invite object.
+
+## Remarks
+
+
+## Example
+
+
+```ts
+voice.on(Voice.Event.CallInvite, (callInvite) => {
+ callInvite.on(CallInvite.Event.Accepted, (call) => {
+ // the call invite was accepted through either the native layer
+ // or the js layer
+ });
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.md b/docs/api/voice-react-native-sdk.callinvite_interface.md
new file mode 100644
index 00000000..8f24263d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.md
@@ -0,0 +1,35 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md)
+
+## CallInvite interface
+
+Defines strict typings for all events emitted by [CallInvite objects](./voice-react-native-sdk.callinvite_class.md).
+
+Signature:
+
+```typescript
+export declare interface CallInvite
+```
+
+## Remarks
+
+Note that the `on` function is an alias for the `addListener` function. They share identical functionality and either may be used interchangeably.
+
+- See also the [CallInvite class](./voice-react-native-sdk.callinvite_class.md). - See also the [CallInvite namespace](./voice-react-native-sdk.callinvite_namespace.md).
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [addListener(acceptedEvent, listener)](./voice-react-native-sdk.callinvite_interface.addlistener_methodsignature.md) | Accepted event. Raised when the call invite has been accepted. |
+| [addListener(rejectedEvent, listener)](./voice-react-native-sdk.callinvite_interface.addlistener_1_methodsignature.md) | Rejected event. Raised when the call invite has been rejected. |
+| [addListener(cancelledEvent, listener)](./voice-react-native-sdk.callinvite_interface.addlistener_2_methodsignature.md) | Cancelled event. Raised when the call invite has been cancelled. |
+| [addListener(notificationTappedEvent, listener)](./voice-react-native-sdk.callinvite_interface.addlistener_3_methodsignature.md) | Notification tapped event. Raised when the call invite notification has been tapped. |
+| [addListener(messageReceivedEvent, listener)](./voice-react-native-sdk.callinvite_interface.addlistener_4_methodsignature.md) | MessageReceived event. Raised when a [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) is received. |
+| [on(acceptedEvent, listener)](./voice-react-native-sdk.callinvite_interface.on_methodsignature.md) | Accepted event. Raised when the call invite has been accepted. |
+| [on(rejectedEvent, listener)](./voice-react-native-sdk.callinvite_interface.on_1_methodsignature.md) | Rejected event. Raised when the call invite has been rejected. |
+| [on(cancelledEvent, listener)](./voice-react-native-sdk.callinvite_interface.on_2_methodsignature.md) | Cancelled event. Raised when the call invite has been cancelled. |
+| [on(notificationTappedEvent, listener)](./voice-react-native-sdk.callinvite_interface.on_3_methodsignature.md) | Notification tapped event. Raised when the call invite notification has been tapped. |
+| [on(messageReceivedEvent, listener)](./voice-react-native-sdk.callinvite_interface.on_4_methodsignature.md) | MessageReceived event. Raised when a [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) is received. |
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.on_1_methodsignature.md b/docs/api/voice-react-native-sdk.callinvite_interface.on_1_methodsignature.md
new file mode 100644
index 00000000..2cd017ef
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.on_1_methodsignature.md
@@ -0,0 +1,30 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md) > [on](./voice-react-native-sdk.callinvite_interface.on_1_methodsignature.md)
+
+## CallInvite.on() method
+
+Rejected event. Raised when the call invite has been rejected.
+
+Signature:
+
+```typescript
+on(rejectedEvent: CallInvite.Event.Rejected, listener: CallInvite.Listener.Rejected): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| rejectedEvent | [CallInvite.Event.Rejected](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | The raised event string. |
+| listener | [CallInvite.Listener.Rejected](./voice-react-native-sdk.callinvite_namespace.listener_namespace.rejected_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call invite object.
+
+## Remarks
+
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.on_2_methodsignature.md b/docs/api/voice-react-native-sdk.callinvite_interface.on_2_methodsignature.md
new file mode 100644
index 00000000..d53914df
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.on_2_methodsignature.md
@@ -0,0 +1,30 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md) > [on](./voice-react-native-sdk.callinvite_interface.on_2_methodsignature.md)
+
+## CallInvite.on() method
+
+Cancelled event. Raised when the call invite has been cancelled.
+
+Signature:
+
+```typescript
+on(cancelledEvent: CallInvite.Event.Cancelled, listener: CallInvite.Listener.Cancelled): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| cancelledEvent | [CallInvite.Event.Cancelled](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | The raised event string. |
+| listener | [CallInvite.Listener.Cancelled](./voice-react-native-sdk.callinvite_namespace.listener_namespace.cancelled_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call invite object.
+
+## Remarks
+
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.on_3_methodsignature.md b/docs/api/voice-react-native-sdk.callinvite_interface.on_3_methodsignature.md
new file mode 100644
index 00000000..40aabb32
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.on_3_methodsignature.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md) > [on](./voice-react-native-sdk.callinvite_interface.on_3_methodsignature.md)
+
+## CallInvite.on() method
+
+Notification tapped event. Raised when the call invite notification has been tapped.
+
+Signature:
+
+```typescript
+on(notificationTappedEvent: CallInvite.Event.NotificationTapped, listener: CallInvite.Listener.NotificationTapped): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| notificationTappedEvent | [CallInvite.Event.NotificationTapped](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | The raised event string. |
+| listener | [CallInvite.Listener.NotificationTapped](./voice-react-native-sdk.callinvite_namespace.listener_namespace.notificationtapped_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call invite object.
+
+## Remarks
+
+This API is Android specific.
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.on_4_methodsignature.md b/docs/api/voice-react-native-sdk.callinvite_interface.on_4_methodsignature.md
new file mode 100644
index 00000000..40877ac2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.on_4_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md) > [on](./voice-react-native-sdk.callinvite_interface.on_4_methodsignature.md)
+
+## CallInvite.on() method
+
+MessageReceived event. Raised when a [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) is received.
+
+Signature:
+
+```typescript
+on(messageReceivedEvent: CallInvite.Event.MessageReceived, listener: CallInvite.Listener.MessageReceived): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| messageReceivedEvent | [CallInvite.Event.MessageReceived](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | The raised event string. |
+| listener | [CallInvite.Listener.MessageReceived](./voice-react-native-sdk.callinvite_namespace.listener_namespace.messagereceived_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The callMessage object
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_interface.on_methodsignature.md b/docs/api/voice-react-native-sdk.callinvite_interface.on_methodsignature.md
new file mode 100644
index 00000000..d7f55246
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_interface.on_methodsignature.md
@@ -0,0 +1,30 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_interface.md) > [on](./voice-react-native-sdk.callinvite_interface.on_methodsignature.md)
+
+## CallInvite.on() method
+
+Accepted event. Raised when the call invite has been accepted.
+
+Signature:
+
+```typescript
+on(acceptedEvent: CallInvite.Event.Accepted, listener: CallInvite.Listener.Accepted): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| acceptedEvent | [CallInvite.Event.Accepted](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | The raised event string. |
+| listener | [CallInvite.Listener.Accepted](./voice-react-native-sdk.callinvite_namespace.listener_namespace.accepted_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call invite object.
+
+## Remarks
+
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_namespace.acceptoptions_interface.md b/docs/api/voice-react-native-sdk.callinvite_namespace.acceptoptions_interface.md
new file mode 100644
index 00000000..8ede72e6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_namespace.acceptoptions_interface.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_namespace.md) > [AcceptOptions](./voice-react-native-sdk.callinvite_namespace.acceptoptions_interface.md)
+
+## CallInvite.AcceptOptions interface
+
+Options to pass to the native layer when accepting the call.
+
+Signature:
+
+```typescript
+interface AcceptOptions
+```
diff --git a/docs/api/voice-react-native-sdk.callinvite_namespace.event_enum.md b/docs/api/voice-react-native-sdk.callinvite_namespace.event_enum.md
new file mode 100644
index 00000000..084b78b6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_namespace.event_enum.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_namespace.md) > [Event](./voice-react-native-sdk.callinvite_namespace.event_enum.md)
+
+## CallInvite.Event enum
+
+Enumeration of all event strings emitted by [CallInvite](./voice-react-native-sdk.callinvite_class.md) objects.
+
+Signature:
+
+```typescript
+enum Event
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| Accepted | "accepted"
| Event string for the Accepted
event. See [CallInvite.addListener()](./voice-react-native-sdk.callinvite_interface.addlistener_methodsignature.md). |
+| Cancelled | "cancelled"
| Event string for the Cancelled
event. See . |
+| MessageReceived | "messageReceived"
| Event string for the MessageReceived
event. See [CallInvite.addListener()](./voice-react-native-sdk.callinvite_interface.addlistener_4_methodsignature.md) |
+| NotificationTapped | "notificationTapped"
| Event string for the NotificationTapped
event. See . |
+| Rejected | "rejected"
| Event string for the Rejected
event. See [CallInvite.addListener()](./voice-react-native-sdk.callinvite_interface.addlistener_1_methodsignature.md). |
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.accepted_typealias.md b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.accepted_typealias.md
new file mode 100644
index 00000000..5e89eab5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.accepted_typealias.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_namespace.md) > [Listener](./voice-react-native-sdk.callinvite_namespace.listener_namespace.md) > [Accepted](./voice-react-native-sdk.callinvite_namespace.listener_namespace.accepted_typealias.md)
+
+## CallInvite.Listener.Accepted type
+
+Accepted event listener. This should be the function signature of any event listener bound to the [CallInvite.Event.Accepted](./voice-react-native-sdk.callinvite_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Accepted = (call: Call) => void;
+```
+References: [Call](./voice-react-native-sdk.call_class.md)
+
+## Remarks
+
+See [CallInvite.addListener()](./voice-react-native-sdk.callinvite_interface.addlistener_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.cancelled_typealias.md b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.cancelled_typealias.md
new file mode 100644
index 00000000..6f42ba84
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.cancelled_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_namespace.md) > [Listener](./voice-react-native-sdk.callinvite_namespace.listener_namespace.md) > [Cancelled](./voice-react-native-sdk.callinvite_namespace.listener_namespace.cancelled_typealias.md)
+
+## CallInvite.Listener.Cancelled type
+
+Cancelled event listener. This should be the function signature of any event listener bound to the [CallInvite.Event.Cancelled](./voice-react-native-sdk.callinvite_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Cancelled = (error?: TwilioError) => void;
+```
+
+## Remarks
+
+See [CallInvite.addListener()](./voice-react-native-sdk.callinvite_interface.addlistener_2_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.md b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.md
new file mode 100644
index 00000000..6d8e196e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_namespace.md) > [Listener](./voice-react-native-sdk.callinvite_namespace.listener_namespace.md)
+
+## CallInvite.Listener namespace
+
+Listener types for all events emitted by a [Call invite object.](./voice-react-native-sdk.callinvite_class.md)
+
+Signature:
+
+```typescript
+namespace Listener
+```
+
+## Type Aliases
+
+| Type Alias | Description |
+| --- | --- |
+| [Accepted](./voice-react-native-sdk.callinvite_namespace.listener_namespace.accepted_typealias.md) | Accepted event listener. This should be the function signature of any event listener bound to the [CallInvite.Event.Accepted](./voice-react-native-sdk.callinvite_namespace.event_enum.md) event. |
+| [Cancelled](./voice-react-native-sdk.callinvite_namespace.listener_namespace.cancelled_typealias.md) | Cancelled event listener. This should be the function signature of any event listener bound to the [CallInvite.Event.Cancelled](./voice-react-native-sdk.callinvite_namespace.event_enum.md) event. |
+| [MessageReceived](./voice-react-native-sdk.callinvite_namespace.listener_namespace.messagereceived_typealias.md) | CallInviteMessage received event listener. This should be the function signature of any event listener bound to the [CallInvite.Event.MessageReceived](./voice-react-native-sdk.callinvite_namespace.event_enum.md) event. |
+| [NotificationTapped](./voice-react-native-sdk.callinvite_namespace.listener_namespace.notificationtapped_typealias.md) | Rejected event listener. This should be the function signature of any event listener bound to the [CallInvite.Event.NotificationTapped](./voice-react-native-sdk.callinvite_namespace.event_enum.md) event. |
+| [Rejected](./voice-react-native-sdk.callinvite_namespace.listener_namespace.rejected_typealias.md) | Rejected event listener. This should be the function signature of any event listener bound to the [CallInvite.Event.Rejected](./voice-react-native-sdk.callinvite_namespace.event_enum.md) event. |
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.messagereceived_typealias.md b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.messagereceived_typealias.md
new file mode 100644
index 00000000..2e8f8ba9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.messagereceived_typealias.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_namespace.md) > [Listener](./voice-react-native-sdk.callinvite_namespace.listener_namespace.md) > [MessageReceived](./voice-react-native-sdk.callinvite_namespace.listener_namespace.messagereceived_typealias.md)
+
+## CallInvite.Listener.MessageReceived type
+
+CallInviteMessage received event listener. This should be the function signature of any event listener bound to the [CallInvite.Event.MessageReceived](./voice-react-native-sdk.callinvite_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type MessageReceived = (incomingCallMessage: IncomingCallMessage) => void;
+```
+References: [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md)
+
+## Remarks
+
+See [CallInvite.addListener()](./voice-react-native-sdk.callinvite_interface.addlistener_4_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.notificationtapped_typealias.md b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.notificationtapped_typealias.md
new file mode 100644
index 00000000..a2bde2ab
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.notificationtapped_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_namespace.md) > [Listener](./voice-react-native-sdk.callinvite_namespace.listener_namespace.md) > [NotificationTapped](./voice-react-native-sdk.callinvite_namespace.listener_namespace.notificationtapped_typealias.md)
+
+## CallInvite.Listener.NotificationTapped type
+
+Rejected event listener. This should be the function signature of any event listener bound to the [CallInvite.Event.NotificationTapped](./voice-react-native-sdk.callinvite_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type NotificationTapped = () => void;
+```
+
+## Remarks
+
+See [CallInvite.addListener()](./voice-react-native-sdk.callinvite_interface.addlistener_3_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.rejected_typealias.md b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.rejected_typealias.md
new file mode 100644
index 00000000..5a1d17a0
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_namespace.listener_namespace.rejected_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_namespace.md) > [Listener](./voice-react-native-sdk.callinvite_namespace.listener_namespace.md) > [Rejected](./voice-react-native-sdk.callinvite_namespace.listener_namespace.rejected_typealias.md)
+
+## CallInvite.Listener.Rejected type
+
+Rejected event listener. This should be the function signature of any event listener bound to the [CallInvite.Event.Rejected](./voice-react-native-sdk.callinvite_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Rejected = () => void;
+```
+
+## Remarks
+
+See [CallInvite.addListener()](./voice-react-native-sdk.callinvite_interface.addlistener_1_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_namespace.md b/docs/api/voice-react-native-sdk.callinvite_namespace.md
new file mode 100644
index 00000000..0a728eb5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_namespace.md
@@ -0,0 +1,37 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_namespace.md)
+
+## CallInvite namespace
+
+Provides enumerations and types used by a [CallInvite object](./voice-react-native-sdk.callinvite_class.md).
+
+Signature:
+
+```typescript
+export declare namespace CallInvite
+```
+
+## Remarks
+
+- See also the [CallInvite class](./voice-react-native-sdk.callinvite_class.md).
+
+## Enumerations
+
+| Enumeration | Description |
+| --- | --- |
+| [Event](./voice-react-native-sdk.callinvite_namespace.event_enum.md) | Enumeration of all event strings emitted by [CallInvite](./voice-react-native-sdk.callinvite_class.md) objects. |
+| [State](./voice-react-native-sdk.callinvite_namespace.state_enum.md) | An enumeration of [CallInvite](./voice-react-native-sdk.callinvite_class.md) states. |
+
+## Interfaces
+
+| Interface | Description |
+| --- | --- |
+| [AcceptOptions](./voice-react-native-sdk.callinvite_namespace.acceptoptions_interface.md) | Options to pass to the native layer when accepting the call. |
+
+## Namespaces
+
+| Namespace | Description |
+| --- | --- |
+| [Listener](./voice-react-native-sdk.callinvite_namespace.listener_namespace.md) | Listener types for all events emitted by a [Call invite object.](./voice-react-native-sdk.callinvite_class.md) |
+
diff --git a/docs/api/voice-react-native-sdk.callinvite_namespace.state_enum.md b/docs/api/voice-react-native-sdk.callinvite_namespace.state_enum.md
new file mode 100644
index 00000000..30c8d2c7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callinvite_namespace.state_enum.md
@@ -0,0 +1,23 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallInvite](./voice-react-native-sdk.callinvite_namespace.md) > [State](./voice-react-native-sdk.callinvite_namespace.state_enum.md)
+
+## CallInvite.State enum
+
+An enumeration of [CallInvite](./voice-react-native-sdk.callinvite_class.md) states.
+
+Signature:
+
+```typescript
+enum State
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| Accepted | "accepted"
| State of a call invite when it has been accepted. |
+| Cancelled | "cancelled"
| State of a call invite when it has been cancelled. |
+| Pending | "pending"
| State of a call invite when it has not been acted upon. |
+| Rejected | "rejected"
| State of a call invite when it has been rejected. |
+
diff --git a/docs/api/voice-react-native-sdk.callkit_namespace.configurationoptions_typealias.md b/docs/api/voice-react-native-sdk.callkit_namespace.configurationoptions_typealias.md
new file mode 100644
index 00000000..c8d8d421
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callkit_namespace.configurationoptions_typealias.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallKit](./voice-react-native-sdk.callkit_namespace.md) > [ConfigurationOptions](./voice-react-native-sdk.callkit_namespace.configurationoptions_typealias.md)
+
+## CallKit.ConfigurationOptions type
+
+iOS CallKit configuration options.
+
+Signature:
+
+```typescript
+type ConfigurationOptions = {
+ callKitIconTemplateImageData: string;
+ callKitIncludesCallsInRecents: boolean;
+ callKitMaximumCallGroups: number;
+ callKitMaximumCallsPerCallGroup: number;
+ callKitRingtoneSound: string;
+ callKitSupportedHandleTypes: HandleType[];
+ };
+```
+References: [HandleType](./voice-react-native-sdk.callkit_namespace.handletype_enum.md)
+
diff --git a/docs/api/voice-react-native-sdk.callkit_namespace.handletype_enum.md b/docs/api/voice-react-native-sdk.callkit_namespace.handletype_enum.md
new file mode 100644
index 00000000..ddf7e419
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callkit_namespace.handletype_enum.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallKit](./voice-react-native-sdk.callkit_namespace.md) > [HandleType](./voice-react-native-sdk.callkit_namespace.handletype_enum.md)
+
+## CallKit.HandleType enum
+
+Enumeration of all supported handle types by iOS CallKit.
+
+Signature:
+
+```typescript
+enum HandleType
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| EmailAddress | 2
| Email address handle. |
+| Generic | 0
| Generic handle. |
+| PhoneNumber | 1
| Phone number handle. |
+
diff --git a/docs/api/voice-react-native-sdk.callkit_namespace.md b/docs/api/voice-react-native-sdk.callkit_namespace.md
new file mode 100644
index 00000000..f878901f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callkit_namespace.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallKit](./voice-react-native-sdk.callkit_namespace.md)
+
+## CallKit namespace
+
+CallKit related types.
+
+Signature:
+
+```typescript
+export declare namespace CallKit
+```
+
+## Enumerations
+
+| Enumeration | Description |
+| --- | --- |
+| [HandleType](./voice-react-native-sdk.callkit_namespace.handletype_enum.md) | Enumeration of all supported handle types by iOS CallKit. |
+
+## Type Aliases
+
+| Type Alias | Description |
+| --- | --- |
+| [ConfigurationOptions](./voice-react-native-sdk.callkit_namespace.configurationoptions_typealias.md) | iOS CallKit configuration options. |
+
diff --git a/docs/api/voice-react-native-sdk.callmessage_interface.content_propertysignature.md b/docs/api/voice-react-native-sdk.callmessage_interface.content_propertysignature.md
new file mode 100644
index 00000000..45a9dbb1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callmessage_interface.content_propertysignature.md
@@ -0,0 +1,15 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallMessage](./voice-react-native-sdk.callmessage_interface.md) > [content](./voice-react-native-sdk.callmessage_interface.content_propertysignature.md)
+
+## CallMessage.content property
+
+The content of the message. This value should match the content type parameter.
+
+See [CallMessage.contentType](./voice-react-native-sdk.callmessage_interface.contenttype_propertysignature.md) for more information.
+
+Signature:
+
+```typescript
+content: any;
+```
diff --git a/docs/api/voice-react-native-sdk.callmessage_interface.contenttype_propertysignature.md b/docs/api/voice-react-native-sdk.callmessage_interface.contenttype_propertysignature.md
new file mode 100644
index 00000000..c9652a53
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callmessage_interface.contenttype_propertysignature.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallMessage](./voice-react-native-sdk.callmessage_interface.md) > [contentType](./voice-react-native-sdk.callmessage_interface.contenttype_propertysignature.md)
+
+## CallMessage.contentType property
+
+The content type of the message. This value should accurately describe the content of the message. The following values are accepted:
+
+- "application/json"
+
+If no value is defined, then the default value of "application/json" will be used.
+
+If the `contentType` of the message is "application/json", the content of the message may be a JS object.
+
+Signature:
+
+```typescript
+contentType?: string;
+```
diff --git a/docs/api/voice-react-native-sdk.callmessage_interface.md b/docs/api/voice-react-native-sdk.callmessage_interface.md
new file mode 100644
index 00000000..064023cd
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callmessage_interface.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallMessage](./voice-react-native-sdk.callmessage_interface.md)
+
+## CallMessage interface
+
+The constituent values of a Call Message.
+
+Signature:
+
+```typescript
+export interface CallMessage
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [content](./voice-react-native-sdk.callmessage_interface.content_propertysignature.md) | any | The content of the message. This value should match the content type parameter.See [CallMessage.contentType](./voice-react-native-sdk.callmessage_interface.contenttype_propertysignature.md) for more information. |
+| [contentType?](./voice-react-native-sdk.callmessage_interface.contenttype_propertysignature.md) | string | (Optional) The content type of the message. This value should accurately describe the content of the message. The following values are accepted:- "application/json"If no value is defined, then the default value of "application/json" will be used.If the contentType
of the message is "application/json", the content of the message may be a JS object. |
+| [messageType](./voice-react-native-sdk.callmessage_interface.messagetype_propertysignature.md) | string | The message type. The following values are accepted:- "user-defined-message" |
+
diff --git a/docs/api/voice-react-native-sdk.callmessage_interface.messagetype_propertysignature.md b/docs/api/voice-react-native-sdk.callmessage_interface.messagetype_propertysignature.md
new file mode 100644
index 00000000..80154594
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.callmessage_interface.messagetype_propertysignature.md
@@ -0,0 +1,15 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CallMessage](./voice-react-native-sdk.callmessage_interface.md) > [messageType](./voice-react-native-sdk.callmessage_interface.messagetype_propertysignature.md)
+
+## CallMessage.messageType property
+
+The message type. The following values are accepted:
+
+- "user-defined-message"
+
+Signature:
+
+```typescript
+messageType: string;
+```
diff --git a/docs/api/voice-react-native-sdk.customparameters_typealias.md b/docs/api/voice-react-native-sdk.customparameters_typealias.md
new file mode 100644
index 00000000..a818cc8e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.customparameters_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [CustomParameters](./voice-react-native-sdk.customparameters_typealias.md)
+
+## CustomParameters type
+
+Call custom parameters. If custom parameters are present for a call, then it will have this typing.
+
+Signature:
+
+```typescript
+export declare type CustomParameters = Record;
+```
+
+## Remarks
+
+- `Call`s will have a method to access custom parameters, see [Call.getCustomParameters()](./voice-react-native-sdk.call_class.getcustomparameters_method.md). - `CallInvite`s will have a method to access custom parameters for the call that is associated with the invite, see [CallInvite.getCustomParameters()](./voice-react-native-sdk.callinvite_class.getcustomparameters_method.md).
+
diff --git a/docs/api/voice-react-native-sdk.incomingcallmessage_class.getcontent_method.md b/docs/api/voice-react-native-sdk.incomingcallmessage_class.getcontent_method.md
new file mode 100644
index 00000000..3ac810a1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.incomingcallmessage_class.getcontent_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) > [getContent](./voice-react-native-sdk.incomingcallmessage_class.getcontent_method.md)
+
+## IncomingCallMessage.getContent() method
+
+The content of the message. This value should match the content type parameter.
+
+See [CallMessage.contentType](./voice-react-native-sdk.callmessage_interface.contenttype_propertysignature.md) for more information.
+
+Signature:
+
+```typescript
+getContent(): any;
+```
+Returns:
+
+any
+
diff --git a/docs/api/voice-react-native-sdk.incomingcallmessage_class.getcontenttype_method.md b/docs/api/voice-react-native-sdk.incomingcallmessage_class.getcontenttype_method.md
new file mode 100644
index 00000000..12585900
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.incomingcallmessage_class.getcontenttype_method.md
@@ -0,0 +1,23 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) > [getContentType](./voice-react-native-sdk.incomingcallmessage_class.getcontenttype_method.md)
+
+## IncomingCallMessage.getContentType() method
+
+The content type of the message. This value should accurately describe the content of the message. The following values are accepted:
+
+- "application/json"
+
+If no value is defined, then the default value of "application/json" will be used.
+
+If the `contentType` of the message is "application/json", the content of the message may be a JS object.
+
+Signature:
+
+```typescript
+getContentType(): string;
+```
+Returns:
+
+string
+
diff --git a/docs/api/voice-react-native-sdk.incomingcallmessage_class.getmessagetype_method.md b/docs/api/voice-react-native-sdk.incomingcallmessage_class.getmessagetype_method.md
new file mode 100644
index 00000000..7affa0c4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.incomingcallmessage_class.getmessagetype_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) > [getMessageType](./voice-react-native-sdk.incomingcallmessage_class.getmessagetype_method.md)
+
+## IncomingCallMessage.getMessageType() method
+
+The message type. The following values are accepted:
+
+- "user-defined-message"
+
+Signature:
+
+```typescript
+getMessageType(): string;
+```
+Returns:
+
+string
+
diff --git a/docs/api/voice-react-native-sdk.incomingcallmessage_class.getsid_method.md b/docs/api/voice-react-native-sdk.incomingcallmessage_class.getsid_method.md
new file mode 100644
index 00000000..4c7fde97
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.incomingcallmessage_class.getsid_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) > [getSid](./voice-react-native-sdk.incomingcallmessage_class.getsid_method.md)
+
+## IncomingCallMessage.getSid() method
+
+Get the message SID.
+
+Signature:
+
+```typescript
+getSid(): string | undefined;
+```
+Returns:
+
+string \| undefined
+
+- A string representing the message SID. - `undefined` if the call information has not yet been received from the native layer.
+
diff --git a/docs/api/voice-react-native-sdk.incomingcallmessage_class.md b/docs/api/voice-react-native-sdk.incomingcallmessage_class.md
new file mode 100644
index 00000000..71dced43
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.incomingcallmessage_class.md
@@ -0,0 +1,30 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md)
+
+## IncomingCallMessage class
+
+CallMessage API is in beta.
+
+Provides access to information about a CallMessage, including the call message content, content type, message type, and voice event SID.
+
+Signature:
+
+```typescript
+export declare class IncomingCallMessage extends EventEmitter
+```
+Extends: EventEmitter
+
+## Remarks
+
+The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `IncomingCallMessage` class.
+
+## Methods
+
+| Method | Modifiers | Description |
+| --- | --- | --- |
+| [getContent()](./voice-react-native-sdk.incomingcallmessage_class.getcontent_method.md) | | The content of the message. This value should match the content type parameter.See [CallMessage.contentType](./voice-react-native-sdk.callmessage_interface.contenttype_propertysignature.md) for more information. |
+| [getContentType()](./voice-react-native-sdk.incomingcallmessage_class.getcontenttype_method.md) | | The content type of the message. This value should accurately describe the content of the message. The following values are accepted:- "application/json"If no value is defined, then the default value of "application/json" will be used.If the contentType
of the message is "application/json", the content of the message may be a JS object. |
+| [getMessageType()](./voice-react-native-sdk.incomingcallmessage_class.getmessagetype_method.md) | | The message type. The following values are accepted:- "user-defined-message" |
+| [getSid()](./voice-react-native-sdk.incomingcallmessage_class.getsid_method.md) | | Get the message SID. |
+
diff --git a/docs/api/voice-react-native-sdk.md b/docs/api/voice-react-native-sdk.md
new file mode 100644
index 00000000..b207ea18
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.md
@@ -0,0 +1,48 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md)
+
+## voice-react-native-sdk package
+
+Provides access to Twilio Programmable Voice for React Native applications running on iOS and Android devices.
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [AudioDevice](./voice-react-native-sdk.audiodevice_class.md) | Describes audio devices as reported by the native layer and allows the native selection of the described audio device. |
+| [Call](./voice-react-native-sdk.call_class.md) | Provides access to information about a call, including the call parameters, and exposes functionality for a call such as disconnecting, muting, and holding. |
+| [CallInvite](./voice-react-native-sdk.callinvite_class.md) | Provides access to information about a call invite, including the call parameters, and exposes functionality to accept or decline a call. |
+| [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) | CallMessage API is in beta.Provides access to information about a CallMessage, including the call message content, content type, message type, and voice event SID. |
+| [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_class.md) | CallMessage API is in beta.Provides access to information about a outgoingCallMessage, including the call message content, contentType, messageType, and voiceEventSid |
+| [Voice](./voice-react-native-sdk.voice_class.md) | Main entry-point of the Voice SDK. Provides access to the entire feature-set of the library. |
+
+## Interfaces
+
+| Interface | Description |
+| --- | --- |
+| [Call](./voice-react-native-sdk.call_interface.md) | Defines strict typings for all events emitted by [Call objects](./voice-react-native-sdk.call_class.md). |
+| [CallInvite](./voice-react-native-sdk.callinvite_interface.md) | Defines strict typings for all events emitted by [CallInvite objects](./voice-react-native-sdk.callinvite_class.md). |
+| [CallMessage](./voice-react-native-sdk.callmessage_interface.md) | The constituent values of a Call Message. |
+| [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_interface.md) | Defines strict typings for all events emitted by [OutgoingCallMessage objects](./voice-react-native-sdk.outgoingcallmessage_class.md). |
+| [Voice](./voice-react-native-sdk.voice_interface.md) | Defines strict typings for all events emitted by [Voice objects](./voice-react-native-sdk.voice_class.md). |
+
+## Namespaces
+
+| Namespace | Description |
+| --- | --- |
+| [AudioDevice](./voice-react-native-sdk.audiodevice_namespace.md) | Contains interfaces and enumerations associated with audio devices. |
+| [Call](./voice-react-native-sdk.call_namespace.md) | Namespace for enumerations and types used by [Call objects](./voice-react-native-sdk.call_class.md). |
+| [CallInvite](./voice-react-native-sdk.callinvite_namespace.md) | Provides enumerations and types used by a [CallInvite object](./voice-react-native-sdk.callinvite_class.md). |
+| [CallKit](./voice-react-native-sdk.callkit_namespace.md) | CallKit related types. |
+| [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_namespace.md) | Namespace for enumerations and types used by [OutgoingCallMessage objects](./voice-react-native-sdk.outgoingcallmessage_class.md). |
+| [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) | Types related to WebRTC stats. |
+| [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) | |
+| [Voice](./voice-react-native-sdk.voice_namespace.md) | Provides enumerations and types used by [Voice objects](./voice-react-native-sdk.voice_class.md). |
+
+## Type Aliases
+
+| Type Alias | Description |
+| --- | --- |
+| [CustomParameters](./voice-react-native-sdk.customparameters_typealias.md) | Call custom parameters. If custom parameters are present for a call, then it will have this typing. |
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_class._constructor__constructor.md
new file mode 100644
index 00000000..d4b24203
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_class.md) > [(constructor)](./voice-react-native-sdk.outgoingcallmessage_class._constructor__constructor.md)
+
+## OutgoingCallMessage.(constructor)
+
+Constructs a new instance of the `OutgoingCallMessage` class
+
+Signature:
+
+```typescript
+constructor({ content, contentType, messageType, voiceEventSid, }: NativeCallMessageInfo);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| { content, contentType, messageType, voiceEventSid, } | NativeCallMessageInfo | |
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_class.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_class.md
new file mode 100644
index 00000000..b7f7dc1f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_class.md)
+
+## OutgoingCallMessage class
+
+CallMessage API is in beta.
+
+Provides access to information about a outgoingCallMessage, including the call message content, contentType, messageType, and voiceEventSid
+
+Signature:
+
+```typescript
+export declare class OutgoingCallMessage extends IncomingCallMessage
+```
+Extends: [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md)
+
+## Remarks
+
+Note that the outgoingCallMessage information is fetched as soon as possible from the native layer, but there is no guarantee that all information is immediately available. Methods such as `OutgoingCallMessage.getContent` or `OutgoingCallMessage.getSid` may return `undefined`.
+
+As outgoingCallMessage events are received from the native layer, outgoingCallMessage information will propagate from the native layer to the JS layer and become available. Therefore, it is good practice to read information from the outgoingCallMessage after an event occurs, or as events occur.
+
+- See the [OutgoingCallMessage.Event](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) enum for events emitted by `OutgoingCallMessage` objects. - See the [OutgoingCallMessage interface](./voice-react-native-sdk.outgoingcallmessage_interface.md) for overloaded event listening metods. - See the [OutgoingCallMessage namespace](./voice-react-native-sdk.outgoingcallmessage_namespace.md) for types and enumerations used by this class.
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)({ content, contentType, messageType, voiceEventSid, })](./voice-react-native-sdk.outgoingcallmessage_class._constructor__constructor.md) | | Constructs a new instance of the OutgoingCallMessage
class |
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.addlistener_1_methodsignature.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.addlistener_1_methodsignature.md
new file mode 100644
index 00000000..e344a4a3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.addlistener_1_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_interface.md) > [addListener](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_1_methodsignature.md)
+
+## OutgoingCallMessage.addListener() method
+
+Sent event. Raised when outgoingCallMessage is sent.
+
+Signature:
+
+```typescript
+addListener(sentEvent: OutgoingCallMessage.Event.Sent, listener: OutgoingCallMessage.Listener.Sent): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| sentEvent | [OutgoingCallMessage.Event.Sent](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) | The raised event string. |
+| listener | [OutgoingCallMessage.Listener.Sent](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.sent_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The callMessage object
+
+## Example
+
+
+```typescript
+outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
+ // outgoingCallMessage sent
+})
+```
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.addlistener_2_methodsignature.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.addlistener_2_methodsignature.md
new file mode 100644
index 00000000..74630746
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.addlistener_2_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_interface.md) > [addListener](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_2_methodsignature.md)
+
+## OutgoingCallMessage.addListener() method
+
+Generic event listener typings.
+
+Signature:
+
+```typescript
+addListener(outgoingCallMessageEvent: OutgoingCallMessage.Event, listener: OutgoingCallMessage.Listener.Generic): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| outgoingCallMessageEvent | [OutgoingCallMessage.Event](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) | The raised event string. |
+| listener | [OutgoingCallMessage.Listener.Generic](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.generic_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The outgoingCallMessage object.
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.addlistener_methodsignature.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.addlistener_methodsignature.md
new file mode 100644
index 00000000..30f7af81
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.addlistener_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_interface.md) > [addListener](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_methodsignature.md)
+
+## OutgoingCallMessage.addListener() method
+
+Failure event. Raised when outgoingCallMessage fails to be sent out.
+
+Signature:
+
+```typescript
+addListener(failureEvent: OutgoingCallMessage.Event.Failure, listener: OutgoingCallMessage.Listener.Failure): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| failureEvent | [OutgoingCallMessage.Event.Failure](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) | The raised event string. |
+| listener | [OutgoingCallMessage.Listener.Failure](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.failure_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The callMessage object.
+
+## Example
+
+
+```typescript
+outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
+ // outgoingCallMessage failed, handle error
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.md
new file mode 100644
index 00000000..e266dffb
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_interface.md)
+
+## OutgoingCallMessage interface
+
+Defines strict typings for all events emitted by [OutgoingCallMessage objects](./voice-react-native-sdk.outgoingcallmessage_class.md).
+
+Signature:
+
+```typescript
+export declare interface OutgoingCallMessage
+```
+
+## Remarks
+
+Note that the `on` function is an alias for the `addListener` function. They share identical functionality and either may be used interchangeably.
+
+- See also the [CallMessage](./voice-react-native-sdk.callmessage_interface.md) interface. - See also the [IncomingCallMessage](./voice-react-native-sdk.incomingcallmessage_class.md) class. - See also the [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_namespace.md) namespace.
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [addListener(failureEvent, listener)](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_methodsignature.md) | Failure event. Raised when outgoingCallMessage fails to be sent out. |
+| [addListener(sentEvent, listener)](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_1_methodsignature.md) | Sent event. Raised when outgoingCallMessage is sent. |
+| [addListener(outgoingCallMessageEvent, listener)](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_2_methodsignature.md) | Generic event listener typings. |
+| [on(failureEvent, listener)](./voice-react-native-sdk.outgoingcallmessage_interface.on_methodsignature.md) | Failure event. Raised when outgoingCallMessage fails to be sent out. |
+| [on(sentEvent, listener)](./voice-react-native-sdk.outgoingcallmessage_interface.on_1_methodsignature.md) | Sent event. Raised when outgoingCallMessage is sent. |
+| [on(outgoingCallMessageEvent, listener)](./voice-react-native-sdk.outgoingcallmessage_interface.on_2_methodsignature.md) | Generic event listener typings. |
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.on_1_methodsignature.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.on_1_methodsignature.md
new file mode 100644
index 00000000..1141af1b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.on_1_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_interface.md) > [on](./voice-react-native-sdk.outgoingcallmessage_interface.on_1_methodsignature.md)
+
+## OutgoingCallMessage.on() method
+
+Sent event. Raised when outgoingCallMessage is sent.
+
+Signature:
+
+```typescript
+on(sentEvent: OutgoingCallMessage.Event.Sent, listener: OutgoingCallMessage.Listener.Sent): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| sentEvent | [OutgoingCallMessage.Event.Sent](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) | The raised event string. |
+| listener | [OutgoingCallMessage.Listener.Sent](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.sent_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The callMessage object
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.on_2_methodsignature.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.on_2_methodsignature.md
new file mode 100644
index 00000000..cb59cf65
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.on_2_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_interface.md) > [on](./voice-react-native-sdk.outgoingcallmessage_interface.on_2_methodsignature.md)
+
+## OutgoingCallMessage.on() method
+
+Generic event listener typings.
+
+Signature:
+
+```typescript
+on(outgoingCallMessageEvent: OutgoingCallMessage.Event, listener: OutgoingCallMessage.Listener.Generic): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| outgoingCallMessageEvent | [OutgoingCallMessage.Event](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) | The raised event string. |
+| listener | [OutgoingCallMessage.Listener.Generic](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.generic_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The outgoingCallMessage object.
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.on_methodsignature.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.on_methodsignature.md
new file mode 100644
index 00000000..043c552a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_interface.on_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_interface.md) > [on](./voice-react-native-sdk.outgoingcallmessage_interface.on_methodsignature.md)
+
+## OutgoingCallMessage.on() method
+
+Failure event. Raised when outgoingCallMessage fails to be sent out.
+
+Signature:
+
+```typescript
+on(failureEvent: OutgoingCallMessage.Event.Failure, listener: OutgoingCallMessage.Listener.Failure): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| failureEvent | [OutgoingCallMessage.Event.Failure](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) | The raised event string. |
+| listener | [OutgoingCallMessage.Listener.Failure](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.failure_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The callMessage object.
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md
new file mode 100644
index 00000000..78a92cd3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_namespace.md) > [Event](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md)
+
+## OutgoingCallMessage.Event enum
+
+Enumeration of all event strings emitted by [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_class.md) objects.
+
+Signature:
+
+```typescript
+enum Event
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| Failure | "failure"
| Raised when outgoingCallMessage fails. See [OutgoingCallMessage.addListener()](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_methodsignature.md). |
+| Sent | "sent"
| Raised when outgoingCallMessage has been sent. See [OutgoingCallMessage.addListener()](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_1_methodsignature.md). |
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.failure_typealias.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.failure_typealias.md
new file mode 100644
index 00000000..ecb3025a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.failure_typealias.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_namespace.md) > [Listener](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.md) > [Failure](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.failure_typealias.md)
+
+## OutgoingCallMessage.Listener.Failure type
+
+OutgoingCallMessage failure event listener. This should be the function signature of any event listener bound to the [OutgoingCallMessage.Event.Failure](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Failure = (error: TwilioError) => void;
+```
+
+## Remarks
+
+See [OutgoingCallMessage.addListener()](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_methodsignature.md).
+
+See [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) for all error classes.
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.generic_typealias.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.generic_typealias.md
new file mode 100644
index 00000000..443ca6b5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.generic_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_namespace.md) > [Listener](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.md) > [Generic](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.generic_typealias.md)
+
+## OutgoingCallMessage.Listener.Generic type
+
+Generic event listener. This should be the function signature of any event listener bound to any OutgoingCallMessage event.
+
+Signature:
+
+```typescript
+type Generic = (...args: any[]) => void;
+```
+
+## Remarks
+
+See [OutgoingCallMessage.addListener()](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_2_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.md
new file mode 100644
index 00000000..69eb6b23
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_namespace.md) > [Listener](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.md)
+
+## OutgoingCallMessage.Listener namespace
+
+Listener types for all events emitted by a [OutgoingCallMessage: object](./voice-react-native-sdk.outgoingcallmessage_class.md)
+
+Signature:
+
+```typescript
+namespace Listener
+```
+
+## Type Aliases
+
+| Type Alias | Description |
+| --- | --- |
+| [Failure](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.failure_typealias.md) | OutgoingCallMessage failure event listener. This should be the function signature of any event listener bound to the [OutgoingCallMessage.Event.Failure](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) event. |
+| [Generic](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.generic_typealias.md) | Generic event listener. This should be the function signature of any event listener bound to any OutgoingCallMessage event. |
+| [Sent](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.sent_typealias.md) | OutgoingCallMessage sent event listner. This should be the function signature of any event listener bound to the [OutgoingCallMessage.Event.Sent](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) event. |
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.sent_typealias.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.sent_typealias.md
new file mode 100644
index 00000000..209bf18a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.sent_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_namespace.md) > [Listener](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.md) > [Sent](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.sent_typealias.md)
+
+## OutgoingCallMessage.Listener.Sent type
+
+OutgoingCallMessage sent event listner. This should be the function signature of any event listener bound to the [OutgoingCallMessage.Event.Sent](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Sent = () => void;
+```
+
+## Remarks
+
+See [OutgoingCallMessage.addListener()](./voice-react-native-sdk.outgoingcallmessage_interface.addlistener_1_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.md b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.md
new file mode 100644
index 00000000..6406f2f6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.outgoingcallmessage_namespace.md
@@ -0,0 +1,30 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_namespace.md)
+
+## OutgoingCallMessage namespace
+
+Namespace for enumerations and types used by [OutgoingCallMessage objects](./voice-react-native-sdk.outgoingcallmessage_class.md).
+
+Signature:
+
+```typescript
+export declare namespace OutgoingCallMessage
+```
+
+## Remarks
+
+- See also the [OutgoingCallMessage class](./voice-react-native-sdk.outgoingcallmessage_class.md). - See also the [OutgoingCallMessage interface](./voice-react-native-sdk.outgoingcallmessage_interface.md).
+
+## Enumerations
+
+| Enumeration | Description |
+| --- | --- |
+| [Event](./voice-react-native-sdk.outgoingcallmessage_namespace.event_enum.md) | Enumeration of all event strings emitted by [OutgoingCallMessage](./voice-react-native-sdk.outgoingcallmessage_class.md) objects. |
+
+## Namespaces
+
+| Namespace | Description |
+| --- | --- |
+| [Listener](./voice-react-native-sdk.outgoingcallmessage_namespace.listener_namespace.md) | Listener types for all events emitted by a [OutgoingCallMessage: object](./voice-react-native-sdk.outgoingcallmessage_class.md) |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.codec_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.codec_propertysignature.md
new file mode 100644
index 00000000..8446f6cc
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.codec_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [BaseTrackStats](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md) > [codec](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.codec_propertysignature.md)
+
+## RTCStats.BaseTrackStats.codec property
+
+Signature:
+
+```typescript
+codec: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md
new file mode 100644
index 00000000..d636262d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [BaseTrackStats](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md)
+
+## RTCStats.BaseTrackStats interface
+
+Signature:
+
+```typescript
+interface BaseTrackStats
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [codec](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.codec_propertysignature.md) | string | |
+| [packetsLost](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.packetslost_propertysignature.md) | number | |
+| [ssrc](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.ssrc_propertysignature.md) | string | |
+| [timestamp](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.timestamp_propertysignature.md) | number | |
+| [trackId](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.trackid_propertysignature.md) | string | |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.packetslost_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.packetslost_propertysignature.md
new file mode 100644
index 00000000..bf0bebd3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.packetslost_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [BaseTrackStats](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md) > [packetsLost](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.packetslost_propertysignature.md)
+
+## RTCStats.BaseTrackStats.packetsLost property
+
+Signature:
+
+```typescript
+packetsLost: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.ssrc_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.ssrc_propertysignature.md
new file mode 100644
index 00000000..a7bb4bbd
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.ssrc_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [BaseTrackStats](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md) > [ssrc](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.ssrc_propertysignature.md)
+
+## RTCStats.BaseTrackStats.ssrc property
+
+Signature:
+
+```typescript
+ssrc: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.timestamp_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.timestamp_propertysignature.md
new file mode 100644
index 00000000..e2b66d54
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.timestamp_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [BaseTrackStats](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md) > [timestamp](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.timestamp_propertysignature.md)
+
+## RTCStats.BaseTrackStats.timestamp property
+
+Signature:
+
+```typescript
+timestamp: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.trackid_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.trackid_propertysignature.md
new file mode 100644
index 00000000..9c727b31
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.trackid_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [BaseTrackStats](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md) > [trackId](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.trackid_propertysignature.md)
+
+## RTCStats.BaseTrackStats.trackId property
+
+Signature:
+
+```typescript
+trackId: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstate_enum.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstate_enum.md
new file mode 100644
index 00000000..68b6cf10
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstate_enum.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairState](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstate_enum.md)
+
+## RTCStats.IceCandidatePairState enum
+
+Signature:
+
+```typescript
+enum IceCandidatePairState
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| STATE\_FAILED | "STATE_FAILED"
| |
+| STATE\_FROZEN | "STATE_FROZEN"
| |
+| STATE\_IN\_PROGRESS | "STATE_IN_PROGRESS"
| |
+| STATE\_SUCCEEDED | "STATE_SUCCEEDED"
| |
+| STATE\_WAITING | "STATE_WAITING"
| |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.activecandidatepair_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.activecandidatepair_propertysignature.md
new file mode 100644
index 00000000..9552e86c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.activecandidatepair_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [activeCandidatePair](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.activecandidatepair_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.activeCandidatePair property
+
+Signature:
+
+```typescript
+activeCandidatePair: boolean;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.availableincomingbitrate_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.availableincomingbitrate_propertysignature.md
new file mode 100644
index 00000000..0dee00a5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.availableincomingbitrate_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [availableIncomingBitrate](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.availableincomingbitrate_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.availableIncomingBitrate property
+
+Signature:
+
+```typescript
+availableIncomingBitrate: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.availableoutgoingbitrate_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.availableoutgoingbitrate_propertysignature.md
new file mode 100644
index 00000000..c2f908fb
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.availableoutgoingbitrate_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [availableOutgoingBitrate](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.availableoutgoingbitrate_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.availableOutgoingBitrate property
+
+Signature:
+
+```typescript
+availableOutgoingBitrate: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.bytesreceived_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.bytesreceived_propertysignature.md
new file mode 100644
index 00000000..9c4d3695
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.bytesreceived_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [bytesReceived](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.bytesreceived_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.bytesReceived property
+
+Signature:
+
+```typescript
+bytesReceived: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.bytessent_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.bytessent_propertysignature.md
new file mode 100644
index 00000000..3d438dc2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.bytessent_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [bytesSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.bytessent_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.bytesSent property
+
+Signature:
+
+```typescript
+bytesSent: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentrequestsreceived_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentrequestsreceived_propertysignature.md
new file mode 100644
index 00000000..3f41d0fa
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentrequestsreceived_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [consentRequestsReceived](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentrequestsreceived_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.consentRequestsReceived property
+
+Signature:
+
+```typescript
+consentRequestsReceived: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentrequestssent_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentrequestssent_propertysignature.md
new file mode 100644
index 00000000..0856c657
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentrequestssent_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [consentRequestsSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentrequestssent_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.consentRequestsSent property
+
+Signature:
+
+```typescript
+consentRequestsSent: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentresponsesreceived_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentresponsesreceived_propertysignature.md
new file mode 100644
index 00000000..73dbd572
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentresponsesreceived_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [consentResponsesReceived](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentresponsesreceived_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.consentResponsesReceived property
+
+Signature:
+
+```typescript
+consentResponsesReceived: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentresponsessent_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentresponsessent_propertysignature.md
new file mode 100644
index 00000000..9ccde462
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentresponsessent_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [consentResponsesSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentresponsessent_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.consentResponsesSent property
+
+Signature:
+
+```typescript
+consentResponsesSent: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.currentroundtriptime_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.currentroundtriptime_propertysignature.md
new file mode 100644
index 00000000..8ca995f0
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.currentroundtriptime_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [currentRoundTripTime](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.currentroundtriptime_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.currentRoundTripTime property
+
+Signature:
+
+```typescript
+currentRoundTripTime: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.localcandidateid_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.localcandidateid_propertysignature.md
new file mode 100644
index 00000000..f799c671
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.localcandidateid_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [localCandidateId](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.localcandidateid_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.localCandidateId property
+
+Signature:
+
+```typescript
+localCandidateId: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.localcandidateip_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.localcandidateip_propertysignature.md
new file mode 100644
index 00000000..81180997
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.localcandidateip_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [localCandidateIp](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.localcandidateip_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.localCandidateIp property
+
+Signature:
+
+```typescript
+localCandidateIp: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md
new file mode 100644
index 00000000..f103f1aa
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md
@@ -0,0 +1,45 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md)
+
+## RTCStats.IceCandidatePairStats interface
+
+Signature:
+
+```typescript
+interface IceCandidatePairStats
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [activeCandidatePair](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.activecandidatepair_propertysignature.md) | boolean | |
+| [availableIncomingBitrate](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.availableincomingbitrate_propertysignature.md) | number | |
+| [availableOutgoingBitrate](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.availableoutgoingbitrate_propertysignature.md) | number | |
+| [bytesReceived](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.bytesreceived_propertysignature.md) | number | |
+| [bytesSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.bytessent_propertysignature.md) | number | |
+| [consentRequestsReceived](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentrequestsreceived_propertysignature.md) | number | |
+| [consentRequestsSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentrequestssent_propertysignature.md) | number | |
+| [consentResponsesReceived](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentresponsesreceived_propertysignature.md) | number | |
+| [consentResponsesSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.consentresponsessent_propertysignature.md) | number | |
+| [currentRoundTripTime](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.currentroundtriptime_propertysignature.md) | number | |
+| [localCandidateId](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.localcandidateid_propertysignature.md) | string | |
+| [localCandidateIp](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.localcandidateip_propertysignature.md) | string | |
+| [nominated](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.nominated_propertysignature.md) | boolean | |
+| [priority](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.priority_propertysignature.md) | number | |
+| [readable](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.readable_propertysignature.md) | boolean | |
+| [relayProtocol](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.relayprotocol_propertysignature.md) | string | |
+| [remoteCandidateId](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.remotecandidateid_propertysignature.md) | string | |
+| [remoteCandidateIp](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.remotecandidateip_propertysignature.md) | string | |
+| [requestsReceieved](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.requestsreceieved_propertysignature.md) | number | |
+| [requestsSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.requestssent_propertysignature.md) | number | |
+| [responsesRecieved](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.responsesrecieved_propertysignature.md) | number | |
+| [responsesSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.responsessent_propertysignature.md) | number | |
+| [retransmissionsReceived](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.retransmissionsreceived_propertysignature.md) | number | |
+| [retransmissionsSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.retransmissionssent_propertysignature.md) | number | |
+| [state](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.state_propertysignature.md) | [IceCandidatePairState](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstate_enum.md) | |
+| [totalRoundTripTime](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.totalroundtriptime_propertysignature.md) | number | |
+| [transportId](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.transportid_propertysignature.md) | string | |
+| [writeable](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.writeable_propertysignature.md) | boolean | |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.nominated_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.nominated_propertysignature.md
new file mode 100644
index 00000000..2ce6228c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.nominated_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [nominated](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.nominated_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.nominated property
+
+Signature:
+
+```typescript
+nominated: boolean;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.priority_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.priority_propertysignature.md
new file mode 100644
index 00000000..b767f2e6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.priority_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [priority](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.priority_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.priority property
+
+Signature:
+
+```typescript
+priority: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.readable_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.readable_propertysignature.md
new file mode 100644
index 00000000..d6e57d8c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.readable_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [readable](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.readable_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.readable property
+
+Signature:
+
+```typescript
+readable: boolean;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.relayprotocol_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.relayprotocol_propertysignature.md
new file mode 100644
index 00000000..1df13002
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.relayprotocol_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [relayProtocol](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.relayprotocol_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.relayProtocol property
+
+Signature:
+
+```typescript
+relayProtocol: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.remotecandidateid_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.remotecandidateid_propertysignature.md
new file mode 100644
index 00000000..ca694481
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.remotecandidateid_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [remoteCandidateId](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.remotecandidateid_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.remoteCandidateId property
+
+Signature:
+
+```typescript
+remoteCandidateId: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.remotecandidateip_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.remotecandidateip_propertysignature.md
new file mode 100644
index 00000000..f0f59628
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.remotecandidateip_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [remoteCandidateIp](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.remotecandidateip_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.remoteCandidateIp property
+
+Signature:
+
+```typescript
+remoteCandidateIp: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.requestsreceieved_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.requestsreceieved_propertysignature.md
new file mode 100644
index 00000000..002abec5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.requestsreceieved_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [requestsReceieved](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.requestsreceieved_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.requestsReceieved property
+
+Signature:
+
+```typescript
+requestsReceieved: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.requestssent_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.requestssent_propertysignature.md
new file mode 100644
index 00000000..ebe9ff0c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.requestssent_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [requestsSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.requestssent_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.requestsSent property
+
+Signature:
+
+```typescript
+requestsSent: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.responsesrecieved_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.responsesrecieved_propertysignature.md
new file mode 100644
index 00000000..21f941a5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.responsesrecieved_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [responsesRecieved](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.responsesrecieved_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.responsesRecieved property
+
+Signature:
+
+```typescript
+responsesRecieved: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.responsessent_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.responsessent_propertysignature.md
new file mode 100644
index 00000000..6a4ef33e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.responsessent_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [responsesSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.responsessent_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.responsesSent property
+
+Signature:
+
+```typescript
+responsesSent: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.retransmissionsreceived_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.retransmissionsreceived_propertysignature.md
new file mode 100644
index 00000000..70e874f8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.retransmissionsreceived_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [retransmissionsReceived](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.retransmissionsreceived_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.retransmissionsReceived property
+
+Signature:
+
+```typescript
+retransmissionsReceived: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.retransmissionssent_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.retransmissionssent_propertysignature.md
new file mode 100644
index 00000000..3e02e215
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.retransmissionssent_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [retransmissionsSent](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.retransmissionssent_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.retransmissionsSent property
+
+Signature:
+
+```typescript
+retransmissionsSent: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.state_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.state_propertysignature.md
new file mode 100644
index 00000000..b16b14f5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.state_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [state](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.state_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.state property
+
+Signature:
+
+```typescript
+state: IceCandidatePairState;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.totalroundtriptime_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.totalroundtriptime_propertysignature.md
new file mode 100644
index 00000000..b5cf28f1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.totalroundtriptime_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [totalRoundTripTime](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.totalroundtriptime_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.totalRoundTripTime property
+
+Signature:
+
+```typescript
+totalRoundTripTime: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.transportid_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.transportid_propertysignature.md
new file mode 100644
index 00000000..24e0ae05
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.transportid_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [transportId](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.transportid_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.transportId property
+
+Signature:
+
+```typescript
+transportId: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.writeable_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.writeable_propertysignature.md
new file mode 100644
index 00000000..12e19ea0
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.writeable_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) > [writeable](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.writeable_propertysignature.md)
+
+## RTCStats.IceCandidatePairStats.writeable property
+
+Signature:
+
+```typescript
+writeable: boolean;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.candidatetype_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.candidatetype_propertysignature.md
new file mode 100644
index 00000000..3129aaa1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.candidatetype_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md) > [candidateType](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.candidatetype_propertysignature.md)
+
+## RTCStats.IceCandidateStats.candidateType property
+
+Signature:
+
+```typescript
+candidateType: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.deleted_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.deleted_propertysignature.md
new file mode 100644
index 00000000..23fee440
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.deleted_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md) > [deleted](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.deleted_propertysignature.md)
+
+## RTCStats.IceCandidateStats.deleted property
+
+Signature:
+
+```typescript
+deleted: boolean;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.ip_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.ip_propertysignature.md
new file mode 100644
index 00000000..5fa255da
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.ip_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md) > [ip](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.ip_propertysignature.md)
+
+## RTCStats.IceCandidateStats.ip property
+
+Signature:
+
+```typescript
+ip: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.isremote_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.isremote_propertysignature.md
new file mode 100644
index 00000000..3eb04a57
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.isremote_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md) > [isRemote](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.isremote_propertysignature.md)
+
+## RTCStats.IceCandidateStats.isRemote property
+
+Signature:
+
+```typescript
+isRemote: boolean;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md
new file mode 100644
index 00000000..88563057
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md)
+
+## RTCStats.IceCandidateStats interface
+
+Signature:
+
+```typescript
+interface IceCandidateStats
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [candidateType](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.candidatetype_propertysignature.md) | string | |
+| [deleted](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.deleted_propertysignature.md) | boolean | |
+| [ip](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.ip_propertysignature.md) | string | |
+| [isRemote](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.isremote_propertysignature.md) | boolean | |
+| [port](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.port_propertysignature.md) | number | |
+| [priority](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.priority_propertysignature.md) | number | |
+| [protocol](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.protocol_propertysignature.md) | string | |
+| [transportId](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.transportid_propertysignature.md) | string | |
+| [url](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.url_propertysignature.md) | string | |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.port_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.port_propertysignature.md
new file mode 100644
index 00000000..65ae3175
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.port_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md) > [port](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.port_propertysignature.md)
+
+## RTCStats.IceCandidateStats.port property
+
+Signature:
+
+```typescript
+port: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.priority_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.priority_propertysignature.md
new file mode 100644
index 00000000..2cfd72f8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.priority_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md) > [priority](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.priority_propertysignature.md)
+
+## RTCStats.IceCandidateStats.priority property
+
+Signature:
+
+```typescript
+priority: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.protocol_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.protocol_propertysignature.md
new file mode 100644
index 00000000..666d85c2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.protocol_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md) > [protocol](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.protocol_propertysignature.md)
+
+## RTCStats.IceCandidateStats.protocol property
+
+Signature:
+
+```typescript
+protocol: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.transportid_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.transportid_propertysignature.md
new file mode 100644
index 00000000..901db250
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.transportid_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md) > [transportId](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.transportid_propertysignature.md)
+
+## RTCStats.IceCandidateStats.transportId property
+
+Signature:
+
+```typescript
+transportId: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.url_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.url_propertysignature.md
new file mode 100644
index 00000000..e1a22bdc
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.url_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md) > [url](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.url_propertysignature.md)
+
+## RTCStats.IceCandidateStats.url property
+
+Signature:
+
+```typescript
+url: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.audiolevel_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.audiolevel_propertysignature.md
new file mode 100644
index 00000000..bbc4fa9c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.audiolevel_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [LocalAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.md) > [audioLevel](./voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.audiolevel_propertysignature.md)
+
+## RTCStats.LocalAudioTrackStats.audioLevel property
+
+Signature:
+
+```typescript
+audioLevel: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.jitter_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.jitter_propertysignature.md
new file mode 100644
index 00000000..a486d46a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.jitter_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [LocalAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.md) > [jitter](./voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.jitter_propertysignature.md)
+
+## RTCStats.LocalAudioTrackStats.jitter property
+
+Signature:
+
+```typescript
+jitter: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.md
new file mode 100644
index 00000000..2df8553d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [LocalAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.md)
+
+## RTCStats.LocalAudioTrackStats interface
+
+Signature:
+
+```typescript
+interface LocalAudioTrackStats extends LocalTrackStats
+```
+Extends: [LocalTrackStats](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.md)
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [audioLevel](./voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.audiolevel_propertysignature.md) | number | |
+| [jitter](./voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.jitter_propertysignature.md) | number | |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.bytessent_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.bytessent_propertysignature.md
new file mode 100644
index 00000000..14daccfa
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.bytessent_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [LocalTrackStats](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.md) > [bytesSent](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.bytessent_propertysignature.md)
+
+## RTCStats.LocalTrackStats.bytesSent property
+
+Signature:
+
+```typescript
+bytesSent: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.md
new file mode 100644
index 00000000..efee41ee
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [LocalTrackStats](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.md)
+
+## RTCStats.LocalTrackStats interface
+
+Signature:
+
+```typescript
+interface LocalTrackStats extends BaseTrackStats
+```
+Extends: [BaseTrackStats](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md)
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [bytesSent](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.bytessent_propertysignature.md) | number | |
+| [packetsSent](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.packetssent_propertysignature.md) | number | |
+| [roundTripTime](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.roundtriptime_propertysignature.md) | number | |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.packetssent_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.packetssent_propertysignature.md
new file mode 100644
index 00000000..ad88f823
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.packetssent_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [LocalTrackStats](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.md) > [packetsSent](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.packetssent_propertysignature.md)
+
+## RTCStats.LocalTrackStats.packetsSent property
+
+Signature:
+
+```typescript
+packetsSent: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.roundtriptime_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.roundtriptime_propertysignature.md
new file mode 100644
index 00000000..72b3fd4c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.roundtriptime_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [LocalTrackStats](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.md) > [roundTripTime](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.roundtriptime_propertysignature.md)
+
+## RTCStats.LocalTrackStats.roundTripTime property
+
+Signature:
+
+```typescript
+roundTripTime: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.md
new file mode 100644
index 00000000..e3cdb417
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.md
@@ -0,0 +1,33 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md)
+
+## RTCStats namespace
+
+Types related to WebRTC stats.
+
+Signature:
+
+```typescript
+export declare namespace RTCStats
+```
+
+## Enumerations
+
+| Enumeration | Description |
+| --- | --- |
+| [IceCandidatePairState](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstate_enum.md) | |
+
+## Interfaces
+
+| Interface | Description |
+| --- | --- |
+| [BaseTrackStats](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md) | |
+| [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md) | |
+| [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md) | |
+| [LocalAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.md) | |
+| [LocalTrackStats](./voice-react-native-sdk.rtcstats_namespace.localtrackstats_interface.md) | |
+| [RemoteAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.md) | |
+| [RemoteTrackStats](./voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.md) | |
+| [StatsReport](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md) | WebRTC stats report. Contains diagnostics information about RTCPeerConnection
s and summarizes data for an ongoing call. |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.audiolevel_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.audiolevel_propertysignature.md
new file mode 100644
index 00000000..5226f28f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.audiolevel_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [RemoteAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.md) > [audioLevel](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.audiolevel_propertysignature.md)
+
+## RTCStats.RemoteAudioTrackStats.audioLevel property
+
+Signature:
+
+```typescript
+audioLevel: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.jitter_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.jitter_propertysignature.md
new file mode 100644
index 00000000..49b3bc54
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.jitter_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [RemoteAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.md) > [jitter](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.jitter_propertysignature.md)
+
+## RTCStats.RemoteAudioTrackStats.jitter property
+
+Signature:
+
+```typescript
+jitter: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.md
new file mode 100644
index 00000000..ea3c773a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [RemoteAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.md)
+
+## RTCStats.RemoteAudioTrackStats interface
+
+Signature:
+
+```typescript
+interface RemoteAudioTrackStats extends RemoteTrackStats
+```
+Extends: [RemoteTrackStats](./voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.md)
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [audioLevel](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.audiolevel_propertysignature.md) | number | |
+| [jitter](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.jitter_propertysignature.md) | number | |
+| [mos](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.mos_propertysignature.md) | number | |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.mos_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.mos_propertysignature.md
new file mode 100644
index 00000000..74428a8a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.mos_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [RemoteAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.md) > [mos](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.mos_propertysignature.md)
+
+## RTCStats.RemoteAudioTrackStats.mos property
+
+Signature:
+
+```typescript
+mos: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.bytesrecieved_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.bytesrecieved_propertysignature.md
new file mode 100644
index 00000000..8693028d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.bytesrecieved_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [RemoteTrackStats](./voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.md) > [bytesRecieved](./voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.bytesrecieved_propertysignature.md)
+
+## RTCStats.RemoteTrackStats.bytesRecieved property
+
+Signature:
+
+```typescript
+bytesRecieved: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.md
new file mode 100644
index 00000000..223176e4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [RemoteTrackStats](./voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.md)
+
+## RTCStats.RemoteTrackStats interface
+
+Signature:
+
+```typescript
+interface RemoteTrackStats extends BaseTrackStats
+```
+Extends: [BaseTrackStats](./voice-react-native-sdk.rtcstats_namespace.basetrackstats_interface.md)
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [bytesRecieved](./voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.bytesrecieved_propertysignature.md) | number | |
+| [packetsReceived](./voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.packetsreceived_propertysignature.md) | number | |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.packetsreceived_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.packetsreceived_propertysignature.md
new file mode 100644
index 00000000..1348838c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.packetsreceived_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [RemoteTrackStats](./voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.md) > [packetsReceived](./voice-react-native-sdk.rtcstats_namespace.remotetrackstats_interface.packetsreceived_propertysignature.md)
+
+## RTCStats.RemoteTrackStats.packetsReceived property
+
+Signature:
+
+```typescript
+packetsReceived: number;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.icecandidatepairstats_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.icecandidatepairstats_propertysignature.md
new file mode 100644
index 00000000..e63ce919
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.icecandidatepairstats_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [StatsReport](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md) > [iceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.icecandidatepairstats_propertysignature.md)
+
+## RTCStats.StatsReport.iceCandidatePairStats property
+
+Signature:
+
+```typescript
+iceCandidatePairStats: IceCandidatePairStats[];
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.icecandidatestats_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.icecandidatestats_propertysignature.md
new file mode 100644
index 00000000..dfa3ce06
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.icecandidatestats_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [StatsReport](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md) > [iceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.icecandidatestats_propertysignature.md)
+
+## RTCStats.StatsReport.iceCandidateStats property
+
+Signature:
+
+```typescript
+iceCandidateStats: IceCandidateStats[];
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.localaudiotrackstats_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.localaudiotrackstats_propertysignature.md
new file mode 100644
index 00000000..41a7307b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.localaudiotrackstats_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [StatsReport](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md) > [localAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.localaudiotrackstats_propertysignature.md)
+
+## RTCStats.StatsReport.localAudioTrackStats property
+
+Signature:
+
+```typescript
+localAudioTrackStats: LocalAudioTrackStats[];
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md
new file mode 100644
index 00000000..f0fe5034
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [StatsReport](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md)
+
+## RTCStats.StatsReport interface
+
+WebRTC stats report. Contains diagnostics information about `RTCPeerConnection`s and summarizes data for an ongoing call.
+
+Signature:
+
+```typescript
+interface StatsReport
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [iceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.icecandidatepairstats_propertysignature.md) | [IceCandidatePairStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatepairstats_interface.md)\[\] | |
+| [iceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.icecandidatestats_propertysignature.md) | [IceCandidateStats](./voice-react-native-sdk.rtcstats_namespace.icecandidatestats_interface.md)\[\] | |
+| [localAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.localaudiotrackstats_propertysignature.md) | [LocalAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.localaudiotrackstats_interface.md)\[\] | |
+| [peerConnectionId](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.peerconnectionid_propertysignature.md) | string | |
+| [remoteAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.remoteaudiotrackstats_propertysignature.md) | [RemoteAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.remoteaudiotrackstats_interface.md)\[\] | |
+
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.peerconnectionid_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.peerconnectionid_propertysignature.md
new file mode 100644
index 00000000..845a91cd
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.peerconnectionid_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [StatsReport](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md) > [peerConnectionId](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.peerconnectionid_propertysignature.md)
+
+## RTCStats.StatsReport.peerConnectionId property
+
+Signature:
+
+```typescript
+peerConnectionId: string;
+```
diff --git a/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.remoteaudiotrackstats_propertysignature.md b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.remoteaudiotrackstats_propertysignature.md
new file mode 100644
index 00000000..70a107a1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.rtcstats_namespace.statsreport_interface.remoteaudiotrackstats_propertysignature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [RTCStats](./voice-react-native-sdk.rtcstats_namespace.md) > [StatsReport](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.md) > [remoteAudioTrackStats](./voice-react-native-sdk.rtcstats_namespace.statsreport_interface.remoteaudiotrackstats_propertysignature.md)
+
+## RTCStats.StatsReport.remoteAudioTrackStats property
+
+Signature:
+
+```typescript
+remoteAudioTrackStats: RemoteAudioTrackStats[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class._constructor__constructor.md
new file mode 100644
index 00000000..cd00b458
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenExpired](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenExpired.(constructor)
+
+Constructs a new instance of the `AccessTokenExpired` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.causes_property.md
new file mode 100644
index 00000000..9dea2ee2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenExpired](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenExpired.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.description_property.md
new file mode 100644
index 00000000..75e8b92c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenExpired](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenExpired.description property
+
+Access token expired or expiration date invalid
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.explanation_property.md
new file mode 100644
index 00000000..cadb60c0
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenExpired](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenExpired.explanation property
+
+The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md
new file mode 100644
index 00000000..ed20fc02
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenExpired](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenExpired class
+
+AuthorizationErrors.AccessTokenExpired error. Error code `20104`.
+
+Signature:
+
+```typescript
+class AccessTokenExpired extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class._constructor__constructor.md) | | Constructs a new instance of the AccessTokenExpired
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.description_property.md) | | string | Access token expired or expiration date invalid |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.explanation_property.md) | | string | The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.name_property.md) | | string | AccessTokenExpired |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.name_property.md
new file mode 100644
index 00000000..ac90cc21
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenExpired](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenExpired.name property
+
+AccessTokenExpired
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.solutions_property.md
new file mode 100644
index 00000000..3875634c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenExpired](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenExpired.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class._constructor__constructor.md
new file mode 100644
index 00000000..65a68b12
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenGrantsInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenGrantsInvalid.(constructor)
+
+Constructs a new instance of the `AccessTokenGrantsInvalid` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.causes_property.md
new file mode 100644
index 00000000..36fcc8fd
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenGrantsInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenGrantsInvalid.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.description_property.md
new file mode 100644
index 00000000..03c7f190
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenGrantsInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenGrantsInvalid.description property
+
+Invalid access token grants
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.explanation_property.md
new file mode 100644
index 00000000..6b70dba7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenGrantsInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenGrantsInvalid.explanation property
+
+The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md
new file mode 100644
index 00000000..68efb8b3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenGrantsInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenGrantsInvalid class
+
+AuthorizationErrors.AccessTokenGrantsInvalid error. Error code `20106`.
+
+Signature:
+
+```typescript
+class AccessTokenGrantsInvalid extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class._constructor__constructor.md) | | Constructs a new instance of the AccessTokenGrantsInvalid
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.description_property.md) | | string | Invalid access token grants |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.explanation_property.md) | | string | The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.name_property.md) | | string | AccessTokenGrantsInvalid |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.name_property.md
new file mode 100644
index 00000000..0ffee3c4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenGrantsInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenGrantsInvalid.name property
+
+AccessTokenGrantsInvalid
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.solutions_property.md
new file mode 100644
index 00000000..ab74cdd3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenGrantsInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenGrantsInvalid.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class._constructor__constructor.md
new file mode 100644
index 00000000..aa52087a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenHeaderInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenHeaderInvalid.(constructor)
+
+Constructs a new instance of the `AccessTokenHeaderInvalid` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.causes_property.md
new file mode 100644
index 00000000..9611ebd6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenHeaderInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenHeaderInvalid.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.description_property.md
new file mode 100644
index 00000000..77840a6e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenHeaderInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenHeaderInvalid.description property
+
+Invalid access token header
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.explanation_property.md
new file mode 100644
index 00000000..4720b2c5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenHeaderInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenHeaderInvalid.explanation property
+
+The header of the Access Token provided to the Twilio API was invalid
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md
new file mode 100644
index 00000000..53246ddb
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenHeaderInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenHeaderInvalid class
+
+AuthorizationErrors.AccessTokenHeaderInvalid error. Error code `20102`.
+
+Signature:
+
+```typescript
+class AccessTokenHeaderInvalid extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class._constructor__constructor.md) | | Constructs a new instance of the AccessTokenHeaderInvalid
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.description_property.md) | | string | Invalid access token header |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.explanation_property.md) | | string | The header of the Access Token provided to the Twilio API was invalid |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.name_property.md) | | string | AccessTokenHeaderInvalid |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.name_property.md
new file mode 100644
index 00000000..425f1f6d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenHeaderInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenHeaderInvalid.name property
+
+AccessTokenHeaderInvalid
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.solutions_property.md
new file mode 100644
index 00000000..669e63be
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenHeaderInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenHeaderInvalid.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class._constructor__constructor.md
new file mode 100644
index 00000000..6488e0d8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenInvalid.(constructor)
+
+Constructs a new instance of the `AccessTokenInvalid` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.causes_property.md
new file mode 100644
index 00000000..dff448c6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenInvalid.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.description_property.md
new file mode 100644
index 00000000..e295be72
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenInvalid.description property
+
+Invalid access token
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.explanation_property.md
new file mode 100644
index 00000000..ae2f1c65
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenInvalid.explanation property
+
+Twilio was unable to validate your Access Token
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md
new file mode 100644
index 00000000..26ffbdee
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenInvalid class
+
+AuthorizationErrors.AccessTokenInvalid error. Error code `20101`.
+
+Signature:
+
+```typescript
+class AccessTokenInvalid extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class._constructor__constructor.md) | | Constructs a new instance of the AccessTokenInvalid
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.description_property.md) | | string | Invalid access token |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.explanation_property.md) | | string | Twilio was unable to validate your Access Token |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.name_property.md) | | string | AccessTokenInvalid |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.name_property.md
new file mode 100644
index 00000000..a705644c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenInvalid.name property
+
+AccessTokenInvalid
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.solutions_property.md
new file mode 100644
index 00000000..2a273cbd
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenInvalid.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class._constructor__constructor.md
new file mode 100644
index 00000000..2013e8e9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenIssuerInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenIssuerInvalid.(constructor)
+
+Constructs a new instance of the `AccessTokenIssuerInvalid` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.causes_property.md
new file mode 100644
index 00000000..1529a5b7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenIssuerInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenIssuerInvalid.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.description_property.md
new file mode 100644
index 00000000..09196070
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenIssuerInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenIssuerInvalid.description property
+
+Invalid access token issuer/subject
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.explanation_property.md
new file mode 100644
index 00000000..219a6733
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenIssuerInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenIssuerInvalid.explanation property
+
+The issuer or subject of the Access Token provided to the Twilio API was invalid
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md
new file mode 100644
index 00000000..ceb23213
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenIssuerInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenIssuerInvalid class
+
+AuthorizationErrors.AccessTokenIssuerInvalid error. Error code `20103`.
+
+Signature:
+
+```typescript
+class AccessTokenIssuerInvalid extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class._constructor__constructor.md) | | Constructs a new instance of the AccessTokenIssuerInvalid
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.description_property.md) | | string | Invalid access token issuer/subject |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.explanation_property.md) | | string | The issuer or subject of the Access Token provided to the Twilio API was invalid |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.name_property.md) | | string | AccessTokenIssuerInvalid |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.name_property.md
new file mode 100644
index 00000000..45dcaeb2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenIssuerInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenIssuerInvalid.name property
+
+AccessTokenIssuerInvalid
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.solutions_property.md
new file mode 100644
index 00000000..e266d69b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenIssuerInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenIssuerInvalid.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class._constructor__constructor.md
new file mode 100644
index 00000000..169ba243
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenNotYetValid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenNotYetValid.(constructor)
+
+Constructs a new instance of the `AccessTokenNotYetValid` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.causes_property.md
new file mode 100644
index 00000000..a0de48b9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenNotYetValid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenNotYetValid.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.description_property.md
new file mode 100644
index 00000000..7403df1e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenNotYetValid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenNotYetValid.description property
+
+Access token not yet valid
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.explanation_property.md
new file mode 100644
index 00000000..29e05f0c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenNotYetValid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenNotYetValid.explanation property
+
+The Access Token provided to the Twilio API is not yet valid
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md
new file mode 100644
index 00000000..66a6b669
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenNotYetValid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenNotYetValid class
+
+AuthorizationErrors.AccessTokenNotYetValid error. Error code `20105`.
+
+Signature:
+
+```typescript
+class AccessTokenNotYetValid extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class._constructor__constructor.md) | | Constructs a new instance of the AccessTokenNotYetValid
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.description_property.md) | | string | Access token not yet valid |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.explanation_property.md) | | string | The Access Token provided to the Twilio API is not yet valid |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.name_property.md) | | string | AccessTokenNotYetValid |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.name_property.md
new file mode 100644
index 00000000..bfcc0918
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenNotYetValid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenNotYetValid.name property
+
+AccessTokenNotYetValid
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.solutions_property.md
new file mode 100644
index 00000000..198da9ae
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenNotYetValid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenNotYetValid.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class._constructor__constructor.md
new file mode 100644
index 00000000..56b11f9a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenRejected](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenRejected.(constructor)
+
+Constructs a new instance of the `AccessTokenRejected` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.causes_property.md
new file mode 100644
index 00000000..07b7b805
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenRejected](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenRejected.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.description_property.md
new file mode 100644
index 00000000..635fa9eb
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenRejected](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenRejected.description property
+
+Token authentication is rejected by authentication service
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.explanation_property.md
new file mode 100644
index 00000000..3fddb6db
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenRejected](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenRejected.explanation property
+
+The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio's specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md
new file mode 100644
index 00000000..5910929d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenRejected](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenRejected class
+
+AuthorizationErrors.AccessTokenRejected error. Error code `51007`.
+
+Signature:
+
+```typescript
+class AccessTokenRejected extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class._constructor__constructor.md) | | Constructs a new instance of the AccessTokenRejected
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.description_property.md) | | string | Token authentication is rejected by authentication service |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.explanation_property.md) | | string | The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio's specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.name_property.md) | | string | AccessTokenRejected |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.name_property.md
new file mode 100644
index 00000000..ba36de9c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenRejected](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenRejected.name property
+
+AccessTokenRejected
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.solutions_property.md
new file mode 100644
index 00000000..46cdb6ca
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenRejected](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenRejected.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class._constructor__constructor.md
new file mode 100644
index 00000000..0655e113
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenSignatureInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenSignatureInvalid.(constructor)
+
+Constructs a new instance of the `AccessTokenSignatureInvalid` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.causes_property.md
new file mode 100644
index 00000000..73a8c97d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenSignatureInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenSignatureInvalid.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.description_property.md
new file mode 100644
index 00000000..8d7fc613
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenSignatureInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenSignatureInvalid.description property
+
+Invalid access token signature
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.explanation_property.md
new file mode 100644
index 00000000..4f483a28
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenSignatureInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenSignatureInvalid.explanation property
+
+The signature for the Access Token provided was invalid.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md
new file mode 100644
index 00000000..709881f2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenSignatureInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenSignatureInvalid class
+
+AuthorizationErrors.AccessTokenSignatureInvalid error. Error code `20107`.
+
+Signature:
+
+```typescript
+class AccessTokenSignatureInvalid extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class._constructor__constructor.md) | | Constructs a new instance of the AccessTokenSignatureInvalid
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.description_property.md) | | string | Invalid access token signature |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.explanation_property.md) | | string | The signature for the Access Token provided was invalid. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.name_property.md) | | string | AccessTokenSignatureInvalid |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.name_property.md
new file mode 100644
index 00000000..3245f048
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenSignatureInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenSignatureInvalid.name property
+
+AccessTokenSignatureInvalid
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.solutions_property.md
new file mode 100644
index 00000000..c2b594ee
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AccessTokenSignatureInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.AccessTokenSignatureInvalid.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class._constructor__constructor.md
new file mode 100644
index 00000000..5b36c029
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthenticationFailed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.AuthenticationFailed.(constructor)
+
+Constructs a new instance of the `AuthenticationFailed` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.causes_property.md
new file mode 100644
index 00000000..41d540ff
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthenticationFailed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.AuthenticationFailed.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.description_property.md
new file mode 100644
index 00000000..dc2cf019
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthenticationFailed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.AuthenticationFailed.description property
+
+Authentication Failed
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.explanation_property.md
new file mode 100644
index 00000000..634913b6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthenticationFailed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.AuthenticationFailed.explanation property
+
+The Authentication with the provided JWT failed
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md
new file mode 100644
index 00000000..dcd1f7ef
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthenticationFailed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md)
+
+## TwilioErrors.AuthorizationErrors.AuthenticationFailed class
+
+AuthorizationErrors.AuthenticationFailed error. Error code `20151`.
+
+Signature:
+
+```typescript
+class AuthenticationFailed extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class._constructor__constructor.md) | | Constructs a new instance of the AuthenticationFailed
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.description_property.md) | | string | Authentication Failed |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.explanation_property.md) | | string | The Authentication with the provided JWT failed |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.name_property.md) | | string | AuthenticationFailed |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.name_property.md
new file mode 100644
index 00000000..53e8cbfe
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthenticationFailed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.AuthenticationFailed.name property
+
+AuthenticationFailed
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.solutions_property.md
new file mode 100644
index 00000000..e7550eb9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthenticationFailed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.AuthenticationFailed.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class._constructor__constructor.md
new file mode 100644
index 00000000..4210bacc
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthorizationError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.AuthorizationError.(constructor)
+
+Constructs a new instance of the `AuthorizationError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.causes_property.md
new file mode 100644
index 00000000..1ed34c15
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthorizationError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.AuthorizationError.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.description_property.md
new file mode 100644
index 00000000..d94c4d38
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthorizationError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.AuthorizationError.description property
+
+Authorization error
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.explanation_property.md
new file mode 100644
index 00000000..654b91d2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthorizationError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.AuthorizationError.explanation property
+
+The request requires user authentication. The server understood the request, but is refusing to fulfill it.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md
new file mode 100644
index 00000000..a049a5c1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthorizationError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md)
+
+## TwilioErrors.AuthorizationErrors.AuthorizationError class
+
+AuthorizationErrors.AuthorizationError error. Error code `31201`.
+
+Signature:
+
+```typescript
+class AuthorizationError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class._constructor__constructor.md) | | Constructs a new instance of the AuthorizationError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.description_property.md) | | string | Authorization error |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.explanation_property.md) | | string | The request requires user authentication. The server understood the request, but is refusing to fulfill it. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.name_property.md) | | string | AuthorizationError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.name_property.md
new file mode 100644
index 00000000..18e3026c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthorizationError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.AuthorizationError.name property
+
+AuthorizationError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.solutions_property.md
new file mode 100644
index 00000000..ee1eb488
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [AuthorizationError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.AuthorizationError.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class._constructor__constructor.md
new file mode 100644
index 00000000..378a2b72
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageEventTypeInvalidError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageEventTypeInvalidError.(constructor)
+
+Constructs a new instance of the `CallMessageEventTypeInvalidError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.causes_property.md
new file mode 100644
index 00000000..9993af18
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageEventTypeInvalidError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageEventTypeInvalidError.causes property
+
+The Call Message Event Type is invalid and is not understood by Twilio Voice.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.description_property.md
new file mode 100644
index 00000000..c4001e2c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageEventTypeInvalidError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageEventTypeInvalidError.description property
+
+Call Message Event Type is invalid.
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.explanation_property.md
new file mode 100644
index 00000000..447f9565
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageEventTypeInvalidError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageEventTypeInvalidError.explanation property
+
+The Call Message Event Type is invalid and is not understood by Twilio Voice.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md
new file mode 100644
index 00000000..bb8381bf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageEventTypeInvalidError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageEventTypeInvalidError class
+
+AuthorizationErrors.CallMessageEventTypeInvalidError error. Error code `31210`.
+
+Signature:
+
+```typescript
+class CallMessageEventTypeInvalidError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class._constructor__constructor.md) | | Constructs a new instance of the CallMessageEventTypeInvalidError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.causes_property.md) | | string\[\] | The Call Message Event Type is invalid and is not understood by Twilio Voice. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.description_property.md) | | string | Call Message Event Type is invalid. |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.explanation_property.md) | | string | The Call Message Event Type is invalid and is not understood by Twilio Voice. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.name_property.md) | | string | CallMessageEventTypeInvalidError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.solutions_property.md) | | string\[\] | Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.name_property.md
new file mode 100644
index 00000000..10d6397a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageEventTypeInvalidError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageEventTypeInvalidError.name property
+
+CallMessageEventTypeInvalidError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.solutions_property.md
new file mode 100644
index 00000000..7c49395e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageEventTypeInvalidError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageEventTypeInvalidError.solutions property
+
+Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class._constructor__constructor.md
new file mode 100644
index 00000000..727afd9a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageUnexpectedStateError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageUnexpectedStateError.(constructor)
+
+Constructs a new instance of the `CallMessageUnexpectedStateError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.causes_property.md
new file mode 100644
index 00000000..a9da7b55
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageUnexpectedStateError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageUnexpectedStateError.causes property
+
+The Call should be at least in the ringing state to subscribe and send Call Message.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.description_property.md
new file mode 100644
index 00000000..3062e9b4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageUnexpectedStateError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageUnexpectedStateError.description property
+
+Call is not in the expected state.
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.explanation_property.md
new file mode 100644
index 00000000..d4116c19
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageUnexpectedStateError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageUnexpectedStateError.explanation property
+
+The Call should be at least in the ringing state to send Call Message.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md
new file mode 100644
index 00000000..2f5f0613
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageUnexpectedStateError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageUnexpectedStateError class
+
+AuthorizationErrors.CallMessageUnexpectedStateError error. Error code `31211`.
+
+Signature:
+
+```typescript
+class CallMessageUnexpectedStateError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class._constructor__constructor.md) | | Constructs a new instance of the CallMessageUnexpectedStateError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.causes_property.md) | | string\[\] | The Call should be at least in the ringing state to subscribe and send Call Message. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.description_property.md) | | string | Call is not in the expected state. |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.explanation_property.md) | | string | The Call should be at least in the ringing state to send Call Message. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.name_property.md) | | string | CallMessageUnexpectedStateError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.solutions_property.md) | | string\[\] | Ensure the Call is at least in the ringing state and the subscription is successful and try again. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.name_property.md
new file mode 100644
index 00000000..9e3b7c1c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageUnexpectedStateError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageUnexpectedStateError.name property
+
+CallMessageUnexpectedStateError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.solutions_property.md
new file mode 100644
index 00000000..42da75c6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [CallMessageUnexpectedStateError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.CallMessageUnexpectedStateError.solutions property
+
+Ensure the Call is at least in the ringing state and the subscription is successful and try again.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class._constructor__constructor.md
new file mode 100644
index 00000000..6bea2012
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [ExpirationTimeExceedsMaxTimeAllowed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed.(constructor)
+
+Constructs a new instance of the `ExpirationTimeExceedsMaxTimeAllowed` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.causes_property.md
new file mode 100644
index 00000000..0db24428
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [ExpirationTimeExceedsMaxTimeAllowed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.description_property.md
new file mode 100644
index 00000000..382bfc83
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [ExpirationTimeExceedsMaxTimeAllowed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed.description property
+
+Expiration Time Exceeds Maximum Time Allowed
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.explanation_property.md
new file mode 100644
index 00000000..de426036
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [ExpirationTimeExceedsMaxTimeAllowed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed.explanation property
+
+The expiration time provided when creating the JWT exceeds the maximum duration allowed
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md
new file mode 100644
index 00000000..4d87afaf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [ExpirationTimeExceedsMaxTimeAllowed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md)
+
+## TwilioErrors.AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed class
+
+AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed error. Error code `20157`.
+
+Signature:
+
+```typescript
+class ExpirationTimeExceedsMaxTimeAllowed extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class._constructor__constructor.md) | | Constructs a new instance of the ExpirationTimeExceedsMaxTimeAllowed
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.description_property.md) | | string | Expiration Time Exceeds Maximum Time Allowed |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.explanation_property.md) | | string | The expiration time provided when creating the JWT exceeds the maximum duration allowed |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.name_property.md) | | string | ExpirationTimeExceedsMaxTimeAllowed |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.name_property.md
new file mode 100644
index 00000000..804963ba
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [ExpirationTimeExceedsMaxTimeAllowed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed.name property
+
+ExpirationTimeExceedsMaxTimeAllowed
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.solutions_property.md
new file mode 100644
index 00000000..5283ff50
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [ExpirationTimeExceedsMaxTimeAllowed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md
new file mode 100644
index 00000000..d59b47fa
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md
@@ -0,0 +1,34 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md)
+
+## TwilioErrors.AuthorizationErrors namespace
+
+Authorization errors.
+
+Signature:
+
+```typescript
+export declare namespace AuthorizationErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [AccessTokenExpired](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenexpired_class.md) | AuthorizationErrors.AccessTokenExpired error. Error code 20104
. |
+| [AccessTokenGrantsInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokengrantsinvalid_class.md) | AuthorizationErrors.AccessTokenGrantsInvalid error. Error code 20106
. |
+| [AccessTokenHeaderInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenheaderinvalid_class.md) | AuthorizationErrors.AccessTokenHeaderInvalid error. Error code 20102
. |
+| [AccessTokenInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokeninvalid_class.md) | AuthorizationErrors.AccessTokenInvalid error. Error code 20101
. |
+| [AccessTokenIssuerInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenissuerinvalid_class.md) | AuthorizationErrors.AccessTokenIssuerInvalid error. Error code 20103
. |
+| [AccessTokenNotYetValid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokennotyetvalid_class.md) | AuthorizationErrors.AccessTokenNotYetValid error. Error code 20105
. |
+| [AccessTokenRejected](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokenrejected_class.md) | AuthorizationErrors.AccessTokenRejected error. Error code 51007
. |
+| [AccessTokenSignatureInvalid](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.accesstokensignatureinvalid_class.md) | AuthorizationErrors.AccessTokenSignatureInvalid error. Error code 20107
. |
+| [AuthenticationFailed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authenticationfailed_class.md) | AuthorizationErrors.AuthenticationFailed error. Error code 20151
. |
+| [AuthorizationError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.authorizationerror_class.md) | AuthorizationErrors.AuthorizationError error. Error code 31201
. |
+| [CallMessageEventTypeInvalidError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageeventtypeinvaliderror_class.md) | AuthorizationErrors.CallMessageEventTypeInvalidError error. Error code 31210
. |
+| [CallMessageUnexpectedStateError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.callmessageunexpectedstateerror_class.md) | AuthorizationErrors.CallMessageUnexpectedStateError error. Error code 31211
. |
+| [ExpirationTimeExceedsMaxTimeAllowed](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.expirationtimeexceedsmaxtimeallowed_class.md) | AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed error. Error code 20157
. |
+| [PayloadSizeExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md) | AuthorizationErrors.PayloadSizeExceededError error. Error code 31212
. |
+| [RateExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md) | AuthorizationErrors.RateExceededError error. Error code 31206
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class._constructor__constructor.md
new file mode 100644
index 00000000..89df0035
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [PayloadSizeExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.PayloadSizeExceededError.(constructor)
+
+Constructs a new instance of the `PayloadSizeExceededError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.causes_property.md
new file mode 100644
index 00000000..ada524a8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [PayloadSizeExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.PayloadSizeExceededError.causes property
+
+The payload size of Call Message Event exceeds the authorized limit.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.description_property.md
new file mode 100644
index 00000000..61334ecd
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [PayloadSizeExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.PayloadSizeExceededError.description property
+
+Call Message Event Payload size exceeded authorized limit.
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.explanation_property.md
new file mode 100644
index 00000000..aa5710f1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [PayloadSizeExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.PayloadSizeExceededError.explanation property
+
+The request performed to send a Call Message Event exceeds the payload size authorized limit
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md
new file mode 100644
index 00000000..daff8a45
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [PayloadSizeExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md)
+
+## TwilioErrors.AuthorizationErrors.PayloadSizeExceededError class
+
+AuthorizationErrors.PayloadSizeExceededError error. Error code `31212`.
+
+Signature:
+
+```typescript
+class PayloadSizeExceededError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class._constructor__constructor.md) | | Constructs a new instance of the PayloadSizeExceededError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.causes_property.md) | | string\[\] | The payload size of Call Message Event exceeds the authorized limit. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.description_property.md) | | string | Call Message Event Payload size exceeded authorized limit. |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.explanation_property.md) | | string | The request performed to send a Call Message Event exceeds the payload size authorized limit |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.name_property.md) | | string | PayloadSizeExceededError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.solutions_property.md) | | string\[\] | Reduce payload size of Call Message Event to be within the authorized limit and try again. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.name_property.md
new file mode 100644
index 00000000..15bcb11e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [PayloadSizeExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.PayloadSizeExceededError.name property
+
+PayloadSizeExceededError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.solutions_property.md
new file mode 100644
index 00000000..90a45d20
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [PayloadSizeExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.payloadsizeexceedederror_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.PayloadSizeExceededError.solutions property
+
+Reduce payload size of Call Message Event to be within the authorized limit and try again.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class._constructor__constructor.md
new file mode 100644
index 00000000..4ebca0a7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [RateExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class._constructor__constructor.md)
+
+## TwilioErrors.AuthorizationErrors.RateExceededError.(constructor)
+
+Constructs a new instance of the `RateExceededError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.causes_property.md
new file mode 100644
index 00000000..e47b1afa
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [RateExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.causes_property.md)
+
+## TwilioErrors.AuthorizationErrors.RateExceededError.causes property
+
+Rate limit exceeded.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.description_property.md
new file mode 100644
index 00000000..d7546d9d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [RateExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.description_property.md)
+
+## TwilioErrors.AuthorizationErrors.RateExceededError.description property
+
+Rate exceeded authorized limit.
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.explanation_property.md
new file mode 100644
index 00000000..330f62d2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [RateExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.explanation_property.md)
+
+## TwilioErrors.AuthorizationErrors.RateExceededError.explanation property
+
+The request performed exceeds the authorized limit.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md
new file mode 100644
index 00000000..2697195b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [RateExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md)
+
+## TwilioErrors.AuthorizationErrors.RateExceededError class
+
+AuthorizationErrors.RateExceededError error. Error code `31206`.
+
+Signature:
+
+```typescript
+class RateExceededError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class._constructor__constructor.md) | | Constructs a new instance of the RateExceededError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.causes_property.md) | | string\[\] | Rate limit exceeded. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.description_property.md) | | string | Rate exceeded authorized limit. |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.explanation_property.md) | | string | The request performed exceeds the authorized limit. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.name_property.md) | | string | RateExceededError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.solutions_property.md) | | string\[\] | Ensure message send rate does not exceed authorized limits. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.name_property.md
new file mode 100644
index 00000000..1095a517
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [RateExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.name_property.md)
+
+## TwilioErrors.AuthorizationErrors.RateExceededError.name property
+
+RateExceededError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.solutions_property.md
new file mode 100644
index 00000000..c5bc6b7c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) > [RateExceededError](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.rateexceedederror_class.solutions_property.md)
+
+## TwilioErrors.AuthorizationErrors.RateExceededError.solutions property
+
+Ensure message send rate does not exceed authorized limits.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class._constructor__constructor.md
new file mode 100644
index 00000000..440f8532
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [AddressIncomplete](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.AddressIncomplete.(constructor)
+
+Constructs a new instance of the `AddressIncomplete` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.causes_property.md
new file mode 100644
index 00000000..2f6b09ff
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [AddressIncomplete](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.AddressIncomplete.causes property
+
+The outbound call was made with a phone number that has an invalid format.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.description_property.md
new file mode 100644
index 00000000..2c415a78
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [AddressIncomplete](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.description_property.md)
+
+## TwilioErrors.ClientErrors.AddressIncomplete.description property
+
+Address Incomplete (SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.explanation_property.md
new file mode 100644
index 00000000..ff4e8dd9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [AddressIncomplete](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.AddressIncomplete.explanation property
+
+The provided phone number is malformed.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md
new file mode 100644
index 00000000..64d2f101
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [AddressIncomplete](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md)
+
+## TwilioErrors.ClientErrors.AddressIncomplete class
+
+ClientErrors.AddressIncomplete error. Error code `31484`.
+
+Signature:
+
+```typescript
+class AddressIncomplete extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class._constructor__constructor.md) | | Constructs a new instance of the AddressIncomplete
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.causes_property.md) | | string\[\] | The outbound call was made with a phone number that has an invalid format. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.description_property.md) | | string | Address Incomplete (SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.explanation_property.md) | | string | The provided phone number is malformed. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.name_property.md) | | string | AddressIncomplete |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.solutions_property.md) | | string\[\] | Ensure the phone number dialed is formatted correctly. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.name_property.md
new file mode 100644
index 00000000..47adeb96
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [AddressIncomplete](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.name_property.md)
+
+## TwilioErrors.ClientErrors.AddressIncomplete.name property
+
+AddressIncomplete
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.solutions_property.md
new file mode 100644
index 00000000..8e738c44
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [AddressIncomplete](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.AddressIncomplete.solutions property
+
+Ensure the phone number dialed is formatted correctly.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class._constructor__constructor.md
new file mode 100644
index 00000000..42f48b16
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BadRequest](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.BadRequest.(constructor)
+
+Constructs a new instance of the `BadRequest` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.causes_property.md
new file mode 100644
index 00000000..7ec8746d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BadRequest](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.BadRequest.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.description_property.md
new file mode 100644
index 00000000..4cfd6cf2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BadRequest](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.description_property.md)
+
+## TwilioErrors.ClientErrors.BadRequest.description property
+
+Bad Request (HTTP/SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.explanation_property.md
new file mode 100644
index 00000000..d9e0bc4e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BadRequest](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.BadRequest.explanation property
+
+The request could not be understood due to malformed syntax.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md
new file mode 100644
index 00000000..2829be8a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BadRequest](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md)
+
+## TwilioErrors.ClientErrors.BadRequest class
+
+ClientErrors.BadRequest error. Error code `31400`.
+
+Signature:
+
+```typescript
+class BadRequest extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class._constructor__constructor.md) | | Constructs a new instance of the BadRequest
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.description_property.md) | | string | Bad Request (HTTP/SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.explanation_property.md) | | string | The request could not be understood due to malformed syntax. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.name_property.md) | | string | BadRequest |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.name_property.md
new file mode 100644
index 00000000..dd69b035
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BadRequest](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.name_property.md)
+
+## TwilioErrors.ClientErrors.BadRequest.name property
+
+BadRequest
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.solutions_property.md
new file mode 100644
index 00000000..ebb04852
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BadRequest](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.BadRequest.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class._constructor__constructor.md
new file mode 100644
index 00000000..90bfe0a8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BusyHere](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.BusyHere.(constructor)
+
+Constructs a new instance of the `BusyHere` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.causes_property.md
new file mode 100644
index 00000000..bffcef78
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BusyHere](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.BusyHere.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.description_property.md
new file mode 100644
index 00000000..bed65291
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BusyHere](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.description_property.md)
+
+## TwilioErrors.ClientErrors.BusyHere.description property
+
+Busy Here (SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.explanation_property.md
new file mode 100644
index 00000000..1142a909
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BusyHere](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.BusyHere.explanation property
+
+The callee is busy.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md
new file mode 100644
index 00000000..e700fe7e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BusyHere](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md)
+
+## TwilioErrors.ClientErrors.BusyHere class
+
+ClientErrors.BusyHere error. Error code `31486`.
+
+Signature:
+
+```typescript
+class BusyHere extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class._constructor__constructor.md) | | Constructs a new instance of the BusyHere
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.description_property.md) | | string | Busy Here (SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.explanation_property.md) | | string | The callee is busy. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.name_property.md) | | string | BusyHere |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.name_property.md
new file mode 100644
index 00000000..fef7d78b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BusyHere](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.name_property.md)
+
+## TwilioErrors.ClientErrors.BusyHere.name property
+
+BusyHere
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.solutions_property.md
new file mode 100644
index 00000000..8508b043
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [BusyHere](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.BusyHere.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class._constructor__constructor.md
new file mode 100644
index 00000000..2756877d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [CallTransactionDoesNotExist](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.CallTransactionDoesNotExist.(constructor)
+
+Constructs a new instance of the `CallTransactionDoesNotExist` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.causes_property.md
new file mode 100644
index 00000000..f48af9ce
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [CallTransactionDoesNotExist](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.CallTransactionDoesNotExist.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.description_property.md
new file mode 100644
index 00000000..9a51a9cc
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [CallTransactionDoesNotExist](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.description_property.md)
+
+## TwilioErrors.ClientErrors.CallTransactionDoesNotExist.description property
+
+Call/Transaction Does Not Exist (SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.explanation_property.md
new file mode 100644
index 00000000..f446e096
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [CallTransactionDoesNotExist](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.CallTransactionDoesNotExist.explanation property
+
+The call no longer exists.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md
new file mode 100644
index 00000000..2233769a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [CallTransactionDoesNotExist](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md)
+
+## TwilioErrors.ClientErrors.CallTransactionDoesNotExist class
+
+ClientErrors.CallTransactionDoesNotExist error. Error code `31481`.
+
+Signature:
+
+```typescript
+class CallTransactionDoesNotExist extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class._constructor__constructor.md) | | Constructs a new instance of the CallTransactionDoesNotExist
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.description_property.md) | | string | Call/Transaction Does Not Exist (SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.explanation_property.md) | | string | The call no longer exists. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.name_property.md) | | string | CallTransactionDoesNotExist |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.name_property.md
new file mode 100644
index 00000000..ad836cba
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [CallTransactionDoesNotExist](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.name_property.md)
+
+## TwilioErrors.ClientErrors.CallTransactionDoesNotExist.name property
+
+CallTransactionDoesNotExist
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.solutions_property.md
new file mode 100644
index 00000000..fa8755b1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [CallTransactionDoesNotExist](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.CallTransactionDoesNotExist.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class._constructor__constructor.md
new file mode 100644
index 00000000..95319ebf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Conflict](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.Conflict.(constructor)
+
+Constructs a new instance of the `Conflict` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.causes_property.md
new file mode 100644
index 00000000..db790ef2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Conflict](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.Conflict.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.description_property.md
new file mode 100644
index 00000000..2e8a88f8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Conflict](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.description_property.md)
+
+## TwilioErrors.ClientErrors.Conflict.description property
+
+Conflict (HTTP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.explanation_property.md
new file mode 100644
index 00000000..4eb9fd9a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Conflict](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.Conflict.explanation property
+
+The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md
new file mode 100644
index 00000000..034475b6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Conflict](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md)
+
+## TwilioErrors.ClientErrors.Conflict class
+
+ClientErrors.Conflict error. Error code `31409`.
+
+Signature:
+
+```typescript
+class Conflict extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class._constructor__constructor.md) | | Constructs a new instance of the Conflict
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.description_property.md) | | string | Conflict (HTTP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.explanation_property.md) | | string | The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.name_property.md) | | string | Conflict |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.name_property.md
new file mode 100644
index 00000000..3e977cf2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Conflict](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.name_property.md)
+
+## TwilioErrors.ClientErrors.Conflict.name property
+
+Conflict
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.solutions_property.md
new file mode 100644
index 00000000..89265a5f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Conflict](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.Conflict.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class._constructor__constructor.md
new file mode 100644
index 00000000..138fdd8a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.Forbidden.(constructor)
+
+Constructs a new instance of the `Forbidden` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.causes_property.md
new file mode 100644
index 00000000..7823872e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.Forbidden.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.description_property.md
new file mode 100644
index 00000000..73f4c08e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.description_property.md)
+
+## TwilioErrors.ClientErrors.Forbidden.description property
+
+Forbidden (HTTP/SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.explanation_property.md
new file mode 100644
index 00000000..6d083f24
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.Forbidden.explanation property
+
+The server understood the request, but is refusing to fulfill it.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md
new file mode 100644
index 00000000..81cfc595
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md)
+
+## TwilioErrors.ClientErrors.Forbidden class
+
+ClientErrors.Forbidden error. Error code `31403`.
+
+Signature:
+
+```typescript
+class Forbidden extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class._constructor__constructor.md) | | Constructs a new instance of the Forbidden
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.description_property.md) | | string | Forbidden (HTTP/SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.explanation_property.md) | | string | The server understood the request, but is refusing to fulfill it. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.name_property.md) | | string | Forbidden |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.name_property.md
new file mode 100644
index 00000000..3ea77eed
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.name_property.md)
+
+## TwilioErrors.ClientErrors.Forbidden.name property
+
+Forbidden
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.solutions_property.md
new file mode 100644
index 00000000..ded82e4e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.Forbidden.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md
new file mode 100644
index 00000000..ee934296
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md)
+
+## TwilioErrors.ClientErrors namespace
+
+Client errors.
+
+Signature:
+
+```typescript
+export declare namespace ClientErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [AddressIncomplete](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.addressincomplete_class.md) | ClientErrors.AddressIncomplete error. Error code 31484
. |
+| [BadRequest](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.badrequest_class.md) | ClientErrors.BadRequest error. Error code 31400
. |
+| [BusyHere](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.busyhere_class.md) | ClientErrors.BusyHere error. Error code 31486
. |
+| [CallTransactionDoesNotExist](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.calltransactiondoesnotexist_class.md) | ClientErrors.CallTransactionDoesNotExist error. Error code 31481
. |
+| [Conflict](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.conflict_class.md) | ClientErrors.Conflict error. Error code 31409
. |
+| [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.forbidden_class.md) | ClientErrors.Forbidden error. Error code 31403
. |
+| [NotFound](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md) | ClientErrors.NotFound error. Error code 31404
. |
+| [RequestTerminated](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md) | ClientErrors.RequestTerminated error. Error code 31487
. |
+| [RequestTimeout](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md) | ClientErrors.RequestTimeout error. Error code 31408
. |
+| [TemporarilyUnavailable](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md) | ClientErrors.TemporarilyUnavailable error. Error code 31480
. |
+| [TooManyRequests](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md) | ClientErrors.TooManyRequests error. Error code 31429
. |
+| [UpgradeRequired](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md) | ClientErrors.UpgradeRequired error. Error code 31426
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class._constructor__constructor.md
new file mode 100644
index 00000000..63cec2ba
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [NotFound](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.NotFound.(constructor)
+
+Constructs a new instance of the `NotFound` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.causes_property.md
new file mode 100644
index 00000000..7615c19c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [NotFound](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.NotFound.causes property
+
+The outbound call was made to an invalid phone number. The TwiML application sid is missing a Voice URL.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.description_property.md
new file mode 100644
index 00000000..407682d7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [NotFound](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.description_property.md)
+
+## TwilioErrors.ClientErrors.NotFound.description property
+
+Not Found (HTTP/SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.explanation_property.md
new file mode 100644
index 00000000..c5bddce9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [NotFound](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.NotFound.explanation property
+
+The server has not found anything matching the request.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md
new file mode 100644
index 00000000..bfbae39c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [NotFound](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md)
+
+## TwilioErrors.ClientErrors.NotFound class
+
+ClientErrors.NotFound error. Error code `31404`.
+
+Signature:
+
+```typescript
+class NotFound extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class._constructor__constructor.md) | | Constructs a new instance of the NotFound
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.causes_property.md) | | string\[\] | The outbound call was made to an invalid phone number. The TwiML application sid is missing a Voice URL. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.description_property.md) | | string | Not Found (HTTP/SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.explanation_property.md) | | string | The server has not found anything matching the request. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.name_property.md) | | string | NotFound |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.solutions_property.md) | | string\[\] | Ensure the phone number dialed is valid. Ensure the TwiML application is configured correctly with a Voice URL link. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.name_property.md
new file mode 100644
index 00000000..33262e1b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [NotFound](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.name_property.md)
+
+## TwilioErrors.ClientErrors.NotFound.name property
+
+NotFound
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.solutions_property.md
new file mode 100644
index 00000000..7c5c56cc
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [NotFound](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.notfound_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.NotFound.solutions property
+
+Ensure the phone number dialed is valid. Ensure the TwiML application is configured correctly with a Voice URL link.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class._constructor__constructor.md
new file mode 100644
index 00000000..a73d94f4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTerminated](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.RequestTerminated.(constructor)
+
+Constructs a new instance of the `RequestTerminated` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.causes_property.md
new file mode 100644
index 00000000..9ef23550
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTerminated](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.RequestTerminated.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.description_property.md
new file mode 100644
index 00000000..16b23ffc
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTerminated](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.description_property.md)
+
+## TwilioErrors.ClientErrors.RequestTerminated.description property
+
+Request Terminated (SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.explanation_property.md
new file mode 100644
index 00000000..5ca44cd8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTerminated](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.RequestTerminated.explanation property
+
+The request has terminated as a result of a bye or cancel.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md
new file mode 100644
index 00000000..20881a00
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTerminated](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md)
+
+## TwilioErrors.ClientErrors.RequestTerminated class
+
+ClientErrors.RequestTerminated error. Error code `31487`.
+
+Signature:
+
+```typescript
+class RequestTerminated extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class._constructor__constructor.md) | | Constructs a new instance of the RequestTerminated
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.description_property.md) | | string | Request Terminated (SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.explanation_property.md) | | string | The request has terminated as a result of a bye or cancel. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.name_property.md) | | string | RequestTerminated |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.name_property.md
new file mode 100644
index 00000000..11d822f1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTerminated](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.name_property.md)
+
+## TwilioErrors.ClientErrors.RequestTerminated.name property
+
+RequestTerminated
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.solutions_property.md
new file mode 100644
index 00000000..7e2f97b4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTerminated](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requestterminated_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.RequestTerminated.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class._constructor__constructor.md
new file mode 100644
index 00000000..e6762398
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTimeout](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.RequestTimeout.(constructor)
+
+Constructs a new instance of the `RequestTimeout` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.causes_property.md
new file mode 100644
index 00000000..133f6088
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTimeout](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.RequestTimeout.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.description_property.md
new file mode 100644
index 00000000..fd881bd0
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTimeout](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.description_property.md)
+
+## TwilioErrors.ClientErrors.RequestTimeout.description property
+
+Request Timeout (HTTP/SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.explanation_property.md
new file mode 100644
index 00000000..2b898177
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTimeout](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.RequestTimeout.explanation property
+
+A request timeout occurred.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md
new file mode 100644
index 00000000..1cdd74d2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTimeout](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md)
+
+## TwilioErrors.ClientErrors.RequestTimeout class
+
+ClientErrors.RequestTimeout error. Error code `31408`.
+
+Signature:
+
+```typescript
+class RequestTimeout extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class._constructor__constructor.md) | | Constructs a new instance of the RequestTimeout
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.description_property.md) | | string | Request Timeout (HTTP/SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.explanation_property.md) | | string | A request timeout occurred. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.name_property.md) | | string | RequestTimeout |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.name_property.md
new file mode 100644
index 00000000..1fa43aba
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTimeout](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.name_property.md)
+
+## TwilioErrors.ClientErrors.RequestTimeout.name property
+
+RequestTimeout
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.solutions_property.md
new file mode 100644
index 00000000..9b0a4554
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [RequestTimeout](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.requesttimeout_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.RequestTimeout.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class._constructor__constructor.md
new file mode 100644
index 00000000..deda3f31
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TemporarilyUnavailable](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.TemporarilyUnavailable.(constructor)
+
+Constructs a new instance of the `TemporarilyUnavailable` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.causes_property.md
new file mode 100644
index 00000000..f707d66d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TemporarilyUnavailable](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.TemporarilyUnavailable.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.description_property.md
new file mode 100644
index 00000000..97cfce2f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TemporarilyUnavailable](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.description_property.md)
+
+## TwilioErrors.ClientErrors.TemporarilyUnavailable.description property
+
+Temporarily Unavailable (SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.explanation_property.md
new file mode 100644
index 00000000..c59af8c5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TemporarilyUnavailable](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.TemporarilyUnavailable.explanation property
+
+The callee is currently unavailable.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md
new file mode 100644
index 00000000..77a5d77d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TemporarilyUnavailable](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md)
+
+## TwilioErrors.ClientErrors.TemporarilyUnavailable class
+
+ClientErrors.TemporarilyUnavailable error. Error code `31480`.
+
+Signature:
+
+```typescript
+class TemporarilyUnavailable extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class._constructor__constructor.md) | | Constructs a new instance of the TemporarilyUnavailable
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.description_property.md) | | string | Temporarily Unavailable (SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.explanation_property.md) | | string | The callee is currently unavailable. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.name_property.md) | | string | TemporarilyUnavailable |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.name_property.md
new file mode 100644
index 00000000..dc860e67
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TemporarilyUnavailable](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.name_property.md)
+
+## TwilioErrors.ClientErrors.TemporarilyUnavailable.name property
+
+TemporarilyUnavailable
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.solutions_property.md
new file mode 100644
index 00000000..5f232152
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TemporarilyUnavailable](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.temporarilyunavailable_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.TemporarilyUnavailable.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class._constructor__constructor.md
new file mode 100644
index 00000000..eb5df095
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TooManyRequests](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.TooManyRequests.(constructor)
+
+Constructs a new instance of the `TooManyRequests` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.causes_property.md
new file mode 100644
index 00000000..f918a6a1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TooManyRequests](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.TooManyRequests.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.description_property.md
new file mode 100644
index 00000000..ba144e61
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TooManyRequests](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.description_property.md)
+
+## TwilioErrors.ClientErrors.TooManyRequests.description property
+
+Too Many Requests (HTTP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.explanation_property.md
new file mode 100644
index 00000000..fa7e76a7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TooManyRequests](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.TooManyRequests.explanation property
+
+Too many requests were sent in a given amount of time.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md
new file mode 100644
index 00000000..59adb4d8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TooManyRequests](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md)
+
+## TwilioErrors.ClientErrors.TooManyRequests class
+
+ClientErrors.TooManyRequests error. Error code `31429`.
+
+Signature:
+
+```typescript
+class TooManyRequests extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class._constructor__constructor.md) | | Constructs a new instance of the TooManyRequests
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.description_property.md) | | string | Too Many Requests (HTTP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.explanation_property.md) | | string | Too many requests were sent in a given amount of time. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.name_property.md) | | string | TooManyRequests |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.name_property.md
new file mode 100644
index 00000000..411fc815
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TooManyRequests](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.name_property.md)
+
+## TwilioErrors.ClientErrors.TooManyRequests.name property
+
+TooManyRequests
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.solutions_property.md
new file mode 100644
index 00000000..c131de2f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [TooManyRequests](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.toomanyrequests_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.TooManyRequests.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class._constructor__constructor.md
new file mode 100644
index 00000000..42b769ab
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [UpgradeRequired](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class._constructor__constructor.md)
+
+## TwilioErrors.ClientErrors.UpgradeRequired.(constructor)
+
+Constructs a new instance of the `UpgradeRequired` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.causes_property.md
new file mode 100644
index 00000000..1d568f0c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [UpgradeRequired](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.causes_property.md)
+
+## TwilioErrors.ClientErrors.UpgradeRequired.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.description_property.md
new file mode 100644
index 00000000..163d76c9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [UpgradeRequired](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.description_property.md)
+
+## TwilioErrors.ClientErrors.UpgradeRequired.description property
+
+Upgrade Required (HTTP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.explanation_property.md
new file mode 100644
index 00000000..211162ae
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [UpgradeRequired](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.explanation_property.md)
+
+## TwilioErrors.ClientErrors.UpgradeRequired.explanation property
+
+This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md
new file mode 100644
index 00000000..944226f0
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [UpgradeRequired](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md)
+
+## TwilioErrors.ClientErrors.UpgradeRequired class
+
+ClientErrors.UpgradeRequired error. Error code `31426`.
+
+Signature:
+
+```typescript
+class UpgradeRequired extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class._constructor__constructor.md) | | Constructs a new instance of the UpgradeRequired
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.description_property.md) | | string | Upgrade Required (HTTP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.explanation_property.md) | | string | This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.name_property.md) | | string | UpgradeRequired |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.name_property.md
new file mode 100644
index 00000000..4a98f439
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [UpgradeRequired](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.name_property.md)
+
+## TwilioErrors.ClientErrors.UpgradeRequired.name property
+
+UpgradeRequired
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.solutions_property.md
new file mode 100644
index 00000000..55d1b32c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) > [UpgradeRequired](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.upgraderequired_class.solutions_property.md)
+
+## TwilioErrors.ClientErrors.UpgradeRequired.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class._constructor__constructor.md
new file mode 100644
index 00000000..0be294db
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ForbiddenErrors](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class._constructor__constructor.md)
+
+## TwilioErrors.ForbiddenErrors.Forbidden.(constructor)
+
+Constructs a new instance of the `Forbidden` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.causes_property.md
new file mode 100644
index 00000000..6a0f7d92
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ForbiddenErrors](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.causes_property.md)
+
+## TwilioErrors.ForbiddenErrors.Forbidden.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.description_property.md
new file mode 100644
index 00000000..c2bd5b40
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ForbiddenErrors](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.description_property.md)
+
+## TwilioErrors.ForbiddenErrors.Forbidden.description property
+
+403 Forbidden
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.explanation_property.md
new file mode 100644
index 00000000..8e83026f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ForbiddenErrors](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.explanation_property.md)
+
+## TwilioErrors.ForbiddenErrors.Forbidden.explanation property
+
+The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md
new file mode 100644
index 00000000..d2ddee34
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ForbiddenErrors](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md)
+
+## TwilioErrors.ForbiddenErrors.Forbidden class
+
+ForbiddenErrors.Forbidden error. Error code `20403`.
+
+Signature:
+
+```typescript
+class Forbidden extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class._constructor__constructor.md) | | Constructs a new instance of the Forbidden
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.description_property.md) | | string | 403 Forbidden |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.explanation_property.md) | | string | The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.name_property.md) | | string | Forbidden |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.name_property.md
new file mode 100644
index 00000000..edc624f6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ForbiddenErrors](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.name_property.md)
+
+## TwilioErrors.ForbiddenErrors.Forbidden.name property
+
+Forbidden
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.solutions_property.md
new file mode 100644
index 00000000..ed78c835
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ForbiddenErrors](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md) > [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.solutions_property.md)
+
+## TwilioErrors.ForbiddenErrors.Forbidden.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md
new file mode 100644
index 00000000..6706ae5a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ForbiddenErrors](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md)
+
+## TwilioErrors.ForbiddenErrors namespace
+
+Forbidden errors.
+
+Signature:
+
+```typescript
+export declare namespace ForbiddenErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [Forbidden](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.forbidden_class.md) | ForbiddenErrors.Forbidden error. Error code 20403
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class._constructor__constructor.md
new file mode 100644
index 00000000..3ead1dd6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [CallCancelledError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class._constructor__constructor.md)
+
+## TwilioErrors.GeneralErrors.CallCancelledError.(constructor)
+
+Constructs a new instance of the `CallCancelledError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.causes_property.md
new file mode 100644
index 00000000..b3ce7369
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [CallCancelledError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.causes_property.md)
+
+## TwilioErrors.GeneralErrors.CallCancelledError.causes property
+
+The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.description_property.md
new file mode 100644
index 00000000..bf6c8f31
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [CallCancelledError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.description_property.md)
+
+## TwilioErrors.GeneralErrors.CallCancelledError.description property
+
+Call cancelled
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.explanation_property.md
new file mode 100644
index 00000000..2c679f73
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [CallCancelledError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.explanation_property.md)
+
+## TwilioErrors.GeneralErrors.CallCancelledError.explanation property
+
+Unable to answer because the call has ended
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md
new file mode 100644
index 00000000..2c8330e8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [CallCancelledError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md)
+
+## TwilioErrors.GeneralErrors.CallCancelledError class
+
+GeneralErrors.CallCancelledError error. Error code `31008`.
+
+Signature:
+
+```typescript
+class CallCancelledError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class._constructor__constructor.md) | | Constructs a new instance of the CallCancelledError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.causes_property.md) | | string\[\] | The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.description_property.md) | | string | Call cancelled |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.explanation_property.md) | | string | Unable to answer because the call has ended |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.name_property.md) | | string | CallCancelledError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.name_property.md
new file mode 100644
index 00000000..317441eb
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [CallCancelledError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.name_property.md)
+
+## TwilioErrors.GeneralErrors.CallCancelledError.name property
+
+CallCancelledError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.solutions_property.md
new file mode 100644
index 00000000..fa955822
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [CallCancelledError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.solutions_property.md)
+
+## TwilioErrors.GeneralErrors.CallCancelledError.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class._constructor__constructor.md
new file mode 100644
index 00000000..7ac9b15d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class._constructor__constructor.md)
+
+## TwilioErrors.GeneralErrors.ConnectionError.(constructor)
+
+Constructs a new instance of the `ConnectionError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.causes_property.md
new file mode 100644
index 00000000..94ada2b5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.causes_property.md)
+
+## TwilioErrors.GeneralErrors.ConnectionError.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.description_property.md
new file mode 100644
index 00000000..4cda7035
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.description_property.md)
+
+## TwilioErrors.GeneralErrors.ConnectionError.description property
+
+Connection error
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.explanation_property.md
new file mode 100644
index 00000000..6378cb9b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.explanation_property.md)
+
+## TwilioErrors.GeneralErrors.ConnectionError.explanation property
+
+A connection error occurred during the call
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md
new file mode 100644
index 00000000..65a4a01b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md)
+
+## TwilioErrors.GeneralErrors.ConnectionError class
+
+GeneralErrors.ConnectionError error. Error code `31005`.
+
+Signature:
+
+```typescript
+class ConnectionError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class._constructor__constructor.md) | | Constructs a new instance of the ConnectionError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.description_property.md) | | string | Connection error |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.explanation_property.md) | | string | A connection error occurred during the call |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.name_property.md) | | string | ConnectionError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.name_property.md
new file mode 100644
index 00000000..10eb8188
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.name_property.md)
+
+## TwilioErrors.GeneralErrors.ConnectionError.name property
+
+ConnectionError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.solutions_property.md
new file mode 100644
index 00000000..54a38145
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.solutions_property.md)
+
+## TwilioErrors.GeneralErrors.ConnectionError.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md
new file mode 100644
index 00000000..76a50e04
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md)
+
+## TwilioErrors.GeneralErrors namespace
+
+General errors.
+
+Signature:
+
+```typescript
+export declare namespace GeneralErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [CallCancelledError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.callcancellederror_class.md) | GeneralErrors.CallCancelledError error. Error code 31008
. |
+| [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.connectionerror_class.md) | GeneralErrors.ConnectionError error. Error code 31005
. |
+| [TransportError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md) | GeneralErrors.TransportError error. Error code 31009
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class._constructor__constructor.md
new file mode 100644
index 00000000..b395d78c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [TransportError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class._constructor__constructor.md)
+
+## TwilioErrors.GeneralErrors.TransportError.(constructor)
+
+Constructs a new instance of the `TransportError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.causes_property.md
new file mode 100644
index 00000000..753ff3a1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [TransportError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.causes_property.md)
+
+## TwilioErrors.GeneralErrors.TransportError.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.description_property.md
new file mode 100644
index 00000000..9e82b2a0
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [TransportError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.description_property.md)
+
+## TwilioErrors.GeneralErrors.TransportError.description property
+
+Transport error
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.explanation_property.md
new file mode 100644
index 00000000..8dd96c97
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [TransportError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.explanation_property.md)
+
+## TwilioErrors.GeneralErrors.TransportError.explanation property
+
+No transport available to send or receive messages
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md
new file mode 100644
index 00000000..e3b8af8c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [TransportError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md)
+
+## TwilioErrors.GeneralErrors.TransportError class
+
+GeneralErrors.TransportError error. Error code `31009`.
+
+Signature:
+
+```typescript
+class TransportError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class._constructor__constructor.md) | | Constructs a new instance of the TransportError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.description_property.md) | | string | Transport error |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.explanation_property.md) | | string | No transport available to send or receive messages |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.name_property.md) | | string | TransportError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.name_property.md
new file mode 100644
index 00000000..c9087f31
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [TransportError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.name_property.md)
+
+## TwilioErrors.GeneralErrors.TransportError.name property
+
+TransportError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.solutions_property.md
new file mode 100644
index 00000000..37cf0e7a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) > [TransportError](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.transporterror_class.solutions_property.md)
+
+## TwilioErrors.GeneralErrors.TransportError.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class._constructor__constructor.md
new file mode 100644
index 00000000..7339d78a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [InvalidArgumentError](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class._constructor__constructor.md)
+
+## TwilioErrors.InvalidArgumentError.(constructor)
+
+Constructs a new instance of the `InvalidArgumentError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.description_property.md
new file mode 100644
index 00000000..9d46be8a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.description_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [InvalidArgumentError](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.description_property.md)
+
+## TwilioErrors.InvalidArgumentError.description property
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.explanation_property.md
new file mode 100644
index 00000000..874d4f3d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.explanation_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [InvalidArgumentError](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.explanation_property.md)
+
+## TwilioErrors.InvalidArgumentError.explanation property
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.md
new file mode 100644
index 00000000..fc7f3a61
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [InvalidArgumentError](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.md)
+
+## TwilioErrors.InvalidArgumentError class
+
+Error describing that an SDK function is invoked with an invalid argument.
+
+Signature:
+
+```typescript
+export declare class InvalidArgumentError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class._constructor__constructor.md) | | Constructs a new instance of the InvalidArgumentError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.description_property.md) | | string | |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.explanation_property.md) | | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class._constructor__constructor.md
new file mode 100644
index 00000000..b717f2da
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [InvalidStateError](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class._constructor__constructor.md)
+
+## TwilioErrors.InvalidStateError.(constructor)
+
+Constructs a new instance of the `InvalidStateError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.description_property.md
new file mode 100644
index 00000000..a8364412
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.description_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [InvalidStateError](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.description_property.md)
+
+## TwilioErrors.InvalidStateError.description property
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.explanation_property.md
new file mode 100644
index 00000000..b27d8632
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.explanation_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [InvalidStateError](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.explanation_property.md)
+
+## TwilioErrors.InvalidStateError.explanation property
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.md
new file mode 100644
index 00000000..977f81f8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [InvalidStateError](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.md)
+
+## TwilioErrors.InvalidStateError class
+
+Error describing that the SDK has entered or is attempting to enter an invalid state.
+
+Signature:
+
+```typescript
+export declare class InvalidStateError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class._constructor__constructor.md) | | Constructs a new instance of the InvalidStateError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.description_property.md) | | string | |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.explanation_property.md) | | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class._constructor__constructor.md
new file mode 100644
index 00000000..f378bef7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MalformedRequestErrors](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md) > [MalformedRequestError](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class._constructor__constructor.md)
+
+## TwilioErrors.MalformedRequestErrors.MalformedRequestError.(constructor)
+
+Constructs a new instance of the `MalformedRequestError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.causes_property.md
new file mode 100644
index 00000000..f6c2e1bf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MalformedRequestErrors](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md) > [MalformedRequestError](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.causes_property.md)
+
+## TwilioErrors.MalformedRequestErrors.MalformedRequestError.causes property
+
+Invalid content or MessageType passed to sendMessage method.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.description_property.md
new file mode 100644
index 00000000..5314dd7b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MalformedRequestErrors](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md) > [MalformedRequestError](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.description_property.md)
+
+## TwilioErrors.MalformedRequestErrors.MalformedRequestError.description property
+
+The request had malformed syntax.
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.explanation_property.md
new file mode 100644
index 00000000..fd207e48
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MalformedRequestErrors](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md) > [MalformedRequestError](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.explanation_property.md)
+
+## TwilioErrors.MalformedRequestErrors.MalformedRequestError.explanation property
+
+The request could not be understood due to malformed syntax.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md
new file mode 100644
index 00000000..2565ea21
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MalformedRequestErrors](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md) > [MalformedRequestError](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md)
+
+## TwilioErrors.MalformedRequestErrors.MalformedRequestError class
+
+MalformedRequestErrors.MalformedRequestError error. Error code `31100`.
+
+Signature:
+
+```typescript
+class MalformedRequestError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class._constructor__constructor.md) | | Constructs a new instance of the MalformedRequestError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.causes_property.md) | | string\[\] | Invalid content or MessageType passed to sendMessage method. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.description_property.md) | | string | The request had malformed syntax. |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.explanation_property.md) | | string | The request could not be understood due to malformed syntax. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.name_property.md) | | string | MalformedRequestError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.solutions_property.md) | | string\[\] | Ensure content and MessageType passed to sendMessage method are valid. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.name_property.md
new file mode 100644
index 00000000..e01423b5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MalformedRequestErrors](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md) > [MalformedRequestError](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.name_property.md)
+
+## TwilioErrors.MalformedRequestErrors.MalformedRequestError.name property
+
+MalformedRequestError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.solutions_property.md
new file mode 100644
index 00000000..72a5c876
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MalformedRequestErrors](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md) > [MalformedRequestError](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.solutions_property.md)
+
+## TwilioErrors.MalformedRequestErrors.MalformedRequestError.solutions property
+
+Ensure content and MessageType passed to sendMessage method are valid.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md
new file mode 100644
index 00000000..35ef86a6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MalformedRequestErrors](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md)
+
+## TwilioErrors.MalformedRequestErrors namespace
+
+MalformedRequest errors.
+
+Signature:
+
+```typescript
+export declare namespace MalformedRequestErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [MalformedRequestError](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.malformedrequesterror_class.md) | MalformedRequestErrors.MalformedRequestError error. Error code 31100
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.md
new file mode 100644
index 00000000..0665d290
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.md
@@ -0,0 +1,32 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md)
+
+## TwilioErrors namespace
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [InvalidArgumentError](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.md) | Error describing that an SDK function is invoked with an invalid argument. |
+| [InvalidStateError](./voice-react-native-sdk.twilioerrors_namespace.invalidstateerror_class.md) | Error describing that the SDK has entered or is attempting to enter an invalid state. |
+| [TwilioError](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md) | Generic Twilio error that the SDK will raise when encountering an error. Can be used to describe backend errors. |
+| [UnsupportedPlatformError](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.md) | Error describing that the an unsupported platform other than Android or iOS has been detected. |
+
+## Namespaces
+
+| Namespace | Description |
+| --- | --- |
+| [AuthorizationErrors](./voice-react-native-sdk.twilioerrors_namespace.authorizationerrors_namespace.md) | Authorization errors. |
+| [ClientErrors](./voice-react-native-sdk.twilioerrors_namespace.clienterrors_namespace.md) | Client errors. |
+| [ForbiddenErrors](./voice-react-native-sdk.twilioerrors_namespace.forbiddenerrors_namespace.md) | Forbidden errors. |
+| [GeneralErrors](./voice-react-native-sdk.twilioerrors_namespace.generalerrors_namespace.md) | General errors. |
+| [MalformedRequestErrors](./voice-react-native-sdk.twilioerrors_namespace.malformedrequesterrors_namespace.md) | MalformedRequest errors. |
+| [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) | Media errors. |
+| [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) | Registration errors. |
+| [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) | Server errors. |
+| [SignalingErrors](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md) | Signaling errors. |
+| [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) | SIPServer errors. |
+| [TwiMLErrors](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md) | TwiML errors. |
+| [UserMediaErrors](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md) | UserMedia errors. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class._constructor__constructor.md
new file mode 100644
index 00000000..ebb6f999
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class._constructor__constructor.md)
+
+## TwilioErrors.MediaErrors.ClientLocalDescFailed.(constructor)
+
+Constructs a new instance of the `ClientLocalDescFailed` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.causes_property.md
new file mode 100644
index 00000000..fdbd69f2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.causes_property.md)
+
+## TwilioErrors.MediaErrors.ClientLocalDescFailed.causes property
+
+The Client may not be using a supported WebRTC implementation. The Client may not have the necessary resources to create or apply a new media description.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.description_property.md
new file mode 100644
index 00000000..dea43e80
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.description_property.md)
+
+## TwilioErrors.MediaErrors.ClientLocalDescFailed.description property
+
+Client is unable to create or apply a local media description
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.explanation_property.md
new file mode 100644
index 00000000..26ee9d68
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.explanation_property.md)
+
+## TwilioErrors.MediaErrors.ClientLocalDescFailed.explanation property
+
+Raised whenever a Client is unable to create or apply a local media description.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md
new file mode 100644
index 00000000..e8b5b525
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md)
+
+## TwilioErrors.MediaErrors.ClientLocalDescFailed class
+
+MediaErrors.ClientLocalDescFailed error. Error code `53400`.
+
+Signature:
+
+```typescript
+class ClientLocalDescFailed extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class._constructor__constructor.md) | | Constructs a new instance of the ClientLocalDescFailed
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.causes_property.md) | | string\[\] | The Client may not be using a supported WebRTC implementation. The Client may not have the necessary resources to create or apply a new media description. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.description_property.md) | | string | Client is unable to create or apply a local media description |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.explanation_property.md) | | string | Raised whenever a Client is unable to create or apply a local media description. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.name_property.md) | | string | ClientLocalDescFailed |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.solutions_property.md) | | string\[\] | If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.name_property.md
new file mode 100644
index 00000000..c52ef98c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.name_property.md)
+
+## TwilioErrors.MediaErrors.ClientLocalDescFailed.name property
+
+ClientLocalDescFailed
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.solutions_property.md
new file mode 100644
index 00000000..b72ddffd
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.solutions_property.md)
+
+## TwilioErrors.MediaErrors.ClientLocalDescFailed.solutions property
+
+If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class._constructor__constructor.md
new file mode 100644
index 00000000..3bf60b4b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class._constructor__constructor.md)
+
+## TwilioErrors.MediaErrors.ClientRemoteDescFailed.(constructor)
+
+Constructs a new instance of the `ClientRemoteDescFailed` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.causes_property.md
new file mode 100644
index 00000000..741d52b8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.causes_property.md)
+
+## TwilioErrors.MediaErrors.ClientRemoteDescFailed.causes property
+
+The Client may not be using a supported WebRTC implementation. The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation. The Client may not have the necessary resources to apply a new media description.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.description_property.md
new file mode 100644
index 00000000..1a878060
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.description_property.md)
+
+## TwilioErrors.MediaErrors.ClientRemoteDescFailed.description property
+
+Client is unable to apply a remote media description
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.explanation_property.md
new file mode 100644
index 00000000..8082ef07
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.explanation_property.md)
+
+## TwilioErrors.MediaErrors.ClientRemoteDescFailed.explanation property
+
+Raised whenever the Client receives a remote media description but is unable to apply it.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md
new file mode 100644
index 00000000..9210613f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md)
+
+## TwilioErrors.MediaErrors.ClientRemoteDescFailed class
+
+MediaErrors.ClientRemoteDescFailed error. Error code `53402`.
+
+Signature:
+
+```typescript
+class ClientRemoteDescFailed extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class._constructor__constructor.md) | | Constructs a new instance of the ClientRemoteDescFailed
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.causes_property.md) | | string\[\] | The Client may not be using a supported WebRTC implementation. The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation. The Client may not have the necessary resources to apply a new media description. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.description_property.md) | | string | Client is unable to apply a remote media description |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.explanation_property.md) | | string | Raised whenever the Client receives a remote media description but is unable to apply it. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.name_property.md) | | string | ClientRemoteDescFailed |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.solutions_property.md) | | string\[\] | If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.name_property.md
new file mode 100644
index 00000000..b1a95318
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.name_property.md)
+
+## TwilioErrors.MediaErrors.ClientRemoteDescFailed.name property
+
+ClientRemoteDescFailed
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.solutions_property.md
new file mode 100644
index 00000000..08cfa5ad
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ClientRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.solutions_property.md)
+
+## TwilioErrors.MediaErrors.ClientRemoteDescFailed.solutions property
+
+If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class._constructor__constructor.md
new file mode 100644
index 00000000..e68ec421
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class._constructor__constructor.md)
+
+## TwilioErrors.MediaErrors.ConnectionError.(constructor)
+
+Constructs a new instance of the `ConnectionError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.causes_property.md
new file mode 100644
index 00000000..aa168367
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.causes_property.md)
+
+## TwilioErrors.MediaErrors.ConnectionError.causes property
+
+The Client was unable to establish a media connection. A media connection which was active failed liveliness checks.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.description_property.md
new file mode 100644
index 00000000..6360a30c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.description_property.md)
+
+## TwilioErrors.MediaErrors.ConnectionError.description property
+
+Media connection failed
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.explanation_property.md
new file mode 100644
index 00000000..4ee5cade
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.explanation_property.md)
+
+## TwilioErrors.MediaErrors.ConnectionError.explanation property
+
+Raised by the Client or Server whenever a media connection fails.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md
new file mode 100644
index 00000000..f6cad100
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md)
+
+## TwilioErrors.MediaErrors.ConnectionError class
+
+MediaErrors.ConnectionError error. Error code `53405`.
+
+Signature:
+
+```typescript
+class ConnectionError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class._constructor__constructor.md) | | Constructs a new instance of the ConnectionError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.causes_property.md) | | string\[\] | The Client was unable to establish a media connection. A media connection which was active failed liveliness checks. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.description_property.md) | | string | Media connection failed |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.explanation_property.md) | | string | Raised by the Client or Server whenever a media connection fails. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.name_property.md) | | string | ConnectionError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.solutions_property.md) | | string\[\] | If the problem persists, try connecting to another region. Check your Client's network connectivity. If you've provided custom ICE Servers then ensure that the URLs and credentials are valid. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.name_property.md
new file mode 100644
index 00000000..b5c4af9a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.name_property.md)
+
+## TwilioErrors.MediaErrors.ConnectionError.name property
+
+ConnectionError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.solutions_property.md
new file mode 100644
index 00000000..8f609bd1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.solutions_property.md)
+
+## TwilioErrors.MediaErrors.ConnectionError.solutions property
+
+If the problem persists, try connecting to another region. Check your Client's network connectivity. If you've provided custom ICE Servers then ensure that the URLs and credentials are valid.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md
new file mode 100644
index 00000000..e3e68b1c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md)
+
+## TwilioErrors.MediaErrors namespace
+
+Media errors.
+
+Signature:
+
+```typescript
+export declare namespace MediaErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [ClientLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientlocaldescfailed_class.md) | MediaErrors.ClientLocalDescFailed error. Error code 53400
. |
+| [ClientRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.clientremotedescfailed_class.md) | MediaErrors.ClientRemoteDescFailed error. Error code 53402
. |
+| [ConnectionError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.connectionerror_class.md) | MediaErrors.ConnectionError error. Error code 53405
. |
+| [MediaDtlsTransportFailedError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md) | MediaErrors.MediaDtlsTransportFailedError error. Error code 53407
. |
+| [NoSupportedCodec](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md) | MediaErrors.NoSupportedCodec error. Error code 53404
. |
+| [ServerLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md) | MediaErrors.ServerLocalDescFailed error. Error code 53401
. |
+| [ServerRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md) | MediaErrors.ServerRemoteDescFailed error. Error code 53403
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class._constructor__constructor.md
new file mode 100644
index 00000000..11743dcb
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [MediaDtlsTransportFailedError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class._constructor__constructor.md)
+
+## TwilioErrors.MediaErrors.MediaDtlsTransportFailedError.(constructor)
+
+Constructs a new instance of the `MediaDtlsTransportFailedError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.causes_property.md
new file mode 100644
index 00000000..fd407d3d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [MediaDtlsTransportFailedError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.causes_property.md)
+
+## TwilioErrors.MediaErrors.MediaDtlsTransportFailedError.causes property
+
+One or both of the DTLS peers have an invalid certificate. One or both of the DTLS peers have an outdated version of DTLS. One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.description_property.md
new file mode 100644
index 00000000..330a79ee
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [MediaDtlsTransportFailedError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.description_property.md)
+
+## TwilioErrors.MediaErrors.MediaDtlsTransportFailedError.description property
+
+The media connection failed due to DTLS handshake failure
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.explanation_property.md
new file mode 100644
index 00000000..8197b674
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [MediaDtlsTransportFailedError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.explanation_property.md)
+
+## TwilioErrors.MediaErrors.MediaDtlsTransportFailedError.explanation property
+
+There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md
new file mode 100644
index 00000000..c33be02e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [MediaDtlsTransportFailedError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md)
+
+## TwilioErrors.MediaErrors.MediaDtlsTransportFailedError class
+
+MediaErrors.MediaDtlsTransportFailedError error. Error code `53407`.
+
+Signature:
+
+```typescript
+class MediaDtlsTransportFailedError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class._constructor__constructor.md) | | Constructs a new instance of the MediaDtlsTransportFailedError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.causes_property.md) | | string\[\] | One or both of the DTLS peers have an invalid certificate. One or both of the DTLS peers have an outdated version of DTLS. One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.description_property.md) | | string | The media connection failed due to DTLS handshake failure |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.explanation_property.md) | | string | There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.name_property.md) | | string | MediaDtlsTransportFailedError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.solutions_property.md) | | string\[\] | Ensure that your certificate is valid. Ensure that you have a stable internet connection. Ensure that the browser or the Mobile SDK supports newer versions of DTLS. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.name_property.md
new file mode 100644
index 00000000..ccc76a6f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [MediaDtlsTransportFailedError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.name_property.md)
+
+## TwilioErrors.MediaErrors.MediaDtlsTransportFailedError.name property
+
+MediaDtlsTransportFailedError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.solutions_property.md
new file mode 100644
index 00000000..f287d055
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [MediaDtlsTransportFailedError](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.mediadtlstransportfailederror_class.solutions_property.md)
+
+## TwilioErrors.MediaErrors.MediaDtlsTransportFailedError.solutions property
+
+Ensure that your certificate is valid. Ensure that you have a stable internet connection. Ensure that the browser or the Mobile SDK supports newer versions of DTLS.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class._constructor__constructor.md
new file mode 100644
index 00000000..114f019e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [NoSupportedCodec](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class._constructor__constructor.md)
+
+## TwilioErrors.MediaErrors.NoSupportedCodec.(constructor)
+
+Constructs a new instance of the `NoSupportedCodec` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.causes_property.md
new file mode 100644
index 00000000..4a896e4a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [NoSupportedCodec](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.causes_property.md)
+
+## TwilioErrors.MediaErrors.NoSupportedCodec.causes property
+
+The C++ SDK was built without the recommended set of codecs. The JavaScript SDK is running in a browser that does not implement the recommended set of codecs.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.description_property.md
new file mode 100644
index 00000000..b17b7392
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [NoSupportedCodec](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.description_property.md)
+
+## TwilioErrors.MediaErrors.NoSupportedCodec.description property
+
+No supported codec
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.explanation_property.md
new file mode 100644
index 00000000..7886baf1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [NoSupportedCodec](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.explanation_property.md)
+
+## TwilioErrors.MediaErrors.NoSupportedCodec.explanation property
+
+Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md
new file mode 100644
index 00000000..04552b23
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [NoSupportedCodec](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md)
+
+## TwilioErrors.MediaErrors.NoSupportedCodec class
+
+MediaErrors.NoSupportedCodec error. Error code `53404`.
+
+Signature:
+
+```typescript
+class NoSupportedCodec extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class._constructor__constructor.md) | | Constructs a new instance of the NoSupportedCodec
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.causes_property.md) | | string\[\] | The C++ SDK was built without the recommended set of codecs. The JavaScript SDK is running in a browser that does not implement the recommended set of codecs. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.description_property.md) | | string | No supported codec |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.explanation_property.md) | | string | Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.name_property.md) | | string | NoSupportedCodec |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.solutions_property.md) | | string\[\] | If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs. If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.name_property.md
new file mode 100644
index 00000000..65057f08
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [NoSupportedCodec](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.name_property.md)
+
+## TwilioErrors.MediaErrors.NoSupportedCodec.name property
+
+NoSupportedCodec
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.solutions_property.md
new file mode 100644
index 00000000..c8650a2a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [NoSupportedCodec](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.nosupportedcodec_class.solutions_property.md)
+
+## TwilioErrors.MediaErrors.NoSupportedCodec.solutions property
+
+If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs. If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class._constructor__constructor.md
new file mode 100644
index 00000000..3e6fbe3d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class._constructor__constructor.md)
+
+## TwilioErrors.MediaErrors.ServerLocalDescFailed.(constructor)
+
+Constructs a new instance of the `ServerLocalDescFailed` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.causes_property.md
new file mode 100644
index 00000000..9ee43caf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.causes_property.md)
+
+## TwilioErrors.MediaErrors.ServerLocalDescFailed.causes property
+
+A server-side error has occurred.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.description_property.md
new file mode 100644
index 00000000..87c28f66
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.description_property.md)
+
+## TwilioErrors.MediaErrors.ServerLocalDescFailed.description property
+
+Server is unable to create or apply a local media description
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.explanation_property.md
new file mode 100644
index 00000000..d7887e60
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.explanation_property.md)
+
+## TwilioErrors.MediaErrors.ServerLocalDescFailed.explanation property
+
+Raised whenever the Server is unable to create or apply a local media description.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md
new file mode 100644
index 00000000..f4fbcaff
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md)
+
+## TwilioErrors.MediaErrors.ServerLocalDescFailed class
+
+MediaErrors.ServerLocalDescFailed error. Error code `53401`.
+
+Signature:
+
+```typescript
+class ServerLocalDescFailed extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class._constructor__constructor.md) | | Constructs a new instance of the ServerLocalDescFailed
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.causes_property.md) | | string\[\] | A server-side error has occurred. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.description_property.md) | | string | Server is unable to create or apply a local media description |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.explanation_property.md) | | string | Raised whenever the Server is unable to create or apply a local media description. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.name_property.md) | | string | ServerLocalDescFailed |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.solutions_property.md) | | string\[\] | If the problem persists, try connecting to another region. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.name_property.md
new file mode 100644
index 00000000..8b007d41
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.name_property.md)
+
+## TwilioErrors.MediaErrors.ServerLocalDescFailed.name property
+
+ServerLocalDescFailed
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.solutions_property.md
new file mode 100644
index 00000000..a67144c3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerLocalDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverlocaldescfailed_class.solutions_property.md)
+
+## TwilioErrors.MediaErrors.ServerLocalDescFailed.solutions property
+
+If the problem persists, try connecting to another region.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class._constructor__constructor.md
new file mode 100644
index 00000000..a5c4bfe0
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class._constructor__constructor.md)
+
+## TwilioErrors.MediaErrors.ServerRemoteDescFailed.(constructor)
+
+Constructs a new instance of the `ServerRemoteDescFailed` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.causes_property.md
new file mode 100644
index 00000000..4802c755
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.causes_property.md)
+
+## TwilioErrors.MediaErrors.ServerRemoteDescFailed.causes property
+
+The Client may not be using a supported WebRTC implementation. The Client may not have the necessary resources to apply a new media description. A Server-side error may have caused the Server to generate an invalid media description.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.description_property.md
new file mode 100644
index 00000000..d4274dea
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.description_property.md)
+
+## TwilioErrors.MediaErrors.ServerRemoteDescFailed.description property
+
+Server is unable to apply a remote media description
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.explanation_property.md
new file mode 100644
index 00000000..98ed54ec
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.explanation_property.md)
+
+## TwilioErrors.MediaErrors.ServerRemoteDescFailed.explanation property
+
+Raised whenever the Server receives a remote media description but is unable to apply it.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md
new file mode 100644
index 00000000..2bada0ff
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md)
+
+## TwilioErrors.MediaErrors.ServerRemoteDescFailed class
+
+MediaErrors.ServerRemoteDescFailed error. Error code `53403`.
+
+Signature:
+
+```typescript
+class ServerRemoteDescFailed extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class._constructor__constructor.md) | | Constructs a new instance of the ServerRemoteDescFailed
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.causes_property.md) | | string\[\] | The Client may not be using a supported WebRTC implementation. The Client may not have the necessary resources to apply a new media description. A Server-side error may have caused the Server to generate an invalid media description. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.description_property.md) | | string | Server is unable to apply a remote media description |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.explanation_property.md) | | string | Raised whenever the Server receives a remote media description but is unable to apply it. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.name_property.md) | | string | ServerRemoteDescFailed |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.solutions_property.md) | | string\[\] | If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation. If the problem persists, try connecting to another region. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.name_property.md
new file mode 100644
index 00000000..ad7f2ff9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.name_property.md)
+
+## TwilioErrors.MediaErrors.ServerRemoteDescFailed.name property
+
+ServerRemoteDescFailed
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.solutions_property.md
new file mode 100644
index 00000000..b560471f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [MediaErrors](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.md) > [ServerRemoteDescFailed](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.mediaerrors_namespace.serverremotedescfailed_class.solutions_property.md)
+
+## TwilioErrors.MediaErrors.ServerRemoteDescFailed.solutions property
+
+If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation. If the problem persists, try connecting to another region.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md
new file mode 100644
index 00000000..3ca1f15c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md)
+
+## TwilioErrors.RegistrationErrors namespace
+
+Registration errors.
+
+Signature:
+
+```typescript
+export declare namespace RegistrationErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [RegistrationError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md) | RegistrationErrors.RegistrationError error. Error code 31301
. |
+| [UnsupportedCancelMessageError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md) | RegistrationErrors.UnsupportedCancelMessageError error. Error code 31302
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class._constructor__constructor.md
new file mode 100644
index 00000000..8480d5af
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [RegistrationError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class._constructor__constructor.md)
+
+## TwilioErrors.RegistrationErrors.RegistrationError.(constructor)
+
+Constructs a new instance of the `RegistrationError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.causes_property.md
new file mode 100644
index 00000000..e0959e25
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [RegistrationError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.causes_property.md)
+
+## TwilioErrors.RegistrationErrors.RegistrationError.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.description_property.md
new file mode 100644
index 00000000..9b0d49cf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [RegistrationError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.description_property.md)
+
+## TwilioErrors.RegistrationErrors.RegistrationError.description property
+
+Registration error
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.explanation_property.md
new file mode 100644
index 00000000..73c6b250
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.explanation_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [RegistrationError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.explanation_property.md)
+
+## TwilioErrors.RegistrationErrors.RegistrationError.explanation property
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md
new file mode 100644
index 00000000..de140883
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [RegistrationError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md)
+
+## TwilioErrors.RegistrationErrors.RegistrationError class
+
+RegistrationErrors.RegistrationError error. Error code `31301`.
+
+Signature:
+
+```typescript
+class RegistrationError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class._constructor__constructor.md) | | Constructs a new instance of the RegistrationError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.description_property.md) | | string | Registration error |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.explanation_property.md) | | string | |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.name_property.md) | | string | RegistrationError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.name_property.md
new file mode 100644
index 00000000..605d7322
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [RegistrationError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.name_property.md)
+
+## TwilioErrors.RegistrationErrors.RegistrationError.name property
+
+RegistrationError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.solutions_property.md
new file mode 100644
index 00000000..073b77f2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [RegistrationError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.registrationerror_class.solutions_property.md)
+
+## TwilioErrors.RegistrationErrors.RegistrationError.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class._constructor__constructor.md
new file mode 100644
index 00000000..51787a28
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [UnsupportedCancelMessageError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class._constructor__constructor.md)
+
+## TwilioErrors.RegistrationErrors.UnsupportedCancelMessageError.(constructor)
+
+Constructs a new instance of the `UnsupportedCancelMessageError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.causes_property.md
new file mode 100644
index 00000000..ee29ed63
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [UnsupportedCancelMessageError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.causes_property.md)
+
+## TwilioErrors.RegistrationErrors.UnsupportedCancelMessageError.causes property
+
+The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.description_property.md
new file mode 100644
index 00000000..807108ca
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [UnsupportedCancelMessageError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.description_property.md)
+
+## TwilioErrors.RegistrationErrors.UnsupportedCancelMessageError.description property
+
+Unsupported Cancel Message Error
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.explanation_property.md
new file mode 100644
index 00000000..6b4f5ae5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [UnsupportedCancelMessageError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.explanation_property.md)
+
+## TwilioErrors.RegistrationErrors.UnsupportedCancelMessageError.explanation property
+
+This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or \[TwilioVoice registerWithAccessToken:deviceToken:completion:\] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md
new file mode 100644
index 00000000..00534575
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [UnsupportedCancelMessageError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md)
+
+## TwilioErrors.RegistrationErrors.UnsupportedCancelMessageError class
+
+RegistrationErrors.UnsupportedCancelMessageError error. Error code `31302`.
+
+Signature:
+
+```typescript
+class UnsupportedCancelMessageError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class._constructor__constructor.md) | | Constructs a new instance of the UnsupportedCancelMessageError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.causes_property.md) | | string\[\] | The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.description_property.md) | | string | Unsupported Cancel Message Error |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.explanation_property.md) | | string | This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or \[TwilioVoice registerWithAccessToken:deviceToken:completion:\] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.name_property.md) | | string | UnsupportedCancelMessageError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.solutions_property.md) | | string\[\] | The application must register via Voice.register(...) on Android or \[TwilioVoice registerWithAccessToken:deviceToken:completion:\] on iOS to stop receiving cancel push notification messages. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.name_property.md
new file mode 100644
index 00000000..f2d9a08b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [UnsupportedCancelMessageError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.name_property.md)
+
+## TwilioErrors.RegistrationErrors.UnsupportedCancelMessageError.name property
+
+UnsupportedCancelMessageError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.solutions_property.md
new file mode 100644
index 00000000..465fcbc8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [RegistrationErrors](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.md) > [UnsupportedCancelMessageError](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.registrationerrors_namespace.unsupportedcancelmessageerror_class.solutions_property.md)
+
+## TwilioErrors.RegistrationErrors.UnsupportedCancelMessageError.solutions property
+
+The application must register via Voice.register(...) on Android or \[TwilioVoice registerWithAccessToken:deviceToken:completion:\] on iOS to stop receiving cancel push notification messages.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class._constructor__constructor.md
new file mode 100644
index 00000000..a55c25e4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [BadGateway](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class._constructor__constructor.md)
+
+## TwilioErrors.ServerErrors.BadGateway.(constructor)
+
+Constructs a new instance of the `BadGateway` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.causes_property.md
new file mode 100644
index 00000000..f32fa5a2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [BadGateway](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.causes_property.md)
+
+## TwilioErrors.ServerErrors.BadGateway.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.description_property.md
new file mode 100644
index 00000000..ccfdb7ca
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [BadGateway](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.description_property.md)
+
+## TwilioErrors.ServerErrors.BadGateway.description property
+
+Bad Gateway (HTTP/SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.explanation_property.md
new file mode 100644
index 00000000..ef9ce37b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [BadGateway](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.explanation_property.md)
+
+## TwilioErrors.ServerErrors.BadGateway.explanation property
+
+The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md
new file mode 100644
index 00000000..93825e2a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [BadGateway](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md)
+
+## TwilioErrors.ServerErrors.BadGateway class
+
+ServerErrors.BadGateway error. Error code `31502`.
+
+Signature:
+
+```typescript
+class BadGateway extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class._constructor__constructor.md) | | Constructs a new instance of the BadGateway
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.description_property.md) | | string | Bad Gateway (HTTP/SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.explanation_property.md) | | string | The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.name_property.md) | | string | BadGateway |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.name_property.md
new file mode 100644
index 00000000..0decee0c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [BadGateway](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.name_property.md)
+
+## TwilioErrors.ServerErrors.BadGateway.name property
+
+BadGateway
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.solutions_property.md
new file mode 100644
index 00000000..0e5fe9cf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [BadGateway](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.solutions_property.md)
+
+## TwilioErrors.ServerErrors.BadGateway.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class._constructor__constructor.md
new file mode 100644
index 00000000..2bb071bf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [DNSResolutionError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class._constructor__constructor.md)
+
+## TwilioErrors.ServerErrors.DNSResolutionError.(constructor)
+
+Constructs a new instance of the `DNSResolutionError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.causes_property.md
new file mode 100644
index 00000000..97b72bda
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [DNSResolutionError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.causes_property.md)
+
+## TwilioErrors.ServerErrors.DNSResolutionError.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.description_property.md
new file mode 100644
index 00000000..1bdbf4c4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [DNSResolutionError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.description_property.md)
+
+## TwilioErrors.ServerErrors.DNSResolutionError.description property
+
+DNS Resolution Error (HTTP/SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.explanation_property.md
new file mode 100644
index 00000000..1a320b40
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [DNSResolutionError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.explanation_property.md)
+
+## TwilioErrors.ServerErrors.DNSResolutionError.explanation property
+
+Could not connect to the server.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md
new file mode 100644
index 00000000..cbc74d73
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [DNSResolutionError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md)
+
+## TwilioErrors.ServerErrors.DNSResolutionError class
+
+ServerErrors.DNSResolutionError error. Error code `31530`.
+
+Signature:
+
+```typescript
+class DNSResolutionError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class._constructor__constructor.md) | | Constructs a new instance of the DNSResolutionError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.description_property.md) | | string | DNS Resolution Error (HTTP/SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.explanation_property.md) | | string | Could not connect to the server. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.name_property.md) | | string | DNSResolutionError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.name_property.md
new file mode 100644
index 00000000..05fcd4a1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [DNSResolutionError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.name_property.md)
+
+## TwilioErrors.ServerErrors.DNSResolutionError.name property
+
+DNSResolutionError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.solutions_property.md
new file mode 100644
index 00000000..b381ea56
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [DNSResolutionError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.solutions_property.md)
+
+## TwilioErrors.ServerErrors.DNSResolutionError.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class._constructor__constructor.md
new file mode 100644
index 00000000..abc60095
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [GatewayTimeout](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class._constructor__constructor.md)
+
+## TwilioErrors.ServerErrors.GatewayTimeout.(constructor)
+
+Constructs a new instance of the `GatewayTimeout` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.causes_property.md
new file mode 100644
index 00000000..b0c7b0b2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [GatewayTimeout](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.causes_property.md)
+
+## TwilioErrors.ServerErrors.GatewayTimeout.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.description_property.md
new file mode 100644
index 00000000..74baabf3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [GatewayTimeout](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.description_property.md)
+
+## TwilioErrors.ServerErrors.GatewayTimeout.description property
+
+Gateway Timeout (HTTP/SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.explanation_property.md
new file mode 100644
index 00000000..6c13c6c3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [GatewayTimeout](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.explanation_property.md)
+
+## TwilioErrors.ServerErrors.GatewayTimeout.explanation property
+
+The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md
new file mode 100644
index 00000000..127f1516
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [GatewayTimeout](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md)
+
+## TwilioErrors.ServerErrors.GatewayTimeout class
+
+ServerErrors.GatewayTimeout error. Error code `31504`.
+
+Signature:
+
+```typescript
+class GatewayTimeout extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class._constructor__constructor.md) | | Constructs a new instance of the GatewayTimeout
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.description_property.md) | | string | Gateway Timeout (HTTP/SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.explanation_property.md) | | string | The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.name_property.md) | | string | GatewayTimeout |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.name_property.md
new file mode 100644
index 00000000..3cf40c53
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [GatewayTimeout](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.name_property.md)
+
+## TwilioErrors.ServerErrors.GatewayTimeout.name property
+
+GatewayTimeout
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.solutions_property.md
new file mode 100644
index 00000000..d4a4e26e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [GatewayTimeout](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.solutions_property.md)
+
+## TwilioErrors.ServerErrors.GatewayTimeout.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class._constructor__constructor.md
new file mode 100644
index 00000000..c910e10b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [InternalServerError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class._constructor__constructor.md)
+
+## TwilioErrors.ServerErrors.InternalServerError.(constructor)
+
+Constructs a new instance of the `InternalServerError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.causes_property.md
new file mode 100644
index 00000000..ecc9ea5b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [InternalServerError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.causes_property.md)
+
+## TwilioErrors.ServerErrors.InternalServerError.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.description_property.md
new file mode 100644
index 00000000..f8442f8e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [InternalServerError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.description_property.md)
+
+## TwilioErrors.ServerErrors.InternalServerError.description property
+
+Internal Server Error (HTTP/SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.explanation_property.md
new file mode 100644
index 00000000..921acf99
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [InternalServerError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.explanation_property.md)
+
+## TwilioErrors.ServerErrors.InternalServerError.explanation property
+
+The server could not fulfill the request due to some unexpected condition.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md
new file mode 100644
index 00000000..a4b94bb7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [InternalServerError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md)
+
+## TwilioErrors.ServerErrors.InternalServerError class
+
+ServerErrors.InternalServerError error. Error code `31500`.
+
+Signature:
+
+```typescript
+class InternalServerError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class._constructor__constructor.md) | | Constructs a new instance of the InternalServerError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.description_property.md) | | string | Internal Server Error (HTTP/SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.explanation_property.md) | | string | The server could not fulfill the request due to some unexpected condition. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.name_property.md) | | string | InternalServerError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.name_property.md
new file mode 100644
index 00000000..7f55b85e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [InternalServerError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.name_property.md)
+
+## TwilioErrors.ServerErrors.InternalServerError.name property
+
+InternalServerError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.solutions_property.md
new file mode 100644
index 00000000..eb649f50
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [InternalServerError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.solutions_property.md)
+
+## TwilioErrors.ServerErrors.InternalServerError.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md
new file mode 100644
index 00000000..7574fe36
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md)
+
+## TwilioErrors.ServerErrors namespace
+
+Server errors.
+
+Signature:
+
+```typescript
+export declare namespace ServerErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [BadGateway](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.badgateway_class.md) | ServerErrors.BadGateway error. Error code 31502
. |
+| [DNSResolutionError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.dnsresolutionerror_class.md) | ServerErrors.DNSResolutionError error. Error code 31530
. |
+| [GatewayTimeout](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.gatewaytimeout_class.md) | ServerErrors.GatewayTimeout error. Error code 31504
. |
+| [InternalServerError](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.internalservererror_class.md) | ServerErrors.InternalServerError error. Error code 31500
. |
+| [ServiceUnavailable](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md) | ServerErrors.ServiceUnavailable error. Error code 31503
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class._constructor__constructor.md
new file mode 100644
index 00000000..8e1866b6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [ServiceUnavailable](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class._constructor__constructor.md)
+
+## TwilioErrors.ServerErrors.ServiceUnavailable.(constructor)
+
+Constructs a new instance of the `ServiceUnavailable` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.causes_property.md
new file mode 100644
index 00000000..a288a1ae
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [ServiceUnavailable](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.causes_property.md)
+
+## TwilioErrors.ServerErrors.ServiceUnavailable.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.description_property.md
new file mode 100644
index 00000000..2062e8ce
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [ServiceUnavailable](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.description_property.md)
+
+## TwilioErrors.ServerErrors.ServiceUnavailable.description property
+
+Service Unavailable (HTTP/SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.explanation_property.md
new file mode 100644
index 00000000..c6a0b5f9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [ServiceUnavailable](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.explanation_property.md)
+
+## TwilioErrors.ServerErrors.ServiceUnavailable.explanation property
+
+The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md
new file mode 100644
index 00000000..66a9b106
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [ServiceUnavailable](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md)
+
+## TwilioErrors.ServerErrors.ServiceUnavailable class
+
+ServerErrors.ServiceUnavailable error. Error code `31503`.
+
+Signature:
+
+```typescript
+class ServiceUnavailable extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class._constructor__constructor.md) | | Constructs a new instance of the ServiceUnavailable
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.description_property.md) | | string | Service Unavailable (HTTP/SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.explanation_property.md) | | string | The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.name_property.md) | | string | ServiceUnavailable |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.name_property.md
new file mode 100644
index 00000000..18375512
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [ServiceUnavailable](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.name_property.md)
+
+## TwilioErrors.ServerErrors.ServiceUnavailable.name property
+
+ServiceUnavailable
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.solutions_property.md
new file mode 100644
index 00000000..b62ba98a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [ServerErrors](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.md) > [ServiceUnavailable](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.servererrors_namespace.serviceunavailable_class.solutions_property.md)
+
+## TwilioErrors.ServerErrors.ServiceUnavailable.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class._constructor__constructor.md
new file mode 100644
index 00000000..dbb8d21a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SignalingErrors](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md) > [ConnectionDisconnected](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class._constructor__constructor.md)
+
+## TwilioErrors.SignalingErrors.ConnectionDisconnected.(constructor)
+
+Constructs a new instance of the `ConnectionDisconnected` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.causes_property.md
new file mode 100644
index 00000000..150a081b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SignalingErrors](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md) > [ConnectionDisconnected](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.causes_property.md)
+
+## TwilioErrors.SignalingErrors.ConnectionDisconnected.causes property
+
+The device running your application lost its Internet connection.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.description_property.md
new file mode 100644
index 00000000..767d65f5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SignalingErrors](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md) > [ConnectionDisconnected](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.description_property.md)
+
+## TwilioErrors.SignalingErrors.ConnectionDisconnected.description property
+
+Signaling connection disconnected
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.explanation_property.md
new file mode 100644
index 00000000..edf3c8f3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SignalingErrors](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md) > [ConnectionDisconnected](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.explanation_property.md)
+
+## TwilioErrors.SignalingErrors.ConnectionDisconnected.explanation property
+
+Raised whenever the signaling connection is unexpectedly disconnected.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md
new file mode 100644
index 00000000..baa19654
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SignalingErrors](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md) > [ConnectionDisconnected](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md)
+
+## TwilioErrors.SignalingErrors.ConnectionDisconnected class
+
+SignalingErrors.ConnectionDisconnected error. Error code `53001`.
+
+Signature:
+
+```typescript
+class ConnectionDisconnected extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class._constructor__constructor.md) | | Constructs a new instance of the ConnectionDisconnected
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.causes_property.md) | | string\[\] | The device running your application lost its Internet connection. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.description_property.md) | | string | Signaling connection disconnected |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.explanation_property.md) | | string | Raised whenever the signaling connection is unexpectedly disconnected. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.name_property.md) | | string | ConnectionDisconnected |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.solutions_property.md) | | string\[\] | Ensure the device running your application has access to a stable Internet connection. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.name_property.md
new file mode 100644
index 00000000..0c1986dd
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SignalingErrors](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md) > [ConnectionDisconnected](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.name_property.md)
+
+## TwilioErrors.SignalingErrors.ConnectionDisconnected.name property
+
+ConnectionDisconnected
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.solutions_property.md
new file mode 100644
index 00000000..092e4fa4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SignalingErrors](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md) > [ConnectionDisconnected](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.solutions_property.md)
+
+## TwilioErrors.SignalingErrors.ConnectionDisconnected.solutions property
+
+Ensure the device running your application has access to a stable Internet connection.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md
new file mode 100644
index 00000000..6fc87465
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SignalingErrors](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.md)
+
+## TwilioErrors.SignalingErrors namespace
+
+Signaling errors.
+
+Signature:
+
+```typescript
+export declare namespace SignalingErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [ConnectionDisconnected](./voice-react-native-sdk.twilioerrors_namespace.signalingerrors_namespace.connectiondisconnected_class.md) | SignalingErrors.ConnectionDisconnected error. Error code 53001
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class._constructor__constructor.md
new file mode 100644
index 00000000..dd632eae
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [BusyEverywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class._constructor__constructor.md)
+
+## TwilioErrors.SIPServerErrors.BusyEverywhere.(constructor)
+
+Constructs a new instance of the `BusyEverywhere` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.causes_property.md
new file mode 100644
index 00000000..e352df90
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [BusyEverywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.causes_property.md)
+
+## TwilioErrors.SIPServerErrors.BusyEverywhere.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.description_property.md
new file mode 100644
index 00000000..49ef007d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [BusyEverywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.description_property.md)
+
+## TwilioErrors.SIPServerErrors.BusyEverywhere.description property
+
+Busy Everywhere (SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.explanation_property.md
new file mode 100644
index 00000000..6fc1d074
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [BusyEverywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.explanation_property.md)
+
+## TwilioErrors.SIPServerErrors.BusyEverywhere.explanation property
+
+All possible destinations are busy.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md
new file mode 100644
index 00000000..9c6c9348
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [BusyEverywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md)
+
+## TwilioErrors.SIPServerErrors.BusyEverywhere class
+
+SIPServerErrors.BusyEverywhere error. Error code `31600`.
+
+Signature:
+
+```typescript
+class BusyEverywhere extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class._constructor__constructor.md) | | Constructs a new instance of the BusyEverywhere
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.description_property.md) | | string | Busy Everywhere (SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.explanation_property.md) | | string | All possible destinations are busy. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.name_property.md) | | string | BusyEverywhere |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.name_property.md
new file mode 100644
index 00000000..33b9ad6f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [BusyEverywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.name_property.md)
+
+## TwilioErrors.SIPServerErrors.BusyEverywhere.name property
+
+BusyEverywhere
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.solutions_property.md
new file mode 100644
index 00000000..eb044aa9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [BusyEverywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.solutions_property.md)
+
+## TwilioErrors.SIPServerErrors.BusyEverywhere.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class._constructor__constructor.md
new file mode 100644
index 00000000..441c3fc8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [Decline](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class._constructor__constructor.md)
+
+## TwilioErrors.SIPServerErrors.Decline.(constructor)
+
+Constructs a new instance of the `Decline` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.causes_property.md
new file mode 100644
index 00000000..0db18f4c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [Decline](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.causes_property.md)
+
+## TwilioErrors.SIPServerErrors.Decline.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.description_property.md
new file mode 100644
index 00000000..e9b530c7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [Decline](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.description_property.md)
+
+## TwilioErrors.SIPServerErrors.Decline.description property
+
+Decline (SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.explanation_property.md
new file mode 100644
index 00000000..53836a90
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [Decline](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.explanation_property.md)
+
+## TwilioErrors.SIPServerErrors.Decline.explanation property
+
+The callee does not wish to participate in the call.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md
new file mode 100644
index 00000000..3222f1f3
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [Decline](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md)
+
+## TwilioErrors.SIPServerErrors.Decline class
+
+SIPServerErrors.Decline error. Error code `31603`.
+
+Signature:
+
+```typescript
+class Decline extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class._constructor__constructor.md) | | Constructs a new instance of the Decline
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.description_property.md) | | string | Decline (SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.explanation_property.md) | | string | The callee does not wish to participate in the call. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.name_property.md) | | string | Decline |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.name_property.md
new file mode 100644
index 00000000..7807b6b5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [Decline](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.name_property.md)
+
+## TwilioErrors.SIPServerErrors.Decline.name property
+
+Decline
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.solutions_property.md
new file mode 100644
index 00000000..70800d5d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [Decline](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.solutions_property.md)
+
+## TwilioErrors.SIPServerErrors.Decline.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class._constructor__constructor.md
new file mode 100644
index 00000000..a17a9d56
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [DoesNotExistAnywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class._constructor__constructor.md)
+
+## TwilioErrors.SIPServerErrors.DoesNotExistAnywhere.(constructor)
+
+Constructs a new instance of the `DoesNotExistAnywhere` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.causes_property.md
new file mode 100644
index 00000000..601f0d10
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [DoesNotExistAnywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.causes_property.md)
+
+## TwilioErrors.SIPServerErrors.DoesNotExistAnywhere.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.description_property.md
new file mode 100644
index 00000000..e95b11bf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [DoesNotExistAnywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.description_property.md)
+
+## TwilioErrors.SIPServerErrors.DoesNotExistAnywhere.description property
+
+Does Not Exist Anywhere (SIP)
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.explanation_property.md
new file mode 100644
index 00000000..cb4c10d9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [DoesNotExistAnywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.explanation_property.md)
+
+## TwilioErrors.SIPServerErrors.DoesNotExistAnywhere.explanation property
+
+The requested callee does not exist anywhere.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md
new file mode 100644
index 00000000..71fa71d6
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [DoesNotExistAnywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md)
+
+## TwilioErrors.SIPServerErrors.DoesNotExistAnywhere class
+
+SIPServerErrors.DoesNotExistAnywhere error. Error code `31604`.
+
+Signature:
+
+```typescript
+class DoesNotExistAnywhere extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class._constructor__constructor.md) | | Constructs a new instance of the DoesNotExistAnywhere
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.description_property.md) | | string | Does Not Exist Anywhere (SIP) |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.explanation_property.md) | | string | The requested callee does not exist anywhere. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.name_property.md) | | string | DoesNotExistAnywhere |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.name_property.md
new file mode 100644
index 00000000..55191a55
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [DoesNotExistAnywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.name_property.md)
+
+## TwilioErrors.SIPServerErrors.DoesNotExistAnywhere.name property
+
+DoesNotExistAnywhere
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.solutions_property.md
new file mode 100644
index 00000000..fb61619b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md) > [DoesNotExistAnywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.solutions_property.md)
+
+## TwilioErrors.SIPServerErrors.DoesNotExistAnywhere.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md
new file mode 100644
index 00000000..79e88567
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [SIPServerErrors](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.md)
+
+## TwilioErrors.SIPServerErrors namespace
+
+SIPServer errors.
+
+Signature:
+
+```typescript
+export declare namespace SIPServerErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [BusyEverywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.busyeverywhere_class.md) | SIPServerErrors.BusyEverywhere error. Error code 31600
. |
+| [Decline](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.decline_class.md) | SIPServerErrors.Decline error. Error code 31603
. |
+| [DoesNotExistAnywhere](./voice-react-native-sdk.twilioerrors_namespace.sipservererrors_namespace.doesnotexistanywhere_class.md) | SIPServerErrors.DoesNotExistAnywhere error. Error code 31604
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class._constructor__constructor.md
new file mode 100644
index 00000000..c3b334ea
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class._constructor__constructor.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwilioError](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class._constructor__constructor.md)
+
+## TwilioErrors.TwilioError.(constructor)
+
+Constructs a new instance of the `TwilioError` class
+
+Signature:
+
+```typescript
+constructor(message: string, code?: number);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+| code | number | (Optional) |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.causes_property.md
new file mode 100644
index 00000000..ff127652
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.causes_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwilioError](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.causes_property.md)
+
+## TwilioErrors.TwilioError.causes property
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.code_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.code_property.md
new file mode 100644
index 00000000..5b8bbca9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.code_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwilioError](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md) > [code](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.code_property.md)
+
+## TwilioErrors.TwilioError.code property
+
+Signature:
+
+```typescript
+code: number | undefined;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.description_property.md
new file mode 100644
index 00000000..28b318a9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.description_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwilioError](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.description_property.md)
+
+## TwilioErrors.TwilioError.description property
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.explanation_property.md
new file mode 100644
index 00000000..5ca87fe4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.explanation_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwilioError](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.explanation_property.md)
+
+## TwilioErrors.TwilioError.explanation property
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md
new file mode 100644
index 00000000..e613ccc1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwilioError](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md)
+
+## TwilioErrors.TwilioError class
+
+Generic Twilio error that the SDK will raise when encountering an error. Can be used to describe backend errors.
+
+Signature:
+
+```typescript
+export declare class TwilioError extends Error
+```
+Extends: Error
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message, code)](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class._constructor__constructor.md) | | Constructs a new instance of the TwilioError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.causes_property.md) | | string\[\] | |
+| [code](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.code_property.md) | | number \| undefined | |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.description_property.md) | | string | |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.explanation_property.md) | | string | |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.solutions_property.md) | | string\[\] | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.solutions_property.md
new file mode 100644
index 00000000..c4eb7fc9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.solutions_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwilioError](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.twilioerror_class.solutions_property.md)
+
+## TwilioErrors.TwilioError.solutions property
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class._constructor__constructor.md
new file mode 100644
index 00000000..d4442e11
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwiMLErrors](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md) > [InvalidApplicationSid](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class._constructor__constructor.md)
+
+## TwilioErrors.TwiMLErrors.InvalidApplicationSid.(constructor)
+
+Constructs a new instance of the `InvalidApplicationSid` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.causes_property.md
new file mode 100644
index 00000000..0bec1ee9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwiMLErrors](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md) > [InvalidApplicationSid](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.causes_property.md)
+
+## TwilioErrors.TwiMLErrors.InvalidApplicationSid.causes property
+
+Not applicable.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.description_property.md
new file mode 100644
index 00000000..a1ade3e7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwiMLErrors](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md) > [InvalidApplicationSid](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.description_property.md)
+
+## TwilioErrors.TwiMLErrors.InvalidApplicationSid.description property
+
+Invalid ApplicationSid
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.explanation_property.md
new file mode 100644
index 00000000..c545fe86
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwiMLErrors](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md) > [InvalidApplicationSid](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.explanation_property.md)
+
+## TwilioErrors.TwiMLErrors.InvalidApplicationSid.explanation property
+
+You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md
new file mode 100644
index 00000000..9c7b58bf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwiMLErrors](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md) > [InvalidApplicationSid](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md)
+
+## TwilioErrors.TwiMLErrors.InvalidApplicationSid class
+
+TwiMLErrors.InvalidApplicationSid error. Error code `21218`.
+
+Signature:
+
+```typescript
+class InvalidApplicationSid extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class._constructor__constructor.md) | | Constructs a new instance of the InvalidApplicationSid
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.causes_property.md) | | string\[\] | Not applicable. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.description_property.md) | | string | Invalid ApplicationSid |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.explanation_property.md) | | string | You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.name_property.md) | | string | InvalidApplicationSid |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.solutions_property.md) | | string\[\] | Not applicable. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.name_property.md
new file mode 100644
index 00000000..cd70f81e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwiMLErrors](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md) > [InvalidApplicationSid](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.name_property.md)
+
+## TwilioErrors.TwiMLErrors.InvalidApplicationSid.name property
+
+InvalidApplicationSid
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.solutions_property.md
new file mode 100644
index 00000000..d4ab8f49
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwiMLErrors](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md) > [InvalidApplicationSid](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.solutions_property.md)
+
+## TwilioErrors.TwiMLErrors.InvalidApplicationSid.solutions property
+
+Not applicable.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md
new file mode 100644
index 00000000..5e3467ec
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [TwiMLErrors](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.md)
+
+## TwilioErrors.TwiMLErrors namespace
+
+TwiML errors.
+
+Signature:
+
+```typescript
+export declare namespace TwiMLErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [InvalidApplicationSid](./voice-react-native-sdk.twilioerrors_namespace.twimlerrors_namespace.invalidapplicationsid_class.md) | TwiMLErrors.InvalidApplicationSid error. Error code 21218
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class._constructor__constructor.md
new file mode 100644
index 00000000..4755eed4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UnsupportedPlatformError](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class._constructor__constructor.md)
+
+## TwilioErrors.UnsupportedPlatformError.(constructor)
+
+Constructs a new instance of the `UnsupportedPlatformError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.description_property.md
new file mode 100644
index 00000000..19f37473
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.description_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UnsupportedPlatformError](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.description_property.md)
+
+## TwilioErrors.UnsupportedPlatformError.description property
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.explanation_property.md
new file mode 100644
index 00000000..0bf32577
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.explanation_property.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UnsupportedPlatformError](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.explanation_property.md)
+
+## TwilioErrors.UnsupportedPlatformError.explanation property
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.md
new file mode 100644
index 00000000..8570e787
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UnsupportedPlatformError](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.md)
+
+## TwilioErrors.UnsupportedPlatformError class
+
+Error describing that the an unsupported platform other than Android or iOS has been detected.
+
+Signature:
+
+```typescript
+export declare class UnsupportedPlatformError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class._constructor__constructor.md) | | Constructs a new instance of the UnsupportedPlatformError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.description_property.md) | | string | |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.unsupportedplatformerror_class.explanation_property.md) | | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md
new file mode 100644
index 00000000..f5b21234
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UserMediaErrors](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md)
+
+## TwilioErrors.UserMediaErrors namespace
+
+UserMedia errors.
+
+Signature:
+
+```typescript
+export declare namespace UserMediaErrors
+```
+
+## Classes
+
+| Class | Description |
+| --- | --- |
+| [PermissionDeniedError](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md) | UserMediaErrors.PermissionDeniedError error. Error code 31401
. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class._constructor__constructor.md
new file mode 100644
index 00000000..c6e7dd76
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class._constructor__constructor.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UserMediaErrors](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md) > [PermissionDeniedError](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md) > [(constructor)](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class._constructor__constructor.md)
+
+## TwilioErrors.UserMediaErrors.PermissionDeniedError.(constructor)
+
+Constructs a new instance of the `PermissionDeniedError` class
+
+Signature:
+
+```typescript
+constructor(message: string);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| message | string | |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.causes_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.causes_property.md
new file mode 100644
index 00000000..12c998ce
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.causes_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UserMediaErrors](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md) > [PermissionDeniedError](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md) > [causes](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.causes_property.md)
+
+## TwilioErrors.UserMediaErrors.PermissionDeniedError.causes property
+
+The user denied the getUserMedia request. The browser denied the getUserMedia request. The application has not been configured with the proper permissions.
+
+Signature:
+
+```typescript
+causes: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.description_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.description_property.md
new file mode 100644
index 00000000..014a9461
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.description_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UserMediaErrors](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md) > [PermissionDeniedError](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md) > [description](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.description_property.md)
+
+## TwilioErrors.UserMediaErrors.PermissionDeniedError.description property
+
+UserMedia Permission Denied Error
+
+Signature:
+
+```typescript
+description: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.explanation_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.explanation_property.md
new file mode 100644
index 00000000..009f83fb
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.explanation_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UserMediaErrors](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md) > [PermissionDeniedError](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md) > [explanation](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.explanation_property.md)
+
+## TwilioErrors.UserMediaErrors.PermissionDeniedError.explanation property
+
+The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio.
+
+Signature:
+
+```typescript
+explanation: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md
new file mode 100644
index 00000000..3310d40c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UserMediaErrors](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md) > [PermissionDeniedError](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md)
+
+## TwilioErrors.UserMediaErrors.PermissionDeniedError class
+
+UserMediaErrors.PermissionDeniedError error. Error code `31401`.
+
+Signature:
+
+```typescript
+class PermissionDeniedError extends TwilioError
+```
+Extends: TwilioError
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(message)](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class._constructor__constructor.md) | | Constructs a new instance of the PermissionDeniedError
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [causes](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.causes_property.md) | | string\[\] | The user denied the getUserMedia request. The browser denied the getUserMedia request. The application has not been configured with the proper permissions. |
+| [description](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.description_property.md) | | string | UserMedia Permission Denied Error |
+| [explanation](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.explanation_property.md) | | string | The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio. |
+| [name](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.name_property.md) | | string | PermissionDeniedError |
+| [solutions](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.solutions_property.md) | | string\[\] | The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser. The user should to verify that the browser has permission to access the microphone at this address. The user should ensure that the proper permissions have been granted in the mobile device OS. |
+
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.name_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.name_property.md
new file mode 100644
index 00000000..c3384d8d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.name_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UserMediaErrors](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md) > [PermissionDeniedError](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md) > [name](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.name_property.md)
+
+## TwilioErrors.UserMediaErrors.PermissionDeniedError.name property
+
+PermissionDeniedError
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.solutions_property.md b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.solutions_property.md
new file mode 100644
index 00000000..df77dfa5
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.solutions_property.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) > [UserMediaErrors](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.md) > [PermissionDeniedError](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.md) > [solutions](./voice-react-native-sdk.twilioerrors_namespace.usermediaerrors_namespace.permissiondeniederror_class.solutions_property.md)
+
+## TwilioErrors.UserMediaErrors.PermissionDeniedError.solutions property
+
+The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser. The user should to verify that the browser has permission to access the microphone at this address. The user should ensure that the proper permissions have been granted in the mobile device OS.
+
+Signature:
+
+```typescript
+solutions: string[];
+```
diff --git a/docs/api/voice-react-native-sdk.voice_class._constructor__constructor.md b/docs/api/voice-react-native-sdk.voice_class._constructor__constructor.md
new file mode 100644
index 00000000..fdbff254
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class._constructor__constructor.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [(constructor)](./voice-react-native-sdk.voice_class._constructor__constructor.md)
+
+## Voice.(constructor)
+
+Main entry-point of the Voice SDK. Provides access to the entire feature-set of the library.
+
+Signature:
+
+```typescript
+constructor();
+```
diff --git a/docs/api/voice-react-native-sdk.voice_class.connect_method.md b/docs/api/voice-react-native-sdk.voice_class.connect_method.md
new file mode 100644
index 00000000..fdb0ff45
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.connect_method.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [connect](./voice-react-native-sdk.voice_class.connect_method.md)
+
+## Voice.connect() method
+
+Create an outgoing call.
+
+Signature:
+
+```typescript
+connect(token: string, { contactHandle, params, }?: Voice.ConnectOptions): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| token | string | A Twilio Access Token, usually minted by an authentication-gated endpoint using a Twilio helper library. |
+| { contactHandle, params, } | [Voice.ConnectOptions](./voice-react-native-sdk.voice_namespace.connectoptions_typealias.md) | (Optional) |
+
+Returns:
+
+Promise<[Call](./voice-react-native-sdk.call_class.md)>
+
+A `Promise` that - Resolves with a call when the call is created. - Rejects: \* When a call is not able to be created on the native layer. \* With an [TwilioErrors.InvalidArgumentError](./voice-react-native-sdk.twilioerrors_namespace.invalidargumenterror_class.md) when invalid arguments are passed.
+
+## Remarks
+
+Note that the resolution of the returned `Promise` does not imply any call event occurring, such as answered or rejected. The `contactHandle` parameter is only required for iOS apps. Currently the parameter does have any effect on Android apps and can be ignored. `Default Contact` will appear in the iOS call history if the value is empty or not provided.
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.getaudiodevices_method.md b/docs/api/voice-react-native-sdk.voice_class.getaudiodevices_method.md
new file mode 100644
index 00000000..0db028a8
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.getaudiodevices_method.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [getAudioDevices](./voice-react-native-sdk.voice_class.getaudiodevices_method.md)
+
+## Voice.getAudioDevices() method
+
+Get audio device information from the native layer.
+
+Signature:
+
+```typescript
+getAudioDevices(): Promise<{
+ audioDevices: AudioDevice[];
+ selectedDevice?: AudioDevice;
+ }>;
+```
+Returns:
+
+Promise<{ audioDevices: [AudioDevice](./voice-react-native-sdk.audiodevice_class.md)\[\]; selectedDevice?: [AudioDevice](./voice-react-native-sdk.audiodevice_class.md); }>
+
+A `Promise` that - Resolves with a list of the native device's audio devices and the currently selected device.
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.getcallinvites_method.md b/docs/api/voice-react-native-sdk.voice_class.getcallinvites_method.md
new file mode 100644
index 00000000..a1e8c23d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.getcallinvites_method.md
@@ -0,0 +1,23 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [getCallInvites](./voice-react-native-sdk.voice_class.getcallinvites_method.md)
+
+## Voice.getCallInvites() method
+
+Get a list of pending call invites.
+
+Signature:
+
+```typescript
+getCallInvites(): Promise>;
+```
+Returns:
+
+Promise<ReadonlyMap<Uuid, [CallInvite](./voice-react-native-sdk.callinvite_class.md)>>
+
+A `Promise` that - Resolves with a mapping of `Uuid`s to [CallInvite](./voice-react-native-sdk.callinvite_class.md)s.
+
+## Remarks
+
+This list will not contain any call invites that have been "settled" (answered or rejected).
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.getcalls_method.md b/docs/api/voice-react-native-sdk.voice_class.getcalls_method.md
new file mode 100644
index 00000000..67f00d43
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.getcalls_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [getCalls](./voice-react-native-sdk.voice_class.getcalls_method.md)
+
+## Voice.getCalls() method
+
+Get a list of existing calls, ongoing and pending. This will not return any call that has finished.
+
+Signature:
+
+```typescript
+getCalls(): Promise>;
+```
+Returns:
+
+Promise<ReadonlyMap<Uuid, [Call](./voice-react-native-sdk.call_class.md)>>
+
+A `Promise` that - Resolves with a mapping of `Uuid`s to [Call](./voice-react-native-sdk.call_class.md)s.
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.getdevicetoken_method.md b/docs/api/voice-react-native-sdk.voice_class.getdevicetoken_method.md
new file mode 100644
index 00000000..8a03a74c
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.getdevicetoken_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [getDeviceToken](./voice-react-native-sdk.voice_class.getdevicetoken_method.md)
+
+## Voice.getDeviceToken() method
+
+Get the Device token from the native layer.
+
+Signature:
+
+```typescript
+getDeviceToken(): Promise;
+```
+Returns:
+
+Promise<string>
+
+a Promise that resolves with a string representing the Device token.
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.getversion_method.md b/docs/api/voice-react-native-sdk.voice_class.getversion_method.md
new file mode 100644
index 00000000..4296c69f
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.getversion_method.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [getVersion](./voice-react-native-sdk.voice_class.getversion_method.md)
+
+## Voice.getVersion() method
+
+Get the version of the native SDK. Note that this is not the version of the React Native SDK, this is the version of the mobile SDK that the RN SDK is utilizing.
+
+Signature:
+
+```typescript
+getVersion(): Promise;
+```
+Returns:
+
+Promise<string>
+
+A `Promise` that - Resolves with a string representing the version of the native SDK.
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.initializepushregistry_method.md b/docs/api/voice-react-native-sdk.voice_class.initializepushregistry_method.md
new file mode 100644
index 00000000..74001a96
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.initializepushregistry_method.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [initializePushRegistry](./voice-react-native-sdk.voice_class.initializepushregistry_method.md)
+
+## Voice.initializePushRegistry() method
+
+Initialize a Push Registry instance inside the SDK for handling PushKit device token updates and receiving push notifications.
+
+Signature:
+
+```typescript
+initializePushRegistry(): Promise;
+```
+Returns:
+
+Promise<void>
+
+## Remarks
+
+Unsupported platforms: - Android
+
+This API is specific to iOS and unavailable in Android. Use this method if the application does not have an iOS PushKit module and wishes to delegate the event handling to the SDK. Call this method upon launching the app to guarantee that incoming call push notifications will be surfaced to the users, especially when the app is not running in the foreground.
+
+ A `Promise` that - Resolves when the initialization is done.
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.md b/docs/api/voice-react-native-sdk.voice_class.md
new file mode 100644
index 00000000..748937d4
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.md
@@ -0,0 +1,57 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md)
+
+## Voice class
+
+Main entry-point of the Voice SDK. Provides access to the entire feature-set of the library.
+
+Signature:
+
+```typescript
+export declare class Voice extends EventEmitter
+```
+Extends: EventEmitter
+
+## Remarks
+
+- See also the [Voice.Event](./voice-react-native-sdk.voice_namespace.event_enum.md) enum for events emitted by `Voice` objects. - See also the [Voice interface](./voice-react-native-sdk.voice_interface.md) for events emitted by this class and associated types. - See also the [Voice namespace](./voice-react-native-sdk.voice_namespace.md) for types and enumerations used by this class.
+
+## Example
+
+Usage:
+
+```
+const token = '...';
+
+const voice = new Voice();
+
+voice.on(Voice.Event.CallInvite, (callInvite: CallInvite) => {
+ callInvite.accept();
+});
+
+voice.register(token);
+```
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)()](./voice-react-native-sdk.voice_class._constructor__constructor.md) | | Main entry-point of the Voice SDK. Provides access to the entire feature-set of the library. |
+
+## Methods
+
+| Method | Modifiers | Description |
+| --- | --- | --- |
+| [connect(token, { contactHandle, params, })](./voice-react-native-sdk.voice_class.connect_method.md) | | Create an outgoing call. |
+| [getAudioDevices()](./voice-react-native-sdk.voice_class.getaudiodevices_method.md) | | Get audio device information from the native layer. |
+| [getCallInvites()](./voice-react-native-sdk.voice_class.getcallinvites_method.md) | | Get a list of pending call invites. |
+| [getCalls()](./voice-react-native-sdk.voice_class.getcalls_method.md) | | Get a list of existing calls, ongoing and pending. This will not return any call that has finished. |
+| [getDeviceToken()](./voice-react-native-sdk.voice_class.getdevicetoken_method.md) | | Get the Device token from the native layer. |
+| [getVersion()](./voice-react-native-sdk.voice_class.getversion_method.md) | | Get the version of the native SDK. Note that this is not the version of the React Native SDK, this is the version of the mobile SDK that the RN SDK is utilizing. |
+| [initializePushRegistry()](./voice-react-native-sdk.voice_class.initializepushregistry_method.md) | | Initialize a Push Registry instance inside the SDK for handling PushKit device token updates and receiving push notifications. |
+| [register(token)](./voice-react-native-sdk.voice_class.register_method.md) | | Register this device for incoming calls. |
+| [setCallKitConfiguration(configuration)](./voice-react-native-sdk.voice_class.setcallkitconfiguration_method.md) | | Custom iOS CallKit configuration. |
+| [showAvRoutePickerView()](./voice-react-native-sdk.voice_class.showavroutepickerview_method.md) | | Show the native AV route picker. |
+| [unregister(token)](./voice-react-native-sdk.voice_class.unregister_method.md) | | Unregister this device for incoming calls. |
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.register_method.md b/docs/api/voice-react-native-sdk.voice_class.register_method.md
new file mode 100644
index 00000000..6d6feea7
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.register_method.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [register](./voice-react-native-sdk.voice_class.register_method.md)
+
+## Voice.register() method
+
+Register this device for incoming calls.
+
+Signature:
+
+```typescript
+register(token: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| token | string | A Twilio Access Token. |
+
+Returns:
+
+Promise<void>
+
+A `Promise` that - Resolves when the device has been registered.
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.setcallkitconfiguration_method.md b/docs/api/voice-react-native-sdk.voice_class.setcallkitconfiguration_method.md
new file mode 100644
index 00000000..e607db62
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.setcallkitconfiguration_method.md
@@ -0,0 +1,32 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [setCallKitConfiguration](./voice-react-native-sdk.voice_class.setcallkitconfiguration_method.md)
+
+## Voice.setCallKitConfiguration() method
+
+Custom iOS CallKit configuration.
+
+Signature:
+
+```typescript
+setCallKitConfiguration(configuration: CallKit.ConfigurationOptions): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| configuration | [CallKit.ConfigurationOptions](./voice-react-native-sdk.callkit_namespace.configurationoptions_typealias.md) | iOS CallKit configuration options. |
+
+Returns:
+
+Promise<void>
+
+A `Promise` that - Resolves when the configuration has been applied. - Rejects if the configuration is unable to be applied.
+
+## Remarks
+
+Unsupported platforms: - Android
+
+See [CallKit](./voice-react-native-sdk.callkit_namespace.md) for more information.
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.showavroutepickerview_method.md b/docs/api/voice-react-native-sdk.voice_class.showavroutepickerview_method.md
new file mode 100644
index 00000000..47677a8a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.showavroutepickerview_method.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [showAvRoutePickerView](./voice-react-native-sdk.voice_class.showavroutepickerview_method.md)
+
+## Voice.showAvRoutePickerView() method
+
+Show the native AV route picker.
+
+Signature:
+
+```typescript
+showAvRoutePickerView(): Promise;
+```
+Returns:
+
+Promise<void>
+
+A `Promise` that - Resolves when the AV Route Picker View is shown.
+
+## Remarks
+
+Unsupported platforms: - Android
+
+This API is specific to iOS and unavailable in Android. If this API is invoked on Android, there will be no operation and the returned `Promise` will immediately resolve with `null`.
+
diff --git a/docs/api/voice-react-native-sdk.voice_class.unregister_method.md b/docs/api/voice-react-native-sdk.voice_class.unregister_method.md
new file mode 100644
index 00000000..4ceeb8bb
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_class.unregister_method.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_class.md) > [unregister](./voice-react-native-sdk.voice_class.unregister_method.md)
+
+## Voice.unregister() method
+
+Unregister this device for incoming calls.
+
+Signature:
+
+```typescript
+unregister(token: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| token | string | A Twilio Access Token. |
+
+Returns:
+
+Promise<void>
+
+A `Promise` that - Resolves when the device has been unregistered.
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.addlistener_1_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.addlistener_1_methodsignature.md
new file mode 100644
index 00000000..2344add2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.addlistener_1_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [addListener](./voice-react-native-sdk.voice_interface.addlistener_1_methodsignature.md)
+
+## Voice.addListener() method
+
+Call invite event. Raised when an incoming call invite is received.
+
+Signature:
+
+```typescript
+addListener(callInviteEvent: Voice.Event.CallInvite, listener: Voice.Listener.CallInvite): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| callInviteEvent | [Voice.Event.CallInvite](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.CallInvite](./voice-react-native-sdk.voice_namespace.listener_namespace.callinvite_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+voice.addListener(Voice.Event.CallInvite, (callInvite: CallInvite) => {
+ // handle the incoming call invite
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.addlistener_2_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.addlistener_2_methodsignature.md
new file mode 100644
index 00000000..a97169d1
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.addlistener_2_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [addListener](./voice-react-native-sdk.voice_interface.addlistener_2_methodsignature.md)
+
+## Voice.addListener() method
+
+Error event. Raised when the SDK encounters an error.
+
+Signature:
+
+```typescript
+addListener(errorEvent: Voice.Event.Error, listener: Voice.Listener.Error): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| errorEvent | [Voice.Event.Error](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.Error](./voice-react-native-sdk.voice_namespace.listener_namespace.error_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+voice.addListener(Voice.Event.Error, (error: TwilioError.GenericError) => {
+ // handle a generic Voice SDK error
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.addlistener_3_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.addlistener_3_methodsignature.md
new file mode 100644
index 00000000..57369609
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.addlistener_3_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [addListener](./voice-react-native-sdk.voice_interface.addlistener_3_methodsignature.md)
+
+## Voice.addListener() method
+
+Registered event. Raised when the SDK is registered for incoming calls.
+
+Signature:
+
+```typescript
+addListener(registeredEvent: Voice.Event.Registered, listener: Voice.Listener.Registered): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| registeredEvent | [Voice.Event.Registered](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.Registered](./voice-react-native-sdk.voice_namespace.listener_namespace.registered_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+voice.addListener(Voice.Event.Registered, () => {
+ // handle successful registration for incoming calls
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.addlistener_4_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.addlistener_4_methodsignature.md
new file mode 100644
index 00000000..dff5f11e
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.addlistener_4_methodsignature.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [addListener](./voice-react-native-sdk.voice_interface.addlistener_4_methodsignature.md)
+
+## Voice.addListener() method
+
+Unregistered event. Raised when the SDK is unregistered for incoming calls.
+
+Signature:
+
+```typescript
+addListener(unregisteredEvent: Voice.Event.Unregistered, listener: Voice.Listener.Unregistered): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| unregisteredEvent | [Voice.Event.Unregistered](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.Unregistered](./voice-react-native-sdk.voice_namespace.listener_namespace.unregistered_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+voice.addListener(Voice.Event.Unregistered, () => {
+ // handle successful unregistration for incoming calls
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.addlistener_5_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.addlistener_5_methodsignature.md
new file mode 100644
index 00000000..59bfd5c2
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.addlistener_5_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [addListener](./voice-react-native-sdk.voice_interface.addlistener_5_methodsignature.md)
+
+## Voice.addListener() method
+
+Generic event listener typings.
+
+Signature:
+
+```typescript
+addListener(voiceEvent: Voice.Event, listener: Voice.Listener.Generic): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| voiceEvent | [Voice.Event](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.Generic](./voice-react-native-sdk.voice_namespace.listener_namespace.generic_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.addlistener_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.addlistener_methodsignature.md
new file mode 100644
index 00000000..d4d71488
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.addlistener_methodsignature.md
@@ -0,0 +1,37 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [addListener](./voice-react-native-sdk.voice_interface.addlistener_methodsignature.md)
+
+## Voice.addListener() method
+
+Audio devices updated event. Raised when the list of audio devices changes.
+
+Signature:
+
+```typescript
+addListener(audioDevicesUpdatedEvent: Voice.Event.AudioDevicesUpdated, listener: Voice.Listener.AudioDevicesUpdated): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| audioDevicesUpdatedEvent | [Voice.Event.AudioDevicesUpdated](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.AudioDevicesUpdated](./voice-react-native-sdk.voice_namespace.listener_namespace.audiodevicesupdated_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
+## Example
+
+
+```typescript
+voice.addListener(Voice.Event.AudioDevicesUpdated, () => {
+ // the list of available audio devices has changed and/or the selected
+ // audio device has been changed
+});
+```
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.md b/docs/api/voice-react-native-sdk.voice_interface.md
new file mode 100644
index 00000000..de654950
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.md
@@ -0,0 +1,37 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md)
+
+## Voice interface
+
+Defines strict typings for all events emitted by [Voice objects](./voice-react-native-sdk.voice_class.md).
+
+Signature:
+
+```typescript
+export declare interface Voice
+```
+
+## Remarks
+
+Note that the `on` function is an alias for the `addListener` function. They share identical functionality and either may be used interchangeably.
+
+- See also the [Voice class](./voice-react-native-sdk.voice_class.md). - See also the [Voice namespace](./voice-react-native-sdk.voice_namespace.md).
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [addListener(audioDevicesUpdatedEvent, listener)](./voice-react-native-sdk.voice_interface.addlistener_methodsignature.md) | Audio devices updated event. Raised when the list of audio devices changes. |
+| [addListener(callInviteEvent, listener)](./voice-react-native-sdk.voice_interface.addlistener_1_methodsignature.md) | Call invite event. Raised when an incoming call invite is received. |
+| [addListener(errorEvent, listener)](./voice-react-native-sdk.voice_interface.addlistener_2_methodsignature.md) | Error event. Raised when the SDK encounters an error. |
+| [addListener(registeredEvent, listener)](./voice-react-native-sdk.voice_interface.addlistener_3_methodsignature.md) | Registered event. Raised when the SDK is registered for incoming calls. |
+| [addListener(unregisteredEvent, listener)](./voice-react-native-sdk.voice_interface.addlistener_4_methodsignature.md) | Unregistered event. Raised when the SDK is unregistered for incoming calls. |
+| [addListener(voiceEvent, listener)](./voice-react-native-sdk.voice_interface.addlistener_5_methodsignature.md) | Generic event listener typings. |
+| [on(audioDevicesUpdatedEvent, listener)](./voice-react-native-sdk.voice_interface.on_methodsignature.md) | Audio devices updated event. Raised when the list of audio devices changes. |
+| [on(callInviteEvent, listener)](./voice-react-native-sdk.voice_interface.on_1_methodsignature.md) | Call invite event. Raised when an incoming call invite is received. |
+| [on(errorEvent, listener)](./voice-react-native-sdk.voice_interface.on_2_methodsignature.md) | Error event. Raised when the SDK encounters an error. |
+| [on(registeredEvent, listener)](./voice-react-native-sdk.voice_interface.on_3_methodsignature.md) | Registered event. Raised when the SDK is registered for incoming calls. |
+| [on(unregisteredEvent, listener)](./voice-react-native-sdk.voice_interface.on_4_methodsignature.md) | Unregistered event. Raised when the SDK is unregistered for incoming calls. |
+| [on(voiceEvent, listener)](./voice-react-native-sdk.voice_interface.on_5_methodsignature.md) | Generic event listener typings. |
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.on_1_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.on_1_methodsignature.md
new file mode 100644
index 00000000..d239ab32
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.on_1_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [on](./voice-react-native-sdk.voice_interface.on_1_methodsignature.md)
+
+## Voice.on() method
+
+Call invite event. Raised when an incoming call invite is received.
+
+Signature:
+
+```typescript
+on(callInviteEvent: Voice.Event.CallInvite, listener: Voice.Listener.CallInvite): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| callInviteEvent | [Voice.Event.CallInvite](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.CallInvite](./voice-react-native-sdk.voice_namespace.listener_namespace.callinvite_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.on_2_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.on_2_methodsignature.md
new file mode 100644
index 00000000..c0cee513
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.on_2_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [on](./voice-react-native-sdk.voice_interface.on_2_methodsignature.md)
+
+## Voice.on() method
+
+Error event. Raised when the SDK encounters an error.
+
+Signature:
+
+```typescript
+on(errorEvent: Voice.Event.Error, listener: Voice.Listener.Error): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| errorEvent | [Voice.Event.Error](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.Error](./voice-react-native-sdk.voice_namespace.listener_namespace.error_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.on_3_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.on_3_methodsignature.md
new file mode 100644
index 00000000..e3781d6b
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.on_3_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [on](./voice-react-native-sdk.voice_interface.on_3_methodsignature.md)
+
+## Voice.on() method
+
+Registered event. Raised when the SDK is registered for incoming calls.
+
+Signature:
+
+```typescript
+on(registeredEvent: Voice.Event.Registered, listener: Voice.Listener.Registered): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| registeredEvent | [Voice.Event.Registered](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.Registered](./voice-react-native-sdk.voice_namespace.listener_namespace.registered_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.on_4_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.on_4_methodsignature.md
new file mode 100644
index 00000000..f8d8a906
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.on_4_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [on](./voice-react-native-sdk.voice_interface.on_4_methodsignature.md)
+
+## Voice.on() method
+
+Unregistered event. Raised when the SDK is unregistered for incoming calls.
+
+Signature:
+
+```typescript
+on(unregisteredEvent: Voice.Event.Unregistered, listener: Voice.Listener.Unregistered): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| unregisteredEvent | [Voice.Event.Unregistered](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.Unregistered](./voice-react-native-sdk.voice_namespace.listener_namespace.unregistered_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.on_5_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.on_5_methodsignature.md
new file mode 100644
index 00000000..0baf796a
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.on_5_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [on](./voice-react-native-sdk.voice_interface.on_5_methodsignature.md)
+
+## Voice.on() method
+
+Generic event listener typings.
+
+Signature:
+
+```typescript
+on(voiceEvent: Voice.Event, listener: Voice.Listener.Generic): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| voiceEvent | [Voice.Event](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.Generic](./voice-react-native-sdk.voice_namespace.listener_namespace.generic_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.voice_interface.on_methodsignature.md b/docs/api/voice-react-native-sdk.voice_interface.on_methodsignature.md
new file mode 100644
index 00000000..1baf95ac
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_interface.on_methodsignature.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_interface.md) > [on](./voice-react-native-sdk.voice_interface.on_methodsignature.md)
+
+## Voice.on() method
+
+Audio devices updated event. Raised when the list of audio devices changes.
+
+Signature:
+
+```typescript
+on(audioDevicesUpdatedEvent: Voice.Event.AudioDevicesUpdated, listener: Voice.Listener.AudioDevicesUpdated): this;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| audioDevicesUpdatedEvent | [Voice.Event.AudioDevicesUpdated](./voice-react-native-sdk.voice_namespace.event_enum.md) | The raised event string. |
+| listener | [Voice.Listener.AudioDevicesUpdated](./voice-react-native-sdk.voice_namespace.listener_namespace.audiodevicesupdated_typealias.md) | A listener function that will be invoked when the event is raised. |
+
+Returns:
+
+this
+
+- The call object.
+
diff --git a/docs/api/voice-react-native-sdk.voice_namespace.connectoptions_typealias.md b/docs/api/voice-react-native-sdk.voice_namespace.connectoptions_typealias.md
new file mode 100644
index 00000000..0b2d3009
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_namespace.connectoptions_typealias.md
@@ -0,0 +1,16 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_namespace.md) > [ConnectOptions](./voice-react-native-sdk.voice_namespace.connectoptions_typealias.md)
+
+## Voice.ConnectOptions type
+
+Options to pass to the [Voice.connect()](./voice-react-native-sdk.voice_class.connect_method.md) method.
+
+Signature:
+
+```typescript
+type ConnectOptions = {
+ params?: Record;
+ contactHandle?: string;
+ };
+```
diff --git a/docs/api/voice-react-native-sdk.voice_namespace.event_enum.md b/docs/api/voice-react-native-sdk.voice_namespace.event_enum.md
new file mode 100644
index 00000000..bcdad934
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_namespace.event_enum.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_namespace.md) > [Event](./voice-react-native-sdk.voice_namespace.event_enum.md)
+
+## Voice.Event enum
+
+Enumeration of all event strings emitted by [Voice](./voice-react-native-sdk.voice_class.md) objects.
+
+Signature:
+
+```typescript
+enum Event
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| AudioDevicesUpdated | "audioDevicesUpdated"
| Raised when there is a change in available audio devices. |
+| CallInvite | "callInvite"
| Raised when there is an incoming call invite. |
+| Error | "error"
| Raised when the SDK encounters an error. |
+| Registered | "registered"
| Raised when the SDK is registered for incoming calls. |
+| Unregistered | "unregistered"
| Raised when the SDK is unregistered for incoming calls. |
+
diff --git a/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.audiodevicesupdated_typealias.md b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.audiodevicesupdated_typealias.md
new file mode 100644
index 00000000..f5bb4931
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.audiodevicesupdated_typealias.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_namespace.md) > [Listener](./voice-react-native-sdk.voice_namespace.listener_namespace.md) > [AudioDevicesUpdated](./voice-react-native-sdk.voice_namespace.listener_namespace.audiodevicesupdated_typealias.md)
+
+## Voice.Listener.AudioDevicesUpdated type
+
+Audio devices updated event listener. This should be the function signature of an event listener bound to the [Voice.Event.AudioDevicesUpdated](./voice-react-native-sdk.voice_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type AudioDevicesUpdated = (audioDevices: AudioDevice[], selectedDevice?: AudioDevice) => void;
+```
+References: [AudioDevice](./voice-react-native-sdk.audiodevice_class.md)
+
+## Remarks
+
+See [Voice.addListener()](./voice-react-native-sdk.voice_interface.addlistener_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.callinvite_typealias.md b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.callinvite_typealias.md
new file mode 100644
index 00000000..0c0e7acf
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.callinvite_typealias.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_namespace.md) > [Listener](./voice-react-native-sdk.voice_namespace.listener_namespace.md) > [CallInvite](./voice-react-native-sdk.voice_namespace.listener_namespace.callinvite_typealias.md)
+
+## Voice.Listener.CallInvite type
+
+Call invite event listener. This should be the function signature of an event listener bound to the [Voice.Event.CallInvite](./voice-react-native-sdk.voice_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type CallInvite = (callInvite: CallInvite) => void;
+```
+References: [CallInvite](./voice-react-native-sdk.voice_namespace.listener_namespace.callinvite_typealias.md)
+
+## Remarks
+
+See [Voice.addListener()](./voice-react-native-sdk.voice_interface.addlistener_1_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.error_typealias.md b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.error_typealias.md
new file mode 100644
index 00000000..66bb47a9
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.error_typealias.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_namespace.md) > [Listener](./voice-react-native-sdk.voice_namespace.listener_namespace.md) > [Error](./voice-react-native-sdk.voice_namespace.listener_namespace.error_typealias.md)
+
+## Voice.Listener.Error type
+
+Error event listener. This should be the function signature of an event listener bound to the [Voice.Event.Error](./voice-react-native-sdk.voice_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Error = (error: TwilioError) => void;
+```
+
+## Remarks
+
+See [Voice.addListener()](./voice-react-native-sdk.voice_interface.addlistener_2_methodsignature.md).
+
+See [TwilioErrors](./voice-react-native-sdk.twilioerrors_namespace.md) for all error classes.
+
diff --git a/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.generic_typealias.md b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.generic_typealias.md
new file mode 100644
index 00000000..1c828b38
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.generic_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_namespace.md) > [Listener](./voice-react-native-sdk.voice_namespace.listener_namespace.md) > [Generic](./voice-react-native-sdk.voice_namespace.listener_namespace.generic_typealias.md)
+
+## Voice.Listener.Generic type
+
+Generic event listener. This should be the function signature of any event listener bound to any voice event.
+
+Signature:
+
+```typescript
+type Generic = (...args: any[]) => void;
+```
+
+## Remarks
+
+See [Voice.addListener()](./voice-react-native-sdk.voice_interface.addlistener_5_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.md b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.md
new file mode 100644
index 00000000..4053cade
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_namespace.md) > [Listener](./voice-react-native-sdk.voice_namespace.listener_namespace.md)
+
+## Voice.Listener namespace
+
+Listener types for all events emitted by a [Voice object.](./voice-react-native-sdk.voice_class.md)
+
+Signature:
+
+```typescript
+namespace Listener
+```
+
+## Type Aliases
+
+| Type Alias | Description |
+| --- | --- |
+| [AudioDevicesUpdated](./voice-react-native-sdk.voice_namespace.listener_namespace.audiodevicesupdated_typealias.md) | Audio devices updated event listener. This should be the function signature of an event listener bound to the [Voice.Event.AudioDevicesUpdated](./voice-react-native-sdk.voice_namespace.event_enum.md) event. |
+| [CallInvite](./voice-react-native-sdk.voice_namespace.listener_namespace.callinvite_typealias.md) | Call invite event listener. This should be the function signature of an event listener bound to the [Voice.Event.CallInvite](./voice-react-native-sdk.voice_namespace.event_enum.md) event. |
+| [Error](./voice-react-native-sdk.voice_namespace.listener_namespace.error_typealias.md) | Error event listener. This should be the function signature of an event listener bound to the [Voice.Event.Error](./voice-react-native-sdk.voice_namespace.event_enum.md) event. |
+| [Generic](./voice-react-native-sdk.voice_namespace.listener_namespace.generic_typealias.md) | Generic event listener. This should be the function signature of any event listener bound to any voice event. |
+| [Registered](./voice-react-native-sdk.voice_namespace.listener_namespace.registered_typealias.md) | Registered event listener. This should be the function signature of an event listener bound to the [Voice.Event.Registered](./voice-react-native-sdk.voice_namespace.event_enum.md) event. |
+| [Unregistered](./voice-react-native-sdk.voice_namespace.listener_namespace.unregistered_typealias.md) | Unregistered event listener. This should be the function signature of an event listener bound to the [Voice.Event.Unregistered](./voice-react-native-sdk.voice_namespace.event_enum.md) event. |
+
diff --git a/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.registered_typealias.md b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.registered_typealias.md
new file mode 100644
index 00000000..497b251d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.registered_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_namespace.md) > [Listener](./voice-react-native-sdk.voice_namespace.listener_namespace.md) > [Registered](./voice-react-native-sdk.voice_namespace.listener_namespace.registered_typealias.md)
+
+## Voice.Listener.Registered type
+
+Registered event listener. This should be the function signature of an event listener bound to the [Voice.Event.Registered](./voice-react-native-sdk.voice_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Registered = () => void;
+```
+
+## Remarks
+
+See [Voice.addListener()](./voice-react-native-sdk.voice_interface.addlistener_3_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.unregistered_typealias.md b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.unregistered_typealias.md
new file mode 100644
index 00000000..81b6307d
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_namespace.listener_namespace.unregistered_typealias.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_namespace.md) > [Listener](./voice-react-native-sdk.voice_namespace.listener_namespace.md) > [Unregistered](./voice-react-native-sdk.voice_namespace.listener_namespace.unregistered_typealias.md)
+
+## Voice.Listener.Unregistered type
+
+Unregistered event listener. This should be the function signature of an event listener bound to the [Voice.Event.Unregistered](./voice-react-native-sdk.voice_namespace.event_enum.md) event.
+
+Signature:
+
+```typescript
+type Unregistered = () => void;
+```
+
+## Remarks
+
+See [Voice.addListener()](./voice-react-native-sdk.voice_interface.addlistener_4_methodsignature.md).
+
diff --git a/docs/api/voice-react-native-sdk.voice_namespace.md b/docs/api/voice-react-native-sdk.voice_namespace.md
new file mode 100644
index 00000000..22a23a00
--- /dev/null
+++ b/docs/api/voice-react-native-sdk.voice_namespace.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@twilio/voice-react-native-sdk](./voice-react-native-sdk.md) > [Voice](./voice-react-native-sdk.voice_namespace.md)
+
+## Voice namespace
+
+Provides enumerations and types used by [Voice objects](./voice-react-native-sdk.voice_class.md).
+
+Signature:
+
+```typescript
+export declare namespace Voice
+```
+
+## Remarks
+
+- See also the [Voice class](./voice-react-native-sdk.voice_class.md). - See also the [Voice interface](./voice-react-native-sdk.voice_interface.md).
+
+## Enumerations
+
+| Enumeration | Description |
+| --- | --- |
+| [Event](./voice-react-native-sdk.voice_namespace.event_enum.md) | Enumeration of all event strings emitted by [Voice](./voice-react-native-sdk.voice_class.md) objects. |
+
+## Namespaces
+
+| Namespace | Description |
+| --- | --- |
+| [Listener](./voice-react-native-sdk.voice_namespace.listener_namespace.md) | Listener types for all events emitted by a [Voice object.](./voice-react-native-sdk.voice_class.md) |
+
+## Type Aliases
+
+| Type Alias | Description |
+| --- | --- |
+| [ConnectOptions](./voice-react-native-sdk.voice_namespace.connectoptions_typealias.md) | Options to pass to the [Voice.connect()](./voice-react-native-sdk.voice_class.connect_method.md) method. |
+
diff --git a/ios/TwilioVoiceReactNativeConstants.h b/ios/TwilioVoiceReactNativeConstants.h
new file mode 100644
index 00000000..c122a773
--- /dev/null
+++ b/ios/TwilioVoiceReactNativeConstants.h
@@ -0,0 +1,187 @@
+//
+// TwilioVoiceReactNativeConstants.h
+// TwilioVoiceReactNative
+//
+// Copyright © 2022 Twilio, Inc. All rights reserved.
+//
+
+/* This file is auto-generated. Do not edit! */
+
+// React Native Voice SDK
+static NSString * const kTwilioVoiceReactNativeReactNativeVoiceSDK = @"react-native";
+static NSString * const kTwilioVoiceReactNativeReactNativeVoiceSDKVer = @"1.2.0";
+
+// Scope names
+static NSString * const kTwilioVoiceReactNativeScopeVoice = @"scopeVoice";
+static NSString * const kTwilioVoiceReactNativeScopeCall = @"scopeCall";
+static NSString * const kTwilioVoiceReactNativeScopeCallMessage = @"scopeCallMessage";
+static NSString * const kTwilioVoiceReactNativeScopeCallInvite = @"scopeCallInvite";
+
+// Voice events
+// Common
+static NSString * const kTwilioVoiceReactNativeVoiceEventError = @"voiceEventError";
+static NSString * const kTwilioVoiceReactNativeVoiceEventType = @"type";
+
+// Error
+static NSString * const kTwilioVoiceReactNativeVoiceErrorKeyError = @"error";
+static NSString * const kTwilioVoiceReactNativeVoiceErrorKeyCode = @"code";
+static NSString * const kTwilioVoiceReactNativeVoiceErrorKeyMessage = @"message";
+
+// Registration
+static NSString * const kTwilioVoiceReactNativeVoiceEventRegistered = @"voiceEventRegistered";
+static NSString * const kTwilioVoiceReactNativeVoiceEventUnregistered = @"voiceEventUnregistered";
+
+// Call Info
+static NSString * const kTwilioVoiceReactNativeCallInfoUuid = @"uuid";
+static NSString * const kTwilioVoiceReactNativeCallInfoSid = @"sid";
+static NSString * const kTwilioVoiceReactNativeCallInfoFrom = @"from";
+static NSString * const kTwilioVoiceReactNativeCallInfoTo = @"to";
+static NSString * const kTwilioVoiceReactNativeCallInfoIsMuted = @"isMuted";
+static NSString * const kTwilioVoiceReactNativeCallInfoIsOnHold = @"isOnHold";
+static NSString * const kTwilioVoiceReactNativeCallInfoState = @"state";
+static NSString * const kTwilioVoiceReactNativeCallInfoInitialConnectedTimestamp = @"initialConnectedTimestamp";
+
+// Call States
+static NSString * const kTwilioVoiceReactNativeCallStateConnected = @"connected";
+static NSString * const kTwilioVoiceReactNativeCallStateConnecting = @"connecting";
+static NSString * const kTwilioVoiceReactNativeCallStateDisconnected = @"disconnected";
+static NSString * const kTwilioVoiceReactNativeCallStateReconnecting = @"reconnecting";
+static NSString * const kTwilioVoiceReactNativeCallStateRinging = @"ringing";
+
+// Call Invite Info
+static NSString * const kTwilioVoiceReactNativeCallInviteInfoUuid = @"uuid";
+static NSString * const kTwilioVoiceReactNativeCallInviteInfoCallSid = @"callSid";
+static NSString * const kTwilioVoiceReactNativeCallInviteInfoFrom = @"from";
+static NSString * const kTwilioVoiceReactNativeCallInviteInfoTo = @"to";
+static NSString * const kTwilioVoiceReactNativeCallInviteInfoCustomParameters = @"customParameters";
+
+// Cancelled Call Invite Info
+static NSString * const kTwilioVoiceReactNativeCancelledCallInviteInfoUuid = @"uuid";
+static NSString * const kTwilioVoiceReactNativeCancelledCallInviteInfoCallSid = @"callSid";
+static NSString * const kTwilioVoiceReactNativeCancelledCallInviteInfoFrom = @"from";
+static NSString * const kTwilioVoiceReactNativeCancelledCallInviteInfoTo = @"to";
+static NSString * const kTwilioVoiceReactNativeCancelledCallInviteInfoCustomParameters = @"customParameters";
+
+// Incoming Call Invite event
+static NSString * const kTwilioVoiceReactNativeVoiceEventTypeValueIncomingCallInvite = @"voiceEventTypeValueIncomingCallInvite";
+
+// Call Message
+static NSString * const kTwilioVoiceReactNativeVoiceEventSid = @"voiceEventSid";
+static NSString * const kTwilioVoiceReactNativeCallMessage = @"callMessage";
+static NSString * const kTwilioVoiceReactNativeCallMessageContent = @"content";
+static NSString * const kTwilioVoiceReactNativeCallMessageContentType = @"contentType";
+static NSString * const kTwilioVoiceReactNativeCallMessageMessageType = @"messageType";
+static NSString * const kTwilioVoiceReactNativeJSEventKeyCallMessageInfo = @"callMessage";
+
+// Audio Devices Updated Event
+static NSString * const kTwilioVoiceReactNativeVoiceEventAudioDevicesUpdated = @"voiceEventAudioDevicesUpdated";
+
+// Audio Device
+static NSString * const kTwilioVoiceReactNativeAudioDeviceKeyUuid = @"uuid";
+static NSString * const kTwilioVoiceReactNativeAudioDeviceKeyName = @"name";
+static NSString * const kTwilioVoiceReactNativeAudioDeviceKeyType = @"type";
+static NSString * const kTwilioVoiceReactNativeAudioDeviceKeyAudioDevices = @"audioDevices";
+static NSString * const kTwilioVoiceReactNativeAudioDeviceKeySelectedDevice = @"selectedDevice";
+static NSString * const kTwilioVoiceReactNativeAudioDeviceKeyEarpiece = @"earpiece";
+static NSString * const kTwilioVoiceReactNativeAudioDeviceKeySpeaker = @"speaker";
+static NSString * const kTwilioVoiceReactNativeAudioDeviceKeyBluetooth = @"bluetooth";
+
+// CallInvite events
+static NSString * const kTwilioVoiceReactNativeCallInviteEventKeyType = @"type";
+static NSString * const kTwilioVoiceReactNativeCallInviteEventTypeValueAccepted = @"callInviteEventTypeValueCallInviteAccepted";
+static NSString * const kTwilioVoiceReactNativeCallInviteEventTypeValueNotificationTapped = @"callInviteEventTypeValueCallInviteNotificationTapped";
+static NSString * const kTwilioVoiceReactNativeCallInviteEventTypeValueRejected = @"callInviteEventTypeValueCallInviteRejected";
+static NSString * const kTwilioVoiceReactNativeCallInviteEventTypeValueCancelled = @"callInviteEventTypeValueCallInviteCancelled";
+static NSString * const kTwilioVoiceReactNativeCallInviteEventKeyCallSid = @"callSid";
+
+// Call events
+// State
+static NSString * const kTwilioVoiceReactNativeCallEventConnected = @"callEventConnected";
+static NSString * const kTwilioVoiceReactNativeCallEventConnectFailure = @"callEventConnectFailure";
+static NSString * const kTwilioVoiceReactNativeCallEventDisconnected = @"callEventDisconnected";
+static NSString * const kTwilioVoiceReactNativeCallEventReconnecting = @"callEventReconnecting";
+static NSString * const kTwilioVoiceReactNativeCallEventReconnected = @"callEventReconnected";
+static NSString * const kTwilioVoiceReactNativeCallEventRinging = @"callEventRinging";
+
+// Quality warnings
+static NSString * const kTwilioVoiceReactNativeCallEventQualityWarningsChanged = @"callEventQualityWarningsChanged";
+static NSString * const kTwilioVoiceReactNativeCallEventCurrentWarnings = @"callEventCurrentWarnings";
+static NSString * const kTwilioVoiceReactNativeCallEventPreviousWarnings = @"callEventPreviousWarnings";
+
+// Call message events
+static NSString * const kTwilioVoiceReactNativeCallEventMessageFailure = @"callEventMessageFailure";
+static NSString * const kTwilioVoiceReactNativeCallEventMessageReceived = @"callEventMessageReceived";
+static NSString * const kTwilioVoiceReactNativeCallEventMessageSent = @"callEventMessageSent";
+
+// Post feedback
+static NSString * const kTwilioVoiceReactNativeScore = @"score";
+static NSString * const kTwilioVoiceReactNativeIssue = @"issue";
+
+// StatsReport
+static NSString * const kTwilioVoiceReactNativePeerConnectionId = @"peerConnectionId";
+static NSString * const kTwilioVoiceReactNativeLocalAudioTrackStats = @"localAudioTrackStats";
+static NSString * const kTwilioVoiceReactNativeRemoteAudioTrackStats = @"remoteAudioTrackStats";
+static NSString * const kTwilioVoiceReactNativeIceCandidatePairStats = @"iceCandidatePairStats";
+static NSString * const kTwilioVoiceReactNativeIceCandidateStats = @"iceCandidateStats";
+static NSString * const kTwilioVoiceReactNativeCodec = @"codec";
+static NSString * const kTwilioVoiceReactNativePacketsLost = @"packetsLost";
+static NSString * const kTwilioVoiceReactNativeSsrc = @"ssrc";
+static NSString * const kTwilioVoiceReactNativeTrackId = @"trackId";
+static NSString * const kTwilioVoiceReactNativeTimestamp = @"timestamp";
+static NSString * const kTwilioVoiceReactNativeBytesSent = @"bytesSent";
+static NSString * const kTwilioVoiceReactNativePacketsSent = @"packetsSent";
+static NSString * const kTwilioVoiceReactNativeRoundTripTime = @"roundTripTime";
+static NSString * const kTwilioVoiceReactNativeAudioLevel = @"audioLevel";
+static NSString * const kTwilioVoiceReactNativeJitter = @"jitter";
+static NSString * const kTwilioVoiceReactNativeBytesReceived = @"bytesReceived";
+static NSString * const kTwilioVoiceReactNativeMos = @"mos";
+static NSString * const kTwilioVoiceReactNativeTransportId = @"transportId";
+static NSString * const kTwilioVoiceReactNativeLocalCandidateId = @"localCandidateId";
+static NSString * const kTwilioVoiceReactNativeRemoteCandidateId = @"remoteCandidateId";
+static NSString * const kTwilioVoiceReactNativeState = @"state";
+static NSString * const kTwilioVoiceReactNativeLocalCandidateIp = @"localCandidateIp";
+static NSString * const kTwilioVoiceReactNativeRemoteCandidateIp = @"remoteCandidateIp";
+static NSString * const kTwilioVoiceReactNativeNominated = @"nominated";
+static NSString * const kTwilioVoiceReactNativeWriteable = @"writeable";
+static NSString * const kTwilioVoiceReactNativeReadable = @"readable";
+static NSString * const kTwilioVoiceReactNativeTotalRoundTripTime = @"totalRoundTripTime";
+static NSString * const kTwilioVoiceReactNativeCurrentRoundTripTime = @"currentRoundTripTime";
+static NSString * const kTwilioVoiceReactNativeAvailableOutgoingBitrate = @"availableOutgoingBitrate";
+static NSString * const kTwilioVoiceReactNativeAvailableIncomingBitrate = @"availableIncomingBitrate";
+static NSString * const kTwilioVoiceReactNativeRequestsReceived = @"requestsReceived";
+static NSString * const kTwilioVoiceReactNativeRequestsSent = @"requestsSent";
+static NSString * const kTwilioVoiceReactNativeResponsesReceived = @"responsesReceived";
+static NSString * const kTwilioVoiceReactNativeResponsesSent = @"responsesSent";
+static NSString * const kTwilioVoiceReactNativeRetransmissionsReceived = @"retransmissionsReceived";
+static NSString * const kTwilioVoiceReactNativeRetransmissionsSent = @"retransmissionsSent";
+static NSString * const kTwilioVoiceReactNativeConsentRequestsReceived = @"consentRequestsReceived";
+static NSString * const kTwilioVoiceReactNativeConsentRequestsSent = @"consentRequestsSent";
+static NSString * const kTwilioVoiceReactNativeConsentResponsesReceived = @"consentResponsesReceived";
+static NSString * const kTwilioVoiceReactNativeConsentResponsesSent = @"consentResponsesSent";
+static NSString * const kTwilioVoiceReactNativeActiveCandidatePair = @"activeCandidatePair";
+static NSString * const kTwilioVoiceReactNativeRelayProtocol = @"relayProtocol";
+static NSString * const kTwilioVoiceReactNativeIsRemote = @"isRemote";
+static NSString * const kTwilioVoiceReactNativeIp = @"ip";
+static NSString * const kTwilioVoiceReactNativePort = @"port";
+static NSString * const kTwilioVoiceReactNativeProtocol = @"protocol";
+static NSString * const kTwilioVoiceReactNativeCandidateType = @"candidateType";
+static NSString * const kTwilioVoiceReactNativePriority = @"priority";
+static NSString * const kTwilioVoiceReactNativeUrl = @"url";
+static NSString * const kTwilioVoiceReactNativeDeleted = @"deleted";
+static NSString * const kTwilioVoiceReactNativePacketsReceived = @"packetsReceived";
+
+// IceCandidatePairState
+static NSString * const kTwilioVoiceReactNativeStateFailed = @"stateFailed";
+static NSString * const kTwilioVoiceReactNativeStateFrozen = @"stateFrozen";
+static NSString * const kTwilioVoiceReactNativeStateInProgress = @"stateInProgress";
+static NSString * const kTwilioVoiceReactNativeStateSucceeded = @"stateSucceeded";
+static NSString * const kTwilioVoiceReactNativeStateWaiting = @"stateWaiting";
+static NSString * const kTwilioVoiceReactNativeStateUnknown = @"stateUnknown";
+
+// iOS CallKit configuration
+static NSString * const kTwilioVoiceReactNativeCallKitMaximumCallsPerCallGroup = @"callKitMaximumCallsPerCallGroup";
+static NSString * const kTwilioVoiceReactNativeCallKitMaximumCallGroups = @"callKitMaximumCallGroups";
+static NSString * const kTwilioVoiceReactNativeCallKitIncludesCallsInRecents = @"callKitIncludesCallsInRecents";
+static NSString * const kTwilioVoiceReactNativeCallKitSupportedHandleTypes = @"callKitSupportedHandleTypes";
+static NSString * const kTwilioVoiceReactNativeCallKitIconTemplateImageData = @"callKitIconTemplateImageData";
+static NSString * const kTwilioVoiceReactNativeCallKitRingtoneSound = @"callKitRingtoneSound";
diff --git a/lib/commonjs/AudioDevice.js b/lib/commonjs/AudioDevice.js
new file mode 100644
index 00000000..84172c7f
--- /dev/null
+++ b/lib/commonjs/AudioDevice.js
@@ -0,0 +1,101 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.AudioDevice = void 0;
+
+var _common = require("./common");
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Describes audio devices as reported by the native layer and allows the
+ * native selection of the described audio device.
+ *
+ * @remarks
+ * To fetch a list of available audio devices and the currently selected audio
+ * device, see {@link (Voice:class).getAudioDevices}.
+ *
+ * - See also the {@link (AudioDevice:namespace) | AudioDevice namespace} for
+ * types used by this class.
+ *
+ * @public
+ */
+class AudioDevice {
+ /**
+ * The native-UUID of this object. This is generated by the native layer and
+ * is used to associate functionality between the JS and native layers.
+ *
+ * @internal
+ */
+
+ /**
+ * The type of the audio device.
+ */
+
+ /**
+ * The name of the audio device.
+ */
+
+ /**
+ * Audio device class constructor.
+ * @param audioDeviceInformation - A record describing an audio device.
+ *
+ * @internal
+ */
+ constructor({
+ uuid,
+ type,
+ name
+ }) {
+ _defineProperty(this, "uuid", void 0);
+
+ _defineProperty(this, "type", void 0);
+
+ _defineProperty(this, "name", void 0);
+
+ this.uuid = uuid;
+ this.type = type;
+ this.name = name;
+ }
+ /**
+ * Calling this method will select this audio device as the active audio
+ * device.
+ * @returns
+ * A `Promise` that
+ * - Resolves with `void` when the audio device has been successfully
+ * selected as the active audio device.
+ * - Rejects if the audio device cannot be selected.
+ */
+
+
+ select() {
+ return _common.NativeModule.voice_selectAudioDevice(this.uuid);
+ }
+
+}
+/**
+ * Contains interfaces and enumerations associated with audio devices.
+ *
+ * @remarks
+ * - See also the {@link (AudioDevice:class) | AudioDevice class}.
+ *
+ * @public
+ */
+
+
+exports.AudioDevice = AudioDevice;
+
+(function (_AudioDevice) {
+ let Type;
+
+ (function (Type) {
+ Type["Earpiece"] = "earpiece";
+ Type["Speaker"] = "speaker";
+ Type["Bluetooth"] = "bluetooth";
+ })(Type || (Type = {}));
+
+ _AudioDevice.Type = Type;
+})(AudioDevice || (exports.AudioDevice = AudioDevice = {}));
+//# sourceMappingURL=AudioDevice.js.map
\ No newline at end of file
diff --git a/lib/commonjs/AudioDevice.js.map b/lib/commonjs/AudioDevice.js.map
new file mode 100644
index 00000000..1c07c531
--- /dev/null
+++ b/lib/commonjs/AudioDevice.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["AudioDevice.tsx"],"names":["AudioDevice","constructor","uuid","type","name","select","NativeModule","voice_selectAudioDevice","Type"],"mappings":";;;;;;;AAOA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAN,CAAkB;AACvB;AACF;AACA;AACA;AACA;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,WAAW,CAAC;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA;AAAd,GAAD,EAA8C;AAAA;;AAAA;;AAAA;;AACvD,SAAKF,IAAL,GAAYA,IAAZ;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACEC,EAAAA,MAAM,GAAkB;AACtB,WAAOC,qBAAaC,uBAAb,CAAqC,KAAKL,IAA1C,CAAP;AACD;;AA1CsB;AA6CzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;MAMcM,I;;aAAAA,I;AAAAA,IAAAA,I;AAAAA,IAAAA,I;AAAAA,IAAAA,I;KAAAA,I,KAAAA,I;;;GALGR,W,2BAAAA,W","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 { NativeModule } from './common';\nimport type { NativeAudioDeviceInfo } from './type/AudioDevice';\nimport type { Uuid } from './type/common';\n\n/**\n * Describes audio devices as reported by the native layer and allows the\n * native selection of the described audio device.\n *\n * @remarks\n * To fetch a list of available audio devices and the currently selected audio\n * device, see {@link (Voice:class).getAudioDevices}.\n *\n * - See also the {@link (AudioDevice:namespace) | AudioDevice namespace} for\n * types used by this class.\n *\n * @public\n */\nexport class AudioDevice {\n /**\n * The native-UUID of this object. This is generated by the native layer and\n * is used to associate functionality between the JS and native layers.\n *\n * @internal\n */\n uuid: Uuid;\n\n /**\n * The type of the audio device.\n */\n type: AudioDevice.Type;\n\n /**\n * The name of the audio device.\n */\n name: string;\n\n /**\n * Audio device class constructor.\n * @param audioDeviceInformation - A record describing an audio device.\n *\n * @internal\n */\n constructor({ uuid, type, name }: NativeAudioDeviceInfo) {\n this.uuid = uuid;\n this.type = type;\n this.name = name;\n }\n\n /**\n * Calling this method will select this audio device as the active audio\n * device.\n * @returns\n * A `Promise` that\n * - Resolves with `void` when the audio device has been successfully\n * selected as the active audio device.\n * - Rejects if the audio device cannot be selected.\n */\n select(): Promise {\n return NativeModule.voice_selectAudioDevice(this.uuid);\n }\n}\n\n/**\n * Contains interfaces and enumerations associated with audio devices.\n *\n * @remarks\n * - See also the {@link (AudioDevice:class) | AudioDevice class}.\n *\n * @public\n */\nexport namespace AudioDevice {\n /**\n * Audio device type enumeration. Describes all possible audio device types as\n * reportable by the native layer.\n */\n export enum Type {\n Earpiece = 'earpiece',\n Speaker = 'speaker',\n Bluetooth = 'bluetooth',\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/Call.js b/lib/commonjs/Call.js
new file mode 100644
index 00000000..c6c27419
--- /dev/null
+++ b/lib/commonjs/Call.js
@@ -0,0 +1,701 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.Call = void 0;
+
+var _eventemitter = require("eventemitter3");
+
+var _common = require("./common");
+
+var _constants = require("./constants");
+
+var _utility = require("./error/utility");
+
+var _CallMessage = require("./CallMessage/CallMessage");
+
+var _IncomingCallMessage = require("./CallMessage/IncomingCallMessage");
+
+var _OutgoingCallMessage = require("./CallMessage/OutgoingCallMessage");
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Provides access to information about a call, including the call parameters,
+ * and exposes functionality for a call such as disconnecting, muting, and
+ * holding.
+ *
+ * @remarks
+ * Note that the call information is fetched as soon as possible from the native
+ * layer, but there is no guarantee that all information is immediately
+ * available. Methods such as `Call.getFrom()` or `Call.getTo()` may return
+ * `undefined`.
+ *
+ * As call events are received from the native layer, call information will
+ * propagate from the native layer to the JS layer and become available.
+ * Therefore, it is good practice to read information from the call after an
+ * event occurs, or as events occur.
+ *
+ * - See the {@link (Call:namespace).Event} enum for events emitted by `Call`
+ * objects.
+ * - See the {@link (Call:interface) | Call interface} for overloaded event
+ * listening methods.
+ * - See the {@link (Call:namespace) | Call namespace} for types and
+ * enumerations used by this class.
+ *
+ * @public
+ */
+class Call extends _eventemitter.EventEmitter {
+ /**
+ * The `Uuid` of this call. Used to identify calls between the JS and native
+ * layer so we can associate events and native functionality between the
+ * layers.
+ */
+
+ /**
+ * Call custom parameters.
+ */
+
+ /**
+ * Call `from` parameter.
+ */
+
+ /**
+ * Initial `connected` timestamp. Milliseconds since epoch.
+ */
+
+ /**
+ * A boolean representing if the call is currently muted.
+ */
+
+ /**
+ * A boolean representing if the call is currently on hold.
+ */
+
+ /**
+ * A string representing the SID of this call.
+ */
+
+ /**
+ * The current state of the call.
+ *
+ * @remarks
+ * See {@link (Call:namespace).State}.
+ */
+
+ /**
+ * Call `to` parameter.
+ */
+
+ /**
+ * Handlers for native call events. Set upon construction so we can
+ * dynamically bind events to handlers.
+ *
+ * @privateRemarks
+ * This is done by the constructor so this mapping isn't made every time the
+ * {@link (Call:class)._handleNativeEvent} function is invoked.
+ */
+
+ /**
+ * Constructor for the {@link (Call:class) | Call class}. This should not be
+ * invoked by third-party code. All instances of the
+ * {@link (Call:class) | Call class} should be made by the SDK and emitted by
+ * {@link (Voice:class) | Voice objects}.
+ *
+ * @param nativeCallInfo - An object containing all of the data from the
+ * native layer necessary to fully describe a call, as well as invoke native
+ * functionality for the call.
+ *
+ * @internal
+ */
+ constructor({
+ uuid,
+ customParameters,
+ from,
+ sid,
+ state,
+ to,
+ isMuted,
+ isOnHold,
+ initialConnectedTimestamp
+ }) {
+ super();
+
+ _defineProperty(this, "_uuid", void 0);
+
+ _defineProperty(this, "_customParameters", void 0);
+
+ _defineProperty(this, "_from", void 0);
+
+ _defineProperty(this, "_initialConnectedTimestamp", void 0);
+
+ _defineProperty(this, "_isMuted", void 0);
+
+ _defineProperty(this, "_isOnHold", void 0);
+
+ _defineProperty(this, "_sid", void 0);
+
+ _defineProperty(this, "_state", void 0);
+
+ _defineProperty(this, "_to", void 0);
+
+ _defineProperty(this, "_nativeEventHandler", void 0);
+
+ _defineProperty(this, "_handleNativeEvent", nativeCallEvent => {
+ const {
+ type,
+ call: callInfo
+ } = nativeCallEvent;
+ const handler = this._nativeEventHandler[type];
+
+ if (typeof handler === 'undefined') {
+ throw new Error(`Unknown call event type received from the native layer: "${type}".`);
+ }
+
+ if (callInfo.uuid === this._uuid) {
+ handler(nativeCallEvent);
+ }
+ });
+
+ _defineProperty(this, "_handleConnectedEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== _constants.Constants.CallEventConnected) {
+ throw new Error('Incorrect "call#connected" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ this.emit(Call.Event.Connected);
+ });
+
+ _defineProperty(this, "_handleConnectFailureEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== _constants.Constants.CallEventConnectFailure) {
+ throw new Error('Incorrect "call#connectFailure" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ const {
+ message,
+ code
+ } = nativeCallEvent.error;
+ const error = (0, _utility.constructTwilioError)(message, code);
+ this.emit(Call.Event.ConnectFailure, error);
+ });
+
+ _defineProperty(this, "_handleDisconnectedEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== _constants.Constants.CallEventDisconnected) {
+ throw new Error('Incorrect "call#disconnected" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ if (nativeCallEvent.error) {
+ const {
+ message,
+ code
+ } = nativeCallEvent.error;
+ const error = (0, _utility.constructTwilioError)(message, code);
+ this.emit(Call.Event.Disconnected, error);
+ } else {
+ this.emit(Call.Event.Disconnected);
+ }
+ });
+
+ _defineProperty(this, "_handleReconnectingEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== _constants.Constants.CallEventReconnecting) {
+ throw new Error('Incorrect "call#reconnecting" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ const {
+ message,
+ code
+ } = nativeCallEvent.error;
+ const error = (0, _utility.constructTwilioError)(message, code);
+ this.emit(Call.Event.Reconnecting, error);
+ });
+
+ _defineProperty(this, "_handleReconnectedEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== _constants.Constants.CallEventReconnected) {
+ throw new Error('Incorrect "call#reconnected" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ this.emit(Call.Event.Reconnected);
+ });
+
+ _defineProperty(this, "_handleRingingEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== _constants.Constants.CallEventRinging) {
+ throw new Error('Incorrect "call#ringing" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ this.emit(Call.Event.Ringing);
+ });
+
+ _defineProperty(this, "_handleQualityWarningsChangedEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== _constants.Constants.CallEventQualityWarningsChanged) {
+ throw new Error('Incorrect "call#qualityWarnings" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ const currentWarnings = nativeCallEvent[_constants.Constants.CallEventCurrentWarnings];
+ const previousWarnings = nativeCallEvent[_constants.Constants.CallEventPreviousWarnings];
+ this.emit(Call.Event.QualityWarningsChanged, currentWarnings, previousWarnings);
+ });
+
+ _defineProperty(this, "_handleMessageReceivedEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== _constants.Constants.CallEventMessageReceived) {
+ throw new Error('Incorrect "call#Received" handler called for type' + `"${nativeCallEvent.type}`);
+ }
+
+ this._update(nativeCallEvent);
+
+ const {
+ callMessage: callMessageInfo
+ } = nativeCallEvent;
+ const incomingCallMessage = new _IncomingCallMessage.IncomingCallMessage(callMessageInfo);
+ this.emit(Call.Event.MessageReceived, incomingCallMessage);
+ });
+
+ this._uuid = uuid;
+ this._customParameters = { ...customParameters
+ };
+ this._from = from;
+ this._sid = sid;
+ this._state = typeof state === 'string' ? state : Call.State.Connecting;
+ this._to = to;
+ this._isMuted = isMuted;
+ this._isOnHold = isOnHold;
+ this._initialConnectedTimestamp = initialConnectedTimestamp ? new Date(initialConnectedTimestamp) : undefined;
+ this._nativeEventHandler = {
+ /**
+ * Call State
+ */
+ [_constants.Constants.CallEventConnected]: this._handleConnectedEvent,
+ [_constants.Constants.CallEventConnectFailure]: this._handleConnectFailureEvent,
+ [_constants.Constants.CallEventDisconnected]: this._handleDisconnectedEvent,
+ [_constants.Constants.CallEventReconnected]: this._handleReconnectedEvent,
+ [_constants.Constants.CallEventReconnecting]: this._handleReconnectingEvent,
+ [_constants.Constants.CallEventRinging]: this._handleRingingEvent,
+
+ /**
+ * Call Quality
+ */
+ [_constants.Constants.CallEventQualityWarningsChanged]: this._handleQualityWarningsChangedEvent,
+
+ /**
+ * Call Message
+ */
+ [_constants.Constants.CallEventMessageReceived]: this._handleMessageReceivedEvent
+ };
+
+ _common.NativeEventEmitter.addListener(_constants.Constants.ScopeCall, this._handleNativeEvent);
+ }
+ /**
+ * This intermediate native call event handler acts as a "gate", only
+ * executing the actual call event handler (such as `Connected`) if this call
+ * object matches the `Uuid` of the call that had an event raised.
+ * @param nativeCallEvent - A call event directly from the native layer.
+ */
+
+
+ /**
+ * Helper function to update the state of the call when a call event occurs
+ * that necessitates an update, i.e. upon a
+ * {@link (Call:namespace).Event.Connected | Connected event} we want to
+ * update the state of the call to also reflect the
+ * {@link (Call:namespace).State.Connected | Connected state}.
+ * @param nativeCallEvent - The native call event.
+ */
+ _update({
+ type,
+ call: {
+ from,
+ initialConnectedTimestamp,
+ sid,
+ to
+ }
+ }) {
+ const newState = Call.EventTypeStateMap[type];
+
+ if (typeof newState === 'string') {
+ this._state = newState;
+ }
+
+ this._from = from;
+ this._initialConnectedTimestamp = initialConnectedTimestamp ? new Date(initialConnectedTimestamp) : undefined;
+ this._sid = sid;
+ this._to = to;
+ }
+ /**
+ * Handler for the the {@link (Call:namespace).Event.Connected} event.
+ * @param nativeCallEvent - The native call event.
+ */
+
+
+ /**
+ * Disconnect this side of the call.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the call has disconnected.
+ * - Rejects if the native layer cannot disconnect the call.
+ */
+ disconnect() {
+ return _common.NativeModule.call_disconnect(this._uuid);
+ }
+ /**
+ * Get the mute status of this side of the call.
+ * @returns
+ * - A boolean representing the muted status of the call.
+ * - `undefined` if the call state has not yet been received from the native
+ * layer.
+ */
+
+
+ isMuted() {
+ return this._isMuted;
+ }
+ /**
+ * Get the hold status of this side of the call.
+ * @returns
+ * - A boolean representing the hold status of the call.
+ * - `undefined` if the call state has not yet been received from the native
+ * layer.
+ */
+
+
+ isOnHold() {
+ return this._isOnHold;
+ }
+ /**
+ * Return a `Record` of custom parameters given to this call.
+ * @returns
+ * - A `Record` of custom parameters.
+ */
+
+
+ getCustomParameters() {
+ return this._customParameters;
+ }
+ /**
+ * Get the value of the `from` parameter given to this call.
+ * @returns
+ * - A `String` representing the `from` parameter.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+
+
+ getFrom() {
+ return this._from;
+ }
+ /**
+ * Get the timestamp (milliseconds since epoch) of the call connected event.
+ * @returns
+ * - A `number` representing the timestamp.
+ * - `undefined` if the call has not yet connected.
+ */
+
+
+ getInitialConnectedTimestamp() {
+ return this._initialConnectedTimestamp;
+ }
+ /**
+ * Get the call `SID`.
+ * @returns
+ * - A `String` representing the `SID` of the call.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+
+
+ getSid() {
+ return this._sid;
+ }
+ /**
+ * Get the state of the call object, such as {@link (Call:namespace).State.Connected} or
+ * {@link (Call:namespace).State.Disconnected}.
+ * @returns
+ * - A {@link (Call:namespace).State}.
+ */
+
+
+ getState() {
+ return this._state;
+ }
+ /**
+ * Gets the `PeerConnection` `WebRTC` stats for the ongoing call.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a {@link RTCStats.StatsReport} object representing the
+ * `WebRTC` `PeerConnection` stats of a call.
+ * - Rejects when a {@link RTCStats.StatsReport} cannot be generated for a
+ * call.
+ */
+
+
+ getStats() {
+ return _common.NativeModule.call_getStats(this._uuid);
+ }
+ /**
+ * Get the value of the `to` parameter given to this call.
+ * @returns
+ * - A `String` representing the `to` parameter.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+
+
+ getTo() {
+ return this._to;
+ }
+ /**
+ * Put this end of the call on hold or not on hold.
+ *
+ * @example
+ * To put a call on hold
+ * ```typescript
+ * call.hold(true);
+ * ```
+ * @example
+ * To take a call off hold
+ * ```typescript
+ * call.hold(false);
+ * ```
+ *
+ * @param hold - A `boolean` representing whether or not to put this end of
+ * the call on hold.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the hold status when the call is put on hold or not on
+ * hold.
+ * - Rejects when the call is not able to be put on hold or not on hold.
+ */
+
+
+ async hold(hold) {
+ this._isOnHold = await _common.NativeModule.call_hold(this._uuid, hold);
+ return this._isOnHold;
+ }
+ /**
+ * Mute or unmute this end of the call.
+ *
+ * @example
+ * To mute a call
+ * ```typescript
+ * call.mute(true);
+ * ```
+ *
+ * @example
+ * To unmute a call
+ * ```typescript
+ * call.mute(false);
+ * ```
+ *
+ * @param mute - A `boolean` representing whether or not to mute this end of
+ * the call.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the muted status of the call when the call is muted or
+ * unmuted.
+ * - Rejects when the call is not able to be muted or unmuted.
+ */
+
+
+ async mute(mute) {
+ this._isMuted = await _common.NativeModule.call_mute(this._uuid, mute);
+ return this._isMuted;
+ }
+ /**
+ * Send DTMF digits.
+ *
+ * @example
+ * To send the `0` dialtone:
+ * ```typescript
+ * call.sendDigits('0');
+ * ```
+ *
+ * @example
+ * To send the `0` and then `1` dialtone:
+ * ```typescript
+ * call.sendDigits('01');
+ * ```
+ *
+ * @param digits - A sequence of DTMF digits in a string.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves when the DTMF digits have been sent.
+ * - Rejects when DTMF tones are not able to be sent.
+ */
+
+
+ sendDigits(digits) {
+ return _common.NativeModule.call_sendDigits(this._uuid, digits);
+ }
+ /**
+ * Send a CallMessage.
+ *
+ * @example
+ * To send a user-defined-message
+ * ```typescript
+ * const outgoingCallMessage: OutgoingCallMessage = await call.sendMessage({
+ * content: { key1: 'This is a messsage from the parent call' },
+ * contentType: 'application/json',
+ * messageType: 'user-defined-message'
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
+ * // outgoingCallMessage failed, handle error
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
+ * // outgoingCallMessage sent
+ * });
+ * ```
+ *
+ * @param message The call message to send.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the OutgoingCallMessage object.
+ * - Rejects when the message is unable to be sent.
+ */
+
+
+ async sendMessage(message) {
+ const {
+ content,
+ contentType,
+ messageType
+ } = (0, _CallMessage.validateCallMessage)(message);
+ const voiceEventSid = await _common.NativeModule.call_sendMessage(this._uuid, content, contentType, messageType);
+ const outgoingCallMessage = new _OutgoingCallMessage.OutgoingCallMessage({
+ content,
+ contentType,
+ messageType,
+ voiceEventSid
+ });
+ return outgoingCallMessage;
+ }
+ /**
+ * Post feedback about a call.
+ *
+ * @example
+ * To report that a call had very significant audio latency:
+ * ```typescript
+ * call.postFeedback(Call.Score.Five, Call.Issue.AudioLatency);
+ * ```
+ *
+ * @param score - A score representing the serverity of the issue being
+ * reported.
+ * @param issue - The issue being reported.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the feedback has been posted.
+ * - Rejects when the feedback is unable to be sent.
+ */
+
+
+ postFeedback(score, issue) {
+ return _common.NativeModule.call_postFeedback(this._uuid, score, issue);
+ }
+
+}
+/**
+ * Namespace for enumerations and types used by
+ * {@link (Call:class) | Call objects}.
+ *
+ * @remarks
+ * - See also the {@link (Call:class) | Call class}.
+ * - See also the {@link (Call:interface) | Call interface}.
+ *
+ * @public
+ */
+
+
+exports.Call = Call;
+
+(function (_Call) {
+ let Event;
+
+ (function (Event) {
+ Event["Connected"] = "connected";
+ Event["ConnectFailure"] = "connectFailure";
+ Event["Reconnecting"] = "reconnecting";
+ Event["Reconnected"] = "reconnected";
+ Event["Disconnected"] = "disconnected";
+ Event["Ringing"] = "ringing";
+ Event["QualityWarningsChanged"] = "qualityWarningsChanged";
+ Event["MessageReceived"] = "messageReceived";
+ })(Event || (Event = {}));
+
+ _Call.Event = Event;
+ let State;
+
+ (function (State) {
+ State[State["Connected"] = _constants.Constants.CallStateConnected] = "Connected";
+ State[State["Connecting"] = _constants.Constants.CallStateConnecting] = "Connecting";
+ State[State["Disconnected"] = _constants.Constants.CallStateDisconnected] = "Disconnected";
+ State[State["Reconnecting"] = _constants.Constants.CallStateReconnecting] = "Reconnecting";
+ State[State["Ringing"] = _constants.Constants.CallStateRinging] = "Ringing";
+ })(State || (State = {}));
+
+ _Call.State = State;
+ const EventTypeStateMap = _Call.EventTypeStateMap = {
+ [_constants.Constants.CallEventConnected]: Call.State.Connected,
+ [_constants.Constants.CallEventConnectFailure]: Call.State.Disconnected,
+ [_constants.Constants.CallEventDisconnected]: Call.State.Disconnected,
+ [_constants.Constants.CallEventReconnecting]: Call.State.Reconnecting,
+ [_constants.Constants.CallEventReconnected]: Call.State.Connected,
+ [_constants.Constants.CallEventRinging]: Call.State.Ringing
+ };
+ let QualityWarning;
+
+ (function (QualityWarning) {
+ QualityWarning["ConstantAudioInputLevel"] = "constant-audio-input-level";
+ QualityWarning["HighJitter"] = "high-jitter";
+ QualityWarning["HighPacketLoss"] = "high-packet-loss";
+ QualityWarning["HighRtt"] = "high-rtt";
+ QualityWarning["LowMos"] = "low-mos";
+ })(QualityWarning || (QualityWarning = {}));
+
+ _Call.QualityWarning = QualityWarning;
+ let Score;
+
+ (function (Score) {
+ Score[Score["NotReported"] = 0] = "NotReported";
+ Score[Score["One"] = 1] = "One";
+ Score[Score["Two"] = 2] = "Two";
+ Score[Score["Three"] = 3] = "Three";
+ Score[Score["Four"] = 4] = "Four";
+ Score[Score["Five"] = 5] = "Five";
+ })(Score || (Score = {}));
+
+ _Call.Score = Score;
+ let Issue;
+
+ (function (Issue) {
+ Issue["NotReported"] = "not-reported";
+ Issue["DroppedCall"] = "dropped-call";
+ Issue["AudioLatency"] = "audio-latency";
+ Issue["OneWayAudio"] = "one-way-audio";
+ Issue["ChoppyAudio"] = "choppy-audio";
+ Issue["NoisyCall"] = "noisy-call";
+ Issue["Echo"] = "echo";
+ })(Issue || (Issue = {}));
+
+ _Call.Issue = Issue;
+ let Listener;
+
+ (function (_Listener) {})(Listener || (Listener = _Call.Listener || (_Call.Listener = {})));
+})(Call || (exports.Call = Call = {}));
+//# sourceMappingURL=Call.js.map
\ No newline at end of file
diff --git a/lib/commonjs/Call.js.map b/lib/commonjs/Call.js.map
new file mode 100644
index 00000000..6597bf36
--- /dev/null
+++ b/lib/commonjs/Call.js.map
@@ -0,0 +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","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","call_postFeedback","CallStateConnected","CallStateConnecting","CallStateDisconnected","CallStateReconnecting","CallStateRinging","QualityWarning","Score","Issue","Listener"],"mappings":"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AACrB,WAAO,KAAK9B,MAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACE+B,EAAAA,QAAQ,GAAkC;AACxC,WAAOP,qBAAaQ,aAAb,CAA2B,KAAKnE,KAAhC,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEoE,EAAAA,KAAK,GAAuB;AAC1B,WAAO,KAAK9B,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,QAAJ+B,IAAI,CAACA,IAAD,EAAkC;AAC1C,SAAK7B,SAAL,GAAiB,MAAMmB,qBAAaW,SAAb,CAAuB,KAAKtE,KAA5B,EAAmCqE,IAAnC,CAAvB;AACA,WAAO,KAAK7B,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,QAAJ+B,IAAI,CAACA,IAAD,EAAkC;AAC1C,SAAKhC,QAAL,GAAgB,MAAMoB,qBAAaa,SAAb,CAAuB,KAAKxE,KAA5B,EAAmCuE,IAAnC,CAAtB;AACA,WAAO,KAAKhC,QAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACEkC,EAAAA,UAAU,CAACC,MAAD,EAAgC;AACxC,WAAOf,qBAAagB,eAAb,CAA6B,KAAK3E,KAAlC,EAAyC0E,MAAzC,CAAP;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,CAACpE,OAAD,EAAqD;AACpE,UAAM;AAAEqE,MAAAA,OAAF;AAAWC,MAAAA,WAAX;AAAwBC,MAAAA;AAAxB,QAAwC,sCAAoBvE,OAApB,CAA9C;AAEA,UAAMwE,aAAa,GAAG,MAAMrB,qBAAasB,gBAAb,CAC1B,KAAKjF,KADqB,EAE1B6E,OAF0B,EAG1BC,WAH0B,EAI1BC,WAJ0B,CAA5B;AAOA,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;;;AACEE,EAAAA,YAAY,CAACC,KAAD,EAAoBC,KAApB,EAAsD;AAChE,WAAO3B,qBAAa4B,iBAAb,CAA+B,KAAKvF,KAApC,EAA2CqF,KAA3C,EAAkDC,KAAlD,CAAP;AACD;;AA1kBoC;AA6kBvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;MAKcjF,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;KAAAA,K,KAAAA,K;;;MAqDA+B,K;;aAAAA,K;AAAAA,IAAAA,K,CAAAA,K,gBAYInC,qBAAUuF,kB;AAZdpD,IAAAA,K,CAAAA,K,iBAmBKnC,qBAAUwF,mB;AAnBfrD,IAAAA,K,CAAAA,K,mBAgCOnC,qBAAUyF,qB;AAhCjBtD,IAAAA,K,CAAAA,K,mBA2COnC,qBAAU0F,qB;AA3CjBvD,IAAAA,K,CAAAA,K,cAoDEnC,qBAAU2F,gB;KApDZxD,K,KAAAA,K;;;AAmEL,QAAMqB,iBAEZ,6BAAG;AACF,KAACxD,qBAAUC,kBAAX,GAAgCrB,IAAI,CAACuD,KAAL,CAAW9B,SADzC;AAEF,KAACL,qBAAUM,uBAAX,GAAqC1B,IAAI,CAACuD,KAAL,CAAWvB,YAF9C;AAGF,KAACZ,qBAAUW,qBAAX,GAAmC/B,IAAI,CAACuD,KAAL,CAAWvB,YAH5C;AAIF,KAACZ,qBAAUa,qBAAX,GAAmCjC,IAAI,CAACuD,KAAL,CAAWrB,YAJ5C;AAKF,KAACd,qBAAUe,oBAAX,GAAkCnC,IAAI,CAACuD,KAAL,CAAW9B,SAL3C;AAMF,KAACL,qBAAUiB,gBAAX,GAA8BrC,IAAI,CAACuD,KAAL,CAAWjB;AANvC,GAFG;MAcK0E,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;;;MA8BAC,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;;;;;4BAmCKC,Q,KAAAA,Q,SAAAA,Q,WAAAA,Q;GAtOFnH,I,oBAAAA,I","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} from './type/Call';\nimport type { CustomParameters, Uuid } from './type/common';\nimport type { TwilioError } from './error/TwilioError';\nimport { constructTwilioError } from './error/utility';\nimport { CallMessage, validateCallMessage } from './CallMessage/CallMessage';\nimport { IncomingCallMessage } from './CallMessage/IncomingCallMessage';\nimport { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';\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 = Call.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 disconnect(): Promise {\n return 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 getStats(): Promise {\n return NativeModule.call_getStats(this._uuid);\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 {\n this._isOnHold = await NativeModule.call_hold(this._uuid, hold);\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 {\n this._isMuted = await NativeModule.call_mute(this._uuid, mute);\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 sendDigits(digits: string): Promise {\n return 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 {\n const { content, contentType, messageType } = validateCallMessage(message);\n\n const voiceEventSid = await NativeModule.call_sendMessage(\n this._uuid,\n content,\n contentType,\n messageType\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 postFeedback(score: Call.Score, issue: Call.Issue): Promise {\n return NativeModule.call_postFeedback(this._uuid, score, issue);\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 * 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 */\n export const EventTypeStateMap: Partial<\n Record\n > = {\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 * 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"]}
\ No newline at end of file
diff --git a/lib/commonjs/CallInvite.js b/lib/commonjs/CallInvite.js
new file mode 100644
index 00000000..618a424a
--- /dev/null
+++ b/lib/commonjs/CallInvite.js
@@ -0,0 +1,452 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.CallInvite = void 0;
+
+var _eventemitter = require("eventemitter3");
+
+var _Call = require("./Call");
+
+var _common = require("./common");
+
+var _InvalidStateError = require("./error/InvalidStateError");
+
+var _TwilioError = require("./error/TwilioError");
+
+var _UnsupportedPlatformError = require("./error/UnsupportedPlatformError");
+
+var _utility = require("./error/utility");
+
+var _CallMessage = require("./CallMessage/CallMessage");
+
+var _IncomingCallMessage = require("./CallMessage/IncomingCallMessage");
+
+var _OutgoingCallMessage = require("./CallMessage/OutgoingCallMessage");
+
+var _constants = require("./constants");
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Provides access to information about a call invite, including the call
+ * parameters, and exposes functionality to accept or decline a call.
+ *
+ * @remarks
+ *
+ * Note that when a `CallInvite` is acted upon (i.e. when
+ * {@link (CallInvite:class).accept} or {@link (CallInvite:class).reject} is
+ * invoked), then the `CallInvite` is "settled".
+ *
+ * The state of the `CallInvite` is changed from
+ * {@link (CallInvite:namespace).State.Pending} to
+ * {@link (CallInvite:namespace).State.Accepted} or
+ * {@link (CallInvite:namespace).State.Rejected} and the `CallInvite` can no
+ * longer be acted upon further.
+ *
+ * Further action after "settling" a `CallInvite` will throw an error.
+ *
+ * - See the {@link (CallInvite:namespace) | CallInvite namespace} for
+ * enumerations and types used by this class.
+ *
+ * @public
+ */
+class CallInvite extends _eventemitter.EventEmitter {
+ /**
+ * The current state of the call invite.
+ *
+ * @remarks
+ * See {@link (CallInvite:namespace).State}.
+ */
+
+ /**
+ * The `Uuid` of this call invite. Used to identify calls between the JS and
+ * native layer so we can associate events and native functionality between
+ * the layers.
+ */
+
+ /**
+ * A string representing the SID of this call.
+ */
+
+ /**
+ * Call custom parameters.
+ */
+
+ /**
+ * Call `from` parameter.
+ */
+
+ /**
+ * Call `to` parameter.
+ */
+
+ /**
+ * These objects should not be instantiated by consumers of the SDK. All
+ * instances of the `CallInvite` class should be emitted by the SDK.
+ *
+ * @param nativeCallInviteInfo - A dataobject containing the native
+ * information of a call invite.
+ * @param state - Mocking options for testing.
+ *
+ * @internal
+ */
+ constructor({
+ uuid,
+ callSid,
+ customParameters,
+ from,
+ to
+ }, state) {
+ super();
+
+ _defineProperty(this, "_state", void 0);
+
+ _defineProperty(this, "_uuid", void 0);
+
+ _defineProperty(this, "_callSid", void 0);
+
+ _defineProperty(this, "_customParameters", void 0);
+
+ _defineProperty(this, "_from", void 0);
+
+ _defineProperty(this, "_to", void 0);
+
+ _defineProperty(this, "_handleNativeCallInviteEvent", nativeCallInviteEvent => {
+ if (typeof nativeCallInviteEvent !== 'object') {
+ throw new _TwilioError.TwilioError(`Received a "${typeof nativeCallInviteEvent}" native call invite event.`);
+ }
+
+ if (nativeCallInviteEvent === null) {
+ throw new _TwilioError.TwilioError('Received a null native call invite event.');
+ }
+
+ if (typeof nativeCallInviteEvent.callSid !== 'string') {
+ throw new _TwilioError.TwilioError('Received a native call invite event without a call SID.');
+ }
+
+ if (nativeCallInviteEvent.callSid !== this._callSid) {
+ return;
+ }
+
+ switch (nativeCallInviteEvent.type) {
+ case _constants.Constants.CallInviteEventTypeValueAccepted:
+ return this._handleCallInviteAccepted(nativeCallInviteEvent);
+
+ case _constants.Constants.CallInviteEventTypeValueRejected:
+ return this._handleCallInviteRejected();
+
+ case _constants.Constants.CallInviteEventTypeValueCancelled:
+ return this._handleCallInviteCancelled(nativeCallInviteEvent);
+
+ case _constants.Constants.CallInviteEventTypeValueNotificationTapped:
+ return this._handleCallInviteNotificationTapped();
+
+ case _constants.Constants.CallEventMessageReceived:
+ return this._handleMessageReceivedEvent(nativeCallInviteEvent);
+
+ default:
+ return this._handleUnexpectedCallInviteEventType(nativeCallInviteEvent);
+ }
+ });
+
+ _defineProperty(this, "_handleMessageReceivedEvent", nativeCallInviteEvent => {
+ const {
+ callMessage: callMessageInfo
+ } = nativeCallInviteEvent;
+ const callMessage = new _IncomingCallMessage.IncomingCallMessage(callMessageInfo);
+ this.emit(CallInvite.Event.MessageReceived, callMessage);
+ });
+
+ _defineProperty(this, "_handleCallInviteAccepted", ({
+ callInvite
+ }) => {
+ this._state = CallInvite.State.Accepted;
+ const callInfo = {
+ uuid: callInvite.uuid,
+ customParameters: callInvite.customParameters,
+ sid: callInvite.callSid,
+ from: callInvite.from,
+ to: callInvite.to
+ };
+ const call = new _Call.Call(callInfo);
+ this.emit(CallInvite.Event.Accepted, call);
+ });
+
+ _defineProperty(this, "_handleCallInviteRejected", () => {
+ this._state = CallInvite.State.Rejected;
+ this.emit(CallInvite.Event.Rejected);
+ });
+
+ _defineProperty(this, "_handleCallInviteCancelled", nativeCallInviteCancelledEvent => {
+ this._state = CallInvite.State.Cancelled;
+ const error = nativeCallInviteCancelledEvent.error ? (0, _utility.constructTwilioError)(nativeCallInviteCancelledEvent.error.message, nativeCallInviteCancelledEvent.error.code) : undefined;
+ this.emit(CallInvite.Event.Cancelled, error);
+ });
+
+ _defineProperty(this, "_handleCallInviteNotificationTapped", () => {
+ this.emit(CallInvite.Event.NotificationTapped);
+ });
+
+ this._uuid = uuid;
+ this._callSid = callSid;
+ this._customParameters = { ...customParameters
+ };
+ this._from = from;
+ this._to = to;
+ this._state = state;
+
+ _common.NativeEventEmitter.addListener(_constants.Constants.ScopeCallInvite, this._handleNativeCallInviteEvent);
+ }
+ /**
+ * This helper function serves as both a runtime-check error log and a
+ * compile-time type-guard. If the switch-case statement below is non-
+ * exhaustive, then the type passed to this function will _not_ have type
+ * `never`.
+ */
+
+
+ _handleUnexpectedCallInviteEventType(event) {
+ throw new _TwilioError.TwilioError(`Unknown event type "${event === null || event === void 0 ? void 0 : event.type}" reached call invite.`);
+ }
+ /**
+ * This intermediate native call invite event handler acts as a "gate", only
+ * executing the actual call invite event handler (such as `Accepted`) if
+ * this call invite object matches the `Uuid` of the call invite that had an
+ * event raised.
+ * @param nativeCallInviteEvent - A call invite event directly from the native
+ * layer.
+ */
+
+
+ /**
+ * Accept a call invite. Sets the state of this call invite to
+ * {@link (CallInvite:namespace).State.Accepted}.
+ * @param options - Options to pass to the native layer when accepting the
+ * call.
+ * @returns
+ * - Resolves when a {@link (Call:class) | Call object} associated with this
+ * {@link (CallInvite:class)} has been created.
+ */
+ async accept(options = {}) {
+ if (this._state !== CallInvite.State.Pending) {
+ throw new _InvalidStateError.InvalidStateError(`Call in state "${this._state}", ` + `expected state "${CallInvite.State.Pending}".`);
+ }
+
+ const acceptResult = await _common.NativeModule.callInvite_accept(this._uuid, options).then(callInfo => {
+ return {
+ type: 'ok',
+ callInfo
+ };
+ }).catch(error => {
+ const code = error.userInfo.code;
+ const message = error.userInfo.message;
+ return {
+ type: 'err',
+ message,
+ code
+ };
+ });
+
+ if (acceptResult.type === 'err') {
+ throw (0, _utility.constructTwilioError)(acceptResult.message, acceptResult.code);
+ }
+
+ return new _Call.Call(acceptResult.callInfo);
+ }
+ /**
+ * Reject a call invite. Sets the state of this call invite to
+ * {@link (CallInvite:namespace).State.Rejected}.
+ * @returns
+ * - Resolves when the {@link (CallInvite:class)} has been rejected.
+ */
+
+
+ async reject() {
+ if (this._state !== CallInvite.State.Pending) {
+ throw new _InvalidStateError.InvalidStateError(`Call in state "${this._state}", ` + `expected state "${CallInvite.State.Pending}".`);
+ }
+
+ await _common.NativeModule.callInvite_reject(this._uuid);
+ }
+ /**
+ * Check if a `CallInvite` is valid.
+ *
+ * @returns
+ * - TODO
+ *
+ * @alpha
+ */
+
+
+ isValid() {
+ return _common.NativeModule.callInvite_isValid(this._uuid);
+ }
+ /**
+ * Get the call SID associated with this `CallInvite` class.
+ * @returns - A string representing the call SID.
+ */
+
+
+ getCallSid() {
+ return this._callSid;
+ }
+ /**
+ * Get the custom parameters of the call associated with this `CallInvite`
+ * class.
+ * @returns - A `Record` of custom parameters.
+ */
+
+
+ getCustomParameters() {
+ return this._customParameters;
+ }
+ /**
+ * Get the `from` parameter of the call associated with this `CallInvite`
+ * class.
+ * @returns - A `string` representing the `from` parameter.
+ */
+
+
+ getFrom() {
+ return this._from;
+ }
+ /**
+ * Get the `state` of the `CallInvite`.
+ * @returns - The `state` of this `CallInvite`.
+ */
+
+
+ getState() {
+ return this._state;
+ }
+ /**
+ * Get the `to` parameter of the call associated with this `CallInvite`
+ * class.
+ * @returns - A `string` representing the `to` parameter.
+ */
+
+
+ getTo() {
+ return this._to;
+ }
+ /**
+ * Send a CallMessage.
+ *
+ * @example
+ * To send a user-defined-message
+ * ```typescript
+ * const outgoingCallMessage: OutgoingCallMessage = await callInvite.sendMessage({
+ * content: { key1: 'This is a messsage from the parent call invite' },
+ * contentType: 'application/json',
+ * messageType: 'user-defined-message'
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
+ * // outgoingCallMessage failed, handle error
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
+ * // outgoingCallMessage sent
+ * });
+ * ```
+ *
+ * @param message The call message to send.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the OutgoingCallMessage object.
+ * - Rejects when the message is unable to be sent.
+ */
+
+
+ async sendMessage(message) {
+ const {
+ content,
+ contentType,
+ messageType
+ } = (0, _CallMessage.validateCallMessage)(message);
+ const voiceEventSid = await _common.NativeModule.call_sendMessage(this._uuid, content, contentType, messageType);
+ const outgoingCallMessage = new _OutgoingCallMessage.OutgoingCallMessage({
+ content,
+ contentType,
+ messageType,
+ voiceEventSid
+ });
+ return outgoingCallMessage;
+ }
+ /**
+ * Update the caller name displayed in the iOS system incoming call screen.
+ *
+ * @param newHandle - The new value of the caller's name.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * This API is specific to iOS and unavailable in Android. Invoke this method
+ * after the incoming call has been reported to CallKit and before the call
+ * has been accepted. For example, perform an async request to your app server
+ * to fetch the full name of the caller and use this method to replace the
+ * default caller name in `from`.
+ *
+ * @returns
+ * - Resolves when the caller name has been updated.
+ */
+
+
+ async updateCallerHandle(newHandle) {
+ switch (_common.Platform.OS) {
+ case 'ios':
+ return _common.NativeModule.callInvite_updateCallerHandle(this._uuid, newHandle);
+
+ default:
+ throw new _UnsupportedPlatformError.UnsupportedPlatformError(`Unsupported platform "${_common.Platform.OS}". This method is only supported on iOS.`);
+ }
+ }
+
+}
+/**
+ * Provides enumerations and types used by a {@link (CallInvite:class)
+ * | CallInvite object}.
+ *
+ * @remarks
+ * - See also the {@link (CallInvite:class) | CallInvite class}.
+ *
+ * @public
+ */
+
+
+exports.CallInvite = CallInvite;
+
+(function (_CallInvite) {
+ /**
+ * Options to pass to the native layer when accepting the call.
+ */
+ let State;
+
+ (function (State) {
+ State["Pending"] = "pending";
+ State["Accepted"] = "accepted";
+ State["Rejected"] = "rejected";
+ State["Cancelled"] = "cancelled";
+ })(State || (State = {}));
+
+ _CallInvite.State = State;
+ let Event;
+
+ (function (Event) {
+ Event["Accepted"] = "accepted";
+ Event["Rejected"] = "rejected";
+ Event["Cancelled"] = "cancelled";
+ Event["NotificationTapped"] = "notificationTapped";
+ Event["MessageReceived"] = "messageReceived";
+ })(Event || (Event = {}));
+
+ _CallInvite.Event = Event;
+ let Listener;
+
+ (function (_Listener) {})(Listener || (Listener = _CallInvite.Listener || (_CallInvite.Listener = {})));
+})(CallInvite || (exports.CallInvite = CallInvite = {}));
+//# sourceMappingURL=CallInvite.js.map
\ No newline at end of file
diff --git a/lib/commonjs/CallInvite.js.map b/lib/commonjs/CallInvite.js.map
new file mode 100644
index 00000000..0e21047b
--- /dev/null
+++ b/lib/commonjs/CallInvite.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["CallInvite.tsx"],"names":["CallInvite","EventEmitter","constructor","uuid","callSid","customParameters","from","to","state","nativeCallInviteEvent","TwilioError","_callSid","type","Constants","CallInviteEventTypeValueAccepted","_handleCallInviteAccepted","CallInviteEventTypeValueRejected","_handleCallInviteRejected","CallInviteEventTypeValueCancelled","_handleCallInviteCancelled","CallInviteEventTypeValueNotificationTapped","_handleCallInviteNotificationTapped","CallEventMessageReceived","_handleMessageReceivedEvent","_handleUnexpectedCallInviteEventType","callMessage","callMessageInfo","IncomingCallMessage","emit","Event","MessageReceived","callInvite","_state","State","Accepted","callInfo","sid","call","Call","Rejected","nativeCallInviteCancelledEvent","Cancelled","error","message","code","undefined","NotificationTapped","_uuid","_customParameters","_from","_to","NativeEventEmitter","addListener","ScopeCallInvite","_handleNativeCallInviteEvent","event","accept","options","Pending","InvalidStateError","acceptResult","NativeModule","callInvite_accept","then","catch","userInfo","reject","callInvite_reject","isValid","callInvite_isValid","getCallSid","getCustomParameters","getFrom","getState","getTo","sendMessage","content","contentType","messageType","voiceEventSid","call_sendMessage","outgoingCallMessage","OutgoingCallMessage","updateCallerHandle","newHandle","Platform","OS","callInvite_updateCallerHandle","UnsupportedPlatformError","Listener"],"mappings":"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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 { Call } from './Call';\nimport { NativeEventEmitter, NativeModule, Platform } from './common';\nimport { InvalidStateError } from './error/InvalidStateError';\nimport { TwilioError } from './error/TwilioError';\nimport { UnsupportedPlatformError } from './error/UnsupportedPlatformError';\nimport { constructTwilioError } from './error/utility';\nimport type {\n NativeCallInviteInfo,\n NativeCallInviteEvent,\n NativeCallInviteAcceptedEvent,\n NativeCallInviteCancelledEvent,\n NativeCallInviteMessageReceivedEvent,\n} from './type/CallInvite';\nimport type { CustomParameters, Uuid } from './type/common';\nimport { CallMessage, validateCallMessage } from './CallMessage/CallMessage';\nimport { IncomingCallMessage } from './CallMessage/IncomingCallMessage';\nimport { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';\nimport { Constants } from './constants';\n\n/**\n * Defines strict typings for all events emitted by {@link (CallInvite:class)\n * | CallInvite 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 (CallInvite:class) | CallInvite class}.\n * - See also the {@link (CallInvite:namespace) | CallInvite namespace}.\n *\n * @public\n */\nexport declare interface CallInvite {\n /**\n * ------------\n * Emit Typings\n * ------------\n */\n\n /** @internal */\n emit(acceptedEvent: CallInvite.Event.Accepted, call: Call): boolean;\n\n /** @internal */\n emit(rejectedEvent: CallInvite.Event.Rejected): boolean;\n\n /** @internal */\n emit(\n cancelledEvent: CallInvite.Event.Cancelled,\n error?: TwilioError\n ): boolean;\n\n /** @internal */\n emit(notificationTappedEvent: CallInvite.Event.NotificationTapped): boolean;\n\n /** @internal */\n emit(\n messageReceivedEvent: CallInvite.Event.MessageReceived,\n incomingCallMessage: IncomingCallMessage\n ): boolean;\n\n /**\n * ----------------\n * Listener Typings\n * ----------------\n */\n\n /**\n * Accepted event. Raised when the call invite has been accepted.\n *\n * @example\n * ```ts\n * voice.on(Voice.Event.CallInvite, (callInvite) => {\n * callInvite.on(CallInvite.Event.Accepted, (call) => {\n * // the call invite was accepted through either the native layer\n * // or the js layer\n * });\n * });\n * ```\n *\n * @remarks\n *\n * @param acceptedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call invite object.\n */\n addListener(\n acceptedEvent: CallInvite.Event.Accepted,\n listener: CallInvite.Listener.Accepted\n ): this;\n /** {@inheritDoc (CallInvite:interface).(addListener:1)} */\n on(\n acceptedEvent: CallInvite.Event.Accepted,\n listener: CallInvite.Listener.Accepted\n ): this;\n\n /**\n * Rejected event. Raised when the call invite has been rejected.\n *\n * @example\n * ```ts\n * voice.on(Voice.Event.CallInvite, (callInvite) => {\n * callInvite.on(CallInvite.Event.Rejected, () => {\n * // the call invite was rejected through either the native layer\n * // or the js layer\n * });\n * });\n * ```\n *\n * @remarks\n *\n * @param rejectedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call invite object.\n */\n addListener(\n rejectedEvent: CallInvite.Event.Rejected,\n listener: CallInvite.Listener.Rejected\n ): this;\n /** {@inheritDoc (CallInvite:interface).(addListener:2)} */\n on(\n rejectedEvent: CallInvite.Event.Rejected,\n listener: CallInvite.Listener.Rejected\n ): this;\n\n /**\n * Cancelled event. Raised when the call invite has been cancelled.\n *\n * @example\n * ```ts\n * voice.on(Voice.Event.CallInvite, (callInvite) => {\n * callInvite.on(CallInvite.Event.Cancelled, (error) => {\n * // the call invite was cancelled\n * });\n * });\n * ```\n *\n * @remarks\n *\n * @param cancelledEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call invite object.\n */\n addListener(\n cancelledEvent: CallInvite.Event.Cancelled,\n listener: CallInvite.Listener.Cancelled\n ): this;\n /** {@inheritDoc (CallInvite:interface).(addListener:3)} */\n on(\n cancelledEvent: CallInvite.Event.Cancelled,\n listener: CallInvite.Listener.Cancelled\n ): this;\n\n /**\n * Notification tapped event. Raised when the call invite notification has\n * been tapped.\n *\n * @example\n * ```ts\n * voice.on(Voice.Event.CallInvite, (callInvite) => {\n * callInvite.on(CallInvite.Event.NotificationTapped, () => {\n * // the call invite notification was tapped\n * });\n * });\n * ```\n *\n * @remarks\n * This API is Android specific.\n *\n * @param notificationTappedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call invite object.\n */\n addListener(\n notificationTappedEvent: CallInvite.Event.NotificationTapped,\n listener: CallInvite.Listener.NotificationTapped\n ): this;\n /** {@inheritDoc (CallInvite:interface).(addListener:4)} */\n on(\n notificationTappedEvent: CallInvite.Event.NotificationTapped,\n listener: CallInvite.Listener.NotificationTapped\n ): this;\n\n /**\n * MessageReceived event. Raised when a {@link IncomingCallMessage} is\n * received.\n *\n * @example\n * ```typescript\n * voice.on(Voice.Event.CallInvite, (callInvite) => {\n * callInvite.addListener(CallInvite.Event.MessageReceived, (message) => {\n * // callMessage received\n * });\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: CallInvite.Event.MessageReceived,\n listener: CallInvite.Listener.MessageReceived\n ): this;\n /** {@inheritDoc (CallInvite:interface).(addListener:5)} */\n on(\n messageReceivedEvent: CallInvite.Event.MessageReceived,\n listener: CallInvite.Listener.MessageReceived\n ): this;\n}\n\n/**\n * Provides access to information about a call invite, including the call\n * parameters, and exposes functionality to accept or decline a call.\n *\n * @remarks\n *\n * Note that when a `CallInvite` is acted upon (i.e. when\n * {@link (CallInvite:class).accept} or {@link (CallInvite:class).reject} is\n * invoked), then the `CallInvite` is \"settled\".\n *\n * The state of the `CallInvite` is changed from\n * {@link (CallInvite:namespace).State.Pending} to\n * {@link (CallInvite:namespace).State.Accepted} or\n * {@link (CallInvite:namespace).State.Rejected} and the `CallInvite` can no\n * longer be acted upon further.\n *\n * Further action after \"settling\" a `CallInvite` will throw an error.\n *\n * - See the {@link (CallInvite:namespace) | CallInvite namespace} for\n * enumerations and types used by this class.\n *\n * @public\n */\nexport class CallInvite extends EventEmitter {\n /**\n * The current state of the call invite.\n *\n * @remarks\n * See {@link (CallInvite:namespace).State}.\n */\n private _state: CallInvite.State;\n /**\n * The `Uuid` of this call invite. Used to identify calls between the JS and\n * native layer so we can associate events and native functionality between\n * the layers.\n */\n private _uuid: Uuid;\n /**\n * A string representing the SID of this call.\n */\n private _callSid: string;\n /**\n * Call custom parameters.\n */\n private _customParameters: CustomParameters;\n /**\n * Call `from` parameter.\n */\n private _from: string;\n /**\n * Call `to` parameter.\n */\n private _to: string;\n\n /**\n * These objects should not be instantiated by consumers of the SDK. All\n * instances of the `CallInvite` class should be emitted by the SDK.\n *\n * @param nativeCallInviteInfo - A dataobject containing the native\n * information of a call invite.\n * @param state - Mocking options for testing.\n *\n * @internal\n */\n constructor(\n { uuid, callSid, customParameters, from, to }: NativeCallInviteInfo,\n state: CallInvite.State\n ) {\n super();\n\n this._uuid = uuid;\n this._callSid = callSid;\n this._customParameters = { ...customParameters };\n this._from = from;\n this._to = to;\n\n this._state = state;\n\n NativeEventEmitter.addListener(\n Constants.ScopeCallInvite,\n this._handleNativeCallInviteEvent\n );\n }\n\n /**\n * This helper function serves as both a runtime-check error log and a\n * compile-time type-guard. If the switch-case statement below is non-\n * exhaustive, then the type passed to this function will _not_ have type\n * `never`.\n */\n private _handleUnexpectedCallInviteEventType(event: never) {\n throw new TwilioError(\n `Unknown event type \"${(event as any)?.type}\" reached call invite.`\n );\n }\n\n /**\n * This intermediate native call invite event handler acts as a \"gate\", only\n * executing the actual call invite event handler (such as `Accepted`) if\n * this call invite object matches the `Uuid` of the call invite that had an\n * event raised.\n * @param nativeCallInviteEvent - A call invite event directly from the native\n * layer.\n */\n private _handleNativeCallInviteEvent = (\n nativeCallInviteEvent: NativeCallInviteEvent\n ) => {\n if (typeof nativeCallInviteEvent !== 'object') {\n throw new TwilioError(\n `Received a \"${typeof nativeCallInviteEvent}\" native call invite event.`\n );\n }\n\n if (nativeCallInviteEvent === null) {\n throw new TwilioError('Received a null native call invite event.');\n }\n\n if (typeof nativeCallInviteEvent.callSid !== 'string') {\n throw new TwilioError(\n 'Received a native call invite event without a call SID.'\n );\n }\n\n if (nativeCallInviteEvent.callSid !== this._callSid) {\n return;\n }\n\n switch (nativeCallInviteEvent.type) {\n case Constants.CallInviteEventTypeValueAccepted:\n return this._handleCallInviteAccepted(nativeCallInviteEvent);\n case Constants.CallInviteEventTypeValueRejected:\n return this._handleCallInviteRejected();\n case Constants.CallInviteEventTypeValueCancelled:\n return this._handleCallInviteCancelled(nativeCallInviteEvent);\n case Constants.CallInviteEventTypeValueNotificationTapped:\n return this._handleCallInviteNotificationTapped();\n case Constants.CallEventMessageReceived:\n return this._handleMessageReceivedEvent(nativeCallInviteEvent);\n default:\n return this._handleUnexpectedCallInviteEventType(nativeCallInviteEvent);\n }\n };\n\n /**\n * Handler for the {@link (CallInvite:namespace).Event.MessageReceived} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleMessageReceivedEvent = (\n nativeCallInviteEvent: NativeCallInviteMessageReceivedEvent\n ) => {\n const { callMessage: callMessageInfo } = nativeCallInviteEvent;\n\n const callMessage = new IncomingCallMessage(callMessageInfo);\n\n this.emit(CallInvite.Event.MessageReceived, callMessage);\n };\n\n /**\n * Handle when this call invite is accepted.\n */\n private _handleCallInviteAccepted = ({\n callInvite,\n }: NativeCallInviteAcceptedEvent) => {\n this._state = CallInvite.State.Accepted;\n\n const callInfo = {\n uuid: callInvite.uuid,\n customParameters: callInvite.customParameters,\n sid: callInvite.callSid,\n from: callInvite.from,\n to: callInvite.to,\n };\n\n const call = new Call(callInfo);\n\n this.emit(CallInvite.Event.Accepted, call);\n };\n\n /**\n * Handle when this call invite is rejected.\n */\n private _handleCallInviteRejected = () => {\n this._state = CallInvite.State.Rejected;\n this.emit(CallInvite.Event.Rejected);\n };\n\n /**\n * Handle when a call invite is cancelled.\n */\n private _handleCallInviteCancelled = (\n nativeCallInviteCancelledEvent: NativeCallInviteCancelledEvent\n ) => {\n this._state = CallInvite.State.Cancelled;\n\n const error = nativeCallInviteCancelledEvent.error\n ? constructTwilioError(\n nativeCallInviteCancelledEvent.error.message,\n nativeCallInviteCancelledEvent.error.code\n )\n : undefined;\n\n this.emit(CallInvite.Event.Cancelled, error);\n };\n\n /**\n * Handle when a call invite notification is tapped.\n */\n private _handleCallInviteNotificationTapped = () => {\n this.emit(CallInvite.Event.NotificationTapped);\n };\n\n /**\n * Accept a call invite. Sets the state of this call invite to\n * {@link (CallInvite:namespace).State.Accepted}.\n * @param options - Options to pass to the native layer when accepting the\n * call.\n * @returns\n * - Resolves when a {@link (Call:class) | Call object} associated with this\n * {@link (CallInvite:class)} has been created.\n */\n async accept(options: CallInvite.AcceptOptions = {}): Promise {\n if (this._state !== CallInvite.State.Pending) {\n throw new InvalidStateError(\n `Call in state \"${this._state}\", ` +\n `expected state \"${CallInvite.State.Pending}\".`\n );\n }\n\n const acceptResult = await NativeModule.callInvite_accept(\n this._uuid,\n options\n )\n .then((callInfo) => {\n return { type: 'ok', callInfo } as const;\n })\n .catch((error) => {\n const code = error.userInfo.code;\n const message = error.userInfo.message;\n return { type: 'err', message, code } as const;\n });\n\n if (acceptResult.type === 'err') {\n throw constructTwilioError(acceptResult.message, acceptResult.code);\n }\n\n return new Call(acceptResult.callInfo);\n }\n\n /**\n * Reject a call invite. Sets the state of this call invite to\n * {@link (CallInvite:namespace).State.Rejected}.\n * @returns\n * - Resolves when the {@link (CallInvite:class)} has been rejected.\n */\n async reject(): Promise {\n if (this._state !== CallInvite.State.Pending) {\n throw new InvalidStateError(\n `Call in state \"${this._state}\", ` +\n `expected state \"${CallInvite.State.Pending}\".`\n );\n }\n\n await NativeModule.callInvite_reject(this._uuid);\n }\n\n /**\n * Check if a `CallInvite` is valid.\n *\n * @returns\n * - TODO\n *\n * @alpha\n */\n isValid(): Promise {\n return NativeModule.callInvite_isValid(this._uuid);\n }\n\n /**\n * Get the call SID associated with this `CallInvite` class.\n * @returns - A string representing the call SID.\n */\n getCallSid(): string {\n return this._callSid;\n }\n\n /**\n * Get the custom parameters of the call associated with this `CallInvite`\n * class.\n * @returns - A `Record` of custom parameters.\n */\n getCustomParameters(): CustomParameters {\n return this._customParameters;\n }\n\n /**\n * Get the `from` parameter of the call associated with this `CallInvite`\n * class.\n * @returns - A `string` representing the `from` parameter.\n */\n getFrom(): string {\n return this._from;\n }\n\n /**\n * Get the `state` of the `CallInvite`.\n * @returns - The `state` of this `CallInvite`.\n */\n getState(): CallInvite.State {\n return this._state;\n }\n\n /**\n * Get the `to` parameter of the call associated with this `CallInvite`\n * class.\n * @returns - A `string` representing the `to` parameter.\n */\n getTo(): string {\n return this._to;\n }\n\n /**\n * Send a CallMessage.\n *\n * @example\n * To send a user-defined-message\n * ```typescript\n * const outgoingCallMessage: OutgoingCallMessage = await callInvite.sendMessage({\n * content: { key1: 'This is a messsage from the parent call invite' },\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 {\n const { content, contentType, messageType } = validateCallMessage(message);\n\n const voiceEventSid = await NativeModule.call_sendMessage(\n this._uuid,\n content,\n contentType,\n messageType\n );\n\n const outgoingCallMessage = new OutgoingCallMessage({\n content,\n contentType,\n messageType,\n voiceEventSid,\n });\n\n return outgoingCallMessage;\n }\n\n /**\n * Update the caller name displayed in the iOS system incoming call screen.\n *\n * @param newHandle - The new value of the caller's name.\n *\n * @remarks\n * Unsupported platforms:\n * - Android\n *\n * This API is specific to iOS and unavailable in Android. Invoke this method\n * after the incoming call has been reported to CallKit and before the call\n * has been accepted. For example, perform an async request to your app server\n * to fetch the full name of the caller and use this method to replace the\n * default caller name in `from`.\n *\n * @returns\n * - Resolves when the caller name has been updated.\n */\n async updateCallerHandle(newHandle: string): Promise {\n switch (Platform.OS) {\n case 'ios':\n return NativeModule.callInvite_updateCallerHandle(\n this._uuid,\n newHandle\n );\n default:\n throw new UnsupportedPlatformError(\n `Unsupported platform \"${Platform.OS}\". This method is only supported on iOS.`\n );\n }\n }\n}\n\n/**\n * Provides enumerations and types used by a {@link (CallInvite:class)\n * | CallInvite object}.\n *\n * @remarks\n * - See also the {@link (CallInvite:class) | CallInvite class}.\n *\n * @public\n */\nexport namespace CallInvite {\n /**\n * Options to pass to the native layer when accepting the call.\n */\n export interface AcceptOptions {}\n\n /**\n * An enumeration of {@link (CallInvite:class)} states.\n */\n export enum State {\n /**\n * State of a call invite when it has not been acted upon.\n */\n Pending = 'pending',\n\n /**\n * State of a call invite when it has been accepted.\n */\n Accepted = 'accepted',\n\n /**\n * State of a call invite when it has been rejected.\n */\n Rejected = 'rejected',\n\n /**\n * State of a call invite when it has been cancelled.\n */\n Cancelled = 'cancelled',\n }\n\n /**\n * Enumeration of all event strings emitted by {@link (CallInvite:class)}\n * objects.\n */\n export enum Event {\n /**\n * Event string for the `Accepted` event.\n * See {@link (CallInvite:interface).(addListener:1)}.\n */\n Accepted = 'accepted',\n\n /**\n * Event string for the `Rejected` event.\n * See {@link (CallInvite:interface).(addListener:2)}.\n */\n Rejected = 'rejected',\n\n /**\n * Event string for the `Cancelled` event.\n * See {@link (CallInvite:interaface).(addListener:3)}.\n */\n Cancelled = 'cancelled',\n\n /**\n * Event string for the `NotificationTapped` event.\n * See {@link (CallInvite:interaface).(addListener:4)}.\n */\n NotificationTapped = 'notificationTapped',\n\n /**\n * Event string for the `MessageReceived` event.\n * See {@link (CallInvite:interface).(addListener:5)}\n */\n MessageReceived = 'messageReceived',\n }\n\n /**\n * Listener types for all events emitted by a\n * {@link (CallInvite:class) | Call invite object.}\n */\n export namespace Listener {\n /**\n * Accepted event listener. This should be the function signature of any\n * event listener bound to the {@link (CallInvite:namespace).Event.Accepted}\n * event.\n *\n * @remarks\n * See {@link (CallInvite:interface).(addListener:1)}.\n */\n export type Accepted = (call: Call) => void;\n\n /**\n * Rejected event listener. This should be the function signature of any\n * event listener bound to the {@link (CallInvite:namespace).Event.Rejected}\n * event.\n *\n * @remarks\n * See {@link (CallInvite:interface).(addListener:2)}.\n */\n export type Rejected = () => void;\n\n /**\n * Cancelled event listener. This should be the function signature of any\n * event listener bound to the\n * {@link (CallInvite:namespace).Event.Cancelled} event.\n *\n * @remarks\n * See {@link (CallInvite:interface).(addListener:3)}.\n */\n export type Cancelled = (error?: TwilioError) => void;\n\n /**\n * Rejected event listener. This should be the function signature of any\n * event listener bound to the\n * {@link (CallInvite:namespace).Event.NotificationTapped} event.\n *\n * @remarks\n * See {@link (CallInvite:interface).(addListener:4)}.\n */\n export type NotificationTapped = () => void;\n\n /**\n * CallInviteMessage received event listener. This should be the function signature of\n * any event listener bound to the {@link (CallInvite:namespace).Event.MessageReceived} event.\n *\n * @remarks\n * See {@link (CallInvite:interface).(addListener:5)}.\n */\n export type MessageReceived = (\n incomingCallMessage: IncomingCallMessage\n ) => void;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/CallMessage/CallMessage.js b/lib/commonjs/CallMessage/CallMessage.js
new file mode 100644
index 00000000..faf0ba86
--- /dev/null
+++ b/lib/commonjs/CallMessage/CallMessage.js
@@ -0,0 +1,54 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.validateCallMessage = validateCallMessage;
+
+var _InvalidArgumentError = require("../error/InvalidArgumentError");
+
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+
+/**
+ * Parse CallMessage values. Used when constructing a CallMessage from the
+ * native layer, or by the Call and CallInvite classes when sending a
+ * CallMessage.
+ *
+ * @param message the CallMessage details.
+ *
+ * @internal
+ */
+function validateCallMessage(message) {
+ const content = message.content;
+ const messageType = message.messageType;
+ let contentType = message.contentType;
+
+ if (typeof contentType === 'undefined') {
+ contentType = 'application/json';
+ }
+
+ if (typeof contentType !== 'string') {
+ throw new _InvalidArgumentError.InvalidArgumentError('If "contentType" is present, it must be of type "string".');
+ }
+
+ if (typeof messageType !== 'string') {
+ throw new _InvalidArgumentError.InvalidArgumentError('"messageType" must be of type "string".');
+ }
+
+ if (typeof content === 'undefined' || content === null) {
+ throw new _InvalidArgumentError.InvalidArgumentError('"content" must be defined and not "null".');
+ }
+
+ const contentStr = typeof content === 'string' ? content : JSON.stringify(content);
+ return {
+ content: contentStr,
+ contentType,
+ messageType
+ };
+}
+//# sourceMappingURL=CallMessage.js.map
\ No newline at end of file
diff --git a/lib/commonjs/CallMessage/CallMessage.js.map b/lib/commonjs/CallMessage/CallMessage.js.map
new file mode 100644
index 00000000..2f45977c
--- /dev/null
+++ b/lib/commonjs/CallMessage/CallMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["CallMessage.ts"],"names":["validateCallMessage","message","content","messageType","contentType","InvalidArgumentError","contentStr","JSON","stringify"],"mappings":";;;;;;;AAOA;;AAPA;AACA;AACA;AACA;AACA;AACA;;AAwCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAT,CAA6BC,OAA7B,EAAmD;AACxD,QAAMC,OAAO,GAAGD,OAAO,CAACC,OAAxB;AACA,QAAMC,WAAW,GAAGF,OAAO,CAACE,WAA5B;AAEA,MAAIC,WAAW,GAAGH,OAAO,CAACG,WAA1B;;AAEA,MAAI,OAAOA,WAAP,KAAuB,WAA3B,EAAwC;AACtCA,IAAAA,WAAW,GAAG,kBAAd;AACD;;AAED,MAAI,OAAOA,WAAP,KAAuB,QAA3B,EAAqC;AACnC,UAAM,IAAIC,0CAAJ,CACJ,2DADI,CAAN;AAGD;;AAED,MAAI,OAAOF,WAAP,KAAuB,QAA3B,EAAqC;AACnC,UAAM,IAAIE,0CAAJ,CAAyB,yCAAzB,CAAN;AACD;;AAED,MAAI,OAAOH,OAAP,KAAmB,WAAnB,IAAkCA,OAAO,KAAK,IAAlD,EAAwD;AACtD,UAAM,IAAIG,0CAAJ,CAAyB,2CAAzB,CAAN;AACD;;AAED,QAAMC,UAAU,GACd,OAAOJ,OAAP,KAAmB,QAAnB,GAA8BA,OAA9B,GAAwCK,IAAI,CAACC,SAAL,CAAeN,OAAf,CAD1C;AAGA,SAAO;AAAEA,IAAAA,OAAO,EAAEI,UAAX;AAAuBF,IAAAA,WAAvB;AAAoCD,IAAAA;AAApC,GAAP;AACD","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 { InvalidArgumentError } from '../error/InvalidArgumentError';\n\n/**\n * The constituent values of a Call Message.\n *\n * @public\n */\nexport interface CallMessage {\n /**\n * The content of the message. This value should match the content type\n * parameter.\n *\n * See {@link CallMessage.contentType} for more information.\n */\n content: any;\n\n /**\n * The content type of the message. This value should accurately describe\n * the content of the message. The following values are accepted:\n *\n * - \"application/json\"\n *\n * If no value is defined, then the default value of \"application/json\" will\n * be used.\n *\n * If the `contentType` of the message is \"application/json\", the content\n * of the message may be a JS object.\n */\n contentType?: string;\n\n /**\n * The message type. The following values are accepted:\n *\n * - \"user-defined-message\"\n */\n messageType: string;\n}\n\n/**\n * Parse CallMessage values. Used when constructing a CallMessage from the\n * native layer, or by the Call and CallInvite classes when sending a\n * CallMessage.\n *\n * @param message the CallMessage details.\n *\n * @internal\n */\nexport function validateCallMessage(message: CallMessage) {\n const content = message.content;\n const messageType = message.messageType;\n\n let contentType = message.contentType;\n\n if (typeof contentType === 'undefined') {\n contentType = 'application/json';\n }\n\n if (typeof contentType !== 'string') {\n throw new InvalidArgumentError(\n 'If \"contentType\" is present, it must be of type \"string\".'\n );\n }\n\n if (typeof messageType !== 'string') {\n throw new InvalidArgumentError('\"messageType\" must be of type \"string\".');\n }\n\n if (typeof content === 'undefined' || content === null) {\n throw new InvalidArgumentError('\"content\" must be defined and not \"null\".');\n }\n\n const contentStr =\n typeof content === 'string' ? content : JSON.stringify(content);\n\n return { content: contentStr, contentType, messageType };\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/CallMessage/IncomingCallMessage.js b/lib/commonjs/CallMessage/IncomingCallMessage.js
new file mode 100644
index 00000000..7b07126f
--- /dev/null
+++ b/lib/commonjs/CallMessage/IncomingCallMessage.js
@@ -0,0 +1,120 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.IncomingCallMessage = void 0;
+
+var _eventemitter = require("eventemitter3");
+
+var _CallMessage = require("./CallMessage");
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * CallMessage API is in beta.
+ *
+ * Provides access to information about a CallMessage, including the call
+ * message content, content type, message type, and voice event SID.
+ *
+ * @public
+ */
+class IncomingCallMessage extends _eventemitter.EventEmitter {
+ /**
+ * The content of the message which should match the contentType parameter.
+ */
+
+ /**
+ * The MIME type of the content.
+ */
+
+ /**
+ * Message type
+ */
+
+ /**
+ * An autogenerated ID that uniquely identifies this message.
+ * This is not required when sending a message from the SDK as this is
+ * autogenerated.
+ * The ID will be available after the message is sent, or immediately when a
+ * message is received.
+ */
+
+ /**
+ * Constructor for the {@link IncomingCallMessage} class. This should not be
+ * invoked by third-party code.
+ *
+ * @param NativeCallMessageInfo - An object containing all of the data from
+ * the native layer necessary to fully describe a call message, as well as
+ * invoke native functionality for the call message.
+ *
+ * @internal
+ */
+ constructor(callMessageInfo) {
+ super();
+
+ _defineProperty(this, "_content", void 0);
+
+ _defineProperty(this, "_contentType", void 0);
+
+ _defineProperty(this, "_messageType", void 0);
+
+ _defineProperty(this, "_voiceEventSid", void 0);
+
+ const {
+ content,
+ contentType,
+ messageType
+ } = (0, _CallMessage.validateCallMessage)(callMessageInfo);
+ this._content = content;
+ this._contentType = contentType;
+ this._messageType = messageType;
+ this._voiceEventSid = callMessageInfo.voiceEventSid;
+ }
+ /**
+ * {@inheritdoc CallMessage.content}
+ *
+ * @returns the content of the call message.
+ */
+
+
+ getContent() {
+ return this._content;
+ }
+ /**
+ * {@inheritdoc CallMessage.contentType}
+ *
+ * @returns the content type of the call message.
+ */
+
+
+ getContentType() {
+ return this._contentType;
+ }
+ /**
+ * {@inheritdoc CallMessage.messageType}
+ *
+ * @returns the message type of the call message.
+ */
+
+
+ getMessageType() {
+ return this._messageType;
+ }
+ /**
+ * Get the message SID.
+ * @returns
+ * - A string representing the message SID.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+
+
+ getSid() {
+ return this._voiceEventSid;
+ }
+
+}
+
+exports.IncomingCallMessage = IncomingCallMessage;
+//# sourceMappingURL=IncomingCallMessage.js.map
\ No newline at end of file
diff --git a/lib/commonjs/CallMessage/IncomingCallMessage.js.map b/lib/commonjs/CallMessage/IncomingCallMessage.js.map
new file mode 100644
index 00000000..2b77240f
--- /dev/null
+++ b/lib/commonjs/CallMessage/IncomingCallMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["IncomingCallMessage.ts"],"names":["IncomingCallMessage","EventEmitter","constructor","callMessageInfo","content","contentType","messageType","_content","_contentType","_messageType","_voiceEventSid","voiceEventSid","getContent","getContentType","getMessageType","getSid"],"mappings":";;;;;;;AAOA;;AAEA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,mBAAN,SAAkCC,0BAAlC,CAA+C;AACpD;AACF;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;AACA;AACA;AACA;AACA;;AAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,WAAW,CAACC,eAAD,EAAyC;AAClD;;AADkD;;AAAA;;AAAA;;AAAA;;AAGlD,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA,WAAX;AAAwBC,MAAAA;AAAxB,QACJ,sCAAoBH,eAApB,CADF;AAGA,SAAKI,QAAL,GAAgBH,OAAhB;AACA,SAAKI,YAAL,GAAoBH,WAApB;AACA,SAAKI,YAAL,GAAoBH,WAApB;AACA,SAAKI,cAAL,GAAsBP,eAAe,CAACQ,aAAtC;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEC,EAAAA,UAAU,GAAQ;AAChB,WAAO,KAAKL,QAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEM,EAAAA,cAAc,GAAW;AACvB,WAAO,KAAKL,YAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEM,EAAAA,cAAc,GAAW;AACvB,WAAO,KAAKL,YAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEM,EAAAA,MAAM,GAAuB;AAC3B,WAAO,KAAKL,cAAZ;AACD;;AAnFmD","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 { NativeCallMessageInfo } from '../type/CallMessage';\nimport { validateCallMessage } from './CallMessage';\n\n/**\n * CallMessage API is in beta.\n *\n * Provides access to information about a CallMessage, including the call\n * message content, content type, message type, and voice event SID.\n *\n * @public\n */\nexport class IncomingCallMessage extends EventEmitter {\n /**\n * The content of the message which should match the contentType parameter.\n */\n private _content: any;\n\n /**\n * The MIME type of the content.\n */\n private _contentType: string;\n\n /**\n * Message type\n */\n private _messageType: string;\n\n /**\n * An autogenerated ID that uniquely identifies this message.\n * This is not required when sending a message from the SDK as this is\n * autogenerated.\n * The ID will be available after the message is sent, or immediately when a\n * message is received.\n */\n private _voiceEventSid?: string;\n\n /**\n * Constructor for the {@link IncomingCallMessage} class. This should not be\n * invoked by third-party code.\n *\n * @param NativeCallMessageInfo - An object containing all of the data from\n * the native layer necessary to fully describe a call message, as well as\n * invoke native functionality for the call message.\n *\n * @internal\n */\n constructor(callMessageInfo: NativeCallMessageInfo) {\n super();\n\n const { content, contentType, messageType } =\n validateCallMessage(callMessageInfo);\n\n this._content = content;\n this._contentType = contentType;\n this._messageType = messageType;\n this._voiceEventSid = callMessageInfo.voiceEventSid;\n }\n\n /**\n * {@inheritdoc CallMessage.content}\n *\n * @returns the content of the call message.\n */\n getContent(): any {\n return this._content;\n }\n\n /**\n * {@inheritdoc CallMessage.contentType}\n *\n * @returns the content type of the call message.\n */\n getContentType(): string {\n return this._contentType;\n }\n\n /**\n * {@inheritdoc CallMessage.messageType}\n *\n * @returns the message type of the call message.\n */\n getMessageType(): string {\n return this._messageType;\n }\n\n /**\n * Get the message SID.\n * @returns\n * - A string representing the message SID.\n * - `undefined` if the call information has not yet been received from the\n * native layer.\n */\n getSid(): string | undefined {\n return this._voiceEventSid;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/CallMessage/OutgoingCallMessage.js b/lib/commonjs/CallMessage/OutgoingCallMessage.js
new file mode 100644
index 00000000..42a54170
--- /dev/null
+++ b/lib/commonjs/CallMessage/OutgoingCallMessage.js
@@ -0,0 +1,148 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.OutgoingCallMessage = void 0;
+
+var _constants = require("../constants");
+
+var _common = require("../common");
+
+var _utility = require("../error/utility");
+
+var _IncomingCallMessage = require("./IncomingCallMessage");
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * CallMessage API is in beta.
+ *
+ * Provides access to information about a outgoingCallMessage, including the call
+ * message content, contentType, messageType, and voiceEventSid
+ *
+ * @remarks
+ * Note that the outgoingCallMessage information is fetched as soon as possible from the
+ * native layer, but there is no guarantee that all information is immediately
+ * available. Methods such as `OutgoingCallMessage.getContent` or `OutgoingCallMessage.getSid`
+ * may return `undefined`.
+ *
+ * As outgoingCallMessage events are received from the native layer, outgoingCallMessage information will
+ * propagate from the native layer to the JS layer and become available.
+ * Therefore, it is good practice to read information from the outgoingCallMessage after an
+ * event occurs, or as events occur.
+ *
+ * - See the {@link (OutgoingCallMessage:namespace).Event} enum for events emitted by `OutgoingCallMessage`
+ * objects.
+ * - See the {@link (OutgoingCallMessage:interface) | OutgoingCallMessage interface} for overloaded event listening
+ * metods.
+ * - See the {@link (OutgoingCallMessage:namespace) | OutgoingCallMessage namespace} for types and enumerations
+ * used by this class.
+ *
+ * @public
+ */
+class OutgoingCallMessage extends _IncomingCallMessage.IncomingCallMessage {
+ /**
+ * Handlers for native OutgoingCallMessage events. Set upon construction so we can
+ * dynamically bind events to handlers.
+ *
+ * @privateRemarks
+ * This is done by the constructor so this mapping isn't made every time the
+ * {@link (OutgoingCallMessage:class)._handleNativeEvent} function is invoked.
+ */
+ constructor({
+ content,
+ contentType,
+ messageType,
+ voiceEventSid
+ }) {
+ super({
+ content,
+ contentType,
+ messageType,
+ voiceEventSid
+ });
+
+ _defineProperty(this, "_nativeEventHandler", void 0);
+
+ _defineProperty(this, "_handleNativeEvent", nativeCallMessageEvent => {
+ const {
+ type
+ } = nativeCallMessageEvent;
+ const handler = this._nativeEventHandler[type];
+
+ if (typeof handler === 'undefined') {
+ throw new Error(`Unknown callMessage event type received from the native layer: "${type}"`);
+ }
+
+ if (this.getSid() === nativeCallMessageEvent.voiceEventSid) {
+ handler(nativeCallMessageEvent);
+ }
+ });
+
+ _defineProperty(this, "_handleFailureEvent", nativeCallMessageEvent => {
+ if (nativeCallMessageEvent.type !== _constants.Constants.CallEventMessageFailure) {
+ throw new Error('Incorrect "outgoingCallMessage#Failure" handler called for type' + `"${nativeCallMessageEvent.type}`);
+ }
+
+ const {
+ message,
+ code
+ } = nativeCallMessageEvent.error;
+ const error = (0, _utility.constructTwilioError)(message, code);
+ this.emit(OutgoingCallMessage.Event.Failure, error);
+ });
+
+ _defineProperty(this, "_handleSentEvent", nativeCallMessageEvent => {
+ if (nativeCallMessageEvent.type !== _constants.Constants.CallEventMessageSent) {
+ throw new Error('Incorrect "outgoingCallMessage#Sent" handler called for type' + `"${nativeCallMessageEvent.type}"`);
+ }
+
+ this.emit(OutgoingCallMessage.Event.Sent);
+ });
+
+ this._nativeEventHandler = {
+ /**
+ * Sending Call Message State
+ */
+ [_constants.Constants.CallEventMessageFailure]: this._handleFailureEvent,
+ [_constants.Constants.CallEventMessageSent]: this._handleSentEvent
+ };
+
+ _common.NativeEventEmitter.addListener(_constants.Constants.ScopeCallMessage, this._handleNativeEvent);
+ }
+ /**
+ * This intermediate native callMessage event handler acts as a "gate".
+ * @param nativeCallMessageEvent - A callMessage event directly from the native layer.
+ */
+
+
+}
+/**
+ * Namespace for enumerations and types used by
+ * {@link (OutgoingCallMessage:class) | OutgoingCallMessage objects}.
+ *
+ * @remarks
+ * - See also the {@link (OutgoingCallMessage:class) | OutgoingCallMessage class}.
+ * - See also the {@link (OutgoingCallMessage:interface) | OutgoingCallMessage interface}.
+ *
+ * @public
+ */
+
+
+exports.OutgoingCallMessage = OutgoingCallMessage;
+
+(function (_OutgoingCallMessage) {
+ let Event;
+
+ (function (Event) {
+ Event["Failure"] = "failure";
+ Event["Sent"] = "sent";
+ })(Event || (Event = {}));
+
+ _OutgoingCallMessage.Event = Event;
+ let Listener;
+
+ (function (_Listener) {})(Listener || (Listener = _OutgoingCallMessage.Listener || (_OutgoingCallMessage.Listener = {})));
+})(OutgoingCallMessage || (exports.OutgoingCallMessage = OutgoingCallMessage = {}));
+//# sourceMappingURL=OutgoingCallMessage.js.map
\ No newline at end of file
diff --git a/lib/commonjs/CallMessage/OutgoingCallMessage.js.map b/lib/commonjs/CallMessage/OutgoingCallMessage.js.map
new file mode 100644
index 00000000..67b870e0
--- /dev/null
+++ b/lib/commonjs/CallMessage/OutgoingCallMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["OutgoingCallMessage.ts"],"names":["OutgoingCallMessage","IncomingCallMessage","constructor","content","contentType","messageType","voiceEventSid","nativeCallMessageEvent","type","handler","_nativeEventHandler","Error","getSid","Constants","CallEventMessageFailure","message","code","error","emit","Event","Failure","CallEventMessageSent","Sent","_handleFailureEvent","_handleSentEvent","NativeEventEmitter","addListener","ScopeCallMessage","_handleNativeEvent","Listener"],"mappings":";;;;;;;AAaA;;AACA;;AACA;;AACA;;;;AA2GA;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;AACO,MAAMA,mBAAN,SAAkCC,wCAAlC,CAAsD;AAC3D;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AAKEC,EAAAA,WAAW,CAAC;AACVC,IAAAA,OADU;AAEVC,IAAAA,WAFU;AAGVC,IAAAA,WAHU;AAIVC,IAAAA;AAJU,GAAD,EAKe;AACxB,UAAM;AACJH,MAAAA,OADI;AAEJC,MAAAA,WAFI;AAGJC,MAAAA,WAHI;AAIJC,MAAAA;AAJI,KAAN;;AADwB;;AAAA,gDA0BxBC,sBAD2B,IAExB;AACH,YAAM;AAAEC,QAAAA;AAAF,UAAWD,sBAAjB;AAEA,YAAME,OAAO,GAAG,KAAKC,mBAAL,CAAyBF,IAAzB,CAAhB;;AACA,UAAI,OAAOC,OAAP,KAAmB,WAAvB,EAAoC;AAClC,cAAM,IAAIE,KAAJ,CACH,mEAAkEH,IAAK,GADpE,CAAN;AAGD;;AAED,UAAI,KAAKI,MAAL,OAAkBL,sBAAsB,CAACD,aAA7C,EAA4D;AAC1DG,QAAAA,OAAO,CAACF,sBAAD,CAAP;AACD;AACF,KAxCyB;;AAAA,iDA+CxBA,sBAD4B,IAEzB;AACH,UAAIA,sBAAsB,CAACC,IAAvB,KAAgCK,qBAAUC,uBAA9C,EAAuE;AACrE,cAAM,IAAIH,KAAJ,CACJ,oEACG,IAAGJ,sBAAsB,CAACC,IAAK,EAF9B,CAAN;AAID;;AAED,YAAM;AAAEO,QAAAA,OAAF;AAAWC,QAAAA;AAAX,UAAoBT,sBAAsB,CAACU,KAAjD;AACA,YAAMA,KAAK,GAAG,mCAAqBF,OAArB,EAA8BC,IAA9B,CAAd;AACA,WAAKE,IAAL,CAAUlB,mBAAmB,CAACmB,KAApB,CAA0BC,OAApC,EAA6CH,KAA7C;AACD,KA3DyB;;AAAA,8CAkExBV,sBADyB,IAEtB;AACH,UAAIA,sBAAsB,CAACC,IAAvB,KAAgCK,qBAAUQ,oBAA9C,EAAoE;AAClE,cAAM,IAAIV,KAAJ,CACJ,iEACG,IAAGJ,sBAAsB,CAACC,IAAK,GAF9B,CAAN;AAID;;AAED,WAAKU,IAAL,CAAUlB,mBAAmB,CAACmB,KAApB,CAA0BG,IAApC;AACD,KA5EyB;;AAQxB,SAAKZ,mBAAL,GAA2B;AACzB;AACN;AACA;AACM,OAACG,qBAAUC,uBAAX,GAAqC,KAAKS,mBAJjB;AAKzB,OAACV,qBAAUQ,oBAAX,GAAkC,KAAKG;AALd,KAA3B;;AAOAC,+BAAmBC,WAAnB,CACEb,qBAAUc,gBADZ,EAEE,KAAKC,kBAFP;AAID;AAED;AACF;AACA;AACA;;;AA1C6D;AAiG7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;MAKcT,K;;aAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;KAAAA,K,KAAAA,K;;;;;4BAiBKU,Q,KAAAA,Q,wBAAAA,Q,0BAAAA,Q;GArBF7B,mB,mCAAAA,mB","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 type { TwilioError } from '../error';\nimport type {\n NativeCallMessageEvent,\n NativeCallMessageEventType,\n NativeCallMessageInfo,\n} from '../type/CallMessage';\nimport { Constants } from '../constants';\nimport { NativeEventEmitter } from '../common';\nimport { constructTwilioError } from '../error/utility';\nimport { IncomingCallMessage } from './IncomingCallMessage';\n\n/**\n * Defines strict typings for all events emitted by\n * {@link (OutgoingCallMessage:class) | OutgoingCallMessage 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 CallMessage} interface.\n * - See also the {@link IncomingCallMessage} class.\n * - See also the {@link (OutgoingCallMessage:namespace)} namespace.\n *\n * @public\n */\nexport declare interface OutgoingCallMessage {\n /**\n * ------------\n * Emit Typings\n * ------------\n */\n\n /** @internal */\n emit(\n failureEvent: OutgoingCallMessage.Event.Failure,\n error: TwilioError\n ): boolean;\n\n /** @internal */\n emit(sentEvent: OutgoingCallMessage.Event.Sent): boolean;\n\n /**\n * ----------------\n * Listener Typings\n * ----------------\n */\n\n /**\n * Failure event. Raised when outgoingCallMessage fails to be sent out.\n *\n * @example\n * ```typescript\n * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {\n * // outgoingCallMessage failed, handle error\n * });\n * ```\n *\n * @param failureEvent - 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 failureEvent: OutgoingCallMessage.Event.Failure,\n listener: OutgoingCallMessage.Listener.Failure\n ): this;\n /** {@inheritDoc (OutgoingCallMessage:interface).(addListener:1)} */\n on(\n failureEvent: OutgoingCallMessage.Event.Failure,\n listener: OutgoingCallMessage.Listener.Failure\n ): this;\n\n /**\n * Sent event. Raised when outgoingCallMessage is sent.\n * @example\n * ```typescript\n * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {\n * // outgoingCallMessage sent\n * })\n * ```\n *\n * @param sentEvent - 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 sentEvent: OutgoingCallMessage.Event.Sent,\n listener: OutgoingCallMessage.Listener.Sent\n ): this;\n /** {@inheritDoc (OutgoingCallMessage:interface).(addListener:2)} */\n on(\n sentEvent: OutgoingCallMessage.Event.Sent,\n listener: OutgoingCallMessage.Listener.Sent\n ): this;\n\n /**\n * Generic event listener typings.\n * @param outgoingCallMessageEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The outgoingCallMessage object.\n */\n addListener(\n outgoingCallMessageEvent: OutgoingCallMessage.Event,\n listener: OutgoingCallMessage.Listener.Generic\n ): this;\n /**\n * {@inheritDoc (OutgoingCallMessage:interface).(addListener:3)}\n */\n on(\n outgoingCallMessageEvent: OutgoingCallMessage.Event,\n listener: OutgoingCallMessage.Listener.Generic\n ): this;\n}\n\n/**\n * CallMessage API is in beta.\n *\n * Provides access to information about a outgoingCallMessage, including the call\n * message content, contentType, messageType, and voiceEventSid\n *\n * @remarks\n * Note that the outgoingCallMessage information is fetched as soon as possible from the\n * native layer, but there is no guarantee that all information is immediately\n * available. Methods such as `OutgoingCallMessage.getContent` or `OutgoingCallMessage.getSid`\n * may return `undefined`.\n *\n * As outgoingCallMessage events are received from the native layer, outgoingCallMessage 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 outgoingCallMessage after an\n * event occurs, or as events occur.\n *\n * - See the {@link (OutgoingCallMessage:namespace).Event} enum for events emitted by `OutgoingCallMessage`\n * objects.\n * - See the {@link (OutgoingCallMessage:interface) | OutgoingCallMessage interface} for overloaded event listening\n * metods.\n * - See the {@link (OutgoingCallMessage:namespace) | OutgoingCallMessage namespace} for types and enumerations\n * used by this class.\n *\n * @public\n */\nexport class OutgoingCallMessage extends IncomingCallMessage {\n /**\n * Handlers for native OutgoingCallMessage 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 (OutgoingCallMessage:class)._handleNativeEvent} function is invoked.\n */\n private _nativeEventHandler: Record<\n NativeCallMessageEventType,\n (callEvent: NativeCallMessageEvent) => void\n >;\n constructor({\n content,\n contentType,\n messageType,\n voiceEventSid,\n }: NativeCallMessageInfo) {\n super({\n content,\n contentType,\n messageType,\n voiceEventSid,\n });\n\n this._nativeEventHandler = {\n /**\n * Sending Call Message State\n */\n [Constants.CallEventMessageFailure]: this._handleFailureEvent,\n [Constants.CallEventMessageSent]: this._handleSentEvent,\n };\n NativeEventEmitter.addListener(\n Constants.ScopeCallMessage,\n this._handleNativeEvent\n );\n }\n\n /**\n * This intermediate native callMessage event handler acts as a \"gate\".\n * @param nativeCallMessageEvent - A callMessage event directly from the native layer.\n */\n private _handleNativeEvent = (\n nativeCallMessageEvent: NativeCallMessageEvent\n ) => {\n const { type } = nativeCallMessageEvent;\n\n const handler = this._nativeEventHandler[type];\n if (typeof handler === 'undefined') {\n throw new Error(\n `Unknown callMessage event type received from the native layer: \"${type}\"`\n );\n }\n\n if (this.getSid() === nativeCallMessageEvent.voiceEventSid) {\n handler(nativeCallMessageEvent);\n }\n };\n\n /**\n * Handler for the {@link (OutgoingCallMessage:namespace).Event.Failure} event.\n * @param nativeCallMessageEvent - The native callMessage event.\n */\n private _handleFailureEvent = (\n nativeCallMessageEvent: NativeCallMessageEvent\n ) => {\n if (nativeCallMessageEvent.type !== Constants.CallEventMessageFailure) {\n throw new Error(\n 'Incorrect \"outgoingCallMessage#Failure\" handler called for type' +\n `\"${nativeCallMessageEvent.type}`\n );\n }\n\n const { message, code } = nativeCallMessageEvent.error;\n const error = constructTwilioError(message, code);\n this.emit(OutgoingCallMessage.Event.Failure, error);\n };\n\n /**\n * Handler for the {@link (OutgoingCallMessage:namespace).Event.Sent} event.\n * @param nativeCallMessageEvent - The native callMessage event.\n */\n private _handleSentEvent = (\n nativeCallMessageEvent: NativeCallMessageEvent\n ) => {\n if (nativeCallMessageEvent.type !== Constants.CallEventMessageSent) {\n throw new Error(\n 'Incorrect \"outgoingCallMessage#Sent\" handler called for type' +\n `\"${nativeCallMessageEvent.type}\"`\n );\n }\n\n this.emit(OutgoingCallMessage.Event.Sent);\n };\n}\n\n/**\n * Namespace for enumerations and types used by\n * {@link (OutgoingCallMessage:class) | OutgoingCallMessage objects}.\n *\n * @remarks\n * - See also the {@link (OutgoingCallMessage:class) | OutgoingCallMessage class}.\n * - See also the {@link (OutgoingCallMessage:interface) | OutgoingCallMessage interface}.\n *\n * @public\n */\nexport namespace OutgoingCallMessage {\n /**\n * Enumeration of all event strings emitted by {@link (OutgoingCallMessage:class)} objects.\n */\n export enum Event {\n /**\n * Raised when outgoingCallMessage fails.\n * See {@link (OutgoingCallMessage:interface).(addListener:1)}.\n */\n 'Failure' = 'failure',\n /**\n * Raised when outgoingCallMessage has been sent.\n * See {@link (OutgoingCallMessage:interface).(addListener:2)}.\n */\n 'Sent' = 'sent',\n }\n\n /**\n * Listener types for all events emitted by a\n * {@link (OutgoingCallMessage:class) | OutgoingCallMessage: object}\n */\n export namespace Listener {\n /**\n * OutgoingCallMessage failure event listener. This should be the function signature of\n * any event listener bound to the {@link (OutgoingCallMessage:namespace).Event.Failure} event.\n *\n * @remarks\n * See {@link (OutgoingCallMessage:interface).(addListener:1)}.\n *\n * See {@link TwilioErrors} for all error classes.\n */\n export type Failure = (error: TwilioError) => void;\n\n /**\n * OutgoingCallMessage sent event listner. This should be the function signature of\n * any event listener bound to the {@link (OutgoingCallMessage:namespace).Event.Sent} event.\n *\n * @remarks\n * See {@link (OutgoingCallMessage:interface).(addListener:2)}.\n */\n export type Sent = () => void;\n\n /**\n * Generic event listener. This should be the function signature of any\n * event listener bound to any OutgoingCallMessage event.\n *\n * @remarks\n * See {@link (OutgoingCallMessage:interface).(addListener:3)}.\n */\n export type Generic = (...args: any[]) => void;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/Voice.js b/lib/commonjs/Voice.js
new file mode 100644
index 00000000..e8512d96
--- /dev/null
+++ b/lib/commonjs/Voice.js
@@ -0,0 +1,485 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.Voice = void 0;
+
+var _eventemitter = require("eventemitter3");
+
+var _AudioDevice = require("./AudioDevice");
+
+var _Call = require("./Call");
+
+var _CallInvite = require("./CallInvite");
+
+var _common = require("./common");
+
+var _constants = require("./constants");
+
+var _InvalidArgumentError = require("./error/InvalidArgumentError");
+
+var _UnsupportedPlatformError = require("./error/UnsupportedPlatformError");
+
+var _utility = require("./error/utility");
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Main entry-point of the Voice SDK. Provides access to the entire feature-set
+ * of the library.
+ *
+ * @example
+ * Usage:
+ * ```
+ * const token = '...';
+ *
+ * const voice = new Voice();
+ *
+ * voice.on(Voice.Event.CallInvite, (callInvite: CallInvite) => {
+ * callInvite.accept();
+ * });
+ *
+ * voice.register(token);
+ * ```
+ *
+ * @remarks
+ * - See also the {@link (Voice:namespace).Event} enum for events emitted by
+ * `Voice` objects.
+ * - See also the {@link (Voice:interface) | Voice interface} for events
+ * emitted by this class and associated types.
+ * - See also the {@link (Voice:namespace) | Voice namespace} for types and
+ * enumerations used by this class.
+ *
+ * @public
+ */
+class Voice extends _eventemitter.EventEmitter {
+ /**
+ * Handlers for native voice events. Set upon construction so we can
+ * dynamically bind events to handlers.
+ *
+ * @privateRemarks
+ * This is done by the constructor so this mapping isn't made every time the
+ * {@link (Voice:class)._handleNativeEvent} function is invoked.
+ */
+
+ /**
+ * Main entry-point of the Voice SDK. Provides access to the entire
+ * feature-set of the library.
+ */
+ constructor() {
+ super();
+
+ _defineProperty(this, "_nativeEventHandler", void 0);
+
+ _defineProperty(this, "_handleNativeEvent", nativeVoiceEvent => {
+ const {
+ type
+ } = nativeVoiceEvent;
+ const handler = this._nativeEventHandler[type];
+
+ if (typeof handler === 'undefined') {
+ throw new Error(`Unknown voice event type received from the native layer: "${type}".`);
+ }
+
+ handler(nativeVoiceEvent);
+ });
+
+ _defineProperty(this, "_handleCallInvite", nativeVoiceEvent => {
+ if (nativeVoiceEvent.type !== _constants.Constants.VoiceEventTypeValueIncomingCallInvite) {
+ throw new Error('Incorrect "voice#callInvite" handler called for type ' + `"${nativeVoiceEvent.type}".`);
+ }
+
+ const {
+ callInvite: callInviteInfo
+ } = nativeVoiceEvent;
+ const callInvite = new _CallInvite.CallInvite(callInviteInfo, _CallInvite.CallInvite.State.Pending);
+ this.emit(Voice.Event.CallInvite, callInvite);
+ });
+
+ _defineProperty(this, "_handleError", nativeVoiceEvent => {
+ if (nativeVoiceEvent.type !== _constants.Constants.VoiceEventError) {
+ throw new Error('Incorrect "voice#error" handler called for type ' + `"${nativeVoiceEvent.type}".`);
+ }
+
+ const {
+ error: {
+ code,
+ message
+ }
+ } = nativeVoiceEvent;
+ const error = (0, _utility.constructTwilioError)(message, code);
+ this.emit(Voice.Event.Error, error);
+ });
+
+ _defineProperty(this, "_handleRegistered", nativeVoiceEvent => {
+ if (nativeVoiceEvent.type !== _constants.Constants.VoiceEventRegistered) {
+ throw new Error('Incorrect "voice#error" handler called for type ' + `"${nativeVoiceEvent.type}".`);
+ }
+
+ this.emit(Voice.Event.Registered);
+ });
+
+ _defineProperty(this, "_handleUnregistered", nativeVoiceEvent => {
+ if (nativeVoiceEvent.type !== _constants.Constants.VoiceEventUnregistered) {
+ throw new Error('Incorrect "voice#error" handler called for type ' + `"${nativeVoiceEvent.type}".`);
+ }
+
+ this.emit(Voice.Event.Unregistered);
+ });
+
+ _defineProperty(this, "_handleAudioDevicesUpdated", nativeVoiceEvent => {
+ if (nativeVoiceEvent.type !== _constants.Constants.VoiceEventAudioDevicesUpdated) {
+ throw new Error('Incorrect "voice#audioDevicesUpdated" handler called for type ' + `"${nativeVoiceEvent.type}".`);
+ }
+
+ const {
+ audioDevices: audioDeviceInfos,
+ selectedDevice: selectedDeviceInfo
+ } = nativeVoiceEvent;
+ const audioDevices = audioDeviceInfos.map(audioDeviceInfo => new _AudioDevice.AudioDevice(audioDeviceInfo));
+ const selectedDevice = typeof selectedDeviceInfo !== 'undefined' && selectedDeviceInfo !== null ? new _AudioDevice.AudioDevice(selectedDeviceInfo) : undefined;
+ this.emit(Voice.Event.AudioDevicesUpdated, audioDevices, selectedDevice);
+ });
+
+ this._nativeEventHandler = {
+ /**
+ * Common
+ */
+ [_constants.Constants.VoiceEventError]: this._handleError,
+
+ /**
+ * Call Invite
+ */
+ [_constants.Constants.VoiceEventTypeValueIncomingCallInvite]: this._handleCallInvite,
+
+ /**
+ * Registration
+ */
+ [_constants.Constants.VoiceEventRegistered]: this._handleRegistered,
+ [_constants.Constants.VoiceEventUnregistered]: this._handleUnregistered,
+
+ /**
+ * Audio Devices
+ */
+ [_constants.Constants.VoiceEventAudioDevicesUpdated]: this._handleAudioDevicesUpdated
+ };
+
+ _common.NativeEventEmitter.addListener(_constants.Constants.ScopeVoice, this._handleNativeEvent);
+ }
+ /**
+ * Connect for devices on Android platforms.
+ */
+
+
+ async _connect_android(token, params) {
+ const connectResult = await _common.NativeModule.voice_connect_android(token, params).then(callInfo => {
+ return {
+ type: 'ok',
+ callInfo
+ };
+ }).catch(error => {
+ const code = error.userInfo.code;
+ const message = error.userInfo.message;
+ return {
+ type: 'err',
+ message,
+ code
+ };
+ });
+
+ if (connectResult.type === 'err') {
+ throw (0, _utility.constructTwilioError)(connectResult.message, connectResult.code);
+ }
+
+ return new _Call.Call(connectResult.callInfo);
+ }
+ /**
+ * Connect for devices on iOS platforms.
+ */
+
+
+ async _connect_ios(token, params, contactHandle) {
+ const parsedContactHandle = contactHandle === '' ? 'Default Contact' : contactHandle;
+ const callInfo = await _common.NativeModule.voice_connect_ios(token, params, parsedContactHandle);
+ return new _Call.Call(callInfo);
+ }
+ /**
+ * Intermediary event handler for `Voice`-level events. Ensures that the type
+ * of the incoming event is expected and invokes the proper event listener.
+ * @param nativeVoiceEvent - A `Voice` event directly from the native layer.
+ */
+
+
+ /**
+ * Create an outgoing call.
+ *
+ * @remarks
+ * Note that the resolution of the returned `Promise` does not imply any call
+ * event occurring, such as answered or rejected.
+ * The `contactHandle` parameter is only required for iOS apps. Currently the
+ * parameter does have any effect on Android apps and can be ignored.
+ * `Default Contact` will appear in the iOS call history if the value is empty
+ * or not provided.
+ *
+ * @param token - A Twilio Access Token, usually minted by an
+ * authentication-gated endpoint using a Twilio helper library.
+ * @param options - Connect options.
+ * See {@link (Voice:namespace).ConnectOptions}.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with a call when the call is created.
+ * - Rejects:
+ * * When a call is not able to be created on the native layer.
+ * * With an {@link TwilioErrors.InvalidArgumentError} when invalid
+ * arguments are passed.
+ */
+ async connect(token, {
+ contactHandle = 'Default Contact',
+ params = {}
+ } = {}) {
+ if (typeof token !== 'string') {
+ throw new _InvalidArgumentError.InvalidArgumentError('Argument "token" must be of type "string".');
+ }
+
+ if (typeof contactHandle !== 'string') {
+ throw new _InvalidArgumentError.InvalidArgumentError('Optional argument "contactHandle" must be undefined or of type' + ' "string".');
+ }
+
+ if (typeof params !== 'object') {
+ throw new _InvalidArgumentError.InvalidArgumentError('Optional argument "params" must be undefined or of type "object".');
+ }
+
+ for (const [key, value] of Object.entries(params)) {
+ if (typeof value !== 'string') {
+ throw new _InvalidArgumentError.InvalidArgumentError(`Voice.ConnectOptions.params["${key}"] must be of type string`);
+ }
+ }
+
+ switch (_common.Platform.OS) {
+ case 'ios':
+ return this._connect_ios(token, params, contactHandle);
+
+ case 'android':
+ return this._connect_android(token, params);
+
+ default:
+ throw new _UnsupportedPlatformError.UnsupportedPlatformError(`Unsupported platform "${_common.Platform.OS}". Expected "android" or "ios".`);
+ }
+ }
+ /**
+ * Get the version of the native SDK. Note that this is not the version of the
+ * React Native SDK, this is the version of the mobile SDK that the RN SDK is
+ * utilizing.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a string representing the version of the native SDK.
+ */
+
+
+ getVersion() {
+ return _common.NativeModule.voice_getVersion();
+ }
+ /**
+ * Get the Device token from the native layer.
+ * @returns a Promise that resolves with a string representing the Device
+ * token.
+ */
+
+
+ getDeviceToken() {
+ return _common.NativeModule.voice_getDeviceToken();
+ }
+ /**
+ * Get a list of existing calls, ongoing and pending. This will not return any
+ * call that has finished.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a mapping of `Uuid`s to {@link (Call:class)}s.
+ */
+
+
+ async getCalls() {
+ const callInfos = await _common.NativeModule.voice_getCalls();
+ const callsMap = new Map(callInfos.map(callInfo => [callInfo.uuid, new _Call.Call(callInfo)]));
+ return callsMap;
+ }
+ /**
+ * Get a list of pending call invites.
+ *
+ * @remarks
+ * This list will not contain any call invites that have been "settled"
+ * (answered or rejected).
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with a mapping of `Uuid`s to {@link (CallInvite:class)}s.
+ */
+
+
+ async getCallInvites() {
+ const callInviteInfos = await _common.NativeModule.voice_getCallInvites();
+ const callInvitesMap = new Map(callInviteInfos.map(callInviteInfo => [callInviteInfo.uuid, new _CallInvite.CallInvite(callInviteInfo, _CallInvite.CallInvite.State.Pending)]));
+ return callInvitesMap;
+ }
+ /**
+ * Register this device for incoming calls.
+ * @param token - A Twilio Access Token.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the device has been registered.
+ */
+
+
+ register(token) {
+ return _common.NativeModule.voice_register(token);
+ }
+ /**
+ * Unregister this device for incoming calls.
+ * @param token - A Twilio Access Token.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the device has been unregistered.
+ */
+
+
+ unregister(token) {
+ return _common.NativeModule.voice_unregister(token);
+ }
+ /**
+ * Get audio device information from the native layer.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a list of the native device's audio devices and the
+ * currently selected device.
+ */
+
+
+ async getAudioDevices() {
+ const {
+ audioDevices: audioDeviceInfos,
+ selectedDevice: selectedDeviceInfo
+ } = await _common.NativeModule.voice_getAudioDevices();
+ const audioDevices = audioDeviceInfos.map(audioDeviceInfo => new _AudioDevice.AudioDevice(audioDeviceInfo));
+ const selectedDevice = typeof selectedDeviceInfo !== 'undefined' ? new _AudioDevice.AudioDevice(selectedDeviceInfo) : undefined;
+ return selectedDevice ? {
+ audioDevices,
+ selectedDevice
+ } : {
+ audioDevices
+ };
+ }
+ /**
+ * Show the native AV route picker.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * This API is specific to iOS and unavailable in Android. If this API is
+ * invoked on Android, there will be no operation and the returned `Promise`
+ * will immediately resolve with `null`.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves when the AV Route Picker View is shown.
+ */
+
+
+ showAvRoutePickerView() {
+ return _common.NativeModule.voice_showNativeAvRoutePicker();
+ }
+ /**
+ * Initialize a Push Registry instance inside the SDK for handling
+ * PushKit device token updates and receiving push notifications.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * This API is specific to iOS and unavailable in Android.
+ * Use this method if the application does not have an iOS PushKit
+ * module and wishes to delegate the event handling to the SDK.
+ * Call this method upon launching the app to guarantee that incoming
+ * call push notifications will be surfaced to the users, especially when
+ * the app is not running in the foreground.
+ *
+ * @return
+ * A `Promise` that
+ * - Resolves when the initialization is done.
+ */
+
+
+ async initializePushRegistry() {
+ switch (_common.Platform.OS) {
+ case 'ios':
+ return _common.NativeModule.voice_initializePushRegistry();
+
+ default:
+ throw new _UnsupportedPlatformError.UnsupportedPlatformError(`Unsupported platform "${_common.Platform.OS}". This method is only supported on iOS.`);
+ }
+ }
+ /**
+ * Custom iOS CallKit configuration.
+ *
+ * @param configuration - iOS CallKit configuration options.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * See {@link CallKit} for more information.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves when the configuration has been applied.
+ * - Rejects if the configuration is unable to be applied.
+ */
+
+
+ async setCallKitConfiguration(configuration) {
+ switch (_common.Platform.OS) {
+ case 'ios':
+ return _common.NativeModule.voice_setCallKitConfiguration(configuration);
+
+ default:
+ throw new _UnsupportedPlatformError.UnsupportedPlatformError(`Unsupported platform "${_common.Platform.OS}". This method is only supported on iOS.`);
+ }
+ }
+
+}
+/**
+ * Provides enumerations and types used by {@link (Voice:class)
+ * | Voice objects}.
+ *
+ * @remarks
+ * - See also the {@link (Voice:class) | Voice class}.
+ * - See also the {@link (Voice:interface) | Voice interface}.
+ *
+ * @public
+ */
+
+
+exports.Voice = Voice;
+
+(function (_Voice) {
+ /**
+ * Options to pass to the {@link (Voice:class).connect} method.
+ */
+ let Event;
+
+ (function (Event) {
+ Event["AudioDevicesUpdated"] = "audioDevicesUpdated";
+ Event["CallInvite"] = "callInvite";
+ Event["Error"] = "error";
+ Event["Registered"] = "registered";
+ Event["Unregistered"] = "unregistered";
+ })(Event || (Event = {}));
+
+ _Voice.Event = Event;
+ let Listener;
+
+ (function (_Listener) {})(Listener || (Listener = _Voice.Listener || (_Voice.Listener = {})));
+})(Voice || (exports.Voice = Voice = {}));
+//# sourceMappingURL=Voice.js.map
\ No newline at end of file
diff --git a/lib/commonjs/Voice.js.map b/lib/commonjs/Voice.js.map
new file mode 100644
index 00000000..25d8c668
--- /dev/null
+++ b/lib/commonjs/Voice.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["Voice.tsx"],"names":["Voice","EventEmitter","constructor","nativeVoiceEvent","type","handler","_nativeEventHandler","Error","Constants","VoiceEventTypeValueIncomingCallInvite","callInvite","callInviteInfo","CallInvite","State","Pending","emit","Event","VoiceEventError","error","code","message","VoiceEventRegistered","Registered","VoiceEventUnregistered","Unregistered","VoiceEventAudioDevicesUpdated","audioDevices","audioDeviceInfos","selectedDevice","selectedDeviceInfo","map","audioDeviceInfo","AudioDevice","undefined","AudioDevicesUpdated","_handleError","_handleCallInvite","_handleRegistered","_handleUnregistered","_handleAudioDevicesUpdated","NativeEventEmitter","addListener","ScopeVoice","_handleNativeEvent","_connect_android","token","params","connectResult","NativeModule","voice_connect_android","then","callInfo","catch","userInfo","Call","_connect_ios","contactHandle","parsedContactHandle","voice_connect_ios","connect","InvalidArgumentError","key","value","Object","entries","Platform","OS","UnsupportedPlatformError","getVersion","voice_getVersion","getDeviceToken","voice_getDeviceToken","getCalls","callInfos","voice_getCalls","callsMap","Map","uuid","getCallInvites","callInviteInfos","voice_getCallInvites","callInvitesMap","register","voice_register","unregister","voice_unregister","getAudioDevices","voice_getAudioDevices","showAvRoutePickerView","voice_showNativeAvRoutePicker","initializePushRegistry","voice_initializePushRegistry","setCallKitConfiguration","configuration","voice_setCallKitConfiguration","Listener"],"mappings":";;;;;;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;AA+LA;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;AACA;AACO,MAAMA,KAAN,SAAoBC,0BAApB,CAAiC;AACtC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAME;AACF;AACA;AACA;AACEC,EAAAA,WAAW,GAAG;AACZ;;AADY;;AAAA,gDAgFgBC,gBAAD,IAAwC;AACnE,YAAM;AAAEC,QAAAA;AAAF,UAAWD,gBAAjB;AAEA,YAAME,OAAO,GAAG,KAAKC,mBAAL,CAAyBF,IAAzB,CAAhB;;AACA,UAAI,OAAOC,OAAP,KAAmB,WAAvB,EAAoC;AAClC,cAAM,IAAIE,KAAJ,CACH,6DAA4DH,IAAK,IAD9D,CAAN;AAGD;;AAEDC,MAAAA,OAAO,CAACF,gBAAD,CAAP;AACD,KA3Fa;;AAAA,+CAkGeA,gBAAD,IAAwC;AAClE,UACEA,gBAAgB,CAACC,IAAjB,KAA0BI,qBAAUC,qCADtC,EAEE;AACA,cAAM,IAAIF,KAAJ,CACJ,0DACG,IAAGJ,gBAAgB,CAACC,IAAK,IAFxB,CAAN;AAID;;AAED,YAAM;AAAEM,QAAAA,UAAU,EAAEC;AAAd,UAAiCR,gBAAvC;AAEA,YAAMO,UAAU,GAAG,IAAIE,sBAAJ,CAAeD,cAAf,EAA+BC,uBAAWC,KAAX,CAAiBC,OAAhD,CAAnB;AAEA,WAAKC,IAAL,CAAUf,KAAK,CAACgB,KAAN,CAAYJ,UAAtB,EAAkCF,UAAlC;AACD,KAjHa;;AAAA,0CAwHUP,gBAAD,IAAwC;AAC7D,UAAIA,gBAAgB,CAACC,IAAjB,KAA0BI,qBAAUS,eAAxC,EAAyD;AACvD,cAAM,IAAIV,KAAJ,CACJ,qDACG,IAAGJ,gBAAgB,CAACC,IAAK,IAFxB,CAAN;AAID;;AAED,YAAM;AACJc,QAAAA,KAAK,EAAE;AAAEC,UAAAA,IAAF;AAAQC,UAAAA;AAAR;AADH,UAEFjB,gBAFJ;AAGA,YAAMe,KAAK,GAAG,mCAAqBE,OAArB,EAA8BD,IAA9B,CAAd;AACA,WAAKJ,IAAL,CAAUf,KAAK,CAACgB,KAAN,CAAYT,KAAtB,EAA6BW,KAA7B;AACD,KArIa;;AAAA,+CA2Ief,gBAAD,IAAwC;AAClE,UAAIA,gBAAgB,CAACC,IAAjB,KAA0BI,qBAAUa,oBAAxC,EAA8D;AAC5D,cAAM,IAAId,KAAJ,CACJ,qDACG,IAAGJ,gBAAgB,CAACC,IAAK,IAFxB,CAAN;AAID;;AAED,WAAKW,IAAL,CAAUf,KAAK,CAACgB,KAAN,CAAYM,UAAtB;AACD,KApJa;;AAAA,iDA0JiBnB,gBAAD,IAAwC;AACpE,UAAIA,gBAAgB,CAACC,IAAjB,KAA0BI,qBAAUe,sBAAxC,EAAgE;AAC9D,cAAM,IAAIhB,KAAJ,CACJ,qDACG,IAAGJ,gBAAgB,CAACC,IAAK,IAFxB,CAAN;AAID;;AAED,WAAKW,IAAL,CAAUf,KAAK,CAACgB,KAAN,CAAYQ,YAAtB;AACD,KAnKa;;AAAA,wDA0KwBrB,gBAAD,IAAwC;AAC3E,UAAIA,gBAAgB,CAACC,IAAjB,KAA0BI,qBAAUiB,6BAAxC,EAAuE;AACrE,cAAM,IAAIlB,KAAJ,CACJ,mEACG,IAAGJ,gBAAgB,CAACC,IAAK,IAFxB,CAAN;AAID;;AAED,YAAM;AACJsB,QAAAA,YAAY,EAAEC,gBADV;AAEJC,QAAAA,cAAc,EAAEC;AAFZ,UAGF1B,gBAHJ;AAKA,YAAMuB,YAAY,GAAGC,gBAAgB,CAACG,GAAjB,CAClBC,eAAD,IACE,IAAIC,wBAAJ,CAAgBD,eAAhB,CAFiB,CAArB;AAKA,YAAMH,cAAc,GAClB,OAAOC,kBAAP,KAA8B,WAA9B,IAA6CA,kBAAkB,KAAK,IAApE,GACI,IAAIG,wBAAJ,CAAgBH,kBAAhB,CADJ,GAEII,SAHN;AAKA,WAAKlB,IAAL,CAAUf,KAAK,CAACgB,KAAN,CAAYkB,mBAAtB,EAA2CR,YAA3C,EAAyDE,cAAzD;AACD,KAlMa;;AAGZ,SAAKtB,mBAAL,GAA2B;AACzB;AACN;AACA;AACM,OAACE,qBAAUS,eAAX,GAA6B,KAAKkB,YAJT;;AAMzB;AACN;AACA;AACM,OAAC3B,qBAAUC,qCAAX,GAAmD,KAAK2B,iBAT/B;;AAWzB;AACN;AACA;AACM,OAAC5B,qBAAUa,oBAAX,GAAkC,KAAKgB,iBAdd;AAezB,OAAC7B,qBAAUe,sBAAX,GAAoC,KAAKe,mBAfhB;;AAiBzB;AACN;AACA;AACM,OAAC9B,qBAAUiB,6BAAX,GACE,KAAKc;AArBkB,KAA3B;;AAwBAC,+BAAmBC,WAAnB,CACEjC,qBAAUkC,UADZ,EAEE,KAAKC,kBAFP;AAID;AAED;AACF;AACA;;;AACgC,QAAhBC,gBAAgB,CAACC,KAAD,EAAgBC,MAAhB,EAA0C;AACtE,UAAMC,aAAa,GAAG,MAAMC,qBAAaC,qBAAb,CAC1BJ,KAD0B,EAE1BC,MAF0B,EAIzBI,IAJyB,CAInBC,QAAD,IAAc;AAClB,aAAO;AAAE/C,QAAAA,IAAI,EAAE,IAAR;AAAc+C,QAAAA;AAAd,OAAP;AACD,KANyB,EAOzBC,KAPyB,CAOlBlC,KAAD,IAAW;AAChB,YAAMC,IAAI,GAAGD,KAAK,CAACmC,QAAN,CAAelC,IAA5B;AACA,YAAMC,OAAO,GAAGF,KAAK,CAACmC,QAAN,CAAejC,OAA/B;AACA,aAAO;AAAEhB,QAAAA,IAAI,EAAE,KAAR;AAAegB,QAAAA,OAAf;AAAwBD,QAAAA;AAAxB,OAAP;AACD,KAXyB,CAA5B;;AAaA,QAAI4B,aAAa,CAAC3C,IAAd,KAAuB,KAA3B,EAAkC;AAChC,YAAM,mCAAqB2C,aAAa,CAAC3B,OAAnC,EAA4C2B,aAAa,CAAC5B,IAA1D,CAAN;AACD;;AAED,WAAO,IAAImC,UAAJ,CAASP,aAAa,CAACI,QAAvB,CAAP;AACD;AAED;AACF;AACA;;;AAC4B,QAAZI,YAAY,CACxBV,KADwB,EAExBC,MAFwB,EAGxBU,aAHwB,EAIxB;AACA,UAAMC,mBAAmB,GACvBD,aAAa,KAAK,EAAlB,GAAuB,iBAAvB,GAA2CA,aAD7C;AAEA,UAAML,QAAQ,GAAG,MAAMH,qBAAaU,iBAAb,CACrBb,KADqB,EAErBC,MAFqB,EAGrBW,mBAHqB,CAAvB;AAKA,WAAO,IAAIH,UAAJ,CAASH,QAAT,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;AAqHE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,QAAPQ,OAAO,CACXd,KADW,EAEX;AACEW,IAAAA,aAAa,GAAG,iBADlB;AAEEV,IAAAA,MAAM,GAAG;AAFX,MAG0B,EALf,EAMI;AACf,QAAI,OAAOD,KAAP,KAAiB,QAArB,EAA+B;AAC7B,YAAM,IAAIe,0CAAJ,CACJ,4CADI,CAAN;AAGD;;AAED,QAAI,OAAOJ,aAAP,KAAyB,QAA7B,EAAuC;AACrC,YAAM,IAAII,0CAAJ,CACJ,mEACE,YAFE,CAAN;AAID;;AAED,QAAI,OAAOd,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,YAAM,IAAIc,0CAAJ,CACJ,mEADI,CAAN;AAGD;;AAED,SAAK,MAAM,CAACC,GAAD,EAAMC,KAAN,CAAX,IAA2BC,MAAM,CAACC,OAAP,CAAelB,MAAf,CAA3B,EAAmD;AACjD,UAAI,OAAOgB,KAAP,KAAiB,QAArB,EAA+B;AAC7B,cAAM,IAAIF,0CAAJ,CACH,gCAA+BC,GAAI,2BADhC,CAAN;AAGD;AACF;;AAED,YAAQI,iBAASC,EAAjB;AACE,WAAK,KAAL;AACE,eAAO,KAAKX,YAAL,CAAkBV,KAAlB,EAAyBC,MAAzB,EAAiCU,aAAjC,CAAP;;AACF,WAAK,SAAL;AACE,eAAO,KAAKZ,gBAAL,CAAsBC,KAAtB,EAA6BC,MAA7B,CAAP;;AACF;AACE,cAAM,IAAIqB,kDAAJ,CACH,yBAAwBF,iBAASC,EAAG,iCADjC,CAAN;AANJ;AAUD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AACEE,EAAAA,UAAU,GAAoB;AAC5B,WAAOpB,qBAAaqB,gBAAb,EAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEC,EAAAA,cAAc,GAAoB;AAChC,WAAOtB,qBAAauB,oBAAb,EAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACgB,QAARC,QAAQ,GAAqC;AACjD,UAAMC,SAAS,GAAG,MAAMzB,qBAAa0B,cAAb,EAAxB;AACA,UAAMC,QAAQ,GAAG,IAAIC,GAAJ,CACfH,SAAS,CAAC3C,GAAV,CAAeqB,QAAD,IAA8B,CAC1CA,QAAQ,CAAC0B,IADiC,EAE1C,IAAIvB,UAAJ,CAASH,QAAT,CAF0C,CAA5C,CADe,CAAjB;AAMA,WAAOwB,QAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACsB,QAAdG,cAAc,GAA2C;AAC7D,UAAMC,eAAe,GAAG,MAAM/B,qBAAagC,oBAAb,EAA9B;AACA,UAAMC,cAAc,GAAG,IAAIL,GAAJ,CACrBG,eAAe,CAACjD,GAAhB,CAAqBnB,cAAD,IAA0C,CAC5DA,cAAc,CAACkE,IAD6C,EAE5D,IAAIjE,sBAAJ,CAAeD,cAAf,EAA+BC,uBAAWC,KAAX,CAAiBC,OAAhD,CAF4D,CAA9D,CADqB,CAAvB;AAMA,WAAOmE,cAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEC,EAAAA,QAAQ,CAACrC,KAAD,EAA+B;AACrC,WAAOG,qBAAamC,cAAb,CAA4BtC,KAA5B,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEuC,EAAAA,UAAU,CAACvC,KAAD,EAA+B;AACvC,WAAOG,qBAAaqC,gBAAb,CAA8BxC,KAA9B,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACuB,QAAfyC,eAAe,GAGlB;AACD,UAAM;AACJ5D,MAAAA,YAAY,EAAEC,gBADV;AAEJC,MAAAA,cAAc,EAAEC;AAFZ,QAGF,MAAMmB,qBAAauC,qBAAb,EAHV;AAKA,UAAM7D,YAAY,GAAGC,gBAAgB,CAACG,GAAjB,CAClBC,eAAD,IACE,IAAIC,wBAAJ,CAAgBD,eAAhB,CAFiB,CAArB;AAKA,UAAMH,cAAc,GAClB,OAAOC,kBAAP,KAA8B,WAA9B,GACI,IAAIG,wBAAJ,CAAgBH,kBAAhB,CADJ,GAEII,SAHN;AAKA,WAAOL,cAAc,GAAG;AAAEF,MAAAA,YAAF;AAAgBE,MAAAA;AAAhB,KAAH,GAAsC;AAAEF,MAAAA;AAAF,KAA3D;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACE8D,EAAAA,qBAAqB,GAAkB;AACrC,WAAOxC,qBAAayC,6BAAb,EAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAC8B,QAAtBC,sBAAsB,GAAkB;AAC5C,YAAQzB,iBAASC,EAAjB;AACE,WAAK,KAAL;AACE,eAAOlB,qBAAa2C,4BAAb,EAAP;;AACF;AACE,cAAM,IAAIxB,kDAAJ,CACH,yBAAwBF,iBAASC,EAAG,0CADjC,CAAN;AAJJ;AAQD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAC+B,QAAvB0B,uBAAuB,CAC3BC,aAD2B,EAEZ;AACf,YAAQ5B,iBAASC,EAAjB;AACE,WAAK,KAAL;AACE,eAAOlB,qBAAa8C,6BAAb,CAA2CD,aAA3C,CAAP;;AACF;AACE,cAAM,IAAI1B,kDAAJ,CACH,yBAAwBF,iBAASC,EAAG,0CADjC,CAAN;AAJJ;AAQD;;AAxdqC;AA2dxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAEE;AACF;AACA;MAoBclD,K;;aAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;KAAAA,K,KAAAA,K;;;;;4BAwDK+E,Q,KAAAA,Q,UAAAA,Q,YAAAA,Q;GA/EF/F,K,qBAAAA,K","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 { AudioDevice } from './AudioDevice';\nimport { Call } from './Call';\nimport { CallInvite } from './CallInvite';\nimport { NativeEventEmitter, NativeModule, Platform } from './common';\nimport { Constants } from './constants';\nimport { InvalidArgumentError } from './error/InvalidArgumentError';\nimport type { TwilioError } from './error/TwilioError';\nimport { UnsupportedPlatformError } from './error/UnsupportedPlatformError';\nimport { constructTwilioError } from './error/utility';\nimport type { NativeAudioDeviceInfo } from './type/AudioDevice';\nimport type { NativeCallInfo } from './type/Call';\nimport type { NativeCallInviteInfo } from './type/CallInvite';\nimport type { CallKit } from './type/CallKit';\nimport type { CustomParameters, Uuid } from './type/common';\nimport type { NativeVoiceEvent, NativeVoiceEventType } from './type/Voice';\n\n/**\n * Defines strict typings for all events emitted by {@link (Voice:class)\n * | Voice 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 (Voice:class) | Voice class}.\n * - See also the {@link (Voice:namespace) | Voice namespace}.\n *\n * @public\n */\nexport declare interface Voice {\n /**\n * ------------\n * Emit Typings\n * ------------\n */\n\n /** @internal */\n emit(\n voiceEvent: Voice.Event.AudioDevicesUpdated,\n audioDevices: AudioDevice[],\n selectedDevice?: AudioDevice\n ): boolean;\n\n /** @internal */\n emit(voiceEvent: Voice.Event.CallInvite, callInvite: CallInvite): boolean;\n\n /** @internal */\n emit(voiceEvent: Voice.Event.Error, error: TwilioError): boolean;\n\n /** @internal */\n emit(voiceEvent: Voice.Event.Registered): boolean;\n\n /** @internal */\n emit(voiceEvent: Voice.Event.Unregistered): boolean;\n\n /** @internal */\n emit(voiceEvent: Voice.Event, ...args: any[]): boolean;\n\n /**\n * ----------------\n * Listener Typings\n * ----------------\n */\n\n /**\n * Audio devices updated event. Raised when the list of audio devices changes.\n *\n * @example\n * ```typescript\n * voice.addListener(Voice.Event.AudioDevicesUpdated, () => {\n * // the list of available audio devices has changed and/or the selected\n * // audio device has been changed\n * });\n * ```\n *\n * @param audioDevicesUpdatedEvent - 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 audioDevicesUpdatedEvent: Voice.Event.AudioDevicesUpdated,\n listener: Voice.Listener.AudioDevicesUpdated\n ): this;\n /** {@inheritDoc (Voice:interface).(addListener:1)} */\n on(\n audioDevicesUpdatedEvent: Voice.Event.AudioDevicesUpdated,\n listener: Voice.Listener.AudioDevicesUpdated\n ): this;\n\n /**\n * Call invite event. Raised when an incoming call invite is received.\n *\n * @example\n * ```typescript\n * voice.addListener(Voice.Event.CallInvite, (callInvite: CallInvite) => {\n * // handle the incoming call invite\n * });\n * ```\n *\n * @param callInviteEvent - 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 callInviteEvent: Voice.Event.CallInvite,\n listener: Voice.Listener.CallInvite\n ): this;\n /** {@inheritDoc (Voice:interface).(addListener:2)} */\n on(\n callInviteEvent: Voice.Event.CallInvite,\n listener: Voice.Listener.CallInvite\n ): this;\n\n /**\n * Error event. Raised when the SDK encounters an error.\n *\n * @example\n * ```typescript\n * voice.addListener(Voice.Event.Error, (error: TwilioError.GenericError) => {\n * // handle a generic Voice SDK error\n * });\n * ```\n *\n * @param errorEvent - 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 errorEvent: Voice.Event.Error,\n listener: Voice.Listener.Error\n ): this;\n /** {@inheritDoc (Voice:interface).(addListener:3)} */\n on(errorEvent: Voice.Event.Error, listener: Voice.Listener.Error): this;\n\n /**\n * Registered event. Raised when the SDK is registered for incoming calls.\n *\n * @example\n * ```typescript\n * voice.addListener(Voice.Event.Registered, () => {\n * // handle successful registration for incoming calls\n * });\n * ```\n *\n * @param registeredEvent - 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 registeredEvent: Voice.Event.Registered,\n listener: Voice.Listener.Registered\n ): this;\n /** {@inheritDoc (Voice:interface).(addListener:4)} */\n on(\n registeredEvent: Voice.Event.Registered,\n listener: Voice.Listener.Registered\n ): this;\n\n /**\n * Unregistered event. Raised when the SDK is unregistered for incoming calls.\n *\n * @example\n * ```typescript\n * voice.addListener(Voice.Event.Unregistered, () => {\n * // handle successful unregistration for incoming calls\n * });\n * ```\n *\n * @param unregisteredEvent - 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 unregisteredEvent: Voice.Event.Unregistered,\n listener: Voice.Listener.Unregistered\n ): this;\n /** {@inheritDoc (Voice:interface).(addListener:5)} */\n on(\n unregisteredEvent: Voice.Event.Unregistered,\n listener: Voice.Listener.Unregistered\n ): this;\n\n /**\n * Generic event listener typings.\n * @param voiceEvent - 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(voiceEvent: Voice.Event, listener: Voice.Listener.Generic): this;\n /** {@inheritDoc (Voice:interface).(addListener:6)} */\n on(voiceEvent: Voice.Event, listener: Voice.Listener.Generic): this;\n}\n\n/**\n * Main entry-point of the Voice SDK. Provides access to the entire feature-set\n * of the library.\n *\n * @example\n * Usage:\n * ```\n * const token = '...';\n *\n * const voice = new Voice();\n *\n * voice.on(Voice.Event.CallInvite, (callInvite: CallInvite) => {\n * callInvite.accept();\n * });\n *\n * voice.register(token);\n * ```\n *\n * @remarks\n * - See also the {@link (Voice:namespace).Event} enum for events emitted by\n * `Voice` objects.\n * - See also the {@link (Voice:interface) | Voice interface} for events\n * emitted by this class and associated types.\n * - See also the {@link (Voice:namespace) | Voice namespace} for types and\n * enumerations used by this class.\n *\n * @public\n */\nexport class Voice extends EventEmitter {\n /**\n * Handlers for native voice 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 (Voice:class)._handleNativeEvent} function is invoked.\n */\n private _nativeEventHandler: Record<\n NativeVoiceEventType,\n (voiceEvent: NativeVoiceEvent) => void\n >;\n\n /**\n * Main entry-point of the Voice SDK. Provides access to the entire\n * feature-set of the library.\n */\n constructor() {\n super();\n\n this._nativeEventHandler = {\n /**\n * Common\n */\n [Constants.VoiceEventError]: this._handleError,\n\n /**\n * Call Invite\n */\n [Constants.VoiceEventTypeValueIncomingCallInvite]: this._handleCallInvite,\n\n /**\n * Registration\n */\n [Constants.VoiceEventRegistered]: this._handleRegistered,\n [Constants.VoiceEventUnregistered]: this._handleUnregistered,\n\n /**\n * Audio Devices\n */\n [Constants.VoiceEventAudioDevicesUpdated]:\n this._handleAudioDevicesUpdated,\n };\n\n NativeEventEmitter.addListener(\n Constants.ScopeVoice,\n this._handleNativeEvent\n );\n }\n\n /**\n * Connect for devices on Android platforms.\n */\n private async _connect_android(token: string, params: CustomParameters) {\n const connectResult = await NativeModule.voice_connect_android(\n token,\n params\n )\n .then((callInfo) => {\n return { type: 'ok', callInfo } as const;\n })\n .catch((error) => {\n const code = error.userInfo.code;\n const message = error.userInfo.message;\n return { type: 'err', message, code } as const;\n });\n\n if (connectResult.type === 'err') {\n throw constructTwilioError(connectResult.message, connectResult.code);\n }\n\n return new Call(connectResult.callInfo);\n }\n\n /**\n * Connect for devices on iOS platforms.\n */\n private async _connect_ios(\n token: string,\n params: CustomParameters,\n contactHandle: string\n ) {\n const parsedContactHandle =\n contactHandle === '' ? 'Default Contact' : contactHandle;\n const callInfo = await NativeModule.voice_connect_ios(\n token,\n params,\n parsedContactHandle\n );\n return new Call(callInfo);\n }\n\n /**\n * Intermediary event handler for `Voice`-level events. Ensures that the type\n * of the incoming event is expected and invokes the proper event listener.\n * @param nativeVoiceEvent - A `Voice` event directly from the native layer.\n */\n private _handleNativeEvent = (nativeVoiceEvent: NativeVoiceEvent) => {\n const { type } = nativeVoiceEvent;\n\n const handler = this._nativeEventHandler[type];\n if (typeof handler === 'undefined') {\n throw new Error(\n `Unknown voice event type received from the native layer: \"${type}\".`\n );\n }\n\n handler(nativeVoiceEvent);\n };\n\n /**\n * Call invite handler. Creates a {@link (CallInvite:class)} from the info\n * raised by the native layer and emits it.\n * @param nativeVoiceEvent - A `Voice` event directly from the native layer.\n */\n private _handleCallInvite = (nativeVoiceEvent: NativeVoiceEvent) => {\n if (\n nativeVoiceEvent.type !== Constants.VoiceEventTypeValueIncomingCallInvite\n ) {\n throw new Error(\n 'Incorrect \"voice#callInvite\" handler called for type ' +\n `\"${nativeVoiceEvent.type}\".`\n );\n }\n\n const { callInvite: callInviteInfo } = nativeVoiceEvent;\n\n const callInvite = new CallInvite(callInviteInfo, CallInvite.State.Pending);\n\n this.emit(Voice.Event.CallInvite, callInvite);\n };\n\n /**\n * Error event handler. Creates an error from the namespace\n * {@link TwilioErrors} from the info raised by the native layer and emits it.\n * @param nativeVoiceEvent - A `Voice` event directly from the native layer.\n */\n private _handleError = (nativeVoiceEvent: NativeVoiceEvent) => {\n if (nativeVoiceEvent.type !== Constants.VoiceEventError) {\n throw new Error(\n 'Incorrect \"voice#error\" handler called for type ' +\n `\"${nativeVoiceEvent.type}\".`\n );\n }\n\n const {\n error: { code, message },\n } = nativeVoiceEvent;\n const error = constructTwilioError(message, code);\n this.emit(Voice.Event.Error, error);\n };\n\n /**\n * Registered event handler. Emits a\n * {@link (Voice:namespace).Event.Registered} event.\n */\n private _handleRegistered = (nativeVoiceEvent: NativeVoiceEvent) => {\n if (nativeVoiceEvent.type !== Constants.VoiceEventRegistered) {\n throw new Error(\n 'Incorrect \"voice#error\" handler called for type ' +\n `\"${nativeVoiceEvent.type}\".`\n );\n }\n\n this.emit(Voice.Event.Registered);\n };\n\n /**\n * Unregistered event handler. Emits a\n * {@link (Voice:namespace).Event.Unregistered} event.\n */\n private _handleUnregistered = (nativeVoiceEvent: NativeVoiceEvent) => {\n if (nativeVoiceEvent.type !== Constants.VoiceEventUnregistered) {\n throw new Error(\n 'Incorrect \"voice#error\" handler called for type ' +\n `\"${nativeVoiceEvent.type}\".`\n );\n }\n\n this.emit(Voice.Event.Unregistered);\n };\n\n /**\n * Audio devices updated event handler. Generates a new list of\n * {@link (AudioDevice:class) | AudioDevice objects} and emits it.\n * @param nativeVoiceEvent - A `Voice` event directly from the native layer.\n */\n private _handleAudioDevicesUpdated = (nativeVoiceEvent: NativeVoiceEvent) => {\n if (nativeVoiceEvent.type !== Constants.VoiceEventAudioDevicesUpdated) {\n throw new Error(\n 'Incorrect \"voice#audioDevicesUpdated\" handler called for type ' +\n `\"${nativeVoiceEvent.type}\".`\n );\n }\n\n const {\n audioDevices: audioDeviceInfos,\n selectedDevice: selectedDeviceInfo,\n } = nativeVoiceEvent;\n\n const audioDevices = audioDeviceInfos.map(\n (audioDeviceInfo: NativeAudioDeviceInfo) =>\n new AudioDevice(audioDeviceInfo)\n );\n\n const selectedDevice =\n typeof selectedDeviceInfo !== 'undefined' && selectedDeviceInfo !== null\n ? new AudioDevice(selectedDeviceInfo)\n : undefined;\n\n this.emit(Voice.Event.AudioDevicesUpdated, audioDevices, selectedDevice);\n };\n\n /**\n * Create an outgoing call.\n *\n * @remarks\n * Note that the resolution of the returned `Promise` does not imply any call\n * event occurring, such as answered or rejected.\n * The `contactHandle` parameter is only required for iOS apps. Currently the\n * parameter does have any effect on Android apps and can be ignored.\n * `Default Contact` will appear in the iOS call history if the value is empty\n * or not provided.\n *\n * @param token - A Twilio Access Token, usually minted by an\n * authentication-gated endpoint using a Twilio helper library.\n * @param options - Connect options.\n * See {@link (Voice:namespace).ConnectOptions}.\n *\n * @returns\n * A `Promise` that\n * - Resolves with a call when the call is created.\n * - Rejects:\n * * When a call is not able to be created on the native layer.\n * * With an {@link TwilioErrors.InvalidArgumentError} when invalid\n * arguments are passed.\n */\n async connect(\n token: string,\n {\n contactHandle = 'Default Contact',\n params = {},\n }: Voice.ConnectOptions = {}\n ): Promise {\n if (typeof token !== 'string') {\n throw new InvalidArgumentError(\n 'Argument \"token\" must be of type \"string\".'\n );\n }\n\n if (typeof contactHandle !== 'string') {\n throw new InvalidArgumentError(\n 'Optional argument \"contactHandle\" must be undefined or of type' +\n ' \"string\".'\n );\n }\n\n if (typeof params !== 'object') {\n throw new InvalidArgumentError(\n 'Optional argument \"params\" must be undefined or of type \"object\".'\n );\n }\n\n for (const [key, value] of Object.entries(params)) {\n if (typeof value !== 'string') {\n throw new InvalidArgumentError(\n `Voice.ConnectOptions.params[\"${key}\"] must be of type string`\n );\n }\n }\n\n switch (Platform.OS) {\n case 'ios':\n return this._connect_ios(token, params, contactHandle);\n case 'android':\n return this._connect_android(token, params);\n default:\n throw new UnsupportedPlatformError(\n `Unsupported platform \"${Platform.OS}\". Expected \"android\" or \"ios\".`\n );\n }\n }\n\n /**\n * Get the version of the native SDK. Note that this is not the version of the\n * React Native SDK, this is the version of the mobile SDK that the RN SDK is\n * utilizing.\n * @returns\n * A `Promise` that\n * - Resolves with a string representing the version of the native SDK.\n */\n getVersion(): Promise {\n return NativeModule.voice_getVersion();\n }\n\n /**\n * Get the Device token from the native layer.\n * @returns a Promise that resolves with a string representing the Device\n * token.\n */\n getDeviceToken(): Promise {\n return NativeModule.voice_getDeviceToken();\n }\n\n /**\n * Get a list of existing calls, ongoing and pending. This will not return any\n * call that has finished.\n * @returns\n * A `Promise` that\n * - Resolves with a mapping of `Uuid`s to {@link (Call:class)}s.\n */\n async getCalls(): Promise> {\n const callInfos = await NativeModule.voice_getCalls();\n const callsMap = new Map(\n callInfos.map((callInfo: NativeCallInfo) => [\n callInfo.uuid,\n new Call(callInfo),\n ])\n );\n return callsMap;\n }\n\n /**\n * Get a list of pending call invites.\n *\n * @remarks\n * This list will not contain any call invites that have been \"settled\"\n * (answered or rejected).\n *\n * @returns\n * A `Promise` that\n * - Resolves with a mapping of `Uuid`s to {@link (CallInvite:class)}s.\n */\n async getCallInvites(): Promise> {\n const callInviteInfos = await NativeModule.voice_getCallInvites();\n const callInvitesMap = new Map(\n callInviteInfos.map((callInviteInfo: NativeCallInviteInfo) => [\n callInviteInfo.uuid,\n new CallInvite(callInviteInfo, CallInvite.State.Pending),\n ])\n );\n return callInvitesMap;\n }\n\n /**\n * Register this device for incoming calls.\n * @param token - A Twilio Access Token.\n * @returns\n * A `Promise` that\n * - Resolves when the device has been registered.\n */\n register(token: string): Promise {\n return NativeModule.voice_register(token);\n }\n\n /**\n * Unregister this device for incoming calls.\n * @param token - A Twilio Access Token.\n * @returns\n * A `Promise` that\n * - Resolves when the device has been unregistered.\n */\n unregister(token: string): Promise {\n return NativeModule.voice_unregister(token);\n }\n\n /**\n * Get audio device information from the native layer.\n * @returns\n * A `Promise` that\n * - Resolves with a list of the native device's audio devices and the\n * currently selected device.\n */\n async getAudioDevices(): Promise<{\n audioDevices: AudioDevice[];\n selectedDevice?: AudioDevice;\n }> {\n const {\n audioDevices: audioDeviceInfos,\n selectedDevice: selectedDeviceInfo,\n } = await NativeModule.voice_getAudioDevices();\n\n const audioDevices = audioDeviceInfos.map(\n (audioDeviceInfo: NativeAudioDeviceInfo) =>\n new AudioDevice(audioDeviceInfo)\n );\n\n const selectedDevice =\n typeof selectedDeviceInfo !== 'undefined'\n ? new AudioDevice(selectedDeviceInfo)\n : undefined;\n\n return selectedDevice ? { audioDevices, selectedDevice } : { audioDevices };\n }\n\n /**\n * Show the native AV route picker.\n *\n * @remarks\n * Unsupported platforms:\n * - Android\n *\n * This API is specific to iOS and unavailable in Android. If this API is\n * invoked on Android, there will be no operation and the returned `Promise`\n * will immediately resolve with `null`.\n *\n * @returns\n * A `Promise` that\n * - Resolves when the AV Route Picker View is shown.\n */\n showAvRoutePickerView(): Promise {\n return NativeModule.voice_showNativeAvRoutePicker();\n }\n\n /**\n * Initialize a Push Registry instance inside the SDK for handling\n * PushKit device token updates and receiving push notifications.\n *\n * @remarks\n * Unsupported platforms:\n * - Android\n *\n * This API is specific to iOS and unavailable in Android.\n * Use this method if the application does not have an iOS PushKit\n * module and wishes to delegate the event handling to the SDK.\n * Call this method upon launching the app to guarantee that incoming\n * call push notifications will be surfaced to the users, especially when\n * the app is not running in the foreground.\n *\n * @return\n * A `Promise` that\n * - Resolves when the initialization is done.\n */\n async initializePushRegistry(): Promise {\n switch (Platform.OS) {\n case 'ios':\n return NativeModule.voice_initializePushRegistry();\n default:\n throw new UnsupportedPlatformError(\n `Unsupported platform \"${Platform.OS}\". This method is only supported on iOS.`\n );\n }\n }\n\n /**\n * Custom iOS CallKit configuration.\n *\n * @param configuration - iOS CallKit configuration options.\n *\n * @remarks\n * Unsupported platforms:\n * - Android\n *\n * See {@link CallKit} for more information.\n *\n * @returns\n * A `Promise` that\n * - Resolves when the configuration has been applied.\n * - Rejects if the configuration is unable to be applied.\n */\n async setCallKitConfiguration(\n configuration: CallKit.ConfigurationOptions\n ): Promise {\n switch (Platform.OS) {\n case 'ios':\n return NativeModule.voice_setCallKitConfiguration(configuration);\n default:\n throw new UnsupportedPlatformError(\n `Unsupported platform \"${Platform.OS}\". This method is only supported on iOS.`\n );\n }\n }\n}\n\n/**\n * Provides enumerations and types used by {@link (Voice:class)\n * | Voice objects}.\n *\n * @remarks\n * - See also the {@link (Voice:class) | Voice class}.\n * - See also the {@link (Voice:interface) | Voice interface}.\n *\n * @public\n */\nexport namespace Voice {\n /**\n * Options to pass to the {@link (Voice:class).connect} method.\n */\n export type ConnectOptions = {\n /**\n * Custom parameters to send to the TwiML Application.\n */\n params?: Record;\n /**\n * A CallKit display name that will show in the call history as the contact\n * handle.\n *\n * @remarks\n * Unsupported platforms:\n * - Android\n */\n contactHandle?: string;\n };\n\n /**\n * Enumeration of all event strings emitted by {@link (Voice:class)} objects.\n */\n export enum Event {\n /**\n * Raised when there is a change in available audio devices.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:1)\n * | Voice.addListener(AudioDevicesUpdated)}.\n */\n 'AudioDevicesUpdated' = 'audioDevicesUpdated',\n\n /**\n * Raised when there is an incoming call invite.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:2)\n * | Voice.addListener(CallInvite)}.\n */\n 'CallInvite' = 'callInvite',\n\n /**\n * Raised when the SDK encounters an error.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:3)\n * | Voice.addListener(Error)}.\n */\n 'Error' = 'error',\n\n /**\n * Raised when the SDK is registered for incoming calls.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:4)\n * | Voice.addListener(Registered)}.\n */\n 'Registered' = 'registered',\n\n /**\n * Raised when the SDK is unregistered for incoming calls.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:5)\n * | Voice.addListener(Unregistered)}.\n */\n 'Unregistered' = 'unregistered',\n }\n\n /**\n * Listener types for all events emitted by a {@link (Voice:class)\n * | Voice object.}\n */\n export namespace Listener {\n /**\n * Audio devices updated event listener. This should be the function\n * signature of an event listener bound to the\n * {@link (Voice:namespace).Event.AudioDevicesUpdated} event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:1)}.\n */\n export type AudioDevicesUpdated = (\n audioDevices: AudioDevice[],\n selectedDevice?: AudioDevice\n ) => void;\n\n /**\n * Call invite event listener. This should be the function signature of an\n * event listener bound to the\n * {@link (Voice:namespace).Event.CallInvite} event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:2)}.\n */\n export type CallInvite = (callInvite: CallInvite) => void;\n\n /**\n * Error event listener. This should be the function signature of an event\n * listener bound to the\n * {@link (Voice:namespace).Event.Error} event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:3)}.\n *\n * See {@link TwilioErrors} for all error classes.\n */\n export type Error = (error: TwilioError) => void;\n\n /**\n * Registered event listener. This should be the function signature of an\n * event listener bound to the\n * {@link (Voice:namespace).Event.Registered} event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:4)}.\n */\n export type Registered = () => void;\n\n /**\n * Unregistered event listener. This should be the function signature of an\n * event listener bound to the\n * {@link (Voice:namespace).Event.Unregistered} event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:5)}.\n */\n export type Unregistered = () => void;\n\n /**\n * Generic event listener. This should be the function signature of any\n * event listener bound to any voice event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:6)}.\n */\n export type Generic = (...args: any[]) => void;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/common.js b/lib/commonjs/common.js
new file mode 100644
index 00000000..72ccb915
--- /dev/null
+++ b/lib/commonjs/common.js
@@ -0,0 +1,26 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.Platform = exports.NativeEventEmitter = exports.NativeModule = void 0;
+
+var ReactNative = _interopRequireWildcard(require("react-native"));
+
+function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
+
+function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
+
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+const NativeModule = ReactNative.NativeModules.TwilioVoiceReactNative;
+exports.NativeModule = NativeModule;
+const NativeEventEmitter = new ReactNative.NativeEventEmitter(NativeModule);
+exports.NativeEventEmitter = NativeEventEmitter;
+const Platform = ReactNative.Platform;
+exports.Platform = Platform;
+//# sourceMappingURL=common.js.map
\ No newline at end of file
diff --git a/lib/commonjs/common.js.map b/lib/commonjs/common.js.map
new file mode 100644
index 00000000..5b11103e
--- /dev/null
+++ b/lib/commonjs/common.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["common.ts"],"names":["NativeModule","ReactNative","NativeModules","TwilioVoiceReactNative","NativeEventEmitter","Platform"],"mappings":";;;;;;;AAOA;;;;;;AAPA;AACA;AACA;AACA;AACA;AACA;AAKO,MAAMA,YAAY,GAAGC,WAAW,CAACC,aAAZ,CACzBC,sBADI;;AAEA,MAAMC,kBAAkB,GAAG,IAAIH,WAAW,CAACG,kBAAhB,CAChCJ,YADgC,CAA3B;;AAGA,MAAMK,QAAQ,GAAGJ,WAAW,CAACI,QAA7B","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 * as ReactNative from 'react-native';\nimport type { TwilioVoiceReactNative as TwilioVoiceReactNativeType } from './type/NativeModule';\n\nexport const NativeModule = ReactNative.NativeModules\n .TwilioVoiceReactNative as TwilioVoiceReactNativeType;\nexport const NativeEventEmitter = new ReactNative.NativeEventEmitter(\n NativeModule\n);\nexport const Platform = ReactNative.Platform;\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/constants.js b/lib/commonjs/constants.js
new file mode 100644
index 00000000..6fb8338b
--- /dev/null
+++ b/lib/commonjs/constants.js
@@ -0,0 +1,147 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.Constants = void 0;
+let Constants;
+exports.Constants = Constants;
+
+(function (Constants) {
+ Constants["ReactNativeVoiceSDK"] = "react-native";
+ Constants["ReactNativeVoiceSDKVer"] = "1.2.0";
+ Constants["ScopeVoice"] = "scopeVoice";
+ Constants["ScopeCall"] = "scopeCall";
+ Constants["ScopeCallMessage"] = "scopeCallMessage";
+ Constants["ScopeCallInvite"] = "scopeCallInvite";
+ Constants["VoiceEventError"] = "voiceEventError";
+ Constants["VoiceEventType"] = "type";
+ Constants["VoiceErrorKeyError"] = "error";
+ Constants["VoiceErrorKeyCode"] = "code";
+ Constants["VoiceErrorKeyMessage"] = "message";
+ Constants["VoiceEventRegistered"] = "voiceEventRegistered";
+ Constants["VoiceEventUnregistered"] = "voiceEventUnregistered";
+ Constants["CallInfoUuid"] = "uuid";
+ Constants["CallInfoSid"] = "sid";
+ Constants["CallInfoFrom"] = "from";
+ Constants["CallInfoTo"] = "to";
+ Constants["CallInfoIsMuted"] = "isMuted";
+ Constants["CallInfoIsOnHold"] = "isOnHold";
+ Constants["CallInfoState"] = "state";
+ Constants["CallInfoInitialConnectedTimestamp"] = "initialConnectedTimestamp";
+ Constants["CallStateConnected"] = "connected";
+ Constants["CallStateConnecting"] = "connecting";
+ Constants["CallStateDisconnected"] = "disconnected";
+ Constants["CallStateReconnecting"] = "reconnecting";
+ Constants["CallStateRinging"] = "ringing";
+ Constants["CallInviteInfoUuid"] = "uuid";
+ Constants["CallInviteInfoCallSid"] = "callSid";
+ Constants["CallInviteInfoFrom"] = "from";
+ Constants["CallInviteInfoTo"] = "to";
+ Constants["CallInviteInfoCustomParameters"] = "customParameters";
+ Constants["CancelledCallInviteInfoUuid"] = "uuid";
+ Constants["CancelledCallInviteInfoCallSid"] = "callSid";
+ Constants["CancelledCallInviteInfoFrom"] = "from";
+ Constants["CancelledCallInviteInfoTo"] = "to";
+ Constants["CancelledCallInviteInfoCustomParameters"] = "customParameters";
+ Constants["VoiceEventTypeValueIncomingCallInvite"] = "voiceEventTypeValueIncomingCallInvite";
+ Constants["VoiceEventSid"] = "voiceEventSid";
+ Constants["CallMessage"] = "callMessage";
+ Constants["CallMessageContent"] = "content";
+ Constants["CallMessageContentType"] = "contentType";
+ Constants["CallMessageMessageType"] = "messageType";
+ Constants["JSEventKeyCallMessageInfo"] = "callMessage";
+ Constants["VoiceEventAudioDevicesUpdated"] = "voiceEventAudioDevicesUpdated";
+ Constants["AudioDeviceKeyUuid"] = "uuid";
+ Constants["AudioDeviceKeyName"] = "name";
+ Constants["AudioDeviceKeyType"] = "type";
+ Constants["AudioDeviceKeyAudioDevices"] = "audioDevices";
+ Constants["AudioDeviceKeySelectedDevice"] = "selectedDevice";
+ Constants["AudioDeviceKeyEarpiece"] = "earpiece";
+ Constants["AudioDeviceKeySpeaker"] = "speaker";
+ Constants["AudioDeviceKeyBluetooth"] = "bluetooth";
+ Constants["CallInviteEventKeyType"] = "type";
+ Constants["CallInviteEventTypeValueAccepted"] = "callInviteEventTypeValueCallInviteAccepted";
+ Constants["CallInviteEventTypeValueNotificationTapped"] = "callInviteEventTypeValueCallInviteNotificationTapped";
+ Constants["CallInviteEventTypeValueRejected"] = "callInviteEventTypeValueCallInviteRejected";
+ Constants["CallInviteEventTypeValueCancelled"] = "callInviteEventTypeValueCallInviteCancelled";
+ Constants["CallInviteEventKeyCallSid"] = "callSid";
+ Constants["CallEventConnected"] = "callEventConnected";
+ Constants["CallEventConnectFailure"] = "callEventConnectFailure";
+ Constants["CallEventDisconnected"] = "callEventDisconnected";
+ Constants["CallEventReconnecting"] = "callEventReconnecting";
+ Constants["CallEventReconnected"] = "callEventReconnected";
+ Constants["CallEventRinging"] = "callEventRinging";
+ Constants["CallEventQualityWarningsChanged"] = "callEventQualityWarningsChanged";
+ Constants["CallEventCurrentWarnings"] = "callEventCurrentWarnings";
+ Constants["CallEventPreviousWarnings"] = "callEventPreviousWarnings";
+ Constants["CallEventMessageFailure"] = "callEventMessageFailure";
+ Constants["CallEventMessageReceived"] = "callEventMessageReceived";
+ Constants["CallEventMessageSent"] = "callEventMessageSent";
+ Constants["Score"] = "score";
+ Constants["Issue"] = "issue";
+ Constants["PeerConnectionId"] = "peerConnectionId";
+ Constants["LocalAudioTrackStats"] = "localAudioTrackStats";
+ Constants["RemoteAudioTrackStats"] = "remoteAudioTrackStats";
+ Constants["IceCandidatePairStats"] = "iceCandidatePairStats";
+ Constants["IceCandidateStats"] = "iceCandidateStats";
+ Constants["Codec"] = "codec";
+ Constants["PacketsLost"] = "packetsLost";
+ Constants["Ssrc"] = "ssrc";
+ Constants["TrackId"] = "trackId";
+ Constants["Timestamp"] = "timestamp";
+ Constants["BytesSent"] = "bytesSent";
+ Constants["PacketsSent"] = "packetsSent";
+ Constants["RoundTripTime"] = "roundTripTime";
+ Constants["AudioLevel"] = "audioLevel";
+ Constants["Jitter"] = "jitter";
+ Constants["BytesReceived"] = "bytesReceived";
+ Constants["Mos"] = "mos";
+ Constants["TransportId"] = "transportId";
+ Constants["LocalCandidateId"] = "localCandidateId";
+ Constants["RemoteCandidateId"] = "remoteCandidateId";
+ Constants["State"] = "state";
+ Constants["LocalCandidateIp"] = "localCandidateIp";
+ Constants["RemoteCandidateIp"] = "remoteCandidateIp";
+ Constants["Nominated"] = "nominated";
+ Constants["Writeable"] = "writeable";
+ Constants["Readable"] = "readable";
+ Constants["TotalRoundTripTime"] = "totalRoundTripTime";
+ Constants["CurrentRoundTripTime"] = "currentRoundTripTime";
+ Constants["AvailableOutgoingBitrate"] = "availableOutgoingBitrate";
+ Constants["AvailableIncomingBitrate"] = "availableIncomingBitrate";
+ Constants["RequestsReceived"] = "requestsReceived";
+ Constants["RequestsSent"] = "requestsSent";
+ Constants["ResponsesReceived"] = "responsesReceived";
+ Constants["ResponsesSent"] = "responsesSent";
+ Constants["RetransmissionsReceived"] = "retransmissionsReceived";
+ Constants["RetransmissionsSent"] = "retransmissionsSent";
+ Constants["ConsentRequestsReceived"] = "consentRequestsReceived";
+ Constants["ConsentRequestsSent"] = "consentRequestsSent";
+ Constants["ConsentResponsesReceived"] = "consentResponsesReceived";
+ Constants["ConsentResponsesSent"] = "consentResponsesSent";
+ Constants["ActiveCandidatePair"] = "activeCandidatePair";
+ Constants["RelayProtocol"] = "relayProtocol";
+ Constants["IsRemote"] = "isRemote";
+ Constants["Ip"] = "ip";
+ Constants["Port"] = "port";
+ Constants["Protocol"] = "protocol";
+ Constants["CandidateType"] = "candidateType";
+ Constants["Priority"] = "priority";
+ Constants["Url"] = "url";
+ Constants["Deleted"] = "deleted";
+ Constants["PacketsReceived"] = "packetsReceived";
+ Constants["StateFailed"] = "stateFailed";
+ Constants["StateFrozen"] = "stateFrozen";
+ Constants["StateInProgress"] = "stateInProgress";
+ Constants["StateSucceeded"] = "stateSucceeded";
+ Constants["StateWaiting"] = "stateWaiting";
+ Constants["StateUnknown"] = "stateUnknown";
+ Constants["CallKitMaximumCallsPerCallGroup"] = "callKitMaximumCallsPerCallGroup";
+ Constants["CallKitMaximumCallGroups"] = "callKitMaximumCallGroups";
+ Constants["CallKitIncludesCallsInRecents"] = "callKitIncludesCallsInRecents";
+ Constants["CallKitSupportedHandleTypes"] = "callKitSupportedHandleTypes";
+ Constants["CallKitIconTemplateImageData"] = "callKitIconTemplateImageData";
+ Constants["CallKitRingtoneSound"] = "callKitRingtoneSound";
+})(Constants || (exports.Constants = Constants = {}));
+//# sourceMappingURL=constants.js.map
\ No newline at end of file
diff --git a/lib/commonjs/constants.js.map b/lib/commonjs/constants.js.map
new file mode 100644
index 00000000..4a8e3910
--- /dev/null
+++ b/lib/commonjs/constants.js.map
@@ -0,0 +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;GAAAA,S,yBAAAA,S","sourcesContent":["export enum Constants {\n // React Native Voice SDK\n 'ReactNativeVoiceSDK' = 'react-native',\n 'ReactNativeVoiceSDKVer' = '1.2.0',\n\n // Scope names\n 'ScopeVoice' = 'scopeVoice',\n 'ScopeCall' = 'scopeCall',\n 'ScopeCallMessage' = 'scopeCallMessage',\n 'ScopeCallInvite' = 'scopeCallInvite',\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 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 // Post feedback\n 'Score' = 'score',\n 'Issue' = 'issue',\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"]}
\ No newline at end of file
diff --git a/lib/commonjs/error/InvalidArgumentError.js b/lib/commonjs/error/InvalidArgumentError.js
new file mode 100644
index 00000000..06b231c8
--- /dev/null
+++ b/lib/commonjs/error/InvalidArgumentError.js
@@ -0,0 +1,32 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.InvalidArgumentError = void 0;
+
+var _TwilioError = require("./TwilioError");
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Error describing that an SDK function is invoked with an invalid argument.
+ *
+ * @public
+ */
+class InvalidArgumentError extends _TwilioError.TwilioError {
+ constructor(message) {
+ super(message);
+
+ _defineProperty(this, "description", 'Invalid argument error.');
+
+ _defineProperty(this, "explanation", 'The SDK has encountered a situation where invalid arguments were passed.');
+
+ Object.setPrototypeOf(this, InvalidArgumentError.prototype);
+ this.name = InvalidArgumentError.name;
+ }
+
+}
+
+exports.InvalidArgumentError = InvalidArgumentError;
+//# sourceMappingURL=InvalidArgumentError.js.map
\ No newline at end of file
diff --git a/lib/commonjs/error/InvalidArgumentError.js.map b/lib/commonjs/error/InvalidArgumentError.js.map
new file mode 100644
index 00000000..1cfe90ef
--- /dev/null
+++ b/lib/commonjs/error/InvalidArgumentError.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["InvalidArgumentError.ts"],"names":["InvalidArgumentError","TwilioError","constructor","message","Object","setPrototypeOf","prototype","name"],"mappings":";;;;;;;AAAA;;;;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMA,oBAAN,SAAmCC,wBAAnC,CAA+C;AAKpDC,EAAAA,WAAW,CAACC,OAAD,EAAkB;AAC3B,UAAMA,OAAN;;AAD2B,yCAJP,yBAIO;;AAAA,yCAF3B,0EAE2B;;AAG3BC,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4BL,oBAAoB,CAACM,SAAjD;AACA,SAAKC,IAAL,GAAYP,oBAAoB,CAACO,IAAjC;AACD;;AAVmD","sourcesContent":["import { TwilioError } from './TwilioError';\n\n/**\n * Error describing that an SDK function is invoked with an invalid argument.\n *\n * @public\n */\nexport class InvalidArgumentError extends TwilioError {\n description: string = 'Invalid argument error.';\n explanation: string =\n 'The SDK has encountered a situation where invalid arguments were passed.';\n\n constructor(message: string) {\n super(message);\n\n Object.setPrototypeOf(this, InvalidArgumentError.prototype);\n this.name = InvalidArgumentError.name;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/error/InvalidStateError.js b/lib/commonjs/error/InvalidStateError.js
new file mode 100644
index 00000000..b74798aa
--- /dev/null
+++ b/lib/commonjs/error/InvalidStateError.js
@@ -0,0 +1,33 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.InvalidStateError = void 0;
+
+var _TwilioError = require("./TwilioError");
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Error describing that the SDK has entered or is attempting to enter an
+ * invalid state.
+ *
+ * @public
+ */
+class InvalidStateError extends _TwilioError.TwilioError {
+ constructor(message) {
+ super(message);
+
+ _defineProperty(this, "description", 'Invalid state error.');
+
+ _defineProperty(this, "explanation", 'The SDK has entered an invalid state.');
+
+ Object.setPrototypeOf(this, InvalidStateError.prototype);
+ this.name = InvalidStateError.name;
+ }
+
+}
+
+exports.InvalidStateError = InvalidStateError;
+//# sourceMappingURL=InvalidStateError.js.map
\ No newline at end of file
diff --git a/lib/commonjs/error/InvalidStateError.js.map b/lib/commonjs/error/InvalidStateError.js.map
new file mode 100644
index 00000000..546dfcae
--- /dev/null
+++ b/lib/commonjs/error/InvalidStateError.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["InvalidStateError.ts"],"names":["InvalidStateError","TwilioError","constructor","message","Object","setPrototypeOf","prototype","name"],"mappings":";;;;;;;AAAA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,iBAAN,SAAgCC,wBAAhC,CAA4C;AAIjDC,EAAAA,WAAW,CAACC,OAAD,EAAkB;AAC3B,UAAMA,OAAN;;AAD2B,yCAHP,sBAGO;;AAAA,yCAFP,uCAEO;;AAG3BC,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4BL,iBAAiB,CAACM,SAA9C;AACA,SAAKC,IAAL,GAAYP,iBAAiB,CAACO,IAA9B;AACD;;AATgD","sourcesContent":["import { TwilioError } from './TwilioError';\n\n/**\n * Error describing that the SDK has entered or is attempting to enter an\n * invalid state.\n *\n * @public\n */\nexport class InvalidStateError extends TwilioError {\n description: string = 'Invalid state error.';\n explanation: string = 'The SDK has entered an invalid state.';\n\n constructor(message: string) {\n super(message);\n\n Object.setPrototypeOf(this, InvalidStateError.prototype);\n this.name = InvalidStateError.name;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/error/TwilioError.js b/lib/commonjs/error/TwilioError.js
new file mode 100644
index 00000000..0a3ffb04
--- /dev/null
+++ b/lib/commonjs/error/TwilioError.js
@@ -0,0 +1,38 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.TwilioError = void 0;
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Generic Twilio error that the SDK will raise when encountering an error. Can
+ * be used to describe backend errors.
+ *
+ * @public
+ */
+class TwilioError extends Error {
+ constructor(message, code) {
+ super(message);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "code", void 0);
+
+ _defineProperty(this, "description", 'Generic Twilio error.');
+
+ _defineProperty(this, "explanation", 'The SDK has encountered an unexpected error.');
+
+ _defineProperty(this, "solutions", []);
+
+ this.code = code;
+ Object.setPrototypeOf(this, TwilioError.prototype);
+ this.name = TwilioError.name;
+ }
+
+}
+
+exports.TwilioError = TwilioError;
+//# sourceMappingURL=TwilioError.js.map
\ No newline at end of file
diff --git a/lib/commonjs/error/TwilioError.js.map b/lib/commonjs/error/TwilioError.js.map
new file mode 100644
index 00000000..f12a99fe
--- /dev/null
+++ b/lib/commonjs/error/TwilioError.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["TwilioError.ts"],"names":["TwilioError","Error","constructor","message","code","Object","setPrototypeOf","prototype","name"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAN,SAA0BC,KAA1B,CAAgC;AAOrCC,EAAAA,WAAW,CAACC,OAAD,EAAkBC,IAAlB,EAAiC;AAC1C,UAAMD,OAAN;;AAD0C,oCANzB,EAMyB;;AAAA;;AAAA,yCAJtB,uBAIsB;;AAAA,yCAHtB,8CAGsB;;AAAA,uCAFtB,EAEsB;;AAG1C,SAAKC,IAAL,GAAYA,IAAZ;AAEAC,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4BN,WAAW,CAACO,SAAxC;AACA,SAAKC,IAAL,GAAYR,WAAW,CAACQ,IAAxB;AACD;;AAdoC","sourcesContent":["/**\n * Generic Twilio error that the SDK will raise when encountering an error. Can\n * be used to describe backend errors.\n *\n * @public\n */\nexport class TwilioError extends Error {\n causes: string[] = [];\n code: number | undefined;\n description: string = 'Generic Twilio error.';\n explanation: string = 'The SDK has encountered an unexpected error.';\n solutions: string[] = [];\n\n constructor(message: string, code?: number) {\n super(message);\n\n this.code = code;\n\n Object.setPrototypeOf(this, TwilioError.prototype);\n this.name = TwilioError.name;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/error/UnsupportedPlatformError.js b/lib/commonjs/error/UnsupportedPlatformError.js
new file mode 100644
index 00000000..4962b743
--- /dev/null
+++ b/lib/commonjs/error/UnsupportedPlatformError.js
@@ -0,0 +1,33 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.UnsupportedPlatformError = void 0;
+
+var _TwilioError = require("./TwilioError");
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Error describing that the an unsupported platform other than Android
+ * or iOS has been detected.
+ *
+ * @public
+ */
+class UnsupportedPlatformError extends _TwilioError.TwilioError {
+ constructor(message) {
+ super(message);
+
+ _defineProperty(this, "description", 'Unsupported platform error.');
+
+ _defineProperty(this, "explanation", 'An unsupported platform has been detected.');
+
+ Object.setPrototypeOf(this, UnsupportedPlatformError.prototype);
+ this.name = UnsupportedPlatformError.name;
+ }
+
+}
+
+exports.UnsupportedPlatformError = UnsupportedPlatformError;
+//# sourceMappingURL=UnsupportedPlatformError.js.map
\ No newline at end of file
diff --git a/lib/commonjs/error/UnsupportedPlatformError.js.map b/lib/commonjs/error/UnsupportedPlatformError.js.map
new file mode 100644
index 00000000..a13b47a4
--- /dev/null
+++ b/lib/commonjs/error/UnsupportedPlatformError.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["UnsupportedPlatformError.ts"],"names":["UnsupportedPlatformError","TwilioError","constructor","message","Object","setPrototypeOf","prototype","name"],"mappings":";;;;;;;AAAA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,wBAAN,SAAuCC,wBAAvC,CAAmD;AAIxDC,EAAAA,WAAW,CAACC,OAAD,EAAkB;AAC3B,UAAMA,OAAN;;AAD2B,yCAHP,6BAGO;;AAAA,yCAFP,4CAEO;;AAG3BC,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4BL,wBAAwB,CAACM,SAArD;AACA,SAAKC,IAAL,GAAYP,wBAAwB,CAACO,IAArC;AACD;;AATuD","sourcesContent":["import { TwilioError } from './TwilioError';\n\n/**\n * Error describing that the an unsupported platform other than Android\n * or iOS has been detected.\n *\n * @public\n */\nexport class UnsupportedPlatformError extends TwilioError {\n description: string = 'Unsupported platform error.';\n explanation: string = 'An unsupported platform has been detected.';\n\n constructor(message: string) {\n super(message);\n\n Object.setPrototypeOf(this, UnsupportedPlatformError.prototype);\n this.name = UnsupportedPlatformError.name;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/error/generated.js b/lib/commonjs/error/generated.js
new file mode 100644
index 00000000..72acd11f
--- /dev/null
+++ b/lib/commonjs/error/generated.js
@@ -0,0 +1,2343 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.errorsByCode = exports.MediaErrors = exports.SignalingErrors = exports.UserMediaErrors = exports.RegistrationErrors = exports.MalformedRequestErrors = exports.GeneralErrors = exports.TwiMLErrors = exports.SIPServerErrors = exports.ServerErrors = exports.ClientErrors = exports.ForbiddenErrors = exports.AuthorizationErrors = void 0;
+
+var _TwilioError = require("./TwilioError");
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * @public
+ * Authorization errors.
+ */
+let AuthorizationErrors;
+/**
+ * @public
+ * Forbidden errors.
+ */
+
+exports.AuthorizationErrors = AuthorizationErrors;
+
+(function (_AuthorizationErrors) {
+ class AccessTokenInvalid extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid access token
+ */
+
+ /**
+ * Twilio was unable to validate your Access Token
+ */
+
+ /**
+ * AccessTokenInvalid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20101);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid access token');
+
+ _defineProperty(this, "explanation", 'Twilio was unable to validate your Access Token');
+
+ _defineProperty(this, "name", 'AccessTokenInvalid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenInvalid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenInvalid = AccessTokenInvalid;
+
+ class AccessTokenHeaderInvalid extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid access token header
+ */
+
+ /**
+ * The header of the Access Token provided to the Twilio API was invalid
+ */
+
+ /**
+ * AccessTokenHeaderInvalid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20102);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid access token header');
+
+ _defineProperty(this, "explanation", 'The header of the Access Token provided to the Twilio API was invalid');
+
+ _defineProperty(this, "name", 'AccessTokenHeaderInvalid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenHeaderInvalid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenHeaderInvalid = AccessTokenHeaderInvalid;
+
+ class AccessTokenIssuerInvalid extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid access token issuer/subject
+ */
+
+ /**
+ * The issuer or subject of the Access Token provided to the Twilio API was invalid
+ */
+
+ /**
+ * AccessTokenIssuerInvalid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20103);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid access token issuer/subject');
+
+ _defineProperty(this, "explanation", 'The issuer or subject of the Access Token provided to the Twilio API was invalid');
+
+ _defineProperty(this, "name", 'AccessTokenIssuerInvalid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenIssuerInvalid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenIssuerInvalid = AccessTokenIssuerInvalid;
+
+ class AccessTokenExpired extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Access token expired or expiration date invalid
+ */
+
+ /**
+ * The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future
+ */
+
+ /**
+ * AccessTokenExpired
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20104);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Access token expired or expiration date invalid');
+
+ _defineProperty(this, "explanation", 'The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future');
+
+ _defineProperty(this, "name", 'AccessTokenExpired');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenExpired.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenExpired = AccessTokenExpired;
+
+ class AccessTokenNotYetValid extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Access token not yet valid
+ */
+
+ /**
+ * The Access Token provided to the Twilio API is not yet valid
+ */
+
+ /**
+ * AccessTokenNotYetValid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20105);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Access token not yet valid');
+
+ _defineProperty(this, "explanation", 'The Access Token provided to the Twilio API is not yet valid');
+
+ _defineProperty(this, "name", 'AccessTokenNotYetValid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenNotYetValid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenNotYetValid = AccessTokenNotYetValid;
+
+ class AccessTokenGrantsInvalid extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid access token grants
+ */
+
+ /**
+ * The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested
+ */
+
+ /**
+ * AccessTokenGrantsInvalid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20106);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid access token grants');
+
+ _defineProperty(this, "explanation", 'The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested');
+
+ _defineProperty(this, "name", 'AccessTokenGrantsInvalid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenGrantsInvalid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenGrantsInvalid = AccessTokenGrantsInvalid;
+
+ class AccessTokenSignatureInvalid extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid access token signature
+ */
+
+ /**
+ * The signature for the Access Token provided was invalid.
+ */
+
+ /**
+ * AccessTokenSignatureInvalid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20107);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid access token signature');
+
+ _defineProperty(this, "explanation", 'The signature for the Access Token provided was invalid.');
+
+ _defineProperty(this, "name", 'AccessTokenSignatureInvalid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenSignatureInvalid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenSignatureInvalid = AccessTokenSignatureInvalid;
+
+ class AuthenticationFailed extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Authentication Failed
+ */
+
+ /**
+ * The Authentication with the provided JWT failed
+ */
+
+ /**
+ * AuthenticationFailed
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20151);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Authentication Failed');
+
+ _defineProperty(this, "explanation", 'The Authentication with the provided JWT failed');
+
+ _defineProperty(this, "name", 'AuthenticationFailed');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AuthenticationFailed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AuthenticationFailed = AuthenticationFailed;
+
+ class ExpirationTimeExceedsMaxTimeAllowed extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Expiration Time Exceeds Maximum Time Allowed
+ */
+
+ /**
+ * The expiration time provided when creating the JWT exceeds the maximum duration allowed
+ */
+
+ /**
+ * ExpirationTimeExceedsMaxTimeAllowed
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20157);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Expiration Time Exceeds Maximum Time Allowed');
+
+ _defineProperty(this, "explanation", 'The expiration time provided when creating the JWT exceeds the maximum duration allowed');
+
+ _defineProperty(this, "name", 'ExpirationTimeExceedsMaxTimeAllowed');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed = ExpirationTimeExceedsMaxTimeAllowed;
+
+ class AuthorizationError extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Authorization error
+ */
+
+ /**
+ * The request requires user authentication. The server understood the request, but is refusing to fulfill it.
+ */
+
+ /**
+ * AuthorizationError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31201);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Authorization error');
+
+ _defineProperty(this, "explanation", 'The request requires user authentication. The server understood the request, but is refusing to fulfill it.');
+
+ _defineProperty(this, "name", 'AuthorizationError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AuthorizationError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AuthorizationError = AuthorizationError;
+
+ class RateExceededError extends _TwilioError.TwilioError {
+ /**
+ * Rate limit exceeded.
+ */
+
+ /**
+ * Rate exceeded authorized limit.
+ */
+
+ /**
+ * The request performed exceeds the authorized limit.
+ */
+
+ /**
+ * RateExceededError
+ */
+
+ /**
+ * Ensure message send rate does not exceed authorized limits.
+ */
+ constructor(message) {
+ super(message, 31206);
+
+ _defineProperty(this, "causes", ['Rate limit exceeded.']);
+
+ _defineProperty(this, "description", 'Rate exceeded authorized limit.');
+
+ _defineProperty(this, "explanation", 'The request performed exceeds the authorized limit.');
+
+ _defineProperty(this, "name", 'RateExceededError');
+
+ _defineProperty(this, "solutions", ['Ensure message send rate does not exceed authorized limits.']);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.RateExceededError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.RateExceededError = RateExceededError;
+
+ class CallMessageEventTypeInvalidError extends _TwilioError.TwilioError {
+ /**
+ * The Call Message Event Type is invalid and is not understood by Twilio Voice.
+ */
+
+ /**
+ * Call Message Event Type is invalid.
+ */
+
+ /**
+ * The Call Message Event Type is invalid and is not understood by Twilio Voice.
+ */
+
+ /**
+ * CallMessageEventTypeInvalidError
+ */
+
+ /**
+ * Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again.
+ */
+ constructor(message) {
+ super(message, 31210);
+
+ _defineProperty(this, "causes", ['The Call Message Event Type is invalid and is not understood by Twilio Voice.']);
+
+ _defineProperty(this, "description", 'Call Message Event Type is invalid.');
+
+ _defineProperty(this, "explanation", 'The Call Message Event Type is invalid and is not understood by Twilio Voice.');
+
+ _defineProperty(this, "name", 'CallMessageEventTypeInvalidError');
+
+ _defineProperty(this, "solutions", ['Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again.']);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.CallMessageEventTypeInvalidError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.CallMessageEventTypeInvalidError = CallMessageEventTypeInvalidError;
+
+ class CallMessageUnexpectedStateError extends _TwilioError.TwilioError {
+ /**
+ * The Call should be at least in the ringing state to subscribe and send Call Message.
+ */
+
+ /**
+ * Call is not in the expected state.
+ */
+
+ /**
+ * The Call should be at least in the ringing state to send Call Message.
+ */
+
+ /**
+ * CallMessageUnexpectedStateError
+ */
+
+ /**
+ * Ensure the Call is at least in the ringing state and the subscription is successful and try again.
+ */
+ constructor(message) {
+ super(message, 31211);
+
+ _defineProperty(this, "causes", ['The Call should be at least in the ringing state to subscribe and send Call Message.']);
+
+ _defineProperty(this, "description", 'Call is not in the expected state.');
+
+ _defineProperty(this, "explanation", 'The Call should be at least in the ringing state to send Call Message.');
+
+ _defineProperty(this, "name", 'CallMessageUnexpectedStateError');
+
+ _defineProperty(this, "solutions", ['Ensure the Call is at least in the ringing state and the subscription is successful and try again.']);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.CallMessageUnexpectedStateError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.CallMessageUnexpectedStateError = CallMessageUnexpectedStateError;
+
+ class PayloadSizeExceededError extends _TwilioError.TwilioError {
+ /**
+ * The payload size of Call Message Event exceeds the authorized limit.
+ */
+
+ /**
+ * Call Message Event Payload size exceeded authorized limit.
+ */
+
+ /**
+ * The request performed to send a Call Message Event exceeds the payload size authorized limit
+ */
+
+ /**
+ * PayloadSizeExceededError
+ */
+
+ /**
+ * Reduce payload size of Call Message Event to be within the authorized limit and try again.
+ */
+ constructor(message) {
+ super(message, 31212);
+
+ _defineProperty(this, "causes", ['The payload size of Call Message Event exceeds the authorized limit.']);
+
+ _defineProperty(this, "description", 'Call Message Event Payload size exceeded authorized limit.');
+
+ _defineProperty(this, "explanation", 'The request performed to send a Call Message Event exceeds the payload size authorized limit');
+
+ _defineProperty(this, "name", 'PayloadSizeExceededError');
+
+ _defineProperty(this, "solutions", ['Reduce payload size of Call Message Event to be within the authorized limit and try again.']);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.PayloadSizeExceededError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.PayloadSizeExceededError = PayloadSizeExceededError;
+
+ class AccessTokenRejected extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Token authentication is rejected by authentication service
+ */
+
+ /**
+ * The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio's specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens.
+ */
+
+ /**
+ * AccessTokenRejected
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 51007);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Token authentication is rejected by authentication service');
+
+ _defineProperty(this, "explanation", 'The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio\'s specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens.');
+
+ _defineProperty(this, "name", 'AccessTokenRejected');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenRejected.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenRejected = AccessTokenRejected;
+})(AuthorizationErrors || (exports.AuthorizationErrors = AuthorizationErrors = {}));
+
+let ForbiddenErrors;
+/**
+ * @public
+ * Client errors.
+ */
+
+exports.ForbiddenErrors = ForbiddenErrors;
+
+(function (_ForbiddenErrors) {
+ class Forbidden extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * 403 Forbidden
+ */
+
+ /**
+ * The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support
+ */
+
+ /**
+ * Forbidden
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20403);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", '403 Forbidden');
+
+ _defineProperty(this, "explanation", 'The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support');
+
+ _defineProperty(this, "name", 'Forbidden');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ForbiddenErrors.Forbidden.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ForbiddenErrors.Forbidden = Forbidden;
+})(ForbiddenErrors || (exports.ForbiddenErrors = ForbiddenErrors = {}));
+
+let ClientErrors;
+/**
+ * @public
+ * Server errors.
+ */
+
+exports.ClientErrors = ClientErrors;
+
+(function (_ClientErrors) {
+ class BadRequest extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Bad Request (HTTP/SIP)
+ */
+
+ /**
+ * The request could not be understood due to malformed syntax.
+ */
+
+ /**
+ * BadRequest
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31400);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Bad Request (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The request could not be understood due to malformed syntax.');
+
+ _defineProperty(this, "name", 'BadRequest');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.BadRequest.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.BadRequest = BadRequest;
+
+ class Forbidden extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Forbidden (HTTP/SIP)
+ */
+
+ /**
+ * The server understood the request, but is refusing to fulfill it.
+ */
+
+ /**
+ * Forbidden
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31403);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Forbidden (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server understood the request, but is refusing to fulfill it.');
+
+ _defineProperty(this, "name", 'Forbidden');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.Forbidden.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.Forbidden = Forbidden;
+
+ class NotFound extends _TwilioError.TwilioError {
+ /**
+ * The outbound call was made to an invalid phone number.
+ * The TwiML application sid is missing a Voice URL.
+ */
+
+ /**
+ * Not Found (HTTP/SIP)
+ */
+
+ /**
+ * The server has not found anything matching the request.
+ */
+
+ /**
+ * NotFound
+ */
+
+ /**
+ * Ensure the phone number dialed is valid.
+ * Ensure the TwiML application is configured correctly with a Voice URL link.
+ */
+ constructor(message) {
+ super(message, 31404);
+
+ _defineProperty(this, "causes", ['The outbound call was made to an invalid phone number.', 'The TwiML application sid is missing a Voice URL.']);
+
+ _defineProperty(this, "description", 'Not Found (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server has not found anything matching the request.');
+
+ _defineProperty(this, "name", 'NotFound');
+
+ _defineProperty(this, "solutions", ['Ensure the phone number dialed is valid.', 'Ensure the TwiML application is configured correctly with a Voice URL link.']);
+
+ Object.setPrototypeOf(this, ClientErrors.NotFound.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.NotFound = NotFound;
+
+ class RequestTimeout extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Request Timeout (HTTP/SIP)
+ */
+
+ /**
+ * A request timeout occurred.
+ */
+
+ /**
+ * RequestTimeout
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31408);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Request Timeout (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'A request timeout occurred.');
+
+ _defineProperty(this, "name", 'RequestTimeout');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.RequestTimeout.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.RequestTimeout = RequestTimeout;
+
+ class Conflict extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Conflict (HTTP)
+ */
+
+ /**
+ * The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress.
+ */
+
+ /**
+ * Conflict
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31409);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Conflict (HTTP)');
+
+ _defineProperty(this, "explanation", 'The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress.');
+
+ _defineProperty(this, "name", 'Conflict');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.Conflict.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.Conflict = Conflict;
+
+ class UpgradeRequired extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Upgrade Required (HTTP)
+ */
+
+ /**
+ * This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK.
+ */
+
+ /**
+ * UpgradeRequired
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31426);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Upgrade Required (HTTP)');
+
+ _defineProperty(this, "explanation", 'This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK.');
+
+ _defineProperty(this, "name", 'UpgradeRequired');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.UpgradeRequired.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.UpgradeRequired = UpgradeRequired;
+
+ class TooManyRequests extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Too Many Requests (HTTP)
+ */
+
+ /**
+ * Too many requests were sent in a given amount of time.
+ */
+
+ /**
+ * TooManyRequests
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31429);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Too Many Requests (HTTP)');
+
+ _defineProperty(this, "explanation", 'Too many requests were sent in a given amount of time.');
+
+ _defineProperty(this, "name", 'TooManyRequests');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.TooManyRequests.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.TooManyRequests = TooManyRequests;
+
+ class TemporarilyUnavailable extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Temporarily Unavailable (SIP)
+ */
+
+ /**
+ * The callee is currently unavailable.
+ */
+
+ /**
+ * TemporarilyUnavailable
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31480);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Temporarily Unavailable (SIP)');
+
+ _defineProperty(this, "explanation", 'The callee is currently unavailable.');
+
+ _defineProperty(this, "name", 'TemporarilyUnavailable');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.TemporarilyUnavailable.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.TemporarilyUnavailable = TemporarilyUnavailable;
+
+ class CallTransactionDoesNotExist extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Call/Transaction Does Not Exist (SIP)
+ */
+
+ /**
+ * The call no longer exists.
+ */
+
+ /**
+ * CallTransactionDoesNotExist
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31481);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Call/Transaction Does Not Exist (SIP)');
+
+ _defineProperty(this, "explanation", 'The call no longer exists.');
+
+ _defineProperty(this, "name", 'CallTransactionDoesNotExist');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.CallTransactionDoesNotExist.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.CallTransactionDoesNotExist = CallTransactionDoesNotExist;
+
+ class AddressIncomplete extends _TwilioError.TwilioError {
+ /**
+ * The outbound call was made with a phone number that has an invalid format.
+ */
+
+ /**
+ * Address Incomplete (SIP)
+ */
+
+ /**
+ * The provided phone number is malformed.
+ */
+
+ /**
+ * AddressIncomplete
+ */
+
+ /**
+ * Ensure the phone number dialed is formatted correctly.
+ */
+ constructor(message) {
+ super(message, 31484);
+
+ _defineProperty(this, "causes", ['The outbound call was made with a phone number that has an invalid format.']);
+
+ _defineProperty(this, "description", 'Address Incomplete (SIP)');
+
+ _defineProperty(this, "explanation", 'The provided phone number is malformed.');
+
+ _defineProperty(this, "name", 'AddressIncomplete');
+
+ _defineProperty(this, "solutions", ['Ensure the phone number dialed is formatted correctly.']);
+
+ Object.setPrototypeOf(this, ClientErrors.AddressIncomplete.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.AddressIncomplete = AddressIncomplete;
+
+ class BusyHere extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Busy Here (SIP)
+ */
+
+ /**
+ * The callee is busy.
+ */
+
+ /**
+ * BusyHere
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31486);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Busy Here (SIP)');
+
+ _defineProperty(this, "explanation", 'The callee is busy.');
+
+ _defineProperty(this, "name", 'BusyHere');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.BusyHere.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.BusyHere = BusyHere;
+
+ class RequestTerminated extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Request Terminated (SIP)
+ */
+
+ /**
+ * The request has terminated as a result of a bye or cancel.
+ */
+
+ /**
+ * RequestTerminated
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31487);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Request Terminated (SIP)');
+
+ _defineProperty(this, "explanation", 'The request has terminated as a result of a bye or cancel.');
+
+ _defineProperty(this, "name", 'RequestTerminated');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.RequestTerminated.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.RequestTerminated = RequestTerminated;
+})(ClientErrors || (exports.ClientErrors = ClientErrors = {}));
+
+let ServerErrors;
+/**
+ * @public
+ * SIPServer errors.
+ */
+
+exports.ServerErrors = ServerErrors;
+
+(function (_ServerErrors) {
+ class InternalServerError extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Internal Server Error (HTTP/SIP)
+ */
+
+ /**
+ * The server could not fulfill the request due to some unexpected condition.
+ */
+
+ /**
+ * InternalServerError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31500);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Internal Server Error (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server could not fulfill the request due to some unexpected condition.');
+
+ _defineProperty(this, "name", 'InternalServerError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ServerErrors.InternalServerError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ServerErrors.InternalServerError = InternalServerError;
+
+ class BadGateway extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Bad Gateway (HTTP/SIP)
+ */
+
+ /**
+ * The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request.
+ */
+
+ /**
+ * BadGateway
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31502);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Bad Gateway (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request.');
+
+ _defineProperty(this, "name", 'BadGateway');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ServerErrors.BadGateway.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ServerErrors.BadGateway = BadGateway;
+
+ class ServiceUnavailable extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Service Unavailable (HTTP/SIP)
+ */
+
+ /**
+ * The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL.
+ */
+
+ /**
+ * ServiceUnavailable
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31503);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Service Unavailable (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL.');
+
+ _defineProperty(this, "name", 'ServiceUnavailable');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ServerErrors.ServiceUnavailable.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ServerErrors.ServiceUnavailable = ServiceUnavailable;
+
+ class GatewayTimeout extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Gateway Timeout (HTTP/SIP)
+ */
+
+ /**
+ * The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.
+ */
+
+ /**
+ * GatewayTimeout
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31504);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Gateway Timeout (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.');
+
+ _defineProperty(this, "name", 'GatewayTimeout');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ServerErrors.GatewayTimeout.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ServerErrors.GatewayTimeout = GatewayTimeout;
+
+ class DNSResolutionError extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * DNS Resolution Error (HTTP/SIP)
+ */
+
+ /**
+ * Could not connect to the server.
+ */
+
+ /**
+ * DNSResolutionError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31530);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'DNS Resolution Error (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'Could not connect to the server.');
+
+ _defineProperty(this, "name", 'DNSResolutionError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ServerErrors.DNSResolutionError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ServerErrors.DNSResolutionError = DNSResolutionError;
+})(ServerErrors || (exports.ServerErrors = ServerErrors = {}));
+
+let SIPServerErrors;
+/**
+ * @public
+ * TwiML errors.
+ */
+
+exports.SIPServerErrors = SIPServerErrors;
+
+(function (_SIPServerErrors) {
+ class BusyEverywhere extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Busy Everywhere (SIP)
+ */
+
+ /**
+ * All possible destinations are busy.
+ */
+
+ /**
+ * BusyEverywhere
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31600);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Busy Everywhere (SIP)');
+
+ _defineProperty(this, "explanation", 'All possible destinations are busy.');
+
+ _defineProperty(this, "name", 'BusyEverywhere');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, SIPServerErrors.BusyEverywhere.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _SIPServerErrors.BusyEverywhere = BusyEverywhere;
+
+ class Decline extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Decline (SIP)
+ */
+
+ /**
+ * The callee does not wish to participate in the call.
+ */
+
+ /**
+ * Decline
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31603);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Decline (SIP)');
+
+ _defineProperty(this, "explanation", 'The callee does not wish to participate in the call.');
+
+ _defineProperty(this, "name", 'Decline');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, SIPServerErrors.Decline.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _SIPServerErrors.Decline = Decline;
+
+ class DoesNotExistAnywhere extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Does Not Exist Anywhere (SIP)
+ */
+
+ /**
+ * The requested callee does not exist anywhere.
+ */
+
+ /**
+ * DoesNotExistAnywhere
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31604);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Does Not Exist Anywhere (SIP)');
+
+ _defineProperty(this, "explanation", 'The requested callee does not exist anywhere.');
+
+ _defineProperty(this, "name", 'DoesNotExistAnywhere');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, SIPServerErrors.DoesNotExistAnywhere.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _SIPServerErrors.DoesNotExistAnywhere = DoesNotExistAnywhere;
+})(SIPServerErrors || (exports.SIPServerErrors = SIPServerErrors = {}));
+
+let TwiMLErrors;
+/**
+ * @public
+ * General errors.
+ */
+
+exports.TwiMLErrors = TwiMLErrors;
+
+(function (_TwiMLErrors) {
+ class InvalidApplicationSid extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid ApplicationSid
+ */
+
+ /**
+ * You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account
+ */
+
+ /**
+ * InvalidApplicationSid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 21218);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid ApplicationSid');
+
+ _defineProperty(this, "explanation", 'You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account');
+
+ _defineProperty(this, "name", 'InvalidApplicationSid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, TwiMLErrors.InvalidApplicationSid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _TwiMLErrors.InvalidApplicationSid = InvalidApplicationSid;
+})(TwiMLErrors || (exports.TwiMLErrors = TwiMLErrors = {}));
+
+let GeneralErrors;
+/**
+ * @public
+ * MalformedRequest errors.
+ */
+
+exports.GeneralErrors = GeneralErrors;
+
+(function (_GeneralErrors) {
+ class ConnectionError extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Connection error
+ */
+
+ /**
+ * A connection error occurred during the call
+ */
+
+ /**
+ * ConnectionError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31005);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Connection error');
+
+ _defineProperty(this, "explanation", 'A connection error occurred during the call');
+
+ _defineProperty(this, "name", 'ConnectionError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, GeneralErrors.ConnectionError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _GeneralErrors.ConnectionError = ConnectionError;
+
+ class CallCancelledError extends _TwilioError.TwilioError {
+ /**
+ * The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity.
+ */
+
+ /**
+ * Call cancelled
+ */
+
+ /**
+ * Unable to answer because the call has ended
+ */
+
+ /**
+ * CallCancelledError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31008);
+
+ _defineProperty(this, "causes", ['The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity.']);
+
+ _defineProperty(this, "description", 'Call cancelled');
+
+ _defineProperty(this, "explanation", 'Unable to answer because the call has ended');
+
+ _defineProperty(this, "name", 'CallCancelledError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, GeneralErrors.CallCancelledError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _GeneralErrors.CallCancelledError = CallCancelledError;
+
+ class TransportError extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Transport error
+ */
+
+ /**
+ * No transport available to send or receive messages
+ */
+
+ /**
+ * TransportError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31009);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Transport error');
+
+ _defineProperty(this, "explanation", 'No transport available to send or receive messages');
+
+ _defineProperty(this, "name", 'TransportError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, GeneralErrors.TransportError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _GeneralErrors.TransportError = TransportError;
+})(GeneralErrors || (exports.GeneralErrors = GeneralErrors = {}));
+
+let MalformedRequestErrors;
+/**
+ * @public
+ * Registration errors.
+ */
+
+exports.MalformedRequestErrors = MalformedRequestErrors;
+
+(function (_MalformedRequestErrors) {
+ class MalformedRequestError extends _TwilioError.TwilioError {
+ /**
+ * Invalid content or MessageType passed to sendMessage method.
+ */
+
+ /**
+ * The request had malformed syntax.
+ */
+
+ /**
+ * The request could not be understood due to malformed syntax.
+ */
+
+ /**
+ * MalformedRequestError
+ */
+
+ /**
+ * Ensure content and MessageType passed to sendMessage method are valid.
+ */
+ constructor(message) {
+ super(message, 31100);
+
+ _defineProperty(this, "causes", ['Invalid content or MessageType passed to sendMessage method.']);
+
+ _defineProperty(this, "description", 'The request had malformed syntax.');
+
+ _defineProperty(this, "explanation", 'The request could not be understood due to malformed syntax.');
+
+ _defineProperty(this, "name", 'MalformedRequestError');
+
+ _defineProperty(this, "solutions", ['Ensure content and MessageType passed to sendMessage method are valid.']);
+
+ Object.setPrototypeOf(this, MalformedRequestErrors.MalformedRequestError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MalformedRequestErrors.MalformedRequestError = MalformedRequestError;
+})(MalformedRequestErrors || (exports.MalformedRequestErrors = MalformedRequestErrors = {}));
+
+let RegistrationErrors;
+/**
+ * @public
+ * UserMedia errors.
+ */
+
+exports.RegistrationErrors = RegistrationErrors;
+
+(function (_RegistrationErrors) {
+ class RegistrationError extends _TwilioError.TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Registration error
+ */
+
+ /**
+ *
+ */
+
+ /**
+ * RegistrationError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31301);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Registration error');
+
+ _defineProperty(this, "explanation", '');
+
+ _defineProperty(this, "name", 'RegistrationError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, RegistrationErrors.RegistrationError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _RegistrationErrors.RegistrationError = RegistrationError;
+
+ class UnsupportedCancelMessageError extends _TwilioError.TwilioError {
+ /**
+ * The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages.
+ */
+
+ /**
+ * Unsupported Cancel Message Error
+ */
+
+ /**
+ * This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK.
+ */
+
+ /**
+ * UnsupportedCancelMessageError
+ */
+
+ /**
+ * The application must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS to stop receiving cancel push notification messages.
+ */
+ constructor(message) {
+ super(message, 31302);
+
+ _defineProperty(this, "causes", ['The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages.']);
+
+ _defineProperty(this, "description", 'Unsupported Cancel Message Error');
+
+ _defineProperty(this, "explanation", 'This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK.');
+
+ _defineProperty(this, "name", 'UnsupportedCancelMessageError');
+
+ _defineProperty(this, "solutions", ['The application must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS to stop receiving cancel push notification messages.']);
+
+ Object.setPrototypeOf(this, RegistrationErrors.UnsupportedCancelMessageError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _RegistrationErrors.UnsupportedCancelMessageError = UnsupportedCancelMessageError;
+})(RegistrationErrors || (exports.RegistrationErrors = RegistrationErrors = {}));
+
+let UserMediaErrors;
+/**
+ * @public
+ * Signaling errors.
+ */
+
+exports.UserMediaErrors = UserMediaErrors;
+
+(function (_UserMediaErrors) {
+ class PermissionDeniedError extends _TwilioError.TwilioError {
+ /**
+ * The user denied the getUserMedia request.
+ * The browser denied the getUserMedia request.
+ * The application has not been configured with the proper permissions.
+ */
+
+ /**
+ * UserMedia Permission Denied Error
+ */
+
+ /**
+ * The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio.
+ */
+
+ /**
+ * PermissionDeniedError
+ */
+
+ /**
+ * The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser.
+ * The user should to verify that the browser has permission to access the microphone at this address.
+ * The user should ensure that the proper permissions have been granted in the mobile device OS.
+ */
+ constructor(message) {
+ super(message, 31401);
+
+ _defineProperty(this, "causes", ['The user denied the getUserMedia request.', 'The browser denied the getUserMedia request.', 'The application has not been configured with the proper permissions.']);
+
+ _defineProperty(this, "description", 'UserMedia Permission Denied Error');
+
+ _defineProperty(this, "explanation", 'The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio.');
+
+ _defineProperty(this, "name", 'PermissionDeniedError');
+
+ _defineProperty(this, "solutions", ['The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser.', 'The user should to verify that the browser has permission to access the microphone at this address.', 'The user should ensure that the proper permissions have been granted in the mobile device OS.']);
+
+ Object.setPrototypeOf(this, UserMediaErrors.PermissionDeniedError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _UserMediaErrors.PermissionDeniedError = PermissionDeniedError;
+})(UserMediaErrors || (exports.UserMediaErrors = UserMediaErrors = {}));
+
+let SignalingErrors;
+/**
+ * @public
+ * Media errors.
+ */
+
+exports.SignalingErrors = SignalingErrors;
+
+(function (_SignalingErrors) {
+ class ConnectionDisconnected extends _TwilioError.TwilioError {
+ /**
+ * The device running your application lost its Internet connection.
+ */
+
+ /**
+ * Signaling connection disconnected
+ */
+
+ /**
+ * Raised whenever the signaling connection is unexpectedly disconnected.
+ */
+
+ /**
+ * ConnectionDisconnected
+ */
+
+ /**
+ * Ensure the device running your application has access to a stable Internet connection.
+ */
+ constructor(message) {
+ super(message, 53001);
+
+ _defineProperty(this, "causes", ['The device running your application lost its Internet connection.']);
+
+ _defineProperty(this, "description", 'Signaling connection disconnected');
+
+ _defineProperty(this, "explanation", 'Raised whenever the signaling connection is unexpectedly disconnected.');
+
+ _defineProperty(this, "name", 'ConnectionDisconnected');
+
+ _defineProperty(this, "solutions", ['Ensure the device running your application has access to a stable Internet connection.']);
+
+ Object.setPrototypeOf(this, SignalingErrors.ConnectionDisconnected.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _SignalingErrors.ConnectionDisconnected = ConnectionDisconnected;
+})(SignalingErrors || (exports.SignalingErrors = SignalingErrors = {}));
+
+let MediaErrors;
+/**
+ * @internal
+ */
+
+exports.MediaErrors = MediaErrors;
+
+(function (_MediaErrors) {
+ class ClientLocalDescFailed extends _TwilioError.TwilioError {
+ /**
+ * The Client may not be using a supported WebRTC implementation.
+ * The Client may not have the necessary resources to create or apply a new media description.
+ */
+
+ /**
+ * Client is unable to create or apply a local media description
+ */
+
+ /**
+ * Raised whenever a Client is unable to create or apply a local media description.
+ */
+
+ /**
+ * ClientLocalDescFailed
+ */
+
+ /**
+ * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+ */
+ constructor(message) {
+ super(message, 53400);
+
+ _defineProperty(this, "causes", ['The Client may not be using a supported WebRTC implementation.', 'The Client may not have the necessary resources to create or apply a new media description.']);
+
+ _defineProperty(this, "description", 'Client is unable to create or apply a local media description');
+
+ _defineProperty(this, "explanation", 'Raised whenever a Client is unable to create or apply a local media description.');
+
+ _defineProperty(this, "name", 'ClientLocalDescFailed');
+
+ _defineProperty(this, "solutions", ['If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.']);
+
+ Object.setPrototypeOf(this, MediaErrors.ClientLocalDescFailed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.ClientLocalDescFailed = ClientLocalDescFailed;
+
+ class ServerLocalDescFailed extends _TwilioError.TwilioError {
+ /**
+ * A server-side error has occurred.
+ */
+
+ /**
+ * Server is unable to create or apply a local media description
+ */
+
+ /**
+ * Raised whenever the Server is unable to create or apply a local media description.
+ */
+
+ /**
+ * ServerLocalDescFailed
+ */
+
+ /**
+ * If the problem persists, try connecting to another region.
+ */
+ constructor(message) {
+ super(message, 53401);
+
+ _defineProperty(this, "causes", ['A server-side error has occurred.']);
+
+ _defineProperty(this, "description", 'Server is unable to create or apply a local media description');
+
+ _defineProperty(this, "explanation", 'Raised whenever the Server is unable to create or apply a local media description.');
+
+ _defineProperty(this, "name", 'ServerLocalDescFailed');
+
+ _defineProperty(this, "solutions", ['If the problem persists, try connecting to another region.']);
+
+ Object.setPrototypeOf(this, MediaErrors.ServerLocalDescFailed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.ServerLocalDescFailed = ServerLocalDescFailed;
+
+ class ClientRemoteDescFailed extends _TwilioError.TwilioError {
+ /**
+ * The Client may not be using a supported WebRTC implementation.
+ * The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation.
+ * The Client may not have the necessary resources to apply a new media description.
+ */
+
+ /**
+ * Client is unable to apply a remote media description
+ */
+
+ /**
+ * Raised whenever the Client receives a remote media description but is unable to apply it.
+ */
+
+ /**
+ * ClientRemoteDescFailed
+ */
+
+ /**
+ * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+ */
+ constructor(message) {
+ super(message, 53402);
+
+ _defineProperty(this, "causes", ['The Client may not be using a supported WebRTC implementation.', 'The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation.', 'The Client may not have the necessary resources to apply a new media description.']);
+
+ _defineProperty(this, "description", 'Client is unable to apply a remote media description');
+
+ _defineProperty(this, "explanation", 'Raised whenever the Client receives a remote media description but is unable to apply it.');
+
+ _defineProperty(this, "name", 'ClientRemoteDescFailed');
+
+ _defineProperty(this, "solutions", ['If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.']);
+
+ Object.setPrototypeOf(this, MediaErrors.ClientRemoteDescFailed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.ClientRemoteDescFailed = ClientRemoteDescFailed;
+
+ class ServerRemoteDescFailed extends _TwilioError.TwilioError {
+ /**
+ * The Client may not be using a supported WebRTC implementation.
+ * The Client may not have the necessary resources to apply a new media description.
+ * A Server-side error may have caused the Server to generate an invalid media description.
+ */
+
+ /**
+ * Server is unable to apply a remote media description
+ */
+
+ /**
+ * Raised whenever the Server receives a remote media description but is unable to apply it.
+ */
+
+ /**
+ * ServerRemoteDescFailed
+ */
+
+ /**
+ * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+ * If the problem persists, try connecting to another region.
+ */
+ constructor(message) {
+ super(message, 53403);
+
+ _defineProperty(this, "causes", ['The Client may not be using a supported WebRTC implementation.', 'The Client may not have the necessary resources to apply a new media description.', 'A Server-side error may have caused the Server to generate an invalid media description.']);
+
+ _defineProperty(this, "description", 'Server is unable to apply a remote media description');
+
+ _defineProperty(this, "explanation", 'Raised whenever the Server receives a remote media description but is unable to apply it.');
+
+ _defineProperty(this, "name", 'ServerRemoteDescFailed');
+
+ _defineProperty(this, "solutions", ['If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.', 'If the problem persists, try connecting to another region.']);
+
+ Object.setPrototypeOf(this, MediaErrors.ServerRemoteDescFailed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.ServerRemoteDescFailed = ServerRemoteDescFailed;
+
+ class NoSupportedCodec extends _TwilioError.TwilioError {
+ /**
+ * The C++ SDK was built without the recommended set of codecs.
+ * The JavaScript SDK is running in a browser that does not implement the recommended set of codecs.
+ */
+
+ /**
+ * No supported codec
+ */
+
+ /**
+ * Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.
+ */
+
+ /**
+ * NoSupportedCodec
+ */
+
+ /**
+ * If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs.
+ * If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser.
+ */
+ constructor(message) {
+ super(message, 53404);
+
+ _defineProperty(this, "causes", ['The C++ SDK was built without the recommended set of codecs.', 'The JavaScript SDK is running in a browser that does not implement the recommended set of codecs.']);
+
+ _defineProperty(this, "description", 'No supported codec');
+
+ _defineProperty(this, "explanation", 'Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.');
+
+ _defineProperty(this, "name", 'NoSupportedCodec');
+
+ _defineProperty(this, "solutions", ['If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs.', 'If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser.']);
+
+ Object.setPrototypeOf(this, MediaErrors.NoSupportedCodec.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.NoSupportedCodec = NoSupportedCodec;
+
+ class ConnectionError extends _TwilioError.TwilioError {
+ /**
+ * The Client was unable to establish a media connection.
+ * A media connection which was active failed liveliness checks.
+ */
+
+ /**
+ * Media connection failed
+ */
+
+ /**
+ * Raised by the Client or Server whenever a media connection fails.
+ */
+
+ /**
+ * ConnectionError
+ */
+
+ /**
+ * If the problem persists, try connecting to another region.
+ * Check your Client's network connectivity.
+ * If you've provided custom ICE Servers then ensure that the URLs and credentials are valid.
+ */
+ constructor(message) {
+ super(message, 53405);
+
+ _defineProperty(this, "causes", ['The Client was unable to establish a media connection.', 'A media connection which was active failed liveliness checks.']);
+
+ _defineProperty(this, "description", 'Media connection failed');
+
+ _defineProperty(this, "explanation", 'Raised by the Client or Server whenever a media connection fails.');
+
+ _defineProperty(this, "name", 'ConnectionError');
+
+ _defineProperty(this, "solutions", ['If the problem persists, try connecting to another region.', 'Check your Client\'s network connectivity.', 'If you\'ve provided custom ICE Servers then ensure that the URLs and credentials are valid.']);
+
+ Object.setPrototypeOf(this, MediaErrors.ConnectionError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.ConnectionError = ConnectionError;
+
+ class MediaDtlsTransportFailedError extends _TwilioError.TwilioError {
+ /**
+ * One or both of the DTLS peers have an invalid certificate.
+ * One or both of the DTLS peers have an outdated version of DTLS.
+ * One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake.
+ */
+
+ /**
+ * The media connection failed due to DTLS handshake failure
+ */
+
+ /**
+ * There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.
+ */
+
+ /**
+ * MediaDtlsTransportFailedError
+ */
+
+ /**
+ * Ensure that your certificate is valid.
+ * Ensure that you have a stable internet connection.
+ * Ensure that the browser or the Mobile SDK supports newer versions of DTLS.
+ */
+ constructor(message) {
+ super(message, 53407);
+
+ _defineProperty(this, "causes", ['One or both of the DTLS peers have an invalid certificate.', 'One or both of the DTLS peers have an outdated version of DTLS.', 'One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake.']);
+
+ _defineProperty(this, "description", 'The media connection failed due to DTLS handshake failure');
+
+ _defineProperty(this, "explanation", 'There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.');
+
+ _defineProperty(this, "name", 'MediaDtlsTransportFailedError');
+
+ _defineProperty(this, "solutions", ['Ensure that your certificate is valid.', 'Ensure that you have a stable internet connection.', 'Ensure that the browser or the Mobile SDK supports newer versions of DTLS.']);
+
+ Object.setPrototypeOf(this, MediaErrors.MediaDtlsTransportFailedError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.MediaDtlsTransportFailedError = MediaDtlsTransportFailedError;
+})(MediaErrors || (exports.MediaErrors = MediaErrors = {}));
+
+const errorsByCode = new Map([[20101, AuthorizationErrors.AccessTokenInvalid], [20102, AuthorizationErrors.AccessTokenHeaderInvalid], [20103, AuthorizationErrors.AccessTokenIssuerInvalid], [20104, AuthorizationErrors.AccessTokenExpired], [20105, AuthorizationErrors.AccessTokenNotYetValid], [20106, AuthorizationErrors.AccessTokenGrantsInvalid], [20107, AuthorizationErrors.AccessTokenSignatureInvalid], [20151, AuthorizationErrors.AuthenticationFailed], [20157, AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed], [20403, ForbiddenErrors.Forbidden], [21218, TwiMLErrors.InvalidApplicationSid], [31005, GeneralErrors.ConnectionError], [31008, GeneralErrors.CallCancelledError], [31009, GeneralErrors.TransportError], [31100, MalformedRequestErrors.MalformedRequestError], [31201, AuthorizationErrors.AuthorizationError], [31206, AuthorizationErrors.RateExceededError], [31210, AuthorizationErrors.CallMessageEventTypeInvalidError], [31211, AuthorizationErrors.CallMessageUnexpectedStateError], [31212, AuthorizationErrors.PayloadSizeExceededError], [31301, RegistrationErrors.RegistrationError], [31302, RegistrationErrors.UnsupportedCancelMessageError], [31400, ClientErrors.BadRequest], [31401, UserMediaErrors.PermissionDeniedError], [31403, ClientErrors.Forbidden], [31404, ClientErrors.NotFound], [31408, ClientErrors.RequestTimeout], [31409, ClientErrors.Conflict], [31426, ClientErrors.UpgradeRequired], [31429, ClientErrors.TooManyRequests], [31480, ClientErrors.TemporarilyUnavailable], [31481, ClientErrors.CallTransactionDoesNotExist], [31484, ClientErrors.AddressIncomplete], [31486, ClientErrors.BusyHere], [31487, ClientErrors.RequestTerminated], [31500, ServerErrors.InternalServerError], [31502, ServerErrors.BadGateway], [31503, ServerErrors.ServiceUnavailable], [31504, ServerErrors.GatewayTimeout], [31530, ServerErrors.DNSResolutionError], [31600, SIPServerErrors.BusyEverywhere], [31603, SIPServerErrors.Decline], [31604, SIPServerErrors.DoesNotExistAnywhere], [51007, AuthorizationErrors.AccessTokenRejected], [53001, SignalingErrors.ConnectionDisconnected], [53400, MediaErrors.ClientLocalDescFailed], [53401, MediaErrors.ServerLocalDescFailed], [53402, MediaErrors.ClientRemoteDescFailed], [53403, MediaErrors.ServerRemoteDescFailed], [53404, MediaErrors.NoSupportedCodec], [53405, MediaErrors.ConnectionError], [53407, MediaErrors.MediaDtlsTransportFailedError]]);
+exports.errorsByCode = errorsByCode;
+Object.freeze(errorsByCode);
+//# sourceMappingURL=generated.js.map
\ No newline at end of file
diff --git a/lib/commonjs/error/generated.js.map b/lib/commonjs/error/generated.js.map
new file mode 100644
index 00000000..e9dc1ad8
--- /dev/null
+++ b/lib/commonjs/error/generated.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["generated.ts"],"names":["AccessTokenInvalid","TwilioError","constructor","message","Object","setPrototypeOf","AuthorizationErrors","prototype","msg","explanation","name","code","AccessTokenHeaderInvalid","AccessTokenIssuerInvalid","AccessTokenExpired","AccessTokenNotYetValid","AccessTokenGrantsInvalid","AccessTokenSignatureInvalid","AuthenticationFailed","ExpirationTimeExceedsMaxTimeAllowed","AuthorizationError","RateExceededError","CallMessageEventTypeInvalidError","CallMessageUnexpectedStateError","PayloadSizeExceededError","AccessTokenRejected","Forbidden","ForbiddenErrors","BadRequest","ClientErrors","NotFound","RequestTimeout","Conflict","UpgradeRequired","TooManyRequests","TemporarilyUnavailable","CallTransactionDoesNotExist","AddressIncomplete","BusyHere","RequestTerminated","InternalServerError","ServerErrors","BadGateway","ServiceUnavailable","GatewayTimeout","DNSResolutionError","BusyEverywhere","SIPServerErrors","Decline","DoesNotExistAnywhere","InvalidApplicationSid","TwiMLErrors","ConnectionError","GeneralErrors","CallCancelledError","TransportError","MalformedRequestError","MalformedRequestErrors","RegistrationError","RegistrationErrors","UnsupportedCancelMessageError","PermissionDeniedError","UserMediaErrors","ConnectionDisconnected","SignalingErrors","ClientLocalDescFailed","MediaErrors","ServerLocalDescFailed","ClientRemoteDescFailed","ServerRemoteDescFailed","NoSupportedCodec","MediaDtlsTransportFailedError","errorsByCode","Map","freeze"],"mappings":"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","sourcesContent":["/**\n * This is a generated file. Any modifications here will be overwritten.\n * See scripts/errors.js.\n */\nimport { TwilioError } from './TwilioError';\n\n/**\n * @public\n * Authorization errors.\n */\nexport namespace AuthorizationErrors {\n /**\n * @public\n * AuthorizationErrors.AccessTokenInvalid error.\n * Error code `20101`.\n */\n export class AccessTokenInvalid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid access token\n */\n description: string = 'Invalid access token';\n /**\n * Twilio was unable to validate your Access Token\n */\n explanation: string = 'Twilio was unable to validate your Access Token';\n /**\n * AccessTokenInvalid\n */\n name: string = 'AccessTokenInvalid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20101);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenInvalid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenHeaderInvalid error.\n * Error code `20102`.\n */\n export class AccessTokenHeaderInvalid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid access token header\n */\n description: string = 'Invalid access token header';\n /**\n * The header of the Access Token provided to the Twilio API was invalid\n */\n explanation: string = 'The header of the Access Token provided to the Twilio API was invalid';\n /**\n * AccessTokenHeaderInvalid\n */\n name: string = 'AccessTokenHeaderInvalid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20102);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenHeaderInvalid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenIssuerInvalid error.\n * Error code `20103`.\n */\n export class AccessTokenIssuerInvalid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid access token issuer/subject\n */\n description: string = 'Invalid access token issuer/subject';\n /**\n * The issuer or subject of the Access Token provided to the Twilio API was invalid\n */\n explanation: string = 'The issuer or subject of the Access Token provided to the Twilio API was invalid';\n /**\n * AccessTokenIssuerInvalid\n */\n name: string = 'AccessTokenIssuerInvalid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20103);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenIssuerInvalid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenExpired error.\n * Error code `20104`.\n */\n export class AccessTokenExpired extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Access token expired or expiration date invalid\n */\n description: string = 'Access token expired or expiration date invalid';\n /**\n * The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future\n */\n explanation: string = 'The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future';\n /**\n * AccessTokenExpired\n */\n name: string = 'AccessTokenExpired';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20104);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenExpired.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenNotYetValid error.\n * Error code `20105`.\n */\n export class AccessTokenNotYetValid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Access token not yet valid\n */\n description: string = 'Access token not yet valid';\n /**\n * The Access Token provided to the Twilio API is not yet valid\n */\n explanation: string = 'The Access Token provided to the Twilio API is not yet valid';\n /**\n * AccessTokenNotYetValid\n */\n name: string = 'AccessTokenNotYetValid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20105);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenNotYetValid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenGrantsInvalid error.\n * Error code `20106`.\n */\n export class AccessTokenGrantsInvalid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid access token grants\n */\n description: string = 'Invalid access token grants';\n /**\n * The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested\n */\n explanation: string = 'The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested';\n /**\n * AccessTokenGrantsInvalid\n */\n name: string = 'AccessTokenGrantsInvalid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20106);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenGrantsInvalid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenSignatureInvalid error.\n * Error code `20107`.\n */\n export class AccessTokenSignatureInvalid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid access token signature\n */\n description: string = 'Invalid access token signature';\n /**\n * The signature for the Access Token provided was invalid.\n */\n explanation: string = 'The signature for the Access Token provided was invalid.';\n /**\n * AccessTokenSignatureInvalid\n */\n name: string = 'AccessTokenSignatureInvalid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20107);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenSignatureInvalid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AuthenticationFailed error.\n * Error code `20151`.\n */\n export class AuthenticationFailed extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Authentication Failed\n */\n description: string = 'Authentication Failed';\n /**\n * The Authentication with the provided JWT failed\n */\n explanation: string = 'The Authentication with the provided JWT failed';\n /**\n * AuthenticationFailed\n */\n name: string = 'AuthenticationFailed';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20151);\n Object.setPrototypeOf(this, AuthorizationErrors.AuthenticationFailed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed error.\n * Error code `20157`.\n */\n export class ExpirationTimeExceedsMaxTimeAllowed extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Expiration Time Exceeds Maximum Time Allowed\n */\n description: string = 'Expiration Time Exceeds Maximum Time Allowed';\n /**\n * The expiration time provided when creating the JWT exceeds the maximum duration allowed\n */\n explanation: string = 'The expiration time provided when creating the JWT exceeds the maximum duration allowed';\n /**\n * ExpirationTimeExceedsMaxTimeAllowed\n */\n name: string = 'ExpirationTimeExceedsMaxTimeAllowed';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20157);\n Object.setPrototypeOf(this, AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AuthorizationError error.\n * Error code `31201`.\n */\n export class AuthorizationError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Authorization error\n */\n description: string = 'Authorization error';\n /**\n * The request requires user authentication. The server understood the request, but is refusing to fulfill it.\n */\n explanation: string = 'The request requires user authentication. The server understood the request, but is refusing to fulfill it.';\n /**\n * AuthorizationError\n */\n name: string = 'AuthorizationError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31201);\n Object.setPrototypeOf(this, AuthorizationErrors.AuthorizationError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.RateExceededError error.\n * Error code `31206`.\n */\n export class RateExceededError extends TwilioError {\n /**\n * Rate limit exceeded.\n */\n causes: string[] = [\n 'Rate limit exceeded.',\n ];\n /**\n * Rate exceeded authorized limit.\n */\n description: string = 'Rate exceeded authorized limit.';\n /**\n * The request performed exceeds the authorized limit.\n */\n explanation: string = 'The request performed exceeds the authorized limit.';\n /**\n * RateExceededError\n */\n name: string = 'RateExceededError';\n /**\n * Ensure message send rate does not exceed authorized limits.\n */\n solutions: string[] = [\n 'Ensure message send rate does not exceed authorized limits.',\n ];\n\n constructor(message: string) {\n super(message, 31206);\n Object.setPrototypeOf(this, AuthorizationErrors.RateExceededError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.CallMessageEventTypeInvalidError error.\n * Error code `31210`.\n */\n export class CallMessageEventTypeInvalidError extends TwilioError {\n /**\n * The Call Message Event Type is invalid and is not understood by Twilio Voice.\n */\n causes: string[] = [\n 'The Call Message Event Type is invalid and is not understood by Twilio Voice.',\n ];\n /**\n * Call Message Event Type is invalid.\n */\n description: string = 'Call Message Event Type is invalid.';\n /**\n * The Call Message Event Type is invalid and is not understood by Twilio Voice.\n */\n explanation: string = 'The Call Message Event Type is invalid and is not understood by Twilio Voice.';\n /**\n * CallMessageEventTypeInvalidError\n */\n name: string = 'CallMessageEventTypeInvalidError';\n /**\n * Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again.\n */\n solutions: string[] = [\n 'Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again.',\n ];\n\n constructor(message: string) {\n super(message, 31210);\n Object.setPrototypeOf(this, AuthorizationErrors.CallMessageEventTypeInvalidError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.CallMessageUnexpectedStateError error.\n * Error code `31211`.\n */\n export class CallMessageUnexpectedStateError extends TwilioError {\n /**\n * The Call should be at least in the ringing state to subscribe and send Call Message.\n */\n causes: string[] = [\n 'The Call should be at least in the ringing state to subscribe and send Call Message.',\n ];\n /**\n * Call is not in the expected state.\n */\n description: string = 'Call is not in the expected state.';\n /**\n * The Call should be at least in the ringing state to send Call Message.\n */\n explanation: string = 'The Call should be at least in the ringing state to send Call Message.';\n /**\n * CallMessageUnexpectedStateError\n */\n name: string = 'CallMessageUnexpectedStateError';\n /**\n * Ensure the Call is at least in the ringing state and the subscription is successful and try again.\n */\n solutions: string[] = [\n 'Ensure the Call is at least in the ringing state and the subscription is successful and try again.',\n ];\n\n constructor(message: string) {\n super(message, 31211);\n Object.setPrototypeOf(this, AuthorizationErrors.CallMessageUnexpectedStateError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.PayloadSizeExceededError error.\n * Error code `31212`.\n */\n export class PayloadSizeExceededError extends TwilioError {\n /**\n * The payload size of Call Message Event exceeds the authorized limit.\n */\n causes: string[] = [\n 'The payload size of Call Message Event exceeds the authorized limit.',\n ];\n /**\n * Call Message Event Payload size exceeded authorized limit.\n */\n description: string = 'Call Message Event Payload size exceeded authorized limit.';\n /**\n * The request performed to send a Call Message Event exceeds the payload size authorized limit\n */\n explanation: string = 'The request performed to send a Call Message Event exceeds the payload size authorized limit';\n /**\n * PayloadSizeExceededError\n */\n name: string = 'PayloadSizeExceededError';\n /**\n * Reduce payload size of Call Message Event to be within the authorized limit and try again.\n */\n solutions: string[] = [\n 'Reduce payload size of Call Message Event to be within the authorized limit and try again.',\n ];\n\n constructor(message: string) {\n super(message, 31212);\n Object.setPrototypeOf(this, AuthorizationErrors.PayloadSizeExceededError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenRejected error.\n * Error code `51007`.\n */\n export class AccessTokenRejected extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Token authentication is rejected by authentication service\n */\n description: string = 'Token authentication is rejected by authentication service';\n /**\n * The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio's specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens.\n */\n explanation: string = 'The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio\\'s specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens.';\n /**\n * AccessTokenRejected\n */\n name: string = 'AccessTokenRejected';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 51007);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenRejected.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Forbidden errors.\n */\nexport namespace ForbiddenErrors {\n /**\n * @public\n * ForbiddenErrors.Forbidden error.\n * Error code `20403`.\n */\n export class Forbidden extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * 403 Forbidden\n */\n description: string = '403 Forbidden';\n /**\n * The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support\n */\n explanation: string = 'The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support';\n /**\n * Forbidden\n */\n name: string = 'Forbidden';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20403);\n Object.setPrototypeOf(this, ForbiddenErrors.Forbidden.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Client errors.\n */\nexport namespace ClientErrors {\n /**\n * @public\n * ClientErrors.BadRequest error.\n * Error code `31400`.\n */\n export class BadRequest extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Bad Request (HTTP/SIP)\n */\n description: string = 'Bad Request (HTTP/SIP)';\n /**\n * The request could not be understood due to malformed syntax.\n */\n explanation: string = 'The request could not be understood due to malformed syntax.';\n /**\n * BadRequest\n */\n name: string = 'BadRequest';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31400);\n Object.setPrototypeOf(this, ClientErrors.BadRequest.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.Forbidden error.\n * Error code `31403`.\n */\n export class Forbidden extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Forbidden (HTTP/SIP)\n */\n description: string = 'Forbidden (HTTP/SIP)';\n /**\n * The server understood the request, but is refusing to fulfill it.\n */\n explanation: string = 'The server understood the request, but is refusing to fulfill it.';\n /**\n * Forbidden\n */\n name: string = 'Forbidden';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31403);\n Object.setPrototypeOf(this, ClientErrors.Forbidden.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.NotFound error.\n * Error code `31404`.\n */\n export class NotFound extends TwilioError {\n /**\n * The outbound call was made to an invalid phone number.\n * The TwiML application sid is missing a Voice URL.\n */\n causes: string[] = [\n 'The outbound call was made to an invalid phone number.',\n 'The TwiML application sid is missing a Voice URL.',\n ];\n /**\n * Not Found (HTTP/SIP)\n */\n description: string = 'Not Found (HTTP/SIP)';\n /**\n * The server has not found anything matching the request.\n */\n explanation: string = 'The server has not found anything matching the request.';\n /**\n * NotFound\n */\n name: string = 'NotFound';\n /**\n * Ensure the phone number dialed is valid.\n * Ensure the TwiML application is configured correctly with a Voice URL link.\n */\n solutions: string[] = [\n 'Ensure the phone number dialed is valid.',\n 'Ensure the TwiML application is configured correctly with a Voice URL link.',\n ];\n\n constructor(message: string) {\n super(message, 31404);\n Object.setPrototypeOf(this, ClientErrors.NotFound.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.RequestTimeout error.\n * Error code `31408`.\n */\n export class RequestTimeout extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Request Timeout (HTTP/SIP)\n */\n description: string = 'Request Timeout (HTTP/SIP)';\n /**\n * A request timeout occurred.\n */\n explanation: string = 'A request timeout occurred.';\n /**\n * RequestTimeout\n */\n name: string = 'RequestTimeout';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31408);\n Object.setPrototypeOf(this, ClientErrors.RequestTimeout.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.Conflict error.\n * Error code `31409`.\n */\n export class Conflict extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Conflict (HTTP)\n */\n description: string = 'Conflict (HTTP)';\n /**\n * The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress.\n */\n explanation: string = 'The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress.';\n /**\n * Conflict\n */\n name: string = 'Conflict';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31409);\n Object.setPrototypeOf(this, ClientErrors.Conflict.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.UpgradeRequired error.\n * Error code `31426`.\n */\n export class UpgradeRequired extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Upgrade Required (HTTP)\n */\n description: string = 'Upgrade Required (HTTP)';\n /**\n * This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK.\n */\n explanation: string = 'This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK.';\n /**\n * UpgradeRequired\n */\n name: string = 'UpgradeRequired';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31426);\n Object.setPrototypeOf(this, ClientErrors.UpgradeRequired.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.TooManyRequests error.\n * Error code `31429`.\n */\n export class TooManyRequests extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Too Many Requests (HTTP)\n */\n description: string = 'Too Many Requests (HTTP)';\n /**\n * Too many requests were sent in a given amount of time.\n */\n explanation: string = 'Too many requests were sent in a given amount of time.';\n /**\n * TooManyRequests\n */\n name: string = 'TooManyRequests';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31429);\n Object.setPrototypeOf(this, ClientErrors.TooManyRequests.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.TemporarilyUnavailable error.\n * Error code `31480`.\n */\n export class TemporarilyUnavailable extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Temporarily Unavailable (SIP)\n */\n description: string = 'Temporarily Unavailable (SIP)';\n /**\n * The callee is currently unavailable.\n */\n explanation: string = 'The callee is currently unavailable.';\n /**\n * TemporarilyUnavailable\n */\n name: string = 'TemporarilyUnavailable';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31480);\n Object.setPrototypeOf(this, ClientErrors.TemporarilyUnavailable.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.CallTransactionDoesNotExist error.\n * Error code `31481`.\n */\n export class CallTransactionDoesNotExist extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Call/Transaction Does Not Exist (SIP)\n */\n description: string = 'Call/Transaction Does Not Exist (SIP)';\n /**\n * The call no longer exists.\n */\n explanation: string = 'The call no longer exists.';\n /**\n * CallTransactionDoesNotExist\n */\n name: string = 'CallTransactionDoesNotExist';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31481);\n Object.setPrototypeOf(this, ClientErrors.CallTransactionDoesNotExist.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.AddressIncomplete error.\n * Error code `31484`.\n */\n export class AddressIncomplete extends TwilioError {\n /**\n * The outbound call was made with a phone number that has an invalid format.\n */\n causes: string[] = [\n 'The outbound call was made with a phone number that has an invalid format.',\n ];\n /**\n * Address Incomplete (SIP)\n */\n description: string = 'Address Incomplete (SIP)';\n /**\n * The provided phone number is malformed.\n */\n explanation: string = 'The provided phone number is malformed.';\n /**\n * AddressIncomplete\n */\n name: string = 'AddressIncomplete';\n /**\n * Ensure the phone number dialed is formatted correctly.\n */\n solutions: string[] = [\n 'Ensure the phone number dialed is formatted correctly.',\n ];\n\n constructor(message: string) {\n super(message, 31484);\n Object.setPrototypeOf(this, ClientErrors.AddressIncomplete.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.BusyHere error.\n * Error code `31486`.\n */\n export class BusyHere extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Busy Here (SIP)\n */\n description: string = 'Busy Here (SIP)';\n /**\n * The callee is busy.\n */\n explanation: string = 'The callee is busy.';\n /**\n * BusyHere\n */\n name: string = 'BusyHere';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31486);\n Object.setPrototypeOf(this, ClientErrors.BusyHere.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.RequestTerminated error.\n * Error code `31487`.\n */\n export class RequestTerminated extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Request Terminated (SIP)\n */\n description: string = 'Request Terminated (SIP)';\n /**\n * The request has terminated as a result of a bye or cancel.\n */\n explanation: string = 'The request has terminated as a result of a bye or cancel.';\n /**\n * RequestTerminated\n */\n name: string = 'RequestTerminated';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31487);\n Object.setPrototypeOf(this, ClientErrors.RequestTerminated.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Server errors.\n */\nexport namespace ServerErrors {\n /**\n * @public\n * ServerErrors.InternalServerError error.\n * Error code `31500`.\n */\n export class InternalServerError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Internal Server Error (HTTP/SIP)\n */\n description: string = 'Internal Server Error (HTTP/SIP)';\n /**\n * The server could not fulfill the request due to some unexpected condition.\n */\n explanation: string = 'The server could not fulfill the request due to some unexpected condition.';\n /**\n * InternalServerError\n */\n name: string = 'InternalServerError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31500);\n Object.setPrototypeOf(this, ServerErrors.InternalServerError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ServerErrors.BadGateway error.\n * Error code `31502`.\n */\n export class BadGateway extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Bad Gateway (HTTP/SIP)\n */\n description: string = 'Bad Gateway (HTTP/SIP)';\n /**\n * The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request.\n */\n explanation: string = 'The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request.';\n /**\n * BadGateway\n */\n name: string = 'BadGateway';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31502);\n Object.setPrototypeOf(this, ServerErrors.BadGateway.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ServerErrors.ServiceUnavailable error.\n * Error code `31503`.\n */\n export class ServiceUnavailable extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Service Unavailable (HTTP/SIP)\n */\n description: string = 'Service Unavailable (HTTP/SIP)';\n /**\n * The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL.\n */\n explanation: string = 'The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL.';\n /**\n * ServiceUnavailable\n */\n name: string = 'ServiceUnavailable';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31503);\n Object.setPrototypeOf(this, ServerErrors.ServiceUnavailable.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ServerErrors.GatewayTimeout error.\n * Error code `31504`.\n */\n export class GatewayTimeout extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Gateway Timeout (HTTP/SIP)\n */\n description: string = 'Gateway Timeout (HTTP/SIP)';\n /**\n * The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.\n */\n explanation: string = 'The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.';\n /**\n * GatewayTimeout\n */\n name: string = 'GatewayTimeout';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31504);\n Object.setPrototypeOf(this, ServerErrors.GatewayTimeout.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ServerErrors.DNSResolutionError error.\n * Error code `31530`.\n */\n export class DNSResolutionError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * DNS Resolution Error (HTTP/SIP)\n */\n description: string = 'DNS Resolution Error (HTTP/SIP)';\n /**\n * Could not connect to the server.\n */\n explanation: string = 'Could not connect to the server.';\n /**\n * DNSResolutionError\n */\n name: string = 'DNSResolutionError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31530);\n Object.setPrototypeOf(this, ServerErrors.DNSResolutionError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * SIPServer errors.\n */\nexport namespace SIPServerErrors {\n /**\n * @public\n * SIPServerErrors.BusyEverywhere error.\n * Error code `31600`.\n */\n export class BusyEverywhere extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Busy Everywhere (SIP)\n */\n description: string = 'Busy Everywhere (SIP)';\n /**\n * All possible destinations are busy.\n */\n explanation: string = 'All possible destinations are busy.';\n /**\n * BusyEverywhere\n */\n name: string = 'BusyEverywhere';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31600);\n Object.setPrototypeOf(this, SIPServerErrors.BusyEverywhere.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * SIPServerErrors.Decline error.\n * Error code `31603`.\n */\n export class Decline extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Decline (SIP)\n */\n description: string = 'Decline (SIP)';\n /**\n * The callee does not wish to participate in the call.\n */\n explanation: string = 'The callee does not wish to participate in the call.';\n /**\n * Decline\n */\n name: string = 'Decline';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31603);\n Object.setPrototypeOf(this, SIPServerErrors.Decline.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * SIPServerErrors.DoesNotExistAnywhere error.\n * Error code `31604`.\n */\n export class DoesNotExistAnywhere extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Does Not Exist Anywhere (SIP)\n */\n description: string = 'Does Not Exist Anywhere (SIP)';\n /**\n * The requested callee does not exist anywhere.\n */\n explanation: string = 'The requested callee does not exist anywhere.';\n /**\n * DoesNotExistAnywhere\n */\n name: string = 'DoesNotExistAnywhere';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31604);\n Object.setPrototypeOf(this, SIPServerErrors.DoesNotExistAnywhere.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * TwiML errors.\n */\nexport namespace TwiMLErrors {\n /**\n * @public\n * TwiMLErrors.InvalidApplicationSid error.\n * Error code `21218`.\n */\n export class InvalidApplicationSid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid ApplicationSid\n */\n description: string = 'Invalid ApplicationSid';\n /**\n * You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account\n */\n explanation: string = 'You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account';\n /**\n * InvalidApplicationSid\n */\n name: string = 'InvalidApplicationSid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 21218);\n Object.setPrototypeOf(this, TwiMLErrors.InvalidApplicationSid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * General errors.\n */\nexport namespace GeneralErrors {\n /**\n * @public\n * GeneralErrors.ConnectionError error.\n * Error code `31005`.\n */\n export class ConnectionError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Connection error\n */\n description: string = 'Connection error';\n /**\n * A connection error occurred during the call\n */\n explanation: string = 'A connection error occurred during the call';\n /**\n * ConnectionError\n */\n name: string = 'ConnectionError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31005);\n Object.setPrototypeOf(this, GeneralErrors.ConnectionError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * GeneralErrors.CallCancelledError error.\n * Error code `31008`.\n */\n export class CallCancelledError extends TwilioError {\n /**\n * The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity.\n */\n causes: string[] = [\n 'The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity.',\n ];\n /**\n * Call cancelled\n */\n description: string = 'Call cancelled';\n /**\n * Unable to answer because the call has ended\n */\n explanation: string = 'Unable to answer because the call has ended';\n /**\n * CallCancelledError\n */\n name: string = 'CallCancelledError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31008);\n Object.setPrototypeOf(this, GeneralErrors.CallCancelledError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * GeneralErrors.TransportError error.\n * Error code `31009`.\n */\n export class TransportError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Transport error\n */\n description: string = 'Transport error';\n /**\n * No transport available to send or receive messages\n */\n explanation: string = 'No transport available to send or receive messages';\n /**\n * TransportError\n */\n name: string = 'TransportError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31009);\n Object.setPrototypeOf(this, GeneralErrors.TransportError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * MalformedRequest errors.\n */\nexport namespace MalformedRequestErrors {\n /**\n * @public\n * MalformedRequestErrors.MalformedRequestError error.\n * Error code `31100`.\n */\n export class MalformedRequestError extends TwilioError {\n /**\n * Invalid content or MessageType passed to sendMessage method.\n */\n causes: string[] = [\n 'Invalid content or MessageType passed to sendMessage method.',\n ];\n /**\n * The request had malformed syntax.\n */\n description: string = 'The request had malformed syntax.';\n /**\n * The request could not be understood due to malformed syntax.\n */\n explanation: string = 'The request could not be understood due to malformed syntax.';\n /**\n * MalformedRequestError\n */\n name: string = 'MalformedRequestError';\n /**\n * Ensure content and MessageType passed to sendMessage method are valid.\n */\n solutions: string[] = [\n 'Ensure content and MessageType passed to sendMessage method are valid.',\n ];\n\n constructor(message: string) {\n super(message, 31100);\n Object.setPrototypeOf(this, MalformedRequestErrors.MalformedRequestError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Registration errors.\n */\nexport namespace RegistrationErrors {\n /**\n * @public\n * RegistrationErrors.RegistrationError error.\n * Error code `31301`.\n */\n export class RegistrationError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Registration error\n */\n description: string = 'Registration error';\n /**\n * \n */\n explanation: string = '';\n /**\n * RegistrationError\n */\n name: string = 'RegistrationError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31301);\n Object.setPrototypeOf(this, RegistrationErrors.RegistrationError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * RegistrationErrors.UnsupportedCancelMessageError error.\n * Error code `31302`.\n */\n export class UnsupportedCancelMessageError extends TwilioError {\n /**\n * The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages.\n */\n causes: string[] = [\n 'The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages.',\n ];\n /**\n * Unsupported Cancel Message Error\n */\n description: string = 'Unsupported Cancel Message Error';\n /**\n * This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK.\n */\n explanation: string = 'This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK.';\n /**\n * UnsupportedCancelMessageError\n */\n name: string = 'UnsupportedCancelMessageError';\n /**\n * The application must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS to stop receiving cancel push notification messages.\n */\n solutions: string[] = [\n 'The application must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS to stop receiving cancel push notification messages.',\n ];\n\n constructor(message: string) {\n super(message, 31302);\n Object.setPrototypeOf(this, RegistrationErrors.UnsupportedCancelMessageError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * UserMedia errors.\n */\nexport namespace UserMediaErrors {\n /**\n * @public\n * UserMediaErrors.PermissionDeniedError error.\n * Error code `31401`.\n */\n export class PermissionDeniedError extends TwilioError {\n /**\n * The user denied the getUserMedia request.\n * The browser denied the getUserMedia request.\n * The application has not been configured with the proper permissions.\n */\n causes: string[] = [\n 'The user denied the getUserMedia request.',\n 'The browser denied the getUserMedia request.',\n 'The application has not been configured with the proper permissions.',\n ];\n /**\n * UserMedia Permission Denied Error\n */\n description: string = 'UserMedia Permission Denied Error';\n /**\n * The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio.\n */\n explanation: string = 'The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio.';\n /**\n * PermissionDeniedError\n */\n name: string = 'PermissionDeniedError';\n /**\n * The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser.\n * The user should to verify that the browser has permission to access the microphone at this address.\n * The user should ensure that the proper permissions have been granted in the mobile device OS.\n */\n solutions: string[] = [\n 'The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser.',\n 'The user should to verify that the browser has permission to access the microphone at this address.',\n 'The user should ensure that the proper permissions have been granted in the mobile device OS.',\n ];\n\n constructor(message: string) {\n super(message, 31401);\n Object.setPrototypeOf(this, UserMediaErrors.PermissionDeniedError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Signaling errors.\n */\nexport namespace SignalingErrors {\n /**\n * @public\n * SignalingErrors.ConnectionDisconnected error.\n * Error code `53001`.\n */\n export class ConnectionDisconnected extends TwilioError {\n /**\n * The device running your application lost its Internet connection.\n */\n causes: string[] = [\n 'The device running your application lost its Internet connection.',\n ];\n /**\n * Signaling connection disconnected\n */\n description: string = 'Signaling connection disconnected';\n /**\n * Raised whenever the signaling connection is unexpectedly disconnected.\n */\n explanation: string = 'Raised whenever the signaling connection is unexpectedly disconnected.';\n /**\n * ConnectionDisconnected\n */\n name: string = 'ConnectionDisconnected';\n /**\n * Ensure the device running your application has access to a stable Internet connection.\n */\n solutions: string[] = [\n 'Ensure the device running your application has access to a stable Internet connection.',\n ];\n\n constructor(message: string) {\n super(message, 53001);\n Object.setPrototypeOf(this, SignalingErrors.ConnectionDisconnected.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Media errors.\n */\nexport namespace MediaErrors {\n /**\n * @public\n * MediaErrors.ClientLocalDescFailed error.\n * Error code `53400`.\n */\n export class ClientLocalDescFailed extends TwilioError {\n /**\n * The Client may not be using a supported WebRTC implementation.\n * The Client may not have the necessary resources to create or apply a new media description.\n */\n causes: string[] = [\n 'The Client may not be using a supported WebRTC implementation.',\n 'The Client may not have the necessary resources to create or apply a new media description.',\n ];\n /**\n * Client is unable to create or apply a local media description\n */\n description: string = 'Client is unable to create or apply a local media description';\n /**\n * Raised whenever a Client is unable to create or apply a local media description.\n */\n explanation: string = 'Raised whenever a Client is unable to create or apply a local media description.';\n /**\n * ClientLocalDescFailed\n */\n name: string = 'ClientLocalDescFailed';\n /**\n * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.\n */\n solutions: string[] = [\n 'If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.',\n ];\n\n constructor(message: string) {\n super(message, 53400);\n Object.setPrototypeOf(this, MediaErrors.ClientLocalDescFailed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.ServerLocalDescFailed error.\n * Error code `53401`.\n */\n export class ServerLocalDescFailed extends TwilioError {\n /**\n * A server-side error has occurred.\n */\n causes: string[] = [\n 'A server-side error has occurred.',\n ];\n /**\n * Server is unable to create or apply a local media description\n */\n description: string = 'Server is unable to create or apply a local media description';\n /**\n * Raised whenever the Server is unable to create or apply a local media description.\n */\n explanation: string = 'Raised whenever the Server is unable to create or apply a local media description.';\n /**\n * ServerLocalDescFailed\n */\n name: string = 'ServerLocalDescFailed';\n /**\n * If the problem persists, try connecting to another region.\n */\n solutions: string[] = [\n 'If the problem persists, try connecting to another region.',\n ];\n\n constructor(message: string) {\n super(message, 53401);\n Object.setPrototypeOf(this, MediaErrors.ServerLocalDescFailed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.ClientRemoteDescFailed error.\n * Error code `53402`.\n */\n export class ClientRemoteDescFailed extends TwilioError {\n /**\n * The Client may not be using a supported WebRTC implementation.\n * The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation.\n * The Client may not have the necessary resources to apply a new media description.\n */\n causes: string[] = [\n 'The Client may not be using a supported WebRTC implementation.',\n 'The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation.',\n 'The Client may not have the necessary resources to apply a new media description.',\n ];\n /**\n * Client is unable to apply a remote media description\n */\n description: string = 'Client is unable to apply a remote media description';\n /**\n * Raised whenever the Client receives a remote media description but is unable to apply it.\n */\n explanation: string = 'Raised whenever the Client receives a remote media description but is unable to apply it.';\n /**\n * ClientRemoteDescFailed\n */\n name: string = 'ClientRemoteDescFailed';\n /**\n * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.\n */\n solutions: string[] = [\n 'If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.',\n ];\n\n constructor(message: string) {\n super(message, 53402);\n Object.setPrototypeOf(this, MediaErrors.ClientRemoteDescFailed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.ServerRemoteDescFailed error.\n * Error code `53403`.\n */\n export class ServerRemoteDescFailed extends TwilioError {\n /**\n * The Client may not be using a supported WebRTC implementation.\n * The Client may not have the necessary resources to apply a new media description.\n * A Server-side error may have caused the Server to generate an invalid media description.\n */\n causes: string[] = [\n 'The Client may not be using a supported WebRTC implementation.',\n 'The Client may not have the necessary resources to apply a new media description.',\n 'A Server-side error may have caused the Server to generate an invalid media description.',\n ];\n /**\n * Server is unable to apply a remote media description\n */\n description: string = 'Server is unable to apply a remote media description';\n /**\n * Raised whenever the Server receives a remote media description but is unable to apply it.\n */\n explanation: string = 'Raised whenever the Server receives a remote media description but is unable to apply it.';\n /**\n * ServerRemoteDescFailed\n */\n name: string = 'ServerRemoteDescFailed';\n /**\n * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.\n * If the problem persists, try connecting to another region.\n */\n solutions: string[] = [\n 'If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.',\n 'If the problem persists, try connecting to another region.',\n ];\n\n constructor(message: string) {\n super(message, 53403);\n Object.setPrototypeOf(this, MediaErrors.ServerRemoteDescFailed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.NoSupportedCodec error.\n * Error code `53404`.\n */\n export class NoSupportedCodec extends TwilioError {\n /**\n * The C++ SDK was built without the recommended set of codecs.\n * The JavaScript SDK is running in a browser that does not implement the recommended set of codecs.\n */\n causes: string[] = [\n 'The C++ SDK was built without the recommended set of codecs.',\n 'The JavaScript SDK is running in a browser that does not implement the recommended set of codecs.',\n ];\n /**\n * No supported codec\n */\n description: string = 'No supported codec';\n /**\n * Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.\n */\n explanation: string = 'Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.';\n /**\n * NoSupportedCodec\n */\n name: string = 'NoSupportedCodec';\n /**\n * If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs.\n * If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser.\n */\n solutions: string[] = [\n 'If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs.',\n 'If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser.',\n ];\n\n constructor(message: string) {\n super(message, 53404);\n Object.setPrototypeOf(this, MediaErrors.NoSupportedCodec.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.ConnectionError error.\n * Error code `53405`.\n */\n export class ConnectionError extends TwilioError {\n /**\n * The Client was unable to establish a media connection.\n * A media connection which was active failed liveliness checks.\n */\n causes: string[] = [\n 'The Client was unable to establish a media connection.',\n 'A media connection which was active failed liveliness checks.',\n ];\n /**\n * Media connection failed\n */\n description: string = 'Media connection failed';\n /**\n * Raised by the Client or Server whenever a media connection fails.\n */\n explanation: string = 'Raised by the Client or Server whenever a media connection fails.';\n /**\n * ConnectionError\n */\n name: string = 'ConnectionError';\n /**\n * If the problem persists, try connecting to another region.\n * Check your Client's network connectivity.\n * If you've provided custom ICE Servers then ensure that the URLs and credentials are valid.\n */\n solutions: string[] = [\n 'If the problem persists, try connecting to another region.',\n 'Check your Client\\'s network connectivity.',\n 'If you\\'ve provided custom ICE Servers then ensure that the URLs and credentials are valid.',\n ];\n\n constructor(message: string) {\n super(message, 53405);\n Object.setPrototypeOf(this, MediaErrors.ConnectionError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.MediaDtlsTransportFailedError error.\n * Error code `53407`.\n */\n export class MediaDtlsTransportFailedError extends TwilioError {\n /**\n * One or both of the DTLS peers have an invalid certificate.\n * One or both of the DTLS peers have an outdated version of DTLS.\n * One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake.\n */\n causes: string[] = [\n 'One or both of the DTLS peers have an invalid certificate.',\n 'One or both of the DTLS peers have an outdated version of DTLS.',\n 'One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake.',\n ];\n /**\n * The media connection failed due to DTLS handshake failure\n */\n description: string = 'The media connection failed due to DTLS handshake failure';\n /**\n * There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.\n */\n explanation: string = 'There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.';\n /**\n * MediaDtlsTransportFailedError\n */\n name: string = 'MediaDtlsTransportFailedError';\n /**\n * Ensure that your certificate is valid.\n * Ensure that you have a stable internet connection.\n * Ensure that the browser or the Mobile SDK supports newer versions of DTLS.\n */\n solutions: string[] = [\n 'Ensure that your certificate is valid.',\n 'Ensure that you have a stable internet connection.',\n 'Ensure that the browser or the Mobile SDK supports newer versions of DTLS.',\n ];\n\n constructor(message: string) {\n super(message, 53407);\n Object.setPrototypeOf(this, MediaErrors.MediaDtlsTransportFailedError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @internal\n */\nexport const errorsByCode: ReadonlyMap = new Map([\n [20101, AuthorizationErrors.AccessTokenInvalid],\n [20102, AuthorizationErrors.AccessTokenHeaderInvalid],\n [20103, AuthorizationErrors.AccessTokenIssuerInvalid],\n [20104, AuthorizationErrors.AccessTokenExpired],\n [20105, AuthorizationErrors.AccessTokenNotYetValid],\n [20106, AuthorizationErrors.AccessTokenGrantsInvalid],\n [20107, AuthorizationErrors.AccessTokenSignatureInvalid],\n [20151, AuthorizationErrors.AuthenticationFailed],\n [20157, AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed],\n [20403, ForbiddenErrors.Forbidden],\n [21218, TwiMLErrors.InvalidApplicationSid],\n [31005, GeneralErrors.ConnectionError],\n [31008, GeneralErrors.CallCancelledError],\n [31009, GeneralErrors.TransportError],\n [31100, MalformedRequestErrors.MalformedRequestError],\n [31201, AuthorizationErrors.AuthorizationError],\n [31206, AuthorizationErrors.RateExceededError],\n [31210, AuthorizationErrors.CallMessageEventTypeInvalidError],\n [31211, AuthorizationErrors.CallMessageUnexpectedStateError],\n [31212, AuthorizationErrors.PayloadSizeExceededError],\n [31301, RegistrationErrors.RegistrationError],\n [31302, RegistrationErrors.UnsupportedCancelMessageError],\n [31400, ClientErrors.BadRequest],\n [31401, UserMediaErrors.PermissionDeniedError],\n [31403, ClientErrors.Forbidden],\n [31404, ClientErrors.NotFound],\n [31408, ClientErrors.RequestTimeout],\n [31409, ClientErrors.Conflict],\n [31426, ClientErrors.UpgradeRequired],\n [31429, ClientErrors.TooManyRequests],\n [31480, ClientErrors.TemporarilyUnavailable],\n [31481, ClientErrors.CallTransactionDoesNotExist],\n [31484, ClientErrors.AddressIncomplete],\n [31486, ClientErrors.BusyHere],\n [31487, ClientErrors.RequestTerminated],\n [31500, ServerErrors.InternalServerError],\n [31502, ServerErrors.BadGateway],\n [31503, ServerErrors.ServiceUnavailable],\n [31504, ServerErrors.GatewayTimeout],\n [31530, ServerErrors.DNSResolutionError],\n [31600, SIPServerErrors.BusyEverywhere],\n [31603, SIPServerErrors.Decline],\n [31604, SIPServerErrors.DoesNotExistAnywhere],\n [51007, AuthorizationErrors.AccessTokenRejected],\n [53001, SignalingErrors.ConnectionDisconnected],\n [53400, MediaErrors.ClientLocalDescFailed],\n [53401, MediaErrors.ServerLocalDescFailed],\n [53402, MediaErrors.ClientRemoteDescFailed],\n [53403, MediaErrors.ServerRemoteDescFailed],\n [53404, MediaErrors.NoSupportedCodec],\n [53405, MediaErrors.ConnectionError],\n [53407, MediaErrors.MediaDtlsTransportFailedError],\n]);\n\nObject.freeze(errorsByCode);\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/error/index.js b/lib/commonjs/error/index.js
new file mode 100644
index 00000000..4e85866f
--- /dev/null
+++ b/lib/commonjs/error/index.js
@@ -0,0 +1,112 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+Object.defineProperty(exports, "InvalidArgumentError", {
+ enumerable: true,
+ get: function () {
+ return _InvalidArgumentError.InvalidArgumentError;
+ }
+});
+Object.defineProperty(exports, "InvalidStateError", {
+ enumerable: true,
+ get: function () {
+ return _InvalidStateError.InvalidStateError;
+ }
+});
+Object.defineProperty(exports, "UnsupportedPlatformError", {
+ enumerable: true,
+ get: function () {
+ return _UnsupportedPlatformError.UnsupportedPlatformError;
+ }
+});
+Object.defineProperty(exports, "TwilioError", {
+ enumerable: true,
+ get: function () {
+ return _TwilioError.TwilioError;
+ }
+});
+Object.defineProperty(exports, "AuthorizationErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.AuthorizationErrors;
+ }
+});
+Object.defineProperty(exports, "ClientErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.ClientErrors;
+ }
+});
+Object.defineProperty(exports, "ForbiddenErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.ForbiddenErrors;
+ }
+});
+Object.defineProperty(exports, "GeneralErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.GeneralErrors;
+ }
+});
+Object.defineProperty(exports, "MalformedRequestErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.MalformedRequestErrors;
+ }
+});
+Object.defineProperty(exports, "MediaErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.MediaErrors;
+ }
+});
+Object.defineProperty(exports, "RegistrationErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.RegistrationErrors;
+ }
+});
+Object.defineProperty(exports, "ServerErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.ServerErrors;
+ }
+});
+Object.defineProperty(exports, "SignalingErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.SignalingErrors;
+ }
+});
+Object.defineProperty(exports, "SIPServerErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.SIPServerErrors;
+ }
+});
+Object.defineProperty(exports, "TwiMLErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.TwiMLErrors;
+ }
+});
+Object.defineProperty(exports, "UserMediaErrors", {
+ enumerable: true,
+ get: function () {
+ return _generated.UserMediaErrors;
+ }
+});
+
+var _InvalidArgumentError = require("./InvalidArgumentError");
+
+var _InvalidStateError = require("./InvalidStateError");
+
+var _UnsupportedPlatformError = require("./UnsupportedPlatformError");
+
+var _TwilioError = require("./TwilioError");
+
+var _generated = require("./generated");
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/commonjs/error/index.js.map b/lib/commonjs/error/index.js.map
new file mode 100644
index 00000000..8ec7dffa
--- /dev/null
+++ b/lib/commonjs/error/index.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export { InvalidArgumentError } from './InvalidArgumentError';\nexport { InvalidStateError } from './InvalidStateError';\nexport { UnsupportedPlatformError } from './UnsupportedPlatformError';\nexport { TwilioError } from './TwilioError';\nexport {\n AuthorizationErrors,\n ClientErrors,\n ForbiddenErrors,\n GeneralErrors,\n MalformedRequestErrors,\n MediaErrors,\n RegistrationErrors,\n ServerErrors,\n SignalingErrors,\n SIPServerErrors,\n TwiMLErrors,\n UserMediaErrors,\n} from './generated';\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/error/utility.js b/lib/commonjs/error/utility.js
new file mode 100644
index 00000000..4ff7f8da
--- /dev/null
+++ b/lib/commonjs/error/utility.js
@@ -0,0 +1,37 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.constructTwilioError = constructTwilioError;
+
+var _generated = require("./generated");
+
+var _TwilioError = require("./TwilioError");
+
+var _InvalidArgumentError = require("./InvalidArgumentError");
+
+/**
+ * Uses the generated error-code map to create the appropriate error.
+ * If the code is "unexpected" such that there is no constructor for that
+ * specific code, this function will default to a generic {@link TwilioError}.
+ *
+ * @param message an error message
+ * @param code a Twilio error code, for example `31209`
+ *
+ * @returns a {@link TwilioError} or appropriate sub-class
+ */
+function constructTwilioError(message, code) {
+ if (typeof message !== 'string') {
+ throw new _InvalidArgumentError.InvalidArgumentError('The "message" argument is not of type "string".');
+ }
+
+ if (typeof code !== 'number') {
+ throw new _InvalidArgumentError.InvalidArgumentError('The "code" argument is not of type "number".');
+ }
+
+ const ErrorClass = _generated.errorsByCode.get(code);
+
+ return typeof ErrorClass !== 'undefined' ? new ErrorClass(message) : new _TwilioError.TwilioError(message, code);
+}
+//# sourceMappingURL=utility.js.map
\ No newline at end of file
diff --git a/lib/commonjs/error/utility.js.map b/lib/commonjs/error/utility.js.map
new file mode 100644
index 00000000..b18b881e
--- /dev/null
+++ b/lib/commonjs/error/utility.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["utility.ts"],"names":["constructTwilioError","message","code","InvalidArgumentError","ErrorClass","errorsByCode","get","TwilioError"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,oBAAT,CACLC,OADK,EAELC,IAFK,EAGQ;AACb,MAAI,OAAOD,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,UAAM,IAAIE,0CAAJ,CACJ,iDADI,CAAN;AAGD;;AAED,MAAI,OAAOD,IAAP,KAAgB,QAApB,EAA8B;AAC5B,UAAM,IAAIC,0CAAJ,CACJ,8CADI,CAAN;AAGD;;AAED,QAAMC,UAAU,GAAGC,wBAAaC,GAAb,CAAiBJ,IAAjB,CAAnB;;AAEA,SAAO,OAAOE,UAAP,KAAsB,WAAtB,GACH,IAAIA,UAAJ,CAAeH,OAAf,CADG,GAEH,IAAIM,wBAAJ,CAAgBN,OAAhB,EAAyBC,IAAzB,CAFJ;AAGD","sourcesContent":["import { errorsByCode } from './generated';\nimport { TwilioError } from './TwilioError';\nimport { InvalidArgumentError } from './InvalidArgumentError';\n\n/**\n * Uses the generated error-code map to create the appropriate error.\n * If the code is \"unexpected\" such that there is no constructor for that\n * specific code, this function will default to a generic {@link TwilioError}.\n *\n * @param message an error message\n * @param code a Twilio error code, for example `31209`\n *\n * @returns a {@link TwilioError} or appropriate sub-class\n */\nexport function constructTwilioError(\n message: string,\n code: number\n): TwilioError {\n if (typeof message !== 'string') {\n throw new InvalidArgumentError(\n 'The \"message\" argument is not of type \"string\".'\n );\n }\n\n if (typeof code !== 'number') {\n throw new InvalidArgumentError(\n 'The \"code\" argument is not of type \"number\".'\n );\n }\n\n const ErrorClass = errorsByCode.get(code);\n\n return typeof ErrorClass !== 'undefined'\n ? new ErrorClass(message)\n : new TwilioError(message, code);\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/index.js b/lib/commonjs/index.js
new file mode 100644
index 00000000..82945f31
--- /dev/null
+++ b/lib/commonjs/index.js
@@ -0,0 +1,95 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+Object.defineProperty(exports, "Voice", {
+ enumerable: true,
+ get: function () {
+ return _Voice.Voice;
+ }
+});
+Object.defineProperty(exports, "AudioDevice", {
+ enumerable: true,
+ get: function () {
+ return _AudioDevice.AudioDevice;
+ }
+});
+Object.defineProperty(exports, "Call", {
+ enumerable: true,
+ get: function () {
+ return _Call.Call;
+ }
+});
+Object.defineProperty(exports, "CallInvite", {
+ enumerable: true,
+ get: function () {
+ return _CallInvite.CallInvite;
+ }
+});
+Object.defineProperty(exports, "CallMessage", {
+ enumerable: true,
+ get: function () {
+ return _CallMessage.CallMessage;
+ }
+});
+Object.defineProperty(exports, "IncomingCallMessage", {
+ enumerable: true,
+ get: function () {
+ return _IncomingCallMessage.IncomingCallMessage;
+ }
+});
+Object.defineProperty(exports, "OutgoingCallMessage", {
+ enumerable: true,
+ get: function () {
+ return _OutgoingCallMessage.OutgoingCallMessage;
+ }
+});
+Object.defineProperty(exports, "CustomParameters", {
+ enumerable: true,
+ get: function () {
+ return _common.CustomParameters;
+ }
+});
+Object.defineProperty(exports, "CallKit", {
+ enumerable: true,
+ get: function () {
+ return _CallKit.CallKit;
+ }
+});
+Object.defineProperty(exports, "RTCStats", {
+ enumerable: true,
+ get: function () {
+ return _RTCStats.RTCStats;
+ }
+});
+exports.TwilioErrors = void 0;
+
+var _Voice = require("./Voice");
+
+var _AudioDevice = require("./AudioDevice");
+
+var _Call = require("./Call");
+
+var _CallInvite = require("./CallInvite");
+
+var _CallMessage = require("./CallMessage/CallMessage");
+
+var _IncomingCallMessage = require("./CallMessage/IncomingCallMessage");
+
+var _OutgoingCallMessage = require("./CallMessage/OutgoingCallMessage");
+
+var _common = require("./type/common");
+
+var _CallKit = require("./type/CallKit");
+
+var _RTCStats = require("./type/RTCStats");
+
+var TwilioErrors = _interopRequireWildcard(require("./error"));
+
+exports.TwilioErrors = TwilioErrors;
+
+function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
+
+function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/commonjs/index.js.map b/lib/commonjs/index.js.map
new file mode 100644
index 00000000..92ab6a25
--- /dev/null
+++ b/lib/commonjs/index.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA","sourcesContent":["// 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/**\n * Provides access to Twilio Programmable Voice for React Native applications\n * running on iOS and Android devices.\n *\n * @packageDocumentation\n */\n\nexport { Voice } from './Voice';\n\nexport { AudioDevice } from './AudioDevice';\nexport { Call } from './Call';\nexport { CallInvite } from './CallInvite';\nexport { CallMessage } from './CallMessage/CallMessage';\nexport { IncomingCallMessage } from './CallMessage/IncomingCallMessage';\nexport { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';\nexport { CustomParameters } from './type/common';\nexport { CallKit } from './type/CallKit';\nexport { RTCStats } from './type/RTCStats';\n\nimport * as TwilioErrors from './error';\nexport { TwilioErrors };\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/type/AudioDevice.js b/lib/commonjs/type/AudioDevice.js
new file mode 100644
index 00000000..3561be1d
--- /dev/null
+++ b/lib/commonjs/type/AudioDevice.js
@@ -0,0 +1,6 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+//# sourceMappingURL=AudioDevice.js.map
\ No newline at end of file
diff --git a/lib/commonjs/type/AudioDevice.js.map b/lib/commonjs/type/AudioDevice.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/commonjs/type/AudioDevice.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/commonjs/type/Call.js b/lib/commonjs/type/Call.js
new file mode 100644
index 00000000..9a9d6ab2
--- /dev/null
+++ b/lib/commonjs/type/Call.js
@@ -0,0 +1,6 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+//# sourceMappingURL=Call.js.map
\ No newline at end of file
diff --git a/lib/commonjs/type/Call.js.map b/lib/commonjs/type/Call.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/commonjs/type/Call.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/commonjs/type/CallInvite.js b/lib/commonjs/type/CallInvite.js
new file mode 100644
index 00000000..d5f23bb5
--- /dev/null
+++ b/lib/commonjs/type/CallInvite.js
@@ -0,0 +1,6 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+//# sourceMappingURL=CallInvite.js.map
\ No newline at end of file
diff --git a/lib/commonjs/type/CallInvite.js.map b/lib/commonjs/type/CallInvite.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/commonjs/type/CallInvite.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/commonjs/type/CallKit.js b/lib/commonjs/type/CallKit.js
new file mode 100644
index 00000000..f8b18aee
--- /dev/null
+++ b/lib/commonjs/type/CallKit.js
@@ -0,0 +1,30 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.CallKit = void 0;
+
+/**
+ * @public
+ * CallKit related types.
+ */
+let CallKit;
+exports.CallKit = CallKit;
+
+(function (_CallKit) {
+ /**
+ * @public
+ * iOS CallKit configuration options.
+ */
+ let HandleType;
+
+ (function (HandleType) {
+ HandleType[HandleType["Generic"] = 0] = "Generic";
+ HandleType[HandleType["PhoneNumber"] = 1] = "PhoneNumber";
+ HandleType[HandleType["EmailAddress"] = 2] = "EmailAddress";
+ })(HandleType || (HandleType = {}));
+
+ _CallKit.HandleType = HandleType;
+})(CallKit || (exports.CallKit = CallKit = {}));
+//# sourceMappingURL=CallKit.js.map
\ No newline at end of file
diff --git a/lib/commonjs/type/CallKit.js.map b/lib/commonjs/type/CallKit.js.map
new file mode 100644
index 00000000..a391279f
--- /dev/null
+++ b/lib/commonjs/type/CallKit.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["CallKit.ts"],"names":["HandleType","CallKit"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;;;;;AAEE;AACF;AACA;AACA;MAsCcA,U;;aAAAA,U;AAAAA,IAAAA,U,CAAAA,U;AAAAA,IAAAA,U,CAAAA,U;AAAAA,IAAAA,U,CAAAA,U;KAAAA,U,KAAAA,U;;;GA1CGC,O,uBAAAA,O","sourcesContent":["/**\n * @public\n * CallKit related types.\n */\nexport namespace CallKit {\n /**\n * @public\n * iOS CallKit configuration options.\n */\n export type ConfigurationOptions = {\n /**\n * Filename of a 80x80 PNG image that will show in the system call UI as the app icon.\n */\n callKitIconTemplateImageData: string;\n /**\n * Include call history in system recents (`true` by default).\n *\n * @remarks\n * Only supported on iOS 11 and newer versions.\n */\n callKitIncludesCallsInRecents: boolean;\n /**\n * Maximum number of call groups (`2` by default).\n */\n callKitMaximumCallGroups: number;\n /**\n * Maximum number of calls per group (`5` by default).\n */\n callKitMaximumCallsPerCallGroup: number;\n /**\n * Filename of the incoming call ringing tone.\n */\n callKitRingtoneSound: string;\n /**\n * Supported handle types.\n *\n * @remarks\n * See {@link CallKitHandleType}.\n */\n callKitSupportedHandleTypes: HandleType[];\n };\n\n /**\n * @public\n * Enumeration of all supported handle types by iOS CallKit.\n */\n export enum HandleType {\n /**\n * Generic handle.\n */\n Generic = 0,\n /**\n * Phone number handle.\n */\n PhoneNumber = 1,\n /**\n * Email address handle.\n */\n EmailAddress = 2,\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/type/CallMessage.js b/lib/commonjs/type/CallMessage.js
new file mode 100644
index 00000000..d405ad78
--- /dev/null
+++ b/lib/commonjs/type/CallMessage.js
@@ -0,0 +1,6 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+//# sourceMappingURL=CallMessage.js.map
\ No newline at end of file
diff --git a/lib/commonjs/type/CallMessage.js.map b/lib/commonjs/type/CallMessage.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/commonjs/type/CallMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/commonjs/type/Error.js b/lib/commonjs/type/Error.js
new file mode 100644
index 00000000..2d10780d
--- /dev/null
+++ b/lib/commonjs/type/Error.js
@@ -0,0 +1,6 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+//# sourceMappingURL=Error.js.map
\ No newline at end of file
diff --git a/lib/commonjs/type/Error.js.map b/lib/commonjs/type/Error.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/commonjs/type/Error.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/commonjs/type/NativeModule.js b/lib/commonjs/type/NativeModule.js
new file mode 100644
index 00000000..4d7c2208
--- /dev/null
+++ b/lib/commonjs/type/NativeModule.js
@@ -0,0 +1,6 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+//# sourceMappingURL=NativeModule.js.map
\ No newline at end of file
diff --git a/lib/commonjs/type/NativeModule.js.map b/lib/commonjs/type/NativeModule.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/commonjs/type/NativeModule.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/commonjs/type/RTCStats.js b/lib/commonjs/type/RTCStats.js
new file mode 100644
index 00000000..00f14db0
--- /dev/null
+++ b/lib/commonjs/type/RTCStats.js
@@ -0,0 +1,29 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.RTCStats = void 0;
+
+/**
+ * Types related to WebRTC stats.
+ *
+ * @public
+ */
+let RTCStats;
+exports.RTCStats = RTCStats;
+
+(function (_RTCStats) {
+ let IceCandidatePairState;
+
+ (function (IceCandidatePairState) {
+ IceCandidatePairState["STATE_FAILED"] = "STATE_FAILED";
+ IceCandidatePairState["STATE_FROZEN"] = "STATE_FROZEN";
+ IceCandidatePairState["STATE_IN_PROGRESS"] = "STATE_IN_PROGRESS";
+ IceCandidatePairState["STATE_SUCCEEDED"] = "STATE_SUCCEEDED";
+ IceCandidatePairState["STATE_WAITING"] = "STATE_WAITING";
+ })(IceCandidatePairState || (IceCandidatePairState = {}));
+
+ _RTCStats.IceCandidatePairState = IceCandidatePairState;
+})(RTCStats || (exports.RTCStats = RTCStats = {}));
+//# sourceMappingURL=RTCStats.js.map
\ No newline at end of file
diff --git a/lib/commonjs/type/RTCStats.js.map b/lib/commonjs/type/RTCStats.js.map
new file mode 100644
index 00000000..3886ff6d
--- /dev/null
+++ b/lib/commonjs/type/RTCStats.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["RTCStats.ts"],"names":["IceCandidatePairState","RTCStats"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;;;;;MAEcA,qB;;aAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;KAAAA,qB,KAAAA,qB;;;GADGC,Q,wBAAAA,Q","sourcesContent":["/**\n * Types related to WebRTC stats.\n *\n * @public\n */\nexport namespace RTCStats {\n export enum IceCandidatePairState {\n STATE_FAILED = 'STATE_FAILED',\n STATE_FROZEN = 'STATE_FROZEN',\n STATE_IN_PROGRESS = 'STATE_IN_PROGRESS',\n STATE_SUCCEEDED = 'STATE_SUCCEEDED',\n STATE_WAITING = 'STATE_WAITING',\n }\n\n export interface IceCandidatePairStats {\n activeCandidatePair: boolean;\n availableIncomingBitrate: number;\n availableOutgoingBitrate: number;\n bytesReceived: number;\n bytesSent: number;\n consentRequestsReceived: number;\n consentRequestsSent: number;\n consentResponsesReceived: number;\n consentResponsesSent: number;\n currentRoundTripTime: number;\n localCandidateId: string;\n localCandidateIp: string;\n nominated: boolean;\n priority: number;\n readable: boolean;\n relayProtocol: string;\n remoteCandidateId: string;\n remoteCandidateIp: string;\n requestsReceieved: number;\n requestsSent: number;\n responsesRecieved: number;\n responsesSent: number;\n retransmissionsReceived: number;\n retransmissionsSent: number;\n state: IceCandidatePairState;\n totalRoundTripTime: number;\n transportId: string;\n writeable: boolean;\n }\n\n export interface IceCandidateStats {\n candidateType: string;\n deleted: boolean;\n ip: string;\n isRemote: boolean;\n port: number;\n priority: number;\n protocol: string;\n transportId: string;\n url: string;\n }\n\n export interface BaseTrackStats {\n codec: string;\n packetsLost: number;\n ssrc: string;\n timestamp: number;\n trackId: string;\n }\n\n export interface LocalTrackStats extends BaseTrackStats {\n bytesSent: number;\n packetsSent: number;\n roundTripTime: number;\n }\n\n export interface LocalAudioTrackStats extends LocalTrackStats {\n audioLevel: number;\n jitter: number;\n }\n\n export interface RemoteTrackStats extends BaseTrackStats {\n bytesRecieved: number;\n packetsReceived: number;\n }\n\n export interface RemoteAudioTrackStats extends RemoteTrackStats {\n audioLevel: number;\n jitter: number;\n mos: number;\n }\n\n /**\n * WebRTC stats report. Contains diagnostics information about\n * `RTCPeerConnection`s and summarizes data for an ongoing call.\n */\n export interface StatsReport {\n iceCandidatePairStats: IceCandidatePairStats[];\n iceCandidateStats: IceCandidateStats[];\n localAudioTrackStats: LocalAudioTrackStats[];\n peerConnectionId: string;\n remoteAudioTrackStats: RemoteAudioTrackStats[];\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/commonjs/type/Voice.js b/lib/commonjs/type/Voice.js
new file mode 100644
index 00000000..058bde7c
--- /dev/null
+++ b/lib/commonjs/type/Voice.js
@@ -0,0 +1,6 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+//# sourceMappingURL=Voice.js.map
\ No newline at end of file
diff --git a/lib/commonjs/type/Voice.js.map b/lib/commonjs/type/Voice.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/commonjs/type/Voice.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/commonjs/type/common.js b/lib/commonjs/type/common.js
new file mode 100644
index 00000000..3de04359
--- /dev/null
+++ b/lib/commonjs/type/common.js
@@ -0,0 +1,2 @@
+"use strict";
+//# sourceMappingURL=common.js.map
\ No newline at end of file
diff --git a/lib/commonjs/type/common.js.map b/lib/commonjs/type/common.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/commonjs/type/common.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/module/AudioDevice.js b/lib/module/AudioDevice.js
new file mode 100644
index 00000000..c186d1a0
--- /dev/null
+++ b/lib/module/AudioDevice.js
@@ -0,0 +1,97 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { NativeModule } from './common';
+
+/**
+ * Describes audio devices as reported by the native layer and allows the
+ * native selection of the described audio device.
+ *
+ * @remarks
+ * To fetch a list of available audio devices and the currently selected audio
+ * device, see {@link (Voice:class).getAudioDevices}.
+ *
+ * - See also the {@link (AudioDevice:namespace) | AudioDevice namespace} for
+ * types used by this class.
+ *
+ * @public
+ */
+export class AudioDevice {
+ /**
+ * The native-UUID of this object. This is generated by the native layer and
+ * is used to associate functionality between the JS and native layers.
+ *
+ * @internal
+ */
+
+ /**
+ * The type of the audio device.
+ */
+
+ /**
+ * The name of the audio device.
+ */
+
+ /**
+ * Audio device class constructor.
+ * @param audioDeviceInformation - A record describing an audio device.
+ *
+ * @internal
+ */
+ constructor({
+ uuid,
+ type,
+ name
+ }) {
+ _defineProperty(this, "uuid", void 0);
+
+ _defineProperty(this, "type", void 0);
+
+ _defineProperty(this, "name", void 0);
+
+ this.uuid = uuid;
+ this.type = type;
+ this.name = name;
+ }
+ /**
+ * Calling this method will select this audio device as the active audio
+ * device.
+ * @returns
+ * A `Promise` that
+ * - Resolves with `void` when the audio device has been successfully
+ * selected as the active audio device.
+ * - Rejects if the audio device cannot be selected.
+ */
+
+
+ select() {
+ return NativeModule.voice_selectAudioDevice(this.uuid);
+ }
+
+}
+/**
+ * Contains interfaces and enumerations associated with audio devices.
+ *
+ * @remarks
+ * - See also the {@link (AudioDevice:class) | AudioDevice class}.
+ *
+ * @public
+ */
+
+(function (_AudioDevice) {
+ let Type;
+
+ (function (Type) {
+ Type["Earpiece"] = "earpiece";
+ Type["Speaker"] = "speaker";
+ Type["Bluetooth"] = "bluetooth";
+ })(Type || (Type = {}));
+
+ _AudioDevice.Type = Type;
+})(AudioDevice || (AudioDevice = {}));
+//# sourceMappingURL=AudioDevice.js.map
\ No newline at end of file
diff --git a/lib/module/AudioDevice.js.map b/lib/module/AudioDevice.js.map
new file mode 100644
index 00000000..68b2855c
--- /dev/null
+++ b/lib/module/AudioDevice.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["AudioDevice.tsx"],"names":["NativeModule","AudioDevice","constructor","uuid","type","name","select","voice_selectAudioDevice","Type"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,SAASA,YAAT,QAA6B,UAA7B;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAN,CAAkB;AACvB;AACF;AACA;AACA;AACA;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,WAAW,CAAC;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA;AAAd,GAAD,EAA8C;AAAA;;AAAA;;AAAA;;AACvD,SAAKF,IAAL,GAAYA,IAAZ;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACEC,EAAAA,MAAM,GAAkB;AACtB,WAAON,YAAY,CAACO,uBAAb,CAAqC,KAAKJ,IAA1C,CAAP;AACD;;AA1CsB;AA6CzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;MAMcK,I;;aAAAA,I;AAAAA,IAAAA,I;AAAAA,IAAAA,I;AAAAA,IAAAA,I;KAAAA,I,KAAAA,I;;;GALGP,W,KAAAA,W","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 { NativeModule } from './common';\nimport type { NativeAudioDeviceInfo } from './type/AudioDevice';\nimport type { Uuid } from './type/common';\n\n/**\n * Describes audio devices as reported by the native layer and allows the\n * native selection of the described audio device.\n *\n * @remarks\n * To fetch a list of available audio devices and the currently selected audio\n * device, see {@link (Voice:class).getAudioDevices}.\n *\n * - See also the {@link (AudioDevice:namespace) | AudioDevice namespace} for\n * types used by this class.\n *\n * @public\n */\nexport class AudioDevice {\n /**\n * The native-UUID of this object. This is generated by the native layer and\n * is used to associate functionality between the JS and native layers.\n *\n * @internal\n */\n uuid: Uuid;\n\n /**\n * The type of the audio device.\n */\n type: AudioDevice.Type;\n\n /**\n * The name of the audio device.\n */\n name: string;\n\n /**\n * Audio device class constructor.\n * @param audioDeviceInformation - A record describing an audio device.\n *\n * @internal\n */\n constructor({ uuid, type, name }: NativeAudioDeviceInfo) {\n this.uuid = uuid;\n this.type = type;\n this.name = name;\n }\n\n /**\n * Calling this method will select this audio device as the active audio\n * device.\n * @returns\n * A `Promise` that\n * - Resolves with `void` when the audio device has been successfully\n * selected as the active audio device.\n * - Rejects if the audio device cannot be selected.\n */\n select(): Promise {\n return NativeModule.voice_selectAudioDevice(this.uuid);\n }\n}\n\n/**\n * Contains interfaces and enumerations associated with audio devices.\n *\n * @remarks\n * - See also the {@link (AudioDevice:class) | AudioDevice class}.\n *\n * @public\n */\nexport namespace AudioDevice {\n /**\n * Audio device type enumeration. Describes all possible audio device types as\n * reportable by the native layer.\n */\n export enum Type {\n Earpiece = 'earpiece',\n Speaker = 'speaker',\n Bluetooth = 'bluetooth',\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/Call.js b/lib/module/Call.js
new file mode 100644
index 00000000..e80f8f54
--- /dev/null
+++ b/lib/module/Call.js
@@ -0,0 +1,703 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { EventEmitter } from 'eventemitter3';
+import { NativeModule, NativeEventEmitter } from './common';
+import { Constants } from './constants';
+import { constructTwilioError } from './error/utility';
+import { validateCallMessage } from './CallMessage/CallMessage';
+import { IncomingCallMessage } from './CallMessage/IncomingCallMessage';
+import { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';
+/**
+ * Defines strict typings for all events emitted by {@link (Call:class)
+ * | Call objects}.
+ *
+ * @remarks
+ * Note that the `on` function is an alias for the `addListener` function.
+ * They share identical functionality and either may be used interchangeably.
+ *
+ * - See also the {@link (Call:class) | Call class}.
+ * - See also the {@link (Call:namespace) | Call namespace}.
+ *
+ * @public
+ */
+
+/**
+ * Provides access to information about a call, including the call parameters,
+ * and exposes functionality for a call such as disconnecting, muting, and
+ * holding.
+ *
+ * @remarks
+ * Note that the call information is fetched as soon as possible from the native
+ * layer, but there is no guarantee that all information is immediately
+ * available. Methods such as `Call.getFrom()` or `Call.getTo()` may return
+ * `undefined`.
+ *
+ * As call events are received from the native layer, call information will
+ * propagate from the native layer to the JS layer and become available.
+ * Therefore, it is good practice to read information from the call after an
+ * event occurs, or as events occur.
+ *
+ * - See the {@link (Call:namespace).Event} enum for events emitted by `Call`
+ * objects.
+ * - See the {@link (Call:interface) | Call interface} for overloaded event
+ * listening methods.
+ * - See the {@link (Call:namespace) | Call namespace} for types and
+ * enumerations used by this class.
+ *
+ * @public
+ */
+export class Call extends EventEmitter {
+ /**
+ * The `Uuid` of this call. Used to identify calls between the JS and native
+ * layer so we can associate events and native functionality between the
+ * layers.
+ */
+
+ /**
+ * Call custom parameters.
+ */
+
+ /**
+ * Call `from` parameter.
+ */
+
+ /**
+ * Initial `connected` timestamp. Milliseconds since epoch.
+ */
+
+ /**
+ * A boolean representing if the call is currently muted.
+ */
+
+ /**
+ * A boolean representing if the call is currently on hold.
+ */
+
+ /**
+ * A string representing the SID of this call.
+ */
+
+ /**
+ * The current state of the call.
+ *
+ * @remarks
+ * See {@link (Call:namespace).State}.
+ */
+
+ /**
+ * Call `to` parameter.
+ */
+
+ /**
+ * Handlers for native call events. Set upon construction so we can
+ * dynamically bind events to handlers.
+ *
+ * @privateRemarks
+ * This is done by the constructor so this mapping isn't made every time the
+ * {@link (Call:class)._handleNativeEvent} function is invoked.
+ */
+
+ /**
+ * Constructor for the {@link (Call:class) | Call class}. This should not be
+ * invoked by third-party code. All instances of the
+ * {@link (Call:class) | Call class} should be made by the SDK and emitted by
+ * {@link (Voice:class) | Voice objects}.
+ *
+ * @param nativeCallInfo - An object containing all of the data from the
+ * native layer necessary to fully describe a call, as well as invoke native
+ * functionality for the call.
+ *
+ * @internal
+ */
+ constructor({
+ uuid,
+ customParameters,
+ from,
+ sid,
+ state,
+ to,
+ isMuted,
+ isOnHold,
+ initialConnectedTimestamp
+ }) {
+ super();
+
+ _defineProperty(this, "_uuid", void 0);
+
+ _defineProperty(this, "_customParameters", void 0);
+
+ _defineProperty(this, "_from", void 0);
+
+ _defineProperty(this, "_initialConnectedTimestamp", void 0);
+
+ _defineProperty(this, "_isMuted", void 0);
+
+ _defineProperty(this, "_isOnHold", void 0);
+
+ _defineProperty(this, "_sid", void 0);
+
+ _defineProperty(this, "_state", void 0);
+
+ _defineProperty(this, "_to", void 0);
+
+ _defineProperty(this, "_nativeEventHandler", void 0);
+
+ _defineProperty(this, "_handleNativeEvent", nativeCallEvent => {
+ const {
+ type,
+ call: callInfo
+ } = nativeCallEvent;
+ const handler = this._nativeEventHandler[type];
+
+ if (typeof handler === 'undefined') {
+ throw new Error(`Unknown call event type received from the native layer: "${type}".`);
+ }
+
+ if (callInfo.uuid === this._uuid) {
+ handler(nativeCallEvent);
+ }
+ });
+
+ _defineProperty(this, "_handleConnectedEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== Constants.CallEventConnected) {
+ throw new Error('Incorrect "call#connected" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ this.emit(Call.Event.Connected);
+ });
+
+ _defineProperty(this, "_handleConnectFailureEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== Constants.CallEventConnectFailure) {
+ throw new Error('Incorrect "call#connectFailure" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ const {
+ message,
+ code
+ } = nativeCallEvent.error;
+ const error = constructTwilioError(message, code);
+ this.emit(Call.Event.ConnectFailure, error);
+ });
+
+ _defineProperty(this, "_handleDisconnectedEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== Constants.CallEventDisconnected) {
+ throw new Error('Incorrect "call#disconnected" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ if (nativeCallEvent.error) {
+ const {
+ message,
+ code
+ } = nativeCallEvent.error;
+ const error = constructTwilioError(message, code);
+ this.emit(Call.Event.Disconnected, error);
+ } else {
+ this.emit(Call.Event.Disconnected);
+ }
+ });
+
+ _defineProperty(this, "_handleReconnectingEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== Constants.CallEventReconnecting) {
+ throw new Error('Incorrect "call#reconnecting" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ const {
+ message,
+ code
+ } = nativeCallEvent.error;
+ const error = constructTwilioError(message, code);
+ this.emit(Call.Event.Reconnecting, error);
+ });
+
+ _defineProperty(this, "_handleReconnectedEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== Constants.CallEventReconnected) {
+ throw new Error('Incorrect "call#reconnected" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ this.emit(Call.Event.Reconnected);
+ });
+
+ _defineProperty(this, "_handleRingingEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== Constants.CallEventRinging) {
+ throw new Error('Incorrect "call#ringing" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ this.emit(Call.Event.Ringing);
+ });
+
+ _defineProperty(this, "_handleQualityWarningsChangedEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== Constants.CallEventQualityWarningsChanged) {
+ throw new Error('Incorrect "call#qualityWarnings" handler called for type ' + `"${nativeCallEvent.type}".`);
+ }
+
+ this._update(nativeCallEvent);
+
+ const currentWarnings = nativeCallEvent[Constants.CallEventCurrentWarnings];
+ const previousWarnings = nativeCallEvent[Constants.CallEventPreviousWarnings];
+ this.emit(Call.Event.QualityWarningsChanged, currentWarnings, previousWarnings);
+ });
+
+ _defineProperty(this, "_handleMessageReceivedEvent", nativeCallEvent => {
+ if (nativeCallEvent.type !== Constants.CallEventMessageReceived) {
+ throw new Error('Incorrect "call#Received" handler called for type' + `"${nativeCallEvent.type}`);
+ }
+
+ this._update(nativeCallEvent);
+
+ const {
+ callMessage: callMessageInfo
+ } = nativeCallEvent;
+ const incomingCallMessage = new IncomingCallMessage(callMessageInfo);
+ this.emit(Call.Event.MessageReceived, incomingCallMessage);
+ });
+
+ this._uuid = uuid;
+ this._customParameters = { ...customParameters
+ };
+ this._from = from;
+ this._sid = sid;
+ this._state = typeof state === 'string' ? state : Call.State.Connecting;
+ this._to = to;
+ this._isMuted = isMuted;
+ this._isOnHold = isOnHold;
+ this._initialConnectedTimestamp = initialConnectedTimestamp ? new Date(initialConnectedTimestamp) : undefined;
+ this._nativeEventHandler = {
+ /**
+ * Call State
+ */
+ [Constants.CallEventConnected]: this._handleConnectedEvent,
+ [Constants.CallEventConnectFailure]: this._handleConnectFailureEvent,
+ [Constants.CallEventDisconnected]: this._handleDisconnectedEvent,
+ [Constants.CallEventReconnected]: this._handleReconnectedEvent,
+ [Constants.CallEventReconnecting]: this._handleReconnectingEvent,
+ [Constants.CallEventRinging]: this._handleRingingEvent,
+
+ /**
+ * Call Quality
+ */
+ [Constants.CallEventQualityWarningsChanged]: this._handleQualityWarningsChangedEvent,
+
+ /**
+ * Call Message
+ */
+ [Constants.CallEventMessageReceived]: this._handleMessageReceivedEvent
+ };
+ NativeEventEmitter.addListener(Constants.ScopeCall, this._handleNativeEvent);
+ }
+ /**
+ * This intermediate native call event handler acts as a "gate", only
+ * executing the actual call event handler (such as `Connected`) if this call
+ * object matches the `Uuid` of the call that had an event raised.
+ * @param nativeCallEvent - A call event directly from the native layer.
+ */
+
+
+ /**
+ * Helper function to update the state of the call when a call event occurs
+ * that necessitates an update, i.e. upon a
+ * {@link (Call:namespace).Event.Connected | Connected event} we want to
+ * update the state of the call to also reflect the
+ * {@link (Call:namespace).State.Connected | Connected state}.
+ * @param nativeCallEvent - The native call event.
+ */
+ _update({
+ type,
+ call: {
+ from,
+ initialConnectedTimestamp,
+ sid,
+ to
+ }
+ }) {
+ const newState = Call.EventTypeStateMap[type];
+
+ if (typeof newState === 'string') {
+ this._state = newState;
+ }
+
+ this._from = from;
+ this._initialConnectedTimestamp = initialConnectedTimestamp ? new Date(initialConnectedTimestamp) : undefined;
+ this._sid = sid;
+ this._to = to;
+ }
+ /**
+ * Handler for the the {@link (Call:namespace).Event.Connected} event.
+ * @param nativeCallEvent - The native call event.
+ */
+
+
+ /**
+ * Disconnect this side of the call.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the call has disconnected.
+ * - Rejects if the native layer cannot disconnect the call.
+ */
+ disconnect() {
+ return NativeModule.call_disconnect(this._uuid);
+ }
+ /**
+ * Get the mute status of this side of the call.
+ * @returns
+ * - A boolean representing the muted status of the call.
+ * - `undefined` if the call state has not yet been received from the native
+ * layer.
+ */
+
+
+ isMuted() {
+ return this._isMuted;
+ }
+ /**
+ * Get the hold status of this side of the call.
+ * @returns
+ * - A boolean representing the hold status of the call.
+ * - `undefined` if the call state has not yet been received from the native
+ * layer.
+ */
+
+
+ isOnHold() {
+ return this._isOnHold;
+ }
+ /**
+ * Return a `Record` of custom parameters given to this call.
+ * @returns
+ * - A `Record` of custom parameters.
+ */
+
+
+ getCustomParameters() {
+ return this._customParameters;
+ }
+ /**
+ * Get the value of the `from` parameter given to this call.
+ * @returns
+ * - A `String` representing the `from` parameter.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+
+
+ getFrom() {
+ return this._from;
+ }
+ /**
+ * Get the timestamp (milliseconds since epoch) of the call connected event.
+ * @returns
+ * - A `number` representing the timestamp.
+ * - `undefined` if the call has not yet connected.
+ */
+
+
+ getInitialConnectedTimestamp() {
+ return this._initialConnectedTimestamp;
+ }
+ /**
+ * Get the call `SID`.
+ * @returns
+ * - A `String` representing the `SID` of the call.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+
+
+ getSid() {
+ return this._sid;
+ }
+ /**
+ * Get the state of the call object, such as {@link (Call:namespace).State.Connected} or
+ * {@link (Call:namespace).State.Disconnected}.
+ * @returns
+ * - A {@link (Call:namespace).State}.
+ */
+
+
+ getState() {
+ return this._state;
+ }
+ /**
+ * Gets the `PeerConnection` `WebRTC` stats for the ongoing call.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a {@link RTCStats.StatsReport} object representing the
+ * `WebRTC` `PeerConnection` stats of a call.
+ * - Rejects when a {@link RTCStats.StatsReport} cannot be generated for a
+ * call.
+ */
+
+
+ getStats() {
+ return NativeModule.call_getStats(this._uuid);
+ }
+ /**
+ * Get the value of the `to` parameter given to this call.
+ * @returns
+ * - A `String` representing the `to` parameter.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+
+
+ getTo() {
+ return this._to;
+ }
+ /**
+ * Put this end of the call on hold or not on hold.
+ *
+ * @example
+ * To put a call on hold
+ * ```typescript
+ * call.hold(true);
+ * ```
+ * @example
+ * To take a call off hold
+ * ```typescript
+ * call.hold(false);
+ * ```
+ *
+ * @param hold - A `boolean` representing whether or not to put this end of
+ * the call on hold.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the hold status when the call is put on hold or not on
+ * hold.
+ * - Rejects when the call is not able to be put on hold or not on hold.
+ */
+
+
+ async hold(hold) {
+ this._isOnHold = await NativeModule.call_hold(this._uuid, hold);
+ return this._isOnHold;
+ }
+ /**
+ * Mute or unmute this end of the call.
+ *
+ * @example
+ * To mute a call
+ * ```typescript
+ * call.mute(true);
+ * ```
+ *
+ * @example
+ * To unmute a call
+ * ```typescript
+ * call.mute(false);
+ * ```
+ *
+ * @param mute - A `boolean` representing whether or not to mute this end of
+ * the call.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the muted status of the call when the call is muted or
+ * unmuted.
+ * - Rejects when the call is not able to be muted or unmuted.
+ */
+
+
+ async mute(mute) {
+ this._isMuted = await NativeModule.call_mute(this._uuid, mute);
+ return this._isMuted;
+ }
+ /**
+ * Send DTMF digits.
+ *
+ * @example
+ * To send the `0` dialtone:
+ * ```typescript
+ * call.sendDigits('0');
+ * ```
+ *
+ * @example
+ * To send the `0` and then `1` dialtone:
+ * ```typescript
+ * call.sendDigits('01');
+ * ```
+ *
+ * @param digits - A sequence of DTMF digits in a string.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves when the DTMF digits have been sent.
+ * - Rejects when DTMF tones are not able to be sent.
+ */
+
+
+ sendDigits(digits) {
+ return NativeModule.call_sendDigits(this._uuid, digits);
+ }
+ /**
+ * Send a CallMessage.
+ *
+ * @example
+ * To send a user-defined-message
+ * ```typescript
+ * const outgoingCallMessage: OutgoingCallMessage = await call.sendMessage({
+ * content: { key1: 'This is a messsage from the parent call' },
+ * contentType: 'application/json',
+ * messageType: 'user-defined-message'
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
+ * // outgoingCallMessage failed, handle error
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
+ * // outgoingCallMessage sent
+ * });
+ * ```
+ *
+ * @param message The call message to send.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the OutgoingCallMessage object.
+ * - Rejects when the message is unable to be sent.
+ */
+
+
+ async sendMessage(message) {
+ const {
+ content,
+ contentType,
+ messageType
+ } = validateCallMessage(message);
+ const voiceEventSid = await NativeModule.call_sendMessage(this._uuid, content, contentType, messageType);
+ const outgoingCallMessage = new OutgoingCallMessage({
+ content,
+ contentType,
+ messageType,
+ voiceEventSid
+ });
+ return outgoingCallMessage;
+ }
+ /**
+ * Post feedback about a call.
+ *
+ * @example
+ * To report that a call had very significant audio latency:
+ * ```typescript
+ * call.postFeedback(Call.Score.Five, Call.Issue.AudioLatency);
+ * ```
+ *
+ * @param score - A score representing the serverity of the issue being
+ * reported.
+ * @param issue - The issue being reported.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the feedback has been posted.
+ * - Rejects when the feedback is unable to be sent.
+ */
+
+
+ postFeedback(score, issue) {
+ return NativeModule.call_postFeedback(this._uuid, score, issue);
+ }
+
+}
+/**
+ * Namespace for enumerations and types used by
+ * {@link (Call:class) | Call objects}.
+ *
+ * @remarks
+ * - See also the {@link (Call:class) | Call class}.
+ * - See also the {@link (Call:interface) | Call interface}.
+ *
+ * @public
+ */
+
+(function (_Call) {
+ let Event;
+
+ (function (Event) {
+ Event["Connected"] = "connected";
+ Event["ConnectFailure"] = "connectFailure";
+ Event["Reconnecting"] = "reconnecting";
+ Event["Reconnected"] = "reconnected";
+ Event["Disconnected"] = "disconnected";
+ Event["Ringing"] = "ringing";
+ Event["QualityWarningsChanged"] = "qualityWarningsChanged";
+ Event["MessageReceived"] = "messageReceived";
+ })(Event || (Event = {}));
+
+ _Call.Event = Event;
+ let State;
+
+ (function (State) {
+ State[State["Connected"] = Constants.CallStateConnected] = "Connected";
+ State[State["Connecting"] = Constants.CallStateConnecting] = "Connecting";
+ State[State["Disconnected"] = Constants.CallStateDisconnected] = "Disconnected";
+ State[State["Reconnecting"] = Constants.CallStateReconnecting] = "Reconnecting";
+ State[State["Ringing"] = Constants.CallStateRinging] = "Ringing";
+ })(State || (State = {}));
+
+ _Call.State = State;
+ const EventTypeStateMap = _Call.EventTypeStateMap = {
+ [Constants.CallEventConnected]: Call.State.Connected,
+ [Constants.CallEventConnectFailure]: Call.State.Disconnected,
+ [Constants.CallEventDisconnected]: Call.State.Disconnected,
+ [Constants.CallEventReconnecting]: Call.State.Reconnecting,
+ [Constants.CallEventReconnected]: Call.State.Connected,
+ [Constants.CallEventRinging]: Call.State.Ringing
+ };
+ let QualityWarning;
+
+ (function (QualityWarning) {
+ QualityWarning["ConstantAudioInputLevel"] = "constant-audio-input-level";
+ QualityWarning["HighJitter"] = "high-jitter";
+ QualityWarning["HighPacketLoss"] = "high-packet-loss";
+ QualityWarning["HighRtt"] = "high-rtt";
+ QualityWarning["LowMos"] = "low-mos";
+ })(QualityWarning || (QualityWarning = {}));
+
+ _Call.QualityWarning = QualityWarning;
+ let Score;
+
+ (function (Score) {
+ Score[Score["NotReported"] = 0] = "NotReported";
+ Score[Score["One"] = 1] = "One";
+ Score[Score["Two"] = 2] = "Two";
+ Score[Score["Three"] = 3] = "Three";
+ Score[Score["Four"] = 4] = "Four";
+ Score[Score["Five"] = 5] = "Five";
+ })(Score || (Score = {}));
+
+ _Call.Score = Score;
+ let Issue;
+
+ (function (Issue) {
+ Issue["NotReported"] = "not-reported";
+ Issue["DroppedCall"] = "dropped-call";
+ Issue["AudioLatency"] = "audio-latency";
+ Issue["OneWayAudio"] = "one-way-audio";
+ Issue["ChoppyAudio"] = "choppy-audio";
+ Issue["NoisyCall"] = "noisy-call";
+ Issue["Echo"] = "echo";
+ })(Issue || (Issue = {}));
+
+ _Call.Issue = Issue;
+ let Listener;
+
+ (function (_Listener) {})(Listener || (Listener = _Call.Listener || (_Call.Listener = {})));
+})(Call || (Call = {}));
+//# sourceMappingURL=Call.js.map
\ No newline at end of file
diff --git a/lib/module/Call.js.map b/lib/module/Call.js.map
new file mode 100644
index 00000000..55c46bb3
--- /dev/null
+++ b/lib/module/Call.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["Call.tsx"],"names":["EventEmitter","NativeModule","NativeEventEmitter","Constants","constructTwilioError","validateCallMessage","IncomingCallMessage","OutgoingCallMessage","Call","constructor","uuid","customParameters","from","sid","state","to","isMuted","isOnHold","initialConnectedTimestamp","nativeCallEvent","type","call","callInfo","handler","_nativeEventHandler","Error","_uuid","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","MessageReceived","_customParameters","_from","_sid","_state","State","Connecting","_to","_isMuted","_isOnHold","_initialConnectedTimestamp","Date","undefined","_handleConnectedEvent","_handleConnectFailureEvent","_handleDisconnectedEvent","_handleReconnectedEvent","_handleReconnectingEvent","_handleRingingEvent","_handleQualityWarningsChangedEvent","_handleMessageReceivedEvent","addListener","ScopeCall","_handleNativeEvent","newState","EventTypeStateMap","disconnect","call_disconnect","getCustomParameters","getFrom","getInitialConnectedTimestamp","getSid","getState","getStats","call_getStats","getTo","hold","call_hold","mute","call_mute","sendDigits","digits","call_sendDigits","sendMessage","content","contentType","messageType","voiceEventSid","call_sendMessage","outgoingCallMessage","postFeedback","score","issue","call_postFeedback","CallStateConnected","CallStateConnecting","CallStateDisconnected","CallStateReconnecting","CallStateRinging","QualityWarning","Score","Issue","Listener"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,SAASA,YAAT,QAA6B,eAA7B;AAEA,SAASC,YAAT,EAAuBC,kBAAvB,QAAiD,UAAjD;AACA,SAASC,SAAT,QAA0B,aAA1B;AAQA,SAASC,oBAAT,QAAqC,iBAArC;AACA,SAAsBC,mBAAtB,QAAiD,2BAAjD;AACA,SAASC,mBAAT,QAAoC,mCAApC;AACA,SAASC,mBAAT,QAAoC,mCAApC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqSA;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,OAAO,MAAMC,IAAN,SAAmBR,YAAnB,CAAgC;AACrC;AACF;AACA;AACA;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;AACA;AACA;AACA;;AAEE;AACF;AACA;;AAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAME;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACES,EAAAA,WAAW,CAAC;AACVC,IAAAA,IADU;AAEVC,IAAAA,gBAFU;AAGVC,IAAAA,IAHU;AAIVC,IAAAA,GAJU;AAKVC,IAAAA,KALU;AAMVC,IAAAA,EANU;AAOVC,IAAAA,OAPU;AAQVC,IAAAA,QARU;AASVC,IAAAA;AATU,GAAD,EAUQ;AACjB;;AADiB;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,gDAkDWC,eAAD,IAAsC;AACjE,YAAM;AAAEC,QAAAA,IAAF;AAAQC,QAAAA,IAAI,EAAEC;AAAd,UAA2BH,eAAjC;AAEA,YAAMI,OAAO,GAAG,KAAKC,mBAAL,CAAyBJ,IAAzB,CAAhB;;AACA,UAAI,OAAOG,OAAP,KAAmB,WAAvB,EAAoC;AAClC,cAAM,IAAIE,KAAJ,CACH,4DAA2DL,IAAK,IAD7D,CAAN;AAGD;;AAED,UAAIE,QAAQ,CAACZ,IAAT,KAAkB,KAAKgB,KAA3B,EAAkC;AAChCH,QAAAA,OAAO,CAACJ,eAAD,CAAP;AACD;AACF,KA/DkB;;AAAA,mDA6FcA,eAAD,IAAsC;AACpE,UAAIA,eAAe,CAACC,IAAhB,KAAyBjB,SAAS,CAACwB,kBAAvC,EAA2D;AACzD,cAAM,IAAIF,KAAJ,CACJ,wDACG,IAAGN,eAAe,CAACC,IAAK,IAFvB,CAAN;AAID;;AAED,WAAKQ,OAAL,CAAaT,eAAb;;AAEA,WAAKU,IAAL,CAAUrB,IAAI,CAACsB,KAAL,CAAWC,SAArB;AACD,KAxGkB;;AAAA,wDA8GmBZ,eAAD,IAAsC;AACzE,UAAIA,eAAe,CAACC,IAAhB,KAAyBjB,SAAS,CAAC6B,uBAAvC,EAAgE;AAC9D,cAAM,IAAIP,KAAJ,CACJ,6DACG,IAAGN,eAAe,CAACC,IAAK,IAFvB,CAAN;AAID;;AAED,WAAKQ,OAAL,CAAaT,eAAb;;AAEA,YAAM;AAAEc,QAAAA,OAAF;AAAWC,QAAAA;AAAX,UAAoBf,eAAe,CAACgB,KAA1C;AACA,YAAMA,KAAK,GAAG/B,oBAAoB,CAAC6B,OAAD,EAAUC,IAAV,CAAlC;AACA,WAAKL,IAAL,CAAUrB,IAAI,CAACsB,KAAL,CAAWM,cAArB,EAAqCD,KAArC;AACD,KA3HkB;;AAAA,sDAiIiBhB,eAAD,IAAsC;AACvE,UAAIA,eAAe,CAACC,IAAhB,KAAyBjB,SAAS,CAACkC,qBAAvC,EAA8D;AAC5D,cAAM,IAAIZ,KAAJ,CACJ,2DACG,IAAGN,eAAe,CAACC,IAAK,IAFvB,CAAN;AAID;;AAED,WAAKQ,OAAL,CAAaT,eAAb;;AAEA,UAAIA,eAAe,CAACgB,KAApB,EAA2B;AACzB,cAAM;AAAEF,UAAAA,OAAF;AAAWC,UAAAA;AAAX,YAAoBf,eAAe,CAACgB,KAA1C;AACA,cAAMA,KAAK,GAAG/B,oBAAoB,CAAC6B,OAAD,EAAUC,IAAV,CAAlC;AACA,aAAKL,IAAL,CAAUrB,IAAI,CAACsB,KAAL,CAAWQ,YAArB,EAAmCH,KAAnC;AACD,OAJD,MAIO;AACL,aAAKN,IAAL,CAAUrB,IAAI,CAACsB,KAAL,CAAWQ,YAArB;AACD;AACF,KAlJkB;;AAAA,sDAwJiBnB,eAAD,IAAsC;AACvE,UAAIA,eAAe,CAACC,IAAhB,KAAyBjB,SAAS,CAACoC,qBAAvC,EAA8D;AAC5D,cAAM,IAAId,KAAJ,CACJ,2DACG,IAAGN,eAAe,CAACC,IAAK,IAFvB,CAAN;AAID;;AAED,WAAKQ,OAAL,CAAaT,eAAb;;AAEA,YAAM;AAAEc,QAAAA,OAAF;AAAWC,QAAAA;AAAX,UAAoBf,eAAe,CAACgB,KAA1C;AACA,YAAMA,KAAK,GAAG/B,oBAAoB,CAAC6B,OAAD,EAAUC,IAAV,CAAlC;AACA,WAAKL,IAAL,CAAUrB,IAAI,CAACsB,KAAL,CAAWU,YAArB,EAAmCL,KAAnC;AACD,KArKkB;;AAAA,qDA2KgBhB,eAAD,IAAsC;AACtE,UAAIA,eAAe,CAACC,IAAhB,KAAyBjB,SAAS,CAACsC,oBAAvC,EAA6D;AAC3D,cAAM,IAAIhB,KAAJ,CACJ,0DACG,IAAGN,eAAe,CAACC,IAAK,IAFvB,CAAN;AAID;;AAED,WAAKQ,OAAL,CAAaT,eAAb;;AAEA,WAAKU,IAAL,CAAUrB,IAAI,CAACsB,KAAL,CAAWY,WAArB;AACD,KAtLkB;;AAAA,iDA4LYvB,eAAD,IAAsC;AAClE,UAAIA,eAAe,CAACC,IAAhB,KAAyBjB,SAAS,CAACwC,gBAAvC,EAAyD;AACvD,cAAM,IAAIlB,KAAJ,CACJ,sDACG,IAAGN,eAAe,CAACC,IAAK,IAFvB,CAAN;AAID;;AAED,WAAKQ,OAAL,CAAaT,eAAb;;AAEA,WAAKU,IAAL,CAAUrB,IAAI,CAACsB,KAAL,CAAWc,OAArB;AACD,KAvMkB;;AAAA,gEA+MjBzB,eAD2C,IAExC;AACH,UAAIA,eAAe,CAACC,IAAhB,KAAyBjB,SAAS,CAAC0C,+BAAvC,EAAwE;AACtE,cAAM,IAAIpB,KAAJ,CACJ,8DACG,IAAGN,eAAe,CAACC,IAAK,IAFvB,CAAN;AAID;;AAED,WAAKQ,OAAL,CAAaT,eAAb;;AAEA,YAAM2B,eAAe,GAAG3B,eAAe,CAAChB,SAAS,CAAC4C,wBAAX,CAAvC;AACA,YAAMC,gBAAgB,GACpB7B,eAAe,CAAChB,SAAS,CAAC8C,yBAAX,CADjB;AAGA,WAAKpB,IAAL,CACErB,IAAI,CAACsB,KAAL,CAAWoB,sBADb,EAEEJ,eAFF,EAGEE,gBAHF;AAKD,KAnOkB;;AAAA,yDAyOoB7B,eAAD,IAAsC;AAC1E,UAAIA,eAAe,CAACC,IAAhB,KAAyBjB,SAAS,CAACgD,wBAAvC,EAAiE;AAC/D,cAAM,IAAI1B,KAAJ,CACJ,sDACG,IAAGN,eAAe,CAACC,IAAK,EAFvB,CAAN;AAID;;AAED,WAAKQ,OAAL,CAAaT,eAAb;;AAEA,YAAM;AAAEiC,QAAAA,WAAW,EAAEC;AAAf,UAAmClC,eAAzC;AAEA,YAAMmC,mBAAmB,GAAG,IAAIhD,mBAAJ,CAAwB+C,eAAxB,CAA5B;AAEA,WAAKxB,IAAL,CAAUrB,IAAI,CAACsB,KAAL,CAAWyB,eAArB,EAAsCD,mBAAtC;AACD,KAxPkB;;AAGjB,SAAK5B,KAAL,GAAahB,IAAb;AACA,SAAK8C,iBAAL,GAAyB,EAAE,GAAG7C;AAAL,KAAzB;AACA,SAAK8C,KAAL,GAAa7C,IAAb;AACA,SAAK8C,IAAL,GAAY7C,GAAZ;AACA,SAAK8C,MAAL,GAAc,OAAO7C,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoCN,IAAI,CAACoD,KAAL,CAAWC,UAA7D;AACA,SAAKC,GAAL,GAAW/C,EAAX;AACA,SAAKgD,QAAL,GAAgB/C,OAAhB;AACA,SAAKgD,SAAL,GAAiB/C,QAAjB;AACA,SAAKgD,0BAAL,GAAkC/C,yBAAyB,GACvD,IAAIgD,IAAJ,CAAShD,yBAAT,CADuD,GAEvDiD,SAFJ;AAIA,SAAK3C,mBAAL,GAA2B;AACzB;AACN;AACA;AACM,OAACrB,SAAS,CAACwB,kBAAX,GAAgC,KAAKyC,qBAJZ;AAKzB,OAACjE,SAAS,CAAC6B,uBAAX,GAAqC,KAAKqC,0BALjB;AAMzB,OAAClE,SAAS,CAACkC,qBAAX,GAAmC,KAAKiC,wBANf;AAOzB,OAACnE,SAAS,CAACsC,oBAAX,GAAkC,KAAK8B,uBAPd;AAQzB,OAACpE,SAAS,CAACoC,qBAAX,GAAmC,KAAKiC,wBARf;AASzB,OAACrE,SAAS,CAACwC,gBAAX,GAA8B,KAAK8B,mBATV;;AAWzB;AACN;AACA;AACM,OAACtE,SAAS,CAAC0C,+BAAX,GACE,KAAK6B,kCAfkB;;AAiBzB;AACN;AACA;AACM,OAACvE,SAAS,CAACgD,wBAAX,GAAsC,KAAKwB;AApBlB,KAA3B;AAuBAzE,IAAAA,kBAAkB,CAAC0E,WAAnB,CACEzE,SAAS,CAAC0E,SADZ,EAEE,KAAKC,kBAFP;AAID;AAED;AACF;AACA;AACA;AACA;AACA;;;AAgBE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACUlD,EAAAA,OAAO,CAAC;AACdR,IAAAA,IADc;AAEdC,IAAAA,IAAI,EAAE;AAAET,MAAAA,IAAF;AAAQM,MAAAA,yBAAR;AAAmCL,MAAAA,GAAnC;AAAwCE,MAAAA;AAAxC;AAFQ,GAAD,EAGK;AAClB,UAAMgE,QAAQ,GAAGvE,IAAI,CAACwE,iBAAL,CAAuB5D,IAAvB,CAAjB;;AACA,QAAI,OAAO2D,QAAP,KAAoB,QAAxB,EAAkC;AAChC,WAAKpB,MAAL,GAAcoB,QAAd;AACD;;AACD,SAAKtB,KAAL,GAAa7C,IAAb;AACA,SAAKqD,0BAAL,GAAkC/C,yBAAyB,GACvD,IAAIgD,IAAJ,CAAShD,yBAAT,CADuD,GAEvDiD,SAFJ;AAGA,SAAKT,IAAL,GAAY7C,GAAZ;AACA,SAAKiD,GAAL,GAAW/C,EAAX;AACD;AAED;AACF;AACA;AACA;;;AA8JE;AACF;AACA;AACA;AACA;AACA;AACA;AACEkE,EAAAA,UAAU,GAAkB;AAC1B,WAAOhF,YAAY,CAACiF,eAAb,CAA6B,KAAKxD,KAAlC,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEV,EAAAA,OAAO,GAAwB;AAC7B,WAAO,KAAK+C,QAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACE9C,EAAAA,QAAQ,GAAwB;AAC9B,WAAO,KAAK+C,SAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEmB,EAAAA,mBAAmB,GAAqB;AACtC,WAAO,KAAK3B,iBAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACE4B,EAAAA,OAAO,GAAuB;AAC5B,WAAO,KAAK3B,KAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;AACE4B,EAAAA,4BAA4B,GAAqB;AAC/C,WAAO,KAAKpB,0BAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEqB,EAAAA,MAAM,GAAuB;AAC3B,WAAO,KAAK5B,IAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;AACE6B,EAAAA,QAAQ,GAAe;AACrB,WAAO,KAAK5B,MAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACE6B,EAAAA,QAAQ,GAAkC;AACxC,WAAOvF,YAAY,CAACwF,aAAb,CAA2B,KAAK/D,KAAhC,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEgE,EAAAA,KAAK,GAAuB;AAC1B,WAAO,KAAK5B,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,QAAJ6B,IAAI,CAACA,IAAD,EAAkC;AAC1C,SAAK3B,SAAL,GAAiB,MAAM/D,YAAY,CAAC2F,SAAb,CAAuB,KAAKlE,KAA5B,EAAmCiE,IAAnC,CAAvB;AACA,WAAO,KAAK3B,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,QAAJ6B,IAAI,CAACA,IAAD,EAAkC;AAC1C,SAAK9B,QAAL,GAAgB,MAAM9D,YAAY,CAAC6F,SAAb,CAAuB,KAAKpE,KAA5B,EAAmCmE,IAAnC,CAAtB;AACA,WAAO,KAAK9B,QAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACEgC,EAAAA,UAAU,CAACC,MAAD,EAAgC;AACxC,WAAO/F,YAAY,CAACgG,eAAb,CAA6B,KAAKvE,KAAlC,EAAyCsE,MAAzC,CAAP;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,CAACjE,OAAD,EAAqD;AACpE,UAAM;AAAEkE,MAAAA,OAAF;AAAWC,MAAAA,WAAX;AAAwBC,MAAAA;AAAxB,QAAwChG,mBAAmB,CAAC4B,OAAD,CAAjE;AAEA,UAAMqE,aAAa,GAAG,MAAMrG,YAAY,CAACsG,gBAAb,CAC1B,KAAK7E,KADqB,EAE1ByE,OAF0B,EAG1BC,WAH0B,EAI1BC,WAJ0B,CAA5B;AAOA,UAAMG,mBAAmB,GAAG,IAAIjG,mBAAJ,CAAwB;AAClD4F,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;;;AACEC,EAAAA,YAAY,CAACC,KAAD,EAAoBC,KAApB,EAAsD;AAChE,WAAO1G,YAAY,CAAC2G,iBAAb,CAA+B,KAAKlF,KAApC,EAA2CgF,KAA3C,EAAkDC,KAAlD,CAAP;AACD;;AA1kBoC;AA6kBvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;MAKc7E,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;KAAAA,K,KAAAA,K;;;MAqDA8B,K;;aAAAA,K;AAAAA,IAAAA,K,CAAAA,K,gBAYIzD,SAAS,CAAC0G,kB;AAZdjD,IAAAA,K,CAAAA,K,iBAmBKzD,SAAS,CAAC2G,mB;AAnBflD,IAAAA,K,CAAAA,K,mBAgCOzD,SAAS,CAAC4G,qB;AAhCjBnD,IAAAA,K,CAAAA,K,mBA2COzD,SAAS,CAAC6G,qB;AA3CjBpD,IAAAA,K,CAAAA,K,cAoDEzD,SAAS,CAAC8G,gB;KApDZrD,K,KAAAA,K;;;AAmEL,QAAMoB,iBAEZ,6BAAG;AACF,KAAC7E,SAAS,CAACwB,kBAAX,GAAgCnB,IAAI,CAACoD,KAAL,CAAW7B,SADzC;AAEF,KAAC5B,SAAS,CAAC6B,uBAAX,GAAqCxB,IAAI,CAACoD,KAAL,CAAWtB,YAF9C;AAGF,KAACnC,SAAS,CAACkC,qBAAX,GAAmC7B,IAAI,CAACoD,KAAL,CAAWtB,YAH5C;AAIF,KAACnC,SAAS,CAACoC,qBAAX,GAAmC/B,IAAI,CAACoD,KAAL,CAAWpB,YAJ5C;AAKF,KAACrC,SAAS,CAACsC,oBAAX,GAAkCjC,IAAI,CAACoD,KAAL,CAAW7B,SAL3C;AAMF,KAAC5B,SAAS,CAACwC,gBAAX,GAA8BnC,IAAI,CAACoD,KAAL,CAAWhB;AANvC,GAFG;MAcKsE,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;;;MA8BAC,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;;;;;4BAmCKC,Q,KAAAA,Q,SAAAA,Q,WAAAA,Q;GAtOF7G,I,KAAAA,I","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} from './type/Call';\nimport type { CustomParameters, Uuid } from './type/common';\nimport type { TwilioError } from './error/TwilioError';\nimport { constructTwilioError } from './error/utility';\nimport { CallMessage, validateCallMessage } from './CallMessage/CallMessage';\nimport { IncomingCallMessage } from './CallMessage/IncomingCallMessage';\nimport { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';\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 = Call.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 disconnect(): Promise {\n return 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 getStats(): Promise {\n return NativeModule.call_getStats(this._uuid);\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 {\n this._isOnHold = await NativeModule.call_hold(this._uuid, hold);\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 {\n this._isMuted = await NativeModule.call_mute(this._uuid, mute);\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 sendDigits(digits: string): Promise {\n return 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 {\n const { content, contentType, messageType } = validateCallMessage(message);\n\n const voiceEventSid = await NativeModule.call_sendMessage(\n this._uuid,\n content,\n contentType,\n messageType\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 postFeedback(score: Call.Score, issue: Call.Issue): Promise {\n return NativeModule.call_postFeedback(this._uuid, score, issue);\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 * 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 */\n export const EventTypeStateMap: Partial<\n Record\n > = {\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 * 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"]}
\ No newline at end of file
diff --git a/lib/module/CallInvite.js b/lib/module/CallInvite.js
new file mode 100644
index 00000000..0d34e80c
--- /dev/null
+++ b/lib/module/CallInvite.js
@@ -0,0 +1,450 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { EventEmitter } from 'eventemitter3';
+import { Call } from './Call';
+import { NativeEventEmitter, NativeModule, Platform } from './common';
+import { InvalidStateError } from './error/InvalidStateError';
+import { TwilioError } from './error/TwilioError';
+import { UnsupportedPlatformError } from './error/UnsupportedPlatformError';
+import { constructTwilioError } from './error/utility';
+import { validateCallMessage } from './CallMessage/CallMessage';
+import { IncomingCallMessage } from './CallMessage/IncomingCallMessage';
+import { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';
+import { Constants } from './constants';
+/**
+ * Defines strict typings for all events emitted by {@link (CallInvite:class)
+ * | CallInvite objects}.
+ *
+ * @remarks
+ * Note that the `on` function is an alias for the `addListener` function.
+ * They share identical functionality and either may be used interchangeably.
+ *
+ * - See also the {@link (CallInvite:class) | CallInvite class}.
+ * - See also the {@link (CallInvite:namespace) | CallInvite namespace}.
+ *
+ * @public
+ */
+
+/**
+ * Provides access to information about a call invite, including the call
+ * parameters, and exposes functionality to accept or decline a call.
+ *
+ * @remarks
+ *
+ * Note that when a `CallInvite` is acted upon (i.e. when
+ * {@link (CallInvite:class).accept} or {@link (CallInvite:class).reject} is
+ * invoked), then the `CallInvite` is "settled".
+ *
+ * The state of the `CallInvite` is changed from
+ * {@link (CallInvite:namespace).State.Pending} to
+ * {@link (CallInvite:namespace).State.Accepted} or
+ * {@link (CallInvite:namespace).State.Rejected} and the `CallInvite` can no
+ * longer be acted upon further.
+ *
+ * Further action after "settling" a `CallInvite` will throw an error.
+ *
+ * - See the {@link (CallInvite:namespace) | CallInvite namespace} for
+ * enumerations and types used by this class.
+ *
+ * @public
+ */
+export class CallInvite extends EventEmitter {
+ /**
+ * The current state of the call invite.
+ *
+ * @remarks
+ * See {@link (CallInvite:namespace).State}.
+ */
+
+ /**
+ * The `Uuid` of this call invite. Used to identify calls between the JS and
+ * native layer so we can associate events and native functionality between
+ * the layers.
+ */
+
+ /**
+ * A string representing the SID of this call.
+ */
+
+ /**
+ * Call custom parameters.
+ */
+
+ /**
+ * Call `from` parameter.
+ */
+
+ /**
+ * Call `to` parameter.
+ */
+
+ /**
+ * These objects should not be instantiated by consumers of the SDK. All
+ * instances of the `CallInvite` class should be emitted by the SDK.
+ *
+ * @param nativeCallInviteInfo - A dataobject containing the native
+ * information of a call invite.
+ * @param state - Mocking options for testing.
+ *
+ * @internal
+ */
+ constructor({
+ uuid,
+ callSid,
+ customParameters,
+ from,
+ to
+ }, state) {
+ super();
+
+ _defineProperty(this, "_state", void 0);
+
+ _defineProperty(this, "_uuid", void 0);
+
+ _defineProperty(this, "_callSid", void 0);
+
+ _defineProperty(this, "_customParameters", void 0);
+
+ _defineProperty(this, "_from", void 0);
+
+ _defineProperty(this, "_to", void 0);
+
+ _defineProperty(this, "_handleNativeCallInviteEvent", nativeCallInviteEvent => {
+ if (typeof nativeCallInviteEvent !== 'object') {
+ throw new TwilioError(`Received a "${typeof nativeCallInviteEvent}" native call invite event.`);
+ }
+
+ if (nativeCallInviteEvent === null) {
+ throw new TwilioError('Received a null native call invite event.');
+ }
+
+ if (typeof nativeCallInviteEvent.callSid !== 'string') {
+ throw new TwilioError('Received a native call invite event without a call SID.');
+ }
+
+ if (nativeCallInviteEvent.callSid !== this._callSid) {
+ return;
+ }
+
+ switch (nativeCallInviteEvent.type) {
+ case Constants.CallInviteEventTypeValueAccepted:
+ return this._handleCallInviteAccepted(nativeCallInviteEvent);
+
+ case Constants.CallInviteEventTypeValueRejected:
+ return this._handleCallInviteRejected();
+
+ case Constants.CallInviteEventTypeValueCancelled:
+ return this._handleCallInviteCancelled(nativeCallInviteEvent);
+
+ case Constants.CallInviteEventTypeValueNotificationTapped:
+ return this._handleCallInviteNotificationTapped();
+
+ case Constants.CallEventMessageReceived:
+ return this._handleMessageReceivedEvent(nativeCallInviteEvent);
+
+ default:
+ return this._handleUnexpectedCallInviteEventType(nativeCallInviteEvent);
+ }
+ });
+
+ _defineProperty(this, "_handleMessageReceivedEvent", nativeCallInviteEvent => {
+ const {
+ callMessage: callMessageInfo
+ } = nativeCallInviteEvent;
+ const callMessage = new IncomingCallMessage(callMessageInfo);
+ this.emit(CallInvite.Event.MessageReceived, callMessage);
+ });
+
+ _defineProperty(this, "_handleCallInviteAccepted", ({
+ callInvite
+ }) => {
+ this._state = CallInvite.State.Accepted;
+ const callInfo = {
+ uuid: callInvite.uuid,
+ customParameters: callInvite.customParameters,
+ sid: callInvite.callSid,
+ from: callInvite.from,
+ to: callInvite.to
+ };
+ const call = new Call(callInfo);
+ this.emit(CallInvite.Event.Accepted, call);
+ });
+
+ _defineProperty(this, "_handleCallInviteRejected", () => {
+ this._state = CallInvite.State.Rejected;
+ this.emit(CallInvite.Event.Rejected);
+ });
+
+ _defineProperty(this, "_handleCallInviteCancelled", nativeCallInviteCancelledEvent => {
+ this._state = CallInvite.State.Cancelled;
+ const error = nativeCallInviteCancelledEvent.error ? constructTwilioError(nativeCallInviteCancelledEvent.error.message, nativeCallInviteCancelledEvent.error.code) : undefined;
+ this.emit(CallInvite.Event.Cancelled, error);
+ });
+
+ _defineProperty(this, "_handleCallInviteNotificationTapped", () => {
+ this.emit(CallInvite.Event.NotificationTapped);
+ });
+
+ this._uuid = uuid;
+ this._callSid = callSid;
+ this._customParameters = { ...customParameters
+ };
+ this._from = from;
+ this._to = to;
+ this._state = state;
+ NativeEventEmitter.addListener(Constants.ScopeCallInvite, this._handleNativeCallInviteEvent);
+ }
+ /**
+ * This helper function serves as both a runtime-check error log and a
+ * compile-time type-guard. If the switch-case statement below is non-
+ * exhaustive, then the type passed to this function will _not_ have type
+ * `never`.
+ */
+
+
+ _handleUnexpectedCallInviteEventType(event) {
+ throw new TwilioError(`Unknown event type "${event === null || event === void 0 ? void 0 : event.type}" reached call invite.`);
+ }
+ /**
+ * This intermediate native call invite event handler acts as a "gate", only
+ * executing the actual call invite event handler (such as `Accepted`) if
+ * this call invite object matches the `Uuid` of the call invite that had an
+ * event raised.
+ * @param nativeCallInviteEvent - A call invite event directly from the native
+ * layer.
+ */
+
+
+ /**
+ * Accept a call invite. Sets the state of this call invite to
+ * {@link (CallInvite:namespace).State.Accepted}.
+ * @param options - Options to pass to the native layer when accepting the
+ * call.
+ * @returns
+ * - Resolves when a {@link (Call:class) | Call object} associated with this
+ * {@link (CallInvite:class)} has been created.
+ */
+ async accept(options = {}) {
+ if (this._state !== CallInvite.State.Pending) {
+ throw new InvalidStateError(`Call in state "${this._state}", ` + `expected state "${CallInvite.State.Pending}".`);
+ }
+
+ const acceptResult = await NativeModule.callInvite_accept(this._uuid, options).then(callInfo => {
+ return {
+ type: 'ok',
+ callInfo
+ };
+ }).catch(error => {
+ const code = error.userInfo.code;
+ const message = error.userInfo.message;
+ return {
+ type: 'err',
+ message,
+ code
+ };
+ });
+
+ if (acceptResult.type === 'err') {
+ throw constructTwilioError(acceptResult.message, acceptResult.code);
+ }
+
+ return new Call(acceptResult.callInfo);
+ }
+ /**
+ * Reject a call invite. Sets the state of this call invite to
+ * {@link (CallInvite:namespace).State.Rejected}.
+ * @returns
+ * - Resolves when the {@link (CallInvite:class)} has been rejected.
+ */
+
+
+ async reject() {
+ if (this._state !== CallInvite.State.Pending) {
+ throw new InvalidStateError(`Call in state "${this._state}", ` + `expected state "${CallInvite.State.Pending}".`);
+ }
+
+ await NativeModule.callInvite_reject(this._uuid);
+ }
+ /**
+ * Check if a `CallInvite` is valid.
+ *
+ * @returns
+ * - TODO
+ *
+ * @alpha
+ */
+
+
+ isValid() {
+ return NativeModule.callInvite_isValid(this._uuid);
+ }
+ /**
+ * Get the call SID associated with this `CallInvite` class.
+ * @returns - A string representing the call SID.
+ */
+
+
+ getCallSid() {
+ return this._callSid;
+ }
+ /**
+ * Get the custom parameters of the call associated with this `CallInvite`
+ * class.
+ * @returns - A `Record` of custom parameters.
+ */
+
+
+ getCustomParameters() {
+ return this._customParameters;
+ }
+ /**
+ * Get the `from` parameter of the call associated with this `CallInvite`
+ * class.
+ * @returns - A `string` representing the `from` parameter.
+ */
+
+
+ getFrom() {
+ return this._from;
+ }
+ /**
+ * Get the `state` of the `CallInvite`.
+ * @returns - The `state` of this `CallInvite`.
+ */
+
+
+ getState() {
+ return this._state;
+ }
+ /**
+ * Get the `to` parameter of the call associated with this `CallInvite`
+ * class.
+ * @returns - A `string` representing the `to` parameter.
+ */
+
+
+ getTo() {
+ return this._to;
+ }
+ /**
+ * Send a CallMessage.
+ *
+ * @example
+ * To send a user-defined-message
+ * ```typescript
+ * const outgoingCallMessage: OutgoingCallMessage = await callInvite.sendMessage({
+ * content: { key1: 'This is a messsage from the parent call invite' },
+ * contentType: 'application/json',
+ * messageType: 'user-defined-message'
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
+ * // outgoingCallMessage failed, handle error
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
+ * // outgoingCallMessage sent
+ * });
+ * ```
+ *
+ * @param message The call message to send.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the OutgoingCallMessage object.
+ * - Rejects when the message is unable to be sent.
+ */
+
+
+ async sendMessage(message) {
+ const {
+ content,
+ contentType,
+ messageType
+ } = validateCallMessage(message);
+ const voiceEventSid = await NativeModule.call_sendMessage(this._uuid, content, contentType, messageType);
+ const outgoingCallMessage = new OutgoingCallMessage({
+ content,
+ contentType,
+ messageType,
+ voiceEventSid
+ });
+ return outgoingCallMessage;
+ }
+ /**
+ * Update the caller name displayed in the iOS system incoming call screen.
+ *
+ * @param newHandle - The new value of the caller's name.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * This API is specific to iOS and unavailable in Android. Invoke this method
+ * after the incoming call has been reported to CallKit and before the call
+ * has been accepted. For example, perform an async request to your app server
+ * to fetch the full name of the caller and use this method to replace the
+ * default caller name in `from`.
+ *
+ * @returns
+ * - Resolves when the caller name has been updated.
+ */
+
+
+ async updateCallerHandle(newHandle) {
+ switch (Platform.OS) {
+ case 'ios':
+ return NativeModule.callInvite_updateCallerHandle(this._uuid, newHandle);
+
+ default:
+ throw new UnsupportedPlatformError(`Unsupported platform "${Platform.OS}". This method is only supported on iOS.`);
+ }
+ }
+
+}
+/**
+ * Provides enumerations and types used by a {@link (CallInvite:class)
+ * | CallInvite object}.
+ *
+ * @remarks
+ * - See also the {@link (CallInvite:class) | CallInvite class}.
+ *
+ * @public
+ */
+
+(function (_CallInvite) {
+ /**
+ * Options to pass to the native layer when accepting the call.
+ */
+ let State;
+
+ (function (State) {
+ State["Pending"] = "pending";
+ State["Accepted"] = "accepted";
+ State["Rejected"] = "rejected";
+ State["Cancelled"] = "cancelled";
+ })(State || (State = {}));
+
+ _CallInvite.State = State;
+ let Event;
+
+ (function (Event) {
+ Event["Accepted"] = "accepted";
+ Event["Rejected"] = "rejected";
+ Event["Cancelled"] = "cancelled";
+ Event["NotificationTapped"] = "notificationTapped";
+ Event["MessageReceived"] = "messageReceived";
+ })(Event || (Event = {}));
+
+ _CallInvite.Event = Event;
+ let Listener;
+
+ (function (_Listener) {})(Listener || (Listener = _CallInvite.Listener || (_CallInvite.Listener = {})));
+})(CallInvite || (CallInvite = {}));
+//# sourceMappingURL=CallInvite.js.map
\ No newline at end of file
diff --git a/lib/module/CallInvite.js.map b/lib/module/CallInvite.js.map
new file mode 100644
index 00000000..47c34a41
--- /dev/null
+++ b/lib/module/CallInvite.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["CallInvite.tsx"],"names":["EventEmitter","Call","NativeEventEmitter","NativeModule","Platform","InvalidStateError","TwilioError","UnsupportedPlatformError","constructTwilioError","validateCallMessage","IncomingCallMessage","OutgoingCallMessage","Constants","CallInvite","constructor","uuid","callSid","customParameters","from","to","state","nativeCallInviteEvent","_callSid","type","CallInviteEventTypeValueAccepted","_handleCallInviteAccepted","CallInviteEventTypeValueRejected","_handleCallInviteRejected","CallInviteEventTypeValueCancelled","_handleCallInviteCancelled","CallInviteEventTypeValueNotificationTapped","_handleCallInviteNotificationTapped","CallEventMessageReceived","_handleMessageReceivedEvent","_handleUnexpectedCallInviteEventType","callMessage","callMessageInfo","emit","Event","MessageReceived","callInvite","_state","State","Accepted","callInfo","sid","call","Rejected","nativeCallInviteCancelledEvent","Cancelled","error","message","code","undefined","NotificationTapped","_uuid","_customParameters","_from","_to","addListener","ScopeCallInvite","_handleNativeCallInviteEvent","event","accept","options","Pending","acceptResult","callInvite_accept","then","catch","userInfo","reject","callInvite_reject","isValid","callInvite_isValid","getCallSid","getCustomParameters","getFrom","getState","getTo","sendMessage","content","contentType","messageType","voiceEventSid","call_sendMessage","outgoingCallMessage","updateCallerHandle","newHandle","OS","callInvite_updateCallerHandle","Listener"],"mappings":"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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 { Call } from './Call';\nimport { NativeEventEmitter, NativeModule, Platform } from './common';\nimport { InvalidStateError } from './error/InvalidStateError';\nimport { TwilioError } from './error/TwilioError';\nimport { UnsupportedPlatformError } from './error/UnsupportedPlatformError';\nimport { constructTwilioError } from './error/utility';\nimport type {\n NativeCallInviteInfo,\n NativeCallInviteEvent,\n NativeCallInviteAcceptedEvent,\n NativeCallInviteCancelledEvent,\n NativeCallInviteMessageReceivedEvent,\n} from './type/CallInvite';\nimport type { CustomParameters, Uuid } from './type/common';\nimport { CallMessage, validateCallMessage } from './CallMessage/CallMessage';\nimport { IncomingCallMessage } from './CallMessage/IncomingCallMessage';\nimport { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';\nimport { Constants } from './constants';\n\n/**\n * Defines strict typings for all events emitted by {@link (CallInvite:class)\n * | CallInvite 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 (CallInvite:class) | CallInvite class}.\n * - See also the {@link (CallInvite:namespace) | CallInvite namespace}.\n *\n * @public\n */\nexport declare interface CallInvite {\n /**\n * ------------\n * Emit Typings\n * ------------\n */\n\n /** @internal */\n emit(acceptedEvent: CallInvite.Event.Accepted, call: Call): boolean;\n\n /** @internal */\n emit(rejectedEvent: CallInvite.Event.Rejected): boolean;\n\n /** @internal */\n emit(\n cancelledEvent: CallInvite.Event.Cancelled,\n error?: TwilioError\n ): boolean;\n\n /** @internal */\n emit(notificationTappedEvent: CallInvite.Event.NotificationTapped): boolean;\n\n /** @internal */\n emit(\n messageReceivedEvent: CallInvite.Event.MessageReceived,\n incomingCallMessage: IncomingCallMessage\n ): boolean;\n\n /**\n * ----------------\n * Listener Typings\n * ----------------\n */\n\n /**\n * Accepted event. Raised when the call invite has been accepted.\n *\n * @example\n * ```ts\n * voice.on(Voice.Event.CallInvite, (callInvite) => {\n * callInvite.on(CallInvite.Event.Accepted, (call) => {\n * // the call invite was accepted through either the native layer\n * // or the js layer\n * });\n * });\n * ```\n *\n * @remarks\n *\n * @param acceptedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call invite object.\n */\n addListener(\n acceptedEvent: CallInvite.Event.Accepted,\n listener: CallInvite.Listener.Accepted\n ): this;\n /** {@inheritDoc (CallInvite:interface).(addListener:1)} */\n on(\n acceptedEvent: CallInvite.Event.Accepted,\n listener: CallInvite.Listener.Accepted\n ): this;\n\n /**\n * Rejected event. Raised when the call invite has been rejected.\n *\n * @example\n * ```ts\n * voice.on(Voice.Event.CallInvite, (callInvite) => {\n * callInvite.on(CallInvite.Event.Rejected, () => {\n * // the call invite was rejected through either the native layer\n * // or the js layer\n * });\n * });\n * ```\n *\n * @remarks\n *\n * @param rejectedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call invite object.\n */\n addListener(\n rejectedEvent: CallInvite.Event.Rejected,\n listener: CallInvite.Listener.Rejected\n ): this;\n /** {@inheritDoc (CallInvite:interface).(addListener:2)} */\n on(\n rejectedEvent: CallInvite.Event.Rejected,\n listener: CallInvite.Listener.Rejected\n ): this;\n\n /**\n * Cancelled event. Raised when the call invite has been cancelled.\n *\n * @example\n * ```ts\n * voice.on(Voice.Event.CallInvite, (callInvite) => {\n * callInvite.on(CallInvite.Event.Cancelled, (error) => {\n * // the call invite was cancelled\n * });\n * });\n * ```\n *\n * @remarks\n *\n * @param cancelledEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call invite object.\n */\n addListener(\n cancelledEvent: CallInvite.Event.Cancelled,\n listener: CallInvite.Listener.Cancelled\n ): this;\n /** {@inheritDoc (CallInvite:interface).(addListener:3)} */\n on(\n cancelledEvent: CallInvite.Event.Cancelled,\n listener: CallInvite.Listener.Cancelled\n ): this;\n\n /**\n * Notification tapped event. Raised when the call invite notification has\n * been tapped.\n *\n * @example\n * ```ts\n * voice.on(Voice.Event.CallInvite, (callInvite) => {\n * callInvite.on(CallInvite.Event.NotificationTapped, () => {\n * // the call invite notification was tapped\n * });\n * });\n * ```\n *\n * @remarks\n * This API is Android specific.\n *\n * @param notificationTappedEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The call invite object.\n */\n addListener(\n notificationTappedEvent: CallInvite.Event.NotificationTapped,\n listener: CallInvite.Listener.NotificationTapped\n ): this;\n /** {@inheritDoc (CallInvite:interface).(addListener:4)} */\n on(\n notificationTappedEvent: CallInvite.Event.NotificationTapped,\n listener: CallInvite.Listener.NotificationTapped\n ): this;\n\n /**\n * MessageReceived event. Raised when a {@link IncomingCallMessage} is\n * received.\n *\n * @example\n * ```typescript\n * voice.on(Voice.Event.CallInvite, (callInvite) => {\n * callInvite.addListener(CallInvite.Event.MessageReceived, (message) => {\n * // callMessage received\n * });\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: CallInvite.Event.MessageReceived,\n listener: CallInvite.Listener.MessageReceived\n ): this;\n /** {@inheritDoc (CallInvite:interface).(addListener:5)} */\n on(\n messageReceivedEvent: CallInvite.Event.MessageReceived,\n listener: CallInvite.Listener.MessageReceived\n ): this;\n}\n\n/**\n * Provides access to information about a call invite, including the call\n * parameters, and exposes functionality to accept or decline a call.\n *\n * @remarks\n *\n * Note that when a `CallInvite` is acted upon (i.e. when\n * {@link (CallInvite:class).accept} or {@link (CallInvite:class).reject} is\n * invoked), then the `CallInvite` is \"settled\".\n *\n * The state of the `CallInvite` is changed from\n * {@link (CallInvite:namespace).State.Pending} to\n * {@link (CallInvite:namespace).State.Accepted} or\n * {@link (CallInvite:namespace).State.Rejected} and the `CallInvite` can no\n * longer be acted upon further.\n *\n * Further action after \"settling\" a `CallInvite` will throw an error.\n *\n * - See the {@link (CallInvite:namespace) | CallInvite namespace} for\n * enumerations and types used by this class.\n *\n * @public\n */\nexport class CallInvite extends EventEmitter {\n /**\n * The current state of the call invite.\n *\n * @remarks\n * See {@link (CallInvite:namespace).State}.\n */\n private _state: CallInvite.State;\n /**\n * The `Uuid` of this call invite. Used to identify calls between the JS and\n * native layer so we can associate events and native functionality between\n * the layers.\n */\n private _uuid: Uuid;\n /**\n * A string representing the SID of this call.\n */\n private _callSid: string;\n /**\n * Call custom parameters.\n */\n private _customParameters: CustomParameters;\n /**\n * Call `from` parameter.\n */\n private _from: string;\n /**\n * Call `to` parameter.\n */\n private _to: string;\n\n /**\n * These objects should not be instantiated by consumers of the SDK. All\n * instances of the `CallInvite` class should be emitted by the SDK.\n *\n * @param nativeCallInviteInfo - A dataobject containing the native\n * information of a call invite.\n * @param state - Mocking options for testing.\n *\n * @internal\n */\n constructor(\n { uuid, callSid, customParameters, from, to }: NativeCallInviteInfo,\n state: CallInvite.State\n ) {\n super();\n\n this._uuid = uuid;\n this._callSid = callSid;\n this._customParameters = { ...customParameters };\n this._from = from;\n this._to = to;\n\n this._state = state;\n\n NativeEventEmitter.addListener(\n Constants.ScopeCallInvite,\n this._handleNativeCallInviteEvent\n );\n }\n\n /**\n * This helper function serves as both a runtime-check error log and a\n * compile-time type-guard. If the switch-case statement below is non-\n * exhaustive, then the type passed to this function will _not_ have type\n * `never`.\n */\n private _handleUnexpectedCallInviteEventType(event: never) {\n throw new TwilioError(\n `Unknown event type \"${(event as any)?.type}\" reached call invite.`\n );\n }\n\n /**\n * This intermediate native call invite event handler acts as a \"gate\", only\n * executing the actual call invite event handler (such as `Accepted`) if\n * this call invite object matches the `Uuid` of the call invite that had an\n * event raised.\n * @param nativeCallInviteEvent - A call invite event directly from the native\n * layer.\n */\n private _handleNativeCallInviteEvent = (\n nativeCallInviteEvent: NativeCallInviteEvent\n ) => {\n if (typeof nativeCallInviteEvent !== 'object') {\n throw new TwilioError(\n `Received a \"${typeof nativeCallInviteEvent}\" native call invite event.`\n );\n }\n\n if (nativeCallInviteEvent === null) {\n throw new TwilioError('Received a null native call invite event.');\n }\n\n if (typeof nativeCallInviteEvent.callSid !== 'string') {\n throw new TwilioError(\n 'Received a native call invite event without a call SID.'\n );\n }\n\n if (nativeCallInviteEvent.callSid !== this._callSid) {\n return;\n }\n\n switch (nativeCallInviteEvent.type) {\n case Constants.CallInviteEventTypeValueAccepted:\n return this._handleCallInviteAccepted(nativeCallInviteEvent);\n case Constants.CallInviteEventTypeValueRejected:\n return this._handleCallInviteRejected();\n case Constants.CallInviteEventTypeValueCancelled:\n return this._handleCallInviteCancelled(nativeCallInviteEvent);\n case Constants.CallInviteEventTypeValueNotificationTapped:\n return this._handleCallInviteNotificationTapped();\n case Constants.CallEventMessageReceived:\n return this._handleMessageReceivedEvent(nativeCallInviteEvent);\n default:\n return this._handleUnexpectedCallInviteEventType(nativeCallInviteEvent);\n }\n };\n\n /**\n * Handler for the {@link (CallInvite:namespace).Event.MessageReceived} event.\n * @param nativeCallEvent - The native call event.\n */\n private _handleMessageReceivedEvent = (\n nativeCallInviteEvent: NativeCallInviteMessageReceivedEvent\n ) => {\n const { callMessage: callMessageInfo } = nativeCallInviteEvent;\n\n const callMessage = new IncomingCallMessage(callMessageInfo);\n\n this.emit(CallInvite.Event.MessageReceived, callMessage);\n };\n\n /**\n * Handle when this call invite is accepted.\n */\n private _handleCallInviteAccepted = ({\n callInvite,\n }: NativeCallInviteAcceptedEvent) => {\n this._state = CallInvite.State.Accepted;\n\n const callInfo = {\n uuid: callInvite.uuid,\n customParameters: callInvite.customParameters,\n sid: callInvite.callSid,\n from: callInvite.from,\n to: callInvite.to,\n };\n\n const call = new Call(callInfo);\n\n this.emit(CallInvite.Event.Accepted, call);\n };\n\n /**\n * Handle when this call invite is rejected.\n */\n private _handleCallInviteRejected = () => {\n this._state = CallInvite.State.Rejected;\n this.emit(CallInvite.Event.Rejected);\n };\n\n /**\n * Handle when a call invite is cancelled.\n */\n private _handleCallInviteCancelled = (\n nativeCallInviteCancelledEvent: NativeCallInviteCancelledEvent\n ) => {\n this._state = CallInvite.State.Cancelled;\n\n const error = nativeCallInviteCancelledEvent.error\n ? constructTwilioError(\n nativeCallInviteCancelledEvent.error.message,\n nativeCallInviteCancelledEvent.error.code\n )\n : undefined;\n\n this.emit(CallInvite.Event.Cancelled, error);\n };\n\n /**\n * Handle when a call invite notification is tapped.\n */\n private _handleCallInviteNotificationTapped = () => {\n this.emit(CallInvite.Event.NotificationTapped);\n };\n\n /**\n * Accept a call invite. Sets the state of this call invite to\n * {@link (CallInvite:namespace).State.Accepted}.\n * @param options - Options to pass to the native layer when accepting the\n * call.\n * @returns\n * - Resolves when a {@link (Call:class) | Call object} associated with this\n * {@link (CallInvite:class)} has been created.\n */\n async accept(options: CallInvite.AcceptOptions = {}): Promise {\n if (this._state !== CallInvite.State.Pending) {\n throw new InvalidStateError(\n `Call in state \"${this._state}\", ` +\n `expected state \"${CallInvite.State.Pending}\".`\n );\n }\n\n const acceptResult = await NativeModule.callInvite_accept(\n this._uuid,\n options\n )\n .then((callInfo) => {\n return { type: 'ok', callInfo } as const;\n })\n .catch((error) => {\n const code = error.userInfo.code;\n const message = error.userInfo.message;\n return { type: 'err', message, code } as const;\n });\n\n if (acceptResult.type === 'err') {\n throw constructTwilioError(acceptResult.message, acceptResult.code);\n }\n\n return new Call(acceptResult.callInfo);\n }\n\n /**\n * Reject a call invite. Sets the state of this call invite to\n * {@link (CallInvite:namespace).State.Rejected}.\n * @returns\n * - Resolves when the {@link (CallInvite:class)} has been rejected.\n */\n async reject(): Promise {\n if (this._state !== CallInvite.State.Pending) {\n throw new InvalidStateError(\n `Call in state \"${this._state}\", ` +\n `expected state \"${CallInvite.State.Pending}\".`\n );\n }\n\n await NativeModule.callInvite_reject(this._uuid);\n }\n\n /**\n * Check if a `CallInvite` is valid.\n *\n * @returns\n * - TODO\n *\n * @alpha\n */\n isValid(): Promise {\n return NativeModule.callInvite_isValid(this._uuid);\n }\n\n /**\n * Get the call SID associated with this `CallInvite` class.\n * @returns - A string representing the call SID.\n */\n getCallSid(): string {\n return this._callSid;\n }\n\n /**\n * Get the custom parameters of the call associated with this `CallInvite`\n * class.\n * @returns - A `Record` of custom parameters.\n */\n getCustomParameters(): CustomParameters {\n return this._customParameters;\n }\n\n /**\n * Get the `from` parameter of the call associated with this `CallInvite`\n * class.\n * @returns - A `string` representing the `from` parameter.\n */\n getFrom(): string {\n return this._from;\n }\n\n /**\n * Get the `state` of the `CallInvite`.\n * @returns - The `state` of this `CallInvite`.\n */\n getState(): CallInvite.State {\n return this._state;\n }\n\n /**\n * Get the `to` parameter of the call associated with this `CallInvite`\n * class.\n * @returns - A `string` representing the `to` parameter.\n */\n getTo(): string {\n return this._to;\n }\n\n /**\n * Send a CallMessage.\n *\n * @example\n * To send a user-defined-message\n * ```typescript\n * const outgoingCallMessage: OutgoingCallMessage = await callInvite.sendMessage({\n * content: { key1: 'This is a messsage from the parent call invite' },\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 {\n const { content, contentType, messageType } = validateCallMessage(message);\n\n const voiceEventSid = await NativeModule.call_sendMessage(\n this._uuid,\n content,\n contentType,\n messageType\n );\n\n const outgoingCallMessage = new OutgoingCallMessage({\n content,\n contentType,\n messageType,\n voiceEventSid,\n });\n\n return outgoingCallMessage;\n }\n\n /**\n * Update the caller name displayed in the iOS system incoming call screen.\n *\n * @param newHandle - The new value of the caller's name.\n *\n * @remarks\n * Unsupported platforms:\n * - Android\n *\n * This API is specific to iOS and unavailable in Android. Invoke this method\n * after the incoming call has been reported to CallKit and before the call\n * has been accepted. For example, perform an async request to your app server\n * to fetch the full name of the caller and use this method to replace the\n * default caller name in `from`.\n *\n * @returns\n * - Resolves when the caller name has been updated.\n */\n async updateCallerHandle(newHandle: string): Promise {\n switch (Platform.OS) {\n case 'ios':\n return NativeModule.callInvite_updateCallerHandle(\n this._uuid,\n newHandle\n );\n default:\n throw new UnsupportedPlatformError(\n `Unsupported platform \"${Platform.OS}\". This method is only supported on iOS.`\n );\n }\n }\n}\n\n/**\n * Provides enumerations and types used by a {@link (CallInvite:class)\n * | CallInvite object}.\n *\n * @remarks\n * - See also the {@link (CallInvite:class) | CallInvite class}.\n *\n * @public\n */\nexport namespace CallInvite {\n /**\n * Options to pass to the native layer when accepting the call.\n */\n export interface AcceptOptions {}\n\n /**\n * An enumeration of {@link (CallInvite:class)} states.\n */\n export enum State {\n /**\n * State of a call invite when it has not been acted upon.\n */\n Pending = 'pending',\n\n /**\n * State of a call invite when it has been accepted.\n */\n Accepted = 'accepted',\n\n /**\n * State of a call invite when it has been rejected.\n */\n Rejected = 'rejected',\n\n /**\n * State of a call invite when it has been cancelled.\n */\n Cancelled = 'cancelled',\n }\n\n /**\n * Enumeration of all event strings emitted by {@link (CallInvite:class)}\n * objects.\n */\n export enum Event {\n /**\n * Event string for the `Accepted` event.\n * See {@link (CallInvite:interface).(addListener:1)}.\n */\n Accepted = 'accepted',\n\n /**\n * Event string for the `Rejected` event.\n * See {@link (CallInvite:interface).(addListener:2)}.\n */\n Rejected = 'rejected',\n\n /**\n * Event string for the `Cancelled` event.\n * See {@link (CallInvite:interaface).(addListener:3)}.\n */\n Cancelled = 'cancelled',\n\n /**\n * Event string for the `NotificationTapped` event.\n * See {@link (CallInvite:interaface).(addListener:4)}.\n */\n NotificationTapped = 'notificationTapped',\n\n /**\n * Event string for the `MessageReceived` event.\n * See {@link (CallInvite:interface).(addListener:5)}\n */\n MessageReceived = 'messageReceived',\n }\n\n /**\n * Listener types for all events emitted by a\n * {@link (CallInvite:class) | Call invite object.}\n */\n export namespace Listener {\n /**\n * Accepted event listener. This should be the function signature of any\n * event listener bound to the {@link (CallInvite:namespace).Event.Accepted}\n * event.\n *\n * @remarks\n * See {@link (CallInvite:interface).(addListener:1)}.\n */\n export type Accepted = (call: Call) => void;\n\n /**\n * Rejected event listener. This should be the function signature of any\n * event listener bound to the {@link (CallInvite:namespace).Event.Rejected}\n * event.\n *\n * @remarks\n * See {@link (CallInvite:interface).(addListener:2)}.\n */\n export type Rejected = () => void;\n\n /**\n * Cancelled event listener. This should be the function signature of any\n * event listener bound to the\n * {@link (CallInvite:namespace).Event.Cancelled} event.\n *\n * @remarks\n * See {@link (CallInvite:interface).(addListener:3)}.\n */\n export type Cancelled = (error?: TwilioError) => void;\n\n /**\n * Rejected event listener. This should be the function signature of any\n * event listener bound to the\n * {@link (CallInvite:namespace).Event.NotificationTapped} event.\n *\n * @remarks\n * See {@link (CallInvite:interface).(addListener:4)}.\n */\n export type NotificationTapped = () => void;\n\n /**\n * CallInviteMessage received event listener. This should be the function signature of\n * any event listener bound to the {@link (CallInvite:namespace).Event.MessageReceived} event.\n *\n * @remarks\n * See {@link (CallInvite:interface).(addListener:5)}.\n */\n export type MessageReceived = (\n incomingCallMessage: IncomingCallMessage\n ) => void;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/CallMessage/CallMessage.js b/lib/module/CallMessage/CallMessage.js
new file mode 100644
index 00000000..46afa499
--- /dev/null
+++ b/lib/module/CallMessage/CallMessage.js
@@ -0,0 +1,51 @@
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { InvalidArgumentError } from '../error/InvalidArgumentError';
+/**
+ * The constituent values of a Call Message.
+ *
+ * @public
+ */
+
+/**
+ * Parse CallMessage values. Used when constructing a CallMessage from the
+ * native layer, or by the Call and CallInvite classes when sending a
+ * CallMessage.
+ *
+ * @param message the CallMessage details.
+ *
+ * @internal
+ */
+export function validateCallMessage(message) {
+ const content = message.content;
+ const messageType = message.messageType;
+ let contentType = message.contentType;
+
+ if (typeof contentType === 'undefined') {
+ contentType = 'application/json';
+ }
+
+ if (typeof contentType !== 'string') {
+ throw new InvalidArgumentError('If "contentType" is present, it must be of type "string".');
+ }
+
+ if (typeof messageType !== 'string') {
+ throw new InvalidArgumentError('"messageType" must be of type "string".');
+ }
+
+ if (typeof content === 'undefined' || content === null) {
+ throw new InvalidArgumentError('"content" must be defined and not "null".');
+ }
+
+ const contentStr = typeof content === 'string' ? content : JSON.stringify(content);
+ return {
+ content: contentStr,
+ contentType,
+ messageType
+ };
+}
+//# sourceMappingURL=CallMessage.js.map
\ No newline at end of file
diff --git a/lib/module/CallMessage/CallMessage.js.map b/lib/module/CallMessage/CallMessage.js.map
new file mode 100644
index 00000000..7efc2e2c
--- /dev/null
+++ b/lib/module/CallMessage/CallMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["CallMessage.ts"],"names":["InvalidArgumentError","validateCallMessage","message","content","messageType","contentType","contentStr","JSON","stringify"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,SAASA,oBAAT,QAAqC,+BAArC;AAEA;AACA;AACA;AACA;AACA;;AAgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAT,CAA6BC,OAA7B,EAAmD;AACxD,QAAMC,OAAO,GAAGD,OAAO,CAACC,OAAxB;AACA,QAAMC,WAAW,GAAGF,OAAO,CAACE,WAA5B;AAEA,MAAIC,WAAW,GAAGH,OAAO,CAACG,WAA1B;;AAEA,MAAI,OAAOA,WAAP,KAAuB,WAA3B,EAAwC;AACtCA,IAAAA,WAAW,GAAG,kBAAd;AACD;;AAED,MAAI,OAAOA,WAAP,KAAuB,QAA3B,EAAqC;AACnC,UAAM,IAAIL,oBAAJ,CACJ,2DADI,CAAN;AAGD;;AAED,MAAI,OAAOI,WAAP,KAAuB,QAA3B,EAAqC;AACnC,UAAM,IAAIJ,oBAAJ,CAAyB,yCAAzB,CAAN;AACD;;AAED,MAAI,OAAOG,OAAP,KAAmB,WAAnB,IAAkCA,OAAO,KAAK,IAAlD,EAAwD;AACtD,UAAM,IAAIH,oBAAJ,CAAyB,2CAAzB,CAAN;AACD;;AAED,QAAMM,UAAU,GACd,OAAOH,OAAP,KAAmB,QAAnB,GAA8BA,OAA9B,GAAwCI,IAAI,CAACC,SAAL,CAAeL,OAAf,CAD1C;AAGA,SAAO;AAAEA,IAAAA,OAAO,EAAEG,UAAX;AAAuBD,IAAAA,WAAvB;AAAoCD,IAAAA;AAApC,GAAP;AACD","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 { InvalidArgumentError } from '../error/InvalidArgumentError';\n\n/**\n * The constituent values of a Call Message.\n *\n * @public\n */\nexport interface CallMessage {\n /**\n * The content of the message. This value should match the content type\n * parameter.\n *\n * See {@link CallMessage.contentType} for more information.\n */\n content: any;\n\n /**\n * The content type of the message. This value should accurately describe\n * the content of the message. The following values are accepted:\n *\n * - \"application/json\"\n *\n * If no value is defined, then the default value of \"application/json\" will\n * be used.\n *\n * If the `contentType` of the message is \"application/json\", the content\n * of the message may be a JS object.\n */\n contentType?: string;\n\n /**\n * The message type. The following values are accepted:\n *\n * - \"user-defined-message\"\n */\n messageType: string;\n}\n\n/**\n * Parse CallMessage values. Used when constructing a CallMessage from the\n * native layer, or by the Call and CallInvite classes when sending a\n * CallMessage.\n *\n * @param message the CallMessage details.\n *\n * @internal\n */\nexport function validateCallMessage(message: CallMessage) {\n const content = message.content;\n const messageType = message.messageType;\n\n let contentType = message.contentType;\n\n if (typeof contentType === 'undefined') {\n contentType = 'application/json';\n }\n\n if (typeof contentType !== 'string') {\n throw new InvalidArgumentError(\n 'If \"contentType\" is present, it must be of type \"string\".'\n );\n }\n\n if (typeof messageType !== 'string') {\n throw new InvalidArgumentError('\"messageType\" must be of type \"string\".');\n }\n\n if (typeof content === 'undefined' || content === null) {\n throw new InvalidArgumentError('\"content\" must be defined and not \"null\".');\n }\n\n const contentStr =\n typeof content === 'string' ? content : JSON.stringify(content);\n\n return { content: contentStr, contentType, messageType };\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/CallMessage/IncomingCallMessage.js b/lib/module/CallMessage/IncomingCallMessage.js
new file mode 100644
index 00000000..db5db331
--- /dev/null
+++ b/lib/module/CallMessage/IncomingCallMessage.js
@@ -0,0 +1,116 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { EventEmitter } from 'eventemitter3';
+import { validateCallMessage } from './CallMessage';
+/**
+ * CallMessage API is in beta.
+ *
+ * Provides access to information about a CallMessage, including the call
+ * message content, content type, message type, and voice event SID.
+ *
+ * @public
+ */
+
+export class IncomingCallMessage extends EventEmitter {
+ /**
+ * The content of the message which should match the contentType parameter.
+ */
+
+ /**
+ * The MIME type of the content.
+ */
+
+ /**
+ * Message type
+ */
+
+ /**
+ * An autogenerated ID that uniquely identifies this message.
+ * This is not required when sending a message from the SDK as this is
+ * autogenerated.
+ * The ID will be available after the message is sent, or immediately when a
+ * message is received.
+ */
+
+ /**
+ * Constructor for the {@link IncomingCallMessage} class. This should not be
+ * invoked by third-party code.
+ *
+ * @param NativeCallMessageInfo - An object containing all of the data from
+ * the native layer necessary to fully describe a call message, as well as
+ * invoke native functionality for the call message.
+ *
+ * @internal
+ */
+ constructor(callMessageInfo) {
+ super();
+
+ _defineProperty(this, "_content", void 0);
+
+ _defineProperty(this, "_contentType", void 0);
+
+ _defineProperty(this, "_messageType", void 0);
+
+ _defineProperty(this, "_voiceEventSid", void 0);
+
+ const {
+ content,
+ contentType,
+ messageType
+ } = validateCallMessage(callMessageInfo);
+ this._content = content;
+ this._contentType = contentType;
+ this._messageType = messageType;
+ this._voiceEventSid = callMessageInfo.voiceEventSid;
+ }
+ /**
+ * {@inheritdoc CallMessage.content}
+ *
+ * @returns the content of the call message.
+ */
+
+
+ getContent() {
+ return this._content;
+ }
+ /**
+ * {@inheritdoc CallMessage.contentType}
+ *
+ * @returns the content type of the call message.
+ */
+
+
+ getContentType() {
+ return this._contentType;
+ }
+ /**
+ * {@inheritdoc CallMessage.messageType}
+ *
+ * @returns the message type of the call message.
+ */
+
+
+ getMessageType() {
+ return this._messageType;
+ }
+ /**
+ * Get the message SID.
+ * @returns
+ * - A string representing the message SID.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+
+
+ getSid() {
+ return this._voiceEventSid;
+ }
+
+}
+//# sourceMappingURL=IncomingCallMessage.js.map
\ No newline at end of file
diff --git a/lib/module/CallMessage/IncomingCallMessage.js.map b/lib/module/CallMessage/IncomingCallMessage.js.map
new file mode 100644
index 00000000..58af5fe6
--- /dev/null
+++ b/lib/module/CallMessage/IncomingCallMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["IncomingCallMessage.ts"],"names":["EventEmitter","validateCallMessage","IncomingCallMessage","constructor","callMessageInfo","content","contentType","messageType","_content","_contentType","_messageType","_voiceEventSid","voiceEventSid","getContent","getContentType","getMessageType","getSid"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,SAASA,YAAT,QAA6B,eAA7B;AAEA,SAASC,mBAAT,QAAoC,eAApC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,mBAAN,SAAkCF,YAAlC,CAA+C;AACpD;AACF;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;AACA;AACA;AACA;AACA;;AAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEG,EAAAA,WAAW,CAACC,eAAD,EAAyC;AAClD;;AADkD;;AAAA;;AAAA;;AAAA;;AAGlD,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA,WAAX;AAAwBC,MAAAA;AAAxB,QACJN,mBAAmB,CAACG,eAAD,CADrB;AAGA,SAAKI,QAAL,GAAgBH,OAAhB;AACA,SAAKI,YAAL,GAAoBH,WAApB;AACA,SAAKI,YAAL,GAAoBH,WAApB;AACA,SAAKI,cAAL,GAAsBP,eAAe,CAACQ,aAAtC;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEC,EAAAA,UAAU,GAAQ;AAChB,WAAO,KAAKL,QAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEM,EAAAA,cAAc,GAAW;AACvB,WAAO,KAAKL,YAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEM,EAAAA,cAAc,GAAW;AACvB,WAAO,KAAKL,YAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEM,EAAAA,MAAM,GAAuB;AAC3B,WAAO,KAAKL,cAAZ;AACD;;AAnFmD","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 { NativeCallMessageInfo } from '../type/CallMessage';\nimport { validateCallMessage } from './CallMessage';\n\n/**\n * CallMessage API is in beta.\n *\n * Provides access to information about a CallMessage, including the call\n * message content, content type, message type, and voice event SID.\n *\n * @public\n */\nexport class IncomingCallMessage extends EventEmitter {\n /**\n * The content of the message which should match the contentType parameter.\n */\n private _content: any;\n\n /**\n * The MIME type of the content.\n */\n private _contentType: string;\n\n /**\n * Message type\n */\n private _messageType: string;\n\n /**\n * An autogenerated ID that uniquely identifies this message.\n * This is not required when sending a message from the SDK as this is\n * autogenerated.\n * The ID will be available after the message is sent, or immediately when a\n * message is received.\n */\n private _voiceEventSid?: string;\n\n /**\n * Constructor for the {@link IncomingCallMessage} class. This should not be\n * invoked by third-party code.\n *\n * @param NativeCallMessageInfo - An object containing all of the data from\n * the native layer necessary to fully describe a call message, as well as\n * invoke native functionality for the call message.\n *\n * @internal\n */\n constructor(callMessageInfo: NativeCallMessageInfo) {\n super();\n\n const { content, contentType, messageType } =\n validateCallMessage(callMessageInfo);\n\n this._content = content;\n this._contentType = contentType;\n this._messageType = messageType;\n this._voiceEventSid = callMessageInfo.voiceEventSid;\n }\n\n /**\n * {@inheritdoc CallMessage.content}\n *\n * @returns the content of the call message.\n */\n getContent(): any {\n return this._content;\n }\n\n /**\n * {@inheritdoc CallMessage.contentType}\n *\n * @returns the content type of the call message.\n */\n getContentType(): string {\n return this._contentType;\n }\n\n /**\n * {@inheritdoc CallMessage.messageType}\n *\n * @returns the message type of the call message.\n */\n getMessageType(): string {\n return this._messageType;\n }\n\n /**\n * Get the message SID.\n * @returns\n * - A string representing the message SID.\n * - `undefined` if the call information has not yet been received from the\n * native layer.\n */\n getSid(): string | undefined {\n return this._voiceEventSid;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/CallMessage/OutgoingCallMessage.js b/lib/module/CallMessage/OutgoingCallMessage.js
new file mode 100644
index 00000000..888cea17
--- /dev/null
+++ b/lib/module/CallMessage/OutgoingCallMessage.js
@@ -0,0 +1,154 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { Constants } from '../constants';
+import { NativeEventEmitter } from '../common';
+import { constructTwilioError } from '../error/utility';
+import { IncomingCallMessage } from './IncomingCallMessage';
+/**
+ * Defines strict typings for all events emitted by
+ * {@link (OutgoingCallMessage:class) | OutgoingCallMessage objects}.
+ *
+ * @remarks
+ * Note that the `on` function is an alias for the `addListener` function.
+ * They share identical functionality and either may be used interchangeably.
+ *
+ * - See also the {@link CallMessage} interface.
+ * - See also the {@link IncomingCallMessage} class.
+ * - See also the {@link (OutgoingCallMessage:namespace)} namespace.
+ *
+ * @public
+ */
+
+/**
+ * CallMessage API is in beta.
+ *
+ * Provides access to information about a outgoingCallMessage, including the call
+ * message content, contentType, messageType, and voiceEventSid
+ *
+ * @remarks
+ * Note that the outgoingCallMessage information is fetched as soon as possible from the
+ * native layer, but there is no guarantee that all information is immediately
+ * available. Methods such as `OutgoingCallMessage.getContent` or `OutgoingCallMessage.getSid`
+ * may return `undefined`.
+ *
+ * As outgoingCallMessage events are received from the native layer, outgoingCallMessage information will
+ * propagate from the native layer to the JS layer and become available.
+ * Therefore, it is good practice to read information from the outgoingCallMessage after an
+ * event occurs, or as events occur.
+ *
+ * - See the {@link (OutgoingCallMessage:namespace).Event} enum for events emitted by `OutgoingCallMessage`
+ * objects.
+ * - See the {@link (OutgoingCallMessage:interface) | OutgoingCallMessage interface} for overloaded event listening
+ * metods.
+ * - See the {@link (OutgoingCallMessage:namespace) | OutgoingCallMessage namespace} for types and enumerations
+ * used by this class.
+ *
+ * @public
+ */
+export class OutgoingCallMessage extends IncomingCallMessage {
+ /**
+ * Handlers for native OutgoingCallMessage events. Set upon construction so we can
+ * dynamically bind events to handlers.
+ *
+ * @privateRemarks
+ * This is done by the constructor so this mapping isn't made every time the
+ * {@link (OutgoingCallMessage:class)._handleNativeEvent} function is invoked.
+ */
+ constructor({
+ content,
+ contentType,
+ messageType,
+ voiceEventSid
+ }) {
+ super({
+ content,
+ contentType,
+ messageType,
+ voiceEventSid
+ });
+
+ _defineProperty(this, "_nativeEventHandler", void 0);
+
+ _defineProperty(this, "_handleNativeEvent", nativeCallMessageEvent => {
+ const {
+ type
+ } = nativeCallMessageEvent;
+ const handler = this._nativeEventHandler[type];
+
+ if (typeof handler === 'undefined') {
+ throw new Error(`Unknown callMessage event type received from the native layer: "${type}"`);
+ }
+
+ if (this.getSid() === nativeCallMessageEvent.voiceEventSid) {
+ handler(nativeCallMessageEvent);
+ }
+ });
+
+ _defineProperty(this, "_handleFailureEvent", nativeCallMessageEvent => {
+ if (nativeCallMessageEvent.type !== Constants.CallEventMessageFailure) {
+ throw new Error('Incorrect "outgoingCallMessage#Failure" handler called for type' + `"${nativeCallMessageEvent.type}`);
+ }
+
+ const {
+ message,
+ code
+ } = nativeCallMessageEvent.error;
+ const error = constructTwilioError(message, code);
+ this.emit(OutgoingCallMessage.Event.Failure, error);
+ });
+
+ _defineProperty(this, "_handleSentEvent", nativeCallMessageEvent => {
+ if (nativeCallMessageEvent.type !== Constants.CallEventMessageSent) {
+ throw new Error('Incorrect "outgoingCallMessage#Sent" handler called for type' + `"${nativeCallMessageEvent.type}"`);
+ }
+
+ this.emit(OutgoingCallMessage.Event.Sent);
+ });
+
+ this._nativeEventHandler = {
+ /**
+ * Sending Call Message State
+ */
+ [Constants.CallEventMessageFailure]: this._handleFailureEvent,
+ [Constants.CallEventMessageSent]: this._handleSentEvent
+ };
+ NativeEventEmitter.addListener(Constants.ScopeCallMessage, this._handleNativeEvent);
+ }
+ /**
+ * This intermediate native callMessage event handler acts as a "gate".
+ * @param nativeCallMessageEvent - A callMessage event directly from the native layer.
+ */
+
+
+}
+/**
+ * Namespace for enumerations and types used by
+ * {@link (OutgoingCallMessage:class) | OutgoingCallMessage objects}.
+ *
+ * @remarks
+ * - See also the {@link (OutgoingCallMessage:class) | OutgoingCallMessage class}.
+ * - See also the {@link (OutgoingCallMessage:interface) | OutgoingCallMessage interface}.
+ *
+ * @public
+ */
+
+(function (_OutgoingCallMessage) {
+ let Event;
+
+ (function (Event) {
+ Event["Failure"] = "failure";
+ Event["Sent"] = "sent";
+ })(Event || (Event = {}));
+
+ _OutgoingCallMessage.Event = Event;
+ let Listener;
+
+ (function (_Listener) {})(Listener || (Listener = _OutgoingCallMessage.Listener || (_OutgoingCallMessage.Listener = {})));
+})(OutgoingCallMessage || (OutgoingCallMessage = {}));
+//# sourceMappingURL=OutgoingCallMessage.js.map
\ No newline at end of file
diff --git a/lib/module/CallMessage/OutgoingCallMessage.js.map b/lib/module/CallMessage/OutgoingCallMessage.js.map
new file mode 100644
index 00000000..99a316c7
--- /dev/null
+++ b/lib/module/CallMessage/OutgoingCallMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["OutgoingCallMessage.ts"],"names":["Constants","NativeEventEmitter","constructTwilioError","IncomingCallMessage","OutgoingCallMessage","constructor","content","contentType","messageType","voiceEventSid","nativeCallMessageEvent","type","handler","_nativeEventHandler","Error","getSid","CallEventMessageFailure","message","code","error","emit","Event","Failure","CallEventMessageSent","Sent","_handleFailureEvent","_handleSentEvent","addListener","ScopeCallMessage","_handleNativeEvent","Listener"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AAQA,SAASA,SAAT,QAA0B,cAA1B;AACA,SAASC,kBAAT,QAAmC,WAAnC;AACA,SAASC,oBAAT,QAAqC,kBAArC;AACA,SAASC,mBAAT,QAAoC,uBAApC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4FA;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,OAAO,MAAMC,mBAAN,SAAkCD,mBAAlC,CAAsD;AAC3D;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AAKEE,EAAAA,WAAW,CAAC;AACVC,IAAAA,OADU;AAEVC,IAAAA,WAFU;AAGVC,IAAAA,WAHU;AAIVC,IAAAA;AAJU,GAAD,EAKe;AACxB,UAAM;AACJH,MAAAA,OADI;AAEJC,MAAAA,WAFI;AAGJC,MAAAA,WAHI;AAIJC,MAAAA;AAJI,KAAN;;AADwB;;AAAA,gDA0BxBC,sBAD2B,IAExB;AACH,YAAM;AAAEC,QAAAA;AAAF,UAAWD,sBAAjB;AAEA,YAAME,OAAO,GAAG,KAAKC,mBAAL,CAAyBF,IAAzB,CAAhB;;AACA,UAAI,OAAOC,OAAP,KAAmB,WAAvB,EAAoC;AAClC,cAAM,IAAIE,KAAJ,CACH,mEAAkEH,IAAK,GADpE,CAAN;AAGD;;AAED,UAAI,KAAKI,MAAL,OAAkBL,sBAAsB,CAACD,aAA7C,EAA4D;AAC1DG,QAAAA,OAAO,CAACF,sBAAD,CAAP;AACD;AACF,KAxCyB;;AAAA,iDA+CxBA,sBAD4B,IAEzB;AACH,UAAIA,sBAAsB,CAACC,IAAvB,KAAgCX,SAAS,CAACgB,uBAA9C,EAAuE;AACrE,cAAM,IAAIF,KAAJ,CACJ,oEACG,IAAGJ,sBAAsB,CAACC,IAAK,EAF9B,CAAN;AAID;;AAED,YAAM;AAAEM,QAAAA,OAAF;AAAWC,QAAAA;AAAX,UAAoBR,sBAAsB,CAACS,KAAjD;AACA,YAAMA,KAAK,GAAGjB,oBAAoB,CAACe,OAAD,EAAUC,IAAV,CAAlC;AACA,WAAKE,IAAL,CAAUhB,mBAAmB,CAACiB,KAApB,CAA0BC,OAApC,EAA6CH,KAA7C;AACD,KA3DyB;;AAAA,8CAkExBT,sBADyB,IAEtB;AACH,UAAIA,sBAAsB,CAACC,IAAvB,KAAgCX,SAAS,CAACuB,oBAA9C,EAAoE;AAClE,cAAM,IAAIT,KAAJ,CACJ,iEACG,IAAGJ,sBAAsB,CAACC,IAAK,GAF9B,CAAN;AAID;;AAED,WAAKS,IAAL,CAAUhB,mBAAmB,CAACiB,KAApB,CAA0BG,IAApC;AACD,KA5EyB;;AAQxB,SAAKX,mBAAL,GAA2B;AACzB;AACN;AACA;AACM,OAACb,SAAS,CAACgB,uBAAX,GAAqC,KAAKS,mBAJjB;AAKzB,OAACzB,SAAS,CAACuB,oBAAX,GAAkC,KAAKG;AALd,KAA3B;AAOAzB,IAAAA,kBAAkB,CAAC0B,WAAnB,CACE3B,SAAS,CAAC4B,gBADZ,EAEE,KAAKC,kBAFP;AAID;AAED;AACF;AACA;AACA;;;AA1C6D;AAiG7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;MAKcR,K;;aAAAA,K;AAAAA,IAAAA,K;AAAAA,IAAAA,K;KAAAA,K,KAAAA,K;;;;;4BAiBKS,Q,KAAAA,Q,wBAAAA,Q,0BAAAA,Q;GArBF1B,mB,KAAAA,mB","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 type { TwilioError } from '../error';\nimport type {\n NativeCallMessageEvent,\n NativeCallMessageEventType,\n NativeCallMessageInfo,\n} from '../type/CallMessage';\nimport { Constants } from '../constants';\nimport { NativeEventEmitter } from '../common';\nimport { constructTwilioError } from '../error/utility';\nimport { IncomingCallMessage } from './IncomingCallMessage';\n\n/**\n * Defines strict typings for all events emitted by\n * {@link (OutgoingCallMessage:class) | OutgoingCallMessage 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 CallMessage} interface.\n * - See also the {@link IncomingCallMessage} class.\n * - See also the {@link (OutgoingCallMessage:namespace)} namespace.\n *\n * @public\n */\nexport declare interface OutgoingCallMessage {\n /**\n * ------------\n * Emit Typings\n * ------------\n */\n\n /** @internal */\n emit(\n failureEvent: OutgoingCallMessage.Event.Failure,\n error: TwilioError\n ): boolean;\n\n /** @internal */\n emit(sentEvent: OutgoingCallMessage.Event.Sent): boolean;\n\n /**\n * ----------------\n * Listener Typings\n * ----------------\n */\n\n /**\n * Failure event. Raised when outgoingCallMessage fails to be sent out.\n *\n * @example\n * ```typescript\n * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {\n * // outgoingCallMessage failed, handle error\n * });\n * ```\n *\n * @param failureEvent - 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 failureEvent: OutgoingCallMessage.Event.Failure,\n listener: OutgoingCallMessage.Listener.Failure\n ): this;\n /** {@inheritDoc (OutgoingCallMessage:interface).(addListener:1)} */\n on(\n failureEvent: OutgoingCallMessage.Event.Failure,\n listener: OutgoingCallMessage.Listener.Failure\n ): this;\n\n /**\n * Sent event. Raised when outgoingCallMessage is sent.\n * @example\n * ```typescript\n * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {\n * // outgoingCallMessage sent\n * })\n * ```\n *\n * @param sentEvent - 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 sentEvent: OutgoingCallMessage.Event.Sent,\n listener: OutgoingCallMessage.Listener.Sent\n ): this;\n /** {@inheritDoc (OutgoingCallMessage:interface).(addListener:2)} */\n on(\n sentEvent: OutgoingCallMessage.Event.Sent,\n listener: OutgoingCallMessage.Listener.Sent\n ): this;\n\n /**\n * Generic event listener typings.\n * @param outgoingCallMessageEvent - The raised event string.\n * @param listener - A listener function that will be invoked when the event\n * is raised.\n * @returns - The outgoingCallMessage object.\n */\n addListener(\n outgoingCallMessageEvent: OutgoingCallMessage.Event,\n listener: OutgoingCallMessage.Listener.Generic\n ): this;\n /**\n * {@inheritDoc (OutgoingCallMessage:interface).(addListener:3)}\n */\n on(\n outgoingCallMessageEvent: OutgoingCallMessage.Event,\n listener: OutgoingCallMessage.Listener.Generic\n ): this;\n}\n\n/**\n * CallMessage API is in beta.\n *\n * Provides access to information about a outgoingCallMessage, including the call\n * message content, contentType, messageType, and voiceEventSid\n *\n * @remarks\n * Note that the outgoingCallMessage information is fetched as soon as possible from the\n * native layer, but there is no guarantee that all information is immediately\n * available. Methods such as `OutgoingCallMessage.getContent` or `OutgoingCallMessage.getSid`\n * may return `undefined`.\n *\n * As outgoingCallMessage events are received from the native layer, outgoingCallMessage 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 outgoingCallMessage after an\n * event occurs, or as events occur.\n *\n * - See the {@link (OutgoingCallMessage:namespace).Event} enum for events emitted by `OutgoingCallMessage`\n * objects.\n * - See the {@link (OutgoingCallMessage:interface) | OutgoingCallMessage interface} for overloaded event listening\n * metods.\n * - See the {@link (OutgoingCallMessage:namespace) | OutgoingCallMessage namespace} for types and enumerations\n * used by this class.\n *\n * @public\n */\nexport class OutgoingCallMessage extends IncomingCallMessage {\n /**\n * Handlers for native OutgoingCallMessage 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 (OutgoingCallMessage:class)._handleNativeEvent} function is invoked.\n */\n private _nativeEventHandler: Record<\n NativeCallMessageEventType,\n (callEvent: NativeCallMessageEvent) => void\n >;\n constructor({\n content,\n contentType,\n messageType,\n voiceEventSid,\n }: NativeCallMessageInfo) {\n super({\n content,\n contentType,\n messageType,\n voiceEventSid,\n });\n\n this._nativeEventHandler = {\n /**\n * Sending Call Message State\n */\n [Constants.CallEventMessageFailure]: this._handleFailureEvent,\n [Constants.CallEventMessageSent]: this._handleSentEvent,\n };\n NativeEventEmitter.addListener(\n Constants.ScopeCallMessage,\n this._handleNativeEvent\n );\n }\n\n /**\n * This intermediate native callMessage event handler acts as a \"gate\".\n * @param nativeCallMessageEvent - A callMessage event directly from the native layer.\n */\n private _handleNativeEvent = (\n nativeCallMessageEvent: NativeCallMessageEvent\n ) => {\n const { type } = nativeCallMessageEvent;\n\n const handler = this._nativeEventHandler[type];\n if (typeof handler === 'undefined') {\n throw new Error(\n `Unknown callMessage event type received from the native layer: \"${type}\"`\n );\n }\n\n if (this.getSid() === nativeCallMessageEvent.voiceEventSid) {\n handler(nativeCallMessageEvent);\n }\n };\n\n /**\n * Handler for the {@link (OutgoingCallMessage:namespace).Event.Failure} event.\n * @param nativeCallMessageEvent - The native callMessage event.\n */\n private _handleFailureEvent = (\n nativeCallMessageEvent: NativeCallMessageEvent\n ) => {\n if (nativeCallMessageEvent.type !== Constants.CallEventMessageFailure) {\n throw new Error(\n 'Incorrect \"outgoingCallMessage#Failure\" handler called for type' +\n `\"${nativeCallMessageEvent.type}`\n );\n }\n\n const { message, code } = nativeCallMessageEvent.error;\n const error = constructTwilioError(message, code);\n this.emit(OutgoingCallMessage.Event.Failure, error);\n };\n\n /**\n * Handler for the {@link (OutgoingCallMessage:namespace).Event.Sent} event.\n * @param nativeCallMessageEvent - The native callMessage event.\n */\n private _handleSentEvent = (\n nativeCallMessageEvent: NativeCallMessageEvent\n ) => {\n if (nativeCallMessageEvent.type !== Constants.CallEventMessageSent) {\n throw new Error(\n 'Incorrect \"outgoingCallMessage#Sent\" handler called for type' +\n `\"${nativeCallMessageEvent.type}\"`\n );\n }\n\n this.emit(OutgoingCallMessage.Event.Sent);\n };\n}\n\n/**\n * Namespace for enumerations and types used by\n * {@link (OutgoingCallMessage:class) | OutgoingCallMessage objects}.\n *\n * @remarks\n * - See also the {@link (OutgoingCallMessage:class) | OutgoingCallMessage class}.\n * - See also the {@link (OutgoingCallMessage:interface) | OutgoingCallMessage interface}.\n *\n * @public\n */\nexport namespace OutgoingCallMessage {\n /**\n * Enumeration of all event strings emitted by {@link (OutgoingCallMessage:class)} objects.\n */\n export enum Event {\n /**\n * Raised when outgoingCallMessage fails.\n * See {@link (OutgoingCallMessage:interface).(addListener:1)}.\n */\n 'Failure' = 'failure',\n /**\n * Raised when outgoingCallMessage has been sent.\n * See {@link (OutgoingCallMessage:interface).(addListener:2)}.\n */\n 'Sent' = 'sent',\n }\n\n /**\n * Listener types for all events emitted by a\n * {@link (OutgoingCallMessage:class) | OutgoingCallMessage: object}\n */\n export namespace Listener {\n /**\n * OutgoingCallMessage failure event listener. This should be the function signature of\n * any event listener bound to the {@link (OutgoingCallMessage:namespace).Event.Failure} event.\n *\n * @remarks\n * See {@link (OutgoingCallMessage:interface).(addListener:1)}.\n *\n * See {@link TwilioErrors} for all error classes.\n */\n export type Failure = (error: TwilioError) => void;\n\n /**\n * OutgoingCallMessage sent event listner. This should be the function signature of\n * any event listener bound to the {@link (OutgoingCallMessage:namespace).Event.Sent} event.\n *\n * @remarks\n * See {@link (OutgoingCallMessage:interface).(addListener:2)}.\n */\n export type Sent = () => void;\n\n /**\n * Generic event listener. This should be the function signature of any\n * event listener bound to any OutgoingCallMessage event.\n *\n * @remarks\n * See {@link (OutgoingCallMessage:interface).(addListener:3)}.\n */\n export type Generic = (...args: any[]) => void;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/Voice.js b/lib/module/Voice.js
new file mode 100644
index 00000000..42293ea0
--- /dev/null
+++ b/lib/module/Voice.js
@@ -0,0 +1,472 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { EventEmitter } from 'eventemitter3';
+import { AudioDevice } from './AudioDevice';
+import { Call } from './Call';
+import { CallInvite } from './CallInvite';
+import { NativeEventEmitter, NativeModule, Platform } from './common';
+import { Constants } from './constants';
+import { InvalidArgumentError } from './error/InvalidArgumentError';
+import { UnsupportedPlatformError } from './error/UnsupportedPlatformError';
+import { constructTwilioError } from './error/utility';
+
+/**
+ * Main entry-point of the Voice SDK. Provides access to the entire feature-set
+ * of the library.
+ *
+ * @example
+ * Usage:
+ * ```
+ * const token = '...';
+ *
+ * const voice = new Voice();
+ *
+ * voice.on(Voice.Event.CallInvite, (callInvite: CallInvite) => {
+ * callInvite.accept();
+ * });
+ *
+ * voice.register(token);
+ * ```
+ *
+ * @remarks
+ * - See also the {@link (Voice:namespace).Event} enum for events emitted by
+ * `Voice` objects.
+ * - See also the {@link (Voice:interface) | Voice interface} for events
+ * emitted by this class and associated types.
+ * - See also the {@link (Voice:namespace) | Voice namespace} for types and
+ * enumerations used by this class.
+ *
+ * @public
+ */
+export class Voice extends EventEmitter {
+ /**
+ * Handlers for native voice events. Set upon construction so we can
+ * dynamically bind events to handlers.
+ *
+ * @privateRemarks
+ * This is done by the constructor so this mapping isn't made every time the
+ * {@link (Voice:class)._handleNativeEvent} function is invoked.
+ */
+
+ /**
+ * Main entry-point of the Voice SDK. Provides access to the entire
+ * feature-set of the library.
+ */
+ constructor() {
+ super();
+
+ _defineProperty(this, "_nativeEventHandler", void 0);
+
+ _defineProperty(this, "_handleNativeEvent", nativeVoiceEvent => {
+ const {
+ type
+ } = nativeVoiceEvent;
+ const handler = this._nativeEventHandler[type];
+
+ if (typeof handler === 'undefined') {
+ throw new Error(`Unknown voice event type received from the native layer: "${type}".`);
+ }
+
+ handler(nativeVoiceEvent);
+ });
+
+ _defineProperty(this, "_handleCallInvite", nativeVoiceEvent => {
+ if (nativeVoiceEvent.type !== Constants.VoiceEventTypeValueIncomingCallInvite) {
+ throw new Error('Incorrect "voice#callInvite" handler called for type ' + `"${nativeVoiceEvent.type}".`);
+ }
+
+ const {
+ callInvite: callInviteInfo
+ } = nativeVoiceEvent;
+ const callInvite = new CallInvite(callInviteInfo, CallInvite.State.Pending);
+ this.emit(Voice.Event.CallInvite, callInvite);
+ });
+
+ _defineProperty(this, "_handleError", nativeVoiceEvent => {
+ if (nativeVoiceEvent.type !== Constants.VoiceEventError) {
+ throw new Error('Incorrect "voice#error" handler called for type ' + `"${nativeVoiceEvent.type}".`);
+ }
+
+ const {
+ error: {
+ code,
+ message
+ }
+ } = nativeVoiceEvent;
+ const error = constructTwilioError(message, code);
+ this.emit(Voice.Event.Error, error);
+ });
+
+ _defineProperty(this, "_handleRegistered", nativeVoiceEvent => {
+ if (nativeVoiceEvent.type !== Constants.VoiceEventRegistered) {
+ throw new Error('Incorrect "voice#error" handler called for type ' + `"${nativeVoiceEvent.type}".`);
+ }
+
+ this.emit(Voice.Event.Registered);
+ });
+
+ _defineProperty(this, "_handleUnregistered", nativeVoiceEvent => {
+ if (nativeVoiceEvent.type !== Constants.VoiceEventUnregistered) {
+ throw new Error('Incorrect "voice#error" handler called for type ' + `"${nativeVoiceEvent.type}".`);
+ }
+
+ this.emit(Voice.Event.Unregistered);
+ });
+
+ _defineProperty(this, "_handleAudioDevicesUpdated", nativeVoiceEvent => {
+ if (nativeVoiceEvent.type !== Constants.VoiceEventAudioDevicesUpdated) {
+ throw new Error('Incorrect "voice#audioDevicesUpdated" handler called for type ' + `"${nativeVoiceEvent.type}".`);
+ }
+
+ const {
+ audioDevices: audioDeviceInfos,
+ selectedDevice: selectedDeviceInfo
+ } = nativeVoiceEvent;
+ const audioDevices = audioDeviceInfos.map(audioDeviceInfo => new AudioDevice(audioDeviceInfo));
+ const selectedDevice = typeof selectedDeviceInfo !== 'undefined' && selectedDeviceInfo !== null ? new AudioDevice(selectedDeviceInfo) : undefined;
+ this.emit(Voice.Event.AudioDevicesUpdated, audioDevices, selectedDevice);
+ });
+
+ this._nativeEventHandler = {
+ /**
+ * Common
+ */
+ [Constants.VoiceEventError]: this._handleError,
+
+ /**
+ * Call Invite
+ */
+ [Constants.VoiceEventTypeValueIncomingCallInvite]: this._handleCallInvite,
+
+ /**
+ * Registration
+ */
+ [Constants.VoiceEventRegistered]: this._handleRegistered,
+ [Constants.VoiceEventUnregistered]: this._handleUnregistered,
+
+ /**
+ * Audio Devices
+ */
+ [Constants.VoiceEventAudioDevicesUpdated]: this._handleAudioDevicesUpdated
+ };
+ NativeEventEmitter.addListener(Constants.ScopeVoice, this._handleNativeEvent);
+ }
+ /**
+ * Connect for devices on Android platforms.
+ */
+
+
+ async _connect_android(token, params) {
+ const connectResult = await NativeModule.voice_connect_android(token, params).then(callInfo => {
+ return {
+ type: 'ok',
+ callInfo
+ };
+ }).catch(error => {
+ const code = error.userInfo.code;
+ const message = error.userInfo.message;
+ return {
+ type: 'err',
+ message,
+ code
+ };
+ });
+
+ if (connectResult.type === 'err') {
+ throw constructTwilioError(connectResult.message, connectResult.code);
+ }
+
+ return new Call(connectResult.callInfo);
+ }
+ /**
+ * Connect for devices on iOS platforms.
+ */
+
+
+ async _connect_ios(token, params, contactHandle) {
+ const parsedContactHandle = contactHandle === '' ? 'Default Contact' : contactHandle;
+ const callInfo = await NativeModule.voice_connect_ios(token, params, parsedContactHandle);
+ return new Call(callInfo);
+ }
+ /**
+ * Intermediary event handler for `Voice`-level events. Ensures that the type
+ * of the incoming event is expected and invokes the proper event listener.
+ * @param nativeVoiceEvent - A `Voice` event directly from the native layer.
+ */
+
+
+ /**
+ * Create an outgoing call.
+ *
+ * @remarks
+ * Note that the resolution of the returned `Promise` does not imply any call
+ * event occurring, such as answered or rejected.
+ * The `contactHandle` parameter is only required for iOS apps. Currently the
+ * parameter does have any effect on Android apps and can be ignored.
+ * `Default Contact` will appear in the iOS call history if the value is empty
+ * or not provided.
+ *
+ * @param token - A Twilio Access Token, usually minted by an
+ * authentication-gated endpoint using a Twilio helper library.
+ * @param options - Connect options.
+ * See {@link (Voice:namespace).ConnectOptions}.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with a call when the call is created.
+ * - Rejects:
+ * * When a call is not able to be created on the native layer.
+ * * With an {@link TwilioErrors.InvalidArgumentError} when invalid
+ * arguments are passed.
+ */
+ async connect(token, {
+ contactHandle = 'Default Contact',
+ params = {}
+ } = {}) {
+ if (typeof token !== 'string') {
+ throw new InvalidArgumentError('Argument "token" must be of type "string".');
+ }
+
+ if (typeof contactHandle !== 'string') {
+ throw new InvalidArgumentError('Optional argument "contactHandle" must be undefined or of type' + ' "string".');
+ }
+
+ if (typeof params !== 'object') {
+ throw new InvalidArgumentError('Optional argument "params" must be undefined or of type "object".');
+ }
+
+ for (const [key, value] of Object.entries(params)) {
+ if (typeof value !== 'string') {
+ throw new InvalidArgumentError(`Voice.ConnectOptions.params["${key}"] must be of type string`);
+ }
+ }
+
+ switch (Platform.OS) {
+ case 'ios':
+ return this._connect_ios(token, params, contactHandle);
+
+ case 'android':
+ return this._connect_android(token, params);
+
+ default:
+ throw new UnsupportedPlatformError(`Unsupported platform "${Platform.OS}". Expected "android" or "ios".`);
+ }
+ }
+ /**
+ * Get the version of the native SDK. Note that this is not the version of the
+ * React Native SDK, this is the version of the mobile SDK that the RN SDK is
+ * utilizing.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a string representing the version of the native SDK.
+ */
+
+
+ getVersion() {
+ return NativeModule.voice_getVersion();
+ }
+ /**
+ * Get the Device token from the native layer.
+ * @returns a Promise that resolves with a string representing the Device
+ * token.
+ */
+
+
+ getDeviceToken() {
+ return NativeModule.voice_getDeviceToken();
+ }
+ /**
+ * Get a list of existing calls, ongoing and pending. This will not return any
+ * call that has finished.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a mapping of `Uuid`s to {@link (Call:class)}s.
+ */
+
+
+ async getCalls() {
+ const callInfos = await NativeModule.voice_getCalls();
+ const callsMap = new Map(callInfos.map(callInfo => [callInfo.uuid, new Call(callInfo)]));
+ return callsMap;
+ }
+ /**
+ * Get a list of pending call invites.
+ *
+ * @remarks
+ * This list will not contain any call invites that have been "settled"
+ * (answered or rejected).
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with a mapping of `Uuid`s to {@link (CallInvite:class)}s.
+ */
+
+
+ async getCallInvites() {
+ const callInviteInfos = await NativeModule.voice_getCallInvites();
+ const callInvitesMap = new Map(callInviteInfos.map(callInviteInfo => [callInviteInfo.uuid, new CallInvite(callInviteInfo, CallInvite.State.Pending)]));
+ return callInvitesMap;
+ }
+ /**
+ * Register this device for incoming calls.
+ * @param token - A Twilio Access Token.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the device has been registered.
+ */
+
+
+ register(token) {
+ return NativeModule.voice_register(token);
+ }
+ /**
+ * Unregister this device for incoming calls.
+ * @param token - A Twilio Access Token.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the device has been unregistered.
+ */
+
+
+ unregister(token) {
+ return NativeModule.voice_unregister(token);
+ }
+ /**
+ * Get audio device information from the native layer.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a list of the native device's audio devices and the
+ * currently selected device.
+ */
+
+
+ async getAudioDevices() {
+ const {
+ audioDevices: audioDeviceInfos,
+ selectedDevice: selectedDeviceInfo
+ } = await NativeModule.voice_getAudioDevices();
+ const audioDevices = audioDeviceInfos.map(audioDeviceInfo => new AudioDevice(audioDeviceInfo));
+ const selectedDevice = typeof selectedDeviceInfo !== 'undefined' ? new AudioDevice(selectedDeviceInfo) : undefined;
+ return selectedDevice ? {
+ audioDevices,
+ selectedDevice
+ } : {
+ audioDevices
+ };
+ }
+ /**
+ * Show the native AV route picker.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * This API is specific to iOS and unavailable in Android. If this API is
+ * invoked on Android, there will be no operation and the returned `Promise`
+ * will immediately resolve with `null`.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves when the AV Route Picker View is shown.
+ */
+
+
+ showAvRoutePickerView() {
+ return NativeModule.voice_showNativeAvRoutePicker();
+ }
+ /**
+ * Initialize a Push Registry instance inside the SDK for handling
+ * PushKit device token updates and receiving push notifications.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * This API is specific to iOS and unavailable in Android.
+ * Use this method if the application does not have an iOS PushKit
+ * module and wishes to delegate the event handling to the SDK.
+ * Call this method upon launching the app to guarantee that incoming
+ * call push notifications will be surfaced to the users, especially when
+ * the app is not running in the foreground.
+ *
+ * @return
+ * A `Promise` that
+ * - Resolves when the initialization is done.
+ */
+
+
+ async initializePushRegistry() {
+ switch (Platform.OS) {
+ case 'ios':
+ return NativeModule.voice_initializePushRegistry();
+
+ default:
+ throw new UnsupportedPlatformError(`Unsupported platform "${Platform.OS}". This method is only supported on iOS.`);
+ }
+ }
+ /**
+ * Custom iOS CallKit configuration.
+ *
+ * @param configuration - iOS CallKit configuration options.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * See {@link CallKit} for more information.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves when the configuration has been applied.
+ * - Rejects if the configuration is unable to be applied.
+ */
+
+
+ async setCallKitConfiguration(configuration) {
+ switch (Platform.OS) {
+ case 'ios':
+ return NativeModule.voice_setCallKitConfiguration(configuration);
+
+ default:
+ throw new UnsupportedPlatformError(`Unsupported platform "${Platform.OS}". This method is only supported on iOS.`);
+ }
+ }
+
+}
+/**
+ * Provides enumerations and types used by {@link (Voice:class)
+ * | Voice objects}.
+ *
+ * @remarks
+ * - See also the {@link (Voice:class) | Voice class}.
+ * - See also the {@link (Voice:interface) | Voice interface}.
+ *
+ * @public
+ */
+
+(function (_Voice) {
+ /**
+ * Options to pass to the {@link (Voice:class).connect} method.
+ */
+ let Event;
+
+ (function (Event) {
+ Event["AudioDevicesUpdated"] = "audioDevicesUpdated";
+ Event["CallInvite"] = "callInvite";
+ Event["Error"] = "error";
+ Event["Registered"] = "registered";
+ Event["Unregistered"] = "unregistered";
+ })(Event || (Event = {}));
+
+ _Voice.Event = Event;
+ let Listener;
+
+ (function (_Listener) {})(Listener || (Listener = _Voice.Listener || (_Voice.Listener = {})));
+})(Voice || (Voice = {}));
+//# sourceMappingURL=Voice.js.map
\ No newline at end of file
diff --git a/lib/module/Voice.js.map b/lib/module/Voice.js.map
new file mode 100644
index 00000000..7d5b2fef
--- /dev/null
+++ b/lib/module/Voice.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["Voice.tsx"],"names":["EventEmitter","AudioDevice","Call","CallInvite","NativeEventEmitter","NativeModule","Platform","Constants","InvalidArgumentError","UnsupportedPlatformError","constructTwilioError","Voice","constructor","nativeVoiceEvent","type","handler","_nativeEventHandler","Error","VoiceEventTypeValueIncomingCallInvite","callInvite","callInviteInfo","State","Pending","emit","Event","VoiceEventError","error","code","message","VoiceEventRegistered","Registered","VoiceEventUnregistered","Unregistered","VoiceEventAudioDevicesUpdated","audioDevices","audioDeviceInfos","selectedDevice","selectedDeviceInfo","map","audioDeviceInfo","undefined","AudioDevicesUpdated","_handleError","_handleCallInvite","_handleRegistered","_handleUnregistered","_handleAudioDevicesUpdated","addListener","ScopeVoice","_handleNativeEvent","_connect_android","token","params","connectResult","voice_connect_android","then","callInfo","catch","userInfo","_connect_ios","contactHandle","parsedContactHandle","voice_connect_ios","connect","key","value","Object","entries","OS","getVersion","voice_getVersion","getDeviceToken","voice_getDeviceToken","getCalls","callInfos","voice_getCalls","callsMap","Map","uuid","getCallInvites","callInviteInfos","voice_getCallInvites","callInvitesMap","register","voice_register","unregister","voice_unregister","getAudioDevices","voice_getAudioDevices","showAvRoutePickerView","voice_showNativeAvRoutePicker","initializePushRegistry","voice_initializePushRegistry","setCallKitConfiguration","configuration","voice_setCallKitConfiguration","Listener"],"mappings":"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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 { AudioDevice } from './AudioDevice';\nimport { Call } from './Call';\nimport { CallInvite } from './CallInvite';\nimport { NativeEventEmitter, NativeModule, Platform } from './common';\nimport { Constants } from './constants';\nimport { InvalidArgumentError } from './error/InvalidArgumentError';\nimport type { TwilioError } from './error/TwilioError';\nimport { UnsupportedPlatformError } from './error/UnsupportedPlatformError';\nimport { constructTwilioError } from './error/utility';\nimport type { NativeAudioDeviceInfo } from './type/AudioDevice';\nimport type { NativeCallInfo } from './type/Call';\nimport type { NativeCallInviteInfo } from './type/CallInvite';\nimport type { CallKit } from './type/CallKit';\nimport type { CustomParameters, Uuid } from './type/common';\nimport type { NativeVoiceEvent, NativeVoiceEventType } from './type/Voice';\n\n/**\n * Defines strict typings for all events emitted by {@link (Voice:class)\n * | Voice 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 (Voice:class) | Voice class}.\n * - See also the {@link (Voice:namespace) | Voice namespace}.\n *\n * @public\n */\nexport declare interface Voice {\n /**\n * ------------\n * Emit Typings\n * ------------\n */\n\n /** @internal */\n emit(\n voiceEvent: Voice.Event.AudioDevicesUpdated,\n audioDevices: AudioDevice[],\n selectedDevice?: AudioDevice\n ): boolean;\n\n /** @internal */\n emit(voiceEvent: Voice.Event.CallInvite, callInvite: CallInvite): boolean;\n\n /** @internal */\n emit(voiceEvent: Voice.Event.Error, error: TwilioError): boolean;\n\n /** @internal */\n emit(voiceEvent: Voice.Event.Registered): boolean;\n\n /** @internal */\n emit(voiceEvent: Voice.Event.Unregistered): boolean;\n\n /** @internal */\n emit(voiceEvent: Voice.Event, ...args: any[]): boolean;\n\n /**\n * ----------------\n * Listener Typings\n * ----------------\n */\n\n /**\n * Audio devices updated event. Raised when the list of audio devices changes.\n *\n * @example\n * ```typescript\n * voice.addListener(Voice.Event.AudioDevicesUpdated, () => {\n * // the list of available audio devices has changed and/or the selected\n * // audio device has been changed\n * });\n * ```\n *\n * @param audioDevicesUpdatedEvent - 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 audioDevicesUpdatedEvent: Voice.Event.AudioDevicesUpdated,\n listener: Voice.Listener.AudioDevicesUpdated\n ): this;\n /** {@inheritDoc (Voice:interface).(addListener:1)} */\n on(\n audioDevicesUpdatedEvent: Voice.Event.AudioDevicesUpdated,\n listener: Voice.Listener.AudioDevicesUpdated\n ): this;\n\n /**\n * Call invite event. Raised when an incoming call invite is received.\n *\n * @example\n * ```typescript\n * voice.addListener(Voice.Event.CallInvite, (callInvite: CallInvite) => {\n * // handle the incoming call invite\n * });\n * ```\n *\n * @param callInviteEvent - 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 callInviteEvent: Voice.Event.CallInvite,\n listener: Voice.Listener.CallInvite\n ): this;\n /** {@inheritDoc (Voice:interface).(addListener:2)} */\n on(\n callInviteEvent: Voice.Event.CallInvite,\n listener: Voice.Listener.CallInvite\n ): this;\n\n /**\n * Error event. Raised when the SDK encounters an error.\n *\n * @example\n * ```typescript\n * voice.addListener(Voice.Event.Error, (error: TwilioError.GenericError) => {\n * // handle a generic Voice SDK error\n * });\n * ```\n *\n * @param errorEvent - 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 errorEvent: Voice.Event.Error,\n listener: Voice.Listener.Error\n ): this;\n /** {@inheritDoc (Voice:interface).(addListener:3)} */\n on(errorEvent: Voice.Event.Error, listener: Voice.Listener.Error): this;\n\n /**\n * Registered event. Raised when the SDK is registered for incoming calls.\n *\n * @example\n * ```typescript\n * voice.addListener(Voice.Event.Registered, () => {\n * // handle successful registration for incoming calls\n * });\n * ```\n *\n * @param registeredEvent - 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 registeredEvent: Voice.Event.Registered,\n listener: Voice.Listener.Registered\n ): this;\n /** {@inheritDoc (Voice:interface).(addListener:4)} */\n on(\n registeredEvent: Voice.Event.Registered,\n listener: Voice.Listener.Registered\n ): this;\n\n /**\n * Unregistered event. Raised when the SDK is unregistered for incoming calls.\n *\n * @example\n * ```typescript\n * voice.addListener(Voice.Event.Unregistered, () => {\n * // handle successful unregistration for incoming calls\n * });\n * ```\n *\n * @param unregisteredEvent - 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 unregisteredEvent: Voice.Event.Unregistered,\n listener: Voice.Listener.Unregistered\n ): this;\n /** {@inheritDoc (Voice:interface).(addListener:5)} */\n on(\n unregisteredEvent: Voice.Event.Unregistered,\n listener: Voice.Listener.Unregistered\n ): this;\n\n /**\n * Generic event listener typings.\n * @param voiceEvent - 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(voiceEvent: Voice.Event, listener: Voice.Listener.Generic): this;\n /** {@inheritDoc (Voice:interface).(addListener:6)} */\n on(voiceEvent: Voice.Event, listener: Voice.Listener.Generic): this;\n}\n\n/**\n * Main entry-point of the Voice SDK. Provides access to the entire feature-set\n * of the library.\n *\n * @example\n * Usage:\n * ```\n * const token = '...';\n *\n * const voice = new Voice();\n *\n * voice.on(Voice.Event.CallInvite, (callInvite: CallInvite) => {\n * callInvite.accept();\n * });\n *\n * voice.register(token);\n * ```\n *\n * @remarks\n * - See also the {@link (Voice:namespace).Event} enum for events emitted by\n * `Voice` objects.\n * - See also the {@link (Voice:interface) | Voice interface} for events\n * emitted by this class and associated types.\n * - See also the {@link (Voice:namespace) | Voice namespace} for types and\n * enumerations used by this class.\n *\n * @public\n */\nexport class Voice extends EventEmitter {\n /**\n * Handlers for native voice 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 (Voice:class)._handleNativeEvent} function is invoked.\n */\n private _nativeEventHandler: Record<\n NativeVoiceEventType,\n (voiceEvent: NativeVoiceEvent) => void\n >;\n\n /**\n * Main entry-point of the Voice SDK. Provides access to the entire\n * feature-set of the library.\n */\n constructor() {\n super();\n\n this._nativeEventHandler = {\n /**\n * Common\n */\n [Constants.VoiceEventError]: this._handleError,\n\n /**\n * Call Invite\n */\n [Constants.VoiceEventTypeValueIncomingCallInvite]: this._handleCallInvite,\n\n /**\n * Registration\n */\n [Constants.VoiceEventRegistered]: this._handleRegistered,\n [Constants.VoiceEventUnregistered]: this._handleUnregistered,\n\n /**\n * Audio Devices\n */\n [Constants.VoiceEventAudioDevicesUpdated]:\n this._handleAudioDevicesUpdated,\n };\n\n NativeEventEmitter.addListener(\n Constants.ScopeVoice,\n this._handleNativeEvent\n );\n }\n\n /**\n * Connect for devices on Android platforms.\n */\n private async _connect_android(token: string, params: CustomParameters) {\n const connectResult = await NativeModule.voice_connect_android(\n token,\n params\n )\n .then((callInfo) => {\n return { type: 'ok', callInfo } as const;\n })\n .catch((error) => {\n const code = error.userInfo.code;\n const message = error.userInfo.message;\n return { type: 'err', message, code } as const;\n });\n\n if (connectResult.type === 'err') {\n throw constructTwilioError(connectResult.message, connectResult.code);\n }\n\n return new Call(connectResult.callInfo);\n }\n\n /**\n * Connect for devices on iOS platforms.\n */\n private async _connect_ios(\n token: string,\n params: CustomParameters,\n contactHandle: string\n ) {\n const parsedContactHandle =\n contactHandle === '' ? 'Default Contact' : contactHandle;\n const callInfo = await NativeModule.voice_connect_ios(\n token,\n params,\n parsedContactHandle\n );\n return new Call(callInfo);\n }\n\n /**\n * Intermediary event handler for `Voice`-level events. Ensures that the type\n * of the incoming event is expected and invokes the proper event listener.\n * @param nativeVoiceEvent - A `Voice` event directly from the native layer.\n */\n private _handleNativeEvent = (nativeVoiceEvent: NativeVoiceEvent) => {\n const { type } = nativeVoiceEvent;\n\n const handler = this._nativeEventHandler[type];\n if (typeof handler === 'undefined') {\n throw new Error(\n `Unknown voice event type received from the native layer: \"${type}\".`\n );\n }\n\n handler(nativeVoiceEvent);\n };\n\n /**\n * Call invite handler. Creates a {@link (CallInvite:class)} from the info\n * raised by the native layer and emits it.\n * @param nativeVoiceEvent - A `Voice` event directly from the native layer.\n */\n private _handleCallInvite = (nativeVoiceEvent: NativeVoiceEvent) => {\n if (\n nativeVoiceEvent.type !== Constants.VoiceEventTypeValueIncomingCallInvite\n ) {\n throw new Error(\n 'Incorrect \"voice#callInvite\" handler called for type ' +\n `\"${nativeVoiceEvent.type}\".`\n );\n }\n\n const { callInvite: callInviteInfo } = nativeVoiceEvent;\n\n const callInvite = new CallInvite(callInviteInfo, CallInvite.State.Pending);\n\n this.emit(Voice.Event.CallInvite, callInvite);\n };\n\n /**\n * Error event handler. Creates an error from the namespace\n * {@link TwilioErrors} from the info raised by the native layer and emits it.\n * @param nativeVoiceEvent - A `Voice` event directly from the native layer.\n */\n private _handleError = (nativeVoiceEvent: NativeVoiceEvent) => {\n if (nativeVoiceEvent.type !== Constants.VoiceEventError) {\n throw new Error(\n 'Incorrect \"voice#error\" handler called for type ' +\n `\"${nativeVoiceEvent.type}\".`\n );\n }\n\n const {\n error: { code, message },\n } = nativeVoiceEvent;\n const error = constructTwilioError(message, code);\n this.emit(Voice.Event.Error, error);\n };\n\n /**\n * Registered event handler. Emits a\n * {@link (Voice:namespace).Event.Registered} event.\n */\n private _handleRegistered = (nativeVoiceEvent: NativeVoiceEvent) => {\n if (nativeVoiceEvent.type !== Constants.VoiceEventRegistered) {\n throw new Error(\n 'Incorrect \"voice#error\" handler called for type ' +\n `\"${nativeVoiceEvent.type}\".`\n );\n }\n\n this.emit(Voice.Event.Registered);\n };\n\n /**\n * Unregistered event handler. Emits a\n * {@link (Voice:namespace).Event.Unregistered} event.\n */\n private _handleUnregistered = (nativeVoiceEvent: NativeVoiceEvent) => {\n if (nativeVoiceEvent.type !== Constants.VoiceEventUnregistered) {\n throw new Error(\n 'Incorrect \"voice#error\" handler called for type ' +\n `\"${nativeVoiceEvent.type}\".`\n );\n }\n\n this.emit(Voice.Event.Unregistered);\n };\n\n /**\n * Audio devices updated event handler. Generates a new list of\n * {@link (AudioDevice:class) | AudioDevice objects} and emits it.\n * @param nativeVoiceEvent - A `Voice` event directly from the native layer.\n */\n private _handleAudioDevicesUpdated = (nativeVoiceEvent: NativeVoiceEvent) => {\n if (nativeVoiceEvent.type !== Constants.VoiceEventAudioDevicesUpdated) {\n throw new Error(\n 'Incorrect \"voice#audioDevicesUpdated\" handler called for type ' +\n `\"${nativeVoiceEvent.type}\".`\n );\n }\n\n const {\n audioDevices: audioDeviceInfos,\n selectedDevice: selectedDeviceInfo,\n } = nativeVoiceEvent;\n\n const audioDevices = audioDeviceInfos.map(\n (audioDeviceInfo: NativeAudioDeviceInfo) =>\n new AudioDevice(audioDeviceInfo)\n );\n\n const selectedDevice =\n typeof selectedDeviceInfo !== 'undefined' && selectedDeviceInfo !== null\n ? new AudioDevice(selectedDeviceInfo)\n : undefined;\n\n this.emit(Voice.Event.AudioDevicesUpdated, audioDevices, selectedDevice);\n };\n\n /**\n * Create an outgoing call.\n *\n * @remarks\n * Note that the resolution of the returned `Promise` does not imply any call\n * event occurring, such as answered or rejected.\n * The `contactHandle` parameter is only required for iOS apps. Currently the\n * parameter does have any effect on Android apps and can be ignored.\n * `Default Contact` will appear in the iOS call history if the value is empty\n * or not provided.\n *\n * @param token - A Twilio Access Token, usually minted by an\n * authentication-gated endpoint using a Twilio helper library.\n * @param options - Connect options.\n * See {@link (Voice:namespace).ConnectOptions}.\n *\n * @returns\n * A `Promise` that\n * - Resolves with a call when the call is created.\n * - Rejects:\n * * When a call is not able to be created on the native layer.\n * * With an {@link TwilioErrors.InvalidArgumentError} when invalid\n * arguments are passed.\n */\n async connect(\n token: string,\n {\n contactHandle = 'Default Contact',\n params = {},\n }: Voice.ConnectOptions = {}\n ): Promise {\n if (typeof token !== 'string') {\n throw new InvalidArgumentError(\n 'Argument \"token\" must be of type \"string\".'\n );\n }\n\n if (typeof contactHandle !== 'string') {\n throw new InvalidArgumentError(\n 'Optional argument \"contactHandle\" must be undefined or of type' +\n ' \"string\".'\n );\n }\n\n if (typeof params !== 'object') {\n throw new InvalidArgumentError(\n 'Optional argument \"params\" must be undefined or of type \"object\".'\n );\n }\n\n for (const [key, value] of Object.entries(params)) {\n if (typeof value !== 'string') {\n throw new InvalidArgumentError(\n `Voice.ConnectOptions.params[\"${key}\"] must be of type string`\n );\n }\n }\n\n switch (Platform.OS) {\n case 'ios':\n return this._connect_ios(token, params, contactHandle);\n case 'android':\n return this._connect_android(token, params);\n default:\n throw new UnsupportedPlatformError(\n `Unsupported platform \"${Platform.OS}\". Expected \"android\" or \"ios\".`\n );\n }\n }\n\n /**\n * Get the version of the native SDK. Note that this is not the version of the\n * React Native SDK, this is the version of the mobile SDK that the RN SDK is\n * utilizing.\n * @returns\n * A `Promise` that\n * - Resolves with a string representing the version of the native SDK.\n */\n getVersion(): Promise {\n return NativeModule.voice_getVersion();\n }\n\n /**\n * Get the Device token from the native layer.\n * @returns a Promise that resolves with a string representing the Device\n * token.\n */\n getDeviceToken(): Promise {\n return NativeModule.voice_getDeviceToken();\n }\n\n /**\n * Get a list of existing calls, ongoing and pending. This will not return any\n * call that has finished.\n * @returns\n * A `Promise` that\n * - Resolves with a mapping of `Uuid`s to {@link (Call:class)}s.\n */\n async getCalls(): Promise> {\n const callInfos = await NativeModule.voice_getCalls();\n const callsMap = new Map(\n callInfos.map((callInfo: NativeCallInfo) => [\n callInfo.uuid,\n new Call(callInfo),\n ])\n );\n return callsMap;\n }\n\n /**\n * Get a list of pending call invites.\n *\n * @remarks\n * This list will not contain any call invites that have been \"settled\"\n * (answered or rejected).\n *\n * @returns\n * A `Promise` that\n * - Resolves with a mapping of `Uuid`s to {@link (CallInvite:class)}s.\n */\n async getCallInvites(): Promise> {\n const callInviteInfos = await NativeModule.voice_getCallInvites();\n const callInvitesMap = new Map(\n callInviteInfos.map((callInviteInfo: NativeCallInviteInfo) => [\n callInviteInfo.uuid,\n new CallInvite(callInviteInfo, CallInvite.State.Pending),\n ])\n );\n return callInvitesMap;\n }\n\n /**\n * Register this device for incoming calls.\n * @param token - A Twilio Access Token.\n * @returns\n * A `Promise` that\n * - Resolves when the device has been registered.\n */\n register(token: string): Promise {\n return NativeModule.voice_register(token);\n }\n\n /**\n * Unregister this device for incoming calls.\n * @param token - A Twilio Access Token.\n * @returns\n * A `Promise` that\n * - Resolves when the device has been unregistered.\n */\n unregister(token: string): Promise {\n return NativeModule.voice_unregister(token);\n }\n\n /**\n * Get audio device information from the native layer.\n * @returns\n * A `Promise` that\n * - Resolves with a list of the native device's audio devices and the\n * currently selected device.\n */\n async getAudioDevices(): Promise<{\n audioDevices: AudioDevice[];\n selectedDevice?: AudioDevice;\n }> {\n const {\n audioDevices: audioDeviceInfos,\n selectedDevice: selectedDeviceInfo,\n } = await NativeModule.voice_getAudioDevices();\n\n const audioDevices = audioDeviceInfos.map(\n (audioDeviceInfo: NativeAudioDeviceInfo) =>\n new AudioDevice(audioDeviceInfo)\n );\n\n const selectedDevice =\n typeof selectedDeviceInfo !== 'undefined'\n ? new AudioDevice(selectedDeviceInfo)\n : undefined;\n\n return selectedDevice ? { audioDevices, selectedDevice } : { audioDevices };\n }\n\n /**\n * Show the native AV route picker.\n *\n * @remarks\n * Unsupported platforms:\n * - Android\n *\n * This API is specific to iOS and unavailable in Android. If this API is\n * invoked on Android, there will be no operation and the returned `Promise`\n * will immediately resolve with `null`.\n *\n * @returns\n * A `Promise` that\n * - Resolves when the AV Route Picker View is shown.\n */\n showAvRoutePickerView(): Promise {\n return NativeModule.voice_showNativeAvRoutePicker();\n }\n\n /**\n * Initialize a Push Registry instance inside the SDK for handling\n * PushKit device token updates and receiving push notifications.\n *\n * @remarks\n * Unsupported platforms:\n * - Android\n *\n * This API is specific to iOS and unavailable in Android.\n * Use this method if the application does not have an iOS PushKit\n * module and wishes to delegate the event handling to the SDK.\n * Call this method upon launching the app to guarantee that incoming\n * call push notifications will be surfaced to the users, especially when\n * the app is not running in the foreground.\n *\n * @return\n * A `Promise` that\n * - Resolves when the initialization is done.\n */\n async initializePushRegistry(): Promise {\n switch (Platform.OS) {\n case 'ios':\n return NativeModule.voice_initializePushRegistry();\n default:\n throw new UnsupportedPlatformError(\n `Unsupported platform \"${Platform.OS}\". This method is only supported on iOS.`\n );\n }\n }\n\n /**\n * Custom iOS CallKit configuration.\n *\n * @param configuration - iOS CallKit configuration options.\n *\n * @remarks\n * Unsupported platforms:\n * - Android\n *\n * See {@link CallKit} for more information.\n *\n * @returns\n * A `Promise` that\n * - Resolves when the configuration has been applied.\n * - Rejects if the configuration is unable to be applied.\n */\n async setCallKitConfiguration(\n configuration: CallKit.ConfigurationOptions\n ): Promise {\n switch (Platform.OS) {\n case 'ios':\n return NativeModule.voice_setCallKitConfiguration(configuration);\n default:\n throw new UnsupportedPlatformError(\n `Unsupported platform \"${Platform.OS}\". This method is only supported on iOS.`\n );\n }\n }\n}\n\n/**\n * Provides enumerations and types used by {@link (Voice:class)\n * | Voice objects}.\n *\n * @remarks\n * - See also the {@link (Voice:class) | Voice class}.\n * - See also the {@link (Voice:interface) | Voice interface}.\n *\n * @public\n */\nexport namespace Voice {\n /**\n * Options to pass to the {@link (Voice:class).connect} method.\n */\n export type ConnectOptions = {\n /**\n * Custom parameters to send to the TwiML Application.\n */\n params?: Record;\n /**\n * A CallKit display name that will show in the call history as the contact\n * handle.\n *\n * @remarks\n * Unsupported platforms:\n * - Android\n */\n contactHandle?: string;\n };\n\n /**\n * Enumeration of all event strings emitted by {@link (Voice:class)} objects.\n */\n export enum Event {\n /**\n * Raised when there is a change in available audio devices.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:1)\n * | Voice.addListener(AudioDevicesUpdated)}.\n */\n 'AudioDevicesUpdated' = 'audioDevicesUpdated',\n\n /**\n * Raised when there is an incoming call invite.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:2)\n * | Voice.addListener(CallInvite)}.\n */\n 'CallInvite' = 'callInvite',\n\n /**\n * Raised when the SDK encounters an error.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:3)\n * | Voice.addListener(Error)}.\n */\n 'Error' = 'error',\n\n /**\n * Raised when the SDK is registered for incoming calls.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:4)\n * | Voice.addListener(Registered)}.\n */\n 'Registered' = 'registered',\n\n /**\n * Raised when the SDK is unregistered for incoming calls.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:5)\n * | Voice.addListener(Unregistered)}.\n */\n 'Unregistered' = 'unregistered',\n }\n\n /**\n * Listener types for all events emitted by a {@link (Voice:class)\n * | Voice object.}\n */\n export namespace Listener {\n /**\n * Audio devices updated event listener. This should be the function\n * signature of an event listener bound to the\n * {@link (Voice:namespace).Event.AudioDevicesUpdated} event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:1)}.\n */\n export type AudioDevicesUpdated = (\n audioDevices: AudioDevice[],\n selectedDevice?: AudioDevice\n ) => void;\n\n /**\n * Call invite event listener. This should be the function signature of an\n * event listener bound to the\n * {@link (Voice:namespace).Event.CallInvite} event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:2)}.\n */\n export type CallInvite = (callInvite: CallInvite) => void;\n\n /**\n * Error event listener. This should be the function signature of an event\n * listener bound to the\n * {@link (Voice:namespace).Event.Error} event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:3)}.\n *\n * See {@link TwilioErrors} for all error classes.\n */\n export type Error = (error: TwilioError) => void;\n\n /**\n * Registered event listener. This should be the function signature of an\n * event listener bound to the\n * {@link (Voice:namespace).Event.Registered} event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:4)}.\n */\n export type Registered = () => void;\n\n /**\n * Unregistered event listener. This should be the function signature of an\n * event listener bound to the\n * {@link (Voice:namespace).Event.Unregistered} event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:5)}.\n */\n export type Unregistered = () => void;\n\n /**\n * Generic event listener. This should be the function signature of any\n * event listener bound to any voice event.\n *\n * @remarks\n *\n * See {@link (Voice:interface).(addListener:6)}.\n */\n export type Generic = (...args: any[]) => void;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/common.js b/lib/module/common.js
new file mode 100644
index 00000000..7bd476d0
--- /dev/null
+++ b/lib/module/common.js
@@ -0,0 +1,11 @@
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import * as ReactNative from 'react-native';
+export const NativeModule = ReactNative.NativeModules.TwilioVoiceReactNative;
+export const NativeEventEmitter = new ReactNative.NativeEventEmitter(NativeModule);
+export const Platform = ReactNative.Platform;
+//# sourceMappingURL=common.js.map
\ No newline at end of file
diff --git a/lib/module/common.js.map b/lib/module/common.js.map
new file mode 100644
index 00000000..827764d4
--- /dev/null
+++ b/lib/module/common.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["common.ts"],"names":["ReactNative","NativeModule","NativeModules","TwilioVoiceReactNative","NativeEventEmitter","Platform"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAO,KAAKA,WAAZ,MAA6B,cAA7B;AAGA,OAAO,MAAMC,YAAY,GAAGD,WAAW,CAACE,aAAZ,CACzBC,sBADI;AAEP,OAAO,MAAMC,kBAAkB,GAAG,IAAIJ,WAAW,CAACI,kBAAhB,CAChCH,YADgC,CAA3B;AAGP,OAAO,MAAMI,QAAQ,GAAGL,WAAW,CAACK,QAA7B","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 * as ReactNative from 'react-native';\nimport type { TwilioVoiceReactNative as TwilioVoiceReactNativeType } from './type/NativeModule';\n\nexport const NativeModule = ReactNative.NativeModules\n .TwilioVoiceReactNative as TwilioVoiceReactNativeType;\nexport const NativeEventEmitter = new ReactNative.NativeEventEmitter(\n NativeModule\n);\nexport const Platform = ReactNative.Platform;\n"]}
\ No newline at end of file
diff --git a/lib/module/constants.js b/lib/module/constants.js
new file mode 100644
index 00000000..4c7020a4
--- /dev/null
+++ b/lib/module/constants.js
@@ -0,0 +1,140 @@
+export let Constants;
+
+(function (Constants) {
+ Constants["ReactNativeVoiceSDK"] = "react-native";
+ Constants["ReactNativeVoiceSDKVer"] = "1.2.0";
+ Constants["ScopeVoice"] = "scopeVoice";
+ Constants["ScopeCall"] = "scopeCall";
+ Constants["ScopeCallMessage"] = "scopeCallMessage";
+ Constants["ScopeCallInvite"] = "scopeCallInvite";
+ Constants["VoiceEventError"] = "voiceEventError";
+ Constants["VoiceEventType"] = "type";
+ Constants["VoiceErrorKeyError"] = "error";
+ Constants["VoiceErrorKeyCode"] = "code";
+ Constants["VoiceErrorKeyMessage"] = "message";
+ Constants["VoiceEventRegistered"] = "voiceEventRegistered";
+ Constants["VoiceEventUnregistered"] = "voiceEventUnregistered";
+ Constants["CallInfoUuid"] = "uuid";
+ Constants["CallInfoSid"] = "sid";
+ Constants["CallInfoFrom"] = "from";
+ Constants["CallInfoTo"] = "to";
+ Constants["CallInfoIsMuted"] = "isMuted";
+ Constants["CallInfoIsOnHold"] = "isOnHold";
+ Constants["CallInfoState"] = "state";
+ Constants["CallInfoInitialConnectedTimestamp"] = "initialConnectedTimestamp";
+ Constants["CallStateConnected"] = "connected";
+ Constants["CallStateConnecting"] = "connecting";
+ Constants["CallStateDisconnected"] = "disconnected";
+ Constants["CallStateReconnecting"] = "reconnecting";
+ Constants["CallStateRinging"] = "ringing";
+ Constants["CallInviteInfoUuid"] = "uuid";
+ Constants["CallInviteInfoCallSid"] = "callSid";
+ Constants["CallInviteInfoFrom"] = "from";
+ Constants["CallInviteInfoTo"] = "to";
+ Constants["CallInviteInfoCustomParameters"] = "customParameters";
+ Constants["CancelledCallInviteInfoUuid"] = "uuid";
+ Constants["CancelledCallInviteInfoCallSid"] = "callSid";
+ Constants["CancelledCallInviteInfoFrom"] = "from";
+ Constants["CancelledCallInviteInfoTo"] = "to";
+ Constants["CancelledCallInviteInfoCustomParameters"] = "customParameters";
+ Constants["VoiceEventTypeValueIncomingCallInvite"] = "voiceEventTypeValueIncomingCallInvite";
+ Constants["VoiceEventSid"] = "voiceEventSid";
+ Constants["CallMessage"] = "callMessage";
+ Constants["CallMessageContent"] = "content";
+ Constants["CallMessageContentType"] = "contentType";
+ Constants["CallMessageMessageType"] = "messageType";
+ Constants["JSEventKeyCallMessageInfo"] = "callMessage";
+ Constants["VoiceEventAudioDevicesUpdated"] = "voiceEventAudioDevicesUpdated";
+ Constants["AudioDeviceKeyUuid"] = "uuid";
+ Constants["AudioDeviceKeyName"] = "name";
+ Constants["AudioDeviceKeyType"] = "type";
+ Constants["AudioDeviceKeyAudioDevices"] = "audioDevices";
+ Constants["AudioDeviceKeySelectedDevice"] = "selectedDevice";
+ Constants["AudioDeviceKeyEarpiece"] = "earpiece";
+ Constants["AudioDeviceKeySpeaker"] = "speaker";
+ Constants["AudioDeviceKeyBluetooth"] = "bluetooth";
+ Constants["CallInviteEventKeyType"] = "type";
+ Constants["CallInviteEventTypeValueAccepted"] = "callInviteEventTypeValueCallInviteAccepted";
+ Constants["CallInviteEventTypeValueNotificationTapped"] = "callInviteEventTypeValueCallInviteNotificationTapped";
+ Constants["CallInviteEventTypeValueRejected"] = "callInviteEventTypeValueCallInviteRejected";
+ Constants["CallInviteEventTypeValueCancelled"] = "callInviteEventTypeValueCallInviteCancelled";
+ Constants["CallInviteEventKeyCallSid"] = "callSid";
+ Constants["CallEventConnected"] = "callEventConnected";
+ Constants["CallEventConnectFailure"] = "callEventConnectFailure";
+ Constants["CallEventDisconnected"] = "callEventDisconnected";
+ Constants["CallEventReconnecting"] = "callEventReconnecting";
+ Constants["CallEventReconnected"] = "callEventReconnected";
+ Constants["CallEventRinging"] = "callEventRinging";
+ Constants["CallEventQualityWarningsChanged"] = "callEventQualityWarningsChanged";
+ Constants["CallEventCurrentWarnings"] = "callEventCurrentWarnings";
+ Constants["CallEventPreviousWarnings"] = "callEventPreviousWarnings";
+ Constants["CallEventMessageFailure"] = "callEventMessageFailure";
+ Constants["CallEventMessageReceived"] = "callEventMessageReceived";
+ Constants["CallEventMessageSent"] = "callEventMessageSent";
+ Constants["Score"] = "score";
+ Constants["Issue"] = "issue";
+ Constants["PeerConnectionId"] = "peerConnectionId";
+ Constants["LocalAudioTrackStats"] = "localAudioTrackStats";
+ Constants["RemoteAudioTrackStats"] = "remoteAudioTrackStats";
+ Constants["IceCandidatePairStats"] = "iceCandidatePairStats";
+ Constants["IceCandidateStats"] = "iceCandidateStats";
+ Constants["Codec"] = "codec";
+ Constants["PacketsLost"] = "packetsLost";
+ Constants["Ssrc"] = "ssrc";
+ Constants["TrackId"] = "trackId";
+ Constants["Timestamp"] = "timestamp";
+ Constants["BytesSent"] = "bytesSent";
+ Constants["PacketsSent"] = "packetsSent";
+ Constants["RoundTripTime"] = "roundTripTime";
+ Constants["AudioLevel"] = "audioLevel";
+ Constants["Jitter"] = "jitter";
+ Constants["BytesReceived"] = "bytesReceived";
+ Constants["Mos"] = "mos";
+ Constants["TransportId"] = "transportId";
+ Constants["LocalCandidateId"] = "localCandidateId";
+ Constants["RemoteCandidateId"] = "remoteCandidateId";
+ Constants["State"] = "state";
+ Constants["LocalCandidateIp"] = "localCandidateIp";
+ Constants["RemoteCandidateIp"] = "remoteCandidateIp";
+ Constants["Nominated"] = "nominated";
+ Constants["Writeable"] = "writeable";
+ Constants["Readable"] = "readable";
+ Constants["TotalRoundTripTime"] = "totalRoundTripTime";
+ Constants["CurrentRoundTripTime"] = "currentRoundTripTime";
+ Constants["AvailableOutgoingBitrate"] = "availableOutgoingBitrate";
+ Constants["AvailableIncomingBitrate"] = "availableIncomingBitrate";
+ Constants["RequestsReceived"] = "requestsReceived";
+ Constants["RequestsSent"] = "requestsSent";
+ Constants["ResponsesReceived"] = "responsesReceived";
+ Constants["ResponsesSent"] = "responsesSent";
+ Constants["RetransmissionsReceived"] = "retransmissionsReceived";
+ Constants["RetransmissionsSent"] = "retransmissionsSent";
+ Constants["ConsentRequestsReceived"] = "consentRequestsReceived";
+ Constants["ConsentRequestsSent"] = "consentRequestsSent";
+ Constants["ConsentResponsesReceived"] = "consentResponsesReceived";
+ Constants["ConsentResponsesSent"] = "consentResponsesSent";
+ Constants["ActiveCandidatePair"] = "activeCandidatePair";
+ Constants["RelayProtocol"] = "relayProtocol";
+ Constants["IsRemote"] = "isRemote";
+ Constants["Ip"] = "ip";
+ Constants["Port"] = "port";
+ Constants["Protocol"] = "protocol";
+ Constants["CandidateType"] = "candidateType";
+ Constants["Priority"] = "priority";
+ Constants["Url"] = "url";
+ Constants["Deleted"] = "deleted";
+ Constants["PacketsReceived"] = "packetsReceived";
+ Constants["StateFailed"] = "stateFailed";
+ Constants["StateFrozen"] = "stateFrozen";
+ Constants["StateInProgress"] = "stateInProgress";
+ Constants["StateSucceeded"] = "stateSucceeded";
+ Constants["StateWaiting"] = "stateWaiting";
+ Constants["StateUnknown"] = "stateUnknown";
+ Constants["CallKitMaximumCallsPerCallGroup"] = "callKitMaximumCallsPerCallGroup";
+ Constants["CallKitMaximumCallGroups"] = "callKitMaximumCallGroups";
+ Constants["CallKitIncludesCallsInRecents"] = "callKitIncludesCallsInRecents";
+ Constants["CallKitSupportedHandleTypes"] = "callKitSupportedHandleTypes";
+ Constants["CallKitIconTemplateImageData"] = "callKitIconTemplateImageData";
+ Constants["CallKitRingtoneSound"] = "callKitRingtoneSound";
+})(Constants || (Constants = {}));
+//# sourceMappingURL=constants.js.map
\ No newline at end of file
diff --git a/lib/module/constants.js.map b/lib/module/constants.js.map
new file mode 100644
index 00000000..02735568
--- /dev/null
+++ b/lib/module/constants.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["constants.ts"],"names":["Constants"],"mappings":"AAAA,WAAYA,SAAZ;;WAAYA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;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,KAAAA,S","sourcesContent":["export enum Constants {\n // React Native Voice SDK\n 'ReactNativeVoiceSDK' = 'react-native',\n 'ReactNativeVoiceSDKVer' = '1.2.0',\n\n // Scope names\n 'ScopeVoice' = 'scopeVoice',\n 'ScopeCall' = 'scopeCall',\n 'ScopeCallMessage' = 'scopeCallMessage',\n 'ScopeCallInvite' = 'scopeCallInvite',\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 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 // Post feedback\n 'Score' = 'score',\n 'Issue' = 'issue',\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"]}
\ No newline at end of file
diff --git a/lib/module/error/InvalidArgumentError.js b/lib/module/error/InvalidArgumentError.js
new file mode 100644
index 00000000..104d1f65
--- /dev/null
+++ b/lib/module/error/InvalidArgumentError.js
@@ -0,0 +1,23 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+import { TwilioError } from './TwilioError';
+/**
+ * Error describing that an SDK function is invoked with an invalid argument.
+ *
+ * @public
+ */
+
+export class InvalidArgumentError extends TwilioError {
+ constructor(message) {
+ super(message);
+
+ _defineProperty(this, "description", 'Invalid argument error.');
+
+ _defineProperty(this, "explanation", 'The SDK has encountered a situation where invalid arguments were passed.');
+
+ Object.setPrototypeOf(this, InvalidArgumentError.prototype);
+ this.name = InvalidArgumentError.name;
+ }
+
+}
+//# sourceMappingURL=InvalidArgumentError.js.map
\ No newline at end of file
diff --git a/lib/module/error/InvalidArgumentError.js.map b/lib/module/error/InvalidArgumentError.js.map
new file mode 100644
index 00000000..f7940090
--- /dev/null
+++ b/lib/module/error/InvalidArgumentError.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["InvalidArgumentError.ts"],"names":["TwilioError","InvalidArgumentError","constructor","message","Object","setPrototypeOf","prototype","name"],"mappings":";;AAAA,SAASA,WAAT,QAA4B,eAA5B;AAEA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,oBAAN,SAAmCD,WAAnC,CAA+C;AAKpDE,EAAAA,WAAW,CAACC,OAAD,EAAkB;AAC3B,UAAMA,OAAN;;AAD2B,yCAJP,yBAIO;;AAAA,yCAF3B,0EAE2B;;AAG3BC,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4BJ,oBAAoB,CAACK,SAAjD;AACA,SAAKC,IAAL,GAAYN,oBAAoB,CAACM,IAAjC;AACD;;AAVmD","sourcesContent":["import { TwilioError } from './TwilioError';\n\n/**\n * Error describing that an SDK function is invoked with an invalid argument.\n *\n * @public\n */\nexport class InvalidArgumentError extends TwilioError {\n description: string = 'Invalid argument error.';\n explanation: string =\n 'The SDK has encountered a situation where invalid arguments were passed.';\n\n constructor(message: string) {\n super(message);\n\n Object.setPrototypeOf(this, InvalidArgumentError.prototype);\n this.name = InvalidArgumentError.name;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/error/InvalidStateError.js b/lib/module/error/InvalidStateError.js
new file mode 100644
index 00000000..8a41178e
--- /dev/null
+++ b/lib/module/error/InvalidStateError.js
@@ -0,0 +1,24 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+import { TwilioError } from './TwilioError';
+/**
+ * Error describing that the SDK has entered or is attempting to enter an
+ * invalid state.
+ *
+ * @public
+ */
+
+export class InvalidStateError extends TwilioError {
+ constructor(message) {
+ super(message);
+
+ _defineProperty(this, "description", 'Invalid state error.');
+
+ _defineProperty(this, "explanation", 'The SDK has entered an invalid state.');
+
+ Object.setPrototypeOf(this, InvalidStateError.prototype);
+ this.name = InvalidStateError.name;
+ }
+
+}
+//# sourceMappingURL=InvalidStateError.js.map
\ No newline at end of file
diff --git a/lib/module/error/InvalidStateError.js.map b/lib/module/error/InvalidStateError.js.map
new file mode 100644
index 00000000..1a416760
--- /dev/null
+++ b/lib/module/error/InvalidStateError.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["InvalidStateError.ts"],"names":["TwilioError","InvalidStateError","constructor","message","Object","setPrototypeOf","prototype","name"],"mappings":";;AAAA,SAASA,WAAT,QAA4B,eAA5B;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,iBAAN,SAAgCD,WAAhC,CAA4C;AAIjDE,EAAAA,WAAW,CAACC,OAAD,EAAkB;AAC3B,UAAMA,OAAN;;AAD2B,yCAHP,sBAGO;;AAAA,yCAFP,uCAEO;;AAG3BC,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4BJ,iBAAiB,CAACK,SAA9C;AACA,SAAKC,IAAL,GAAYN,iBAAiB,CAACM,IAA9B;AACD;;AATgD","sourcesContent":["import { TwilioError } from './TwilioError';\n\n/**\n * Error describing that the SDK has entered or is attempting to enter an\n * invalid state.\n *\n * @public\n */\nexport class InvalidStateError extends TwilioError {\n description: string = 'Invalid state error.';\n explanation: string = 'The SDK has entered an invalid state.';\n\n constructor(message: string) {\n super(message);\n\n Object.setPrototypeOf(this, InvalidStateError.prototype);\n this.name = InvalidStateError.name;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/error/TwilioError.js b/lib/module/error/TwilioError.js
new file mode 100644
index 00000000..a332f5a7
--- /dev/null
+++ b/lib/module/error/TwilioError.js
@@ -0,0 +1,29 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * Generic Twilio error that the SDK will raise when encountering an error. Can
+ * be used to describe backend errors.
+ *
+ * @public
+ */
+export class TwilioError extends Error {
+ constructor(message, code) {
+ super(message);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "code", void 0);
+
+ _defineProperty(this, "description", 'Generic Twilio error.');
+
+ _defineProperty(this, "explanation", 'The SDK has encountered an unexpected error.');
+
+ _defineProperty(this, "solutions", []);
+
+ this.code = code;
+ Object.setPrototypeOf(this, TwilioError.prototype);
+ this.name = TwilioError.name;
+ }
+
+}
+//# sourceMappingURL=TwilioError.js.map
\ No newline at end of file
diff --git a/lib/module/error/TwilioError.js.map b/lib/module/error/TwilioError.js.map
new file mode 100644
index 00000000..75ffca88
--- /dev/null
+++ b/lib/module/error/TwilioError.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["TwilioError.ts"],"names":["TwilioError","Error","constructor","message","code","Object","setPrototypeOf","prototype","name"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAN,SAA0BC,KAA1B,CAAgC;AAOrCC,EAAAA,WAAW,CAACC,OAAD,EAAkBC,IAAlB,EAAiC;AAC1C,UAAMD,OAAN;;AAD0C,oCANzB,EAMyB;;AAAA;;AAAA,yCAJtB,uBAIsB;;AAAA,yCAHtB,8CAGsB;;AAAA,uCAFtB,EAEsB;;AAG1C,SAAKC,IAAL,GAAYA,IAAZ;AAEAC,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4BN,WAAW,CAACO,SAAxC;AACA,SAAKC,IAAL,GAAYR,WAAW,CAACQ,IAAxB;AACD;;AAdoC","sourcesContent":["/**\n * Generic Twilio error that the SDK will raise when encountering an error. Can\n * be used to describe backend errors.\n *\n * @public\n */\nexport class TwilioError extends Error {\n causes: string[] = [];\n code: number | undefined;\n description: string = 'Generic Twilio error.';\n explanation: string = 'The SDK has encountered an unexpected error.';\n solutions: string[] = [];\n\n constructor(message: string, code?: number) {\n super(message);\n\n this.code = code;\n\n Object.setPrototypeOf(this, TwilioError.prototype);\n this.name = TwilioError.name;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/error/UnsupportedPlatformError.js b/lib/module/error/UnsupportedPlatformError.js
new file mode 100644
index 00000000..308bd376
--- /dev/null
+++ b/lib/module/error/UnsupportedPlatformError.js
@@ -0,0 +1,24 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+import { TwilioError } from './TwilioError';
+/**
+ * Error describing that the an unsupported platform other than Android
+ * or iOS has been detected.
+ *
+ * @public
+ */
+
+export class UnsupportedPlatformError extends TwilioError {
+ constructor(message) {
+ super(message);
+
+ _defineProperty(this, "description", 'Unsupported platform error.');
+
+ _defineProperty(this, "explanation", 'An unsupported platform has been detected.');
+
+ Object.setPrototypeOf(this, UnsupportedPlatformError.prototype);
+ this.name = UnsupportedPlatformError.name;
+ }
+
+}
+//# sourceMappingURL=UnsupportedPlatformError.js.map
\ No newline at end of file
diff --git a/lib/module/error/UnsupportedPlatformError.js.map b/lib/module/error/UnsupportedPlatformError.js.map
new file mode 100644
index 00000000..97ea6bd1
--- /dev/null
+++ b/lib/module/error/UnsupportedPlatformError.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["UnsupportedPlatformError.ts"],"names":["TwilioError","UnsupportedPlatformError","constructor","message","Object","setPrototypeOf","prototype","name"],"mappings":";;AAAA,SAASA,WAAT,QAA4B,eAA5B;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,wBAAN,SAAuCD,WAAvC,CAAmD;AAIxDE,EAAAA,WAAW,CAACC,OAAD,EAAkB;AAC3B,UAAMA,OAAN;;AAD2B,yCAHP,6BAGO;;AAAA,yCAFP,4CAEO;;AAG3BC,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4BJ,wBAAwB,CAACK,SAArD;AACA,SAAKC,IAAL,GAAYN,wBAAwB,CAACM,IAArC;AACD;;AATuD","sourcesContent":["import { TwilioError } from './TwilioError';\n\n/**\n * Error describing that the an unsupported platform other than Android\n * or iOS has been detected.\n *\n * @public\n */\nexport class UnsupportedPlatformError extends TwilioError {\n description: string = 'Unsupported platform error.';\n explanation: string = 'An unsupported platform has been detected.';\n\n constructor(message: string) {\n super(message);\n\n Object.setPrototypeOf(this, UnsupportedPlatformError.prototype);\n this.name = UnsupportedPlatformError.name;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/error/generated.js b/lib/module/error/generated.js
new file mode 100644
index 00000000..a2795fb4
--- /dev/null
+++ b/lib/module/error/generated.js
@@ -0,0 +1,2315 @@
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/**
+ * This is a generated file. Any modifications here will be overwritten.
+ * See scripts/errors.js.
+ */
+import { TwilioError } from './TwilioError';
+/**
+ * @public
+ * Authorization errors.
+ */
+
+export let AuthorizationErrors;
+/**
+ * @public
+ * Forbidden errors.
+ */
+
+(function (_AuthorizationErrors) {
+ class AccessTokenInvalid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid access token
+ */
+
+ /**
+ * Twilio was unable to validate your Access Token
+ */
+
+ /**
+ * AccessTokenInvalid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20101);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid access token');
+
+ _defineProperty(this, "explanation", 'Twilio was unable to validate your Access Token');
+
+ _defineProperty(this, "name", 'AccessTokenInvalid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenInvalid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenInvalid = AccessTokenInvalid;
+
+ class AccessTokenHeaderInvalid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid access token header
+ */
+
+ /**
+ * The header of the Access Token provided to the Twilio API was invalid
+ */
+
+ /**
+ * AccessTokenHeaderInvalid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20102);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid access token header');
+
+ _defineProperty(this, "explanation", 'The header of the Access Token provided to the Twilio API was invalid');
+
+ _defineProperty(this, "name", 'AccessTokenHeaderInvalid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenHeaderInvalid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenHeaderInvalid = AccessTokenHeaderInvalid;
+
+ class AccessTokenIssuerInvalid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid access token issuer/subject
+ */
+
+ /**
+ * The issuer or subject of the Access Token provided to the Twilio API was invalid
+ */
+
+ /**
+ * AccessTokenIssuerInvalid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20103);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid access token issuer/subject');
+
+ _defineProperty(this, "explanation", 'The issuer or subject of the Access Token provided to the Twilio API was invalid');
+
+ _defineProperty(this, "name", 'AccessTokenIssuerInvalid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenIssuerInvalid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenIssuerInvalid = AccessTokenIssuerInvalid;
+
+ class AccessTokenExpired extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Access token expired or expiration date invalid
+ */
+
+ /**
+ * The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future
+ */
+
+ /**
+ * AccessTokenExpired
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20104);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Access token expired or expiration date invalid');
+
+ _defineProperty(this, "explanation", 'The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future');
+
+ _defineProperty(this, "name", 'AccessTokenExpired');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenExpired.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenExpired = AccessTokenExpired;
+
+ class AccessTokenNotYetValid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Access token not yet valid
+ */
+
+ /**
+ * The Access Token provided to the Twilio API is not yet valid
+ */
+
+ /**
+ * AccessTokenNotYetValid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20105);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Access token not yet valid');
+
+ _defineProperty(this, "explanation", 'The Access Token provided to the Twilio API is not yet valid');
+
+ _defineProperty(this, "name", 'AccessTokenNotYetValid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenNotYetValid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenNotYetValid = AccessTokenNotYetValid;
+
+ class AccessTokenGrantsInvalid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid access token grants
+ */
+
+ /**
+ * The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested
+ */
+
+ /**
+ * AccessTokenGrantsInvalid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20106);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid access token grants');
+
+ _defineProperty(this, "explanation", 'The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested');
+
+ _defineProperty(this, "name", 'AccessTokenGrantsInvalid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenGrantsInvalid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenGrantsInvalid = AccessTokenGrantsInvalid;
+
+ class AccessTokenSignatureInvalid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid access token signature
+ */
+
+ /**
+ * The signature for the Access Token provided was invalid.
+ */
+
+ /**
+ * AccessTokenSignatureInvalid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20107);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid access token signature');
+
+ _defineProperty(this, "explanation", 'The signature for the Access Token provided was invalid.');
+
+ _defineProperty(this, "name", 'AccessTokenSignatureInvalid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenSignatureInvalid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenSignatureInvalid = AccessTokenSignatureInvalid;
+
+ class AuthenticationFailed extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Authentication Failed
+ */
+
+ /**
+ * The Authentication with the provided JWT failed
+ */
+
+ /**
+ * AuthenticationFailed
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20151);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Authentication Failed');
+
+ _defineProperty(this, "explanation", 'The Authentication with the provided JWT failed');
+
+ _defineProperty(this, "name", 'AuthenticationFailed');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AuthenticationFailed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AuthenticationFailed = AuthenticationFailed;
+
+ class ExpirationTimeExceedsMaxTimeAllowed extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Expiration Time Exceeds Maximum Time Allowed
+ */
+
+ /**
+ * The expiration time provided when creating the JWT exceeds the maximum duration allowed
+ */
+
+ /**
+ * ExpirationTimeExceedsMaxTimeAllowed
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20157);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Expiration Time Exceeds Maximum Time Allowed');
+
+ _defineProperty(this, "explanation", 'The expiration time provided when creating the JWT exceeds the maximum duration allowed');
+
+ _defineProperty(this, "name", 'ExpirationTimeExceedsMaxTimeAllowed');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed = ExpirationTimeExceedsMaxTimeAllowed;
+
+ class AuthorizationError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Authorization error
+ */
+
+ /**
+ * The request requires user authentication. The server understood the request, but is refusing to fulfill it.
+ */
+
+ /**
+ * AuthorizationError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31201);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Authorization error');
+
+ _defineProperty(this, "explanation", 'The request requires user authentication. The server understood the request, but is refusing to fulfill it.');
+
+ _defineProperty(this, "name", 'AuthorizationError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AuthorizationError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AuthorizationError = AuthorizationError;
+
+ class RateExceededError extends TwilioError {
+ /**
+ * Rate limit exceeded.
+ */
+
+ /**
+ * Rate exceeded authorized limit.
+ */
+
+ /**
+ * The request performed exceeds the authorized limit.
+ */
+
+ /**
+ * RateExceededError
+ */
+
+ /**
+ * Ensure message send rate does not exceed authorized limits.
+ */
+ constructor(message) {
+ super(message, 31206);
+
+ _defineProperty(this, "causes", ['Rate limit exceeded.']);
+
+ _defineProperty(this, "description", 'Rate exceeded authorized limit.');
+
+ _defineProperty(this, "explanation", 'The request performed exceeds the authorized limit.');
+
+ _defineProperty(this, "name", 'RateExceededError');
+
+ _defineProperty(this, "solutions", ['Ensure message send rate does not exceed authorized limits.']);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.RateExceededError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.RateExceededError = RateExceededError;
+
+ class CallMessageEventTypeInvalidError extends TwilioError {
+ /**
+ * The Call Message Event Type is invalid and is not understood by Twilio Voice.
+ */
+
+ /**
+ * Call Message Event Type is invalid.
+ */
+
+ /**
+ * The Call Message Event Type is invalid and is not understood by Twilio Voice.
+ */
+
+ /**
+ * CallMessageEventTypeInvalidError
+ */
+
+ /**
+ * Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again.
+ */
+ constructor(message) {
+ super(message, 31210);
+
+ _defineProperty(this, "causes", ['The Call Message Event Type is invalid and is not understood by Twilio Voice.']);
+
+ _defineProperty(this, "description", 'Call Message Event Type is invalid.');
+
+ _defineProperty(this, "explanation", 'The Call Message Event Type is invalid and is not understood by Twilio Voice.');
+
+ _defineProperty(this, "name", 'CallMessageEventTypeInvalidError');
+
+ _defineProperty(this, "solutions", ['Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again.']);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.CallMessageEventTypeInvalidError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.CallMessageEventTypeInvalidError = CallMessageEventTypeInvalidError;
+
+ class CallMessageUnexpectedStateError extends TwilioError {
+ /**
+ * The Call should be at least in the ringing state to subscribe and send Call Message.
+ */
+
+ /**
+ * Call is not in the expected state.
+ */
+
+ /**
+ * The Call should be at least in the ringing state to send Call Message.
+ */
+
+ /**
+ * CallMessageUnexpectedStateError
+ */
+
+ /**
+ * Ensure the Call is at least in the ringing state and the subscription is successful and try again.
+ */
+ constructor(message) {
+ super(message, 31211);
+
+ _defineProperty(this, "causes", ['The Call should be at least in the ringing state to subscribe and send Call Message.']);
+
+ _defineProperty(this, "description", 'Call is not in the expected state.');
+
+ _defineProperty(this, "explanation", 'The Call should be at least in the ringing state to send Call Message.');
+
+ _defineProperty(this, "name", 'CallMessageUnexpectedStateError');
+
+ _defineProperty(this, "solutions", ['Ensure the Call is at least in the ringing state and the subscription is successful and try again.']);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.CallMessageUnexpectedStateError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.CallMessageUnexpectedStateError = CallMessageUnexpectedStateError;
+
+ class PayloadSizeExceededError extends TwilioError {
+ /**
+ * The payload size of Call Message Event exceeds the authorized limit.
+ */
+
+ /**
+ * Call Message Event Payload size exceeded authorized limit.
+ */
+
+ /**
+ * The request performed to send a Call Message Event exceeds the payload size authorized limit
+ */
+
+ /**
+ * PayloadSizeExceededError
+ */
+
+ /**
+ * Reduce payload size of Call Message Event to be within the authorized limit and try again.
+ */
+ constructor(message) {
+ super(message, 31212);
+
+ _defineProperty(this, "causes", ['The payload size of Call Message Event exceeds the authorized limit.']);
+
+ _defineProperty(this, "description", 'Call Message Event Payload size exceeded authorized limit.');
+
+ _defineProperty(this, "explanation", 'The request performed to send a Call Message Event exceeds the payload size authorized limit');
+
+ _defineProperty(this, "name", 'PayloadSizeExceededError');
+
+ _defineProperty(this, "solutions", ['Reduce payload size of Call Message Event to be within the authorized limit and try again.']);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.PayloadSizeExceededError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.PayloadSizeExceededError = PayloadSizeExceededError;
+
+ class AccessTokenRejected extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Token authentication is rejected by authentication service
+ */
+
+ /**
+ * The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio's specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens.
+ */
+
+ /**
+ * AccessTokenRejected
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 51007);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Token authentication is rejected by authentication service');
+
+ _defineProperty(this, "explanation", 'The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio\'s specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens.');
+
+ _defineProperty(this, "name", 'AccessTokenRejected');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenRejected.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _AuthorizationErrors.AccessTokenRejected = AccessTokenRejected;
+})(AuthorizationErrors || (AuthorizationErrors = {}));
+
+export let ForbiddenErrors;
+/**
+ * @public
+ * Client errors.
+ */
+
+(function (_ForbiddenErrors) {
+ class Forbidden extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * 403 Forbidden
+ */
+
+ /**
+ * The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support
+ */
+
+ /**
+ * Forbidden
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 20403);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", '403 Forbidden');
+
+ _defineProperty(this, "explanation", 'The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support');
+
+ _defineProperty(this, "name", 'Forbidden');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ForbiddenErrors.Forbidden.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ForbiddenErrors.Forbidden = Forbidden;
+})(ForbiddenErrors || (ForbiddenErrors = {}));
+
+export let ClientErrors;
+/**
+ * @public
+ * Server errors.
+ */
+
+(function (_ClientErrors) {
+ class BadRequest extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Bad Request (HTTP/SIP)
+ */
+
+ /**
+ * The request could not be understood due to malformed syntax.
+ */
+
+ /**
+ * BadRequest
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31400);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Bad Request (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The request could not be understood due to malformed syntax.');
+
+ _defineProperty(this, "name", 'BadRequest');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.BadRequest.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.BadRequest = BadRequest;
+
+ class Forbidden extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Forbidden (HTTP/SIP)
+ */
+
+ /**
+ * The server understood the request, but is refusing to fulfill it.
+ */
+
+ /**
+ * Forbidden
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31403);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Forbidden (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server understood the request, but is refusing to fulfill it.');
+
+ _defineProperty(this, "name", 'Forbidden');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.Forbidden.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.Forbidden = Forbidden;
+
+ class NotFound extends TwilioError {
+ /**
+ * The outbound call was made to an invalid phone number.
+ * The TwiML application sid is missing a Voice URL.
+ */
+
+ /**
+ * Not Found (HTTP/SIP)
+ */
+
+ /**
+ * The server has not found anything matching the request.
+ */
+
+ /**
+ * NotFound
+ */
+
+ /**
+ * Ensure the phone number dialed is valid.
+ * Ensure the TwiML application is configured correctly with a Voice URL link.
+ */
+ constructor(message) {
+ super(message, 31404);
+
+ _defineProperty(this, "causes", ['The outbound call was made to an invalid phone number.', 'The TwiML application sid is missing a Voice URL.']);
+
+ _defineProperty(this, "description", 'Not Found (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server has not found anything matching the request.');
+
+ _defineProperty(this, "name", 'NotFound');
+
+ _defineProperty(this, "solutions", ['Ensure the phone number dialed is valid.', 'Ensure the TwiML application is configured correctly with a Voice URL link.']);
+
+ Object.setPrototypeOf(this, ClientErrors.NotFound.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.NotFound = NotFound;
+
+ class RequestTimeout extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Request Timeout (HTTP/SIP)
+ */
+
+ /**
+ * A request timeout occurred.
+ */
+
+ /**
+ * RequestTimeout
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31408);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Request Timeout (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'A request timeout occurred.');
+
+ _defineProperty(this, "name", 'RequestTimeout');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.RequestTimeout.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.RequestTimeout = RequestTimeout;
+
+ class Conflict extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Conflict (HTTP)
+ */
+
+ /**
+ * The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress.
+ */
+
+ /**
+ * Conflict
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31409);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Conflict (HTTP)');
+
+ _defineProperty(this, "explanation", 'The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress.');
+
+ _defineProperty(this, "name", 'Conflict');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.Conflict.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.Conflict = Conflict;
+
+ class UpgradeRequired extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Upgrade Required (HTTP)
+ */
+
+ /**
+ * This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK.
+ */
+
+ /**
+ * UpgradeRequired
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31426);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Upgrade Required (HTTP)');
+
+ _defineProperty(this, "explanation", 'This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK.');
+
+ _defineProperty(this, "name", 'UpgradeRequired');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.UpgradeRequired.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.UpgradeRequired = UpgradeRequired;
+
+ class TooManyRequests extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Too Many Requests (HTTP)
+ */
+
+ /**
+ * Too many requests were sent in a given amount of time.
+ */
+
+ /**
+ * TooManyRequests
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31429);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Too Many Requests (HTTP)');
+
+ _defineProperty(this, "explanation", 'Too many requests were sent in a given amount of time.');
+
+ _defineProperty(this, "name", 'TooManyRequests');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.TooManyRequests.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.TooManyRequests = TooManyRequests;
+
+ class TemporarilyUnavailable extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Temporarily Unavailable (SIP)
+ */
+
+ /**
+ * The callee is currently unavailable.
+ */
+
+ /**
+ * TemporarilyUnavailable
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31480);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Temporarily Unavailable (SIP)');
+
+ _defineProperty(this, "explanation", 'The callee is currently unavailable.');
+
+ _defineProperty(this, "name", 'TemporarilyUnavailable');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.TemporarilyUnavailable.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.TemporarilyUnavailable = TemporarilyUnavailable;
+
+ class CallTransactionDoesNotExist extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Call/Transaction Does Not Exist (SIP)
+ */
+
+ /**
+ * The call no longer exists.
+ */
+
+ /**
+ * CallTransactionDoesNotExist
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31481);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Call/Transaction Does Not Exist (SIP)');
+
+ _defineProperty(this, "explanation", 'The call no longer exists.');
+
+ _defineProperty(this, "name", 'CallTransactionDoesNotExist');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.CallTransactionDoesNotExist.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.CallTransactionDoesNotExist = CallTransactionDoesNotExist;
+
+ class AddressIncomplete extends TwilioError {
+ /**
+ * The outbound call was made with a phone number that has an invalid format.
+ */
+
+ /**
+ * Address Incomplete (SIP)
+ */
+
+ /**
+ * The provided phone number is malformed.
+ */
+
+ /**
+ * AddressIncomplete
+ */
+
+ /**
+ * Ensure the phone number dialed is formatted correctly.
+ */
+ constructor(message) {
+ super(message, 31484);
+
+ _defineProperty(this, "causes", ['The outbound call was made with a phone number that has an invalid format.']);
+
+ _defineProperty(this, "description", 'Address Incomplete (SIP)');
+
+ _defineProperty(this, "explanation", 'The provided phone number is malformed.');
+
+ _defineProperty(this, "name", 'AddressIncomplete');
+
+ _defineProperty(this, "solutions", ['Ensure the phone number dialed is formatted correctly.']);
+
+ Object.setPrototypeOf(this, ClientErrors.AddressIncomplete.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.AddressIncomplete = AddressIncomplete;
+
+ class BusyHere extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Busy Here (SIP)
+ */
+
+ /**
+ * The callee is busy.
+ */
+
+ /**
+ * BusyHere
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31486);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Busy Here (SIP)');
+
+ _defineProperty(this, "explanation", 'The callee is busy.');
+
+ _defineProperty(this, "name", 'BusyHere');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.BusyHere.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.BusyHere = BusyHere;
+
+ class RequestTerminated extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Request Terminated (SIP)
+ */
+
+ /**
+ * The request has terminated as a result of a bye or cancel.
+ */
+
+ /**
+ * RequestTerminated
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31487);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Request Terminated (SIP)');
+
+ _defineProperty(this, "explanation", 'The request has terminated as a result of a bye or cancel.');
+
+ _defineProperty(this, "name", 'RequestTerminated');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ClientErrors.RequestTerminated.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ClientErrors.RequestTerminated = RequestTerminated;
+})(ClientErrors || (ClientErrors = {}));
+
+export let ServerErrors;
+/**
+ * @public
+ * SIPServer errors.
+ */
+
+(function (_ServerErrors) {
+ class InternalServerError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Internal Server Error (HTTP/SIP)
+ */
+
+ /**
+ * The server could not fulfill the request due to some unexpected condition.
+ */
+
+ /**
+ * InternalServerError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31500);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Internal Server Error (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server could not fulfill the request due to some unexpected condition.');
+
+ _defineProperty(this, "name", 'InternalServerError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ServerErrors.InternalServerError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ServerErrors.InternalServerError = InternalServerError;
+
+ class BadGateway extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Bad Gateway (HTTP/SIP)
+ */
+
+ /**
+ * The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request.
+ */
+
+ /**
+ * BadGateway
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31502);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Bad Gateway (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request.');
+
+ _defineProperty(this, "name", 'BadGateway');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ServerErrors.BadGateway.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ServerErrors.BadGateway = BadGateway;
+
+ class ServiceUnavailable extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Service Unavailable (HTTP/SIP)
+ */
+
+ /**
+ * The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL.
+ */
+
+ /**
+ * ServiceUnavailable
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31503);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Service Unavailable (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL.');
+
+ _defineProperty(this, "name", 'ServiceUnavailable');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ServerErrors.ServiceUnavailable.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ServerErrors.ServiceUnavailable = ServiceUnavailable;
+
+ class GatewayTimeout extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Gateway Timeout (HTTP/SIP)
+ */
+
+ /**
+ * The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.
+ */
+
+ /**
+ * GatewayTimeout
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31504);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Gateway Timeout (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.');
+
+ _defineProperty(this, "name", 'GatewayTimeout');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ServerErrors.GatewayTimeout.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ServerErrors.GatewayTimeout = GatewayTimeout;
+
+ class DNSResolutionError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * DNS Resolution Error (HTTP/SIP)
+ */
+
+ /**
+ * Could not connect to the server.
+ */
+
+ /**
+ * DNSResolutionError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31530);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'DNS Resolution Error (HTTP/SIP)');
+
+ _defineProperty(this, "explanation", 'Could not connect to the server.');
+
+ _defineProperty(this, "name", 'DNSResolutionError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, ServerErrors.DNSResolutionError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _ServerErrors.DNSResolutionError = DNSResolutionError;
+})(ServerErrors || (ServerErrors = {}));
+
+export let SIPServerErrors;
+/**
+ * @public
+ * TwiML errors.
+ */
+
+(function (_SIPServerErrors) {
+ class BusyEverywhere extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Busy Everywhere (SIP)
+ */
+
+ /**
+ * All possible destinations are busy.
+ */
+
+ /**
+ * BusyEverywhere
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31600);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Busy Everywhere (SIP)');
+
+ _defineProperty(this, "explanation", 'All possible destinations are busy.');
+
+ _defineProperty(this, "name", 'BusyEverywhere');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, SIPServerErrors.BusyEverywhere.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _SIPServerErrors.BusyEverywhere = BusyEverywhere;
+
+ class Decline extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Decline (SIP)
+ */
+
+ /**
+ * The callee does not wish to participate in the call.
+ */
+
+ /**
+ * Decline
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31603);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Decline (SIP)');
+
+ _defineProperty(this, "explanation", 'The callee does not wish to participate in the call.');
+
+ _defineProperty(this, "name", 'Decline');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, SIPServerErrors.Decline.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _SIPServerErrors.Decline = Decline;
+
+ class DoesNotExistAnywhere extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Does Not Exist Anywhere (SIP)
+ */
+
+ /**
+ * The requested callee does not exist anywhere.
+ */
+
+ /**
+ * DoesNotExistAnywhere
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31604);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Does Not Exist Anywhere (SIP)');
+
+ _defineProperty(this, "explanation", 'The requested callee does not exist anywhere.');
+
+ _defineProperty(this, "name", 'DoesNotExistAnywhere');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, SIPServerErrors.DoesNotExistAnywhere.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _SIPServerErrors.DoesNotExistAnywhere = DoesNotExistAnywhere;
+})(SIPServerErrors || (SIPServerErrors = {}));
+
+export let TwiMLErrors;
+/**
+ * @public
+ * General errors.
+ */
+
+(function (_TwiMLErrors) {
+ class InvalidApplicationSid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Invalid ApplicationSid
+ */
+
+ /**
+ * You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account
+ */
+
+ /**
+ * InvalidApplicationSid
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 21218);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Invalid ApplicationSid');
+
+ _defineProperty(this, "explanation", 'You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account');
+
+ _defineProperty(this, "name", 'InvalidApplicationSid');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, TwiMLErrors.InvalidApplicationSid.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _TwiMLErrors.InvalidApplicationSid = InvalidApplicationSid;
+})(TwiMLErrors || (TwiMLErrors = {}));
+
+export let GeneralErrors;
+/**
+ * @public
+ * MalformedRequest errors.
+ */
+
+(function (_GeneralErrors) {
+ class ConnectionError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Connection error
+ */
+
+ /**
+ * A connection error occurred during the call
+ */
+
+ /**
+ * ConnectionError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31005);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Connection error');
+
+ _defineProperty(this, "explanation", 'A connection error occurred during the call');
+
+ _defineProperty(this, "name", 'ConnectionError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, GeneralErrors.ConnectionError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _GeneralErrors.ConnectionError = ConnectionError;
+
+ class CallCancelledError extends TwilioError {
+ /**
+ * The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity.
+ */
+
+ /**
+ * Call cancelled
+ */
+
+ /**
+ * Unable to answer because the call has ended
+ */
+
+ /**
+ * CallCancelledError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31008);
+
+ _defineProperty(this, "causes", ['The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity.']);
+
+ _defineProperty(this, "description", 'Call cancelled');
+
+ _defineProperty(this, "explanation", 'Unable to answer because the call has ended');
+
+ _defineProperty(this, "name", 'CallCancelledError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, GeneralErrors.CallCancelledError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _GeneralErrors.CallCancelledError = CallCancelledError;
+
+ class TransportError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Transport error
+ */
+
+ /**
+ * No transport available to send or receive messages
+ */
+
+ /**
+ * TransportError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31009);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Transport error');
+
+ _defineProperty(this, "explanation", 'No transport available to send or receive messages');
+
+ _defineProperty(this, "name", 'TransportError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, GeneralErrors.TransportError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _GeneralErrors.TransportError = TransportError;
+})(GeneralErrors || (GeneralErrors = {}));
+
+export let MalformedRequestErrors;
+/**
+ * @public
+ * Registration errors.
+ */
+
+(function (_MalformedRequestErrors) {
+ class MalformedRequestError extends TwilioError {
+ /**
+ * Invalid content or MessageType passed to sendMessage method.
+ */
+
+ /**
+ * The request had malformed syntax.
+ */
+
+ /**
+ * The request could not be understood due to malformed syntax.
+ */
+
+ /**
+ * MalformedRequestError
+ */
+
+ /**
+ * Ensure content and MessageType passed to sendMessage method are valid.
+ */
+ constructor(message) {
+ super(message, 31100);
+
+ _defineProperty(this, "causes", ['Invalid content or MessageType passed to sendMessage method.']);
+
+ _defineProperty(this, "description", 'The request had malformed syntax.');
+
+ _defineProperty(this, "explanation", 'The request could not be understood due to malformed syntax.');
+
+ _defineProperty(this, "name", 'MalformedRequestError');
+
+ _defineProperty(this, "solutions", ['Ensure content and MessageType passed to sendMessage method are valid.']);
+
+ Object.setPrototypeOf(this, MalformedRequestErrors.MalformedRequestError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MalformedRequestErrors.MalformedRequestError = MalformedRequestError;
+})(MalformedRequestErrors || (MalformedRequestErrors = {}));
+
+export let RegistrationErrors;
+/**
+ * @public
+ * UserMedia errors.
+ */
+
+(function (_RegistrationErrors) {
+ class RegistrationError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+
+ /**
+ * Registration error
+ */
+
+ /**
+ *
+ */
+
+ /**
+ * RegistrationError
+ */
+
+ /**
+ * Not applicable.
+ */
+ constructor(message) {
+ super(message, 31301);
+
+ _defineProperty(this, "causes", []);
+
+ _defineProperty(this, "description", 'Registration error');
+
+ _defineProperty(this, "explanation", '');
+
+ _defineProperty(this, "name", 'RegistrationError');
+
+ _defineProperty(this, "solutions", []);
+
+ Object.setPrototypeOf(this, RegistrationErrors.RegistrationError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _RegistrationErrors.RegistrationError = RegistrationError;
+
+ class UnsupportedCancelMessageError extends TwilioError {
+ /**
+ * The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages.
+ */
+
+ /**
+ * Unsupported Cancel Message Error
+ */
+
+ /**
+ * This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK.
+ */
+
+ /**
+ * UnsupportedCancelMessageError
+ */
+
+ /**
+ * The application must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS to stop receiving cancel push notification messages.
+ */
+ constructor(message) {
+ super(message, 31302);
+
+ _defineProperty(this, "causes", ['The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages.']);
+
+ _defineProperty(this, "description", 'Unsupported Cancel Message Error');
+
+ _defineProperty(this, "explanation", 'This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK.');
+
+ _defineProperty(this, "name", 'UnsupportedCancelMessageError');
+
+ _defineProperty(this, "solutions", ['The application must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS to stop receiving cancel push notification messages.']);
+
+ Object.setPrototypeOf(this, RegistrationErrors.UnsupportedCancelMessageError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _RegistrationErrors.UnsupportedCancelMessageError = UnsupportedCancelMessageError;
+})(RegistrationErrors || (RegistrationErrors = {}));
+
+export let UserMediaErrors;
+/**
+ * @public
+ * Signaling errors.
+ */
+
+(function (_UserMediaErrors) {
+ class PermissionDeniedError extends TwilioError {
+ /**
+ * The user denied the getUserMedia request.
+ * The browser denied the getUserMedia request.
+ * The application has not been configured with the proper permissions.
+ */
+
+ /**
+ * UserMedia Permission Denied Error
+ */
+
+ /**
+ * The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio.
+ */
+
+ /**
+ * PermissionDeniedError
+ */
+
+ /**
+ * The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser.
+ * The user should to verify that the browser has permission to access the microphone at this address.
+ * The user should ensure that the proper permissions have been granted in the mobile device OS.
+ */
+ constructor(message) {
+ super(message, 31401);
+
+ _defineProperty(this, "causes", ['The user denied the getUserMedia request.', 'The browser denied the getUserMedia request.', 'The application has not been configured with the proper permissions.']);
+
+ _defineProperty(this, "description", 'UserMedia Permission Denied Error');
+
+ _defineProperty(this, "explanation", 'The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio.');
+
+ _defineProperty(this, "name", 'PermissionDeniedError');
+
+ _defineProperty(this, "solutions", ['The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser.', 'The user should to verify that the browser has permission to access the microphone at this address.', 'The user should ensure that the proper permissions have been granted in the mobile device OS.']);
+
+ Object.setPrototypeOf(this, UserMediaErrors.PermissionDeniedError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _UserMediaErrors.PermissionDeniedError = PermissionDeniedError;
+})(UserMediaErrors || (UserMediaErrors = {}));
+
+export let SignalingErrors;
+/**
+ * @public
+ * Media errors.
+ */
+
+(function (_SignalingErrors) {
+ class ConnectionDisconnected extends TwilioError {
+ /**
+ * The device running your application lost its Internet connection.
+ */
+
+ /**
+ * Signaling connection disconnected
+ */
+
+ /**
+ * Raised whenever the signaling connection is unexpectedly disconnected.
+ */
+
+ /**
+ * ConnectionDisconnected
+ */
+
+ /**
+ * Ensure the device running your application has access to a stable Internet connection.
+ */
+ constructor(message) {
+ super(message, 53001);
+
+ _defineProperty(this, "causes", ['The device running your application lost its Internet connection.']);
+
+ _defineProperty(this, "description", 'Signaling connection disconnected');
+
+ _defineProperty(this, "explanation", 'Raised whenever the signaling connection is unexpectedly disconnected.');
+
+ _defineProperty(this, "name", 'ConnectionDisconnected');
+
+ _defineProperty(this, "solutions", ['Ensure the device running your application has access to a stable Internet connection.']);
+
+ Object.setPrototypeOf(this, SignalingErrors.ConnectionDisconnected.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _SignalingErrors.ConnectionDisconnected = ConnectionDisconnected;
+})(SignalingErrors || (SignalingErrors = {}));
+
+export let MediaErrors;
+/**
+ * @internal
+ */
+
+(function (_MediaErrors) {
+ class ClientLocalDescFailed extends TwilioError {
+ /**
+ * The Client may not be using a supported WebRTC implementation.
+ * The Client may not have the necessary resources to create or apply a new media description.
+ */
+
+ /**
+ * Client is unable to create or apply a local media description
+ */
+
+ /**
+ * Raised whenever a Client is unable to create or apply a local media description.
+ */
+
+ /**
+ * ClientLocalDescFailed
+ */
+
+ /**
+ * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+ */
+ constructor(message) {
+ super(message, 53400);
+
+ _defineProperty(this, "causes", ['The Client may not be using a supported WebRTC implementation.', 'The Client may not have the necessary resources to create or apply a new media description.']);
+
+ _defineProperty(this, "description", 'Client is unable to create or apply a local media description');
+
+ _defineProperty(this, "explanation", 'Raised whenever a Client is unable to create or apply a local media description.');
+
+ _defineProperty(this, "name", 'ClientLocalDescFailed');
+
+ _defineProperty(this, "solutions", ['If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.']);
+
+ Object.setPrototypeOf(this, MediaErrors.ClientLocalDescFailed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.ClientLocalDescFailed = ClientLocalDescFailed;
+
+ class ServerLocalDescFailed extends TwilioError {
+ /**
+ * A server-side error has occurred.
+ */
+
+ /**
+ * Server is unable to create or apply a local media description
+ */
+
+ /**
+ * Raised whenever the Server is unable to create or apply a local media description.
+ */
+
+ /**
+ * ServerLocalDescFailed
+ */
+
+ /**
+ * If the problem persists, try connecting to another region.
+ */
+ constructor(message) {
+ super(message, 53401);
+
+ _defineProperty(this, "causes", ['A server-side error has occurred.']);
+
+ _defineProperty(this, "description", 'Server is unable to create or apply a local media description');
+
+ _defineProperty(this, "explanation", 'Raised whenever the Server is unable to create or apply a local media description.');
+
+ _defineProperty(this, "name", 'ServerLocalDescFailed');
+
+ _defineProperty(this, "solutions", ['If the problem persists, try connecting to another region.']);
+
+ Object.setPrototypeOf(this, MediaErrors.ServerLocalDescFailed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.ServerLocalDescFailed = ServerLocalDescFailed;
+
+ class ClientRemoteDescFailed extends TwilioError {
+ /**
+ * The Client may not be using a supported WebRTC implementation.
+ * The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation.
+ * The Client may not have the necessary resources to apply a new media description.
+ */
+
+ /**
+ * Client is unable to apply a remote media description
+ */
+
+ /**
+ * Raised whenever the Client receives a remote media description but is unable to apply it.
+ */
+
+ /**
+ * ClientRemoteDescFailed
+ */
+
+ /**
+ * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+ */
+ constructor(message) {
+ super(message, 53402);
+
+ _defineProperty(this, "causes", ['The Client may not be using a supported WebRTC implementation.', 'The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation.', 'The Client may not have the necessary resources to apply a new media description.']);
+
+ _defineProperty(this, "description", 'Client is unable to apply a remote media description');
+
+ _defineProperty(this, "explanation", 'Raised whenever the Client receives a remote media description but is unable to apply it.');
+
+ _defineProperty(this, "name", 'ClientRemoteDescFailed');
+
+ _defineProperty(this, "solutions", ['If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.']);
+
+ Object.setPrototypeOf(this, MediaErrors.ClientRemoteDescFailed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.ClientRemoteDescFailed = ClientRemoteDescFailed;
+
+ class ServerRemoteDescFailed extends TwilioError {
+ /**
+ * The Client may not be using a supported WebRTC implementation.
+ * The Client may not have the necessary resources to apply a new media description.
+ * A Server-side error may have caused the Server to generate an invalid media description.
+ */
+
+ /**
+ * Server is unable to apply a remote media description
+ */
+
+ /**
+ * Raised whenever the Server receives a remote media description but is unable to apply it.
+ */
+
+ /**
+ * ServerRemoteDescFailed
+ */
+
+ /**
+ * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+ * If the problem persists, try connecting to another region.
+ */
+ constructor(message) {
+ super(message, 53403);
+
+ _defineProperty(this, "causes", ['The Client may not be using a supported WebRTC implementation.', 'The Client may not have the necessary resources to apply a new media description.', 'A Server-side error may have caused the Server to generate an invalid media description.']);
+
+ _defineProperty(this, "description", 'Server is unable to apply a remote media description');
+
+ _defineProperty(this, "explanation", 'Raised whenever the Server receives a remote media description but is unable to apply it.');
+
+ _defineProperty(this, "name", 'ServerRemoteDescFailed');
+
+ _defineProperty(this, "solutions", ['If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.', 'If the problem persists, try connecting to another region.']);
+
+ Object.setPrototypeOf(this, MediaErrors.ServerRemoteDescFailed.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.ServerRemoteDescFailed = ServerRemoteDescFailed;
+
+ class NoSupportedCodec extends TwilioError {
+ /**
+ * The C++ SDK was built without the recommended set of codecs.
+ * The JavaScript SDK is running in a browser that does not implement the recommended set of codecs.
+ */
+
+ /**
+ * No supported codec
+ */
+
+ /**
+ * Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.
+ */
+
+ /**
+ * NoSupportedCodec
+ */
+
+ /**
+ * If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs.
+ * If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser.
+ */
+ constructor(message) {
+ super(message, 53404);
+
+ _defineProperty(this, "causes", ['The C++ SDK was built without the recommended set of codecs.', 'The JavaScript SDK is running in a browser that does not implement the recommended set of codecs.']);
+
+ _defineProperty(this, "description", 'No supported codec');
+
+ _defineProperty(this, "explanation", 'Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.');
+
+ _defineProperty(this, "name", 'NoSupportedCodec');
+
+ _defineProperty(this, "solutions", ['If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs.', 'If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser.']);
+
+ Object.setPrototypeOf(this, MediaErrors.NoSupportedCodec.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.NoSupportedCodec = NoSupportedCodec;
+
+ class ConnectionError extends TwilioError {
+ /**
+ * The Client was unable to establish a media connection.
+ * A media connection which was active failed liveliness checks.
+ */
+
+ /**
+ * Media connection failed
+ */
+
+ /**
+ * Raised by the Client or Server whenever a media connection fails.
+ */
+
+ /**
+ * ConnectionError
+ */
+
+ /**
+ * If the problem persists, try connecting to another region.
+ * Check your Client's network connectivity.
+ * If you've provided custom ICE Servers then ensure that the URLs and credentials are valid.
+ */
+ constructor(message) {
+ super(message, 53405);
+
+ _defineProperty(this, "causes", ['The Client was unable to establish a media connection.', 'A media connection which was active failed liveliness checks.']);
+
+ _defineProperty(this, "description", 'Media connection failed');
+
+ _defineProperty(this, "explanation", 'Raised by the Client or Server whenever a media connection fails.');
+
+ _defineProperty(this, "name", 'ConnectionError');
+
+ _defineProperty(this, "solutions", ['If the problem persists, try connecting to another region.', 'Check your Client\'s network connectivity.', 'If you\'ve provided custom ICE Servers then ensure that the URLs and credentials are valid.']);
+
+ Object.setPrototypeOf(this, MediaErrors.ConnectionError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.ConnectionError = ConnectionError;
+
+ class MediaDtlsTransportFailedError extends TwilioError {
+ /**
+ * One or both of the DTLS peers have an invalid certificate.
+ * One or both of the DTLS peers have an outdated version of DTLS.
+ * One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake.
+ */
+
+ /**
+ * The media connection failed due to DTLS handshake failure
+ */
+
+ /**
+ * There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.
+ */
+
+ /**
+ * MediaDtlsTransportFailedError
+ */
+
+ /**
+ * Ensure that your certificate is valid.
+ * Ensure that you have a stable internet connection.
+ * Ensure that the browser or the Mobile SDK supports newer versions of DTLS.
+ */
+ constructor(message) {
+ super(message, 53407);
+
+ _defineProperty(this, "causes", ['One or both of the DTLS peers have an invalid certificate.', 'One or both of the DTLS peers have an outdated version of DTLS.', 'One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake.']);
+
+ _defineProperty(this, "description", 'The media connection failed due to DTLS handshake failure');
+
+ _defineProperty(this, "explanation", 'There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.');
+
+ _defineProperty(this, "name", 'MediaDtlsTransportFailedError');
+
+ _defineProperty(this, "solutions", ['Ensure that your certificate is valid.', 'Ensure that you have a stable internet connection.', 'Ensure that the browser or the Mobile SDK supports newer versions of DTLS.']);
+
+ Object.setPrototypeOf(this, MediaErrors.MediaDtlsTransportFailedError.prototype);
+ const msg = typeof message === 'string' ? message : this.explanation;
+ this.message = `${this.name} (${this.code}): ${msg}`;
+ }
+
+ }
+
+ _MediaErrors.MediaDtlsTransportFailedError = MediaDtlsTransportFailedError;
+})(MediaErrors || (MediaErrors = {}));
+
+export const errorsByCode = new Map([[20101, AuthorizationErrors.AccessTokenInvalid], [20102, AuthorizationErrors.AccessTokenHeaderInvalid], [20103, AuthorizationErrors.AccessTokenIssuerInvalid], [20104, AuthorizationErrors.AccessTokenExpired], [20105, AuthorizationErrors.AccessTokenNotYetValid], [20106, AuthorizationErrors.AccessTokenGrantsInvalid], [20107, AuthorizationErrors.AccessTokenSignatureInvalid], [20151, AuthorizationErrors.AuthenticationFailed], [20157, AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed], [20403, ForbiddenErrors.Forbidden], [21218, TwiMLErrors.InvalidApplicationSid], [31005, GeneralErrors.ConnectionError], [31008, GeneralErrors.CallCancelledError], [31009, GeneralErrors.TransportError], [31100, MalformedRequestErrors.MalformedRequestError], [31201, AuthorizationErrors.AuthorizationError], [31206, AuthorizationErrors.RateExceededError], [31210, AuthorizationErrors.CallMessageEventTypeInvalidError], [31211, AuthorizationErrors.CallMessageUnexpectedStateError], [31212, AuthorizationErrors.PayloadSizeExceededError], [31301, RegistrationErrors.RegistrationError], [31302, RegistrationErrors.UnsupportedCancelMessageError], [31400, ClientErrors.BadRequest], [31401, UserMediaErrors.PermissionDeniedError], [31403, ClientErrors.Forbidden], [31404, ClientErrors.NotFound], [31408, ClientErrors.RequestTimeout], [31409, ClientErrors.Conflict], [31426, ClientErrors.UpgradeRequired], [31429, ClientErrors.TooManyRequests], [31480, ClientErrors.TemporarilyUnavailable], [31481, ClientErrors.CallTransactionDoesNotExist], [31484, ClientErrors.AddressIncomplete], [31486, ClientErrors.BusyHere], [31487, ClientErrors.RequestTerminated], [31500, ServerErrors.InternalServerError], [31502, ServerErrors.BadGateway], [31503, ServerErrors.ServiceUnavailable], [31504, ServerErrors.GatewayTimeout], [31530, ServerErrors.DNSResolutionError], [31600, SIPServerErrors.BusyEverywhere], [31603, SIPServerErrors.Decline], [31604, SIPServerErrors.DoesNotExistAnywhere], [51007, AuthorizationErrors.AccessTokenRejected], [53001, SignalingErrors.ConnectionDisconnected], [53400, MediaErrors.ClientLocalDescFailed], [53401, MediaErrors.ServerLocalDescFailed], [53402, MediaErrors.ClientRemoteDescFailed], [53403, MediaErrors.ServerRemoteDescFailed], [53404, MediaErrors.NoSupportedCodec], [53405, MediaErrors.ConnectionError], [53407, MediaErrors.MediaDtlsTransportFailedError]]);
+Object.freeze(errorsByCode);
+//# sourceMappingURL=generated.js.map
\ No newline at end of file
diff --git a/lib/module/error/generated.js.map b/lib/module/error/generated.js.map
new file mode 100644
index 00000000..78c08462
--- /dev/null
+++ b/lib/module/error/generated.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["generated.ts"],"names":["TwilioError","AccessTokenInvalid","constructor","message","Object","setPrototypeOf","AuthorizationErrors","prototype","msg","explanation","name","code","AccessTokenHeaderInvalid","AccessTokenIssuerInvalid","AccessTokenExpired","AccessTokenNotYetValid","AccessTokenGrantsInvalid","AccessTokenSignatureInvalid","AuthenticationFailed","ExpirationTimeExceedsMaxTimeAllowed","AuthorizationError","RateExceededError","CallMessageEventTypeInvalidError","CallMessageUnexpectedStateError","PayloadSizeExceededError","AccessTokenRejected","Forbidden","ForbiddenErrors","BadRequest","ClientErrors","NotFound","RequestTimeout","Conflict","UpgradeRequired","TooManyRequests","TemporarilyUnavailable","CallTransactionDoesNotExist","AddressIncomplete","BusyHere","RequestTerminated","InternalServerError","ServerErrors","BadGateway","ServiceUnavailable","GatewayTimeout","DNSResolutionError","BusyEverywhere","SIPServerErrors","Decline","DoesNotExistAnywhere","InvalidApplicationSid","TwiMLErrors","ConnectionError","GeneralErrors","CallCancelledError","TransportError","MalformedRequestError","MalformedRequestErrors","RegistrationError","RegistrationErrors","UnsupportedCancelMessageError","PermissionDeniedError","UserMediaErrors","ConnectionDisconnected","SignalingErrors","ClientLocalDescFailed","MediaErrors","ServerLocalDescFailed","ClientRemoteDescFailed","ServerRemoteDescFailed","NoSupportedCodec","MediaDtlsTransportFailedError","errorsByCode","Map","freeze"],"mappings":"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","sourcesContent":["/**\n * This is a generated file. Any modifications here will be overwritten.\n * See scripts/errors.js.\n */\nimport { TwilioError } from './TwilioError';\n\n/**\n * @public\n * Authorization errors.\n */\nexport namespace AuthorizationErrors {\n /**\n * @public\n * AuthorizationErrors.AccessTokenInvalid error.\n * Error code `20101`.\n */\n export class AccessTokenInvalid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid access token\n */\n description: string = 'Invalid access token';\n /**\n * Twilio was unable to validate your Access Token\n */\n explanation: string = 'Twilio was unable to validate your Access Token';\n /**\n * AccessTokenInvalid\n */\n name: string = 'AccessTokenInvalid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20101);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenInvalid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenHeaderInvalid error.\n * Error code `20102`.\n */\n export class AccessTokenHeaderInvalid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid access token header\n */\n description: string = 'Invalid access token header';\n /**\n * The header of the Access Token provided to the Twilio API was invalid\n */\n explanation: string = 'The header of the Access Token provided to the Twilio API was invalid';\n /**\n * AccessTokenHeaderInvalid\n */\n name: string = 'AccessTokenHeaderInvalid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20102);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenHeaderInvalid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenIssuerInvalid error.\n * Error code `20103`.\n */\n export class AccessTokenIssuerInvalid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid access token issuer/subject\n */\n description: string = 'Invalid access token issuer/subject';\n /**\n * The issuer or subject of the Access Token provided to the Twilio API was invalid\n */\n explanation: string = 'The issuer or subject of the Access Token provided to the Twilio API was invalid';\n /**\n * AccessTokenIssuerInvalid\n */\n name: string = 'AccessTokenIssuerInvalid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20103);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenIssuerInvalid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenExpired error.\n * Error code `20104`.\n */\n export class AccessTokenExpired extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Access token expired or expiration date invalid\n */\n description: string = 'Access token expired or expiration date invalid';\n /**\n * The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future\n */\n explanation: string = 'The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future';\n /**\n * AccessTokenExpired\n */\n name: string = 'AccessTokenExpired';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20104);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenExpired.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenNotYetValid error.\n * Error code `20105`.\n */\n export class AccessTokenNotYetValid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Access token not yet valid\n */\n description: string = 'Access token not yet valid';\n /**\n * The Access Token provided to the Twilio API is not yet valid\n */\n explanation: string = 'The Access Token provided to the Twilio API is not yet valid';\n /**\n * AccessTokenNotYetValid\n */\n name: string = 'AccessTokenNotYetValid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20105);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenNotYetValid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenGrantsInvalid error.\n * Error code `20106`.\n */\n export class AccessTokenGrantsInvalid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid access token grants\n */\n description: string = 'Invalid access token grants';\n /**\n * The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested\n */\n explanation: string = 'The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested';\n /**\n * AccessTokenGrantsInvalid\n */\n name: string = 'AccessTokenGrantsInvalid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20106);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenGrantsInvalid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenSignatureInvalid error.\n * Error code `20107`.\n */\n export class AccessTokenSignatureInvalid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid access token signature\n */\n description: string = 'Invalid access token signature';\n /**\n * The signature for the Access Token provided was invalid.\n */\n explanation: string = 'The signature for the Access Token provided was invalid.';\n /**\n * AccessTokenSignatureInvalid\n */\n name: string = 'AccessTokenSignatureInvalid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20107);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenSignatureInvalid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AuthenticationFailed error.\n * Error code `20151`.\n */\n export class AuthenticationFailed extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Authentication Failed\n */\n description: string = 'Authentication Failed';\n /**\n * The Authentication with the provided JWT failed\n */\n explanation: string = 'The Authentication with the provided JWT failed';\n /**\n * AuthenticationFailed\n */\n name: string = 'AuthenticationFailed';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20151);\n Object.setPrototypeOf(this, AuthorizationErrors.AuthenticationFailed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed error.\n * Error code `20157`.\n */\n export class ExpirationTimeExceedsMaxTimeAllowed extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Expiration Time Exceeds Maximum Time Allowed\n */\n description: string = 'Expiration Time Exceeds Maximum Time Allowed';\n /**\n * The expiration time provided when creating the JWT exceeds the maximum duration allowed\n */\n explanation: string = 'The expiration time provided when creating the JWT exceeds the maximum duration allowed';\n /**\n * ExpirationTimeExceedsMaxTimeAllowed\n */\n name: string = 'ExpirationTimeExceedsMaxTimeAllowed';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20157);\n Object.setPrototypeOf(this, AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AuthorizationError error.\n * Error code `31201`.\n */\n export class AuthorizationError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Authorization error\n */\n description: string = 'Authorization error';\n /**\n * The request requires user authentication. The server understood the request, but is refusing to fulfill it.\n */\n explanation: string = 'The request requires user authentication. The server understood the request, but is refusing to fulfill it.';\n /**\n * AuthorizationError\n */\n name: string = 'AuthorizationError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31201);\n Object.setPrototypeOf(this, AuthorizationErrors.AuthorizationError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.RateExceededError error.\n * Error code `31206`.\n */\n export class RateExceededError extends TwilioError {\n /**\n * Rate limit exceeded.\n */\n causes: string[] = [\n 'Rate limit exceeded.',\n ];\n /**\n * Rate exceeded authorized limit.\n */\n description: string = 'Rate exceeded authorized limit.';\n /**\n * The request performed exceeds the authorized limit.\n */\n explanation: string = 'The request performed exceeds the authorized limit.';\n /**\n * RateExceededError\n */\n name: string = 'RateExceededError';\n /**\n * Ensure message send rate does not exceed authorized limits.\n */\n solutions: string[] = [\n 'Ensure message send rate does not exceed authorized limits.',\n ];\n\n constructor(message: string) {\n super(message, 31206);\n Object.setPrototypeOf(this, AuthorizationErrors.RateExceededError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.CallMessageEventTypeInvalidError error.\n * Error code `31210`.\n */\n export class CallMessageEventTypeInvalidError extends TwilioError {\n /**\n * The Call Message Event Type is invalid and is not understood by Twilio Voice.\n */\n causes: string[] = [\n 'The Call Message Event Type is invalid and is not understood by Twilio Voice.',\n ];\n /**\n * Call Message Event Type is invalid.\n */\n description: string = 'Call Message Event Type is invalid.';\n /**\n * The Call Message Event Type is invalid and is not understood by Twilio Voice.\n */\n explanation: string = 'The Call Message Event Type is invalid and is not understood by Twilio Voice.';\n /**\n * CallMessageEventTypeInvalidError\n */\n name: string = 'CallMessageEventTypeInvalidError';\n /**\n * Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again.\n */\n solutions: string[] = [\n 'Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again.',\n ];\n\n constructor(message: string) {\n super(message, 31210);\n Object.setPrototypeOf(this, AuthorizationErrors.CallMessageEventTypeInvalidError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.CallMessageUnexpectedStateError error.\n * Error code `31211`.\n */\n export class CallMessageUnexpectedStateError extends TwilioError {\n /**\n * The Call should be at least in the ringing state to subscribe and send Call Message.\n */\n causes: string[] = [\n 'The Call should be at least in the ringing state to subscribe and send Call Message.',\n ];\n /**\n * Call is not in the expected state.\n */\n description: string = 'Call is not in the expected state.';\n /**\n * The Call should be at least in the ringing state to send Call Message.\n */\n explanation: string = 'The Call should be at least in the ringing state to send Call Message.';\n /**\n * CallMessageUnexpectedStateError\n */\n name: string = 'CallMessageUnexpectedStateError';\n /**\n * Ensure the Call is at least in the ringing state and the subscription is successful and try again.\n */\n solutions: string[] = [\n 'Ensure the Call is at least in the ringing state and the subscription is successful and try again.',\n ];\n\n constructor(message: string) {\n super(message, 31211);\n Object.setPrototypeOf(this, AuthorizationErrors.CallMessageUnexpectedStateError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.PayloadSizeExceededError error.\n * Error code `31212`.\n */\n export class PayloadSizeExceededError extends TwilioError {\n /**\n * The payload size of Call Message Event exceeds the authorized limit.\n */\n causes: string[] = [\n 'The payload size of Call Message Event exceeds the authorized limit.',\n ];\n /**\n * Call Message Event Payload size exceeded authorized limit.\n */\n description: string = 'Call Message Event Payload size exceeded authorized limit.';\n /**\n * The request performed to send a Call Message Event exceeds the payload size authorized limit\n */\n explanation: string = 'The request performed to send a Call Message Event exceeds the payload size authorized limit';\n /**\n * PayloadSizeExceededError\n */\n name: string = 'PayloadSizeExceededError';\n /**\n * Reduce payload size of Call Message Event to be within the authorized limit and try again.\n */\n solutions: string[] = [\n 'Reduce payload size of Call Message Event to be within the authorized limit and try again.',\n ];\n\n constructor(message: string) {\n super(message, 31212);\n Object.setPrototypeOf(this, AuthorizationErrors.PayloadSizeExceededError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * AuthorizationErrors.AccessTokenRejected error.\n * Error code `51007`.\n */\n export class AccessTokenRejected extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Token authentication is rejected by authentication service\n */\n description: string = 'Token authentication is rejected by authentication service';\n /**\n * The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio's specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens.\n */\n explanation: string = 'The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio\\'s specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens.';\n /**\n * AccessTokenRejected\n */\n name: string = 'AccessTokenRejected';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 51007);\n Object.setPrototypeOf(this, AuthorizationErrors.AccessTokenRejected.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Forbidden errors.\n */\nexport namespace ForbiddenErrors {\n /**\n * @public\n * ForbiddenErrors.Forbidden error.\n * Error code `20403`.\n */\n export class Forbidden extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * 403 Forbidden\n */\n description: string = '403 Forbidden';\n /**\n * The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support\n */\n explanation: string = 'The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support';\n /**\n * Forbidden\n */\n name: string = 'Forbidden';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 20403);\n Object.setPrototypeOf(this, ForbiddenErrors.Forbidden.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Client errors.\n */\nexport namespace ClientErrors {\n /**\n * @public\n * ClientErrors.BadRequest error.\n * Error code `31400`.\n */\n export class BadRequest extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Bad Request (HTTP/SIP)\n */\n description: string = 'Bad Request (HTTP/SIP)';\n /**\n * The request could not be understood due to malformed syntax.\n */\n explanation: string = 'The request could not be understood due to malformed syntax.';\n /**\n * BadRequest\n */\n name: string = 'BadRequest';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31400);\n Object.setPrototypeOf(this, ClientErrors.BadRequest.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.Forbidden error.\n * Error code `31403`.\n */\n export class Forbidden extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Forbidden (HTTP/SIP)\n */\n description: string = 'Forbidden (HTTP/SIP)';\n /**\n * The server understood the request, but is refusing to fulfill it.\n */\n explanation: string = 'The server understood the request, but is refusing to fulfill it.';\n /**\n * Forbidden\n */\n name: string = 'Forbidden';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31403);\n Object.setPrototypeOf(this, ClientErrors.Forbidden.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.NotFound error.\n * Error code `31404`.\n */\n export class NotFound extends TwilioError {\n /**\n * The outbound call was made to an invalid phone number.\n * The TwiML application sid is missing a Voice URL.\n */\n causes: string[] = [\n 'The outbound call was made to an invalid phone number.',\n 'The TwiML application sid is missing a Voice URL.',\n ];\n /**\n * Not Found (HTTP/SIP)\n */\n description: string = 'Not Found (HTTP/SIP)';\n /**\n * The server has not found anything matching the request.\n */\n explanation: string = 'The server has not found anything matching the request.';\n /**\n * NotFound\n */\n name: string = 'NotFound';\n /**\n * Ensure the phone number dialed is valid.\n * Ensure the TwiML application is configured correctly with a Voice URL link.\n */\n solutions: string[] = [\n 'Ensure the phone number dialed is valid.',\n 'Ensure the TwiML application is configured correctly with a Voice URL link.',\n ];\n\n constructor(message: string) {\n super(message, 31404);\n Object.setPrototypeOf(this, ClientErrors.NotFound.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.RequestTimeout error.\n * Error code `31408`.\n */\n export class RequestTimeout extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Request Timeout (HTTP/SIP)\n */\n description: string = 'Request Timeout (HTTP/SIP)';\n /**\n * A request timeout occurred.\n */\n explanation: string = 'A request timeout occurred.';\n /**\n * RequestTimeout\n */\n name: string = 'RequestTimeout';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31408);\n Object.setPrototypeOf(this, ClientErrors.RequestTimeout.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.Conflict error.\n * Error code `31409`.\n */\n export class Conflict extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Conflict (HTTP)\n */\n description: string = 'Conflict (HTTP)';\n /**\n * The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress.\n */\n explanation: string = 'The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress.';\n /**\n * Conflict\n */\n name: string = 'Conflict';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31409);\n Object.setPrototypeOf(this, ClientErrors.Conflict.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.UpgradeRequired error.\n * Error code `31426`.\n */\n export class UpgradeRequired extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Upgrade Required (HTTP)\n */\n description: string = 'Upgrade Required (HTTP)';\n /**\n * This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK.\n */\n explanation: string = 'This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK.';\n /**\n * UpgradeRequired\n */\n name: string = 'UpgradeRequired';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31426);\n Object.setPrototypeOf(this, ClientErrors.UpgradeRequired.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.TooManyRequests error.\n * Error code `31429`.\n */\n export class TooManyRequests extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Too Many Requests (HTTP)\n */\n description: string = 'Too Many Requests (HTTP)';\n /**\n * Too many requests were sent in a given amount of time.\n */\n explanation: string = 'Too many requests were sent in a given amount of time.';\n /**\n * TooManyRequests\n */\n name: string = 'TooManyRequests';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31429);\n Object.setPrototypeOf(this, ClientErrors.TooManyRequests.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.TemporarilyUnavailable error.\n * Error code `31480`.\n */\n export class TemporarilyUnavailable extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Temporarily Unavailable (SIP)\n */\n description: string = 'Temporarily Unavailable (SIP)';\n /**\n * The callee is currently unavailable.\n */\n explanation: string = 'The callee is currently unavailable.';\n /**\n * TemporarilyUnavailable\n */\n name: string = 'TemporarilyUnavailable';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31480);\n Object.setPrototypeOf(this, ClientErrors.TemporarilyUnavailable.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.CallTransactionDoesNotExist error.\n * Error code `31481`.\n */\n export class CallTransactionDoesNotExist extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Call/Transaction Does Not Exist (SIP)\n */\n description: string = 'Call/Transaction Does Not Exist (SIP)';\n /**\n * The call no longer exists.\n */\n explanation: string = 'The call no longer exists.';\n /**\n * CallTransactionDoesNotExist\n */\n name: string = 'CallTransactionDoesNotExist';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31481);\n Object.setPrototypeOf(this, ClientErrors.CallTransactionDoesNotExist.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.AddressIncomplete error.\n * Error code `31484`.\n */\n export class AddressIncomplete extends TwilioError {\n /**\n * The outbound call was made with a phone number that has an invalid format.\n */\n causes: string[] = [\n 'The outbound call was made with a phone number that has an invalid format.',\n ];\n /**\n * Address Incomplete (SIP)\n */\n description: string = 'Address Incomplete (SIP)';\n /**\n * The provided phone number is malformed.\n */\n explanation: string = 'The provided phone number is malformed.';\n /**\n * AddressIncomplete\n */\n name: string = 'AddressIncomplete';\n /**\n * Ensure the phone number dialed is formatted correctly.\n */\n solutions: string[] = [\n 'Ensure the phone number dialed is formatted correctly.',\n ];\n\n constructor(message: string) {\n super(message, 31484);\n Object.setPrototypeOf(this, ClientErrors.AddressIncomplete.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.BusyHere error.\n * Error code `31486`.\n */\n export class BusyHere extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Busy Here (SIP)\n */\n description: string = 'Busy Here (SIP)';\n /**\n * The callee is busy.\n */\n explanation: string = 'The callee is busy.';\n /**\n * BusyHere\n */\n name: string = 'BusyHere';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31486);\n Object.setPrototypeOf(this, ClientErrors.BusyHere.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ClientErrors.RequestTerminated error.\n * Error code `31487`.\n */\n export class RequestTerminated extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Request Terminated (SIP)\n */\n description: string = 'Request Terminated (SIP)';\n /**\n * The request has terminated as a result of a bye or cancel.\n */\n explanation: string = 'The request has terminated as a result of a bye or cancel.';\n /**\n * RequestTerminated\n */\n name: string = 'RequestTerminated';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31487);\n Object.setPrototypeOf(this, ClientErrors.RequestTerminated.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Server errors.\n */\nexport namespace ServerErrors {\n /**\n * @public\n * ServerErrors.InternalServerError error.\n * Error code `31500`.\n */\n export class InternalServerError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Internal Server Error (HTTP/SIP)\n */\n description: string = 'Internal Server Error (HTTP/SIP)';\n /**\n * The server could not fulfill the request due to some unexpected condition.\n */\n explanation: string = 'The server could not fulfill the request due to some unexpected condition.';\n /**\n * InternalServerError\n */\n name: string = 'InternalServerError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31500);\n Object.setPrototypeOf(this, ServerErrors.InternalServerError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ServerErrors.BadGateway error.\n * Error code `31502`.\n */\n export class BadGateway extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Bad Gateway (HTTP/SIP)\n */\n description: string = 'Bad Gateway (HTTP/SIP)';\n /**\n * The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request.\n */\n explanation: string = 'The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request.';\n /**\n * BadGateway\n */\n name: string = 'BadGateway';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31502);\n Object.setPrototypeOf(this, ServerErrors.BadGateway.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ServerErrors.ServiceUnavailable error.\n * Error code `31503`.\n */\n export class ServiceUnavailable extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Service Unavailable (HTTP/SIP)\n */\n description: string = 'Service Unavailable (HTTP/SIP)';\n /**\n * The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL.\n */\n explanation: string = 'The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL.';\n /**\n * ServiceUnavailable\n */\n name: string = 'ServiceUnavailable';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31503);\n Object.setPrototypeOf(this, ServerErrors.ServiceUnavailable.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ServerErrors.GatewayTimeout error.\n * Error code `31504`.\n */\n export class GatewayTimeout extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Gateway Timeout (HTTP/SIP)\n */\n description: string = 'Gateway Timeout (HTTP/SIP)';\n /**\n * The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.\n */\n explanation: string = 'The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.';\n /**\n * GatewayTimeout\n */\n name: string = 'GatewayTimeout';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31504);\n Object.setPrototypeOf(this, ServerErrors.GatewayTimeout.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * ServerErrors.DNSResolutionError error.\n * Error code `31530`.\n */\n export class DNSResolutionError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * DNS Resolution Error (HTTP/SIP)\n */\n description: string = 'DNS Resolution Error (HTTP/SIP)';\n /**\n * Could not connect to the server.\n */\n explanation: string = 'Could not connect to the server.';\n /**\n * DNSResolutionError\n */\n name: string = 'DNSResolutionError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31530);\n Object.setPrototypeOf(this, ServerErrors.DNSResolutionError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * SIPServer errors.\n */\nexport namespace SIPServerErrors {\n /**\n * @public\n * SIPServerErrors.BusyEverywhere error.\n * Error code `31600`.\n */\n export class BusyEverywhere extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Busy Everywhere (SIP)\n */\n description: string = 'Busy Everywhere (SIP)';\n /**\n * All possible destinations are busy.\n */\n explanation: string = 'All possible destinations are busy.';\n /**\n * BusyEverywhere\n */\n name: string = 'BusyEverywhere';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31600);\n Object.setPrototypeOf(this, SIPServerErrors.BusyEverywhere.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * SIPServerErrors.Decline error.\n * Error code `31603`.\n */\n export class Decline extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Decline (SIP)\n */\n description: string = 'Decline (SIP)';\n /**\n * The callee does not wish to participate in the call.\n */\n explanation: string = 'The callee does not wish to participate in the call.';\n /**\n * Decline\n */\n name: string = 'Decline';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31603);\n Object.setPrototypeOf(this, SIPServerErrors.Decline.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * SIPServerErrors.DoesNotExistAnywhere error.\n * Error code `31604`.\n */\n export class DoesNotExistAnywhere extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Does Not Exist Anywhere (SIP)\n */\n description: string = 'Does Not Exist Anywhere (SIP)';\n /**\n * The requested callee does not exist anywhere.\n */\n explanation: string = 'The requested callee does not exist anywhere.';\n /**\n * DoesNotExistAnywhere\n */\n name: string = 'DoesNotExistAnywhere';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31604);\n Object.setPrototypeOf(this, SIPServerErrors.DoesNotExistAnywhere.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * TwiML errors.\n */\nexport namespace TwiMLErrors {\n /**\n * @public\n * TwiMLErrors.InvalidApplicationSid error.\n * Error code `21218`.\n */\n export class InvalidApplicationSid extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Invalid ApplicationSid\n */\n description: string = 'Invalid ApplicationSid';\n /**\n * You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account\n */\n explanation: string = 'You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account';\n /**\n * InvalidApplicationSid\n */\n name: string = 'InvalidApplicationSid';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 21218);\n Object.setPrototypeOf(this, TwiMLErrors.InvalidApplicationSid.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * General errors.\n */\nexport namespace GeneralErrors {\n /**\n * @public\n * GeneralErrors.ConnectionError error.\n * Error code `31005`.\n */\n export class ConnectionError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Connection error\n */\n description: string = 'Connection error';\n /**\n * A connection error occurred during the call\n */\n explanation: string = 'A connection error occurred during the call';\n /**\n * ConnectionError\n */\n name: string = 'ConnectionError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31005);\n Object.setPrototypeOf(this, GeneralErrors.ConnectionError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * GeneralErrors.CallCancelledError error.\n * Error code `31008`.\n */\n export class CallCancelledError extends TwilioError {\n /**\n * The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity.\n */\n causes: string[] = [\n 'The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity.',\n ];\n /**\n * Call cancelled\n */\n description: string = 'Call cancelled';\n /**\n * Unable to answer because the call has ended\n */\n explanation: string = 'Unable to answer because the call has ended';\n /**\n * CallCancelledError\n */\n name: string = 'CallCancelledError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31008);\n Object.setPrototypeOf(this, GeneralErrors.CallCancelledError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * GeneralErrors.TransportError error.\n * Error code `31009`.\n */\n export class TransportError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Transport error\n */\n description: string = 'Transport error';\n /**\n * No transport available to send or receive messages\n */\n explanation: string = 'No transport available to send or receive messages';\n /**\n * TransportError\n */\n name: string = 'TransportError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31009);\n Object.setPrototypeOf(this, GeneralErrors.TransportError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * MalformedRequest errors.\n */\nexport namespace MalformedRequestErrors {\n /**\n * @public\n * MalformedRequestErrors.MalformedRequestError error.\n * Error code `31100`.\n */\n export class MalformedRequestError extends TwilioError {\n /**\n * Invalid content or MessageType passed to sendMessage method.\n */\n causes: string[] = [\n 'Invalid content or MessageType passed to sendMessage method.',\n ];\n /**\n * The request had malformed syntax.\n */\n description: string = 'The request had malformed syntax.';\n /**\n * The request could not be understood due to malformed syntax.\n */\n explanation: string = 'The request could not be understood due to malformed syntax.';\n /**\n * MalformedRequestError\n */\n name: string = 'MalformedRequestError';\n /**\n * Ensure content and MessageType passed to sendMessage method are valid.\n */\n solutions: string[] = [\n 'Ensure content and MessageType passed to sendMessage method are valid.',\n ];\n\n constructor(message: string) {\n super(message, 31100);\n Object.setPrototypeOf(this, MalformedRequestErrors.MalformedRequestError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Registration errors.\n */\nexport namespace RegistrationErrors {\n /**\n * @public\n * RegistrationErrors.RegistrationError error.\n * Error code `31301`.\n */\n export class RegistrationError extends TwilioError {\n /**\n * Not applicable.\n */\n causes: string[] = [];\n /**\n * Registration error\n */\n description: string = 'Registration error';\n /**\n * \n */\n explanation: string = '';\n /**\n * RegistrationError\n */\n name: string = 'RegistrationError';\n /**\n * Not applicable.\n */\n solutions: string[] = [];\n\n constructor(message: string) {\n super(message, 31301);\n Object.setPrototypeOf(this, RegistrationErrors.RegistrationError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * RegistrationErrors.UnsupportedCancelMessageError error.\n * Error code `31302`.\n */\n export class UnsupportedCancelMessageError extends TwilioError {\n /**\n * The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages.\n */\n causes: string[] = [\n 'The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages.',\n ];\n /**\n * Unsupported Cancel Message Error\n */\n description: string = 'Unsupported Cancel Message Error';\n /**\n * This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK.\n */\n explanation: string = 'This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK.';\n /**\n * UnsupportedCancelMessageError\n */\n name: string = 'UnsupportedCancelMessageError';\n /**\n * The application must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS to stop receiving cancel push notification messages.\n */\n solutions: string[] = [\n 'The application must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS to stop receiving cancel push notification messages.',\n ];\n\n constructor(message: string) {\n super(message, 31302);\n Object.setPrototypeOf(this, RegistrationErrors.UnsupportedCancelMessageError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * UserMedia errors.\n */\nexport namespace UserMediaErrors {\n /**\n * @public\n * UserMediaErrors.PermissionDeniedError error.\n * Error code `31401`.\n */\n export class PermissionDeniedError extends TwilioError {\n /**\n * The user denied the getUserMedia request.\n * The browser denied the getUserMedia request.\n * The application has not been configured with the proper permissions.\n */\n causes: string[] = [\n 'The user denied the getUserMedia request.',\n 'The browser denied the getUserMedia request.',\n 'The application has not been configured with the proper permissions.',\n ];\n /**\n * UserMedia Permission Denied Error\n */\n description: string = 'UserMedia Permission Denied Error';\n /**\n * The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio.\n */\n explanation: string = 'The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio.';\n /**\n * PermissionDeniedError\n */\n name: string = 'PermissionDeniedError';\n /**\n * The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser.\n * The user should to verify that the browser has permission to access the microphone at this address.\n * The user should ensure that the proper permissions have been granted in the mobile device OS.\n */\n solutions: string[] = [\n 'The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser.',\n 'The user should to verify that the browser has permission to access the microphone at this address.',\n 'The user should ensure that the proper permissions have been granted in the mobile device OS.',\n ];\n\n constructor(message: string) {\n super(message, 31401);\n Object.setPrototypeOf(this, UserMediaErrors.PermissionDeniedError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Signaling errors.\n */\nexport namespace SignalingErrors {\n /**\n * @public\n * SignalingErrors.ConnectionDisconnected error.\n * Error code `53001`.\n */\n export class ConnectionDisconnected extends TwilioError {\n /**\n * The device running your application lost its Internet connection.\n */\n causes: string[] = [\n 'The device running your application lost its Internet connection.',\n ];\n /**\n * Signaling connection disconnected\n */\n description: string = 'Signaling connection disconnected';\n /**\n * Raised whenever the signaling connection is unexpectedly disconnected.\n */\n explanation: string = 'Raised whenever the signaling connection is unexpectedly disconnected.';\n /**\n * ConnectionDisconnected\n */\n name: string = 'ConnectionDisconnected';\n /**\n * Ensure the device running your application has access to a stable Internet connection.\n */\n solutions: string[] = [\n 'Ensure the device running your application has access to a stable Internet connection.',\n ];\n\n constructor(message: string) {\n super(message, 53001);\n Object.setPrototypeOf(this, SignalingErrors.ConnectionDisconnected.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @public\n * Media errors.\n */\nexport namespace MediaErrors {\n /**\n * @public\n * MediaErrors.ClientLocalDescFailed error.\n * Error code `53400`.\n */\n export class ClientLocalDescFailed extends TwilioError {\n /**\n * The Client may not be using a supported WebRTC implementation.\n * The Client may not have the necessary resources to create or apply a new media description.\n */\n causes: string[] = [\n 'The Client may not be using a supported WebRTC implementation.',\n 'The Client may not have the necessary resources to create or apply a new media description.',\n ];\n /**\n * Client is unable to create or apply a local media description\n */\n description: string = 'Client is unable to create or apply a local media description';\n /**\n * Raised whenever a Client is unable to create or apply a local media description.\n */\n explanation: string = 'Raised whenever a Client is unable to create or apply a local media description.';\n /**\n * ClientLocalDescFailed\n */\n name: string = 'ClientLocalDescFailed';\n /**\n * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.\n */\n solutions: string[] = [\n 'If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.',\n ];\n\n constructor(message: string) {\n super(message, 53400);\n Object.setPrototypeOf(this, MediaErrors.ClientLocalDescFailed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.ServerLocalDescFailed error.\n * Error code `53401`.\n */\n export class ServerLocalDescFailed extends TwilioError {\n /**\n * A server-side error has occurred.\n */\n causes: string[] = [\n 'A server-side error has occurred.',\n ];\n /**\n * Server is unable to create or apply a local media description\n */\n description: string = 'Server is unable to create or apply a local media description';\n /**\n * Raised whenever the Server is unable to create or apply a local media description.\n */\n explanation: string = 'Raised whenever the Server is unable to create or apply a local media description.';\n /**\n * ServerLocalDescFailed\n */\n name: string = 'ServerLocalDescFailed';\n /**\n * If the problem persists, try connecting to another region.\n */\n solutions: string[] = [\n 'If the problem persists, try connecting to another region.',\n ];\n\n constructor(message: string) {\n super(message, 53401);\n Object.setPrototypeOf(this, MediaErrors.ServerLocalDescFailed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.ClientRemoteDescFailed error.\n * Error code `53402`.\n */\n export class ClientRemoteDescFailed extends TwilioError {\n /**\n * The Client may not be using a supported WebRTC implementation.\n * The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation.\n * The Client may not have the necessary resources to apply a new media description.\n */\n causes: string[] = [\n 'The Client may not be using a supported WebRTC implementation.',\n 'The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation.',\n 'The Client may not have the necessary resources to apply a new media description.',\n ];\n /**\n * Client is unable to apply a remote media description\n */\n description: string = 'Client is unable to apply a remote media description';\n /**\n * Raised whenever the Client receives a remote media description but is unable to apply it.\n */\n explanation: string = 'Raised whenever the Client receives a remote media description but is unable to apply it.';\n /**\n * ClientRemoteDescFailed\n */\n name: string = 'ClientRemoteDescFailed';\n /**\n * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.\n */\n solutions: string[] = [\n 'If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.',\n ];\n\n constructor(message: string) {\n super(message, 53402);\n Object.setPrototypeOf(this, MediaErrors.ClientRemoteDescFailed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.ServerRemoteDescFailed error.\n * Error code `53403`.\n */\n export class ServerRemoteDescFailed extends TwilioError {\n /**\n * The Client may not be using a supported WebRTC implementation.\n * The Client may not have the necessary resources to apply a new media description.\n * A Server-side error may have caused the Server to generate an invalid media description.\n */\n causes: string[] = [\n 'The Client may not be using a supported WebRTC implementation.',\n 'The Client may not have the necessary resources to apply a new media description.',\n 'A Server-side error may have caused the Server to generate an invalid media description.',\n ];\n /**\n * Server is unable to apply a remote media description\n */\n description: string = 'Server is unable to apply a remote media description';\n /**\n * Raised whenever the Server receives a remote media description but is unable to apply it.\n */\n explanation: string = 'Raised whenever the Server receives a remote media description but is unable to apply it.';\n /**\n * ServerRemoteDescFailed\n */\n name: string = 'ServerRemoteDescFailed';\n /**\n * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.\n * If the problem persists, try connecting to another region.\n */\n solutions: string[] = [\n 'If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.',\n 'If the problem persists, try connecting to another region.',\n ];\n\n constructor(message: string) {\n super(message, 53403);\n Object.setPrototypeOf(this, MediaErrors.ServerRemoteDescFailed.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.NoSupportedCodec error.\n * Error code `53404`.\n */\n export class NoSupportedCodec extends TwilioError {\n /**\n * The C++ SDK was built without the recommended set of codecs.\n * The JavaScript SDK is running in a browser that does not implement the recommended set of codecs.\n */\n causes: string[] = [\n 'The C++ SDK was built without the recommended set of codecs.',\n 'The JavaScript SDK is running in a browser that does not implement the recommended set of codecs.',\n ];\n /**\n * No supported codec\n */\n description: string = 'No supported codec';\n /**\n * Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.\n */\n explanation: string = 'Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.';\n /**\n * NoSupportedCodec\n */\n name: string = 'NoSupportedCodec';\n /**\n * If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs.\n * If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser.\n */\n solutions: string[] = [\n 'If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs.',\n 'If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser.',\n ];\n\n constructor(message: string) {\n super(message, 53404);\n Object.setPrototypeOf(this, MediaErrors.NoSupportedCodec.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.ConnectionError error.\n * Error code `53405`.\n */\n export class ConnectionError extends TwilioError {\n /**\n * The Client was unable to establish a media connection.\n * A media connection which was active failed liveliness checks.\n */\n causes: string[] = [\n 'The Client was unable to establish a media connection.',\n 'A media connection which was active failed liveliness checks.',\n ];\n /**\n * Media connection failed\n */\n description: string = 'Media connection failed';\n /**\n * Raised by the Client or Server whenever a media connection fails.\n */\n explanation: string = 'Raised by the Client or Server whenever a media connection fails.';\n /**\n * ConnectionError\n */\n name: string = 'ConnectionError';\n /**\n * If the problem persists, try connecting to another region.\n * Check your Client's network connectivity.\n * If you've provided custom ICE Servers then ensure that the URLs and credentials are valid.\n */\n solutions: string[] = [\n 'If the problem persists, try connecting to another region.',\n 'Check your Client\\'s network connectivity.',\n 'If you\\'ve provided custom ICE Servers then ensure that the URLs and credentials are valid.',\n ];\n\n constructor(message: string) {\n super(message, 53405);\n Object.setPrototypeOf(this, MediaErrors.ConnectionError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n\n /**\n * @public\n * MediaErrors.MediaDtlsTransportFailedError error.\n * Error code `53407`.\n */\n export class MediaDtlsTransportFailedError extends TwilioError {\n /**\n * One or both of the DTLS peers have an invalid certificate.\n * One or both of the DTLS peers have an outdated version of DTLS.\n * One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake.\n */\n causes: string[] = [\n 'One or both of the DTLS peers have an invalid certificate.',\n 'One or both of the DTLS peers have an outdated version of DTLS.',\n 'One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake.',\n ];\n /**\n * The media connection failed due to DTLS handshake failure\n */\n description: string = 'The media connection failed due to DTLS handshake failure';\n /**\n * There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.\n */\n explanation: string = 'There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.';\n /**\n * MediaDtlsTransportFailedError\n */\n name: string = 'MediaDtlsTransportFailedError';\n /**\n * Ensure that your certificate is valid.\n * Ensure that you have a stable internet connection.\n * Ensure that the browser or the Mobile SDK supports newer versions of DTLS.\n */\n solutions: string[] = [\n 'Ensure that your certificate is valid.',\n 'Ensure that you have a stable internet connection.',\n 'Ensure that the browser or the Mobile SDK supports newer versions of DTLS.',\n ];\n\n constructor(message: string) {\n super(message, 53407);\n Object.setPrototypeOf(this, MediaErrors.MediaDtlsTransportFailedError.prototype);\n\n const msg: string = typeof message === 'string'\n ? message\n : this.explanation;\n\n this.message = `${this.name} (${this.code}): ${msg}`;\n }\n }\n}\n\n/**\n * @internal\n */\nexport const errorsByCode: ReadonlyMap = new Map([\n [20101, AuthorizationErrors.AccessTokenInvalid],\n [20102, AuthorizationErrors.AccessTokenHeaderInvalid],\n [20103, AuthorizationErrors.AccessTokenIssuerInvalid],\n [20104, AuthorizationErrors.AccessTokenExpired],\n [20105, AuthorizationErrors.AccessTokenNotYetValid],\n [20106, AuthorizationErrors.AccessTokenGrantsInvalid],\n [20107, AuthorizationErrors.AccessTokenSignatureInvalid],\n [20151, AuthorizationErrors.AuthenticationFailed],\n [20157, AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed],\n [20403, ForbiddenErrors.Forbidden],\n [21218, TwiMLErrors.InvalidApplicationSid],\n [31005, GeneralErrors.ConnectionError],\n [31008, GeneralErrors.CallCancelledError],\n [31009, GeneralErrors.TransportError],\n [31100, MalformedRequestErrors.MalformedRequestError],\n [31201, AuthorizationErrors.AuthorizationError],\n [31206, AuthorizationErrors.RateExceededError],\n [31210, AuthorizationErrors.CallMessageEventTypeInvalidError],\n [31211, AuthorizationErrors.CallMessageUnexpectedStateError],\n [31212, AuthorizationErrors.PayloadSizeExceededError],\n [31301, RegistrationErrors.RegistrationError],\n [31302, RegistrationErrors.UnsupportedCancelMessageError],\n [31400, ClientErrors.BadRequest],\n [31401, UserMediaErrors.PermissionDeniedError],\n [31403, ClientErrors.Forbidden],\n [31404, ClientErrors.NotFound],\n [31408, ClientErrors.RequestTimeout],\n [31409, ClientErrors.Conflict],\n [31426, ClientErrors.UpgradeRequired],\n [31429, ClientErrors.TooManyRequests],\n [31480, ClientErrors.TemporarilyUnavailable],\n [31481, ClientErrors.CallTransactionDoesNotExist],\n [31484, ClientErrors.AddressIncomplete],\n [31486, ClientErrors.BusyHere],\n [31487, ClientErrors.RequestTerminated],\n [31500, ServerErrors.InternalServerError],\n [31502, ServerErrors.BadGateway],\n [31503, ServerErrors.ServiceUnavailable],\n [31504, ServerErrors.GatewayTimeout],\n [31530, ServerErrors.DNSResolutionError],\n [31600, SIPServerErrors.BusyEverywhere],\n [31603, SIPServerErrors.Decline],\n [31604, SIPServerErrors.DoesNotExistAnywhere],\n [51007, AuthorizationErrors.AccessTokenRejected],\n [53001, SignalingErrors.ConnectionDisconnected],\n [53400, MediaErrors.ClientLocalDescFailed],\n [53401, MediaErrors.ServerLocalDescFailed],\n [53402, MediaErrors.ClientRemoteDescFailed],\n [53403, MediaErrors.ServerRemoteDescFailed],\n [53404, MediaErrors.NoSupportedCodec],\n [53405, MediaErrors.ConnectionError],\n [53407, MediaErrors.MediaDtlsTransportFailedError],\n]);\n\nObject.freeze(errorsByCode);\n"]}
\ No newline at end of file
diff --git a/lib/module/error/index.js b/lib/module/error/index.js
new file mode 100644
index 00000000..0a0459d4
--- /dev/null
+++ b/lib/module/error/index.js
@@ -0,0 +1,6 @@
+export { InvalidArgumentError } from './InvalidArgumentError';
+export { InvalidStateError } from './InvalidStateError';
+export { UnsupportedPlatformError } from './UnsupportedPlatformError';
+export { TwilioError } from './TwilioError';
+export { AuthorizationErrors, ClientErrors, ForbiddenErrors, GeneralErrors, MalformedRequestErrors, MediaErrors, RegistrationErrors, ServerErrors, SignalingErrors, SIPServerErrors, TwiMLErrors, UserMediaErrors } from './generated';
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/module/error/index.js.map b/lib/module/error/index.js.map
new file mode 100644
index 00000000..82dc4e85
--- /dev/null
+++ b/lib/module/error/index.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["index.ts"],"names":["InvalidArgumentError","InvalidStateError","UnsupportedPlatformError","TwilioError","AuthorizationErrors","ClientErrors","ForbiddenErrors","GeneralErrors","MalformedRequestErrors","MediaErrors","RegistrationErrors","ServerErrors","SignalingErrors","SIPServerErrors","TwiMLErrors","UserMediaErrors"],"mappings":"AAAA,SAASA,oBAAT,QAAqC,wBAArC;AACA,SAASC,iBAAT,QAAkC,qBAAlC;AACA,SAASC,wBAAT,QAAyC,4BAAzC;AACA,SAASC,WAAT,QAA4B,eAA5B;AACA,SACEC,mBADF,EAEEC,YAFF,EAGEC,eAHF,EAIEC,aAJF,EAKEC,sBALF,EAMEC,WANF,EAOEC,kBAPF,EAQEC,YARF,EASEC,eATF,EAUEC,eAVF,EAWEC,WAXF,EAYEC,eAZF,QAaO,aAbP","sourcesContent":["export { InvalidArgumentError } from './InvalidArgumentError';\nexport { InvalidStateError } from './InvalidStateError';\nexport { UnsupportedPlatformError } from './UnsupportedPlatformError';\nexport { TwilioError } from './TwilioError';\nexport {\n AuthorizationErrors,\n ClientErrors,\n ForbiddenErrors,\n GeneralErrors,\n MalformedRequestErrors,\n MediaErrors,\n RegistrationErrors,\n ServerErrors,\n SignalingErrors,\n SIPServerErrors,\n TwiMLErrors,\n UserMediaErrors,\n} from './generated';\n"]}
\ No newline at end of file
diff --git a/lib/module/error/utility.js b/lib/module/error/utility.js
new file mode 100644
index 00000000..7e3d8abd
--- /dev/null
+++ b/lib/module/error/utility.js
@@ -0,0 +1,27 @@
+import { errorsByCode } from './generated';
+import { TwilioError } from './TwilioError';
+import { InvalidArgumentError } from './InvalidArgumentError';
+/**
+ * Uses the generated error-code map to create the appropriate error.
+ * If the code is "unexpected" such that there is no constructor for that
+ * specific code, this function will default to a generic {@link TwilioError}.
+ *
+ * @param message an error message
+ * @param code a Twilio error code, for example `31209`
+ *
+ * @returns a {@link TwilioError} or appropriate sub-class
+ */
+
+export function constructTwilioError(message, code) {
+ if (typeof message !== 'string') {
+ throw new InvalidArgumentError('The "message" argument is not of type "string".');
+ }
+
+ if (typeof code !== 'number') {
+ throw new InvalidArgumentError('The "code" argument is not of type "number".');
+ }
+
+ const ErrorClass = errorsByCode.get(code);
+ return typeof ErrorClass !== 'undefined' ? new ErrorClass(message) : new TwilioError(message, code);
+}
+//# sourceMappingURL=utility.js.map
\ No newline at end of file
diff --git a/lib/module/error/utility.js.map b/lib/module/error/utility.js.map
new file mode 100644
index 00000000..0f7f475e
--- /dev/null
+++ b/lib/module/error/utility.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["utility.ts"],"names":["errorsByCode","TwilioError","InvalidArgumentError","constructTwilioError","message","code","ErrorClass","get"],"mappings":"AAAA,SAASA,YAAT,QAA6B,aAA7B;AACA,SAASC,WAAT,QAA4B,eAA5B;AACA,SAASC,oBAAT,QAAqC,wBAArC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,oBAAT,CACLC,OADK,EAELC,IAFK,EAGQ;AACb,MAAI,OAAOD,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,UAAM,IAAIF,oBAAJ,CACJ,iDADI,CAAN;AAGD;;AAED,MAAI,OAAOG,IAAP,KAAgB,QAApB,EAA8B;AAC5B,UAAM,IAAIH,oBAAJ,CACJ,8CADI,CAAN;AAGD;;AAED,QAAMI,UAAU,GAAGN,YAAY,CAACO,GAAb,CAAiBF,IAAjB,CAAnB;AAEA,SAAO,OAAOC,UAAP,KAAsB,WAAtB,GACH,IAAIA,UAAJ,CAAeF,OAAf,CADG,GAEH,IAAIH,WAAJ,CAAgBG,OAAhB,EAAyBC,IAAzB,CAFJ;AAGD","sourcesContent":["import { errorsByCode } from './generated';\nimport { TwilioError } from './TwilioError';\nimport { InvalidArgumentError } from './InvalidArgumentError';\n\n/**\n * Uses the generated error-code map to create the appropriate error.\n * If the code is \"unexpected\" such that there is no constructor for that\n * specific code, this function will default to a generic {@link TwilioError}.\n *\n * @param message an error message\n * @param code a Twilio error code, for example `31209`\n *\n * @returns a {@link TwilioError} or appropriate sub-class\n */\nexport function constructTwilioError(\n message: string,\n code: number\n): TwilioError {\n if (typeof message !== 'string') {\n throw new InvalidArgumentError(\n 'The \"message\" argument is not of type \"string\".'\n );\n }\n\n if (typeof code !== 'number') {\n throw new InvalidArgumentError(\n 'The \"code\" argument is not of type \"number\".'\n );\n }\n\n const ErrorClass = errorsByCode.get(code);\n\n return typeof ErrorClass !== 'undefined'\n ? new ErrorClass(message)\n : new TwilioError(message, code);\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/index.js b/lib/module/index.js
new file mode 100644
index 00000000..3104825f
--- /dev/null
+++ b/lib/module/index.js
@@ -0,0 +1,23 @@
+// Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+// license.
+// See LICENSE in the project root for license information.
+
+/**
+ * Provides access to Twilio Programmable Voice for React Native applications
+ * running on iOS and Android devices.
+ *
+ * @packageDocumentation
+ */
+export { Voice } from './Voice';
+export { AudioDevice } from './AudioDevice';
+export { Call } from './Call';
+export { CallInvite } from './CallInvite';
+export { CallMessage } from './CallMessage/CallMessage';
+export { IncomingCallMessage } from './CallMessage/IncomingCallMessage';
+export { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';
+export { CustomParameters } from './type/common';
+export { CallKit } from './type/CallKit';
+export { RTCStats } from './type/RTCStats';
+import * as TwilioErrors from './error';
+export { TwilioErrors };
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib/module/index.js.map b/lib/module/index.js.map
new file mode 100644
index 00000000..09eb084b
--- /dev/null
+++ b/lib/module/index.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["index.tsx"],"names":["Voice","AudioDevice","Call","CallInvite","CallMessage","IncomingCallMessage","OutgoingCallMessage","CustomParameters","CallKit","RTCStats","TwilioErrors"],"mappings":"AAAA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,SAASA,KAAT,QAAsB,SAAtB;AAEA,SAASC,WAAT,QAA4B,eAA5B;AACA,SAASC,IAAT,QAAqB,QAArB;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,WAAT,QAA4B,2BAA5B;AACA,SAASC,mBAAT,QAAoC,mCAApC;AACA,SAASC,mBAAT,QAAoC,mCAApC;AACA,SAASC,gBAAT,QAAiC,eAAjC;AACA,SAASC,OAAT,QAAwB,gBAAxB;AACA,SAASC,QAAT,QAAyB,iBAAzB;AAEA,OAAO,KAAKC,YAAZ,MAA8B,SAA9B;AACA,SAASA,YAAT","sourcesContent":["// 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/**\n * Provides access to Twilio Programmable Voice for React Native applications\n * running on iOS and Android devices.\n *\n * @packageDocumentation\n */\n\nexport { Voice } from './Voice';\n\nexport { AudioDevice } from './AudioDevice';\nexport { Call } from './Call';\nexport { CallInvite } from './CallInvite';\nexport { CallMessage } from './CallMessage/CallMessage';\nexport { IncomingCallMessage } from './CallMessage/IncomingCallMessage';\nexport { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';\nexport { CustomParameters } from './type/common';\nexport { CallKit } from './type/CallKit';\nexport { RTCStats } from './type/RTCStats';\n\nimport * as TwilioErrors from './error';\nexport { TwilioErrors };\n"]}
\ No newline at end of file
diff --git a/lib/module/type/AudioDevice.js b/lib/module/type/AudioDevice.js
new file mode 100644
index 00000000..66b99d6d
--- /dev/null
+++ b/lib/module/type/AudioDevice.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=AudioDevice.js.map
\ No newline at end of file
diff --git a/lib/module/type/AudioDevice.js.map b/lib/module/type/AudioDevice.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/module/type/AudioDevice.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/module/type/Call.js b/lib/module/type/Call.js
new file mode 100644
index 00000000..74edbfb1
--- /dev/null
+++ b/lib/module/type/Call.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=Call.js.map
\ No newline at end of file
diff --git a/lib/module/type/Call.js.map b/lib/module/type/Call.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/module/type/Call.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/module/type/CallInvite.js b/lib/module/type/CallInvite.js
new file mode 100644
index 00000000..f6657e6a
--- /dev/null
+++ b/lib/module/type/CallInvite.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=CallInvite.js.map
\ No newline at end of file
diff --git a/lib/module/type/CallInvite.js.map b/lib/module/type/CallInvite.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/module/type/CallInvite.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/module/type/CallKit.js b/lib/module/type/CallKit.js
new file mode 100644
index 00000000..62253c12
--- /dev/null
+++ b/lib/module/type/CallKit.js
@@ -0,0 +1,22 @@
+/**
+ * @public
+ * CallKit related types.
+ */
+export let CallKit;
+
+(function (_CallKit) {
+ /**
+ * @public
+ * iOS CallKit configuration options.
+ */
+ let HandleType;
+
+ (function (HandleType) {
+ HandleType[HandleType["Generic"] = 0] = "Generic";
+ HandleType[HandleType["PhoneNumber"] = 1] = "PhoneNumber";
+ HandleType[HandleType["EmailAddress"] = 2] = "EmailAddress";
+ })(HandleType || (HandleType = {}));
+
+ _CallKit.HandleType = HandleType;
+})(CallKit || (CallKit = {}));
+//# sourceMappingURL=CallKit.js.map
\ No newline at end of file
diff --git a/lib/module/type/CallKit.js.map b/lib/module/type/CallKit.js.map
new file mode 100644
index 00000000..3bc1e597
--- /dev/null
+++ b/lib/module/type/CallKit.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["CallKit.ts"],"names":["HandleType","CallKit"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;;AACE;AACF;AACA;AACA;MAsCcA,U;;aAAAA,U;AAAAA,IAAAA,U,CAAAA,U;AAAAA,IAAAA,U,CAAAA,U;AAAAA,IAAAA,U,CAAAA,U;KAAAA,U,KAAAA,U;;;GA1CGC,O,KAAAA,O","sourcesContent":["/**\n * @public\n * CallKit related types.\n */\nexport namespace CallKit {\n /**\n * @public\n * iOS CallKit configuration options.\n */\n export type ConfigurationOptions = {\n /**\n * Filename of a 80x80 PNG image that will show in the system call UI as the app icon.\n */\n callKitIconTemplateImageData: string;\n /**\n * Include call history in system recents (`true` by default).\n *\n * @remarks\n * Only supported on iOS 11 and newer versions.\n */\n callKitIncludesCallsInRecents: boolean;\n /**\n * Maximum number of call groups (`2` by default).\n */\n callKitMaximumCallGroups: number;\n /**\n * Maximum number of calls per group (`5` by default).\n */\n callKitMaximumCallsPerCallGroup: number;\n /**\n * Filename of the incoming call ringing tone.\n */\n callKitRingtoneSound: string;\n /**\n * Supported handle types.\n *\n * @remarks\n * See {@link CallKitHandleType}.\n */\n callKitSupportedHandleTypes: HandleType[];\n };\n\n /**\n * @public\n * Enumeration of all supported handle types by iOS CallKit.\n */\n export enum HandleType {\n /**\n * Generic handle.\n */\n Generic = 0,\n /**\n * Phone number handle.\n */\n PhoneNumber = 1,\n /**\n * Email address handle.\n */\n EmailAddress = 2,\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/type/CallMessage.js b/lib/module/type/CallMessage.js
new file mode 100644
index 00000000..e53ca1bb
--- /dev/null
+++ b/lib/module/type/CallMessage.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=CallMessage.js.map
\ No newline at end of file
diff --git a/lib/module/type/CallMessage.js.map b/lib/module/type/CallMessage.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/module/type/CallMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/module/type/Error.js b/lib/module/type/Error.js
new file mode 100644
index 00000000..af0e4ae6
--- /dev/null
+++ b/lib/module/type/Error.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=Error.js.map
\ No newline at end of file
diff --git a/lib/module/type/Error.js.map b/lib/module/type/Error.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/module/type/Error.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/module/type/NativeModule.js b/lib/module/type/NativeModule.js
new file mode 100644
index 00000000..aeb61473
--- /dev/null
+++ b/lib/module/type/NativeModule.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=NativeModule.js.map
\ No newline at end of file
diff --git a/lib/module/type/NativeModule.js.map b/lib/module/type/NativeModule.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/module/type/NativeModule.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/module/type/RTCStats.js b/lib/module/type/RTCStats.js
new file mode 100644
index 00000000..57b526a9
--- /dev/null
+++ b/lib/module/type/RTCStats.js
@@ -0,0 +1,21 @@
+/**
+ * Types related to WebRTC stats.
+ *
+ * @public
+ */
+export let RTCStats;
+
+(function (_RTCStats) {
+ let IceCandidatePairState;
+
+ (function (IceCandidatePairState) {
+ IceCandidatePairState["STATE_FAILED"] = "STATE_FAILED";
+ IceCandidatePairState["STATE_FROZEN"] = "STATE_FROZEN";
+ IceCandidatePairState["STATE_IN_PROGRESS"] = "STATE_IN_PROGRESS";
+ IceCandidatePairState["STATE_SUCCEEDED"] = "STATE_SUCCEEDED";
+ IceCandidatePairState["STATE_WAITING"] = "STATE_WAITING";
+ })(IceCandidatePairState || (IceCandidatePairState = {}));
+
+ _RTCStats.IceCandidatePairState = IceCandidatePairState;
+})(RTCStats || (RTCStats = {}));
+//# sourceMappingURL=RTCStats.js.map
\ No newline at end of file
diff --git a/lib/module/type/RTCStats.js.map b/lib/module/type/RTCStats.js.map
new file mode 100644
index 00000000..41958799
--- /dev/null
+++ b/lib/module/type/RTCStats.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["RTCStats.ts"],"names":["IceCandidatePairState","RTCStats"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;;MACcA,qB;;aAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;KAAAA,qB,KAAAA,qB;;;GADGC,Q,KAAAA,Q","sourcesContent":["/**\n * Types related to WebRTC stats.\n *\n * @public\n */\nexport namespace RTCStats {\n export enum IceCandidatePairState {\n STATE_FAILED = 'STATE_FAILED',\n STATE_FROZEN = 'STATE_FROZEN',\n STATE_IN_PROGRESS = 'STATE_IN_PROGRESS',\n STATE_SUCCEEDED = 'STATE_SUCCEEDED',\n STATE_WAITING = 'STATE_WAITING',\n }\n\n export interface IceCandidatePairStats {\n activeCandidatePair: boolean;\n availableIncomingBitrate: number;\n availableOutgoingBitrate: number;\n bytesReceived: number;\n bytesSent: number;\n consentRequestsReceived: number;\n consentRequestsSent: number;\n consentResponsesReceived: number;\n consentResponsesSent: number;\n currentRoundTripTime: number;\n localCandidateId: string;\n localCandidateIp: string;\n nominated: boolean;\n priority: number;\n readable: boolean;\n relayProtocol: string;\n remoteCandidateId: string;\n remoteCandidateIp: string;\n requestsReceieved: number;\n requestsSent: number;\n responsesRecieved: number;\n responsesSent: number;\n retransmissionsReceived: number;\n retransmissionsSent: number;\n state: IceCandidatePairState;\n totalRoundTripTime: number;\n transportId: string;\n writeable: boolean;\n }\n\n export interface IceCandidateStats {\n candidateType: string;\n deleted: boolean;\n ip: string;\n isRemote: boolean;\n port: number;\n priority: number;\n protocol: string;\n transportId: string;\n url: string;\n }\n\n export interface BaseTrackStats {\n codec: string;\n packetsLost: number;\n ssrc: string;\n timestamp: number;\n trackId: string;\n }\n\n export interface LocalTrackStats extends BaseTrackStats {\n bytesSent: number;\n packetsSent: number;\n roundTripTime: number;\n }\n\n export interface LocalAudioTrackStats extends LocalTrackStats {\n audioLevel: number;\n jitter: number;\n }\n\n export interface RemoteTrackStats extends BaseTrackStats {\n bytesRecieved: number;\n packetsReceived: number;\n }\n\n export interface RemoteAudioTrackStats extends RemoteTrackStats {\n audioLevel: number;\n jitter: number;\n mos: number;\n }\n\n /**\n * WebRTC stats report. Contains diagnostics information about\n * `RTCPeerConnection`s and summarizes data for an ongoing call.\n */\n export interface StatsReport {\n iceCandidatePairStats: IceCandidatePairStats[];\n iceCandidateStats: IceCandidateStats[];\n localAudioTrackStats: LocalAudioTrackStats[];\n peerConnectionId: string;\n remoteAudioTrackStats: RemoteAudioTrackStats[];\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/module/type/Voice.js b/lib/module/type/Voice.js
new file mode 100644
index 00000000..1db917b1
--- /dev/null
+++ b/lib/module/type/Voice.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=Voice.js.map
\ No newline at end of file
diff --git a/lib/module/type/Voice.js.map b/lib/module/type/Voice.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/module/type/Voice.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/module/type/common.js b/lib/module/type/common.js
new file mode 100644
index 00000000..257b77af
--- /dev/null
+++ b/lib/module/type/common.js
@@ -0,0 +1,2 @@
+
+//# sourceMappingURL=common.js.map
\ No newline at end of file
diff --git a/lib/module/type/common.js.map b/lib/module/type/common.js.map
new file mode 100644
index 00000000..9ffd4b22
--- /dev/null
+++ b/lib/module/type/common.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
\ No newline at end of file
diff --git a/lib/typescript/AudioDevice.d.ts b/lib/typescript/AudioDevice.d.ts
new file mode 100644
index 00000000..e5f0f7f9
--- /dev/null
+++ b/lib/typescript/AudioDevice.d.ts
@@ -0,0 +1,74 @@
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import type { NativeAudioDeviceInfo } from './type/AudioDevice';
+import type { Uuid } from './type/common';
+/**
+ * Describes audio devices as reported by the native layer and allows the
+ * native selection of the described audio device.
+ *
+ * @remarks
+ * To fetch a list of available audio devices and the currently selected audio
+ * device, see {@link (Voice:class).getAudioDevices}.
+ *
+ * - See also the {@link (AudioDevice:namespace) | AudioDevice namespace} for
+ * types used by this class.
+ *
+ * @public
+ */
+export declare class AudioDevice {
+ /**
+ * The native-UUID of this object. This is generated by the native layer and
+ * is used to associate functionality between the JS and native layers.
+ *
+ * @internal
+ */
+ uuid: Uuid;
+ /**
+ * The type of the audio device.
+ */
+ type: AudioDevice.Type;
+ /**
+ * The name of the audio device.
+ */
+ name: string;
+ /**
+ * Audio device class constructor.
+ * @param audioDeviceInformation - A record describing an audio device.
+ *
+ * @internal
+ */
+ constructor({ uuid, type, name }: NativeAudioDeviceInfo);
+ /**
+ * Calling this method will select this audio device as the active audio
+ * device.
+ * @returns
+ * A `Promise` that
+ * - Resolves with `void` when the audio device has been successfully
+ * selected as the active audio device.
+ * - Rejects if the audio device cannot be selected.
+ */
+ select(): Promise;
+}
+/**
+ * Contains interfaces and enumerations associated with audio devices.
+ *
+ * @remarks
+ * - See also the {@link (AudioDevice:class) | AudioDevice class}.
+ *
+ * @public
+ */
+export declare namespace AudioDevice {
+ /**
+ * Audio device type enumeration. Describes all possible audio device types as
+ * reportable by the native layer.
+ */
+ enum Type {
+ Earpiece = "earpiece",
+ Speaker = "speaker",
+ Bluetooth = "bluetooth"
+ }
+}
diff --git a/lib/typescript/Call.d.ts b/lib/typescript/Call.d.ts
new file mode 100644
index 00000000..ccabe48f
--- /dev/null
+++ b/lib/typescript/Call.d.ts
@@ -0,0 +1,887 @@
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { EventEmitter } from 'eventemitter3';
+import type { RTCStats } from './';
+import type { NativeCallEventType, NativeCallInfo } from './type/Call';
+import type { CustomParameters } from './type/common';
+import type { TwilioError } from './error/TwilioError';
+import { CallMessage } from './CallMessage/CallMessage';
+import { IncomingCallMessage } from './CallMessage/IncomingCallMessage';
+import { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';
+/**
+ * Defines strict typings for all events emitted by {@link (Call:class)
+ * | Call objects}.
+ *
+ * @remarks
+ * Note that the `on` function is an alias for the `addListener` function.
+ * They share identical functionality and either may be used interchangeably.
+ *
+ * - See also the {@link (Call:class) | Call class}.
+ * - See also the {@link (Call:namespace) | Call namespace}.
+ *
+ * @public
+ */
+export declare interface Call {
+ /**
+ * ------------
+ * Emit Typings
+ * ------------
+ */
+ /** @internal */
+ emit(connectedEvent: Call.Event.Connected): boolean;
+ /** @internal */
+ emit(connectFailureEvent: Call.Event.ConnectFailure, error: TwilioError): boolean;
+ /** @internal */
+ emit(reconnectingEvent: Call.Event.Reconnecting, error: TwilioError): boolean;
+ /** @internal */
+ emit(reconnectedEvent: Call.Event.Reconnected): boolean;
+ /** @internal */
+ emit(disconnectedEvent: Call.Event.Disconnected, error?: TwilioError): boolean;
+ /** @internal */
+ emit(ringingEvent: Call.Event.Ringing): boolean;
+ /** @internal */
+ emit(qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged, currentQualityWarnings: Call.QualityWarning[], previousQualityWarnings: Call.QualityWarning[]): boolean;
+ /** @internal */
+ emit(messageReceivedEvent: Call.Event.MessageReceived, incomingCallMessage: IncomingCallMessage): boolean;
+ /**
+ * ----------------
+ * Listener Typings
+ * ----------------
+ */
+ /**
+ * Connected event. Raised when the call has successfully connected.
+ *
+ * @example
+ * ```typescript
+ * call.addListener(Call.Event.Connected, () => {
+ * // call has been connected
+ * });
+ * ```
+ *
+ * @param connectedEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(connectedEvent: Call.Event.Connected, listener: Call.Listener.Connected): this;
+ /**
+ * {@inheritDoc (Call:interface).(addListener:1)}
+ */
+ on(connectedEvent: Call.Event.Connected, listener: Call.Listener.Connected): this;
+ /**
+ * Connect failure event. Raised when the call has failed to connect.
+ *
+ * @example
+ * ```typescript
+ * call.addListener(Call.Event.ConnectFailure, (error) => {
+ * // call was unable to connect, handle error
+ * });
+ * ```
+ *
+ * @param connectFailureEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(connectFailureEvent: Call.Event.ConnectFailure, listener: Call.Listener.ConnectFailure): this;
+ /**
+ * {@inheritDoc (Call:interface).(addListener:2)}
+ */
+ on(connectFailureEvent: Call.Event.ConnectFailure, listener: Call.Listener.ConnectFailure): this;
+ /**
+ * Reconnecting event. Raised when the call is reconnecting.
+ *
+ * @example
+ * ```typescript
+ * call.addListener(Call.Event.Reconnecting, (error) => {
+ * // call is attempting to reconnect, handle error
+ * });
+ * ```
+ *
+ * @param reconnectingEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(reconnectingEvent: Call.Event.Reconnecting, listener: Call.Listener.Reconnecting): this;
+ /**
+ * {@inheritDoc (Call:interface).(addListener:3)}
+ */
+ on(reconnectingEvent: Call.Event.Reconnecting, listener: Call.Listener.Reconnecting): this;
+ /**
+ * Reconnected event. Raised when the call has recovered and reconnected.
+ *
+ * @example
+ * ```typescript
+ * call.addListener(Call.Event.Reconnected, () => {
+ * // call has reconnected
+ * });
+ * ```
+ *
+ * @param reconnectedEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(reconnectedEvent: Call.Event.Reconnected, listener: Call.Listener.Reconnected): this;
+ /**
+ * {@inheritDoc (Call:interface).(addListener:4)}
+ */
+ on(reconnectedEvent: Call.Event.Reconnected, listener: Call.Listener.Reconnected): this;
+ /**
+ * Disconnected event. Raised when the call has disconnected.
+ *
+ * @remarks
+ * This event can occur in "naturally" disconnected calls and calls
+ * disconnected from issues such as network problems. If the SDK has detected
+ * an issue that has caused the call to disconnect, then the error parameter
+ * will be defined, otherwise it will be undefined.
+ *
+ * @example
+ * ```typescript
+ * call.addListener(Call.Event.Disconnected, (error) => {
+ * // call has disconnected
+ * // if a natural disconnect occurred, then error is `undefined`
+ * // if an unnatural disconnect occurred, then error is defined
+ * });
+ * ```
+ *
+ * @param disconnectedEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(disconnectedEvent: Call.Event.Disconnected, listener: Call.Listener.Disconnected): this;
+ /**
+ * {@inheritDoc (Call:interface).(addListener:5)}
+ */
+ on(disconnectedEvent: Call.Event.Disconnected, listener: Call.Listener.Disconnected): this;
+ /**
+ * Ringing event. Raised when the call has begun to ring.
+ *
+ * @example
+ * ```typescript
+ * call.addListener(Call.Event.Ringing, () => {
+ * // call is ringing
+ * });
+ * ```
+ *
+ * @param ringingEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(ringingEvent: Call.Event.Ringing, listener: Call.Listener.Ringing): this;
+ /**
+ * {@inheritDoc (Call:interface).(addListener:6)}
+ */
+ on(ringingEvent: Call.Event.Ringing, listener: Call.Listener.Ringing): this;
+ /**
+ * Quality warnings changed event. Raised when a call quality warning is set
+ * or unset. All "ongoing" call quality warnings are passed to the invoked
+ * listener function.
+ *
+ * @example
+ * ```typescript
+ * call.addListener(
+ * Call.Event.QualityWarningsChanged,
+ * (
+ * currentWarnings: Call.QualityWarning[],
+ * previousWarnings: Call.QualityWarning[]
+ * ) => {
+ * // call quality warnings have changed
+ * }
+ * );
+ * ```
+ *
+ * @param qualityWarningsChangedEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged, listener: Call.Listener.QualityWarningsChanged): this;
+ /**
+ * {@inheritDoc (Call:interface).(addListener:7)}
+ */
+ on(qualityWarningsChangedEvent: Call.Event.QualityWarningsChanged, listener: Call.Listener.QualityWarningsChanged): this;
+ /**
+ * MessageReceived event. Raised when a {@link IncomingCallMessage} is
+ * received.
+ *
+ * @example
+ * ```typescript
+ * call.addListener(Call.Event.MessageReceived, (message) => {
+ * // callMessage received
+ * })
+ * ```
+ *
+ * @param messageReceivedEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The callMessage object
+ */
+ addListener(messageReceivedEvent: Call.Event.MessageReceived, listener: Call.Listener.MessageReceived): this;
+ /** {@inheritDoc (Call:interface).(addListener:8)} */
+ on(callMessageEvent: Call.Event.MessageReceived, listener: Call.Listener.MessageReceived): this;
+ /**
+ * Generic event listener typings.
+ * @param callEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(callEvent: Call.Event, listener: Call.Listener.Generic): this;
+ /**
+ * {@inheritDoc (Call:interface).(addListener:9)}
+ */
+ on(callEvent: Call.Event, listener: Call.Listener.Generic): this;
+}
+/**
+ * Provides access to information about a call, including the call parameters,
+ * and exposes functionality for a call such as disconnecting, muting, and
+ * holding.
+ *
+ * @remarks
+ * Note that the call information is fetched as soon as possible from the native
+ * layer, but there is no guarantee that all information is immediately
+ * available. Methods such as `Call.getFrom()` or `Call.getTo()` may return
+ * `undefined`.
+ *
+ * As call events are received from the native layer, call information will
+ * propagate from the native layer to the JS layer and become available.
+ * Therefore, it is good practice to read information from the call after an
+ * event occurs, or as events occur.
+ *
+ * - See the {@link (Call:namespace).Event} enum for events emitted by `Call`
+ * objects.
+ * - See the {@link (Call:interface) | Call interface} for overloaded event
+ * listening methods.
+ * - See the {@link (Call:namespace) | Call namespace} for types and
+ * enumerations used by this class.
+ *
+ * @public
+ */
+export declare class Call extends EventEmitter {
+ /**
+ * The `Uuid` of this call. Used to identify calls between the JS and native
+ * layer so we can associate events and native functionality between the
+ * layers.
+ */
+ private _uuid;
+ /**
+ * Call custom parameters.
+ */
+ private _customParameters;
+ /**
+ * Call `from` parameter.
+ */
+ private _from?;
+ /**
+ * Initial `connected` timestamp. Milliseconds since epoch.
+ */
+ private _initialConnectedTimestamp?;
+ /**
+ * A boolean representing if the call is currently muted.
+ */
+ private _isMuted?;
+ /**
+ * A boolean representing if the call is currently on hold.
+ */
+ private _isOnHold?;
+ /**
+ * A string representing the SID of this call.
+ */
+ private _sid?;
+ /**
+ * The current state of the call.
+ *
+ * @remarks
+ * See {@link (Call:namespace).State}.
+ */
+ private _state;
+ /**
+ * Call `to` parameter.
+ */
+ private _to?;
+ /**
+ * Handlers for native call events. Set upon construction so we can
+ * dynamically bind events to handlers.
+ *
+ * @privateRemarks
+ * This is done by the constructor so this mapping isn't made every time the
+ * {@link (Call:class)._handleNativeEvent} function is invoked.
+ */
+ private _nativeEventHandler;
+ /**
+ * Constructor for the {@link (Call:class) | Call class}. This should not be
+ * invoked by third-party code. All instances of the
+ * {@link (Call:class) | Call class} should be made by the SDK and emitted by
+ * {@link (Voice:class) | Voice objects}.
+ *
+ * @param nativeCallInfo - An object containing all of the data from the
+ * native layer necessary to fully describe a call, as well as invoke native
+ * functionality for the call.
+ *
+ * @internal
+ */
+ constructor({ uuid, customParameters, from, sid, state, to, isMuted, isOnHold, initialConnectedTimestamp, }: NativeCallInfo);
+ /**
+ * This intermediate native call event handler acts as a "gate", only
+ * executing the actual call event handler (such as `Connected`) if this call
+ * object matches the `Uuid` of the call that had an event raised.
+ * @param nativeCallEvent - A call event directly from the native layer.
+ */
+ private _handleNativeEvent;
+ /**
+ * Helper function to update the state of the call when a call event occurs
+ * that necessitates an update, i.e. upon a
+ * {@link (Call:namespace).Event.Connected | Connected event} we want to
+ * update the state of the call to also reflect the
+ * {@link (Call:namespace).State.Connected | Connected state}.
+ * @param nativeCallEvent - The native call event.
+ */
+ private _update;
+ /**
+ * Handler for the the {@link (Call:namespace).Event.Connected} event.
+ * @param nativeCallEvent - The native call event.
+ */
+ private _handleConnectedEvent;
+ /**
+ * Handler for the the {@link (Call:namespace).Event.ConnectFailure} event.
+ * @param nativeCallEvent - The native call event.
+ */
+ private _handleConnectFailureEvent;
+ /**
+ * Handler for the the {@link (Call:namespace).Event.Disconnected} event.
+ * @param nativeCallEvent - The native call event.
+ */
+ private _handleDisconnectedEvent;
+ /**
+ * Handler for the the {@link (Call:namespace).Event.Reconnecting} event.
+ * @param nativeCallEvent - The native call event.
+ */
+ private _handleReconnectingEvent;
+ /**
+ * Handler for the the {@link (Call:namespace).Event.Reconnected} event.
+ * @param nativeCallEvent - The native call event.
+ */
+ private _handleReconnectedEvent;
+ /**
+ * Handler for the the {@link (Call:namespace).Event.Ringing} event.
+ * @param nativeCallEvent - The native call event.
+ */
+ private _handleRingingEvent;
+ /**
+ * Handler for the the {@link (Call:namespace).Event.QualityWarningsChanged}
+ * event.
+ * @param nativeCallEvent - The native call event.
+ */
+ private _handleQualityWarningsChangedEvent;
+ /**
+ * Handler for the {@link (Call:namespace).Event.MessageReceived} event.
+ * @param nativeCallEvent - The native call event.
+ */
+ private _handleMessageReceivedEvent;
+ /**
+ * Disconnect this side of the call.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the call has disconnected.
+ * - Rejects if the native layer cannot disconnect the call.
+ */
+ disconnect(): Promise;
+ /**
+ * Get the mute status of this side of the call.
+ * @returns
+ * - A boolean representing the muted status of the call.
+ * - `undefined` if the call state has not yet been received from the native
+ * layer.
+ */
+ isMuted(): boolean | undefined;
+ /**
+ * Get the hold status of this side of the call.
+ * @returns
+ * - A boolean representing the hold status of the call.
+ * - `undefined` if the call state has not yet been received from the native
+ * layer.
+ */
+ isOnHold(): boolean | undefined;
+ /**
+ * Return a `Record` of custom parameters given to this call.
+ * @returns
+ * - A `Record` of custom parameters.
+ */
+ getCustomParameters(): CustomParameters;
+ /**
+ * Get the value of the `from` parameter given to this call.
+ * @returns
+ * - A `String` representing the `from` parameter.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+ getFrom(): string | undefined;
+ /**
+ * Get the timestamp (milliseconds since epoch) of the call connected event.
+ * @returns
+ * - A `number` representing the timestamp.
+ * - `undefined` if the call has not yet connected.
+ */
+ getInitialConnectedTimestamp(): Date | undefined;
+ /**
+ * Get the call `SID`.
+ * @returns
+ * - A `String` representing the `SID` of the call.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+ getSid(): string | undefined;
+ /**
+ * Get the state of the call object, such as {@link (Call:namespace).State.Connected} or
+ * {@link (Call:namespace).State.Disconnected}.
+ * @returns
+ * - A {@link (Call:namespace).State}.
+ */
+ getState(): Call.State;
+ /**
+ * Gets the `PeerConnection` `WebRTC` stats for the ongoing call.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a {@link RTCStats.StatsReport} object representing the
+ * `WebRTC` `PeerConnection` stats of a call.
+ * - Rejects when a {@link RTCStats.StatsReport} cannot be generated for a
+ * call.
+ */
+ getStats(): Promise;
+ /**
+ * Get the value of the `to` parameter given to this call.
+ * @returns
+ * - A `String` representing the `to` parameter.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+ getTo(): string | undefined;
+ /**
+ * Put this end of the call on hold or not on hold.
+ *
+ * @example
+ * To put a call on hold
+ * ```typescript
+ * call.hold(true);
+ * ```
+ * @example
+ * To take a call off hold
+ * ```typescript
+ * call.hold(false);
+ * ```
+ *
+ * @param hold - A `boolean` representing whether or not to put this end of
+ * the call on hold.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the hold status when the call is put on hold or not on
+ * hold.
+ * - Rejects when the call is not able to be put on hold or not on hold.
+ */
+ hold(hold: boolean): Promise;
+ /**
+ * Mute or unmute this end of the call.
+ *
+ * @example
+ * To mute a call
+ * ```typescript
+ * call.mute(true);
+ * ```
+ *
+ * @example
+ * To unmute a call
+ * ```typescript
+ * call.mute(false);
+ * ```
+ *
+ * @param mute - A `boolean` representing whether or not to mute this end of
+ * the call.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the muted status of the call when the call is muted or
+ * unmuted.
+ * - Rejects when the call is not able to be muted or unmuted.
+ */
+ mute(mute: boolean): Promise;
+ /**
+ * Send DTMF digits.
+ *
+ * @example
+ * To send the `0` dialtone:
+ * ```typescript
+ * call.sendDigits('0');
+ * ```
+ *
+ * @example
+ * To send the `0` and then `1` dialtone:
+ * ```typescript
+ * call.sendDigits('01');
+ * ```
+ *
+ * @param digits - A sequence of DTMF digits in a string.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves when the DTMF digits have been sent.
+ * - Rejects when DTMF tones are not able to be sent.
+ */
+ sendDigits(digits: string): Promise;
+ /**
+ * Send a CallMessage.
+ *
+ * @example
+ * To send a user-defined-message
+ * ```typescript
+ * const outgoingCallMessage: OutgoingCallMessage = await call.sendMessage({
+ * content: { key1: 'This is a messsage from the parent call' },
+ * contentType: 'application/json',
+ * messageType: 'user-defined-message'
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
+ * // outgoingCallMessage failed, handle error
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
+ * // outgoingCallMessage sent
+ * });
+ * ```
+ *
+ * @param message The call message to send.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the OutgoingCallMessage object.
+ * - Rejects when the message is unable to be sent.
+ */
+ sendMessage(message: CallMessage): Promise;
+ /**
+ * Post feedback about a call.
+ *
+ * @example
+ * To report that a call had very significant audio latency:
+ * ```typescript
+ * call.postFeedback(Call.Score.Five, Call.Issue.AudioLatency);
+ * ```
+ *
+ * @param score - A score representing the serverity of the issue being
+ * reported.
+ * @param issue - The issue being reported.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the feedback has been posted.
+ * - Rejects when the feedback is unable to be sent.
+ */
+ postFeedback(score: Call.Score, issue: Call.Issue): Promise;
+}
+/**
+ * Namespace for enumerations and types used by
+ * {@link (Call:class) | Call objects}.
+ *
+ * @remarks
+ * - See also the {@link (Call:class) | Call class}.
+ * - See also the {@link (Call:interface) | Call interface}.
+ *
+ * @public
+ */
+export declare namespace Call {
+ /**
+ * Enumeration of all event strings emitted by {@link (Call:class)} objects.
+ */
+ enum Event {
+ /**
+ * Event string for the `Connected` event.
+ * See {@link (Call:interface).(addListener:1)}.
+ */
+ 'Connected' = "connected",
+ /**
+ * Event string for the `ConnectedFailure` event.
+ * See {@link (Call:interface).(addListener:2)}.
+ */
+ 'ConnectFailure' = "connectFailure",
+ /**
+ * Event string for the `Reconnecting` event.
+ * See {@link (Call:interface).(addListener:3)}.
+ */
+ 'Reconnecting' = "reconnecting",
+ /**
+ * Event string for the `Reconnected` event.
+ * See {@link (Call:interface).(addListener:4)}.
+ */
+ 'Reconnected' = "reconnected",
+ /**
+ * Event string for the `Disconnected` event.
+ * See {@link (Call:interface).(addListener:5)}.
+ */
+ 'Disconnected' = "disconnected",
+ /**
+ * Event string for the `Ringing` event.
+ * See {@link (Call:interface).(addListener:6)}.
+ */
+ 'Ringing' = "ringing",
+ /**
+ * Event string for the `QualityWarningsChanged` event.
+ * See {@link (Call:interface).(addListener:7)}.
+ */
+ 'QualityWarningsChanged' = "qualityWarningsChanged",
+ /**
+ * Event string for the `MessageReceived` event.
+ * See {@link (Call:interface).(addListener:8)}
+ */
+ 'MessageReceived' = "messageReceived"
+ }
+ /**
+ * An enumeration of all possible {@link (Call:class) | Call object} states.
+ */
+ enum State {
+ /**
+ * Call `Connected` state.
+ *
+ * Occurs when the `Connected` and `Reconnected` event is raised.
+ *
+ * @remarks
+ *
+ * See {@link (Call:interface).(addListener:1)}.
+ *
+ * See {@link (Call:interface).(addListener:4)}.
+ */
+ 'Connected' = "connected",
+ /**
+ * Call `Connecting` state.
+ *
+ * The default state of an outgoing call.
+ */
+ 'Connecting' = "connecting",
+ /**
+ * Call `Disconnected` state.
+ *
+ * Occurs when the `Disconnected` or `ConnectFailure` event is raised.
+ *
+ * @remarks
+ *
+ * See {@link (Call:interface).(addListener:5)}.
+ *
+ * See {@link (Call:interface).(addListener:2)}.
+ */
+ 'Disconnected' = "disconnected",
+ /**
+ * Call `Reconnecting` state.
+ *
+ * Occurs when the `Reconnecting` event is raised.
+ *
+ * @remarks
+ *
+ * See {@link (Call:interface).(addListener:3)}.
+ */
+ 'Reconnecting' = "reconnecting",
+ /**
+ * Call `Ringing` state. Occurs when the `Ringing` event is raised.
+ *
+ * @remarks
+ *
+ * See {@link (Call:interface).(addListener:6)}.
+ */
+ 'Ringing' = "ringing"
+ }
+ /**
+ * Mapping of {@link (Call:namespace).Event | Call events} to
+ * {@link (Call:namespace).State | Call states}.
+ *
+ * @remarks
+ * Note that this mapping is not a 1:1 bijection. Not every event coming from
+ * the native layer has a relevant state, and some events share a state.
+ * Therefore, this `Record` needs to be marked as `Partial` and
+ * undefined-checking logic is needed when using this mapping.
+ *
+ * @internal
+ */
+ const EventTypeStateMap: Partial>;
+ /**
+ * An enumeration of all call quality-warning types.
+ */
+ enum QualityWarning {
+ /**
+ * Raised when the call detects constant audio input, such as silence.
+ */
+ ConstantAudioInputLevel = "constant-audio-input-level",
+ /**
+ * Raised when the network encounters high jitter.
+ */
+ HighJitter = "high-jitter",
+ /**
+ * Raised when the network encounters high packet loss.
+ */
+ HighPacketLoss = "high-packet-loss",
+ /**
+ * Raised when the network encounters high packet round-trip-time.
+ */
+ HighRtt = "high-rtt",
+ /**
+ * Raised when the call detects a low mean-opinion-score or MOS.
+ */
+ LowMos = "low-mos"
+ }
+ /**
+ * An enumeration of all scores that could be used to rate the experience of
+ * a call or issues encountered during the call.
+ */
+ enum Score {
+ /**
+ * An issue was not encountered or there is no desire to report said issue.
+ */
+ NotReported = 0,
+ /**
+ * An issue had severity approximately 1/5.
+ */
+ One = 1,
+ /**
+ * An issue had severity approximately 2/5.
+ */
+ Two = 2,
+ /**
+ * An issue had severity approximately 3/5.
+ */
+ Three = 3,
+ /**
+ * An issue had severity approximately 4/5.
+ */
+ Four = 4,
+ /**
+ * An issue had severity approximately 5/5.
+ */
+ Five = 5
+ }
+ /**
+ * An enumeration of call issues that can be reported.
+ */
+ enum Issue {
+ /**
+ * No issue is reported.
+ */
+ NotReported = "not-reported",
+ /**
+ * The call was dropped unexpectedly.
+ */
+ DroppedCall = "dropped-call",
+ /**
+ * The call encountered significant audio latency.
+ */
+ AudioLatency = "audio-latency",
+ /**
+ * One party of the call could not hear the other callee.
+ */
+ OneWayAudio = "one-way-audio",
+ /**
+ * Call audio was choppy.
+ */
+ ChoppyAudio = "choppy-audio",
+ /**
+ * Call audio had significant noise.
+ */
+ NoisyCall = "noisy-call",
+ /**
+ * Call audio had significant echo.
+ */
+ Echo = "echo"
+ }
+ /**
+ * Listener types for all events emitted by a
+ * {@link (Call:class) | Call object.}
+ */
+ namespace Listener {
+ /**
+ * Connected event listener. This should be the function signature of any
+ * event listener bound to the {@link (Call:namespace).Event.Connected}
+ * event.
+ *
+ * @remarks
+ * See {@link (Call:interface).(addListener:1)}.
+ */
+ type Connected = () => void;
+ /**
+ * Connect failure event listener. This should be the function signature of
+ * any event listener bound to the
+ * {@link (Call:namespace).Event.ConnectFailure} event.
+ *
+ * @remarks
+ * See {@link (Call:interface).(addListener:2)}.
+ *
+ * See {@link TwilioErrors} for all error classes.
+ */
+ type ConnectFailure = (error: TwilioError) => void;
+ /**
+ * Reconnecting event listener. This should be the function signature of any
+ * event listener bound to the {@link (Call:namespace).Event.Reconnecting}
+ * event.
+ *
+ * @remarks
+ * See {@link (Call:interface).(addListener:3)}.
+ *
+ * See {@link TwilioErrors} for all error classes.
+ */
+ type Reconnecting = (error: TwilioError) => void;
+ /**
+ * Reconnected event listener. This should be the function signature of any
+ * event listener bound to the {@link (Call:namespace).Event.Reconnected}
+ * event.
+ *
+ * @remarks
+ * See {@link (Call:interface).(addListener:4)}.
+ */
+ type Reconnected = () => void;
+ /**
+ * Disconnected event listener. This should be the function signature of any
+ * event listener bound to the {@link (Call:namespace).Event.Disconnected}
+ * event.
+ *
+ * @remarks
+ * See {@link (Call:interface).(addListener:5)}.
+ *
+ * See {@link TwilioErrors} for all error classes.
+ */
+ type Disconnected = (error?: TwilioError) => void;
+ /**
+ * Ringing event listener. This should be the function signature of any
+ * event listener bound to the {@link (Call:namespace).Event.Ringing} event.
+ *
+ * @remarks
+ * See {@link (Call:interface).(addListener:6)}.
+ */
+ type Ringing = () => void;
+ /**
+ * Quality warnings changed event listener. This should be the function
+ * signature of any event listener bound to the
+ * {@link (Call:namespace).Event.QualityWarningsChanged} event.
+ *
+ * @remarks
+ * See {@link (Call:interface).(addListener:7)}.
+ */
+ type QualityWarningsChanged = (currentQualityWarnings: Call.QualityWarning[], previousQualityWarnings: Call.QualityWarning[]) => void;
+ /**
+ * CallMessage received event listener. This should be the function signature of
+ * any event listener bound to the {@link (Call:namespace).Event.MessageReceived} event.
+ *
+ * @remarks
+ * See {@link (Call:interface).(addListener:8)}.
+ */
+ type MessageReceived = (incomingCallMessage: IncomingCallMessage) => void;
+ /**
+ * Generic event listener. This should be the function signature of any
+ * event listener bound to any call event.
+ *
+ * @remarks
+ * See {@link (Call:interface).(addListener:9)}.
+ */
+ type Generic = (...args: any[]) => void;
+ }
+}
diff --git a/lib/typescript/CallInvite.d.ts b/lib/typescript/CallInvite.d.ts
new file mode 100644
index 00000000..762d1b92
--- /dev/null
+++ b/lib/typescript/CallInvite.d.ts
@@ -0,0 +1,484 @@
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { EventEmitter } from 'eventemitter3';
+import { Call } from './Call';
+import { TwilioError } from './error/TwilioError';
+import type { NativeCallInviteInfo } from './type/CallInvite';
+import type { CustomParameters } from './type/common';
+import { CallMessage } from './CallMessage/CallMessage';
+import { IncomingCallMessage } from './CallMessage/IncomingCallMessage';
+import { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';
+/**
+ * Defines strict typings for all events emitted by {@link (CallInvite:class)
+ * | CallInvite objects}.
+ *
+ * @remarks
+ * Note that the `on` function is an alias for the `addListener` function.
+ * They share identical functionality and either may be used interchangeably.
+ *
+ * - See also the {@link (CallInvite:class) | CallInvite class}.
+ * - See also the {@link (CallInvite:namespace) | CallInvite namespace}.
+ *
+ * @public
+ */
+export declare interface CallInvite {
+ /**
+ * ------------
+ * Emit Typings
+ * ------------
+ */
+ /** @internal */
+ emit(acceptedEvent: CallInvite.Event.Accepted, call: Call): boolean;
+ /** @internal */
+ emit(rejectedEvent: CallInvite.Event.Rejected): boolean;
+ /** @internal */
+ emit(cancelledEvent: CallInvite.Event.Cancelled, error?: TwilioError): boolean;
+ /** @internal */
+ emit(notificationTappedEvent: CallInvite.Event.NotificationTapped): boolean;
+ /** @internal */
+ emit(messageReceivedEvent: CallInvite.Event.MessageReceived, incomingCallMessage: IncomingCallMessage): boolean;
+ /**
+ * ----------------
+ * Listener Typings
+ * ----------------
+ */
+ /**
+ * Accepted event. Raised when the call invite has been accepted.
+ *
+ * @example
+ * ```ts
+ * voice.on(Voice.Event.CallInvite, (callInvite) => {
+ * callInvite.on(CallInvite.Event.Accepted, (call) => {
+ * // the call invite was accepted through either the native layer
+ * // or the js layer
+ * });
+ * });
+ * ```
+ *
+ * @remarks
+ *
+ * @param acceptedEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call invite object.
+ */
+ addListener(acceptedEvent: CallInvite.Event.Accepted, listener: CallInvite.Listener.Accepted): this;
+ /** {@inheritDoc (CallInvite:interface).(addListener:1)} */
+ on(acceptedEvent: CallInvite.Event.Accepted, listener: CallInvite.Listener.Accepted): this;
+ /**
+ * Rejected event. Raised when the call invite has been rejected.
+ *
+ * @example
+ * ```ts
+ * voice.on(Voice.Event.CallInvite, (callInvite) => {
+ * callInvite.on(CallInvite.Event.Rejected, () => {
+ * // the call invite was rejected through either the native layer
+ * // or the js layer
+ * });
+ * });
+ * ```
+ *
+ * @remarks
+ *
+ * @param rejectedEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call invite object.
+ */
+ addListener(rejectedEvent: CallInvite.Event.Rejected, listener: CallInvite.Listener.Rejected): this;
+ /** {@inheritDoc (CallInvite:interface).(addListener:2)} */
+ on(rejectedEvent: CallInvite.Event.Rejected, listener: CallInvite.Listener.Rejected): this;
+ /**
+ * Cancelled event. Raised when the call invite has been cancelled.
+ *
+ * @example
+ * ```ts
+ * voice.on(Voice.Event.CallInvite, (callInvite) => {
+ * callInvite.on(CallInvite.Event.Cancelled, (error) => {
+ * // the call invite was cancelled
+ * });
+ * });
+ * ```
+ *
+ * @remarks
+ *
+ * @param cancelledEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call invite object.
+ */
+ addListener(cancelledEvent: CallInvite.Event.Cancelled, listener: CallInvite.Listener.Cancelled): this;
+ /** {@inheritDoc (CallInvite:interface).(addListener:3)} */
+ on(cancelledEvent: CallInvite.Event.Cancelled, listener: CallInvite.Listener.Cancelled): this;
+ /**
+ * Notification tapped event. Raised when the call invite notification has
+ * been tapped.
+ *
+ * @example
+ * ```ts
+ * voice.on(Voice.Event.CallInvite, (callInvite) => {
+ * callInvite.on(CallInvite.Event.NotificationTapped, () => {
+ * // the call invite notification was tapped
+ * });
+ * });
+ * ```
+ *
+ * @remarks
+ * This API is Android specific.
+ *
+ * @param notificationTappedEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call invite object.
+ */
+ addListener(notificationTappedEvent: CallInvite.Event.NotificationTapped, listener: CallInvite.Listener.NotificationTapped): this;
+ /** {@inheritDoc (CallInvite:interface).(addListener:4)} */
+ on(notificationTappedEvent: CallInvite.Event.NotificationTapped, listener: CallInvite.Listener.NotificationTapped): this;
+ /**
+ * MessageReceived event. Raised when a {@link IncomingCallMessage} is
+ * received.
+ *
+ * @example
+ * ```typescript
+ * voice.on(Voice.Event.CallInvite, (callInvite) => {
+ * callInvite.addListener(CallInvite.Event.MessageReceived, (message) => {
+ * // callMessage received
+ * });
+ * });
+ * ```
+ *
+ * @param messageReceivedEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The callMessage object
+ */
+ addListener(messageReceivedEvent: CallInvite.Event.MessageReceived, listener: CallInvite.Listener.MessageReceived): this;
+ /** {@inheritDoc (CallInvite:interface).(addListener:5)} */
+ on(messageReceivedEvent: CallInvite.Event.MessageReceived, listener: CallInvite.Listener.MessageReceived): this;
+}
+/**
+ * Provides access to information about a call invite, including the call
+ * parameters, and exposes functionality to accept or decline a call.
+ *
+ * @remarks
+ *
+ * Note that when a `CallInvite` is acted upon (i.e. when
+ * {@link (CallInvite:class).accept} or {@link (CallInvite:class).reject} is
+ * invoked), then the `CallInvite` is "settled".
+ *
+ * The state of the `CallInvite` is changed from
+ * {@link (CallInvite:namespace).State.Pending} to
+ * {@link (CallInvite:namespace).State.Accepted} or
+ * {@link (CallInvite:namespace).State.Rejected} and the `CallInvite` can no
+ * longer be acted upon further.
+ *
+ * Further action after "settling" a `CallInvite` will throw an error.
+ *
+ * - See the {@link (CallInvite:namespace) | CallInvite namespace} for
+ * enumerations and types used by this class.
+ *
+ * @public
+ */
+export declare class CallInvite extends EventEmitter {
+ /**
+ * The current state of the call invite.
+ *
+ * @remarks
+ * See {@link (CallInvite:namespace).State}.
+ */
+ private _state;
+ /**
+ * The `Uuid` of this call invite. Used to identify calls between the JS and
+ * native layer so we can associate events and native functionality between
+ * the layers.
+ */
+ private _uuid;
+ /**
+ * A string representing the SID of this call.
+ */
+ private _callSid;
+ /**
+ * Call custom parameters.
+ */
+ private _customParameters;
+ /**
+ * Call `from` parameter.
+ */
+ private _from;
+ /**
+ * Call `to` parameter.
+ */
+ private _to;
+ /**
+ * These objects should not be instantiated by consumers of the SDK. All
+ * instances of the `CallInvite` class should be emitted by the SDK.
+ *
+ * @param nativeCallInviteInfo - A dataobject containing the native
+ * information of a call invite.
+ * @param state - Mocking options for testing.
+ *
+ * @internal
+ */
+ constructor({ uuid, callSid, customParameters, from, to }: NativeCallInviteInfo, state: CallInvite.State);
+ /**
+ * This helper function serves as both a runtime-check error log and a
+ * compile-time type-guard. If the switch-case statement below is non-
+ * exhaustive, then the type passed to this function will _not_ have type
+ * `never`.
+ */
+ private _handleUnexpectedCallInviteEventType;
+ /**
+ * This intermediate native call invite event handler acts as a "gate", only
+ * executing the actual call invite event handler (such as `Accepted`) if
+ * this call invite object matches the `Uuid` of the call invite that had an
+ * event raised.
+ * @param nativeCallInviteEvent - A call invite event directly from the native
+ * layer.
+ */
+ private _handleNativeCallInviteEvent;
+ /**
+ * Handler for the {@link (CallInvite:namespace).Event.MessageReceived} event.
+ * @param nativeCallEvent - The native call event.
+ */
+ private _handleMessageReceivedEvent;
+ /**
+ * Handle when this call invite is accepted.
+ */
+ private _handleCallInviteAccepted;
+ /**
+ * Handle when this call invite is rejected.
+ */
+ private _handleCallInviteRejected;
+ /**
+ * Handle when a call invite is cancelled.
+ */
+ private _handleCallInviteCancelled;
+ /**
+ * Handle when a call invite notification is tapped.
+ */
+ private _handleCallInviteNotificationTapped;
+ /**
+ * Accept a call invite. Sets the state of this call invite to
+ * {@link (CallInvite:namespace).State.Accepted}.
+ * @param options - Options to pass to the native layer when accepting the
+ * call.
+ * @returns
+ * - Resolves when a {@link (Call:class) | Call object} associated with this
+ * {@link (CallInvite:class)} has been created.
+ */
+ accept(options?: CallInvite.AcceptOptions): Promise;
+ /**
+ * Reject a call invite. Sets the state of this call invite to
+ * {@link (CallInvite:namespace).State.Rejected}.
+ * @returns
+ * - Resolves when the {@link (CallInvite:class)} has been rejected.
+ */
+ reject(): Promise;
+ /**
+ * Check if a `CallInvite` is valid.
+ *
+ * @returns
+ * - TODO
+ *
+ * @alpha
+ */
+ isValid(): Promise;
+ /**
+ * Get the call SID associated with this `CallInvite` class.
+ * @returns - A string representing the call SID.
+ */
+ getCallSid(): string;
+ /**
+ * Get the custom parameters of the call associated with this `CallInvite`
+ * class.
+ * @returns - A `Record` of custom parameters.
+ */
+ getCustomParameters(): CustomParameters;
+ /**
+ * Get the `from` parameter of the call associated with this `CallInvite`
+ * class.
+ * @returns - A `string` representing the `from` parameter.
+ */
+ getFrom(): string;
+ /**
+ * Get the `state` of the `CallInvite`.
+ * @returns - The `state` of this `CallInvite`.
+ */
+ getState(): CallInvite.State;
+ /**
+ * Get the `to` parameter of the call associated with this `CallInvite`
+ * class.
+ * @returns - A `string` representing the `to` parameter.
+ */
+ getTo(): string;
+ /**
+ * Send a CallMessage.
+ *
+ * @example
+ * To send a user-defined-message
+ * ```typescript
+ * const outgoingCallMessage: OutgoingCallMessage = await callInvite.sendMessage({
+ * content: { key1: 'This is a messsage from the parent call invite' },
+ * contentType: 'application/json',
+ * messageType: 'user-defined-message'
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
+ * // outgoingCallMessage failed, handle error
+ * });
+ *
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
+ * // outgoingCallMessage sent
+ * });
+ * ```
+ *
+ * @param message The call message to send.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with the OutgoingCallMessage object.
+ * - Rejects when the message is unable to be sent.
+ */
+ sendMessage(message: CallMessage): Promise;
+ /**
+ * Update the caller name displayed in the iOS system incoming call screen.
+ *
+ * @param newHandle - The new value of the caller's name.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * This API is specific to iOS and unavailable in Android. Invoke this method
+ * after the incoming call has been reported to CallKit and before the call
+ * has been accepted. For example, perform an async request to your app server
+ * to fetch the full name of the caller and use this method to replace the
+ * default caller name in `from`.
+ *
+ * @returns
+ * - Resolves when the caller name has been updated.
+ */
+ updateCallerHandle(newHandle: string): Promise;
+}
+/**
+ * Provides enumerations and types used by a {@link (CallInvite:class)
+ * | CallInvite object}.
+ *
+ * @remarks
+ * - See also the {@link (CallInvite:class) | CallInvite class}.
+ *
+ * @public
+ */
+export declare namespace CallInvite {
+ /**
+ * Options to pass to the native layer when accepting the call.
+ */
+ interface AcceptOptions {
+ }
+ /**
+ * An enumeration of {@link (CallInvite:class)} states.
+ */
+ enum State {
+ /**
+ * State of a call invite when it has not been acted upon.
+ */
+ Pending = "pending",
+ /**
+ * State of a call invite when it has been accepted.
+ */
+ Accepted = "accepted",
+ /**
+ * State of a call invite when it has been rejected.
+ */
+ Rejected = "rejected",
+ /**
+ * State of a call invite when it has been cancelled.
+ */
+ Cancelled = "cancelled"
+ }
+ /**
+ * Enumeration of all event strings emitted by {@link (CallInvite:class)}
+ * objects.
+ */
+ enum Event {
+ /**
+ * Event string for the `Accepted` event.
+ * See {@link (CallInvite:interface).(addListener:1)}.
+ */
+ Accepted = "accepted",
+ /**
+ * Event string for the `Rejected` event.
+ * See {@link (CallInvite:interface).(addListener:2)}.
+ */
+ Rejected = "rejected",
+ /**
+ * Event string for the `Cancelled` event.
+ * See {@link (CallInvite:interaface).(addListener:3)}.
+ */
+ Cancelled = "cancelled",
+ /**
+ * Event string for the `NotificationTapped` event.
+ * See {@link (CallInvite:interaface).(addListener:4)}.
+ */
+ NotificationTapped = "notificationTapped",
+ /**
+ * Event string for the `MessageReceived` event.
+ * See {@link (CallInvite:interface).(addListener:5)}
+ */
+ MessageReceived = "messageReceived"
+ }
+ /**
+ * Listener types for all events emitted by a
+ * {@link (CallInvite:class) | Call invite object.}
+ */
+ namespace Listener {
+ /**
+ * Accepted event listener. This should be the function signature of any
+ * event listener bound to the {@link (CallInvite:namespace).Event.Accepted}
+ * event.
+ *
+ * @remarks
+ * See {@link (CallInvite:interface).(addListener:1)}.
+ */
+ type Accepted = (call: Call) => void;
+ /**
+ * Rejected event listener. This should be the function signature of any
+ * event listener bound to the {@link (CallInvite:namespace).Event.Rejected}
+ * event.
+ *
+ * @remarks
+ * See {@link (CallInvite:interface).(addListener:2)}.
+ */
+ type Rejected = () => void;
+ /**
+ * Cancelled event listener. This should be the function signature of any
+ * event listener bound to the
+ * {@link (CallInvite:namespace).Event.Cancelled} event.
+ *
+ * @remarks
+ * See {@link (CallInvite:interface).(addListener:3)}.
+ */
+ type Cancelled = (error?: TwilioError) => void;
+ /**
+ * Rejected event listener. This should be the function signature of any
+ * event listener bound to the
+ * {@link (CallInvite:namespace).Event.NotificationTapped} event.
+ *
+ * @remarks
+ * See {@link (CallInvite:interface).(addListener:4)}.
+ */
+ type NotificationTapped = () => void;
+ /**
+ * CallInviteMessage received event listener. This should be the function signature of
+ * any event listener bound to the {@link (CallInvite:namespace).Event.MessageReceived} event.
+ *
+ * @remarks
+ * See {@link (CallInvite:interface).(addListener:5)}.
+ */
+ type MessageReceived = (incomingCallMessage: IncomingCallMessage) => void;
+ }
+}
diff --git a/lib/typescript/CallMessage/CallMessage.d.ts b/lib/typescript/CallMessage/CallMessage.d.ts
new file mode 100644
index 00000000..b7fa1fe7
--- /dev/null
+++ b/lib/typescript/CallMessage/CallMessage.d.ts
@@ -0,0 +1,53 @@
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+/**
+ * The constituent values of a Call Message.
+ *
+ * @public
+ */
+export interface CallMessage {
+ /**
+ * The content of the message. This value should match the content type
+ * parameter.
+ *
+ * See {@link CallMessage.contentType} for more information.
+ */
+ content: any;
+ /**
+ * The content type of the message. This value should accurately describe
+ * the content of the message. The following values are accepted:
+ *
+ * - "application/json"
+ *
+ * If no value is defined, then the default value of "application/json" will
+ * be used.
+ *
+ * If the `contentType` of the message is "application/json", the content
+ * of the message may be a JS object.
+ */
+ contentType?: string;
+ /**
+ * The message type. The following values are accepted:
+ *
+ * - "user-defined-message"
+ */
+ messageType: string;
+}
+/**
+ * Parse CallMessage values. Used when constructing a CallMessage from the
+ * native layer, or by the Call and CallInvite classes when sending a
+ * CallMessage.
+ *
+ * @param message the CallMessage details.
+ *
+ * @internal
+ */
+export declare function validateCallMessage(message: CallMessage): {
+ content: string;
+ contentType: string;
+ messageType: string;
+};
diff --git a/lib/typescript/CallMessage/IncomingCallMessage.d.ts b/lib/typescript/CallMessage/IncomingCallMessage.d.ts
new file mode 100644
index 00000000..eed50534
--- /dev/null
+++ b/lib/typescript/CallMessage/IncomingCallMessage.d.ts
@@ -0,0 +1,75 @@
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { EventEmitter } from 'eventemitter3';
+import type { NativeCallMessageInfo } from '../type/CallMessage';
+/**
+ * CallMessage API is in beta.
+ *
+ * Provides access to information about a CallMessage, including the call
+ * message content, content type, message type, and voice event SID.
+ *
+ * @public
+ */
+export declare class IncomingCallMessage extends EventEmitter {
+ /**
+ * The content of the message which should match the contentType parameter.
+ */
+ private _content;
+ /**
+ * The MIME type of the content.
+ */
+ private _contentType;
+ /**
+ * Message type
+ */
+ private _messageType;
+ /**
+ * An autogenerated ID that uniquely identifies this message.
+ * This is not required when sending a message from the SDK as this is
+ * autogenerated.
+ * The ID will be available after the message is sent, or immediately when a
+ * message is received.
+ */
+ private _voiceEventSid?;
+ /**
+ * Constructor for the {@link IncomingCallMessage} class. This should not be
+ * invoked by third-party code.
+ *
+ * @param NativeCallMessageInfo - An object containing all of the data from
+ * the native layer necessary to fully describe a call message, as well as
+ * invoke native functionality for the call message.
+ *
+ * @internal
+ */
+ constructor(callMessageInfo: NativeCallMessageInfo);
+ /**
+ * {@inheritdoc CallMessage.content}
+ *
+ * @returns the content of the call message.
+ */
+ getContent(): any;
+ /**
+ * {@inheritdoc CallMessage.contentType}
+ *
+ * @returns the content type of the call message.
+ */
+ getContentType(): string;
+ /**
+ * {@inheritdoc CallMessage.messageType}
+ *
+ * @returns the message type of the call message.
+ */
+ getMessageType(): string;
+ /**
+ * Get the message SID.
+ * @returns
+ * - A string representing the message SID.
+ * - `undefined` if the call information has not yet been received from the
+ * native layer.
+ */
+ getSid(): string | undefined;
+}
diff --git a/lib/typescript/CallMessage/OutgoingCallMessage.d.ts b/lib/typescript/CallMessage/OutgoingCallMessage.d.ts
new file mode 100644
index 00000000..bd38b78a
--- /dev/null
+++ b/lib/typescript/CallMessage/OutgoingCallMessage.d.ts
@@ -0,0 +1,198 @@
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import type { TwilioError } from '../error';
+import type { NativeCallMessageInfo } from '../type/CallMessage';
+import { IncomingCallMessage } from './IncomingCallMessage';
+/**
+ * Defines strict typings for all events emitted by
+ * {@link (OutgoingCallMessage:class) | OutgoingCallMessage objects}.
+ *
+ * @remarks
+ * Note that the `on` function is an alias for the `addListener` function.
+ * They share identical functionality and either may be used interchangeably.
+ *
+ * - See also the {@link CallMessage} interface.
+ * - See also the {@link IncomingCallMessage} class.
+ * - See also the {@link (OutgoingCallMessage:namespace)} namespace.
+ *
+ * @public
+ */
+export declare interface OutgoingCallMessage {
+ /**
+ * ------------
+ * Emit Typings
+ * ------------
+ */
+ /** @internal */
+ emit(failureEvent: OutgoingCallMessage.Event.Failure, error: TwilioError): boolean;
+ /** @internal */
+ emit(sentEvent: OutgoingCallMessage.Event.Sent): boolean;
+ /**
+ * ----------------
+ * Listener Typings
+ * ----------------
+ */
+ /**
+ * Failure event. Raised when outgoingCallMessage fails to be sent out.
+ *
+ * @example
+ * ```typescript
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
+ * // outgoingCallMessage failed, handle error
+ * });
+ * ```
+ *
+ * @param failureEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The callMessage object.
+ */
+ addListener(failureEvent: OutgoingCallMessage.Event.Failure, listener: OutgoingCallMessage.Listener.Failure): this;
+ /** {@inheritDoc (OutgoingCallMessage:interface).(addListener:1)} */
+ on(failureEvent: OutgoingCallMessage.Event.Failure, listener: OutgoingCallMessage.Listener.Failure): this;
+ /**
+ * Sent event. Raised when outgoingCallMessage is sent.
+ * @example
+ * ```typescript
+ * outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
+ * // outgoingCallMessage sent
+ * })
+ * ```
+ *
+ * @param sentEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The callMessage object
+ */
+ addListener(sentEvent: OutgoingCallMessage.Event.Sent, listener: OutgoingCallMessage.Listener.Sent): this;
+ /** {@inheritDoc (OutgoingCallMessage:interface).(addListener:2)} */
+ on(sentEvent: OutgoingCallMessage.Event.Sent, listener: OutgoingCallMessage.Listener.Sent): this;
+ /**
+ * Generic event listener typings.
+ * @param outgoingCallMessageEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The outgoingCallMessage object.
+ */
+ addListener(outgoingCallMessageEvent: OutgoingCallMessage.Event, listener: OutgoingCallMessage.Listener.Generic): this;
+ /**
+ * {@inheritDoc (OutgoingCallMessage:interface).(addListener:3)}
+ */
+ on(outgoingCallMessageEvent: OutgoingCallMessage.Event, listener: OutgoingCallMessage.Listener.Generic): this;
+}
+/**
+ * CallMessage API is in beta.
+ *
+ * Provides access to information about a outgoingCallMessage, including the call
+ * message content, contentType, messageType, and voiceEventSid
+ *
+ * @remarks
+ * Note that the outgoingCallMessage information is fetched as soon as possible from the
+ * native layer, but there is no guarantee that all information is immediately
+ * available. Methods such as `OutgoingCallMessage.getContent` or `OutgoingCallMessage.getSid`
+ * may return `undefined`.
+ *
+ * As outgoingCallMessage events are received from the native layer, outgoingCallMessage information will
+ * propagate from the native layer to the JS layer and become available.
+ * Therefore, it is good practice to read information from the outgoingCallMessage after an
+ * event occurs, or as events occur.
+ *
+ * - See the {@link (OutgoingCallMessage:namespace).Event} enum for events emitted by `OutgoingCallMessage`
+ * objects.
+ * - See the {@link (OutgoingCallMessage:interface) | OutgoingCallMessage interface} for overloaded event listening
+ * metods.
+ * - See the {@link (OutgoingCallMessage:namespace) | OutgoingCallMessage namespace} for types and enumerations
+ * used by this class.
+ *
+ * @public
+ */
+export declare class OutgoingCallMessage extends IncomingCallMessage {
+ /**
+ * Handlers for native OutgoingCallMessage events. Set upon construction so we can
+ * dynamically bind events to handlers.
+ *
+ * @privateRemarks
+ * This is done by the constructor so this mapping isn't made every time the
+ * {@link (OutgoingCallMessage:class)._handleNativeEvent} function is invoked.
+ */
+ private _nativeEventHandler;
+ constructor({ content, contentType, messageType, voiceEventSid, }: NativeCallMessageInfo);
+ /**
+ * This intermediate native callMessage event handler acts as a "gate".
+ * @param nativeCallMessageEvent - A callMessage event directly from the native layer.
+ */
+ private _handleNativeEvent;
+ /**
+ * Handler for the {@link (OutgoingCallMessage:namespace).Event.Failure} event.
+ * @param nativeCallMessageEvent - The native callMessage event.
+ */
+ private _handleFailureEvent;
+ /**
+ * Handler for the {@link (OutgoingCallMessage:namespace).Event.Sent} event.
+ * @param nativeCallMessageEvent - The native callMessage event.
+ */
+ private _handleSentEvent;
+}
+/**
+ * Namespace for enumerations and types used by
+ * {@link (OutgoingCallMessage:class) | OutgoingCallMessage objects}.
+ *
+ * @remarks
+ * - See also the {@link (OutgoingCallMessage:class) | OutgoingCallMessage class}.
+ * - See also the {@link (OutgoingCallMessage:interface) | OutgoingCallMessage interface}.
+ *
+ * @public
+ */
+export declare namespace OutgoingCallMessage {
+ /**
+ * Enumeration of all event strings emitted by {@link (OutgoingCallMessage:class)} objects.
+ */
+ enum Event {
+ /**
+ * Raised when outgoingCallMessage fails.
+ * See {@link (OutgoingCallMessage:interface).(addListener:1)}.
+ */
+ 'Failure' = "failure",
+ /**
+ * Raised when outgoingCallMessage has been sent.
+ * See {@link (OutgoingCallMessage:interface).(addListener:2)}.
+ */
+ 'Sent' = "sent"
+ }
+ /**
+ * Listener types for all events emitted by a
+ * {@link (OutgoingCallMessage:class) | OutgoingCallMessage: object}
+ */
+ namespace Listener {
+ /**
+ * OutgoingCallMessage failure event listener. This should be the function signature of
+ * any event listener bound to the {@link (OutgoingCallMessage:namespace).Event.Failure} event.
+ *
+ * @remarks
+ * See {@link (OutgoingCallMessage:interface).(addListener:1)}.
+ *
+ * See {@link TwilioErrors} for all error classes.
+ */
+ type Failure = (error: TwilioError) => void;
+ /**
+ * OutgoingCallMessage sent event listner. This should be the function signature of
+ * any event listener bound to the {@link (OutgoingCallMessage:namespace).Event.Sent} event.
+ *
+ * @remarks
+ * See {@link (OutgoingCallMessage:interface).(addListener:2)}.
+ */
+ type Sent = () => void;
+ /**
+ * Generic event listener. This should be the function signature of any
+ * event listener bound to any OutgoingCallMessage event.
+ *
+ * @remarks
+ * See {@link (OutgoingCallMessage:interface).(addListener:3)}.
+ */
+ type Generic = (...args: any[]) => void;
+ }
+}
diff --git a/lib/typescript/Voice.d.ts b/lib/typescript/Voice.d.ts
new file mode 100644
index 00000000..3ad6fd2d
--- /dev/null
+++ b/lib/typescript/Voice.d.ts
@@ -0,0 +1,524 @@
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import { EventEmitter } from 'eventemitter3';
+import { AudioDevice } from './AudioDevice';
+import { Call } from './Call';
+import { CallInvite } from './CallInvite';
+import type { TwilioError } from './error/TwilioError';
+import type { CallKit } from './type/CallKit';
+import type { Uuid } from './type/common';
+/**
+ * Defines strict typings for all events emitted by {@link (Voice:class)
+ * | Voice objects}.
+ *
+ * @remarks
+ * Note that the `on` function is an alias for the `addListener` function.
+ * They share identical functionality and either may be used interchangeably.
+ *
+ * - See also the {@link (Voice:class) | Voice class}.
+ * - See also the {@link (Voice:namespace) | Voice namespace}.
+ *
+ * @public
+ */
+export declare interface Voice {
+ /**
+ * ------------
+ * Emit Typings
+ * ------------
+ */
+ /** @internal */
+ emit(voiceEvent: Voice.Event.AudioDevicesUpdated, audioDevices: AudioDevice[], selectedDevice?: AudioDevice): boolean;
+ /** @internal */
+ emit(voiceEvent: Voice.Event.CallInvite, callInvite: CallInvite): boolean;
+ /** @internal */
+ emit(voiceEvent: Voice.Event.Error, error: TwilioError): boolean;
+ /** @internal */
+ emit(voiceEvent: Voice.Event.Registered): boolean;
+ /** @internal */
+ emit(voiceEvent: Voice.Event.Unregistered): boolean;
+ /** @internal */
+ emit(voiceEvent: Voice.Event, ...args: any[]): boolean;
+ /**
+ * ----------------
+ * Listener Typings
+ * ----------------
+ */
+ /**
+ * Audio devices updated event. Raised when the list of audio devices changes.
+ *
+ * @example
+ * ```typescript
+ * voice.addListener(Voice.Event.AudioDevicesUpdated, () => {
+ * // the list of available audio devices has changed and/or the selected
+ * // audio device has been changed
+ * });
+ * ```
+ *
+ * @param audioDevicesUpdatedEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(audioDevicesUpdatedEvent: Voice.Event.AudioDevicesUpdated, listener: Voice.Listener.AudioDevicesUpdated): this;
+ /** {@inheritDoc (Voice:interface).(addListener:1)} */
+ on(audioDevicesUpdatedEvent: Voice.Event.AudioDevicesUpdated, listener: Voice.Listener.AudioDevicesUpdated): this;
+ /**
+ * Call invite event. Raised when an incoming call invite is received.
+ *
+ * @example
+ * ```typescript
+ * voice.addListener(Voice.Event.CallInvite, (callInvite: CallInvite) => {
+ * // handle the incoming call invite
+ * });
+ * ```
+ *
+ * @param callInviteEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(callInviteEvent: Voice.Event.CallInvite, listener: Voice.Listener.CallInvite): this;
+ /** {@inheritDoc (Voice:interface).(addListener:2)} */
+ on(callInviteEvent: Voice.Event.CallInvite, listener: Voice.Listener.CallInvite): this;
+ /**
+ * Error event. Raised when the SDK encounters an error.
+ *
+ * @example
+ * ```typescript
+ * voice.addListener(Voice.Event.Error, (error: TwilioError.GenericError) => {
+ * // handle a generic Voice SDK error
+ * });
+ * ```
+ *
+ * @param errorEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(errorEvent: Voice.Event.Error, listener: Voice.Listener.Error): this;
+ /** {@inheritDoc (Voice:interface).(addListener:3)} */
+ on(errorEvent: Voice.Event.Error, listener: Voice.Listener.Error): this;
+ /**
+ * Registered event. Raised when the SDK is registered for incoming calls.
+ *
+ * @example
+ * ```typescript
+ * voice.addListener(Voice.Event.Registered, () => {
+ * // handle successful registration for incoming calls
+ * });
+ * ```
+ *
+ * @param registeredEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(registeredEvent: Voice.Event.Registered, listener: Voice.Listener.Registered): this;
+ /** {@inheritDoc (Voice:interface).(addListener:4)} */
+ on(registeredEvent: Voice.Event.Registered, listener: Voice.Listener.Registered): this;
+ /**
+ * Unregistered event. Raised when the SDK is unregistered for incoming calls.
+ *
+ * @example
+ * ```typescript
+ * voice.addListener(Voice.Event.Unregistered, () => {
+ * // handle successful unregistration for incoming calls
+ * });
+ * ```
+ *
+ * @param unregisteredEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(unregisteredEvent: Voice.Event.Unregistered, listener: Voice.Listener.Unregistered): this;
+ /** {@inheritDoc (Voice:interface).(addListener:5)} */
+ on(unregisteredEvent: Voice.Event.Unregistered, listener: Voice.Listener.Unregistered): this;
+ /**
+ * Generic event listener typings.
+ * @param voiceEvent - The raised event string.
+ * @param listener - A listener function that will be invoked when the event
+ * is raised.
+ * @returns - The call object.
+ */
+ addListener(voiceEvent: Voice.Event, listener: Voice.Listener.Generic): this;
+ /** {@inheritDoc (Voice:interface).(addListener:6)} */
+ on(voiceEvent: Voice.Event, listener: Voice.Listener.Generic): this;
+}
+/**
+ * Main entry-point of the Voice SDK. Provides access to the entire feature-set
+ * of the library.
+ *
+ * @example
+ * Usage:
+ * ```
+ * const token = '...';
+ *
+ * const voice = new Voice();
+ *
+ * voice.on(Voice.Event.CallInvite, (callInvite: CallInvite) => {
+ * callInvite.accept();
+ * });
+ *
+ * voice.register(token);
+ * ```
+ *
+ * @remarks
+ * - See also the {@link (Voice:namespace).Event} enum for events emitted by
+ * `Voice` objects.
+ * - See also the {@link (Voice:interface) | Voice interface} for events
+ * emitted by this class and associated types.
+ * - See also the {@link (Voice:namespace) | Voice namespace} for types and
+ * enumerations used by this class.
+ *
+ * @public
+ */
+export declare class Voice extends EventEmitter {
+ /**
+ * Handlers for native voice events. Set upon construction so we can
+ * dynamically bind events to handlers.
+ *
+ * @privateRemarks
+ * This is done by the constructor so this mapping isn't made every time the
+ * {@link (Voice:class)._handleNativeEvent} function is invoked.
+ */
+ private _nativeEventHandler;
+ /**
+ * Main entry-point of the Voice SDK. Provides access to the entire
+ * feature-set of the library.
+ */
+ constructor();
+ /**
+ * Connect for devices on Android platforms.
+ */
+ private _connect_android;
+ /**
+ * Connect for devices on iOS platforms.
+ */
+ private _connect_ios;
+ /**
+ * Intermediary event handler for `Voice`-level events. Ensures that the type
+ * of the incoming event is expected and invokes the proper event listener.
+ * @param nativeVoiceEvent - A `Voice` event directly from the native layer.
+ */
+ private _handleNativeEvent;
+ /**
+ * Call invite handler. Creates a {@link (CallInvite:class)} from the info
+ * raised by the native layer and emits it.
+ * @param nativeVoiceEvent - A `Voice` event directly from the native layer.
+ */
+ private _handleCallInvite;
+ /**
+ * Error event handler. Creates an error from the namespace
+ * {@link TwilioErrors} from the info raised by the native layer and emits it.
+ * @param nativeVoiceEvent - A `Voice` event directly from the native layer.
+ */
+ private _handleError;
+ /**
+ * Registered event handler. Emits a
+ * {@link (Voice:namespace).Event.Registered} event.
+ */
+ private _handleRegistered;
+ /**
+ * Unregistered event handler. Emits a
+ * {@link (Voice:namespace).Event.Unregistered} event.
+ */
+ private _handleUnregistered;
+ /**
+ * Audio devices updated event handler. Generates a new list of
+ * {@link (AudioDevice:class) | AudioDevice objects} and emits it.
+ * @param nativeVoiceEvent - A `Voice` event directly from the native layer.
+ */
+ private _handleAudioDevicesUpdated;
+ /**
+ * Create an outgoing call.
+ *
+ * @remarks
+ * Note that the resolution of the returned `Promise` does not imply any call
+ * event occurring, such as answered or rejected.
+ * The `contactHandle` parameter is only required for iOS apps. Currently the
+ * parameter does have any effect on Android apps and can be ignored.
+ * `Default Contact` will appear in the iOS call history if the value is empty
+ * or not provided.
+ *
+ * @param token - A Twilio Access Token, usually minted by an
+ * authentication-gated endpoint using a Twilio helper library.
+ * @param options - Connect options.
+ * See {@link (Voice:namespace).ConnectOptions}.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with a call when the call is created.
+ * - Rejects:
+ * * When a call is not able to be created on the native layer.
+ * * With an {@link TwilioErrors.InvalidArgumentError} when invalid
+ * arguments are passed.
+ */
+ connect(token: string, { contactHandle, params, }?: Voice.ConnectOptions): Promise;
+ /**
+ * Get the version of the native SDK. Note that this is not the version of the
+ * React Native SDK, this is the version of the mobile SDK that the RN SDK is
+ * utilizing.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a string representing the version of the native SDK.
+ */
+ getVersion(): Promise;
+ /**
+ * Get the Device token from the native layer.
+ * @returns a Promise that resolves with a string representing the Device
+ * token.
+ */
+ getDeviceToken(): Promise;
+ /**
+ * Get a list of existing calls, ongoing and pending. This will not return any
+ * call that has finished.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a mapping of `Uuid`s to {@link (Call:class)}s.
+ */
+ getCalls(): Promise>;
+ /**
+ * Get a list of pending call invites.
+ *
+ * @remarks
+ * This list will not contain any call invites that have been "settled"
+ * (answered or rejected).
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves with a mapping of `Uuid`s to {@link (CallInvite:class)}s.
+ */
+ getCallInvites(): Promise>;
+ /**
+ * Register this device for incoming calls.
+ * @param token - A Twilio Access Token.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the device has been registered.
+ */
+ register(token: string): Promise;
+ /**
+ * Unregister this device for incoming calls.
+ * @param token - A Twilio Access Token.
+ * @returns
+ * A `Promise` that
+ * - Resolves when the device has been unregistered.
+ */
+ unregister(token: string): Promise;
+ /**
+ * Get audio device information from the native layer.
+ * @returns
+ * A `Promise` that
+ * - Resolves with a list of the native device's audio devices and the
+ * currently selected device.
+ */
+ getAudioDevices(): Promise<{
+ audioDevices: AudioDevice[];
+ selectedDevice?: AudioDevice;
+ }>;
+ /**
+ * Show the native AV route picker.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * This API is specific to iOS and unavailable in Android. If this API is
+ * invoked on Android, there will be no operation and the returned `Promise`
+ * will immediately resolve with `null`.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves when the AV Route Picker View is shown.
+ */
+ showAvRoutePickerView(): Promise;
+ /**
+ * Initialize a Push Registry instance inside the SDK for handling
+ * PushKit device token updates and receiving push notifications.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * This API is specific to iOS and unavailable in Android.
+ * Use this method if the application does not have an iOS PushKit
+ * module and wishes to delegate the event handling to the SDK.
+ * Call this method upon launching the app to guarantee that incoming
+ * call push notifications will be surfaced to the users, especially when
+ * the app is not running in the foreground.
+ *
+ * @return
+ * A `Promise` that
+ * - Resolves when the initialization is done.
+ */
+ initializePushRegistry(): Promise;
+ /**
+ * Custom iOS CallKit configuration.
+ *
+ * @param configuration - iOS CallKit configuration options.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ *
+ * See {@link CallKit} for more information.
+ *
+ * @returns
+ * A `Promise` that
+ * - Resolves when the configuration has been applied.
+ * - Rejects if the configuration is unable to be applied.
+ */
+ setCallKitConfiguration(configuration: CallKit.ConfigurationOptions): Promise;
+}
+/**
+ * Provides enumerations and types used by {@link (Voice:class)
+ * | Voice objects}.
+ *
+ * @remarks
+ * - See also the {@link (Voice:class) | Voice class}.
+ * - See also the {@link (Voice:interface) | Voice interface}.
+ *
+ * @public
+ */
+export declare namespace Voice {
+ /**
+ * Options to pass to the {@link (Voice:class).connect} method.
+ */
+ type ConnectOptions = {
+ /**
+ * Custom parameters to send to the TwiML Application.
+ */
+ params?: Record;
+ /**
+ * A CallKit display name that will show in the call history as the contact
+ * handle.
+ *
+ * @remarks
+ * Unsupported platforms:
+ * - Android
+ */
+ contactHandle?: string;
+ };
+ /**
+ * Enumeration of all event strings emitted by {@link (Voice:class)} objects.
+ */
+ enum Event {
+ /**
+ * Raised when there is a change in available audio devices.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:1)
+ * | Voice.addListener(AudioDevicesUpdated)}.
+ */
+ 'AudioDevicesUpdated' = "audioDevicesUpdated",
+ /**
+ * Raised when there is an incoming call invite.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:2)
+ * | Voice.addListener(CallInvite)}.
+ */
+ 'CallInvite' = "callInvite",
+ /**
+ * Raised when the SDK encounters an error.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:3)
+ * | Voice.addListener(Error)}.
+ */
+ 'Error' = "error",
+ /**
+ * Raised when the SDK is registered for incoming calls.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:4)
+ * | Voice.addListener(Registered)}.
+ */
+ 'Registered' = "registered",
+ /**
+ * Raised when the SDK is unregistered for incoming calls.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:5)
+ * | Voice.addListener(Unregistered)}.
+ */
+ 'Unregistered' = "unregistered"
+ }
+ /**
+ * Listener types for all events emitted by a {@link (Voice:class)
+ * | Voice object.}
+ */
+ namespace Listener {
+ /**
+ * Audio devices updated event listener. This should be the function
+ * signature of an event listener bound to the
+ * {@link (Voice:namespace).Event.AudioDevicesUpdated} event.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:1)}.
+ */
+ type AudioDevicesUpdated = (audioDevices: AudioDevice[], selectedDevice?: AudioDevice) => void;
+ /**
+ * Call invite event listener. This should be the function signature of an
+ * event listener bound to the
+ * {@link (Voice:namespace).Event.CallInvite} event.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:2)}.
+ */
+ type CallInvite = (callInvite: CallInvite) => void;
+ /**
+ * Error event listener. This should be the function signature of an event
+ * listener bound to the
+ * {@link (Voice:namespace).Event.Error} event.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:3)}.
+ *
+ * See {@link TwilioErrors} for all error classes.
+ */
+ type Error = (error: TwilioError) => void;
+ /**
+ * Registered event listener. This should be the function signature of an
+ * event listener bound to the
+ * {@link (Voice:namespace).Event.Registered} event.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:4)}.
+ */
+ type Registered = () => void;
+ /**
+ * Unregistered event listener. This should be the function signature of an
+ * event listener bound to the
+ * {@link (Voice:namespace).Event.Unregistered} event.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:5)}.
+ */
+ type Unregistered = () => void;
+ /**
+ * Generic event listener. This should be the function signature of any
+ * event listener bound to any voice event.
+ *
+ * @remarks
+ *
+ * See {@link (Voice:interface).(addListener:6)}.
+ */
+ type Generic = (...args: any[]) => void;
+ }
+}
diff --git a/lib/typescript/__mocks__/AudioDevice.d.ts b/lib/typescript/__mocks__/AudioDevice.d.ts
new file mode 100644
index 00000000..d1756fb9
--- /dev/null
+++ b/lib/typescript/__mocks__/AudioDevice.d.ts
@@ -0,0 +1,3 @@
+import type { NativeAudioDeviceInfo, NativeAudioDevicesInfo } from '../type/AudioDevice';
+export declare function createNativeAudioDeviceInfo(): NativeAudioDeviceInfo;
+export declare function createNativeAudioDevicesInfo(): NativeAudioDevicesInfo;
diff --git a/lib/typescript/__mocks__/Call.d.ts b/lib/typescript/__mocks__/Call.d.ts
new file mode 100644
index 00000000..609d4eca
--- /dev/null
+++ b/lib/typescript/__mocks__/Call.d.ts
@@ -0,0 +1,86 @@
+import type { NativeCallInfo } from '../type/Call';
+import { Constants } from '../constants';
+export declare function createNativeCallInfo(): NativeCallInfo;
+/**
+ * Reusable default native call events.
+ */
+export declare const mockCallNativeEvents: {
+ connected: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ call: NativeCallInfo;
+ };
+ };
+ connectFailure: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ call: NativeCallInfo;
+ error: {
+ code: number;
+ message: string;
+ };
+ };
+ };
+ disconnected: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ call: NativeCallInfo;
+ };
+ };
+ disconnectedWithError: {
+ name: string;
+ nativeEvent: {
+ type: Constants;
+ call: NativeCallInfo;
+ error: {
+ code: number;
+ message: string;
+ };
+ };
+ };
+ reconnected: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ call: NativeCallInfo;
+ };
+ };
+ reconnecting: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ call: NativeCallInfo;
+ error: {
+ code: number;
+ message: string;
+ };
+ };
+ };
+ ringing: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ call: NativeCallInfo;
+ };
+ };
+ qualityWarningsChanged: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ call: NativeCallInfo;
+ callEventCurrentWarnings: string[];
+ callEventPreviousWarnings: string[];
+ };
+ };
+ messageReceived: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ call: NativeCallInfo;
+ callMessage: import("../type/CallMessage").NativeCallMessageInfo;
+ };
+ };
+};
diff --git a/lib/typescript/__mocks__/CallInvite.d.ts b/lib/typescript/__mocks__/CallInvite.d.ts
new file mode 100644
index 00000000..fcbf0c28
--- /dev/null
+++ b/lib/typescript/__mocks__/CallInvite.d.ts
@@ -0,0 +1,43 @@
+import type { NativeCallInviteInfo, NativeCancelledCallInviteInfo } from '../type/CallInvite';
+import { Constants } from '../constants';
+export declare function createNativeCallInviteInfo(): NativeCallInviteInfo;
+export declare function createNativeCancelledCallInviteInfo(): NativeCancelledCallInviteInfo;
+/**
+ * Reusable default native callInvite events.
+ */
+export declare function createMockNativeCallInviteEvents(): {
+ readonly accepted: {
+ readonly type: Constants.CallInviteEventTypeValueAccepted;
+ readonly callSid: "mock-nativecallinviteinfo-callsid";
+ readonly callInvite: NativeCallInviteInfo;
+ };
+ readonly notificationTapped: {
+ readonly type: Constants.CallInviteEventTypeValueNotificationTapped;
+ readonly callSid: "mock-nativecallinviteinfo-callsid";
+ readonly callInvite: NativeCallInviteInfo;
+ };
+ readonly rejected: {
+ readonly type: Constants.CallInviteEventTypeValueRejected;
+ readonly callSid: "mock-nativecallinviteinfo-callsid";
+ readonly callInvite: NativeCallInviteInfo;
+ };
+ readonly cancelled: {
+ readonly type: Constants.CallInviteEventTypeValueCancelled;
+ readonly callSid: "mock-nativecallinviteinfo-callsid";
+ readonly cancelledCallInvite: NativeCancelledCallInviteInfo;
+ };
+ readonly cancelledWithError: {
+ readonly type: Constants.CallInviteEventTypeValueCancelled;
+ readonly callSid: "mock-nativecallinviteinfo-callsid";
+ readonly cancelledCallInvite: NativeCancelledCallInviteInfo;
+ readonly error: {
+ code: number;
+ message: string;
+ };
+ };
+ readonly messageReceived: {
+ readonly type: Constants.CallEventMessageReceived;
+ readonly callSid: "mock-nativecallinviteinfo-callsid";
+ readonly callMessage: import("../type/CallMessage").NativeCallMessageInfo;
+ };
+};
diff --git a/lib/typescript/__mocks__/CallMessage.d.ts b/lib/typescript/__mocks__/CallMessage.d.ts
new file mode 100644
index 00000000..a9280f86
--- /dev/null
+++ b/lib/typescript/__mocks__/CallMessage.d.ts
@@ -0,0 +1,24 @@
+import { Constants } from '../constants';
+import type { NativeCallMessageInfo } from '../type/CallMessage';
+export declare function createNativeCallMessageInfo(): NativeCallMessageInfo;
+export declare function createNativeCallMessageInfoSid(voiceEventSid: string): NativeCallMessageInfo;
+export declare const mockCallMessageNativeEvents: {
+ failure: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ voiceEventSid: string;
+ error: {
+ code: number;
+ message: string;
+ };
+ };
+ };
+ sent: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ voiceEventSid: string;
+ };
+ };
+};
diff --git a/lib/typescript/__mocks__/Error.d.ts b/lib/typescript/__mocks__/Error.d.ts
new file mode 100644
index 00000000..ce5b46ee
--- /dev/null
+++ b/lib/typescript/__mocks__/Error.d.ts
@@ -0,0 +1,4 @@
+export declare function createNativeErrorInfo(): {
+ code: number;
+ message: string;
+};
diff --git a/lib/typescript/__mocks__/RTCStats.d.ts b/lib/typescript/__mocks__/RTCStats.d.ts
new file mode 100644
index 00000000..543045d8
--- /dev/null
+++ b/lib/typescript/__mocks__/RTCStats.d.ts
@@ -0,0 +1,6 @@
+import { RTCStats } from '../type/RTCStats';
+export declare function createIceCandidatePairStats(): RTCStats.IceCandidatePairStats;
+export declare function createIceCandidateStats(): RTCStats.IceCandidateStats;
+export declare function createLocalAudioTrackStats(): RTCStats.LocalAudioTrackStats;
+export declare function createRemoteAudioTrackStats(): RTCStats.RemoteAudioTrackStats;
+export declare function createStatsReport(): RTCStats.StatsReport;
diff --git a/lib/typescript/__mocks__/Voice.d.ts b/lib/typescript/__mocks__/Voice.d.ts
new file mode 100644
index 00000000..f735975f
--- /dev/null
+++ b/lib/typescript/__mocks__/Voice.d.ts
@@ -0,0 +1,43 @@
+import { Constants } from '../constants';
+/**
+ * Reusable default native call events.
+ */
+export declare const mockVoiceNativeEvents: {
+ audioDevicesUpdated: {
+ name: Constants;
+ nativeEvent: {
+ audioDevices: import("../type/AudioDevice").NativeAudioDeviceInfo[];
+ selectedDevice?: import("../type/AudioDevice").NativeAudioDeviceInfo | undefined;
+ type: Constants;
+ };
+ };
+ callInvite: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ callInvite: import("../type/CallInvite").NativeCallInviteInfo;
+ };
+ };
+ error: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ error: {
+ code: number;
+ message: string;
+ };
+ };
+ };
+ registered: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ };
+ };
+ unregistered: {
+ name: Constants;
+ nativeEvent: {
+ type: Constants;
+ };
+ };
+};
diff --git a/lib/typescript/__mocks__/common.d.ts b/lib/typescript/__mocks__/common.d.ts
new file mode 100644
index 00000000..e2f6dbbd
--- /dev/null
+++ b/lib/typescript/__mocks__/common.d.ts
@@ -0,0 +1,55 @@
+/**
+ * This file is used by Jest manual mocking and meant to be utilized by
+ * perfomring `jest.mock('../common')` in test files.
+ */
+///
+import { EventEmitter } from 'eventemitter3';
+export declare const NativeModule: {
+ /**
+ * Call Mocks
+ */
+ call_disconnect: jest.Mock;
+ call_getStats: jest.Mock;
+ call_hold: jest.Mock, [_uuid: string, hold: boolean]>;
+ call_isMuted: jest.Mock;
+ call_isOnHold: jest.Mock;
+ call_mute: jest.Mock, [_uuid: string, mute: boolean]>;
+ call_postFeedback: jest.Mock;
+ call_sendDigits: jest.Mock;
+ call_sendMessage: jest.Mock;
+ /**
+ * Call Invite Mocks
+ */
+ callInvite_accept: jest.Mock;
+ callInvite_isValid: jest.Mock;
+ callInvite_reject: jest.Mock;
+ callInvite_updateCallerHandle: jest.Mock;
+ /**
+ * Voice Mocks
+ */
+ voice_connect_android: jest.Mock;
+ voice_connect_ios: jest.Mock;
+ voice_getAudioDevices: jest.Mock;
+ voice_getCalls: jest.Mock;
+ voice_getCallInvites: jest.Mock;
+ voice_getDeviceToken: jest.Mock;
+ voice_getVersion: jest.Mock;
+ voice_initializePushRegistry: jest.Mock;
+ voice_register: jest.Mock;
+ voice_selectAudioDevice: jest.Mock;
+ voice_setCallKitConfiguration: jest.Mock;
+ voice_showNativeAvRoutePicker: jest.Mock;
+ voice_unregister: jest.Mock;
+};
+export declare class MockNativeEventEmitter extends EventEmitter {
+ addListenerSpies: [string | symbol, jest.Mock][];
+ addListener: jest.Mock void, context?: any]>;
+ expectListenerAndReturnSpy(invocation: number, event: string | symbol, fn: (...args: any[]) => void): jest.Mock;
+ reset(): void;
+}
+export declare const NativeEventEmitter: MockNativeEventEmitter;
+declare class MockPlatform {
+ get OS(): string;
+}
+export declare const Platform: MockPlatform;
+export {};
diff --git a/lib/typescript/__tests__/AudioDevice.test.d.ts b/lib/typescript/__tests__/AudioDevice.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/AudioDevice.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/__tests__/Call.test.d.ts b/lib/typescript/__tests__/Call.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/Call.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/__tests__/CallInvite.test.d.ts b/lib/typescript/__tests__/CallInvite.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/CallInvite.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/__tests__/CallMessage/CallMessage.test.d.ts b/lib/typescript/__tests__/CallMessage/CallMessage.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/CallMessage/CallMessage.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/__tests__/CallMessage/IncomingCallMessage.test.d.ts b/lib/typescript/__tests__/CallMessage/IncomingCallMessage.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/CallMessage/IncomingCallMessage.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/__tests__/CallMessage/OutgoingCallMessage.test.d.ts b/lib/typescript/__tests__/CallMessage/OutgoingCallMessage.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/CallMessage/OutgoingCallMessage.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/__tests__/RTCStats.test.d.ts b/lib/typescript/__tests__/RTCStats.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/RTCStats.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/__tests__/Voice.test.d.ts b/lib/typescript/__tests__/Voice.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/Voice.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/__tests__/constants.test.d.ts b/lib/typescript/__tests__/constants.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/constants.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/__tests__/error/generated.test.d.ts b/lib/typescript/__tests__/error/generated.test.d.ts
new file mode 100644
index 00000000..eacb5fac
--- /dev/null
+++ b/lib/typescript/__tests__/error/generated.test.d.ts
@@ -0,0 +1,7 @@
+/**
+ * =============================================================================
+ * NOTE(mhuynh): if tests fail in this file, ensure that errors have been
+ * generated. Try `yarn run build:errors`.
+ * =============================================================================
+ */
+export {};
diff --git a/lib/typescript/__tests__/error/index.test.d.ts b/lib/typescript/__tests__/error/index.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/error/index.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/__tests__/error/utility.test.d.ts b/lib/typescript/__tests__/error/utility.test.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/lib/typescript/__tests__/error/utility.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/lib/typescript/common.d.ts b/lib/typescript/common.d.ts
new file mode 100644
index 00000000..7eadfc3f
--- /dev/null
+++ b/lib/typescript/common.d.ts
@@ -0,0 +1,11 @@
+/**
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
+ * license.
+ *
+ * See LICENSE in the project root for license information.
+ */
+import * as ReactNative from 'react-native';
+import type { TwilioVoiceReactNative as TwilioVoiceReactNativeType } from './type/NativeModule';
+export declare const NativeModule: TwilioVoiceReactNativeType;
+export declare const NativeEventEmitter: ReactNative.NativeEventEmitter;
+export declare const Platform: ReactNative.Platform;
diff --git a/lib/typescript/constants.d.ts b/lib/typescript/constants.d.ts
new file mode 100644
index 00000000..40086dbb
--- /dev/null
+++ b/lib/typescript/constants.d.ts
@@ -0,0 +1,137 @@
+export declare enum Constants {
+ 'ReactNativeVoiceSDK' = "react-native",
+ 'ReactNativeVoiceSDKVer' = "1.2.0",
+ 'ScopeVoice' = "scopeVoice",
+ 'ScopeCall' = "scopeCall",
+ 'ScopeCallMessage' = "scopeCallMessage",
+ 'ScopeCallInvite' = "scopeCallInvite",
+ 'VoiceEventError' = "voiceEventError",
+ 'VoiceEventType' = "type",
+ 'VoiceErrorKeyError' = "error",
+ 'VoiceErrorKeyCode' = "code",
+ 'VoiceErrorKeyMessage' = "message",
+ 'VoiceEventRegistered' = "voiceEventRegistered",
+ 'VoiceEventUnregistered' = "voiceEventUnregistered",
+ 'CallInfoUuid' = "uuid",
+ 'CallInfoSid' = "sid",
+ 'CallInfoFrom' = "from",
+ 'CallInfoTo' = "to",
+ 'CallInfoIsMuted' = "isMuted",
+ 'CallInfoIsOnHold' = "isOnHold",
+ 'CallInfoState' = "state",
+ 'CallInfoInitialConnectedTimestamp' = "initialConnectedTimestamp",
+ 'CallStateConnected' = "connected",
+ 'CallStateConnecting' = "connecting",
+ 'CallStateDisconnected' = "disconnected",
+ 'CallStateReconnecting' = "reconnecting",
+ 'CallStateRinging' = "ringing",
+ 'CallInviteInfoUuid' = "uuid",
+ 'CallInviteInfoCallSid' = "callSid",
+ 'CallInviteInfoFrom' = "from",
+ 'CallInviteInfoTo' = "to",
+ 'CallInviteInfoCustomParameters' = "customParameters",
+ 'CancelledCallInviteInfoUuid' = "uuid",
+ 'CancelledCallInviteInfoCallSid' = "callSid",
+ 'CancelledCallInviteInfoFrom' = "from",
+ 'CancelledCallInviteInfoTo' = "to",
+ 'CancelledCallInviteInfoCustomParameters' = "customParameters",
+ 'VoiceEventTypeValueIncomingCallInvite' = "voiceEventTypeValueIncomingCallInvite",
+ 'VoiceEventSid' = "voiceEventSid",
+ 'CallMessage' = "callMessage",
+ 'CallMessageContent' = "content",
+ 'CallMessageContentType' = "contentType",
+ 'CallMessageMessageType' = "messageType",
+ 'JSEventKeyCallMessageInfo' = "callMessage",
+ 'VoiceEventAudioDevicesUpdated' = "voiceEventAudioDevicesUpdated",
+ 'AudioDeviceKeyUuid' = "uuid",
+ 'AudioDeviceKeyName' = "name",
+ 'AudioDeviceKeyType' = "type",
+ 'AudioDeviceKeyAudioDevices' = "audioDevices",
+ 'AudioDeviceKeySelectedDevice' = "selectedDevice",
+ 'AudioDeviceKeyEarpiece' = "earpiece",
+ 'AudioDeviceKeySpeaker' = "speaker",
+ 'AudioDeviceKeyBluetooth' = "bluetooth",
+ 'CallInviteEventKeyType' = "type",
+ 'CallInviteEventTypeValueAccepted' = "callInviteEventTypeValueCallInviteAccepted",
+ 'CallInviteEventTypeValueNotificationTapped' = "callInviteEventTypeValueCallInviteNotificationTapped",
+ 'CallInviteEventTypeValueRejected' = "callInviteEventTypeValueCallInviteRejected",
+ 'CallInviteEventTypeValueCancelled' = "callInviteEventTypeValueCallInviteCancelled",
+ 'CallInviteEventKeyCallSid' = "callSid",
+ 'CallEventConnected' = "callEventConnected",
+ 'CallEventConnectFailure' = "callEventConnectFailure",
+ 'CallEventDisconnected' = "callEventDisconnected",
+ 'CallEventReconnecting' = "callEventReconnecting",
+ 'CallEventReconnected' = "callEventReconnected",
+ 'CallEventRinging' = "callEventRinging",
+ 'CallEventQualityWarningsChanged' = "callEventQualityWarningsChanged",
+ 'CallEventCurrentWarnings' = "callEventCurrentWarnings",
+ 'CallEventPreviousWarnings' = "callEventPreviousWarnings",
+ 'CallEventMessageFailure' = "callEventMessageFailure",
+ 'CallEventMessageReceived' = "callEventMessageReceived",
+ 'CallEventMessageSent' = "callEventMessageSent",
+ 'Score' = "score",
+ 'Issue' = "issue",
+ 'PeerConnectionId' = "peerConnectionId",
+ 'LocalAudioTrackStats' = "localAudioTrackStats",
+ 'RemoteAudioTrackStats' = "remoteAudioTrackStats",
+ 'IceCandidatePairStats' = "iceCandidatePairStats",
+ 'IceCandidateStats' = "iceCandidateStats",
+ 'Codec' = "codec",
+ 'PacketsLost' = "packetsLost",
+ 'Ssrc' = "ssrc",
+ 'TrackId' = "trackId",
+ 'Timestamp' = "timestamp",
+ 'BytesSent' = "bytesSent",
+ 'PacketsSent' = "packetsSent",
+ 'RoundTripTime' = "roundTripTime",
+ 'AudioLevel' = "audioLevel",
+ 'Jitter' = "jitter",
+ 'BytesReceived' = "bytesReceived",
+ 'Mos' = "mos",
+ 'TransportId' = "transportId",
+ 'LocalCandidateId' = "localCandidateId",
+ 'RemoteCandidateId' = "remoteCandidateId",
+ 'State' = "state",
+ 'LocalCandidateIp' = "localCandidateIp",
+ 'RemoteCandidateIp' = "remoteCandidateIp",
+ 'Nominated' = "nominated",
+ 'Writeable' = "writeable",
+ 'Readable' = "readable",
+ 'TotalRoundTripTime' = "totalRoundTripTime",
+ 'CurrentRoundTripTime' = "currentRoundTripTime",
+ 'AvailableOutgoingBitrate' = "availableOutgoingBitrate",
+ 'AvailableIncomingBitrate' = "availableIncomingBitrate",
+ 'RequestsReceived' = "requestsReceived",
+ 'RequestsSent' = "requestsSent",
+ 'ResponsesReceived' = "responsesReceived",
+ 'ResponsesSent' = "responsesSent",
+ 'RetransmissionsReceived' = "retransmissionsReceived",
+ 'RetransmissionsSent' = "retransmissionsSent",
+ 'ConsentRequestsReceived' = "consentRequestsReceived",
+ 'ConsentRequestsSent' = "consentRequestsSent",
+ 'ConsentResponsesReceived' = "consentResponsesReceived",
+ 'ConsentResponsesSent' = "consentResponsesSent",
+ 'ActiveCandidatePair' = "activeCandidatePair",
+ 'RelayProtocol' = "relayProtocol",
+ 'IsRemote' = "isRemote",
+ 'Ip' = "ip",
+ 'Port' = "port",
+ 'Protocol' = "protocol",
+ 'CandidateType' = "candidateType",
+ 'Priority' = "priority",
+ 'Url' = "url",
+ 'Deleted' = "deleted",
+ 'PacketsReceived' = "packetsReceived",
+ 'StateFailed' = "stateFailed",
+ 'StateFrozen' = "stateFrozen",
+ 'StateInProgress' = "stateInProgress",
+ 'StateSucceeded' = "stateSucceeded",
+ 'StateWaiting' = "stateWaiting",
+ 'StateUnknown' = "stateUnknown",
+ 'CallKitMaximumCallsPerCallGroup' = "callKitMaximumCallsPerCallGroup",
+ 'CallKitMaximumCallGroups' = "callKitMaximumCallGroups",
+ 'CallKitIncludesCallsInRecents' = "callKitIncludesCallsInRecents",
+ 'CallKitSupportedHandleTypes' = "callKitSupportedHandleTypes",
+ 'CallKitIconTemplateImageData' = "callKitIconTemplateImageData",
+ 'CallKitRingtoneSound' = "callKitRingtoneSound"
+}
diff --git a/lib/typescript/error/InvalidArgumentError.d.ts b/lib/typescript/error/InvalidArgumentError.d.ts
new file mode 100644
index 00000000..59a80736
--- /dev/null
+++ b/lib/typescript/error/InvalidArgumentError.d.ts
@@ -0,0 +1,11 @@
+import { TwilioError } from './TwilioError';
+/**
+ * Error describing that an SDK function is invoked with an invalid argument.
+ *
+ * @public
+ */
+export declare class InvalidArgumentError extends TwilioError {
+ description: string;
+ explanation: string;
+ constructor(message: string);
+}
diff --git a/lib/typescript/error/InvalidStateError.d.ts b/lib/typescript/error/InvalidStateError.d.ts
new file mode 100644
index 00000000..963eeb97
--- /dev/null
+++ b/lib/typescript/error/InvalidStateError.d.ts
@@ -0,0 +1,12 @@
+import { TwilioError } from './TwilioError';
+/**
+ * Error describing that the SDK has entered or is attempting to enter an
+ * invalid state.
+ *
+ * @public
+ */
+export declare class InvalidStateError extends TwilioError {
+ description: string;
+ explanation: string;
+ constructor(message: string);
+}
diff --git a/lib/typescript/error/TwilioError.d.ts b/lib/typescript/error/TwilioError.d.ts
new file mode 100644
index 00000000..7582a274
--- /dev/null
+++ b/lib/typescript/error/TwilioError.d.ts
@@ -0,0 +1,14 @@
+/**
+ * Generic Twilio error that the SDK will raise when encountering an error. Can
+ * be used to describe backend errors.
+ *
+ * @public
+ */
+export declare class TwilioError extends Error {
+ causes: string[];
+ code: number | undefined;
+ description: string;
+ explanation: string;
+ solutions: string[];
+ constructor(message: string, code?: number);
+}
diff --git a/lib/typescript/error/UnsupportedPlatformError.d.ts b/lib/typescript/error/UnsupportedPlatformError.d.ts
new file mode 100644
index 00000000..c448853d
--- /dev/null
+++ b/lib/typescript/error/UnsupportedPlatformError.d.ts
@@ -0,0 +1,12 @@
+import { TwilioError } from './TwilioError';
+/**
+ * Error describing that the an unsupported platform other than Android
+ * or iOS has been detected.
+ *
+ * @public
+ */
+export declare class UnsupportedPlatformError extends TwilioError {
+ description: string;
+ explanation: string;
+ constructor(message: string);
+}
diff --git a/lib/typescript/error/generated.d.ts b/lib/typescript/error/generated.d.ts
new file mode 100644
index 00000000..115cb882
--- /dev/null
+++ b/lib/typescript/error/generated.d.ts
@@ -0,0 +1,1558 @@
+/**
+ * This is a generated file. Any modifications here will be overwritten.
+ * See scripts/errors.js.
+ */
+import { TwilioError } from './TwilioError';
+/**
+ * @public
+ * Authorization errors.
+ */
+export declare namespace AuthorizationErrors {
+ /**
+ * @public
+ * AuthorizationErrors.AccessTokenInvalid error.
+ * Error code `20101`.
+ */
+ class AccessTokenInvalid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Invalid access token
+ */
+ description: string;
+ /**
+ * Twilio was unable to validate your Access Token
+ */
+ explanation: string;
+ /**
+ * AccessTokenInvalid
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.AccessTokenHeaderInvalid error.
+ * Error code `20102`.
+ */
+ class AccessTokenHeaderInvalid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Invalid access token header
+ */
+ description: string;
+ /**
+ * The header of the Access Token provided to the Twilio API was invalid
+ */
+ explanation: string;
+ /**
+ * AccessTokenHeaderInvalid
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.AccessTokenIssuerInvalid error.
+ * Error code `20103`.
+ */
+ class AccessTokenIssuerInvalid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Invalid access token issuer/subject
+ */
+ description: string;
+ /**
+ * The issuer or subject of the Access Token provided to the Twilio API was invalid
+ */
+ explanation: string;
+ /**
+ * AccessTokenIssuerInvalid
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.AccessTokenExpired error.
+ * Error code `20104`.
+ */
+ class AccessTokenExpired extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Access token expired or expiration date invalid
+ */
+ description: string;
+ /**
+ * The Access Token provided to the Twilio API has expired, the expiration time specified in the token was invalid, or the expiration time specified was too far in the future
+ */
+ explanation: string;
+ /**
+ * AccessTokenExpired
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.AccessTokenNotYetValid error.
+ * Error code `20105`.
+ */
+ class AccessTokenNotYetValid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Access token not yet valid
+ */
+ description: string;
+ /**
+ * The Access Token provided to the Twilio API is not yet valid
+ */
+ explanation: string;
+ /**
+ * AccessTokenNotYetValid
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.AccessTokenGrantsInvalid error.
+ * Error code `20106`.
+ */
+ class AccessTokenGrantsInvalid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Invalid access token grants
+ */
+ description: string;
+ /**
+ * The Access Token signature and issuer were valid, but the grants specified in the token were invalid, unparseable, or did not authorize the action being requested
+ */
+ explanation: string;
+ /**
+ * AccessTokenGrantsInvalid
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.AccessTokenSignatureInvalid error.
+ * Error code `20107`.
+ */
+ class AccessTokenSignatureInvalid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Invalid access token signature
+ */
+ description: string;
+ /**
+ * The signature for the Access Token provided was invalid.
+ */
+ explanation: string;
+ /**
+ * AccessTokenSignatureInvalid
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.AuthenticationFailed error.
+ * Error code `20151`.
+ */
+ class AuthenticationFailed extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Authentication Failed
+ */
+ description: string;
+ /**
+ * The Authentication with the provided JWT failed
+ */
+ explanation: string;
+ /**
+ * AuthenticationFailed
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.ExpirationTimeExceedsMaxTimeAllowed error.
+ * Error code `20157`.
+ */
+ class ExpirationTimeExceedsMaxTimeAllowed extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Expiration Time Exceeds Maximum Time Allowed
+ */
+ description: string;
+ /**
+ * The expiration time provided when creating the JWT exceeds the maximum duration allowed
+ */
+ explanation: string;
+ /**
+ * ExpirationTimeExceedsMaxTimeAllowed
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.AuthorizationError error.
+ * Error code `31201`.
+ */
+ class AuthorizationError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Authorization error
+ */
+ description: string;
+ /**
+ * The request requires user authentication. The server understood the request, but is refusing to fulfill it.
+ */
+ explanation: string;
+ /**
+ * AuthorizationError
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.RateExceededError error.
+ * Error code `31206`.
+ */
+ class RateExceededError extends TwilioError {
+ /**
+ * Rate limit exceeded.
+ */
+ causes: string[];
+ /**
+ * Rate exceeded authorized limit.
+ */
+ description: string;
+ /**
+ * The request performed exceeds the authorized limit.
+ */
+ explanation: string;
+ /**
+ * RateExceededError
+ */
+ name: string;
+ /**
+ * Ensure message send rate does not exceed authorized limits.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.CallMessageEventTypeInvalidError error.
+ * Error code `31210`.
+ */
+ class CallMessageEventTypeInvalidError extends TwilioError {
+ /**
+ * The Call Message Event Type is invalid and is not understood by Twilio Voice.
+ */
+ causes: string[];
+ /**
+ * Call Message Event Type is invalid.
+ */
+ description: string;
+ /**
+ * The Call Message Event Type is invalid and is not understood by Twilio Voice.
+ */
+ explanation: string;
+ /**
+ * CallMessageEventTypeInvalidError
+ */
+ name: string;
+ /**
+ * Ensure the Call Message Event Type is Valid and understood by Twilio Voice and try again.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.CallMessageUnexpectedStateError error.
+ * Error code `31211`.
+ */
+ class CallMessageUnexpectedStateError extends TwilioError {
+ /**
+ * The Call should be at least in the ringing state to subscribe and send Call Message.
+ */
+ causes: string[];
+ /**
+ * Call is not in the expected state.
+ */
+ description: string;
+ /**
+ * The Call should be at least in the ringing state to send Call Message.
+ */
+ explanation: string;
+ /**
+ * CallMessageUnexpectedStateError
+ */
+ name: string;
+ /**
+ * Ensure the Call is at least in the ringing state and the subscription is successful and try again.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.PayloadSizeExceededError error.
+ * Error code `31212`.
+ */
+ class PayloadSizeExceededError extends TwilioError {
+ /**
+ * The payload size of Call Message Event exceeds the authorized limit.
+ */
+ causes: string[];
+ /**
+ * Call Message Event Payload size exceeded authorized limit.
+ */
+ description: string;
+ /**
+ * The request performed to send a Call Message Event exceeds the payload size authorized limit
+ */
+ explanation: string;
+ /**
+ * PayloadSizeExceededError
+ */
+ name: string;
+ /**
+ * Reduce payload size of Call Message Event to be within the authorized limit and try again.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * AuthorizationErrors.AccessTokenRejected error.
+ * Error code `51007`.
+ */
+ class AccessTokenRejected extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Token authentication is rejected by authentication service
+ */
+ description: string;
+ /**
+ * The authentication service has rejected the provided Access Token. To check whether the Access Token is structurally correct, you can use the tools available at https://jwt.io. For the details of Twilio's specific Access Token implementation including the grant format, check https://www.twilio.com/docs/iam/access-tokens.
+ */
+ explanation: string;
+ /**
+ * AccessTokenRejected
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * Forbidden errors.
+ */
+export declare namespace ForbiddenErrors {
+ /**
+ * @public
+ * ForbiddenErrors.Forbidden error.
+ * Error code `20403`.
+ */
+ class Forbidden extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * 403 Forbidden
+ */
+ description: string;
+ /**
+ * The account lacks permission to access the Twilio API. Typically this means the account has been suspended or closed. For assistance, please contact support
+ */
+ explanation: string;
+ /**
+ * Forbidden
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * Client errors.
+ */
+export declare namespace ClientErrors {
+ /**
+ * @public
+ * ClientErrors.BadRequest error.
+ * Error code `31400`.
+ */
+ class BadRequest extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Bad Request (HTTP/SIP)
+ */
+ description: string;
+ /**
+ * The request could not be understood due to malformed syntax.
+ */
+ explanation: string;
+ /**
+ * BadRequest
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.Forbidden error.
+ * Error code `31403`.
+ */
+ class Forbidden extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Forbidden (HTTP/SIP)
+ */
+ description: string;
+ /**
+ * The server understood the request, but is refusing to fulfill it.
+ */
+ explanation: string;
+ /**
+ * Forbidden
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.NotFound error.
+ * Error code `31404`.
+ */
+ class NotFound extends TwilioError {
+ /**
+ * The outbound call was made to an invalid phone number.
+ * The TwiML application sid is missing a Voice URL.
+ */
+ causes: string[];
+ /**
+ * Not Found (HTTP/SIP)
+ */
+ description: string;
+ /**
+ * The server has not found anything matching the request.
+ */
+ explanation: string;
+ /**
+ * NotFound
+ */
+ name: string;
+ /**
+ * Ensure the phone number dialed is valid.
+ * Ensure the TwiML application is configured correctly with a Voice URL link.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.RequestTimeout error.
+ * Error code `31408`.
+ */
+ class RequestTimeout extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Request Timeout (HTTP/SIP)
+ */
+ description: string;
+ /**
+ * A request timeout occurred.
+ */
+ explanation: string;
+ /**
+ * RequestTimeout
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.Conflict error.
+ * Error code `31409`.
+ */
+ class Conflict extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Conflict (HTTP)
+ */
+ description: string;
+ /**
+ * The request could not be processed because of a conflict in the current state of the resource. Another request may be in progress.
+ */
+ explanation: string;
+ /**
+ * Conflict
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.UpgradeRequired error.
+ * Error code `31426`.
+ */
+ class UpgradeRequired extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Upgrade Required (HTTP)
+ */
+ description: string;
+ /**
+ * This error is raised when an HTTP 426 response is received. The reason for this is most likely because of an incompatible TLS version. To mitigate this, you may need to upgrade the OS or download a more recent version of the SDK.
+ */
+ explanation: string;
+ /**
+ * UpgradeRequired
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.TooManyRequests error.
+ * Error code `31429`.
+ */
+ class TooManyRequests extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Too Many Requests (HTTP)
+ */
+ description: string;
+ /**
+ * Too many requests were sent in a given amount of time.
+ */
+ explanation: string;
+ /**
+ * TooManyRequests
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.TemporarilyUnavailable error.
+ * Error code `31480`.
+ */
+ class TemporarilyUnavailable extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Temporarily Unavailable (SIP)
+ */
+ description: string;
+ /**
+ * The callee is currently unavailable.
+ */
+ explanation: string;
+ /**
+ * TemporarilyUnavailable
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.CallTransactionDoesNotExist error.
+ * Error code `31481`.
+ */
+ class CallTransactionDoesNotExist extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Call/Transaction Does Not Exist (SIP)
+ */
+ description: string;
+ /**
+ * The call no longer exists.
+ */
+ explanation: string;
+ /**
+ * CallTransactionDoesNotExist
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.AddressIncomplete error.
+ * Error code `31484`.
+ */
+ class AddressIncomplete extends TwilioError {
+ /**
+ * The outbound call was made with a phone number that has an invalid format.
+ */
+ causes: string[];
+ /**
+ * Address Incomplete (SIP)
+ */
+ description: string;
+ /**
+ * The provided phone number is malformed.
+ */
+ explanation: string;
+ /**
+ * AddressIncomplete
+ */
+ name: string;
+ /**
+ * Ensure the phone number dialed is formatted correctly.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.BusyHere error.
+ * Error code `31486`.
+ */
+ class BusyHere extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Busy Here (SIP)
+ */
+ description: string;
+ /**
+ * The callee is busy.
+ */
+ explanation: string;
+ /**
+ * BusyHere
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ClientErrors.RequestTerminated error.
+ * Error code `31487`.
+ */
+ class RequestTerminated extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Request Terminated (SIP)
+ */
+ description: string;
+ /**
+ * The request has terminated as a result of a bye or cancel.
+ */
+ explanation: string;
+ /**
+ * RequestTerminated
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * Server errors.
+ */
+export declare namespace ServerErrors {
+ /**
+ * @public
+ * ServerErrors.InternalServerError error.
+ * Error code `31500`.
+ */
+ class InternalServerError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Internal Server Error (HTTP/SIP)
+ */
+ description: string;
+ /**
+ * The server could not fulfill the request due to some unexpected condition.
+ */
+ explanation: string;
+ /**
+ * InternalServerError
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ServerErrors.BadGateway error.
+ * Error code `31502`.
+ */
+ class BadGateway extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Bad Gateway (HTTP/SIP)
+ */
+ description: string;
+ /**
+ * The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request.
+ */
+ explanation: string;
+ /**
+ * BadGateway
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ServerErrors.ServiceUnavailable error.
+ * Error code `31503`.
+ */
+ class ServiceUnavailable extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Service Unavailable (HTTP/SIP)
+ */
+ description: string;
+ /**
+ * The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. This error can also be caused by the Application SID provided in the access token pointing to an inaccessible URL.
+ */
+ explanation: string;
+ /**
+ * ServiceUnavailable
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ServerErrors.GatewayTimeout error.
+ * Error code `31504`.
+ */
+ class GatewayTimeout extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Gateway Timeout (HTTP/SIP)
+ */
+ description: string;
+ /**
+ * The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.
+ */
+ explanation: string;
+ /**
+ * GatewayTimeout
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * ServerErrors.DNSResolutionError error.
+ * Error code `31530`.
+ */
+ class DNSResolutionError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * DNS Resolution Error (HTTP/SIP)
+ */
+ description: string;
+ /**
+ * Could not connect to the server.
+ */
+ explanation: string;
+ /**
+ * DNSResolutionError
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * SIPServer errors.
+ */
+export declare namespace SIPServerErrors {
+ /**
+ * @public
+ * SIPServerErrors.BusyEverywhere error.
+ * Error code `31600`.
+ */
+ class BusyEverywhere extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Busy Everywhere (SIP)
+ */
+ description: string;
+ /**
+ * All possible destinations are busy.
+ */
+ explanation: string;
+ /**
+ * BusyEverywhere
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * SIPServerErrors.Decline error.
+ * Error code `31603`.
+ */
+ class Decline extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Decline (SIP)
+ */
+ description: string;
+ /**
+ * The callee does not wish to participate in the call.
+ */
+ explanation: string;
+ /**
+ * Decline
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * SIPServerErrors.DoesNotExistAnywhere error.
+ * Error code `31604`.
+ */
+ class DoesNotExistAnywhere extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Does Not Exist Anywhere (SIP)
+ */
+ description: string;
+ /**
+ * The requested callee does not exist anywhere.
+ */
+ explanation: string;
+ /**
+ * DoesNotExistAnywhere
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * TwiML errors.
+ */
+export declare namespace TwiMLErrors {
+ /**
+ * @public
+ * TwiMLErrors.InvalidApplicationSid error.
+ * Error code `21218`.
+ */
+ class InvalidApplicationSid extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Invalid ApplicationSid
+ */
+ description: string;
+ /**
+ * You attempted to initiate an outbound phone call with an invalid ApplicationSid. The application may not exist anymore or may not be available within your account
+ */
+ explanation: string;
+ /**
+ * InvalidApplicationSid
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * General errors.
+ */
+export declare namespace GeneralErrors {
+ /**
+ * @public
+ * GeneralErrors.ConnectionError error.
+ * Error code `31005`.
+ */
+ class ConnectionError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Connection error
+ */
+ description: string;
+ /**
+ * A connection error occurred during the call
+ */
+ explanation: string;
+ /**
+ * ConnectionError
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * GeneralErrors.CallCancelledError error.
+ * Error code `31008`.
+ */
+ class CallCancelledError extends TwilioError {
+ /**
+ * The incoming call was cancelled because it was not answered in time or it was accepted/rejected by another application instance registered with the same identity.
+ */
+ causes: string[];
+ /**
+ * Call cancelled
+ */
+ description: string;
+ /**
+ * Unable to answer because the call has ended
+ */
+ explanation: string;
+ /**
+ * CallCancelledError
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * GeneralErrors.TransportError error.
+ * Error code `31009`.
+ */
+ class TransportError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Transport error
+ */
+ description: string;
+ /**
+ * No transport available to send or receive messages
+ */
+ explanation: string;
+ /**
+ * TransportError
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * MalformedRequest errors.
+ */
+export declare namespace MalformedRequestErrors {
+ /**
+ * @public
+ * MalformedRequestErrors.MalformedRequestError error.
+ * Error code `31100`.
+ */
+ class MalformedRequestError extends TwilioError {
+ /**
+ * Invalid content or MessageType passed to sendMessage method.
+ */
+ causes: string[];
+ /**
+ * The request had malformed syntax.
+ */
+ description: string;
+ /**
+ * The request could not be understood due to malformed syntax.
+ */
+ explanation: string;
+ /**
+ * MalformedRequestError
+ */
+ name: string;
+ /**
+ * Ensure content and MessageType passed to sendMessage method are valid.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * Registration errors.
+ */
+export declare namespace RegistrationErrors {
+ /**
+ * @public
+ * RegistrationErrors.RegistrationError error.
+ * Error code `31301`.
+ */
+ class RegistrationError extends TwilioError {
+ /**
+ * Not applicable.
+ */
+ causes: string[];
+ /**
+ * Registration error
+ */
+ description: string;
+ /**
+ *
+ */
+ explanation: string;
+ /**
+ * RegistrationError
+ */
+ name: string;
+ /**
+ * Not applicable.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * RegistrationErrors.UnsupportedCancelMessageError error.
+ * Error code `31302`.
+ */
+ class UnsupportedCancelMessageError extends TwilioError {
+ /**
+ * The identity associated with the Twilio Voice SDK is still registered to receive cancel push notification messages.
+ */
+ causes: string[];
+ /**
+ * Unsupported Cancel Message Error
+ */
+ description: string;
+ /**
+ * This version of the SDK no longer supports processing cancel push notification messages. You must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS with this version of the SDK to stop receiving cancel push notification messages. Cancellations are now handled internally and reported to you on behalf of the SDK.
+ */
+ explanation: string;
+ /**
+ * UnsupportedCancelMessageError
+ */
+ name: string;
+ /**
+ * The application must register via Voice.register(...) on Android or [TwilioVoice registerWithAccessToken:deviceToken:completion:] on iOS to stop receiving cancel push notification messages.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * UserMedia errors.
+ */
+export declare namespace UserMediaErrors {
+ /**
+ * @public
+ * UserMediaErrors.PermissionDeniedError error.
+ * Error code `31401`.
+ */
+ class PermissionDeniedError extends TwilioError {
+ /**
+ * The user denied the getUserMedia request.
+ * The browser denied the getUserMedia request.
+ * The application has not been configured with the proper permissions.
+ */
+ causes: string[];
+ /**
+ * UserMedia Permission Denied Error
+ */
+ description: string;
+ /**
+ * The browser or end-user denied permissions to user media. Therefore we were unable to acquire input audio.
+ */
+ explanation: string;
+ /**
+ * PermissionDeniedError
+ */
+ name: string;
+ /**
+ * The user should accept the request next time prompted. If the browser saved the deny, the user should change that permission in their browser.
+ * The user should to verify that the browser has permission to access the microphone at this address.
+ * The user should ensure that the proper permissions have been granted in the mobile device OS.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * Signaling errors.
+ */
+export declare namespace SignalingErrors {
+ /**
+ * @public
+ * SignalingErrors.ConnectionDisconnected error.
+ * Error code `53001`.
+ */
+ class ConnectionDisconnected extends TwilioError {
+ /**
+ * The device running your application lost its Internet connection.
+ */
+ causes: string[];
+ /**
+ * Signaling connection disconnected
+ */
+ description: string;
+ /**
+ * Raised whenever the signaling connection is unexpectedly disconnected.
+ */
+ explanation: string;
+ /**
+ * ConnectionDisconnected
+ */
+ name: string;
+ /**
+ * Ensure the device running your application has access to a stable Internet connection.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @public
+ * Media errors.
+ */
+export declare namespace MediaErrors {
+ /**
+ * @public
+ * MediaErrors.ClientLocalDescFailed error.
+ * Error code `53400`.
+ */
+ class ClientLocalDescFailed extends TwilioError {
+ /**
+ * The Client may not be using a supported WebRTC implementation.
+ * The Client may not have the necessary resources to create or apply a new media description.
+ */
+ causes: string[];
+ /**
+ * Client is unable to create or apply a local media description
+ */
+ description: string;
+ /**
+ * Raised whenever a Client is unable to create or apply a local media description.
+ */
+ explanation: string;
+ /**
+ * ClientLocalDescFailed
+ */
+ name: string;
+ /**
+ * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * MediaErrors.ServerLocalDescFailed error.
+ * Error code `53401`.
+ */
+ class ServerLocalDescFailed extends TwilioError {
+ /**
+ * A server-side error has occurred.
+ */
+ causes: string[];
+ /**
+ * Server is unable to create or apply a local media description
+ */
+ description: string;
+ /**
+ * Raised whenever the Server is unable to create or apply a local media description.
+ */
+ explanation: string;
+ /**
+ * ServerLocalDescFailed
+ */
+ name: string;
+ /**
+ * If the problem persists, try connecting to another region.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * MediaErrors.ClientRemoteDescFailed error.
+ * Error code `53402`.
+ */
+ class ClientRemoteDescFailed extends TwilioError {
+ /**
+ * The Client may not be using a supported WebRTC implementation.
+ * The Client may be connecting peer-to-peer with another Participant that is not using a supported WebRTC implementation.
+ * The Client may not have the necessary resources to apply a new media description.
+ */
+ causes: string[];
+ /**
+ * Client is unable to apply a remote media description
+ */
+ description: string;
+ /**
+ * Raised whenever the Client receives a remote media description but is unable to apply it.
+ */
+ explanation: string;
+ /**
+ * ClientRemoteDescFailed
+ */
+ name: string;
+ /**
+ * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * MediaErrors.ServerRemoteDescFailed error.
+ * Error code `53403`.
+ */
+ class ServerRemoteDescFailed extends TwilioError {
+ /**
+ * The Client may not be using a supported WebRTC implementation.
+ * The Client may not have the necessary resources to apply a new media description.
+ * A Server-side error may have caused the Server to generate an invalid media description.
+ */
+ causes: string[];
+ /**
+ * Server is unable to apply a remote media description
+ */
+ description: string;
+ /**
+ * Raised whenever the Server receives a remote media description but is unable to apply it.
+ */
+ explanation: string;
+ /**
+ * ServerRemoteDescFailed
+ */
+ name: string;
+ /**
+ * If you are experiencing this error using the JavaScript SDK, ensure you are running it with a supported WebRTC implementation.
+ * If the problem persists, try connecting to another region.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * MediaErrors.NoSupportedCodec error.
+ * Error code `53404`.
+ */
+ class NoSupportedCodec extends TwilioError {
+ /**
+ * The C++ SDK was built without the recommended set of codecs.
+ * The JavaScript SDK is running in a browser that does not implement the recommended set of codecs.
+ */
+ causes: string[];
+ /**
+ * No supported codec
+ */
+ description: string;
+ /**
+ * Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.
+ */
+ explanation: string;
+ /**
+ * NoSupportedCodec
+ */
+ name: string;
+ /**
+ * If you are experiencing this error using the C++ SDK, ensure you build it with the recommended set of codecs.
+ * If you are experiencing this error using the JavaScript SDK, ensure you are using a compatible browser.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * MediaErrors.ConnectionError error.
+ * Error code `53405`.
+ */
+ class ConnectionError extends TwilioError {
+ /**
+ * The Client was unable to establish a media connection.
+ * A media connection which was active failed liveliness checks.
+ */
+ causes: string[];
+ /**
+ * Media connection failed
+ */
+ description: string;
+ /**
+ * Raised by the Client or Server whenever a media connection fails.
+ */
+ explanation: string;
+ /**
+ * ConnectionError
+ */
+ name: string;
+ /**
+ * If the problem persists, try connecting to another region.
+ * Check your Client's network connectivity.
+ * If you've provided custom ICE Servers then ensure that the URLs and credentials are valid.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+ /**
+ * @public
+ * MediaErrors.MediaDtlsTransportFailedError error.
+ * Error code `53407`.
+ */
+ class MediaDtlsTransportFailedError extends TwilioError {
+ /**
+ * One or both of the DTLS peers have an invalid certificate.
+ * One or both of the DTLS peers have an outdated version of DTLS.
+ * One or both of the DTLS peers lost internet connectivity while performing a DTLS handshake.
+ */
+ causes: string[];
+ /**
+ * The media connection failed due to DTLS handshake failure
+ */
+ description: string;
+ /**
+ * There was a problem while negotiating with the remote DTLS peer. Therefore the Client will not be able to establish the media connection.
+ */
+ explanation: string;
+ /**
+ * MediaDtlsTransportFailedError
+ */
+ name: string;
+ /**
+ * Ensure that your certificate is valid.
+ * Ensure that you have a stable internet connection.
+ * Ensure that the browser or the Mobile SDK supports newer versions of DTLS.
+ */
+ solutions: string[];
+ constructor(message: string);
+ }
+}
+/**
+ * @internal
+ */
+export declare const errorsByCode: ReadonlyMap;
diff --git a/lib/typescript/error/index.d.ts b/lib/typescript/error/index.d.ts
new file mode 100644
index 00000000..a53fbbd9
--- /dev/null
+++ b/lib/typescript/error/index.d.ts
@@ -0,0 +1,5 @@
+export { InvalidArgumentError } from './InvalidArgumentError';
+export { InvalidStateError } from './InvalidStateError';
+export { UnsupportedPlatformError } from './UnsupportedPlatformError';
+export { TwilioError } from './TwilioError';
+export { AuthorizationErrors, ClientErrors, ForbiddenErrors, GeneralErrors, MalformedRequestErrors, MediaErrors, RegistrationErrors, ServerErrors, SignalingErrors, SIPServerErrors, TwiMLErrors, UserMediaErrors, } from './generated';
diff --git a/lib/typescript/error/utility.d.ts b/lib/typescript/error/utility.d.ts
new file mode 100644
index 00000000..b7a593b6
--- /dev/null
+++ b/lib/typescript/error/utility.d.ts
@@ -0,0 +1,12 @@
+import { TwilioError } from './TwilioError';
+/**
+ * Uses the generated error-code map to create the appropriate error.
+ * If the code is "unexpected" such that there is no constructor for that
+ * specific code, this function will default to a generic {@link TwilioError}.
+ *
+ * @param message an error message
+ * @param code a Twilio error code, for example `31209`
+ *
+ * @returns a {@link TwilioError} or appropriate sub-class
+ */
+export declare function constructTwilioError(message: string, code: number): TwilioError;
diff --git a/lib/typescript/index.d.ts b/lib/typescript/index.d.ts
new file mode 100644
index 00000000..f5133e58
--- /dev/null
+++ b/lib/typescript/index.d.ts
@@ -0,0 +1,18 @@
+/**
+ * Provides access to Twilio Programmable Voice for React Native applications
+ * running on iOS and Android devices.
+ *
+ * @packageDocumentation
+ */
+export { Voice } from './Voice';
+export { AudioDevice } from './AudioDevice';
+export { Call } from './Call';
+export { CallInvite } from './CallInvite';
+export { CallMessage } from './CallMessage/CallMessage';
+export { IncomingCallMessage } from './CallMessage/IncomingCallMessage';
+export { OutgoingCallMessage } from './CallMessage/OutgoingCallMessage';
+export { CustomParameters } from './type/common';
+export { CallKit } from './type/CallKit';
+export { RTCStats } from './type/RTCStats';
+import * as TwilioErrors from './error';
+export { TwilioErrors };
diff --git a/lib/typescript/tsdoc-metadata.json b/lib/typescript/tsdoc-metadata.json
new file mode 100644
index 00000000..aea29226
--- /dev/null
+++ b/lib/typescript/tsdoc-metadata.json
@@ -0,0 +1,11 @@
+// This file is read by tools that parse documentation comments conforming to the TSDoc standard.
+// It should be published with your NPM package. It should not be tracked by Git.
+{
+ "tsdocVersion": "0.12",
+ "toolPackages": [
+ {
+ "packageName": "@microsoft/api-extractor",
+ "packageVersion": "7.25.2"
+ }
+ ]
+}
diff --git a/lib/typescript/type/AudioDevice.d.ts b/lib/typescript/type/AudioDevice.d.ts
new file mode 100644
index 00000000..5396be81
--- /dev/null
+++ b/lib/typescript/type/AudioDevice.d.ts
@@ -0,0 +1,15 @@
+import type { AudioDevice } from '../AudioDevice';
+import type { Constants } from '../constants';
+import type { Uuid } from './common';
+export interface NativeAudioDeviceInfo {
+ uuid: Uuid;
+ type: AudioDevice.Type;
+ name: string;
+}
+export interface NativeAudioDevicesInfo {
+ audioDevices: NativeAudioDeviceInfo[];
+ selectedDevice?: NativeAudioDeviceInfo;
+}
+export interface NativeAudioDevicesUpdatedEvent extends NativeAudioDevicesInfo {
+ type: Constants.VoiceEventAudioDevicesUpdated;
+}
diff --git a/lib/typescript/type/Call.d.ts b/lib/typescript/type/Call.d.ts
new file mode 100644
index 00000000..de96ddb2
--- /dev/null
+++ b/lib/typescript/type/Call.d.ts
@@ -0,0 +1,57 @@
+import type { Constants } from '../constants';
+import type { CustomParameters, Uuid } from './common';
+import type { NativeErrorInfo } from './Error';
+import type { Call } from '../Call';
+import type { NativeCallMessageInfo } from './CallMessage';
+export interface NativeCallInfo {
+ uuid: Uuid;
+ customParameters?: CustomParameters;
+ from?: string;
+ [Constants.CallInfoInitialConnectedTimestamp]?: string;
+ isMuted?: boolean;
+ isOnHold?: boolean;
+ sid?: string;
+ state?: Call.State;
+ to?: string;
+}
+export interface NativeCallConnectedEvent {
+ type: Constants.CallEventConnected;
+ call: NativeCallInfo;
+}
+export interface NativeCallConnectFailureEvent {
+ type: Constants.CallEventConnectFailure;
+ call: NativeCallInfo;
+ error: NativeErrorInfo;
+}
+export interface NativeCallReconnectingEvent {
+ type: Constants.CallEventReconnecting;
+ call: NativeCallInfo;
+ error: NativeErrorInfo;
+}
+export interface NativeCallReconnectedEvent {
+ type: Constants.CallEventReconnected;
+ call: NativeCallInfo;
+}
+export interface NativeCallDisconnectedEvent {
+ type: Constants.CallEventDisconnected;
+ call: NativeCallInfo;
+ error?: NativeErrorInfo;
+}
+export interface NativeCallRingingEvent {
+ type: Constants.CallEventRinging;
+ call: NativeCallInfo;
+}
+export declare type NativeCallQualityWarnings = string[];
+export interface NativeCallQualityWarningsEvent {
+ type: Constants.CallEventQualityWarningsChanged;
+ call: NativeCallInfo;
+ [Constants.CallEventCurrentWarnings]: NativeCallQualityWarnings;
+ [Constants.CallEventPreviousWarnings]: NativeCallQualityWarnings;
+}
+export interface NativeCallMessageReceivedEvent {
+ type: Constants.CallEventMessageReceived;
+ call: NativeCallInfo;
+ [Constants.CallMessage]: NativeCallMessageInfo;
+}
+export declare type NativeCallEvent = NativeCallConnectedEvent | NativeCallConnectFailureEvent | NativeCallReconnectingEvent | NativeCallReconnectedEvent | NativeCallDisconnectedEvent | NativeCallRingingEvent | NativeCallQualityWarningsEvent | NativeCallMessageReceivedEvent;
+export declare type NativeCallEventType = Constants.CallEventConnectFailure | Constants.CallEventConnected | Constants.CallEventDisconnected | Constants.CallEventQualityWarningsChanged | Constants.CallEventReconnected | Constants.CallEventReconnecting | Constants.CallEventRinging | Constants.CallEventMessageReceived;
diff --git a/lib/typescript/type/CallInvite.d.ts b/lib/typescript/type/CallInvite.d.ts
new file mode 100644
index 00000000..a78475c7
--- /dev/null
+++ b/lib/typescript/type/CallInvite.d.ts
@@ -0,0 +1,40 @@
+import type { Constants } from '../constants';
+import type { CustomParameters, Uuid } from './common';
+import type { NativeErrorInfo } from './Error';
+import type { NativeCallMessageInfo } from './CallMessage';
+export interface BaseNativeCallInviteEvent {
+ callSid: string;
+}
+export interface NativeCallInviteInfo {
+ uuid: Uuid;
+ callSid: string;
+ customParameters?: CustomParameters;
+ from: string;
+ to: string;
+}
+export interface NativeCallInviteAcceptedEvent extends BaseNativeCallInviteEvent {
+ type: Constants.CallInviteEventTypeValueAccepted;
+ callInvite: NativeCallInviteInfo;
+}
+export interface NativeCallInviteNotificationTappedEvent extends BaseNativeCallInviteEvent {
+ type: Constants.CallInviteEventTypeValueNotificationTapped;
+}
+export interface NativeCallInviteRejectedEvent extends BaseNativeCallInviteEvent {
+ type: Constants.CallInviteEventTypeValueRejected;
+ callInvite: NativeCallInviteInfo;
+}
+export interface NativeCallInviteCancelledEvent extends BaseNativeCallInviteEvent {
+ type: Constants.CallInviteEventTypeValueCancelled;
+ cancelledCallInvite: NativeCancelledCallInviteInfo;
+ error?: NativeErrorInfo;
+}
+export interface NativeCancelledCallInviteInfo {
+ callSid: string;
+ from: string;
+ to: string;
+}
+export interface NativeCallInviteMessageReceivedEvent extends BaseNativeCallInviteEvent {
+ type: Constants.CallEventMessageReceived;
+ [Constants.CallMessage]: NativeCallMessageInfo;
+}
+export declare type NativeCallInviteEvent = NativeCallInviteNotificationTappedEvent | NativeCallInviteAcceptedEvent | NativeCallInviteRejectedEvent | NativeCallInviteCancelledEvent | NativeCallInviteMessageReceivedEvent;
diff --git a/lib/typescript/type/CallKit.d.ts b/lib/typescript/type/CallKit.d.ts
new file mode 100644
index 00000000..b2b918d6
--- /dev/null
+++ b/lib/typescript/type/CallKit.d.ts
@@ -0,0 +1,60 @@
+/**
+ * @public
+ * CallKit related types.
+ */
+export declare namespace CallKit {
+ /**
+ * @public
+ * iOS CallKit configuration options.
+ */
+ type ConfigurationOptions = {
+ /**
+ * Filename of a 80x80 PNG image that will show in the system call UI as the app icon.
+ */
+ callKitIconTemplateImageData: string;
+ /**
+ * Include call history in system recents (`true` by default).
+ *
+ * @remarks
+ * Only supported on iOS 11 and newer versions.
+ */
+ callKitIncludesCallsInRecents: boolean;
+ /**
+ * Maximum number of call groups (`2` by default).
+ */
+ callKitMaximumCallGroups: number;
+ /**
+ * Maximum number of calls per group (`5` by default).
+ */
+ callKitMaximumCallsPerCallGroup: number;
+ /**
+ * Filename of the incoming call ringing tone.
+ */
+ callKitRingtoneSound: string;
+ /**
+ * Supported handle types.
+ *
+ * @remarks
+ * See {@link CallKitHandleType}.
+ */
+ callKitSupportedHandleTypes: HandleType[];
+ };
+ /**
+ * @public
+ * Enumeration of all supported handle types by iOS CallKit.
+ */
+ enum HandleType {
+ /**
+ * Generic handle.
+ */
+ Generic = 0,
+ /**
+ * Phone number handle.
+ */
+ PhoneNumber = 1,
+ /**
+ * Email address handle.
+ */
+ EmailAddress = 2
+ }
+}
diff --git a/lib/typescript/type/CallMessage.d.ts b/lib/typescript/type/CallMessage.d.ts
new file mode 100644
index 00000000..1152ba0d
--- /dev/null
+++ b/lib/typescript/type/CallMessage.d.ts
@@ -0,0 +1,20 @@
+import type { Constants } from '../constants';
+import type { NativeErrorInfo } from './Error';
+export interface NativeCallMessageInfo {
+ [Constants.CallMessageContent]: any;
+ [Constants.CallMessageContentType]: string;
+ [Constants.CallMessageMessageType]: string;
+ [Constants.VoiceEventSid]?: string;
+}
+export interface NativeCallMessageEventBase {
+ [Constants.VoiceEventSid]: string;
+}
+export interface NativeCallMessageFailureEvent extends NativeCallMessageEventBase {
+ type: Constants.CallEventMessageFailure;
+ error: NativeErrorInfo;
+}
+export interface NativeCallMessageSentEvent extends NativeCallMessageEventBase {
+ type: Constants.CallEventMessageSent;
+}
+export declare type NativeCallMessageEvent = NativeCallMessageFailureEvent | NativeCallMessageSentEvent;
+export declare type NativeCallMessageEventType = Constants.CallEventMessageFailure | Constants.CallEventMessageSent;
diff --git a/lib/typescript/type/Error.d.ts b/lib/typescript/type/Error.d.ts
new file mode 100644
index 00000000..84550460
--- /dev/null
+++ b/lib/typescript/type/Error.d.ts
@@ -0,0 +1,9 @@
+import type { Constants } from '../constants';
+export interface NativeErrorInfo {
+ code: number;
+ message: string;
+}
+export interface NativeErrorEvent {
+ type: Constants.VoiceEventError;
+ error: NativeErrorInfo;
+}
diff --git a/lib/typescript/type/NativeModule.d.ts b/lib/typescript/type/NativeModule.d.ts
new file mode 100644
index 00000000..2a7fdeed
--- /dev/null
+++ b/lib/typescript/type/NativeModule.d.ts
@@ -0,0 +1,53 @@
+import type { NativeModulesStatic } from 'react-native';
+import type { Call } from '../Call';
+import type { CallInvite } from '../CallInvite';
+import type { NativeAudioDevicesInfo } from './AudioDevice';
+import type { NativeCallInfo } from './Call';
+import type { NativeCallInviteInfo } from './CallInvite';
+import type { Uuid } from './common';
+import type { RTCStats } from './RTCStats';
+export interface TwilioVoiceReactNative extends NativeModulesStatic {
+ /**
+ * Native types.
+ *
+ * The following event related functions are required by the React Native
+ * bindings.
+ */
+ addListener: (eventType: string) => void;
+ removeListeners: (count: number) => void;
+ /**
+ * Call bindings.
+ */
+ call_disconnect(callUuid: Uuid): Promise;
+ call_getStats(callUuid: Uuid): Promise;
+ call_hold(callUuid: Uuid, hold: boolean): Promise;
+ call_isOnHold(callUuid: Uuid): Promise;
+ call_isMuted(callUuid: Uuid): Promise;
+ call_mute(callUuid: Uuid, mute: boolean): Promise;
+ call_postFeedback(callUuid: Uuid, score: Call.Score, issue: Call.Issue): Promise;
+ call_sendDigits(callUuid: Uuid, digits: string): Promise;
+ call_sendMessage(callUuid: Uuid, content: string, contentType: string, messageType: string): Promise;
+ /**
+ * Call Invite bindings.
+ */
+ callInvite_accept(callInviteUuid: Uuid, acceptOptions: CallInvite.AcceptOptions): Promise;
+ callInvite_isValid(callInviteUuid: Uuid): Promise;
+ callInvite_reject(callInviteUuid: Uuid): Promise;
+ callInvite_updateCallerHandle(callInviteUuid: Uuid, handle: string): Promise;
+ /**
+ * Voice bindings.
+ */
+ voice_connect_android(token: string, twimlParams: Record): Promise;
+ voice_connect_ios(token: string, twimlParams: Record, contactHandle: string): Promise;
+ voice_initializePushRegistry(): Promise;
+ voice_setCallKitConfiguration(configuration: Record): Promise;
+ voice_getAudioDevices(): Promise;
+ voice_getCalls(): Promise;
+ voice_getCallInvites(): Promise;
+ voice_getDeviceToken(): Promise;
+ voice_getVersion(): Promise;
+ voice_register(accessToken: string): Promise;
+ voice_selectAudioDevice(audioDeviceUuid: Uuid): Promise;
+ voice_showNativeAvRoutePicker(): Promise;
+ voice_unregister(accessToken: string): Promise;
+}
diff --git a/lib/typescript/type/RTCStats.d.ts b/lib/typescript/type/RTCStats.d.ts
new file mode 100644
index 00000000..3f7936e3
--- /dev/null
+++ b/lib/typescript/type/RTCStats.d.ts
@@ -0,0 +1,91 @@
+/**
+ * Types related to WebRTC stats.
+ *
+ * @public
+ */
+export declare namespace RTCStats {
+ enum IceCandidatePairState {
+ STATE_FAILED = "STATE_FAILED",
+ STATE_FROZEN = "STATE_FROZEN",
+ STATE_IN_PROGRESS = "STATE_IN_PROGRESS",
+ STATE_SUCCEEDED = "STATE_SUCCEEDED",
+ STATE_WAITING = "STATE_WAITING"
+ }
+ interface IceCandidatePairStats {
+ activeCandidatePair: boolean;
+ availableIncomingBitrate: number;
+ availableOutgoingBitrate: number;
+ bytesReceived: number;
+ bytesSent: number;
+ consentRequestsReceived: number;
+ consentRequestsSent: number;
+ consentResponsesReceived: number;
+ consentResponsesSent: number;
+ currentRoundTripTime: number;
+ localCandidateId: string;
+ localCandidateIp: string;
+ nominated: boolean;
+ priority: number;
+ readable: boolean;
+ relayProtocol: string;
+ remoteCandidateId: string;
+ remoteCandidateIp: string;
+ requestsReceieved: number;
+ requestsSent: number;
+ responsesRecieved: number;
+ responsesSent: number;
+ retransmissionsReceived: number;
+ retransmissionsSent: number;
+ state: IceCandidatePairState;
+ totalRoundTripTime: number;
+ transportId: string;
+ writeable: boolean;
+ }
+ interface IceCandidateStats {
+ candidateType: string;
+ deleted: boolean;
+ ip: string;
+ isRemote: boolean;
+ port: number;
+ priority: number;
+ protocol: string;
+ transportId: string;
+ url: string;
+ }
+ interface BaseTrackStats {
+ codec: string;
+ packetsLost: number;
+ ssrc: string;
+ timestamp: number;
+ trackId: string;
+ }
+ interface LocalTrackStats extends BaseTrackStats {
+ bytesSent: number;
+ packetsSent: number;
+ roundTripTime: number;
+ }
+ interface LocalAudioTrackStats extends LocalTrackStats {
+ audioLevel: number;
+ jitter: number;
+ }
+ interface RemoteTrackStats extends BaseTrackStats {
+ bytesRecieved: number;
+ packetsReceived: number;
+ }
+ interface RemoteAudioTrackStats extends RemoteTrackStats {
+ audioLevel: number;
+ jitter: number;
+ mos: number;
+ }
+ /**
+ * WebRTC stats report. Contains diagnostics information about
+ * `RTCPeerConnection`s and summarizes data for an ongoing call.
+ */
+ interface StatsReport {
+ iceCandidatePairStats: IceCandidatePairStats[];
+ iceCandidateStats: IceCandidateStats[];
+ localAudioTrackStats: LocalAudioTrackStats[];
+ peerConnectionId: string;
+ remoteAudioTrackStats: RemoteAudioTrackStats[];
+ }
+}
diff --git a/lib/typescript/type/Voice.d.ts b/lib/typescript/type/Voice.d.ts
new file mode 100644
index 00000000..b099b3b4
--- /dev/null
+++ b/lib/typescript/type/Voice.d.ts
@@ -0,0 +1,16 @@
+import type { Constants } from '../constants';
+import type { NativeAudioDevicesUpdatedEvent } from './AudioDevice';
+import type { NativeCallInviteInfo } from './CallInvite';
+import type { NativeErrorEvent } from './Error';
+export interface NativeRegisteredEvent {
+ type: Constants.VoiceEventRegistered;
+}
+export interface NativeUnregisteredEvent {
+ type: Constants.VoiceEventUnregistered;
+}
+export interface NativeCallInviteIncomingEvent {
+ [Constants.VoiceEventType]: Constants.VoiceEventTypeValueIncomingCallInvite;
+ callInvite: NativeCallInviteInfo;
+}
+export declare type NativeVoiceEvent = NativeAudioDevicesUpdatedEvent | NativeCallInviteIncomingEvent | NativeErrorEvent | NativeRegisteredEvent | NativeUnregisteredEvent;
+export declare type NativeVoiceEventType = Constants.VoiceEventAudioDevicesUpdated | Constants.VoiceEventTypeValueIncomingCallInvite | Constants.VoiceEventError | Constants.VoiceEventRegistered | Constants.VoiceEventUnregistered;
diff --git a/lib/typescript/type/common.d.ts b/lib/typescript/type/common.d.ts
new file mode 100644
index 00000000..557775da
--- /dev/null
+++ b/lib/typescript/type/common.d.ts
@@ -0,0 +1,15 @@
+/**
+ * Call custom parameters. If custom parameters are present for a call, then
+ * it will have this typing.
+ *
+ * @remarks
+ * - `Call`s will have a method to access custom parameters, see
+ * {@link (Call:class).getCustomParameters}.
+ * - `CallInvite`s will have a method to access custom parameters for the call
+ * that is associated with the invite, see
+ * {@link (CallInvite:class).getCustomParameters}.
+ *
+ * @public
+ */
+export declare type CustomParameters = Record;
+export declare type Uuid = string;
diff --git a/package.json b/package.json
index aea0f708..2f662b6b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@twilio/voice-react-native-sdk",
- "version": "1.2.0-dev",
+ "version": "1.2.0",
"description": "Twilio Voice React Native SDK",
"main": "lib/commonjs/index",
"module": "lib/module/index",
diff --git a/src/constants.ts b/src/constants.ts
new file mode 100644
index 00000000..1577037c
--- /dev/null
+++ b/src/constants.ts
@@ -0,0 +1,180 @@
+export enum Constants {
+ // React Native Voice SDK
+ 'ReactNativeVoiceSDK' = 'react-native',
+ 'ReactNativeVoiceSDKVer' = '1.2.0',
+
+ // Scope names
+ 'ScopeVoice' = 'scopeVoice',
+ 'ScopeCall' = 'scopeCall',
+ 'ScopeCallMessage' = 'scopeCallMessage',
+ 'ScopeCallInvite' = 'scopeCallInvite',
+
+ // Voice events
+ // Common
+ 'VoiceEventError' = 'voiceEventError',
+ 'VoiceEventType' = 'type',
+
+ // Error
+ 'VoiceErrorKeyError' = 'error',
+ 'VoiceErrorKeyCode' = 'code',
+ 'VoiceErrorKeyMessage' = 'message',
+
+ // Registration
+ 'VoiceEventRegistered' = 'voiceEventRegistered',
+ 'VoiceEventUnregistered' = 'voiceEventUnregistered',
+
+ // Call Info
+ 'CallInfoUuid' = 'uuid',
+ 'CallInfoSid' = 'sid',
+ 'CallInfoFrom' = 'from',
+ 'CallInfoTo' = 'to',
+ 'CallInfoIsMuted' = 'isMuted',
+ 'CallInfoIsOnHold' = 'isOnHold',
+ 'CallInfoState' = 'state',
+ 'CallInfoInitialConnectedTimestamp' = 'initialConnectedTimestamp',
+
+ // Call States
+ 'CallStateConnected' = 'connected',
+ 'CallStateConnecting' = 'connecting',
+ 'CallStateDisconnected' = 'disconnected',
+ 'CallStateReconnecting' = 'reconnecting',
+ 'CallStateRinging' = 'ringing',
+
+ // Call Invite Info
+ 'CallInviteInfoUuid' = 'uuid',
+ 'CallInviteInfoCallSid' = 'callSid',
+ 'CallInviteInfoFrom' = 'from',
+ 'CallInviteInfoTo' = 'to',
+ 'CallInviteInfoCustomParameters' = 'customParameters',
+
+ // Cancelled Call Invite Info
+ 'CancelledCallInviteInfoUuid' = 'uuid',
+ 'CancelledCallInviteInfoCallSid' = 'callSid',
+ 'CancelledCallInviteInfoFrom' = 'from',
+ 'CancelledCallInviteInfoTo' = 'to',
+ 'CancelledCallInviteInfoCustomParameters' = 'customParameters',
+
+ // Incoming Call Invite event
+ 'VoiceEventTypeValueIncomingCallInvite' = 'voiceEventTypeValueIncomingCallInvite',
+
+ // Call Message
+ 'VoiceEventSid' = 'voiceEventSid',
+ 'CallMessage' = 'callMessage',
+ 'CallMessageContent' = 'content',
+ 'CallMessageContentType' = 'contentType',
+ 'CallMessageMessageType' = 'messageType',
+ 'JSEventKeyCallMessageInfo' = 'callMessage',
+
+ // Audio Devices Updated Event
+ 'VoiceEventAudioDevicesUpdated' = 'voiceEventAudioDevicesUpdated',
+
+ // Audio Device
+ 'AudioDeviceKeyUuid' = 'uuid',
+ 'AudioDeviceKeyName' = 'name',
+ 'AudioDeviceKeyType' = 'type',
+ 'AudioDeviceKeyAudioDevices' = 'audioDevices',
+ 'AudioDeviceKeySelectedDevice' = 'selectedDevice',
+ 'AudioDeviceKeyEarpiece' = 'earpiece',
+ 'AudioDeviceKeySpeaker' = 'speaker',
+ 'AudioDeviceKeyBluetooth' = 'bluetooth',
+
+ // CallInvite events
+ 'CallInviteEventKeyType' = 'type',
+ 'CallInviteEventTypeValueAccepted' = 'callInviteEventTypeValueCallInviteAccepted',
+ 'CallInviteEventTypeValueNotificationTapped' = 'callInviteEventTypeValueCallInviteNotificationTapped',
+ 'CallInviteEventTypeValueRejected' = 'callInviteEventTypeValueCallInviteRejected',
+ 'CallInviteEventTypeValueCancelled' = 'callInviteEventTypeValueCallInviteCancelled',
+ 'CallInviteEventKeyCallSid' = 'callSid',
+
+ // Call events
+ // State
+ 'CallEventConnected' = 'callEventConnected',
+ 'CallEventConnectFailure' = 'callEventConnectFailure',
+ 'CallEventDisconnected' = 'callEventDisconnected',
+ 'CallEventReconnecting' = 'callEventReconnecting',
+ 'CallEventReconnected' = 'callEventReconnected',
+ 'CallEventRinging' = 'callEventRinging',
+
+ // Quality warnings
+ 'CallEventQualityWarningsChanged' = 'callEventQualityWarningsChanged',
+ 'CallEventCurrentWarnings' = 'callEventCurrentWarnings',
+ 'CallEventPreviousWarnings' = 'callEventPreviousWarnings',
+
+ // Call message events
+ 'CallEventMessageFailure' = 'callEventMessageFailure',
+ 'CallEventMessageReceived' = 'callEventMessageReceived',
+ 'CallEventMessageSent' = 'callEventMessageSent',
+
+ // Post feedback
+ 'Score' = 'score',
+ 'Issue' = 'issue',
+
+ // StatsReport
+ 'PeerConnectionId' = 'peerConnectionId',
+ 'LocalAudioTrackStats' = 'localAudioTrackStats',
+ 'RemoteAudioTrackStats' = 'remoteAudioTrackStats',
+ 'IceCandidatePairStats' = 'iceCandidatePairStats',
+ 'IceCandidateStats' = 'iceCandidateStats',
+ 'Codec' = 'codec',
+ 'PacketsLost' = 'packetsLost',
+ 'Ssrc' = 'ssrc',
+ 'TrackId' = 'trackId',
+ 'Timestamp' = 'timestamp',
+ 'BytesSent' = 'bytesSent',
+ 'PacketsSent' = 'packetsSent',
+ 'RoundTripTime' = 'roundTripTime',
+ 'AudioLevel' = 'audioLevel',
+ 'Jitter' = 'jitter',
+ 'BytesReceived' = 'bytesReceived',
+ 'Mos' = 'mos',
+ 'TransportId' = 'transportId',
+ 'LocalCandidateId' = 'localCandidateId',
+ 'RemoteCandidateId' = 'remoteCandidateId',
+ 'State' = 'state',
+ 'LocalCandidateIp' = 'localCandidateIp',
+ 'RemoteCandidateIp' = 'remoteCandidateIp',
+ 'Nominated' = 'nominated',
+ 'Writeable' = 'writeable',
+ 'Readable' = 'readable',
+ 'TotalRoundTripTime' = 'totalRoundTripTime',
+ 'CurrentRoundTripTime' = 'currentRoundTripTime',
+ 'AvailableOutgoingBitrate' = 'availableOutgoingBitrate',
+ 'AvailableIncomingBitrate' = 'availableIncomingBitrate',
+ 'RequestsReceived' = 'requestsReceived',
+ 'RequestsSent' = 'requestsSent',
+ 'ResponsesReceived' = 'responsesReceived',
+ 'ResponsesSent' = 'responsesSent',
+ 'RetransmissionsReceived' = 'retransmissionsReceived',
+ 'RetransmissionsSent' = 'retransmissionsSent',
+ 'ConsentRequestsReceived' = 'consentRequestsReceived',
+ 'ConsentRequestsSent' = 'consentRequestsSent',
+ 'ConsentResponsesReceived' = 'consentResponsesReceived',
+ 'ConsentResponsesSent' = 'consentResponsesSent',
+ 'ActiveCandidatePair' = 'activeCandidatePair',
+ 'RelayProtocol' = 'relayProtocol',
+ 'IsRemote' = 'isRemote',
+ 'Ip' = 'ip',
+ 'Port' = 'port',
+ 'Protocol' = 'protocol',
+ 'CandidateType' = 'candidateType',
+ 'Priority' = 'priority',
+ 'Url' = 'url',
+ 'Deleted' = 'deleted',
+ 'PacketsReceived' = 'packetsReceived',
+
+ // IceCandidatePairState
+ 'StateFailed' = 'stateFailed',
+ 'StateFrozen' = 'stateFrozen',
+ 'StateInProgress' = 'stateInProgress',
+ 'StateSucceeded' = 'stateSucceeded',
+ 'StateWaiting' = 'stateWaiting',
+ 'StateUnknown' = 'stateUnknown',
+
+ // iOS CallKit configuration
+ 'CallKitMaximumCallsPerCallGroup' = 'callKitMaximumCallsPerCallGroup',
+ 'CallKitMaximumCallGroups' = 'callKitMaximumCallGroups',
+ 'CallKitIncludesCallsInRecents' = 'callKitIncludesCallsInRecents',
+ 'CallKitSupportedHandleTypes' = 'callKitSupportedHandleTypes',
+ 'CallKitIconTemplateImageData' = 'callKitIconTemplateImageData',
+ 'CallKitRingtoneSound' = 'callKitRingtoneSound',
+}