@vonage/client-sdk 2.3.1 → 2.4.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,25 +1,29 @@
1
1
  <!DOCTYPE html><html class="default" lang="en"><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(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">@vonage/client-sdk - v0.0.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>@vonage/client-sdk - v0.0.0</h2></div><div class="tsd-panel tsd-typography"><a id="md:vonage-client-sdk" class="tsd-anchor"></a><h1><a href="#md:vonage-client-sdk">Vonage Client SDK</a></h1><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
+ <blockquote>
3
+ <p><strong>⚠️ Warning:</strong> Chat Functionality (Deprecated)</p>
4
+ <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
+ </blockquote>
2
6
  <a id="md:installation" class="tsd-anchor"></a><h2><a href="#md:installation">Installation</a></h2><p>The SDK can be installed using the npm install command</p>
3
7
  <pre><code class="language-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>
4
8
  </code><button>Copy</button></pre>
5
9
  <a id="md:sdk-setup" class="tsd-anchor"></a><h2><a href="#md:sdk-setup">SDK setup</a></h2><a id="md:with-bundler-webpack-vite-etc-and-react" class="tsd-anchor"></a><h3><a href="#md:with-bundler-webpack-vite-etc-and-react">With bundler (Webpack, Vite, etc.) and React</a></h3><pre><code class="language-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">&#39;@vonage/client-sdk&#39;</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">&#39;react&#39;</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">=&gt;</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">=&gt;</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">=&gt;</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">&#39;my-token&#39;</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">=&gt;</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">=&gt;</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">=&gt;</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">&#39;me&#39;</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">=&gt;</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">=&gt;</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">&lt;</span><span class="hl-9">pre</span><span class="hl-8">&gt;</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">&lt;/</span><span class="hl-9">pre</span><span class="hl-8">&gt;</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">&lt;</span><span class="hl-9">div</span><span class="hl-8">&gt;</span><span class="hl-1">Loading...</span><span class="hl-8">&lt;/</span><span class="hl-9">div</span><span class="hl-8">&gt;</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">&lt;</span><span class="hl-9">div</span><span class="hl-8">&gt;</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">&lt;/</span><span class="hl-9">div</span><span class="hl-8">&gt;</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>
6
10
  </code><button>Copy</button></pre>
7
- <a id="md:with-script-tag-umd" class="tsd-anchor"></a><h3><a href="#md:with-script-tag-umd">With script tag (UMD)</a></h3><pre><code class="language-html"><span class="hl-7">&lt;!-- &lt;script src=&quot;./node_modules/@vonage/client-sdk/dist/vonageClientSDK.js&quot;&gt;&lt;/script&gt; --&gt;</span><br/><span class="hl-7">&lt;!-- &lt;script src=&quot;https://cdn.jsdelivr.net/npm/@vonage/client-sdk/dist/vonageClientSDK.min.js&quot;&gt;&lt;/script&gt; --&gt;</span><br/><span class="hl-8">&lt;</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">&quot;./node_modules/@vonage/client-sdk/dist/vonageClientSDK.min.js&quot;</span><span class="hl-8">&gt;&lt;/</span><span class="hl-9">script</span><span class="hl-8">&gt;</span><br/><span class="hl-8">&lt;</span><span class="hl-9">script</span><span class="hl-8">&gt;</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">&#39;my-token&#39;</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">=&gt;</span><span class="hl-10"> {});</span><br/><span class="hl-8">&lt;/</span><span class="hl-9">script</span><span class="hl-8">&gt;</span>
11
+ <a id="md:with-script-tag-umd" class="tsd-anchor"></a><h3><a href="#md:with-script-tag-umd">With script tag (UMD)</a></h3><pre><code class="language-html"><span class="hl-7">&lt;!-- &lt;script src=&quot;./node_modules/@vonage/client-sdk/dist/vonageClientSDK.js&quot;&gt;&lt;/script&gt; --&gt;</span><br/><span class="hl-7">&lt;!-- &lt;script src=&quot;https://cdn.jsdelivr.net/npm/@vonage/client-sdk@1.0.0/dist/vonageClientSDK.min.js&quot;&gt;&lt;/script&gt; --&gt;</span><br/><span class="hl-8">&lt;</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">&quot;./node_modules/@vonage/client-sdk/dist/vonageClientSDK.min.js&quot;</span><span class="hl-8">&gt;&lt;/</span><span class="hl-9">script</span><span class="hl-8">&gt;</span><br/><span class="hl-8">&lt;</span><span class="hl-9">script</span><span class="hl-8">&gt;</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">&#39;my-token&#39;</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">=&gt;</span><span class="hl-10"> {});</span><br/><span class="hl-8">&lt;/</span><span class="hl-9">script</span><span class="hl-8">&gt;</span>
8
12
  </code><button>Copy</button></pre>
9
- <a id="md:with-cdn-es" class="tsd-anchor"></a><h3><a href="#md:with-cdn-es">With CDN (ES)</a></h3><pre><code class="language-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">&#39;https://cdn.jsdelivr.net/npm/@vonage/client-sdk/dist/vonageClientSDK.esm.min.js&#39;</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">=&gt;</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">&#39;my-token&#39;</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">&#39;me&#39;</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>
13
+ <a id="md:with-cdn-es" class="tsd-anchor"></a><h3><a href="#md:with-cdn-es">With CDN (ES)</a></h3><pre><code class="language-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">&#39;https://cdn.jsdelivr.net/npm/@vonage/client-sdk@1.0.0/dist/vonageClientSDK.esm.min.js&#39;</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">=&gt;</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">&#39;my-token&#39;</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">&#39;me&#39;</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>
10
14
  </code><button>Copy</button></pre>
11
15
  <a id="md:example-usage" class="tsd-anchor"></a><h2><a href="#md:example-usage">Example Usage</a></h2><p>Below are several typical scenarios where the SDK is commonly utilized.</p>
12
16
  <a id="md:make-an-outbound-call" class="tsd-anchor"></a><h3><a href="#md:make-an-outbound-call">Make an Outbound Call</a></h3><pre><code class="language-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">&#39;user1&#39;</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>
13
17
  </code><button>Copy</button></pre>
14
18
  <a id="md:answerreject-an-inbound-call" class="tsd-anchor"></a><h3><a href="#md:answerreject-an-inbound-call">Answer/Reject an Inbound Call</a></h3><pre><code class="language-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">&#39;callInvite&#39;</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">=&gt;</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">// 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">// Reject 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">reject</span><span class="hl-1">(</span><span class="hl-4">callId</span><span class="hl-1">);</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">&#39;callInviteCancel&#39;</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">=&gt;</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>
15
19
  </code><button>Copy</button></pre>
16
- <a id="md:hang-up-and-collect-stats" class="tsd-anchor"></a><h3><a href="#md:hang-up-and-collect-stats">Hang-up and Collect Stats</a></h3><pre><code class="language-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">&#39;callHangup&#39;</span><span class="hl-1">, (</span><span class="hl-4">callId</span><span class="hl-1">, </span><span class="hl-4">callQuality</span><span class="hl-1">, </span><span class="hl-4">reason</span><span class="hl-1">) </span><span class="hl-5">=&gt;</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">name</span><span class="hl-1"> == </span><span class="hl-2">&#39;LOCAL_HANGUP&#39;</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-4">name</span><span class="hl-1"> == </span><span class="hl-2">&#39;REMOTE_HANGUP&#39;</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-4">name</span><span class="hl-1"> == </span><span class="hl-2">&#39;REMOTE_REJECT&#39;</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-4">name</span><span class="hl-1"> == </span><span class="hl-2">&#39;REMOTE_NO_ANSWER_TIMEOUT&#39;</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-4">name</span><span class="hl-1"> == </span><span class="hl-2">&#39;MEDIA_TIMEOUT&#39;</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><span class="hl-4">name</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">});</span>
20
+ <a id="md:hang-up-and-collect-stats" class="tsd-anchor"></a><h3><a href="#md:hang-up-and-collect-stats">Hang-up and Collect Stats</a></h3><pre><code class="language-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">&#39;callHangup&#39;</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">=&gt;</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">&#39;LOCAL_HANGUP&#39;</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">&#39;REMOTE_HANGUP&#39;</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">&#39;REMOTE_REJECT&#39;</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">&#39;REMOTE_NO_ANSWER_TIMEOUT&#39;</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">&#39;MEDIA_TIMEOUT&#39;</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>
17
21
  </code><button>Copy</button></pre>
18
- <a id="md:get-conversations" class="tsd-anchor"></a><h3><a href="#md:get-conversations">Get Conversations</a></h3><pre><code class="language-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-13">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>
22
+ <a id="md:get-conversations" class="tsd-anchor"></a><h3><a href="#md:get-conversations">Get Conversations</a></h3><pre><code class="language-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>
19
23
  </code><button>Copy</button></pre>
20
24
  <a id="md:send-text-messages" class="tsd-anchor"></a><h3><a href="#md:send-text-messages">Send Text Messages</a></h3><pre><code class="language-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">&#39;CONVERSATION_ID&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">&#39;Hello World!&#39;</span><br/><span class="hl-1">);</span>
21
25
  </code><button>Copy</button></pre>
22
- <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-14">ConversationEvent</span><span class="hl-1">) </span><span class="hl-5">=&gt;</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">&#39;member:invited&#39;</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">&#39;member:joined&#39;</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">&#39;member:left&#39;</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">&#39;ephemeral&#39;</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">&#39;custom&#39;</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">&#39;message:text&#39;</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">&#39;message:custom&#39;</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">&#39;message:image&#39;</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">&#39;message:video&#39;</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">&#39;message:audio&#39;</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">&#39;message:file&#39;</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">&#39;message:vcard&#39;</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">&#39;message:location&#39;</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">&#39;message:template&#39;</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">&#39;event:delete&#39;</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><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">&#39;conversationEvent&#39;</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">&#39;conversationEvent&#39;</span><span class="hl-1">, </span><span class="hl-4">listener</span><span class="hl-1">);</span>
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">=&gt;</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">&#39;member:invited&#39;</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">&#39;member:joined&#39;</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">&#39;member:left&#39;</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">&#39;ephemeral&#39;</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">&#39;custom&#39;</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">&#39;message:text&#39;</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">&#39;message:custom&#39;</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">&#39;message:image&#39;</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">&#39;message:video&#39;</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">&#39;message:audio&#39;</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">&#39;message:file&#39;</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">&#39;message:vcard&#39;</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">&#39;message:location&#39;</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">&#39;message:template&#39;</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">&#39;event:delete&#39;</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">&#39;message:seen&#39;</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">&#39;message:delivered&#39;</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">&#39;message:rejected&#39;</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">&#39;message:submitted&#39;</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">&#39;message:undeliverable&#39;</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">&#39;conversationEvent&#39;</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">&#39;conversationEvent&#39;</span><span class="hl-1">, </span><span class="hl-4">listener</span><span class="hl-1">);</span>
23
27
  </code><button>Copy</button></pre>
24
28
  <a id="md:documentation-and-examples" class="tsd-anchor"></a><h2><a href="#md:documentation-and-examples">Documentation and examples</a></h2><p>Visit <a href="https://developer.vonage.com/tools">Vonage website</a></p>
25
29
  <a id="md:license" class="tsd-anchor"></a><h2><a href="#md:license">License</a></h2><p>Copyright (c) 2023 Vonage, Inc. All rights reserved. Licensed only under the Vonage Client SDK License Agreement (the &quot;License&quot;) located at <a href="https://github.com/nexmoinc/conversation-js-sdk/blob/master/LICENSE">LICENSE</a>.</p>