@vonage/client-sdk 2.6.1 → 2.6.2-snapshot.20260820113314
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api_docs/ts/assets/hierarchy.js +1 -0
- package/api_docs/ts/assets/highlight.css +1 -1
- package/api_docs/ts/assets/icons.js +17 -14
- package/api_docs/ts/assets/icons.svg +1 -1
- package/api_docs/ts/assets/main.js +5 -4
- package/api_docs/ts/assets/navigation.js +1 -1
- package/api_docs/ts/assets/search.js +1 -1
- package/api_docs/ts/assets/style.css +1460 -1224
- package/api_docs/ts/classes/ClientConfig.html +207 -16
- package/api_docs/ts/classes/ClientInitConfig.html +130 -14
- package/api_docs/ts/classes/VonageClient.html +1697 -335
- package/api_docs/ts/enums/CallDisconnectReason.html +54 -3
- package/api_docs/ts/enums/CancelReason.html +66 -6
- package/api_docs/ts/enums/HangupReason.html +70 -7
- package/api_docs/ts/enums/LegStatus.html +62 -5
- package/api_docs/ts/enums/LoggingLevel.html +74 -8
- package/api_docs/ts/enums/MemberChannelType.html +94 -13
- package/api_docs/ts/enums/OrderBy.html +58 -2
- package/api_docs/ts/enums/PresentingOrder.html +62 -8
- package/api_docs/ts/enums/SessionErrorReason.html +62 -5
- package/api_docs/ts/enums/VoiceChannelType.html +66 -6
- package/api_docs/ts/enums/VonageErrorType.html +70 -7
- package/api_docs/ts/functions/none.html +42 -2
- package/api_docs/ts/functions/some.html +48 -3
- package/api_docs/ts/hierarchy.html +30 -0
- package/api_docs/ts/index.html +102 -26
- package/api_docs/ts/interfaces/CallSayParams.html +75 -8
- package/api_docs/ts/interfaces/Channel.html +67 -6
- package/api_docs/ts/interfaces/Conversation.html +127 -20
- package/api_docs/ts/interfaces/ConversationProperties.html +75 -8
- package/api_docs/ts/interfaces/ConversationTimestamp.html +75 -5
- package/api_docs/ts/interfaces/ConversationsPage.html +81 -8
- package/api_docs/ts/interfaces/CreateConversationParameters.html +88 -15
- package/api_docs/ts/interfaces/EmergencyCallData.html +67 -6
- package/api_docs/ts/interfaces/EmergencyCallOptions.html +57 -4
- package/api_docs/ts/interfaces/EphemeralConversationEvent.html +81 -12
- package/api_docs/ts/interfaces/EventsPage.html +81 -8
- package/api_docs/ts/interfaces/GetCallLegsParameters.html +69 -8
- package/api_docs/ts/interfaces/GetConversationEventsParameters.html +87 -14
- package/api_docs/ts/interfaces/GetConversationMembersParameters.html +69 -8
- package/api_docs/ts/interfaces/GetConversationsParameters.html +81 -12
- package/api_docs/ts/interfaces/Leg.html +131 -21
- package/api_docs/ts/interfaces/LegChannel.html +75 -8
- package/api_docs/ts/interfaces/LegsPage.html +81 -8
- package/api_docs/ts/interfaces/Location.html +67 -6
- package/api_docs/ts/interfaces/Member.html +81 -12
- package/api_docs/ts/interfaces/MemberChannel.html +69 -8
- package/api_docs/ts/interfaces/MemberEventBody.html +75 -7
- package/api_docs/ts/interfaces/MemberTimestamp.html +75 -5
- package/api_docs/ts/interfaces/MembersPage.html +81 -8
- package/api_docs/ts/interfaces/MessageAudioEventBody.html +67 -5
- package/api_docs/ts/interfaces/MessageCustomEventBody.html +67 -5
- package/api_docs/ts/interfaces/MessageFileEventBody.html +67 -6
- package/api_docs/ts/interfaces/MessageImageEventBody.html +67 -6
- package/api_docs/ts/interfaces/MessageLocationEventBody.html +67 -6
- package/api_docs/ts/interfaces/MessageTemplateEventBody.html +93 -9
- package/api_docs/ts/interfaces/MessageTextEventBody.html +67 -6
- package/api_docs/ts/interfaces/MessageVCardEventBody.html +67 -6
- package/api_docs/ts/interfaces/MessageVideoEventBody.html +67 -6
- package/api_docs/ts/interfaces/RTCQuality.html +123 -11
- package/api_docs/ts/interfaces/RtcStats.html +179 -18
- package/api_docs/ts/interfaces/Template.html +59 -4
- package/api_docs/ts/interfaces/UpdateConversationParameters.html +87 -14
- package/api_docs/ts/interfaces/User.html +107 -16
- package/api_docs/ts/interfaces/UserChannels.html +139 -13
- package/api_docs/ts/interfaces/UserTimestamp.html +75 -5
- package/api_docs/ts/interfaces/VonageError.html +89 -12
- package/api_docs/ts/interfaces/VonageEvent.html +131 -22
- package/api_docs/ts/interfaces/Whatsapp.html +59 -4
- package/api_docs/ts/modules.html +69 -74
- package/api_docs/ts/types/ClientConfigObject.html +52 -5
- package/api_docs/ts/types/ClientInitConfigObject.html +59 -4
- package/api_docs/ts/types/ConfigRegion.html +34 -2
- package/api_docs/ts/types/ConversationEvent.html +34 -2
- package/api_docs/ts/types/CustomData.html +34 -2
- package/api_docs/ts/types/Json.html +34 -2
- package/api_docs/ts/types/JsonValue.html +34 -2
- package/api_docs/ts/types/MemberStatus.html +34 -2
- package/api_docs/ts/types/Option.html +38 -2
- package/api_docs/ts/types/PersistentConversationEvent.html +34 -2
- package/api_docs/ts/types/Topics.html +34 -2
- package/api_docs/ts/types/VonageLogger.html +59 -4
- package/api_docs/ts/variables/Topics.html +34 -0
- package/api_docs/ts/variables/VonageError.html +38 -0
- package/dist/client/VonageClient.d.ts +704 -704
- package/dist/client/index.cjs +45072 -36319
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.mjs +44700 -35947
- package/dist/coreExtend.d.ts +107 -107
- package/dist/kotlin/JsUnions.d.ts +443 -443
- package/dist/kotlin/clientsdk-clientcore_js.d.ts +724 -145
- package/dist/utils/ClientConfig.d.ts +104 -104
- package/dist/utils/ConversationEventBodies.d.ts +125 -125
- package/dist/utils/ConversationModels.d.ts +170 -170
- package/dist/utils/Enums.d.ts +56 -56
- package/dist/utils/ErrorModels.d.ts +23 -23
- package/dist/utils/JsonUtils.d.ts +15 -15
- package/dist/utils/Option.d.ts +19 -19
- package/dist/utils/RequestParameterModels.d.ts +134 -134
- package/dist/utils/index.d.ts +10 -10
- package/dist/utils/jsEnumToVonageObject.d.ts +10 -10
- package/dist/utils/logging.d.ts +53 -53
- package/dist/utils/vonage.d.ts +2 -2
- package/dist/vonageClientSDK.js +44299 -35558
- package/dist/vonageClientSDK.min.js +25 -25
- package/dist/vonageClientSDK.min.mjs +26 -26
- package/dist/vonageClientSDK.mjs +44299 -35558
- package/package.json +6 -6
- package/typedoc.json +3 -0
- package/api_docs/ts/variables/Topics-1.html +0 -2
- package/api_docs/ts/variables/VonageError-1.html +0 -3
package/api_docs/ts/index.html
CHANGED
|
@@ -1,33 +1,109 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en"><head><meta
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>@vonage/client-sdk - v0.0.0</title><meta name="description" content="Documentation for @vonage/client-sdk"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
|
|
2
|
+
<div class="tsd-toolbar-contents container"><a href="index.html" class="title">@vonage/client-sdk - v0.0.0</a>
|
|
3
|
+
<div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
|
|
4
|
+
<ul role="listbox" id="tsd-search-results"></ul>
|
|
5
|
+
<div id="tsd-search-status" aria-live="polite" aria-atomic="true">
|
|
6
|
+
<div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header>
|
|
7
|
+
<div class="container container-main">
|
|
8
|
+
<div class="col-content">
|
|
9
|
+
<div class="tsd-page-title">
|
|
10
|
+
<h1>@vonage/client-sdk - v0.0.0</h1></div>
|
|
11
|
+
<div class="tsd-panel tsd-typography"><h1 id="vonage-client-sdk" class="tsd-anchor-link">Vonage Client SDK<a href="#vonage-client-sdk" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1>
|
|
12
|
+
<p>The Client SDK is intended to provide a ready solution for developers to build Programmable Conversation applications across multiple Channels including: Messages, Voice, SIP, websockets, and App.</p>
|
|
2
13
|
<blockquote>
|
|
3
14
|
<p><strong>⚠️ Warning:</strong> Chat Functionality (Deprecated)</p>
|
|
4
15
|
<p>The chat functionality in our SDK is now deprecated and is scheduled for removal by the end of April 2026. While it remains available for the time being, we recommend avoiding the introduction of new dependencies on this feature. Existing methods may change or become unsupported as we progress toward its sunset. If you rely on this functionality, please begin planning your migration. Your feedback remains welcome during this transition period.</p>
|
|
5
16
|
</blockquote>
|
|
6
|
-
<
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
<
|
|
12
|
-
|
|
13
|
-
<
|
|
14
|
-
</code><button>Copy</button></pre>
|
|
15
|
-
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
<a id="md:listen-for-conversation-events" class="tsd-anchor"></a><h3><a href="#md:listen-for-conversation-events">Listen for Conversation Events</a></h3><pre><code class="language-ts"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-0">eventHandler</span><span class="hl-1"> = (</span><span class="hl-4">event</span><span class="hl-1">: </span><span class="hl-13">ConversationEvent</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'member:invited'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Member invited: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">memberId</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'member:joined'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Member joined: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">memberId</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'member:left'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Member left: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">memberId</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'ephemeral'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Ephemeral event: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'custom'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Custom event: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:text'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Text message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">text</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:custom'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Custom message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">customData</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:image'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Image message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">imageUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:video'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Video message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">videoUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:audio'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Audio message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">audioUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:file'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`File message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">fileUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:vcard'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Vcard message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">vcardUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:location'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Location message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">location</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:template'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Template message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">template</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'event:delete'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Template message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:seen'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Template message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:delivered'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Message delivered event: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:rejected'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Message rejected event </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:submitted'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Message delivered event </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:undeliverable'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Message undeliverable event </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-0">exhaustiveCheck</span><span class="hl-1">(</span><span class="hl-4">event</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">listener</span><span class="hl-1"> = </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">on</span><span class="hl-1">(</span><span class="hl-2">'conversationEvent'</span><span class="hl-1">, </span><span class="hl-4">eventHandler</span><span class="hl-1">);</span><br/><br/><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">off</span><span class="hl-1">(</span><span class="hl-2">'conversationEvent'</span><span class="hl-1">, </span><span class="hl-4">listener</span><span class="hl-1">);</span>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
17
|
+
<h2 id="installation" class="tsd-anchor-link">Installation<a href="#installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
18
|
+
<p>The SDK can be installed using the npm install command</p>
|
|
19
|
+
<pre><code class="bash"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">i</span><span class="hl-1"> </span><span class="hl-2">@vonage/client-sdk</span>
|
|
20
|
+
</code><button type="button">Copy</button></pre>
|
|
21
|
+
|
|
22
|
+
<h2 id="sdk-setup" class="tsd-anchor-link">SDK setup<a href="#sdk-setup" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
23
|
+
<h3 id="with-bundler-webpack-vite-etc-and-react" class="tsd-anchor-link">With bundler (Webpack, Vite, etc.) and React<a href="#with-bundler-webpack-vite-etc-and-react" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
24
|
+
<pre><code class="js"><span class="hl-3">import</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">VonageClient</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">ClientConfig</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">ConfigRegion</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">LoggingLevel</span><br/><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">'@vonage/client-sdk'</span><span class="hl-1">;</span><br/><span class="hl-3">import</span><span class="hl-1"> { </span><span class="hl-4">useState</span><span class="hl-1">, </span><span class="hl-4">useEffect</span><span class="hl-1"> } </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">'react'</span><span class="hl-1">;</span><br/><br/><span class="hl-5">function</span><span class="hl-1"> </span><span class="hl-0">App</span><span class="hl-1">() {</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> [</span><span class="hl-6">config</span><span class="hl-1">] = </span><span class="hl-0">useState</span><span class="hl-1">(() </span><span class="hl-5">=></span><span class="hl-1"> </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">ClientConfig</span><span class="hl-1">(</span><span class="hl-4">ConfigRegion</span><span class="hl-1">.</span><span class="hl-6">AP</span><span class="hl-1">));</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> [</span><span class="hl-6">client</span><span class="hl-1">] = </span><span class="hl-0">useState</span><span class="hl-1">(() </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-7">// Initialize client with optional config (default: ERROR logging, US region).</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">client</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">VonageClient</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">loggingLevel:</span><span class="hl-1"> </span><span class="hl-4">LoggingLevel</span><span class="hl-1">.</span><span class="hl-6">DEBUG</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">region:</span><span class="hl-1"> </span><span class="hl-4">ConfigRegion</span><span class="hl-1">.</span><span class="hl-6">EU</span><br/><span class="hl-1"> });</span><br/><span class="hl-1"> </span><span class="hl-7">// Or update some options after initialization.</span><br/><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">setConfig</span><span class="hl-1">(</span><span class="hl-4">config</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">return</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">;</span><br/><span class="hl-1"> });</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> [</span><span class="hl-6">session</span><span class="hl-1">, </span><span class="hl-6">setSession</span><span class="hl-1">] = </span><span class="hl-0">useState</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> [</span><span class="hl-6">user</span><span class="hl-1">, </span><span class="hl-6">setUser</span><span class="hl-1">] = </span><span class="hl-0">useState</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> [</span><span class="hl-6">error</span><span class="hl-1">, </span><span class="hl-6">setError</span><span class="hl-1">] = </span><span class="hl-0">useState</span><span class="hl-1">();</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// Create Session as soon as client is available</span><br/><span class="hl-1"> </span><span class="hl-0">useEffect</span><span class="hl-1">(() </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (!</span><span class="hl-4">client</span><span class="hl-1">) </span><span class="hl-3">return</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-4">client</span><br/><span class="hl-1"> .</span><span class="hl-0">createSession</span><span class="hl-1">(</span><span class="hl-2">'my-token'</span><span class="hl-1">)</span><br/><span class="hl-1"> .</span><span class="hl-0">then</span><span class="hl-1">((</span><span class="hl-4">session</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> </span><span class="hl-0">setSession</span><span class="hl-1">(</span><span class="hl-4">session</span><span class="hl-1">))</span><br/><span class="hl-1"> .</span><span class="hl-0">catch</span><span class="hl-1">((</span><span class="hl-4">error</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> </span><span class="hl-0">setError</span><span class="hl-1">(</span><span class="hl-4">error</span><span class="hl-1">));</span><br/><span class="hl-1"> }, [</span><span class="hl-4">client</span><span class="hl-1">]);</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// Get User as soon as a session is available</span><br/><span class="hl-1"> </span><span class="hl-0">useEffect</span><span class="hl-1">(() </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (!</span><span class="hl-4">client</span><span class="hl-1"> || !</span><span class="hl-4">session</span><span class="hl-1">) </span><span class="hl-3">return</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-4">client</span><br/><span class="hl-1"> .</span><span class="hl-0">getUser</span><span class="hl-1">(</span><span class="hl-2">'me'</span><span class="hl-1">)</span><br/><span class="hl-1"> .</span><span class="hl-0">then</span><span class="hl-1">((</span><span class="hl-4">user</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> </span><span class="hl-0">setUser</span><span class="hl-1">(</span><span class="hl-4">user</span><span class="hl-1">))</span><br/><span class="hl-1"> .</span><span class="hl-0">catch</span><span class="hl-1">((</span><span class="hl-4">error</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> </span><span class="hl-0">setError</span><span class="hl-1">(</span><span class="hl-4">error</span><span class="hl-1">));</span><br/><span class="hl-1"> }, [</span><span class="hl-4">client</span><span class="hl-1">, </span><span class="hl-4">session</span><span class="hl-1">]);</span><br/><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">error</span><span class="hl-1">) </span><span class="hl-3">return</span><span class="hl-1"> </span><span class="hl-8"><</span><span class="hl-9">pre</span><span class="hl-8">></span><span class="hl-5">{</span><span class="hl-6">JSON</span><span class="hl-10">.</span><span class="hl-0">stringify</span><span class="hl-10">(</span><span class="hl-4">error</span><span class="hl-10">)</span><span class="hl-5">}</span><span class="hl-8"></</span><span class="hl-9">pre</span><span class="hl-8">></span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (!</span><span class="hl-4">session</span><span class="hl-1"> || !</span><span class="hl-4">user</span><span class="hl-1">) </span><span class="hl-3">return</span><span class="hl-1"> </span><span class="hl-8"><</span><span class="hl-9">div</span><span class="hl-8">></span><span class="hl-1">Loading...</span><span class="hl-8"></</span><span class="hl-9">div</span><span class="hl-8">></span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-3">return</span><span class="hl-1"> </span><span class="hl-8"><</span><span class="hl-9">div</span><span class="hl-8">></span><span class="hl-1">User </span><span class="hl-5">{</span><span class="hl-4">user</span><span class="hl-10">.</span><span class="hl-4">displayName</span><span class="hl-10"> </span><span class="hl-1">||</span><span class="hl-10"> </span><span class="hl-4">user</span><span class="hl-10">.</span><span class="hl-4">name</span><span class="hl-5">}</span><span class="hl-1"> logged in</span><span class="hl-8"></</span><span class="hl-9">div</span><span class="hl-8">></span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-3">export</span><span class="hl-1"> </span><span class="hl-3">default</span><span class="hl-1"> </span><span class="hl-4">App</span><span class="hl-1">;</span>
|
|
25
|
+
</code><button type="button">Copy</button></pre>
|
|
26
|
+
|
|
27
|
+
<h3 id="with-script-tag-umd" class="tsd-anchor-link">With script tag (UMD)<a href="#with-script-tag-umd" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
28
|
+
<pre><code class="html"><span class="hl-7"><!-- <script src="./node_modules/@vonage/client-sdk/dist/vonageClientSDK.js"></script> --></span><br/><span class="hl-7"><!-- <script src="https://cdn.jsdelivr.net/npm/@vonage/client-sdk@1.0.0/dist/vonageClientSDK.min.js"></script> --></span><br/><span class="hl-8"><</span><span class="hl-9">script</span><span class="hl-10"> </span><span class="hl-11">src</span><span class="hl-10">=</span><span class="hl-12">"./node_modules/@vonage/client-sdk/dist/vonageClientSDK.min.js"</span><span class="hl-8">></</span><span class="hl-9">script</span><span class="hl-8">></span><br/><span class="hl-8"><</span><span class="hl-9">script</span><span class="hl-8">></span><br/><span class="hl-10"> </span><span class="hl-5">const</span><span class="hl-10"> </span><span class="hl-6">token</span><span class="hl-10"> </span><span class="hl-1">=</span><span class="hl-10"> </span><span class="hl-2">'my-token'</span><span class="hl-10">;</span><br/><span class="hl-10"> </span><span class="hl-7">// Initialize client with optional config (default: ERROR logging, US region).</span><br/><span class="hl-10"> </span><span class="hl-5">const</span><span class="hl-10"> </span><span class="hl-6">client</span><span class="hl-10"> </span><span class="hl-1">=</span><span class="hl-10"> </span><span class="hl-5">new</span><span class="hl-10"> </span><span class="hl-4">vonageClientSDK</span><span class="hl-10">.</span><span class="hl-0">VoiceClient</span><span class="hl-10">({</span><br/><span class="hl-10"> </span><span class="hl-4">loggingLevel:</span><span class="hl-10"> </span><span class="hl-4">LoggingLevel</span><span class="hl-10">.</span><span class="hl-6">DEBUG</span><span class="hl-10">, </span><br/><span class="hl-10"> </span><span class="hl-4">region:</span><span class="hl-10"> </span><span class="hl-4">ConfigRegion</span><span class="hl-10">.</span><span class="hl-6">EU</span><br/><span class="hl-10"> });</span><br/><span class="hl-10"> </span><span class="hl-7">// Or update some options after initialization.</span><br/><span class="hl-10"> </span><span class="hl-4">client</span><span class="hl-10">.</span><span class="hl-0">setConfig</span><span class="hl-10">({</span><br/><span class="hl-10"> </span><span class="hl-4">region:</span><span class="hl-10"> </span><span class="hl-4">ConfigRegion</span><span class="hl-10">.</span><span class="hl-6">AP</span><br/><span class="hl-10"> });</span><br/><br/><span class="hl-10"> </span><span class="hl-4">client</span><span class="hl-10">.</span><span class="hl-0">createSession</span><span class="hl-10">(</span><span class="hl-4">token</span><span class="hl-10">).</span><span class="hl-0">then</span><span class="hl-10">((</span><span class="hl-4">Session</span><span class="hl-10">) </span><span class="hl-5">=></span><span class="hl-10"> {});</span><br/><span class="hl-8"></</span><span class="hl-9">script</span><span class="hl-8">></span>
|
|
29
|
+
</code><button type="button">Copy</button></pre>
|
|
30
|
+
|
|
31
|
+
<h3 id="with-cdn-es" class="tsd-anchor-link">With CDN (ES)<a href="#with-cdn-es" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
32
|
+
<pre><code class="js"><span class="hl-3">import</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">VonageClient</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">ConfigRegion</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">LoggingLevel</span><br/><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">'https://cdn.jsdelivr.net/npm/@vonage/client-sdk@1.0.0/dist/vonageClientSDK.esm.min.js'</span><span class="hl-1">;</span><br/><br/><span class="hl-7">// Initialize client with optional config (default: ERROR logging, US region).</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">client</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">VonageClient</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">loggingLevel:</span><span class="hl-1"> </span><span class="hl-4">LoggingLevel</span><span class="hl-1">.</span><span class="hl-6">DEBUG</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">region:</span><span class="hl-1"> </span><span class="hl-4">ConfigRegion</span><span class="hl-1">.</span><span class="hl-6">EU</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// Or update some options after initialization.</span><br/><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">setConfig</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">region:</span><span class="hl-1"> </span><span class="hl-4">ConfigRegion</span><span class="hl-1">.</span><span class="hl-6">AP</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-1">(</span><span class="hl-5">async</span><span class="hl-1"> () </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">token</span><span class="hl-1"> = </span><span class="hl-2">'my-token'</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-3">try</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-7">// Create Session</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">sessionId</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">createSession</span><span class="hl-1">(</span><span class="hl-4">token</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-7">// Get User</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">user</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">getUser</span><span class="hl-1">(</span><span class="hl-2">'me'</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-2">`User </span><span class="hl-5">${</span><br/><span class="hl-10"> </span><span class="hl-4">user</span><span class="hl-10">.</span><span class="hl-4">displayName</span><span class="hl-10"> </span><span class="hl-1">||</span><span class="hl-10"> </span><span class="hl-4">user</span><span class="hl-10">.</span><span class="hl-4">name</span><br/><span class="hl-10"> </span><span class="hl-5">}</span><span class="hl-2"> logged in with session ID: </span><span class="hl-5">${</span><span class="hl-4">sessionId</span><span class="hl-5">}</span><span class="hl-2">`</span><br/><span class="hl-1"> );</span><br/><span class="hl-1"> } </span><span class="hl-3">catch</span><span class="hl-1"> (</span><span class="hl-4">error</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-7">// Log errors for either createSession or getUser</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">error</span><span class="hl-1">(</span><span class="hl-4">error</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">})();</span>
|
|
33
|
+
</code><button type="button">Copy</button></pre>
|
|
34
|
+
|
|
35
|
+
<h2 id="example-usage" class="tsd-anchor-link">Example Usage<a href="#example-usage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
36
|
+
<p>Below are several typical scenarios where the SDK is commonly utilized.</p>
|
|
37
|
+
<h3 id="make-an-outbound-call" class="tsd-anchor-link">Make an Outbound Call<a href="#make-an-outbound-call" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
38
|
+
<pre><code class="ts"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">context</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-4">callee:</span><span class="hl-1"> </span><span class="hl-2">'user1'</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">callId</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">serverCall</span><span class="hl-1">(</span><span class="hl-4">context</span><span class="hl-1">);</span>
|
|
39
|
+
</code><button type="button">Copy</button></pre>
|
|
40
|
+
|
|
41
|
+
<h3 id="answerreject-an-inbound-call" class="tsd-anchor-link">Answer/Reject an Inbound Call<a href="#answerreject-an-inbound-call" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
42
|
+
<pre><code class="ts"><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">on</span><span class="hl-1">(</span><span class="hl-2">'callInvite'</span><span class="hl-1">, </span><span class="hl-5">async</span><span class="hl-1"> (</span><span class="hl-4">callId</span><span class="hl-1">, </span><span class="hl-4">from</span><span class="hl-1">, </span><span class="hl-4">channelType</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Received call invite from </span><span class="hl-5">${</span><span class="hl-4">from</span><span class="hl-5">}</span><span class="hl-2"> on </span><span class="hl-5">${</span><span class="hl-4">channelType</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// To accept the call:</span><br/><span class="hl-1"> </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">answer</span><span class="hl-1">(</span><span class="hl-4">callId</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// Or to reject the call:</span><br/><span class="hl-1"> </span><span class="hl-7">// await client.reject(callId);</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">on</span><span class="hl-1">(</span><span class="hl-2">'callInviteCancel'</span><span class="hl-1">, (</span><span class="hl-4">callId</span><span class="hl-1">, </span><span class="hl-4">reason</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> === </span><span class="hl-4">CancelReason</span><span class="hl-1">.</span><span class="hl-4">AnsweredElsewhere</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was answered elsewhere`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> === </span><span class="hl-4">CancelReason</span><span class="hl-1">.</span><span class="hl-4">RejectedElsewhere</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was rejected elsewhere`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> === </span><span class="hl-4">CancelReason</span><span class="hl-1">.</span><span class="hl-4">RemoteCancel</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was cancelled by the caller`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> === </span><span class="hl-4">CancelReason</span><span class="hl-1">.</span><span class="hl-4">RemoteTimeout</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> timed out`</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">});</span>
|
|
43
|
+
</code><button type="button">Copy</button></pre>
|
|
44
|
+
|
|
45
|
+
<h3 id="hang-up-and-collect-stats" class="tsd-anchor-link">Hang-up and Collect Stats<a href="#hang-up-and-collect-stats" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
46
|
+
<pre><code class="ts"><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">on</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-2">'callHangup'</span><span class="hl-1">,</span><br/><span class="hl-1"> (</span><span class="hl-4">callId</span><span class="hl-1">: </span><span class="hl-13">string</span><span class="hl-1">, </span><span class="hl-4">callQuality</span><span class="hl-1">: </span><span class="hl-13">RTCQuality</span><span class="hl-1">, </span><span class="hl-4">reason</span><span class="hl-1">: </span><span class="hl-13">HangupReason</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> == </span><span class="hl-2">'LOCAL_HANGUP'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was hung up locally`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> == </span><span class="hl-2">'REMOTE_HANGUP'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was hung up remotely`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> == </span><span class="hl-2">'REMOTE_REJECT'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was rejected remotely`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> == </span><span class="hl-2">'REMOTE_NO_ANSWER_TIMEOUT'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> timed out`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> == </span><span class="hl-2">'MEDIA_TIMEOUT'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> timed out`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-0">exhaustiveCheck</span><span class="hl-1">(</span><span class="hl-4">reason</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">);</span>
|
|
47
|
+
</code><button type="button">Copy</button></pre>
|
|
48
|
+
|
|
49
|
+
<h3 id="get-conversations" class="tsd-anchor-link">Get Conversations<a href="#get-conversations" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
50
|
+
<pre><code class="ts"><span class="hl-5">const</span><span class="hl-1"> { </span><span class="hl-6">conversations</span><span class="hl-1">, </span><span class="hl-6">nextCursor</span><span class="hl-1">, </span><span class="hl-6">previousCursor</span><span class="hl-1"> } =</span><br/><span class="hl-1"> </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">getConversations</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">order:</span><span class="hl-1"> </span><span class="hl-4">PresentingOrder</span><span class="hl-1">.</span><span class="hl-6">DESC</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">pageSize:</span><span class="hl-1"> </span><span class="hl-14">10</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">cursor:</span><span class="hl-1"> </span><span class="hl-5">undefined</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">includeCustomData:</span><span class="hl-1"> </span><span class="hl-5">true</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">orderBy:</span><span class="hl-1"> </span><span class="hl-4">OrderBy</span><span class="hl-1">.</span><span class="hl-6">CUSTOM_SORT_KEY</span><br/><span class="hl-1"> });</span>
|
|
51
|
+
</code><button type="button">Copy</button></pre>
|
|
52
|
+
|
|
53
|
+
<h3 id="send-text-messages" class="tsd-anchor-link">Send Text Messages<a href="#send-text-messages" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
54
|
+
<pre><code class="ts"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">timestamp</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">sendMessageTextEvent</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-2">'CONVERSATION_ID'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">'Hello World!'</span><br/><span class="hl-1">);</span>
|
|
55
|
+
</code><button type="button">Copy</button></pre>
|
|
56
|
+
|
|
57
|
+
<h3 id="listen-for-conversation-events" class="tsd-anchor-link">Listen for Conversation Events<a href="#listen-for-conversation-events" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
58
|
+
<pre><code class="ts"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-0">eventHandler</span><span class="hl-1"> = (</span><span class="hl-4">event</span><span class="hl-1">: </span><span class="hl-13">ConversationEvent</span><span class="hl-1">) </span><span class="hl-5">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'member:invited'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Member invited: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">memberId</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'member:joined'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Member joined: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">memberId</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'member:left'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Member left: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">memberId</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'ephemeral'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Ephemeral event: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'custom'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Custom event: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:text'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Text message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">text</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:custom'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Custom message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">customData</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:image'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Image message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">imageUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:video'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Video message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">videoUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:audio'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Audio message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">audioUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:file'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`File message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">fileUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:vcard'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Vcard message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">vcardUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:location'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Location message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">location</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:template'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Template message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">template</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'event:delete'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Template message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:seen'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Template message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:delivered'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Message delivered event: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:rejected'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Message rejected event </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:submitted'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Message delivered event </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">'message:undeliverable'</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Message undeliverable event </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-0">exhaustiveCheck</span><span class="hl-1">(</span><span class="hl-4">event</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">listener</span><span class="hl-1"> = </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">on</span><span class="hl-1">(</span><span class="hl-2">'conversationEvent'</span><span class="hl-1">, </span><span class="hl-4">eventHandler</span><span class="hl-1">);</span><br/><br/><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">off</span><span class="hl-1">(</span><span class="hl-2">'conversationEvent'</span><span class="hl-1">, </span><span class="hl-4">listener</span><span class="hl-1">);</span>
|
|
59
|
+
</code><button type="button">Copy</button></pre>
|
|
60
|
+
|
|
61
|
+
<h2 id="documentation-and-examples" class="tsd-anchor-link">Documentation and examples<a href="#documentation-and-examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
62
|
+
<p>Visit <a href="https://developer.vonage.com/tools">Vonage website</a></p>
|
|
63
|
+
<h2 id="license" class="tsd-anchor-link">License<a href="#license" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
64
|
+
<p>Copyright (c) 2023 Vonage, Inc. All rights reserved. Licensed only under the Vonage Client SDK License Agreement (the "License") located at <a href="https://www.vonage.com/legal/communications-apis/terms-of-use/">https://www.vonage.com/legal/communications-apis/terms-of-use/</a>.</p>
|
|
30
65
|
<p>By downloading or otherwise using our software or services, you acknowledge that you have read, understand and agree to be bound by the Vonage Client SDK License Agreement and Privacy Policy.</p>
|
|
31
66
|
<p>You may not use, exercise any rights with respect to or exploit this SDK, or any modifications or derivative works thereof, except in accordance with the License.</p>
|
|
32
67
|
<p><a href="https://www.vonage.com/communications-apis/"><img src="https://developer.nexmo.com/images/logos/vbc-logo.svg" width="30%"></a></p>
|
|
33
|
-
</div></div
|
|
68
|
+
</div></div>
|
|
69
|
+
<div class="col-sidebar">
|
|
70
|
+
<div class="page-menu">
|
|
71
|
+
<div class="tsd-navigation settings">
|
|
72
|
+
<details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>
|
|
73
|
+
<h3>Settings</h3></summary>
|
|
74
|
+
<div class="tsd-accordion-details">
|
|
75
|
+
<div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
|
|
76
|
+
<ul id="tsd-filter-options">
|
|
77
|
+
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
|
|
78
|
+
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
|
|
79
|
+
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li>
|
|
80
|
+
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-alpha" name="alpha" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Alpha</span></label></li>
|
|
81
|
+
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-beta" name="beta" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Beta</span></label></li></ul></div>
|
|
82
|
+
<div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
|
|
83
|
+
<details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>
|
|
84
|
+
<h3>On This Page</h3></summary>
|
|
85
|
+
<div class="tsd-accordion-details"><a href="#vonage-client-sdk"><span>Vonage <wbr/>Client <wbr/>SDK</span></a>
|
|
86
|
+
<ul>
|
|
87
|
+
<li><a href="#installation"><span>Installation</span></a></li>
|
|
88
|
+
<li><a href="#sdk-setup"><span>SDK setup</span></a></li>
|
|
89
|
+
<li>
|
|
90
|
+
<ul>
|
|
91
|
+
<li><a href="#with-bundler-webpack-vite-etc-and-react"><span>With bundler (<wbr/>Webpack, <wbr/>Vite, etc.) and <wbr/>React</span></a></li>
|
|
92
|
+
<li><a href="#with-script-tag-umd"><span>With script tag (<wbr/>UMD)</span></a></li>
|
|
93
|
+
<li><a href="#with-cdn-es"><span>With <wbr/>CDN (<wbr/>ES)</span></a></li></ul></li>
|
|
94
|
+
<li><a href="#example-usage"><span>Example <wbr/>Usage</span></a></li>
|
|
95
|
+
<li>
|
|
96
|
+
<ul>
|
|
97
|
+
<li><a href="#make-an-outbound-call"><span>Make an <wbr/>Outbound <wbr/>Call</span></a></li>
|
|
98
|
+
<li><a href="#answerreject-an-inbound-call"><span>Answer/<wbr/>Reject an <wbr/>Inbound <wbr/>Call</span></a></li>
|
|
99
|
+
<li><a href="#hang-up-and-collect-stats"><span>Hang-<wbr/>up and <wbr/>Collect <wbr/>Stats</span></a></li>
|
|
100
|
+
<li><a href="#get-conversations"><span>Get <wbr/>Conversations</span></a></li>
|
|
101
|
+
<li><a href="#send-text-messages"><span>Send <wbr/>Text <wbr/>Messages</span></a></li>
|
|
102
|
+
<li><a href="#listen-for-conversation-events"><span>Listen for <wbr/>Conversation <wbr/>Events</span></a></li></ul></li>
|
|
103
|
+
<li><a href="#documentation-and-examples"><span>Documentation and examples</span></a></li>
|
|
104
|
+
<li><a href="#license"><span>License</span></a></li></ul></div></details></div>
|
|
105
|
+
<div class="site-menu">
|
|
106
|
+
<nav class="tsd-navigation"><a href="modules.html">@vonage/client-sdk - v0.0.0</a>
|
|
107
|
+
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
|
108
|
+
<li>Loading...</li></ul></nav></div></div></div><footer></footer>
|
|
109
|
+
<div class="overlay"></div></body></html>
|