<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>mesibo documentation</title><link>https://docs.mesibo.com/</link><description>Recent content on mesibo documentation</description><generator>Hugo</generator><language>en</language><atom:link href="https://docs.mesibo.com/index.xml" rel="self" type="application/rss+xml"/><item><title>mesibo documentation</title><link>https://docs.mesibo.com/overview_old/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/overview_old/</guid><description>&lt;p&gt;mesibo is a real-time messaging and communication platform that provides APIs and SDKs for adding end-to-end encrypted chat, group messaging, voice and video calling, conferencing, and more to your mobile or web app. It is designed for developers who want to build scalable, secure, low-latency communication features without dealing with infrastructure, protocols, or reliability challenges.&lt;/p&gt;
&lt;p&gt;In addition to mobile (Android, iOS, Flutter) and JavaScript APIs, mesibo also provides SDKs for Python and C++ (x86 and ARM), enabling integration into desktop applications, AI workflows, and hardware devices.&lt;/p&gt;</description></item><item><title>Frequently Asked Questions - General</title><link>https://docs.mesibo.com/faq/general/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/general/</guid><description/></item><item><title>Bed and Chair Metrics</title><link>https://docs.mesibo.com/docs/tasks/beds/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/tasks/beds/</guid><description>&lt;p&gt;This is a &lt;strong&gt;placeholder page&lt;/strong&gt;. For an example of the kind of content that can
be added here, see the &lt;a href="https://docs.mesibo.com/docs/getting-started/example-page/"&gt;example page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="welcome"&gt;Welcome!&lt;a class="td-heading-self-link" href="#welcome" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Welcome to the Docsy theme user guide! This guide shows you how to get started
creating technical documentation sites using Docsy, including site customization
and how to use Docsy&amp;rsquo;s blocks and templates.&lt;/p&gt;
&lt;h2 id="what-is-docsy"&gt;What is Docsy?&lt;a class="td-heading-self-link" href="#what-is-docsy" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docsy is a theme for the &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; static site generator that&amp;rsquo;s
specifically designed for technical documentation sets and has a lot of best
practices built in. Use Docsy to get a working and reliable documentation site
up and running fast, and then get back to focusing on great content for your
users. &lt;a href="https://docs.mesibo.com/about"&gt;Learn more about Docsy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Configuring Ponycopters</title><link>https://docs.mesibo.com/docs/tasks/ponycopters/configuring-ponycopters/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/tasks/ponycopters/configuring-ponycopters/</guid><description>&lt;p&gt;This is a &lt;strong&gt;placeholder page&lt;/strong&gt;. For an example of the kind of content that can
be added here, see the &lt;a href="https://docs.mesibo.com/docs/getting-started/example-page/"&gt;example page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="welcome"&gt;Welcome!&lt;a class="td-heading-self-link" href="#welcome" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Welcome to the Docsy theme user guide! This guide shows you how to get started
creating technical documentation sites using Docsy, including site customization
and how to use Docsy&amp;rsquo;s blocks and templates.&lt;/p&gt;
&lt;h2 id="what-is-docsy"&gt;What is Docsy?&lt;a class="td-heading-self-link" href="#what-is-docsy" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docsy is a theme for the &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; static site generator that&amp;rsquo;s
specifically designed for technical documentation sets and has a lot of best
practices built in. Use Docsy to get a working and reliable documentation site
up and running fast, and then get back to focusing on great content for your
users. &lt;a href="https://docs.mesibo.com/about"&gt;Learn more about Docsy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Frequently Asked Questions - Messaging</title><link>https://docs.mesibo.com/faq/messaging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/messaging/</guid><description/></item><item><title>Examples</title><link>https://docs.mesibo.com/docs/examples/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/examples/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;This is a placeholder page that shows you how to use this template site.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Do you have any example &lt;strong&gt;applications&lt;/strong&gt; or &lt;strong&gt;code&lt;/strong&gt; for your users in your repo
or elsewhere? Link to your examples here.&lt;/p&gt;</description></item><item><title>Launching Ponycopters</title><link>https://docs.mesibo.com/docs/tasks/ponycopters/launching-ponycopters/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/tasks/ponycopters/launching-ponycopters/</guid><description>&lt;p&gt;This is a &lt;strong&gt;placeholder page&lt;/strong&gt;. For an example of the kind of content that can
be added here, see the &lt;a href="https://docs.mesibo.com/docs/getting-started/example-page/"&gt;example page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="welcome"&gt;Welcome!&lt;a class="td-heading-self-link" href="#welcome" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Welcome to the Docsy theme user guide! This guide shows you how to get started
creating technical documentation sites using Docsy, including site customization
and how to use Docsy&amp;rsquo;s blocks and templates.&lt;/p&gt;
&lt;h2 id="what-is-docsy"&gt;What is Docsy?&lt;a class="td-heading-self-link" href="#what-is-docsy" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docsy is a theme for the &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; static site generator that&amp;rsquo;s
specifically designed for technical documentation sets and has a lot of best
practices built in. Use Docsy to get a working and reliable documentation site
up and running fast, and then get back to focusing on great content for your
users. &lt;a href="https://docs.mesibo.com/about"&gt;Learn more about Docsy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Frequently Asked Questions - Group Messaging</title><link>https://docs.mesibo.com/faq/group-messaging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/group-messaging/</guid><description/></item><item><title>Multi-Bear Domicile Setup</title><link>https://docs.mesibo.com/docs/tutorials/multi-bear/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/tutorials/multi-bear/</guid><description>&lt;p&gt;This is a &lt;strong&gt;placeholder page&lt;/strong&gt;. For an example of the kind of content that can
be added here, see the &lt;a href="https://docs.mesibo.com/docs/getting-started/example-page/"&gt;example page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="welcome"&gt;Welcome!&lt;a class="td-heading-self-link" href="#welcome" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Welcome to the Docsy theme user guide! This guide shows you how to get started
creating technical documentation sites using Docsy, including site customization
and how to use Docsy&amp;rsquo;s blocks and templates.&lt;/p&gt;
&lt;h2 id="what-is-docsy"&gt;What is Docsy?&lt;a class="td-heading-self-link" href="#what-is-docsy" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docsy is a theme for the &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; static site generator that&amp;rsquo;s
specifically designed for technical documentation sets and has a lot of best
practices built in. Use Docsy to get a working and reliable documentation site
up and running fast, and then get back to focusing on great content for your
users. &lt;a href="https://docs.mesibo.com/about"&gt;Learn more about Docsy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Porridge Assessment</title><link>https://docs.mesibo.com/docs/tasks/porridge/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/tasks/porridge/</guid><description>&lt;p&gt;This is a &lt;strong&gt;placeholder page&lt;/strong&gt;. For an example of the kind of content that can
be added here, see the &lt;a href="https://docs.mesibo.com/docs/getting-started/example-page/"&gt;example page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="welcome"&gt;Welcome!&lt;a class="td-heading-self-link" href="#welcome" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Welcome to the Docsy theme user guide! This guide shows you how to get started
creating technical documentation sites using Docsy, including site customization
and how to use Docsy&amp;rsquo;s blocks and templates.&lt;/p&gt;
&lt;h2 id="what-is-docsy"&gt;What is Docsy?&lt;a class="td-heading-self-link" href="#what-is-docsy" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docsy is a theme for the &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; static site generator that&amp;rsquo;s
specifically designed for technical documentation sets and has a lot of best
practices built in. Use Docsy to get a working and reliable documentation site
up and running fast, and then get back to focusing on great content for your
users. &lt;a href="https://docs.mesibo.com/about"&gt;Learn more about Docsy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Concepts</title><link>https://docs.mesibo.com/docs/concepts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/concepts/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;This is a placeholder page that shows you how to use this template site.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;For many projects, users may not need much information beyond the information in
the &lt;a href="https://docs.mesibo.com/docs/overview/"&gt;Overview&lt;/a&gt;, so this section is &lt;strong&gt;optional&lt;/strong&gt;. However if
there are areas where your users will need a more detailed understanding of a
given term or feature in order to do anything useful with your project (or to
not make mistakes when using it) put that information in this section. For
example, you may want to add some conceptual pages if you have a large project
with many components and a complex architecture.&lt;/p&gt;</description></item><item><title>Frequently Asked Questions - Video and Voice Calls</title><link>https://docs.mesibo.com/faq/calls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/calls/</guid><description/></item><item><title>Another Tutorial</title><link>https://docs.mesibo.com/docs/tutorials/tutorial2/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/tutorials/tutorial2/</guid><description>&lt;p&gt;This is a &lt;strong&gt;placeholder page&lt;/strong&gt;. For an example of the kind of content that can
be added here, see the &lt;a href="https://docs.mesibo.com/docs/getting-started/example-page/"&gt;example page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="welcome"&gt;Welcome!&lt;a class="td-heading-self-link" href="#welcome" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Welcome to the Docsy theme user guide! This guide shows you how to get started
creating technical documentation sites using Docsy, including site customization
and how to use Docsy&amp;rsquo;s blocks and templates.&lt;/p&gt;
&lt;h2 id="what-is-docsy"&gt;What is Docsy?&lt;a class="td-heading-self-link" href="#what-is-docsy" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docsy is a theme for the &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; static site generator that&amp;rsquo;s
specifically designed for technical documentation sets and has a lot of best
practices built in. Use Docsy to get a working and reliable documentation site
up and running fast, and then get back to focusing on great content for your
users. &lt;a href="https://docs.mesibo.com/about"&gt;Learn more about Docsy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Frequently Asked Questions - Message and File Storage</title><link>https://docs.mesibo.com/faq/storage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/storage/</guid><description/></item><item><title>Frequently Asked Questions - Demo Apps</title><link>https://docs.mesibo.com/faq/demo-apps/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/demo-apps/</guid><description/></item><item><title>Frequently Asked Questions - HTTP Library</title><link>https://docs.mesibo.com/faq/http-library/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/http-library/</guid><description/></item><item><title>Frequently Asked Questions - API</title><link>https://docs.mesibo.com/faq/api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/api/</guid><description/></item><item><title>Frequently Asked Questions - Platform</title><link>https://docs.mesibo.com/faq/platform/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/platform/</guid><description/></item><item><title>Accessing and Subscribing to Locations</title><link>https://docs.mesibo.com/api/secure-location/accessing-and-subscribing-user-location/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/secure-location/accessing-and-subscribing-user-location/</guid><description>&lt;p&gt;You can use the &lt;code&gt;MesiboProfile.location()&lt;/code&gt; API to access the locations of other users and groups, subject to the access level granted. The &lt;code&gt;MesiboProfile.location()&lt;/code&gt; API returns a &lt;code&gt;MesiboProfileLocation&lt;/code&gt; object, which can be used to access various location information, subscribe to location updates, and more.&lt;/p&gt;









&lt;ul class="nav nav-tabs" role="tablist"&gt;
 
 &lt;li class="nav-item" role="presentation"&gt;
 &lt;button
 class="nav-link active"
 id="tab-platform1-0-java"
 data-bs-toggle="tab"
 data-bs-target="#tabpane-platform1-0-java"
 type="button"
 role="tab"
 aria-controls="tabpane-platform1-0-java"
 aria-selected="true"
 data-tab-group="platform1"
 data-tab-name="Java"
 &gt;Java&lt;/button&gt;
 &lt;/li&gt;
 
 &lt;li class="nav-item" role="presentation"&gt;
 &lt;button
 class="nav-link"
 id="tab-platform1-0-kotlin"
 data-bs-toggle="tab"
 data-bs-target="#tabpane-platform1-0-kotlin"
 type="button"
 role="tab"
 aria-controls="tabpane-platform1-0-kotlin"
 aria-selected="false"
 data-tab-group="platform1"
 data-tab-name="Kotlin"
 &gt;Kotlin&lt;/button&gt;
 &lt;/li&gt;
 
 &lt;li class="nav-item" role="presentation"&gt;
 &lt;button
 class="nav-link"
 id="tab-platform1-0-swift"
 data-bs-toggle="tab"
 data-bs-target="#tabpane-platform1-0-swift"
 type="button"
 role="tab"
 aria-controls="tabpane-platform1-0-swift"
 aria-selected="false"
 data-tab-group="platform1"
 data-tab-name="Swift"
 &gt;Swift&lt;/button&gt;
 &lt;/li&gt;
 
 &lt;li class="nav-item" role="presentation"&gt;
 &lt;button
 class="nav-link"
 id="tab-platform1-0-objective-c"
 data-bs-toggle="tab"
 data-bs-target="#tabpane-platform1-0-objective-c"
 type="button"
 role="tab"
 aria-controls="tabpane-platform1-0-objective-c"
 aria-selected="false"
 data-tab-group="platform1"
 data-tab-name="Objective-C"
 &gt;Objective-C&lt;/button&gt;
 &lt;/li&gt;
 
 &lt;li class="nav-item" role="presentation"&gt;
 &lt;button
 class="nav-link"
 id="tab-platform1-0-flutter"
 data-bs-toggle="tab"
 data-bs-target="#tabpane-platform1-0-flutter"
 type="button"
 role="tab"
 aria-controls="tabpane-platform1-0-flutter"
 aria-selected="false"
 data-tab-group="platform1"
 data-tab-name="Flutter"
 &gt;Flutter&lt;/button&gt;
 &lt;/li&gt;
 
&lt;/ul&gt;
&lt;div class="tab-content"&gt;
 
 &lt;div
 class="tab-pane fade show active"
 id="tabpane-platform1-0-java"
 role="tabpanel"
 aria-labelledby="tab-platform1-0-java"
 &gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboProfileLocation&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;profileLocation&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;location&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboLocation&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;profileLocation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 
 &lt;div
 class="tab-pane fade"
 id="tabpane-platform1-0-kotlin"
 role="tabpanel"
 aria-labelledby="tab-platform1-0-kotlin"
 &gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-kotlin" data-lang="kotlin"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;val&lt;/span&gt; &lt;span class="py"&gt;profileLocation&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;val&lt;/span&gt; &lt;span class="py"&gt;location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;MesiboLocation&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;profileLocation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 
 &lt;div
 class="tab-pane fade"
 id="tabpane-platform1-0-swift"
 role="tabpanel"
 aria-labelledby="tab-platform1-0-swift"
 &gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-swift" data-lang="swift"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;profileLocation&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;location&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;profileLocation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kr"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 
 &lt;div
 class="tab-pane fade"
 id="tabpane-platform1-0-objective-c"
 role="tabpanel"
 aria-labelledby="tab-platform1-0-objective-c"
 &gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-objc" data-lang="objc"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboProfileLocation&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;profileLocation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt; &lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboLocation&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;profileLocation&lt;/span&gt; &lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 
 &lt;div
 class="tab-pane fade"
 id="tabpane-platform1-0-flutter"
 role="tabpanel"
 aria-labelledby="tab-platform1-0-flutter"
 &gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-dart" data-lang="dart"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboProfileLocation&lt;/span&gt; &lt;span class="n"&gt;profileLocation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboLocation&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="n"&gt;loc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;await&lt;/span&gt; &lt;span class="n"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;as&lt;/span&gt; &lt;span class="n"&gt;MesiboLocation&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 
&lt;/div&gt;



&lt;p&gt;If the location is available, the mesibo API will return it immediately. If not, it will return &lt;code&gt;null&lt;/code&gt; and then request the location from the server. Upon receiving the location from the server, &lt;code&gt;Mesibo_onLocationReceived&lt;/code&gt; will be called with the profile. You can then call the &lt;code&gt;get()&lt;/code&gt; API again to obtain the location. In case the server does not have the location or the location has expired, &lt;code&gt;Mesibo_onLocationError&lt;/code&gt; will be called.&lt;/p&gt;</description></item><item><title>mesibo SDK for Android</title><link>https://docs.mesibo.com/install/android/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/android/</guid><description>&lt;!-- &lt;script src="https://api.mesibo.com/maven_versions.js?refresh=1"&gt;&lt;/script&gt; --&gt;
&lt;script&gt;
var s = document.createElement("script");
//s.src = "https://cdn.mesibo.com/meta/versions.js" + "?ts=" + ((new Date().getTime()&amp;~3600));
s.src = "https://cdn.mesibo.com/meta/versions.js";
document.getElementsByTagName("head")[0].appendChild(s);
&lt;/script&gt;


&lt;p&gt;You can install the latest version of mesibo SDKs into your Android Studio project by adding Gradle dependency and performing Gradle sync.&lt;/p&gt;
&lt;h2 id="install-mesibo-core-sdk"&gt;Install Mesibo Core SDK&lt;a class="td-heading-self-link" href="#install-mesibo-core-sdk" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;First, ensure &lt;code&gt;mavenCentral()&lt;/code&gt; is configured in the top-level build.gradle file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;allprojects&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;repositories&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="n"&gt;mavenCentral&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;google&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then add the mesibo dependency in the app&amp;rsquo;s build.gradle file:&lt;/p&gt;</description></item><item><title>Build and Run Open Source Messenger</title><link>https://docs.mesibo.com/tutorials/open-source-whatsapp-clone/building-messenger/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-whatsapp-clone/building-messenger/</guid><description>&lt;p&gt;Welcome to Part 2 of the tutorial! In this section, we will download the source code of Messenger apps and build it on a real device. Let&amp;rsquo;s get started!&lt;/p&gt;
&lt;h2 id="downloading-the-source-code"&gt;Downloading the Source Code&lt;a class="td-heading-self-link" href="#downloading-the-source-code" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The latest Messenger App code is regularly updated mesibo GitHub repositories. Follow the instructions below to download Messenger code for language and platform of your choice:&lt;/p&gt;









&lt;ul class="nav nav-tabs" role="tablist"&gt;
 
 &lt;li class="nav-item" role="presentation"&gt;
 &lt;button
 class="nav-link active"
 id="tab-platform1-0-java"
 data-bs-toggle="tab"
 data-bs-target="#tabpane-platform1-0-java"
 type="button"
 role="tab"
 aria-controls="tabpane-platform1-0-java"
 aria-selected="true"
 data-tab-group="platform1"
 data-tab-name="Java"
 &gt;Java&lt;/button&gt;
 &lt;/li&gt;
 
 &lt;li class="nav-item" role="presentation"&gt;
 &lt;button
 class="nav-link"
 id="tab-platform1-0-kotlin"
 data-bs-toggle="tab"
 data-bs-target="#tabpane-platform1-0-kotlin"
 type="button"
 role="tab"
 aria-controls="tabpane-platform1-0-kotlin"
 aria-selected="false"
 data-tab-group="platform1"
 data-tab-name="Kotlin"
 &gt;Kotlin&lt;/button&gt;
 &lt;/li&gt;
 
 &lt;li class="nav-item" role="presentation"&gt;
 &lt;button
 class="nav-link"
 id="tab-platform1-0-swift"
 data-bs-toggle="tab"
 data-bs-target="#tabpane-platform1-0-swift"
 type="button"
 role="tab"
 aria-controls="tabpane-platform1-0-swift"
 aria-selected="false"
 data-tab-group="platform1"
 data-tab-name="Swift"
 &gt;Swift&lt;/button&gt;
 &lt;/li&gt;
 
 &lt;li class="nav-item" role="presentation"&gt;
 &lt;button
 class="nav-link"
 id="tab-platform1-0-objective-c"
 data-bs-toggle="tab"
 data-bs-target="#tabpane-platform1-0-objective-c"
 type="button"
 role="tab"
 aria-controls="tabpane-platform1-0-objective-c"
 aria-selected="false"
 data-tab-group="platform1"
 data-tab-name="Objective-C"
 &gt;Objective-C&lt;/button&gt;
 &lt;/li&gt;
 
 &lt;li class="nav-item" role="presentation"&gt;
 &lt;button
 class="nav-link"
 id="tab-platform1-0-javascript"
 data-bs-toggle="tab"
 data-bs-target="#tabpane-platform1-0-javascript"
 type="button"
 role="tab"
 aria-controls="tabpane-platform1-0-javascript"
 aria-selected="false"
 data-tab-group="platform1"
 data-tab-name="JavaScript"
 &gt;JavaScript&lt;/button&gt;
 &lt;/li&gt;
 
&lt;/ul&gt;
&lt;div class="tab-content"&gt;
 
 &lt;div
 class="tab-pane fade show active"
 id="tabpane-platform1-0-java"
 role="tabpanel"
 aria-labelledby="tab-platform1-0-java"
 &gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ mkdir Messenger
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nb"&gt;cd&lt;/span&gt; Messenger
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git clone https://github.com/mesibo/messenger-app-android.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 
 &lt;div
 class="tab-pane fade"
 id="tabpane-platform1-0-kotlin"
 role="tabpanel"
 aria-labelledby="tab-platform1-0-kotlin"
 &gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ mkdir Messenger
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nb"&gt;cd&lt;/span&gt; Messenger
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git clone https://github.com/mesibo/messenger-app-android-kotlin.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 
 &lt;div
 class="tab-pane fade"
 id="tabpane-platform1-0-swift"
 role="tabpanel"
 aria-labelledby="tab-platform1-0-swift"
 &gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ mkdir Messenger
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nb"&gt;cd&lt;/span&gt; Messenger
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git clone https://github.com/mesibo/messenger-app-ios-swift.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 
 &lt;div
 class="tab-pane fade"
 id="tabpane-platform1-0-objective-c"
 role="tabpanel"
 aria-labelledby="tab-platform1-0-objective-c"
 &gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ mkdir Messenger
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nb"&gt;cd&lt;/span&gt; Messenger
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git clone https://github.com/mesibo/messenger-app-ios.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 
 &lt;div
 class="tab-pane fade"
 id="tabpane-platform1-0-javascript"
 role="tabpanel"
 aria-labelledby="tab-platform1-0-javascript"
 &gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ mkdir Messenger
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nb"&gt;cd&lt;/span&gt; Messenger
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git clone https://github.com/mesibo/messenger-javascript.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 
&lt;/div&gt;



&lt;p&gt;Ensure to &lt;strong&gt;Star(*)&lt;/strong&gt; the project on GitHub to get notified whenever the source code is updated.&lt;/p&gt;</description></item><item><title>Call Listeners</title><link>https://docs.mesibo.com/api/calls/listeners/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/calls/listeners/</guid><description>&lt;p&gt;The Mesibo Call API provides the following listeners:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="#incominglistener"&gt;IncomingListener&lt;/a&gt;, &lt;code&gt;MesiboCall.IncomingListener&lt;/code&gt; provides listeners to handle incoming calls, errors, show call UI, etc.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="#inprogresslistener"&gt;InProgressListener&lt;/a&gt;, &lt;code&gt;MesiboCall.InProgressListener&lt;/code&gt; allows listeners to handle various call events for an ongoing call example, call ringing, answered, declined, hang up, audio device changed, etc.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can use mesibo calls with default call handling logic and call UI as it is. You only need to implement these call listeners - &lt;a href="#incominglistener"&gt;IncomingListener&lt;/a&gt; and &lt;a href="#inprogresslistener"&gt;InProgressListener&lt;/a&gt; if you would like to customize how mesibo handles and displays call in your application. For example, filtering an incoming call, display a custom call screen, etc.&lt;/p&gt;</description></item><item><title>Configure FCM and APN Push notification Credentials in mesibo Console</title><link>https://docs.mesibo.com/api/push-notifications/configure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/push-notifications/configure/</guid><description>&lt;p&gt;To enable mesibo to send push notifications to your users, you need to configure push notification credentials in the &lt;a href="https://console.mesibo.com/"&gt;mesibo console&lt;/a&gt;. Alternatively, you can also use &lt;a href="https://docs.mesibo.com/api/backend-api/push-notifications/"&gt;mesibo backend APIs&lt;/a&gt; to configure push credentials.&lt;/p&gt;
&lt;p&gt;Go to your &lt;strong&gt;App settings&lt;/strong&gt; in the &lt;a href="https://console.mesibo.com/"&gt;mesibo console&lt;/a&gt; and then go to the section &lt;strong&gt;Push Notifications&lt;/strong&gt;. Now, upload FCM and APN credentials for your app.&lt;/p&gt;












&lt;a class="glightbox" href="https://docs.mesibo.com/api/push-notifications/images/push-upload.png"&gt;
 &lt;img src="https://docs.mesibo.com/api/push-notifications/images/push-upload.png" alt="" style="max-width: 100%; height: auto;" /&gt;
&lt;/a&gt;

&lt;p&gt;You can perform following steps to get FCM or APN credentials.&lt;/p&gt;</description></item><item><title>Mesibo Connection Monitoring</title><link>https://docs.mesibo.com/api/initialization/connection-monitoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/initialization/connection-monitoring/</guid><description>&lt;p&gt;You can monitor if your app is connected with the mesibo real-time server (cloud or your on-premise) by implementing &lt;code&gt;Mesibo_onConnectionStatus&lt;/code&gt; in the connection listener. The connection listener is invoked when the connection status is changed. It is also invoked when the token is about to expire.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;Mesibo_onConnectionStatus&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The following are the status values:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Parameter&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;th&gt;Value&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MESIBO_STATUS_ONLINE&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;The user is connected and online&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MESIBO_STATUS_OFFLINE&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;The user is offline&lt;/td&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MESIBO_STATUS_SIGNOUT&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;The user has signed out. The most likely reason is that the user has logged in from another device. You can use multi-device login feature if the user is required to log in from multiple devices simultaneously.&lt;/td&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MESIBO_STATUS_AUTHFAIL&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Token is wrong or expired. For Javascript, C++, and Python, it also happens if you have passed the wrong app id in &lt;code&gt;setAppName()&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MESIBO_STATUS_STOPPED&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;The user is offline and stopped. Automatic reconnection will not be attempted&lt;/td&gt;
 &lt;td&gt;5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MESIBO_STATUS_CONNECTING&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;The user is connecting but not online yet&lt;/td&gt;
 &lt;td&gt;6&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MESIBO_STATUS_CONNECTFAILURE&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Connection Failed&lt;/td&gt;
 &lt;td&gt;7&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MESIBO_STATUS_NONETWORK&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Mesibo API could not detect network connection on your device&lt;/td&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;MESIBO_STATUS_ONPREMISEERROR&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;You have configured the on-premise server but it is not running or the firewall is preventing your apps from connecting to the on-premise server&lt;/td&gt;
 &lt;td&gt;9&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Contribution Guidelines</title><link>https://docs.mesibo.com/docs/contribution-guidelines/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/contribution-guidelines/</guid><description>&lt;div class="pageinfo pageinfo-info td-max-width-on-larger-screens mx-0"&gt;
&lt;p&gt;These basic sample guidelines assume that your Docsy site is deployed using
Netlify and your files are stored in GitHub. You can use the guidelines &amp;ldquo;as is&amp;rdquo;
or adapt them with your own instructions: for example, other deployment options,
information about your doc project&amp;rsquo;s file structure, project-specific review
guidelines, versioning guidelines, or any other information your users might
find useful when updating your site.
&lt;a href="https://github.com/kubeflow/website/blob/master/README.md"&gt;Kubeflow&lt;/a&gt; has a
great example.&lt;/p&gt;</description></item><item><title>Create a Conference Room</title><link>https://docs.mesibo.com/api/conferencing/create-room/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/conferencing/create-room/</guid><description>&lt;p&gt;In this section, we will learn about a conference room, its permissions, and settings. Then, we will explain how to create a conference room with required permissions &amp;amp; settings and add participants using Mesibo real-time and Backend APIs.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Before proceeding further:&lt;/p&gt;
&lt;p&gt;Ensure that you are familiar with mesibo APIs and read throgh &lt;a href="https://docs.mesibo.com/tutorials/get-started/"&gt;Get Started Guide&lt;/a&gt;. Also, you are familar with &lt;a href="https://docs.mesibo.com/api/group-management/"&gt;mesibo Group Management APIs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Download &lt;a href="https://github.com/mesibo/conferencing/"&gt;Conferencing App Source code&lt;/a&gt;. Follow along as you go through this document.&lt;/p&gt;</description></item><item><title>Creating User Access Tokens</title><link>https://docs.mesibo.com/tutorials/get-started/create-users/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/create-users/</guid><description>&lt;p&gt;Now that you have created an Application and obtained the &lt;code&gt;App Token&lt;/code&gt;, the next step is to create user access tokens. A user access token is required by every user to authenticate with mesibo and use its real-time APIs — messaging, calls, conferencing, and more. Your client applications (Android, iOS, Flutter, Web, etc.) use these tokens to connect to mesibo on behalf of your users.&lt;/p&gt;
&lt;p&gt;User access tokens are generated by your backend server using the mesibo Backend API. Each token is bound to three things: the &lt;strong&gt;App Token&lt;/strong&gt; that identifies your Application, the &lt;strong&gt;Address&lt;/strong&gt; that identifies the user, and the &lt;strong&gt;App ID&lt;/strong&gt; that identifies where the token is permitted to be used.&lt;/p&gt;</description></item><item><title>Mesibo Group Management - Creating a Group</title><link>https://docs.mesibo.com/api/group-management/creating-a-group/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/group-management/creating-a-group/</guid><description>&lt;p&gt;You can create a new group by calling &lt;code&gt;createGroup&lt;/code&gt; API. It will send a request to the server to create a new group. When a group is created, &lt;code&gt;Mesibo_onGroupCreated&lt;/code&gt; callback function in the listener will be called with the group profile. You can then add members to the group using group profile APIs. Note that, you will be already added as the owner and the member of the group and hence you should not add yourself again.&lt;/p&gt;</description></item><item><title>Mesibo End-to-End Encryption APIs</title><link>https://docs.mesibo.com/api/end-to-end-encryption/apis/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/end-to-end-encryption/apis/</guid><description>&lt;p&gt;There are only two classes to configure mesibo E2EE:&lt;/p&gt;
&lt;h4 id="mesiboendtoendencryption"&gt;MesiboEndToEndEncryption&lt;a class="td-heading-self-link" href="#mesiboendtoendencryption" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;MesiboEndToEndEncryption&lt;/code&gt; is a global class to manage global and per-user E2EE configurations. Mesibo creates an instance of the class which you can access by calling Mesibo.e2ee() function as shown above.&lt;/p&gt;
&lt;h4 id="mesiboendtoendencryption-1"&gt;MesiboEndToEndEncryption&lt;a class="td-heading-self-link" href="#mesiboendtoendencryption-1" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;MesiboProfileEndToEndEncryption&lt;/code&gt; is a class to manage a user-specific E2EE configurations. MesiboProfile creates an instance of the class which you can access by calling MesiboProfile.e2ee() function.&lt;/p&gt;</description></item><item><title>Mesibo Real-time APIs - File Transfer and Hosting</title><link>https://docs.mesibo.com/api/messaging/file-transfer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/file-transfer/</guid><description>&lt;h3 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Just like text messages, mesibo&amp;rsquo;s real-time file transfer API allows you to send and receive any arbitrary file - images, videos, documents, audio files, and more - in real-time.&lt;/p&gt;
&lt;p&gt;By default, all media and files are stored on mesibo&amp;rsquo;s secure file servers, making it easy to get started quickly. However, many organizations - particularly those in regulated industries such as healthcare (HIPAA compliance), financial services, legal, government, and dating applications - require complete control over where and how their sensitive data is stored.&lt;/p&gt;</description></item><item><title>mesibo On-Premise Local Configuration</title><link>https://docs.mesibo.com/on-premise/local-configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/on-premise/local-configuration/</guid><description>&lt;p&gt;While mesibo On-Premise can be configured entirely through the mesibo Console, many mesibo users, particularly those in regulated industries — prefer a local configuration file — &lt;code&gt;/etc/mesibo/mesibo.conf&lt;/code&gt;, for stricter control over credentials and deployment settings. Parameters in the local file take priority over both command line arguments and console settings.&lt;/p&gt;
&lt;p&gt;Local configuration is useful in the following scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Regulatory Compliance&lt;/strong&gt; — Financial institutions, government agencies, and other security-sensitive organizations often have strict requirements that prohibit sharing database credentials with external systems. Local configuration keeps credentials entirely within your own infrastructure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom Certificates&lt;/strong&gt; — Specify SSL certificate paths in the config file rather than on the command line.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Advanced Logging&lt;/strong&gt; — Enable granular, per-component logging for debugging or audit purposes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network Configuration&lt;/strong&gt; — Override hostname validation and other server-specific settings.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="creating-the-configuration-file"&gt;Creating the Configuration File&lt;a class="td-heading-self-link" href="#creating-the-configuration-file" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="step-1---create-the-configuration-directory"&gt;Step 1 - Create the Configuration Directory&lt;a class="td-heading-self-link" href="#step-1---create-the-configuration-directory" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create the configuration directory on your host system if it does not already exist:&lt;/p&gt;</description></item><item><title>Mesibo Chatbot and Scripting - Mesibo Object</title><link>https://docs.mesibo.com/chatbot/reference/mesibo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/chatbot/reference/mesibo/</guid><description>&lt;p&gt;The core class Mesibo defines a set of event handlers and utilities that you can use to send messages, get message flags, receive messages, etc.&lt;/p&gt;
&lt;h1 id="constructor"&gt;Constructor&lt;a class="td-heading-self-link" href="#constructor" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The class Mesibo is not instantiable. A single instance of the class Mesibo, named mesibo exists in global context whose properties can be initialized. Refer &lt;a href=""&gt;Usage Notes&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h1 id="properties"&gt;Properties&lt;a class="td-heading-self-link" href="#properties" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="mesiboonmessage-mandatory"&gt;Mesibo.onmessage &lt;sub&gt;mandatory&lt;/sub&gt;&lt;a class="td-heading-self-link" href="#mesiboonmessage-mandatory" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;An event listener to be called when message is receieved. It is mandatory to initialize this event handler.
MUST return Message.PASS, Message.FAIL, Message.CONSUMED, Message.READ, Message.DELIVERED etc, or the message string.&lt;/p&gt;</description></item><item><title>Mesibo Open Source Chat, Voice and Video Calls UI Modules</title><link>https://docs.mesibo.com/ui-modules/chat-ui-module/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/ui-modules/chat-ui-module/</guid><description>&lt;p&gt;There are primarily two categories of Messaging UI screens:&lt;/p&gt;
&lt;h3 id="messaging-screen"&gt;Messaging Screen&lt;a class="td-heading-self-link" href="#messaging-screen" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The Messaging Screen displays all messages for a specific user or group. It enables users to send and receive a wide variety of messages, including but not limited to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Text messages&lt;/li&gt;
&lt;li&gt;Rich messages containing images, videos, documents, audio, and more&lt;/li&gt;
&lt;li&gt;Location sharing&lt;/li&gt;
&lt;li&gt;URL preview&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It addition, it also shows&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Send, Delivery and read indicator for sent messages&lt;/li&gt;
&lt;li&gt;Typing Indicators&lt;/li&gt;
&lt;li&gt;Other presence status indicators such as online or actively chatting&lt;/li&gt;
&lt;li&gt;Message date and time&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The entire messaging screen can be customized, allowing adjustments to text styles, colors, and other elements, as elaborated in subsequent sections.&lt;/p&gt;</description></item><item><title>Frequently Asked Questions - On-Premise Deployment</title><link>https://docs.mesibo.com/faq/on-premise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/on-premise/</guid><description/></item><item><title>Publishing a Profile and Controlling Profile Privacy</title><link>https://docs.mesibo.com/api/users-and-profiles/publishing-profile-and-controlling-privacy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/users-and-profiles/publishing-profile-and-controlling-privacy/</guid><description>&lt;p&gt;Your app users can create and publish a profile about themself so other users can view it. Depending on the app, users can add different information to the profile like name, photos, location, relationship status, etc. In addition, group owners and admins can also create, edit and publish profiles for their groups with information about the group. Note that a user can&amp;rsquo;t modify or publish another user&amp;rsquo;s profile.&lt;/p&gt;
&lt;p&gt;In this section, we&amp;rsquo;ll explore:&lt;/p&gt;</description></item><item><title>Uploading and Configuring Scripts</title><link>https://docs.mesibo.com/chatbot/uploading-scripts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/chatbot/uploading-scripts/</guid><description>&lt;p&gt;The scripting interface is provided through the Mesibo console. You need not configure or install anything additional to use the mesibo chatbot and scripting framework. Just login to your mesibo console, upload your script, and get going!&lt;/p&gt;
&lt;p&gt;There are two parts to the process:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Upload one or more scripts using the mesibo console. When you upload a script, it will get added to your script library. However, it will not be active unless you assign it to your app or one or more users.&lt;/p&gt;</description></item><item><title>Mesibo Backend APIs - User Management</title><link>https://docs.mesibo.com/api/backend-api/user-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/backend-api/user-management/</guid><description>&lt;p&gt;Before your users can use mesibo services, mesibo need to know about your users so that mesibo can enable real-time messaging, calls, and conference between them.&lt;/p&gt;
&lt;p&gt;mesibo identifies each user by a unique random string, called &lt;code&gt;address&lt;/code&gt;. The &lt;code&gt;address&lt;/code&gt; can be anything, for example, phone number, email address, your enterprise user ID, etc. You need to create a mesibo user for each of your app users.&lt;/p&gt;
&lt;p&gt;mesibo will generate an authentication token when you create a user. This user token is also called the access token. You need to send this token to your apps so that your app can initialize mesibo &lt;a href="https://docs.mesibo.com/api/initialization/"&gt;Mesibo Real-time APIs&lt;/a&gt; using this token. Refer to the &lt;a href="https://docs.mesibo.com/tutorials/get-started/"&gt;Get Started tutorial&lt;/a&gt; to learn more about it.&lt;/p&gt;</description></item><item><title>Mesibo Release v2.4</title><link>https://docs.mesibo.com/changelog/v24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/changelog/v24/</guid><description>&lt;p&gt;We are excited to announce the release of mesibo v2.4, which includes a powerful new profile API with enhanced customization and access control.&lt;/p&gt;
&lt;p&gt;This update introduces major improvements you&amp;rsquo;ll want to integrate into your Mesibo applications. We recommend reviewing these changes and updating your Mesibo APIs accordingly.&lt;/p&gt;
&lt;h2 id="key-highlights"&gt;Key Highlights&lt;a class="td-heading-self-link" href="#key-highlights" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="flexible-profile-schema"&gt;Flexible Profile Schema&lt;a class="td-heading-self-link" href="#flexible-profile-schema" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Previously Mesibo profiles had predefined fields like name, status, etc. Many of our customers have requested for additional fields. You can now add custom profile fields suited to your app needs instead of predefined ones using set and get APIs, same as provided for &amp;lsquo;MesiboMessage&amp;rsquo;. For example:&lt;/p&gt;</description></item><item><title>Mesibo Phone Contacts Validation and Formatting</title><link>https://docs.mesibo.com/api/phone-contacts-and-addressbook/validation-and-formatting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/phone-contacts-and-addressbook/validation-and-formatting/</guid><description>&lt;p&gt;mesibo simplifies the process of validating, correcting, and formatting phone numbers to a great extent. mesibo&amp;rsquo;s phone APIs offer faster performance compared to other APIs like &lt;code&gt;libphonenumber&lt;/code&gt; while maintaining the same or even better accuracy and reducing unnecessary overhead.&lt;/p&gt;
&lt;p&gt;You can utilize the &lt;code&gt;getPhoneNumberInfo()&lt;/code&gt; function to validate and format phone numbers. It will also attempt to detect and add the country code if it&amp;rsquo;s missing. This function returns a &lt;code&gt;MesiboPhoneContact&lt;/code&gt; object that contains various fields such as name, country, and type, as described below.&lt;/p&gt;</description></item><item><title>Frequently Asked Questions - Pricing, customization and terms</title><link>https://docs.mesibo.com/faq/pricing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/pricing/</guid><description/></item><item><title>Frequently Asked Questions - SDK</title><link>https://docs.mesibo.com/faq/sdk/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/sdk/</guid><description/></item><item><title>Frequently Asked Questions - Webhooks and Push Notifications</title><link>https://docs.mesibo.com/faq/webhooks-and-push-notifications/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/webhooks-and-push-notifications/</guid><description/></item><item><title>Frequently Asked Questions - Security and Privacy</title><link>https://docs.mesibo.com/faq/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/security/</guid><description/></item><item><title>Frequently Asked Questions - UI Modules</title><link>https://docs.mesibo.com/faq/ui-modules/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/ui-modules/</guid><description/></item><item><title>Frequently Asked Questions - Other</title><link>https://docs.mesibo.com/faq/other/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/other/</guid><description/></item><item><title>Frequently Asked Questions - Support</title><link>https://docs.mesibo.com/faq/support/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/support/</guid><description/></item><item><title>Frequently Asked Questions - Chatbot and Scripting</title><link>https://docs.mesibo.com/faq/chatbot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/chatbot/</guid><description/></item><item><title>Frequently Asked Questions - Voice and Video Conferencing</title><link>https://docs.mesibo.com/faq/video-conferencing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/video-conferencing/</guid><description/></item><item><title>Mesibo Backup and Data Migration APIs</title><link>https://docs.mesibo.com/api/initialization/backup-and-restore/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/initialization/backup-and-restore/</guid><description>&lt;p&gt;Mesibo backup and data migration APIs allow you to regularly backup your users&amp;rsquo; data (messages, call history, profiles, settings, etc) and then restore it when needed, for example, when the user moves to another device.&lt;/p&gt;
&lt;p&gt;In addition to backup and restore, mesibo provides APIs to know when the last backup was taken, and the age of the database so that you can decide when to initiate the next backup as required by your app or organization policies.&lt;/p&gt;</description></item><item><title>Configure Tokens and Run Sample App</title><link>https://docs.mesibo.com/tutorials/get-started/configure-and-run/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/configure-and-run/</guid><description>&lt;p&gt;We are now ready to configure the app with user access tokens and run it. We&amp;rsquo;ll first briefly understand the initialization code, then run the app, all in just 4 steps:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Before proceeding further:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download the source code of the app in this tutorial from the mesibo &lt;a href="https://github.com/mesibo/samples"&gt;GitHub repositories&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Open it in your IDE (Android Studio, Xcode etc). Follow along as you go through this tutorial.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;h2 id="step-1-set-up-mesibo-listeners"&gt;Step 1: Set Up mesibo Listeners&lt;a class="td-heading-self-link" href="#step-1-set-up-mesibo-listeners" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;mesibo is a real-time, asynchronous platform. Messages, calls, and status updates can arrive at any moment — your app does not poll or check for them. Instead, you register &lt;strong&gt;listeners&lt;/strong&gt; that mesibo calls instantly the moment an event occurs.&lt;/p&gt;</description></item><item><title>Customization and Rebranding Android, iOS and Web Messenger</title><link>https://docs.mesibo.com/tutorials/open-source-whatsapp-clone/customize/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-whatsapp-clone/customize/</guid><description>&lt;p&gt;With the complete &lt;a href="https://mesibo.com/open-source-chat-apps/"&gt;source code&lt;/a&gt; at your disposal, you have the freedom to customize every aspect of these apps to meet your specific requirements and branding. Not only can you modify the app&amp;rsquo;s visual appearance, but you can also customize how each message is rendered (which we will cover in our upcoming chatbot tutorial).&lt;/p&gt;
&lt;p&gt;Although we won&amp;rsquo;t cover all the possible customizations in this tutorial, we will focus on some important ones, as follows:&lt;/p&gt;</description></item><item><title>Mesibo End-to-End Encryption - Cryptography APIs</title><link>https://docs.mesibo.com/api/end-to-end-encryption/cipher-suite/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/end-to-end-encryption/cipher-suite/</guid><description>&lt;p&gt;mesibo automatically sets optimized cryptography configuration and hence you don’t need to use any of these APIs unless you have special needs.&lt;/p&gt;
&lt;h3 id="setting-supported-and-preferred-ciphers"&gt;Setting Supported and Preferred Ciphers&lt;a class="td-heading-self-link" href="#setting-supported-and-preferred-ciphers" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;mesibo uses 256-bit encryption and supports using multiple ciphers simultaneously to make interception difficult. By default, all the ciphers are enabled. mesibo prefers to use CTR-based and AEAD (authenticated encryption with associated data) ciphers and the AES-GCM is the default preferred cipher. You can change the supported and preferred ciphers by calling &lt;code&gt;setCiphers&lt;/code&gt; method of &lt;code&gt;MesiboEndToEndEncryption&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Customizing User Interface and Message Rendering</title><link>https://docs.mesibo.com/ui-modules/customizing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/ui-modules/customizing/</guid><description>&lt;p&gt;Mesibo messaging UI is completely &lt;a href="https://docs.mesibo.com/open-source-chat-apps/"&gt;open-source&lt;/a&gt;, allowing you to download the entire source code and tailor the user interface to suit your application&amp;rsquo;s needs.&lt;/p&gt;
&lt;p&gt;Alternatively, you can also customize most of the user interface including how messages are rendered by implementing &lt;code&gt;MesiboUIListner&lt;/code&gt;. The mesibo UI will call this listener functions with the screen and row data as explained below.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Mesibo messaging UI is based on RecyclerView in Android and UITableView in iOS. Hence, you must be well-acquainted with these components:&lt;/p&gt;</description></item><item><title>mesibo Documentation</title><link>https://docs.mesibo.com/i/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/i/</guid><description>&lt;p&gt;mesibo is a real-time messaging and communication platform that provides APIs and SDKs for adding end-to-end encrypted chat, group messaging, voice and video calling, conferencing, and more to your mobile or web app. It is designed for developers who want to build scalable, secure, low-latency communication features without dealing with infrastructure, protocols, or reliability challenges.&lt;/p&gt;
&lt;p&gt;In addition to mobile (Android, iOS, Flutter) and JavaScript APIs, mesibo also provides SDKs for Python and C++ (x86 and ARM), enabling integration into desktop applications, AI workflows, and hardware devices.&lt;/p&gt;</description></item><item><title>Mesibo Scripting Essentials</title><link>https://docs.mesibo.com/chatbot/scripting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/chatbot/scripting/</guid><description>&lt;p&gt;In this section, we will look at some of the essential elements of mesibo scripting. Although you will be using the same Javascript you are already familiar with, there are a few mesibo specific extensions you need to use for handling incoming messages, sending responses, etc.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s get started with the global object &lt;code&gt;mesibo&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="mesibo---the-master-object"&gt;mesibo - the master object&lt;a class="td-heading-self-link" href="#mesibo---the-master-object" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There exists a global object, &lt;code&gt;mesibo&lt;/code&gt; which is an instance of the class Mesibo(). It is accessible from anywhere in the script and used for configuration and setting various event handlers such as message handler, message status handler, login handler, timer handler, exception handler, etc.&lt;/p&gt;</description></item><item><title>Mesibo Real-time Chat APIs - Forward Messages</title><link>https://docs.mesibo.com/api/messaging/forwarding-messages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/forwarding-messages/</guid><description>&lt;p&gt;In this section, we will describe how to forward existing messages and check if any incoming message was forwarded.&lt;/p&gt;
&lt;h3 id="forward-a-message"&gt;Forward a Message&lt;a class="td-heading-self-link" href="#forward-a-message" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;To forward an existing message, you only need to create a &lt;code&gt;MesiboMessage&lt;/code&gt; object from the original message and &lt;code&gt;send&lt;/code&gt; it.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboMessage&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;origMessage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;send&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;where the &lt;code&gt;profile&lt;/code&gt; is the user or group profile to whom you want to forward the message. You can change the properties of the new message like expiry, message ID, type, etc. However, you can not modify the message content.&lt;/p&gt;</description></item><item><title>Mesibo Backend APIs - Group Management</title><link>https://docs.mesibo.com/api/backend-api/group-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/backend-api/group-management/</guid><description>&lt;p&gt;mesibo allows you to create groups having a set of users as group members. Once you create a group, you can send messages to the group, and all the group members will receive the messages.&lt;/p&gt;
&lt;p&gt;Unless you have a specific need for creating groups using backend API, we recommend using &lt;a href="https://docs.mesibo.com/api/group-management/"&gt;real-time Group Management APIs&lt;/a&gt; to create groups and add members. It is real-time, powerful, and works across both cloud and on-premise deployment without any changes.&lt;/p&gt;</description></item><item><title>Hosting Backend APIs with mesibo On-Premise</title><link>https://docs.mesibo.com/on-premise/hosting-backend-apis/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/on-premise/hosting-backend-apis/</guid><description>&lt;p&gt;When using mesibo On-Premise, mesibo has no access to your database. As a result, only a limited set of operations — &lt;code&gt;useradd&lt;/code&gt;, &lt;code&gt;userset&lt;/code&gt;, and &lt;code&gt;usertoken&lt;/code&gt; — can be performed through the mesibo-hosted &lt;a href="https://docs.mesibo.com/api/backend-api/"&gt;backend API&lt;/a&gt;. For all other operations such as group management or sending messages, you must use the real-time APIs, for example the &lt;a href="https://docs.mesibo.com/api/group-management/"&gt;real-time group management APIs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For this reason, hosting the backend APIs on your own server is the recommended setup for all On-Premise deployments. When you host the backend APIs, all backend API calls go directly to your own database without passing through mesibo at all, keeping your data entirely within your control. It also gives you full access to the complete backend API, ensures your database is updated instantly for all operations, and unlocks additional endpoints like &lt;code&gt;usersget&lt;/code&gt;, &lt;code&gt;groupsget&lt;/code&gt;, and more.&lt;/p&gt;</description></item><item><title>Integrate Conferencing APIs</title><link>https://docs.mesibo.com/api/conferencing/quick-start/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/conferencing/quick-start/</guid><description>&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before we dive into the various concepts and APIs for conferencing &amp;amp; streaming, you need to go through the following to familiarize yourself with mesibo APIs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/tutorials/get-started/"&gt;Get Started Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Familiar with &lt;a href="https://docs.mesibo.com/api/group-management/"&gt;Real-time Group Management and Group Messaging APIs&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Basic familiarity with &lt;a href="https://docs.mesibo.com/api/calls"&gt;Mesibo Call APIs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;It is also recommended that you refer to the source code of mesibo open-source Conferencing App to quickly learn how each API is used.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="key-terms"&gt;Key Terms&lt;a class="td-heading-self-link" href="#key-terms" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In this document, we will use the following terms&lt;/p&gt;</description></item><item><title>mesibo SDK for iOS</title><link>https://docs.mesibo.com/install/ios/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/ios/</guid><description>&lt;p&gt;&lt;!-- &lt;script src="https://api.mesibo.com/maven_versions.js?refresh=1"&gt;&lt;/script&gt; --&gt;
&lt;script&gt;
var s = document.createElement("script");
//s.src = "https://cdn.mesibo.com/meta/versions.js" + "?ts=" + ((new Date().getTime()&amp;~3600));
s.src = "https://cdn.mesibo.com/meta/versions.js";
document.getElementsByTagName("head")[0].appendChild(s);
&lt;/script&gt;


The Mesibo SDKs for iOS are available via CocoaPods or as standalone frameworks that can be installed manually.&lt;/p&gt;
&lt;h2 id="minimum-requiements"&gt;Minimum Requiements&lt;a class="td-heading-self-link" href="#minimum-requiements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Latest stable &lt;a href="https://developer.apple.com/documentation/xcode-release-notes"&gt;Xcode&lt;/a&gt; version.&lt;/li&gt;
&lt;li&gt;Target iOS 11.0 and above&lt;/li&gt;
&lt;li&gt;Ensure to add &lt;code&gt;-ObjC&lt;/code&gt; linker flag to your Xcode project &lt;code&gt;Build Settings&lt;/code&gt; -&amp;gt; &lt;code&gt;Linking&lt;/code&gt; -&amp;gt; &lt;code&gt;Other Linker Flags&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can install mesibo into your Xcode project by using CocoaPods or manually downloading mesibo frameworks from GitHub and adding them to your project.&lt;/p&gt;</description></item><item><title>Mesibo Group Management - Managing Group Members and Admins</title><link>https://docs.mesibo.com/api/group-management/members-and-admins/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/group-management/members-and-admins/</guid><description>&lt;h3 id="adding-group-members-and-admins"&gt;Adding Group Members and Admins&lt;a class="td-heading-self-link" href="#adding-group-members-and-admins" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You can add members, and admins to the group by calling &lt;code&gt;addMembers&lt;/code&gt; API of the group profile. You need to pass the addresses of the users to be added as group members, permissions to be granted and admin permissions if you are adding them as group admins.&lt;/p&gt;
&lt;p&gt;You call the same API for adding members or modifying their member and admin permissions.&lt;/p&gt;
&lt;p&gt;When you add members or make them admin, they will be immediately notified by a listener function (explained later).&lt;/p&gt;</description></item><item><title>MesiboCall Class Reference</title><link>https://docs.mesibo.com/api/calls/mesibocall/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/calls/mesibocall/</guid><description>&lt;p&gt;&lt;code&gt;MesiboCall&lt;/code&gt; is the main class to access all the mesibo call API functionalities and access the following classes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/calls/call"&gt;MesiboCall.Call&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/calls/callproperties"&gt;MesiboCall.CallProperties&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/calls/listeners/#incominglistener"&gt;MesiboCall.IncomingListener&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/calls/listeners/#inprogresslistener"&gt;MesiboCall.InProgressListener&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a detailed review of the Call API, see &lt;a href="https://docs.mesibo.com/api/calls"&gt;Mesibo Voice and Video Call API &lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;MesiboCall is a singleton class. You can access the instance of &lt;code&gt;MesiboCall&lt;/code&gt; using the &lt;code&gt;getInstance()&lt;/code&gt; method.&lt;/p&gt;
&lt;p&gt;For example, in Android,&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboCall&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getInstance&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once you obtain the instance, you can then call the following methods.&lt;/p&gt;
&lt;h2 id="mesibocall-methods"&gt;MesiboCall methods&lt;a class="td-heading-self-link" href="#mesibocall-methods" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="init"&gt;init&lt;a class="td-heading-self-link" href="#init" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Initialize the mesibo call.&lt;/p&gt;</description></item><item><title>Mesibo Chatbot and Scripting - Message Class</title><link>https://docs.mesibo.com/chatbot/reference/message/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/chatbot/reference/message/</guid><description>&lt;p&gt;The Message class can be used to send messages. Messages received in the handler mesibo.onmessage will be of this type.&lt;/p&gt;
&lt;h2 id="constructor"&gt;Constructor&lt;a class="td-heading-self-link" href="#constructor" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="message"&gt;Message()&lt;a class="td-heading-self-link" href="#message" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The constructor initializes the Message class. It must be called before you perform any method calls.
Some of the property fields will be already initialized for you by mesibo and are also protected(read-only).&lt;/p&gt;
&lt;h2 id="properties"&gt;Properties&lt;a class="td-heading-self-link" href="#properties" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="messageaid-read-only"&gt;Message.aid &lt;sub&gt;read-only&lt;/sub&gt;&lt;a class="td-heading-self-link" href="#messageaid-read-only" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Application ID. If you are sending a message, it is necessary to set this field to a vaild aid. Automatically initialized.&lt;/p&gt;</description></item><item><title>Mesibo Phone Contacts Monitoring and Synchronization</title><link>https://docs.mesibo.com/api/phone-contacts-and-addressbook/monitoring-and-synchronization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/phone-contacts-and-addressbook/monitoring-and-synchronization/</guid><description>&lt;p&gt;In the previous section, we covered the basic phone contacts APIs. Now, we will discuss the mesibo APIs for synchronizing phone contacts and monitoring contact changes. The phone contact synchronization API uses &lt;a href=""&gt;mesibo contact syncronization APIs&lt;/a&gt; internally and hence familaize yourself with it before reading further.&lt;/p&gt;
&lt;h3 id="why-phone-contacts-synchronization-is-important"&gt;Why Phone Contacts Synchronization is important?&lt;a class="td-heading-self-link" href="#why-phone-contacts-synchronization-is-important" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Contact synchronization is important for several reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If your app logs in users based on their phone number, syncing contacts allows identifying which of the user&amp;rsquo;s contacts are also using your app. This facilitates connecting users with their contacts seamlessly.&lt;/p&gt;</description></item><item><title>Preparing your App to receive Push Notifications</title><link>https://docs.mesibo.com/api/push-notifications/prepare-app/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/push-notifications/prepare-app/</guid><description>&lt;p&gt;Once you configure push credentials in the &lt;a href="https://console.mesibo.com/"&gt;mesibo console&lt;/a&gt;, mesibo is almost ready to send push notifications to your users. However, you still need to prepare your app to receive and process push notifications. You need to ensure that your app can process push notifications quickly and can perform the following tasks.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Initialize mesibo on receiving a push&lt;/li&gt;
&lt;li&gt;Use local notifications to show customized notifications&lt;/li&gt;
&lt;li&gt;Send device token to mesibo&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="1-initialize-mesibo-on-receiving-a-push"&gt;1. Initialize mesibo on receiving a push&lt;a class="td-heading-self-link" href="#1-initialize-mesibo-on-receiving-a-push" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;When your app receives a push notification, the system launches your app or wakes it from the suspended state. If you have already initialized mesibo, and when the system wakes your app from the suspended state, mesibo will connect automatically. However, if the system launches your app on receiving push, your app MUST ensure that mesibo is initialized quickly before the system suspends your app.&lt;/p&gt;</description></item><item><title>Searching Users and Groups Based on Location</title><link>https://docs.mesibo.com/api/secure-location/searching-users-and-groups/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/secure-location/searching-users-and-groups/</guid><description>&lt;p&gt;The mesibo location search APIs allow you to search for other users and groups based on location, distance, location age, and more. Your users can search based on the current or a custom location. To implement location search feature in your app, you need to follow these two steps:&lt;/p&gt;
&lt;h3 id="step-1---implement-mesibo-profile-search-listener"&gt;Step 1 - Implement Mesibo Profile Search Listener&lt;a class="td-heading-self-link" href="#step-1---implement-mesibo-profile-search-listener" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You need to implement the &lt;code&gt;MesiboProfileSearchListener&lt;/code&gt; interface to receive profile search results. The following are listener functions:&lt;/p&gt;</description></item><item><title>mesibo release - v2.3</title><link>https://docs.mesibo.com/changelog/v23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/changelog/v23/</guid><description>&lt;p&gt;The last mesibo update brings forth numerous enhancements, including the introduction of the new Flutter SDK and Phone Contacts API. Among various other enhancements, we&amp;rsquo;ve incorporated real-time billing notifications using webhooks as requested by many enterprise customers. Furthermore, we have expanded platform support by introducing APIs for Microsoft Windows.&lt;/p&gt;
&lt;p&gt;We highly recommend reviewing these changes and updating mesibo APIs in your applications:&lt;/p&gt;
&lt;h3 id="flutter-sdk"&gt;Flutter SDK&lt;a class="td-heading-self-link" href="#flutter-sdk" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;mesibo introduces the first version of &lt;a href="https://pub.dev/packages/mesibo_flutter_sdk"&gt;Flutter SDK&lt;/a&gt; for Android and iOS. For detailed information, please refer to the Flutter SDK &lt;a href="https://docs.mesibo.com/install/flutter/"&gt;installation instructions&lt;/a&gt; and &lt;a href="https://docs.mesibo.com/tutorials/get-started/"&gt;tutorial&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Viewing Profile Information and Images</title><link>https://docs.mesibo.com/api/users-and-profiles/viewing-profile-information/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/users-and-profiles/viewing-profile-information/</guid><description>&lt;p&gt;As explained before, a user can publish a profile about themselves that other users can view. Groups can also publish profile information that members can view. This section explains how users can access and view those profiles.&lt;/p&gt;
&lt;h2 id="getting-the-profile-of-another-user-or-a-group"&gt;Getting the Profile of another User or a Group&lt;a class="td-heading-self-link" href="#getting-the-profile-of-another-user-or-a-group" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You can get the profile of any user or group by calling getProfile API.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;profile&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Mesibo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getProfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;userAddress&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Or,&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;profile&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Mesibo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getProfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;groupId&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If the profile already exists locally, the &lt;code&gt;getProfile()&lt;/code&gt; function will instantly return it. If not, it will return an empty profile and request the profile from the mesibo (or your on-premise) server.&lt;/p&gt;</description></item><item><title>Conference Admin and Moderation | Mesibo Video Conferencing SDK</title><link>https://docs.mesibo.com/api/conferencing/admin-and-moderation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/conferencing/admin-and-moderation/</guid><description>&lt;p&gt;In this section, we will learn about conference room administration. The group owners and admins can perform various admin tasks using Admin API, depending on the admin permissions. For example,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mute or unmute participants&lt;/li&gt;
&lt;li&gt;ask participants to publish voice and video streams on demand&lt;/li&gt;
&lt;li&gt;ask participants to stop publishing without leaving the room&lt;/li&gt;
&lt;li&gt;ask participants to view/subscribe to a particular publisher&lt;/li&gt;
&lt;li&gt;ask participants to leave the room&lt;/li&gt;
&lt;li&gt;ask participants to view streams in full screen&lt;/li&gt;
&lt;li&gt;make other participants admin&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To administer or moderate a conference room, one needs to be an owner or an admin of the room. Refer to the &lt;a href="https://docs.mesibo.com/api/group-management/"&gt;Real-time Group Management APIs&lt;/a&gt; to learn about how to add admins to the group.&lt;/p&gt;</description></item><item><title>Call API Reference</title><link>https://docs.mesibo.com/api/calls/call/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/calls/call/</guid><description>&lt;p&gt;The following is a list of methods available in &lt;code&gt;Call&lt;/code&gt; API. The &lt;code&gt;Call&lt;/code&gt; object is created by calling MesiboCall.call() or mesibo creates for you in an incoming call as explained in &lt;a href="https://docs.mesibo.com/api/calls/#inprogresslistener"&gt;Overview&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="initialization-functions"&gt;Initialization Functions&lt;a class="td-heading-self-link" href="#initialization-functions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="start"&gt;start&lt;a class="td-heading-self-link" href="#start" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;It starts call processing. This MUST be the first function you should call once your user-interface is ready.&lt;/p&gt;
&lt;p&gt;It takes the following parameters:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ctx&lt;/strong&gt;, Activity/View Controller&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;InProgressListener&lt;/strong&gt;, &lt;a href="https://docs.mesibo.com/api/calls/listeners/#inprogresslistener"&gt;InProgressListener&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="setlistener"&gt;setListener&lt;a class="td-heading-self-link" href="#setlistener" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Set the listener class that will be called during the active call. You will only need to use this function if you need to change the listener after calling start().&lt;/p&gt;</description></item><item><title>mesibo SDK for Flutter</title><link>https://docs.mesibo.com/install/flutter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/flutter/</guid><description>&lt;!-- &lt;script src="https://api.mesibo.com/maven_versions.js?refresh=1"&gt;&lt;/script&gt; --&gt;
&lt;script&gt;
var s = document.createElement("script");
//s.src = "https://cdn.mesibo.com/meta/versions.js" + "?ts=" + ((new Date().getTime()&amp;~3600));
s.src = "https://cdn.mesibo.com/meta/versions.js";
document.getElementsByTagName("head")[0].appendChild(s);
&lt;/script&gt;


&lt;p&gt;mesibo Flutter SDK allows you to quickly add messaging, calls, and conferencing on your Flutter app in a few lines of code.&lt;/p&gt;
&lt;h2 id="supported-platforms"&gt;Supported Platforms&lt;a class="td-heading-self-link" href="#supported-platforms" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://pub.dev/packages/mesibo_flutter_sdk"&gt;mesibo flutter SDK&lt;/a&gt; supports&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Android&lt;/li&gt;
&lt;li&gt;iOS&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="minimum-requiements"&gt;Minimum Requiements&lt;a class="td-heading-self-link" href="#minimum-requiements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Latest Flutter 3.19 and above&lt;/li&gt;
&lt;li&gt;Refer to the minimum requirements for mesibo Android and iOS APIs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="installing-mesibo-sdks-in-your-flutter-apps"&gt;Installing mesibo SDKs in your Flutter Apps&lt;a class="td-heading-self-link" href="#installing-mesibo-sdks-in-your-flutter-apps" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;With Flutter:&lt;/p&gt;</description></item><item><title>Mesibo Group Management - Group Operations</title><link>https://docs.mesibo.com/api/group-management/group-operations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/group-management/group-operations/</guid><description>&lt;h3 id="get-group-settings-and-permissions"&gt;Get Group Settings and Permissions&lt;a class="td-heading-self-link" href="#get-group-settings-and-permissions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You can get group settings, permissions and PINs (only if admin) &lt;code&gt;getSettings&lt;/code&gt; API of the group profile. When you call &lt;code&gt;getSettings&lt;/code&gt; API, &lt;code&gt;Mesibo_onGroupSettings&lt;/code&gt; callback function in the listener will be called with settings, permissions and PINs. If you are not a member, &lt;code&gt;Mesibo_onGroupError&lt;/code&gt; callback function in the listener will be called with an error code.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-proto" data-lang="proto"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;void&lt;/span&gt; &lt;span class="n"&gt;getSettings&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GroupListener&lt;/span&gt; &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;getSettings&lt;/code&gt; takes the following parameters:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Parameter&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;listener&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Group listener instance which will be called when group settings are retrived. Note that, if you are using Javascript, you can pass listener or a callback function. For all other platforms, it is the listener.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;{:.proto-table}&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="delete-group"&gt;Delete Group&lt;a class="td-heading-self-link" href="#delete-group" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You can delete the group by calling &lt;code&gt;deleteGroup&lt;/code&gt; API of the group profile. You need to have the necessary admin permissions to delete a group.&lt;/p&gt;</description></item><item><title>High Availability for mesibo On-Premise</title><link>https://docs.mesibo.com/on-premise/high-availability-ha/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/on-premise/high-availability-ha/</guid><description>&lt;p&gt;mesibo On-Premise supports high availability (HA) configurations that keep your service running through server failures, hardware faults, network outages, or data center incidents. This is achieved by running multiple mesibo On-Premise instances, where one or more standby instances automatically take over if the active server becomes unavailable.&lt;/p&gt;
&lt;p&gt;mesibo offers the highest form of high availability configuration, known as M+N redundancy, where the M is the number of active servers which will serve your users and N is the number of the standby server that will take over when one of the active servers will fail. This approach provides resiliency against any kind of failure including catastrophic events by adding standby servers across the globe. M &amp;amp; N varies depending on the type of the account, M is currently 1 for on-premise.&lt;/p&gt;</description></item><item><title>Backend for Open Source Android, iOS and Web Messenger</title><link>https://docs.mesibo.com/tutorials/open-source-whatsapp-clone/backend/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-whatsapp-clone/backend/</guid><description>&lt;p&gt;Adding a login mechanism to an app is a fundamental part of building secure applications that require user authentication. You need to implement a registration process where new users can sign up for your app by providing their information, such as phone, email, username, and password. Once users provide this data, your app communicates with your server to perform the authentication process, which requires the creation of APIs on your server for authentication. It&amp;rsquo;s important to note that this process is entirely independent of mesibo, and the implementation of your login mechanism is at your discretion.&lt;/p&gt;</description></item><item><title>Mesibo Chatbot and Scripting - HTTP Class</title><link>https://docs.mesibo.com/chatbot/reference/http/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/chatbot/reference/http/</guid><description>&lt;p&gt;The &lt;code&gt;Http&lt;/code&gt; class can be used to make REST calls to a request endpoint and receive data asynchronously.&lt;/p&gt;
&lt;h3 id="constructor"&gt;Constructor&lt;a class="td-heading-self-link" href="#constructor" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Http()&lt;br&gt;
The constructor initializes the Http class. It must be called before you perform any method calls.&lt;/p&gt;
&lt;h3 id="properties"&gt;Properties&lt;a class="td-heading-self-link" href="#properties" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;To make an HTTP call you can set the following properties for an Http class object.&lt;/p&gt;
&lt;h3 id="httpurl"&gt;Http.url&lt;a class="td-heading-self-link" href="#httpurl" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Both http and https URL are supported. You can also pass authentication information in URL. For example, &lt;a href="https://username:password@yourapiurl.com"&gt;https://username:password@yourapiurl.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Mesibo End-to-End Encryption - Man-in-the-middle Protection APIs</title><link>https://docs.mesibo.com/api/end-to-end-encryption/man-in-the-middle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/end-to-end-encryption/man-in-the-middle/</guid><description>&lt;p&gt;It is generally not necessary to configure these options for casual chat. The default end-to-end encryption provides best-in-class security. However, if you are worried about eavesdropping, you can use a secret password, or install the public certificate of the peer. They are included in the per-message encryption process, and these out-of-the-band methods make it nearly impossible for anyone to intercept your communication.&lt;/p&gt;
&lt;h3 id="setting-a-password"&gt;Setting a Password&lt;a class="td-heading-self-link" href="#setting-a-password" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You can set a password that is included in the encryption process (KDF). The peer needs to use the same password to decrypt the messages. Setting a password can be very effective against a man-in-the-middle attack. Refer to the article link above for the description.&lt;/p&gt;</description></item><item><title>Mesibo Backend APIs - Messaging</title><link>https://docs.mesibo.com/api/backend-api/messaging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/backend-api/messaging/</guid><description>&lt;p&gt;While your users can send messages to each other or groups using Mesibo real-time APIs, your backend can also send messages to one of your users or groups using backend API.&lt;/p&gt;
&lt;p&gt;To send a message, you need to send a message JSON request to the backend API, for example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;op&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;token&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;ptlk9hdel1gqxf3p0s15f5f5gtusldej18tl794suzit&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;from&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;me&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;to&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;you,she,he&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;gid&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;111&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;expiry&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;flags&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;forced&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;This is my message&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;Parameter&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Description&lt;/th&gt;
 &lt;th style="text-align: right"&gt;Default&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;op&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;MUST have the value - &amp;ldquo;message&amp;rdquo; (see example above)&lt;/td&gt;
 &lt;td style="text-align: right"&gt;Mandatory&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;token&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Application Token obtained from the mesibo console&lt;/td&gt;
 &lt;td style="text-align: right"&gt;Mandatory&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;message.from&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;From address [MUST be a valid user]&lt;/td&gt;
 &lt;td style="text-align: right"&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;message.to&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;To addresses, comma separated&lt;/td&gt;
 &lt;td style="text-align: right"&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;message.gid&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Group ID&lt;/td&gt;
 &lt;td style="text-align: right"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;message.type&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Message Type&lt;/td&gt;
 &lt;td style="text-align: right"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;message.expiry&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Expiry in seconds&lt;/td&gt;
 &lt;td style="text-align: right"&gt;1 year&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;message.when&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Schedule after &lt;code&gt;when&lt;/code&gt; seconds&lt;/td&gt;
 &lt;td style="text-align: right"&gt;0 (now)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;message.message&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Message&lt;/td&gt;
 &lt;td style="text-align: right"&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;message.url&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;File URL&lt;/td&gt;
 &lt;td style="text-align: right"&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;message.title&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Title, when sending a file URL&lt;/td&gt;
 &lt;td style="text-align: right"&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;If the request is successful, the response will be like,&lt;/p&gt;</description></item><item><title>Changing Default Texts, Localization, Colors, and other UI elements</title><link>https://docs.mesibo.com/ui-modules/setting-defaults/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/ui-modules/setting-defaults/</guid><description>&lt;p&gt;You can change default texts, perform localization, change colors, and other UI properties to suit your app needs&lt;/p&gt;
&lt;p&gt;&lt;code&gt;MesiboUI&lt;/code&gt; creates a singleton object &lt;code&gt;MesiboUiDefaults&lt;/code&gt; having various properties which you change as needed. You should configure it once at the start. It is NOT RECOMMENDED to change these values at runtime.&lt;/p&gt;
&lt;p&gt;Below is a list of a few properties. Refer to the source code for the complete definition&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;static&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MesiboUiDefaults&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;messageListTitle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Messages&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;userListTitle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Contacts&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;createGroupTitle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Create a New Group&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;modifyGroupTitle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Modify Group details&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;selectContactTitle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Select a contact&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;selectGroupContactsTitle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Select group members&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To change, get the instance of &lt;code&gt;MesiboUiDefaults&lt;/code&gt; and change the necessary variable.&lt;/p&gt;</description></item><item><title>Mesibo Phone Contacts Utility Functions</title><link>https://docs.mesibo.com/api/phone-contacts-and-addressbook/utility-functions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/phone-contacts-and-addressbook/utility-functions/</guid><description>&lt;p&gt;You can also use the followng functions as needed:&lt;/p&gt;
&lt;h3 id="country-information"&gt;Country Information&lt;a class="td-heading-self-link" href="#country-information" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You can use one of the following functions to get country information:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-proto" data-lang="proto"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboPhoneContact&lt;/span&gt; &lt;span class="n"&gt;getCountryCode&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboPhoneContact&lt;/span&gt; &lt;span class="n"&gt;getCountryCode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;countryCode&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;where &lt;code&gt;countryCode&lt;/code&gt; is the ISO country code (for example, &amp;lsquo;US&amp;rsquo;) or phone code (for example, &amp;lsquo;1&amp;rsquo;). If invoked without any parameters, &lt;code&gt;getCountryCode&lt;/code&gt; returns the information about the currently set country.&lt;/p&gt;
&lt;h3 id="name-lookup-options"&gt;Name Lookup Options&lt;a class="td-heading-self-link" href="#name-lookup-options" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The mesibo phone contact API allows you to retrieve contact names, country information, and more from phone numbers. mesibo uses native Android and iOS APIs for this purpose and maintains a cache for efficient lookups.&lt;/p&gt;</description></item><item><title>Subscribing to Mesibo Profile Update</title><link>https://docs.mesibo.com/api/users-and-profiles/subscribing-to-profile-update/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/users-and-profiles/subscribing-to-profile-update/</guid><description>&lt;h3 id="subscribing-to-a-profile"&gt;Subscribing to a Profile&lt;a class="td-heading-self-link" href="#subscribing-to-a-profile" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You can subscribe to a user&amp;rsquo;s profile so your app can be notified when that profile is changed.&lt;/p&gt;
&lt;p&gt;When you first call &lt;code&gt;getProfile()&lt;/code&gt; for a user, if their profile doesn&amp;rsquo;t exist locally, your app will automatically be subscribed to receive updates for that profile. You can also manually subscribe or unsubscribe anytime:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;subscribe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once subscribed to a profile, your app will be notified of any updates through listeners. There are two types of listeners that you can implement:&lt;/p&gt;</description></item><item><title>Message Reply and Conversation Threading</title><link>https://docs.mesibo.com/api/messaging/conversation-threads/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/conversation-threads/</guid><description>&lt;p&gt;Conversation threading is a very useful feature that allows you to create message threads by&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Replying to messages&lt;/li&gt;
&lt;li&gt;Associating and Grouping a set of messages with something related to your apps (message context).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="threading-by-reply"&gt;Threading by Reply&lt;a class="td-heading-self-link" href="#threading-by-reply" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You can create a message thread by replying to messages. There is no limit on the depth of the message thread and hence you can reply to a reply and so on.&lt;/p&gt;</description></item><item><title>Creating your first chatbot</title><link>https://docs.mesibo.com/chatbot/sample-chatbot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/chatbot/sample-chatbot/</guid><description>&lt;p&gt;In this tutorial, we will create a simple chatbot with mesibo scripting. Mesibo scripting allows you to easily interface with chatbot and NLP engines like Dialogflow, IBM Watson, Microsoft Azure Bot Services, etc. For this sample, we will be using Dialogflow, but you can modify this example to connect with any other services.&lt;/p&gt;
&lt;h3 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;We will not get into the details of building the Dialogflow agent from scratch. Please refer to the &lt;a href="https://cloud.google.com/dialogflow/docs/quick/api"&gt;Dialogflow Docs&lt;/a&gt; for learning the basics of Dialogflow and building your chat agents.&lt;/li&gt;
&lt;li&gt;DialogFlow Project ID and the keys which you can get from DialogFlow console.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="1-create-a-dialogflow-agent"&gt;1. Create a Dialogflow agent&lt;a class="td-heading-self-link" href="#1-create-a-dialogflow-agent" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Go to Dialogflow Console and create an agent. Refer to &lt;a href="https://cloud.google.com/dialogflow/docs/quick/api#create-an-agent"&gt;Creating an Agent&lt;/a&gt;. You can build your agent from scratch or import prebuilt-agents like Smalltalk. If you wish to customize the responses, you can do so by clicking on the intent and modifying the Text response. Here is a detailed tutorial for &lt;a href="https://cloud.google.com/dialogflow/docs/tutorials/build-an-agent"&gt;building a basic chatbot in Dialogflow&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Troubleshooting Push Notifications</title><link>https://docs.mesibo.com/api/push-notifications/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/push-notifications/troubleshooting/</guid><description>&lt;p&gt;Push notifications are crucial for keeping your app users engaged and informed. If you&amp;rsquo;re facing issues with push notifications, follow these steps to troubleshoot and resolve the problem. Do not skip any steps or the final note. We have covered all scenarios, common mistakes, and even provided you with scripts to bypass mesibo and send push directly.&lt;/p&gt;
&lt;h2 id="step-1-verify-firebase-and-apple-push-credentials"&gt;Step 1: Verify Firebase and Apple Push Credentials&lt;a class="td-heading-self-link" href="#step-1-verify-firebase-and-apple-push-credentials" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ensure that you have correctly configured the push credentials for Android (Firebase) and iOS (Apple Push Notification Service) in the mesibo console as described &lt;a href="configure"&gt;here&lt;/a&gt;. Common mistakes include:&lt;/p&gt;</description></item><item><title>Users and Groups</title><link>https://docs.mesibo.com/tutorials/get-started/users-and-groups/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/users-and-groups/</guid><description>&lt;p&gt;Before driving into messaging, calls, and other aspects, let&amp;rsquo;s first understand the concept of end-points or destinations.&lt;/p&gt;
&lt;p&gt;For instance, when you send an SMS, the destination is a phone number. When sending an email, the destination is an email address. Similarly, in mesibo, the address (previously used for creating tokens) serves as the destination for one-to-one messages or calls. As mentioned earlier, the address could be any string, as defined by your application. In your application, a user is identified by their address.&lt;/p&gt;</description></item><item><title>CallProperties Class Reference</title><link>https://docs.mesibo.com/api/calls/callproperties/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/calls/callproperties/</guid><description>&lt;p&gt;&lt;code&gt;MesiboCall.CallProperties&lt;/code&gt; defines various call properties and behavior, for example, video size, bitrate, hide on proximity, etc.&lt;/p&gt;
&lt;p&gt;For information on the entrance class, &lt;code&gt;MesiboCall&lt;/code&gt; see &lt;a href="https://docs.mesibo.com/api/calls/mesibocall"&gt;MesiboCall&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="creating-an-instance-of-callproperties"&gt;Creating an instance of CallProperties&lt;a class="td-heading-self-link" href="#creating-an-instance-of-callproperties" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use the method &lt;a href="https://docs.mesibo.com/api/calls/mesibocall/#createcallproperties"&gt;MesiboCall.createCallProperties()&lt;/a&gt;
to get an instance of &lt;code&gt;CallProperties&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For example, in Android, to create call properties for a video call,&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboCall&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;CallProperties&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MesiboCall&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getInstance&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;createCallProperties&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Set audio properties for a call using &lt;code&gt;CallProperties.audio&lt;/code&gt; which will contain an instance of &lt;a href="#audioproperties"&gt;AudioProperties&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Set video properties for a call using &lt;code&gt;CallProperties.video&lt;/code&gt; which will contain an instance of &lt;a href="#videoproperties"&gt;VideoProperties&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example, in Android,&lt;/p&gt;</description></item><item><title>Installing mesibo on-premise as Linux service without using Docker</title><link>https://docs.mesibo.com/on-premise/install-as-linux-service/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/on-premise/install-as-linux-service/</guid><description>&lt;p&gt;If you are an experienced Linux user, you can install mesibo on-premise with web-based control panel on your Linux server directly (just like any other software) without using docker. We earlier offered Amazon EC2 AMI created using this approach. However, since many mesibo users use other hosting providers, we are making all the steps, and scripts available in this document.&lt;/p&gt;
&lt;p&gt;The Pros and cons of this approach are:&lt;/p&gt;
&lt;h3 id="pros"&gt;Pros&lt;a class="td-heading-self-link" href="#pros" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Simplified setup (networking, file system access, etc)&lt;/li&gt;
&lt;li&gt;Control mesibo using Linux service manager &lt;code&gt;systemctl&lt;/code&gt; that provides more flexibility compared to docker&lt;/li&gt;
&lt;li&gt;[Optional] web-based control panel to configure and control (start/restart/stop/update) mesibo&lt;/li&gt;
&lt;li&gt;Slight performance advantage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cons"&gt;Cons&lt;a class="td-heading-self-link" href="#cons" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Limited Distributions, unlike the mesibo docker image which supports almost all Linux distributions, this approach is supported only on RHEL8 (Ubuntu soon) based distributions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It is required that you refer to and try Docker-based installation first before you attempt this.&lt;/p&gt;</description></item><item><title>mesibo SDK for JavaScript</title><link>https://docs.mesibo.com/install/javascript/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/javascript/</guid><description>&lt;!-- &lt;script src="https://api.mesibo.com/maven_versions.js?refresh=1"&gt;&lt;/script&gt; --&gt;
&lt;script&gt;
var s = document.createElement("script");
//s.src = "https://cdn.mesibo.com/meta/versions.js" + "?ts=" + ((new Date().getTime()&amp;~3600));
s.src = "https://cdn.mesibo.com/meta/versions.js";
document.getElementsByTagName("head")[0].appendChild(s);
&lt;/script&gt;


&lt;h2 id="install-mesibo-javascript-sdk"&gt;Install Mesibo Javascript SDK&lt;a class="td-heading-self-link" href="#install-mesibo-javascript-sdk" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The easiest way to install mesibo Javascript SDK is to include following in &lt;code&gt;&amp;lt;HEAD&amp;gt;&lt;/code&gt; section of your HTML file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://cdn.mesibo.com/api/mesibo-version_js.js&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;or, to always use the latest version,&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://cdn.mesibo.com/api/mesibo.js&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can also use &lt;code&gt;async&lt;/code&gt; and &lt;code&gt;defer&lt;/code&gt; attributes inside &lt;code&gt;script&lt;/code&gt; tag if requires.&lt;/p&gt;
&lt;p&gt;Alternatively, you may also use DOM method to load the mesibo JS on demand when it is not possible to use the script tag.&lt;/p&gt;</description></item><item><title>Backend for Open Source Android and iOS Messenger</title><link>https://docs.mesibo.com/tutorials/open-source-whatsapp-clone/on-premise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-whatsapp-clone/on-premise/</guid><description>&lt;p&gt;In this section, we will discuss hosting the complete Mesibo real-time messaging, voice, and video server on your own premises.&lt;/p&gt;
&lt;p&gt;It is important to note that there is no need to make changes to the mesibo messenger or any mesibo-powered application when deploying on-premise. This ensures that the transition from a cloud-based deployment to an on-premise configuration, changing the on-premise server, or deploying in a high availability configuration will not have any negative impact on your current app users. Your users can continue using the same app irrespective of your deployment model.&lt;/p&gt;</description></item><item><title>Open-Source Video Conferencing App</title><link>https://docs.mesibo.com/api/conferencing/demo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/conferencing/demo/</guid><description>&lt;p&gt;To make it easier for you, we have created a fully-featured open-source Zoom-like conferencing app for &lt;a href="https://mesibo.com/livedemo"&gt;web&lt;/a&gt; and mobile.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Standard, HD, FHD, UHD, and 4K resolution&lt;/li&gt;
&lt;li&gt;Multiple Camera, Multi-angle Streaming&lt;/li&gt;
&lt;li&gt;Multiple Screen Sharing&lt;/li&gt;
&lt;li&gt;Talk Detection&lt;/li&gt;
&lt;li&gt;Collaborative Whiteboard&lt;/li&gt;
&lt;li&gt;Group Voice and Video Call&lt;/li&gt;
&lt;li&gt;One-to-One &amp;amp; Group Chat&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://mesibo.com/demos/conferencing/"&gt;Try the Demo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/mesibo/conferencing"&gt;Download Source Code&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can download the entire source code from our &lt;a href="https://github.com/mesibo/conferencing"&gt;GitHub&lt;/a&gt; repository, customize and rebrand it without any restrictions. Using mesibo SDKs and open source code, it will only take a few hours for you to build a fully-featured conferencing app.&lt;/p&gt;</description></item><item><title>Mesibo Group Management - PIN-based Group Management</title><link>https://docs.mesibo.com/api/group-management/pin-based-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/group-management/pin-based-management/</guid><description>&lt;p&gt;The PINs based group management allows users to add themselves to a group by using a numerical PIN. The group admin can create a PIN with the necessary permissions and publish it to users so that they can join the group. The group admin can create multiple PINs with a different set of permissions. For example, the group admin can create a PIN that only allows limited functionality (say only to receive messages or group calls), while another PIN gives full functionalities like sending and receiving messages, making groups calls, etc.&lt;/p&gt;</description></item><item><title>Mesibo Profile Customization Listener and Functions</title><link>https://docs.mesibo.com/api/users-and-profiles/profile-customization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/users-and-profiles/profile-customization/</guid><description>&lt;p&gt;In some situations, you may want to modify or fill in missing profile information. For instance, if a user hasn&amp;rsquo;t uploaded a profile picture, their profile image will be empty. Instead of displaying nothing, you can replace it with a custom image. Similarly, you might need to override the user&amp;rsquo;s name with a name from their phone book based on your app&amp;rsquo;s logic. In this section, we will describe mesibo customization listener and functions.&lt;/p&gt;</description></item><item><title>Mesibo Backend APIs - Push Notifications</title><link>https://docs.mesibo.com/api/backend-api/push-notifications/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/backend-api/push-notifications/</guid><description>&lt;p&gt;This section describes how to configure push notification credentials using backend APIs. For in-depth details on how to use mesibo push notifications and configuration using the console, refer to the mesibo &lt;a href="https://docs.mesibo.com/api/push-notifications/"&gt;push notification documents&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you are using the mesibo on-premise server, it is highly recommended to use backend APIs to configure push notifications instead of the mesibo console. This ensures complete privacy of your push notification credentials. If you configure push notifications using both the backend API and the console, the on-premise server will give preference to the credentials configured via the backend APIs, which are saved in your database.&lt;/p&gt;</description></item><item><title>Reading Stored Messages and Sending Read Receipts</title><link>https://docs.mesibo.com/api/messaging/reading-messages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/reading-messages/</guid><description>&lt;p&gt;This set of APIs deal with reading stored messages in the database, sending read receipts, and syncing messages across devices.&lt;/p&gt;
&lt;p&gt;To read stored messages from the database, you need to create a read session and set the criteria to read messages; for example,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;read all messages&lt;/li&gt;
&lt;li&gt;read messages from a sender&lt;/li&gt;
&lt;li&gt;read messages for a particular group&lt;/li&gt;
&lt;li&gt;read messages matching a search query&lt;/li&gt;
&lt;li&gt;read messages for a conversation thread&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reading-modes"&gt;Reading Modes&lt;a class="td-heading-self-link" href="#reading-modes" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There are two modes of operation&lt;/p&gt;</description></item><item><title>Sending and Receiving Messages</title><link>https://docs.mesibo.com/tutorials/get-started/sending-and-receiving-messages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/sending-and-receiving-messages/</guid><description>&lt;p&gt;In this section, we will describe how to send and receive messages.&lt;/p&gt;
&lt;p&gt;mesibo allows you to send and receive various types of real-time messages - plain text, rich message with media such as image, audio, video, doc, etc, URL preview, location, binary data, etc.&lt;/p&gt;
&lt;p&gt;A message has various properties, for example, id, status, expiry, etc. Refer to the &lt;a href="https://docs.mesibo.com/api/messaging"&gt;messaging api documentation&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2 id="sending-messages"&gt;Sending Messages&lt;a class="td-heading-self-link" href="#sending-messages" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To send messages, you only need to create a &lt;code&gt;MesiboMessage&lt;/code&gt; object using the destination profile, which could be user profile or a group profile.&lt;/p&gt;</description></item><item><title>Mesibo Chatbot and Scripting - Socket Class</title><link>https://docs.mesibo.com/chatbot/reference/socket/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/chatbot/reference/socket/</guid><description>&lt;p&gt;The Socket class can be used to connect to a host through a scoket, to send and receive data asynchronously.&lt;/p&gt;
&lt;h2 id="constructor"&gt;Constructor&lt;a class="td-heading-self-link" href="#constructor" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="socketurl"&gt;Socket(url)&lt;a class="td-heading-self-link" href="#socketurl" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The constructor initializes the Socket class. It must be called before you perform any method calls.
Call the constructor by passing the url(For websockets) or host address(for regular sockets).&lt;/p&gt;
&lt;p&gt;The URL is to be specified in the format:
&lt;code&gt;&amp;lt;type&amp;gt;://&amp;lt;url&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The following types are available:&lt;/p&gt;</description></item><item><title>Conclusion</title><link>https://docs.mesibo.com/tutorials/open-source-whatsapp-clone/conclusion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-whatsapp-clone/conclusion/</guid><description>&lt;h2 id="congratulations"&gt;Congratulations!&lt;a class="td-heading-self-link" href="#congratulations" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You&amp;rsquo;ve created a fully functional Messenger/Chat app with messaging, voice and video calls. Visit our &lt;a href="https://mesibo.com/support/"&gt;Support Page&lt;/a&gt; if you have any questions.&lt;/p&gt;
&lt;p&gt;There is much more to the Mesibo platform than what was covered here. We will soon have more tutorials for you to fully utilize Mesibo platform to suit your needs.&lt;/p&gt;</description></item><item><title>Configuring On-Premise Conferencing and Group Calls</title><link>https://docs.mesibo.com/on-premise/conferencing-and-group-calls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/on-premise/conferencing-and-group-calls/</guid><description>&lt;p&gt;mesibo live is the conferencing and group calls server included with mesibo On-Premise. It runs as a separate instance from the main mesibo On-Premise server and can be scaled horizontally by running multiple instances.&lt;/p&gt;
&lt;p&gt;You can run multiple instances of the mesibo live server depending on the load. The mesibo live automatically handles load balancing across instances and scales up or down as you add or remove more instances.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; mesibo On-Premise must be running before you start mesibo live.&lt;/p&gt;</description></item><item><title>Mesibo Chatbot and Scripting - Dialogflow Class</title><link>https://docs.mesibo.com/chatbot/reference/dialogflow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/chatbot/reference/dialogflow/</guid><description>&lt;p&gt;The Dialogflow class can be used to connect to the Dialogflow chatbot service endpoint over REST&lt;/p&gt;
&lt;h3 id="constructor"&gt;Constructor&lt;a class="td-heading-self-link" href="#constructor" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="dialogflow"&gt;Dialogflow()&lt;a class="td-heading-self-link" href="#dialogflow" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The constructor initializes the Dialogflow class. It must be called before you perform any method calls.&lt;/p&gt;
&lt;h3 id="properties"&gt;Properties&lt;a class="td-heading-self-link" href="#properties" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;To connect to a chatbot you can set the following properties for an Dialogflow class object.&lt;/p&gt;
&lt;h4 id="dialogflowproject_id"&gt;Dialogflow.project_id&lt;a class="td-heading-self-link" href="#dialogflowproject_id" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Google Cloud Project ID linked with your Dialogflow chatbot.&lt;/p&gt;
&lt;h4 id="dialogflowservice_account"&gt;Dialogflow.service_account&lt;a class="td-heading-self-link" href="#dialogflowservice_account" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Google Project service account. A service account is identified by its email address, which is unique to the account.&lt;/p&gt;</description></item><item><title>Mesibo Video Conferencing API - Listeners</title><link>https://docs.mesibo.com/api/conferencing/listeners/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/conferencing/listeners/</guid><description>&lt;p&gt;The Mesibo Conferencing API provides the following listeners:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="#groupcalllistener"&gt;GroupCallListener&lt;/a&gt;, &lt;code&gt;MesiboCall.GroupCallListener&lt;/code&gt; provides listeners that inform you about participants publishing and subscribing in the conference.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="#groupcallinprogresslistener"&gt;GroupCallInProgressListener&lt;/a&gt;, &lt;code&gt;MesiboCall.GroupCallInProgressListener&lt;/code&gt; allows listeners to handle the stream that you are receiving from a participant such as, mute, hang up, talk detection, etc.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="#groupcalladminlistener"&gt;MesiboGroupCallAdminListener&lt;/a&gt;, &lt;code&gt;MesiboCall.GroupCallAdminListener&lt;/code&gt; provides listeners that inform you about the admin requests in the conference. For example, if the participant was muted by the admin, or the admin is requesting participant to publish, or to go full screen, etc.&lt;/p&gt;</description></item><item><title>Mesibo Group Listeners</title><link>https://docs.mesibo.com/api/group-management/listeners/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/group-management/listeners/</guid><description>&lt;p&gt;Your app can implement the &lt;code&gt;Mesibo.GroupListener&lt;/code&gt; to be notified of group events. The following listeners are a part of &lt;code&gt;Mesibo.GroupListener&lt;/code&gt;:&lt;/p&gt;
&lt;h4 id="mesibo_ongroupcreated"&gt;Mesibo_onGroupCreated&lt;a class="td-heading-self-link" href="#mesibo_ongroupcreated" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;Mesibo_onGroupCreated&lt;/code&gt; is called with the group profile when you create a group by calling &lt;code&gt;createGroup&lt;/code&gt; API.&lt;/p&gt;
&lt;h4 id="mesibo_ongroupjoined"&gt;Mesibo_onGroupJoined&lt;a class="td-heading-self-link" href="#mesibo_ongroupjoined" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;Mesibo_onGroupJoined&lt;/code&gt; is called with the group profile when you are added to the group&lt;/p&gt;
&lt;h4 id="mesibo_ongroupleft"&gt;Mesibo_onGroupLeft&lt;a class="td-heading-self-link" href="#mesibo_ongroupleft" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;Mesibo_onGroupLeft&lt;/code&gt; is called with the group profile when you leave or removed from the group&lt;/p&gt;</description></item><item><title>Mesibo Presence APIs - Online Status, Typing Indicators, and more</title><link>https://docs.mesibo.com/api/messaging/presence-and-typing-indicators/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/presence-and-typing-indicators/</guid><description>&lt;p&gt;Mesibo presence APIs allow your active users to share their activities, for example, online and offline status, typing indicator, joining and leaving the chat, game actions, etc. as it happens in real-time. Although sending and receiving presence information is completely optional, it can greatly enhance chat engagement.&lt;/p&gt;
&lt;p&gt;Note that, presence messages are never stored and only delivered to online users.&lt;/p&gt;
&lt;p&gt;You can define and send different types of presence messages to meet your app requirements. Mesibo also has some pre-defined presence messages, as described below.&lt;/p&gt;</description></item><item><title>Contact Management and Profile Synchronization</title><link>https://docs.mesibo.com/api/users-and-profiles/contact-management-and-profile-synchronization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/users-and-profiles/contact-management-and-profile-synchronization/</guid><description>&lt;p&gt;An app can have millions of users. However, each user of the app is only communicating with a set of users. Even within this set, only a few users with whom the user may be interested in receiving updates. Also, there are users with whom the user does not want to communicate at all.&lt;/p&gt;
&lt;p&gt;Similarly, not every user may wish to disclose their information to all others. Effectively managing these preferences and ensuring synchronization for millions of users is a complex task that mesibo makes very easy.&lt;/p&gt;</description></item><item><title>mesibo SDK for Python</title><link>https://docs.mesibo.com/install/python/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/python/</guid><description>&lt;p&gt;mesibo Python API allows you to add real-time communication to your Python apps.&lt;/p&gt;
&lt;h2 id="supported-platforms"&gt;Supported Platforms&lt;a class="td-heading-self-link" href="#supported-platforms" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;mesibo Pythons APIs are tested on the following platforms.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RedHat 8.x / Rocky Linux 8.5 / CentOS 7.x and 8.x / Oracle Linux 8&lt;/li&gt;
&lt;li&gt;Ubuntu 22.04 and 20.04 (should work on Debian too)&lt;/li&gt;
&lt;li&gt;Mac OS - both X86_64 and Arm64 (M1) versions&lt;/li&gt;
&lt;li&gt;Microsoft Windows 10 and above&lt;/li&gt;
&lt;li&gt;Raspberry Pi 3 and 4 (64-bit)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://mesibo.com/support"&gt;Contact us&lt;/a&gt; if your platform is not supported.&lt;/p&gt;</description></item><item><title>Reading Messages &amp; Call History from Database</title><link>https://docs.mesibo.com/tutorials/get-started/reading-messages-from-database/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/reading-messages-from-database/</guid><description>&lt;p&gt;In this section, we will describe how to read messages from the database.&lt;/p&gt;
&lt;p&gt;mesibo provides a set of APIs to read messages and call history stored in the database and sending read receipts. The messages you read will be delivered to &lt;code&gt;Mesibo_onMessage&lt;/code&gt; lisetener. You can then use &lt;code&gt;msg.isRealtimeMessage()&lt;/code&gt; or &lt;code&gt;msg.isDbMessage()&lt;/code&gt; to differentiate between real-time and database message.&lt;/p&gt;
&lt;p&gt;To read stored messages from the database, you need to create a read session and set the criteria to read messages; for example,&lt;/p&gt;</description></item><item><title>Mesibo Backend APIs - Scripting and Chatbot Configuration</title><link>https://docs.mesibo.com/api/backend-api/scripting-and-chatbot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/backend-api/scripting-and-chatbot/</guid><description>&lt;p&gt;This section describes how to upload and manage scripts for the mesibo scripting and chatbot feature using the Backend APIs. For in-depth details on how to use mesibo scripting and chatbot features, refer to the mesibo &lt;a href="https://docs.mesibo.com/chatbot"&gt;Scripting and Chatbot Documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you are using the mesibo on-premise server, you must use the Backend APIs to upload and manage scripts. This also ensures complete privacy of your scripts.&lt;/p&gt;
&lt;p&gt;If you are using the mesibo cloud service, you can use either the Console or the Backend APIs.&lt;/p&gt;</description></item><item><title>Custom TURN Server Configuration</title><link>https://docs.mesibo.com/api/calls/turn-server/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/calls/turn-server/</guid><description>&lt;h3 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;TURN (Traversal Using Relays around NAT) servers enable peer-to-peer communication between users behind firewalls or NAT devices. When direct peer-to-peer connections fail, the TURN server acts as a relay, forwarding media traffic between participants to ensure call connectivity even in restrictive network environments.&lt;/p&gt;
&lt;h2 id="mesibo-turn-server"&gt;mesibo TURN Server&lt;a class="td-heading-self-link" href="#mesibo-turn-server" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By default, mesibo&amp;rsquo;s TURN server is enabled for all users, providing reliable call connectivity across various network configurations.&lt;/p&gt;
&lt;p&gt;mesibo provides an option to enable or disable the TURN server in &lt;strong&gt;User Access Control (UAC)&lt;/strong&gt;, although it is &lt;strong&gt;strongly recommended not to disable it&lt;/strong&gt; as this may prevent calls from connecting in certain network environments.&lt;/p&gt;</description></item><item><title>Blocking and Unblocking Users</title><link>https://docs.mesibo.com/api/users-and-profiles/blocking-users/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/users-and-profiles/blocking-users/</guid><description>&lt;p&gt;Blocking and Unblocking APIs allow a user to block and unblock communication with another user.&lt;/p&gt;
&lt;p&gt;There are multiple ways a user can block another user. Mesibo Blocking and Unblocking APIs allow you to individually control each type of blocking. Depending on your app, you can block one or multiple aspects of the communication.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Block all messages from a user including text messages, binary messages, file messages, presence, activity, etc. However, if the blocked user sends a message to the group, it will not be blocked.&lt;/li&gt;
&lt;li&gt;Block group messages from a user. Other group members will still get the message.&lt;/li&gt;
&lt;li&gt;Block voice and video calls&lt;/li&gt;
&lt;li&gt;Block video calls&lt;/li&gt;
&lt;li&gt;Block profile views. The blocked user will not be able to view the profile and online status of the user.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mesibo also provides a combined &lt;code&gt;block()&lt;/code&gt; API that blocks and unblocks messaging, calls, profile views, and online status views between users in one API call. Alternatively, your app can block individual features like messaging, group messaging, calls, video calls, profile, and online status view as per your application requirements.&lt;/p&gt;</description></item><item><title>mesibo SDK for C++</title><link>https://docs.mesibo.com/install/cpp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/cpp/</guid><description>&lt;p&gt;The mesibo C++ API allows you to create a real-time application on Linux, Mac OS, Microsoft Windows, and Raspberry Pi platforms. mesibo C++ API is a low-level API that is extremely powerful, efficient, and light-weight.&lt;/p&gt;
&lt;p&gt;mesibo C++ library is available as a shared library &lt;code&gt;libmesibo.so/libmesibo.dylib/mesibo.dll&lt;/code&gt;, which can be seamlessly integrated into any application by compile-time linking or by loading it dynamically. You can even use it from other languages of your choice like Python, PHP, Matlab, etc. as all of these languages allow interfacing with C++ libraries.&lt;/p&gt;</description></item><item><title>Creating Groups</title><link>https://docs.mesibo.com/tutorials/get-started/create-groups/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/create-groups/</guid><description>&lt;p&gt;Group messaging is no different from the one-to-one messaging. You can invoke the same messaging APIs to send a group message, instead of the user&amp;rsquo;s profile, you need to use group profile.&lt;/p&gt;
&lt;p&gt;mesibo allows you to create various types of groups, with different level of permissions for members and admins. You can learn more about it in &lt;a href="https://docs.mesibo.com/api/group-management/"&gt;Group Management APIs&lt;/a&gt; documentation.&lt;/p&gt;
&lt;p&gt;In this section, we will quickly learn to create a group.&lt;/p&gt;</description></item><item><title>On-Premise Database Tables Schema</title><link>https://docs.mesibo.com/on-premise/database-tables-schema/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/on-premise/database-tables-schema/</guid><description>&lt;p&gt;mesibo On-Premise gives you complete access to your data. All database tables created by mesibo and the data written to them are accessible to you directly in your own database.&lt;/p&gt;
&lt;p&gt;The tables and columns listed below are safe to read from. All other tables and columns are used internally by mesibo and may be modified or removed without notice — do not access or depend on them.&lt;/p&gt;
&lt;blockquote class="warning"&gt;&lt;p&gt;Caution&lt;/p&gt;
&lt;p&gt;Never write to any table in the mesibo On-Premise database. If you need frequent read access, set up MySQL in a master-slave replication configuration so that reads are served from the replica, keeping load off the primary. Never overload the primary database with analytical or bulk queries.&lt;/p&gt;</description></item><item><title>GoogleCloudService</title><link>https://docs.mesibo.com/chatbot/reference/googlecloudservice/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/chatbot/reference/googlecloudservice/</guid><description>&lt;p&gt;The &lt;code&gt;GoogleCloudService&lt;/code&gt; class can be used to connect to various Google Cloud API Services like Google Translate, Dialogflow, GoogleMaps, etc&lt;/p&gt;
&lt;h3 id="constructor"&gt;Constructor&lt;a class="td-heading-self-link" href="#constructor" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="googlecloudservice"&gt;GoogleCloudService()&lt;a class="td-heading-self-link" href="#googlecloudservice" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The constructor initializes the GoogleCloudService class. It must be called before you perform any method calls.&lt;/p&gt;
&lt;h3 id="properties"&gt;Properties&lt;a class="td-heading-self-link" href="#properties" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;To connect to a chatbot you can set the following properties for an GoogleCloudService class object.&lt;/p&gt;
&lt;h3 id="googlecloudserviceurl"&gt;GoogleCloudService.url&lt;a class="td-heading-self-link" href="#googlecloudserviceurl" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;REST URL endpoint of the API&lt;/p&gt;</description></item><item><title>MesiboGroupCall Class Reference</title><link>https://docs.mesibo.com/api/conferencing/mesibogroupcall/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/conferencing/mesibogroupcall/</guid><description>&lt;p&gt;&lt;code&gt;MesiboCall.MesiboGroupCall&lt;/code&gt; controls various aspects of a group call, like joining and leaving the conference call, playing in-call sound, etc.
The following is a list of methods available in the &lt;code&gt;MesiboGroupCall&lt;/code&gt; API. The first step in starting a group call is to create a &lt;code&gt;MesiboGroupCall&lt;/code&gt; object.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href="https://docs.mesibo.com/api/conferencing/"&gt;Conferencing API Documentation&lt;/a&gt; to learn more.&lt;/p&gt;
&lt;h3 id="creating-an-instance-of-mesibogroupcall"&gt;Creating an instance of MesiboGroupCall&lt;a class="td-heading-self-link" href="#creating-an-instance-of-mesibogroupcall" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You can get a group call instance using &lt;a href="https://docs.mesibo.com/api/calls/mesibocall/#groupcall"&gt;MesiboCall.groupCall()&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Before you make a group call, ensure the following :&lt;/p&gt;</description></item><item><title>Sending Online and Offline Status</title><link>https://docs.mesibo.com/api/messaging/online-and-offline-status/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/online-and-offline-status/</guid><description>&lt;p&gt;As described in the &lt;a href="presence-and-typing-indicators.md"&gt;Mesibo presence APIs&lt;/a&gt;, users can show their Online and Offline status to other users or group members by sending Online and Offline presence. However, modern mobile OSs can suspend or kill your app without notice, and hence your app may not get an opportunity to update other users with the status. Since mesibo API knows when you are online and offline, we recommend leaving this task of sending Online and Offline presence to mesibo. You only need to configure when to show online status and privacy as described in the next section.&lt;/p&gt;</description></item><item><title>Mesibo Group Management - Special Groups</title><link>https://docs.mesibo.com/api/group-management/special-groups/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/group-management/special-groups/</guid><description>&lt;p&gt;In addition to groups you have created, mesibo provides a few special groups which always exist for each app you create. These groups make it easy to reach the different combinations of contacts and subscribers.&lt;/p&gt;
&lt;p&gt;For example, you can send messages to all users who have subscribed to your profile update by sending messages to MESIBO_GROUP_SUBSCRIBERS without any additional coding. The members of these special groups are dynamically updated in real-time depending on the type of the group, and you don&amp;rsquo;t need to do any coding to reach these special audiences.&lt;/p&gt;</description></item><item><title/><link>https://docs.mesibo.com/api/backend-api/user-access-control-uac/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/backend-api/user-access-control-uac/</guid><description>&lt;h1 id="mesibo-backend-apis---user-access-control-uac"&gt;Mesibo Backend APIs - User Access Control (UAC)&lt;a class="td-heading-self-link" href="#mesibo-backend-apis---user-access-control-uac" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;UAC allows you to assign different feature sets to different classes of users instead of managing each user and each feature individually. UAC provides granular controls across messaging, calls, presence, group calls, location, files, and more, enabling you to configure and assign precise capabilities to different user segments in your app.
User segments vary by application type, for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Social Apps: Free users vs. paid subscribers&lt;/li&gt;
&lt;li&gt;Telemedicine: Doctors, patients, administrative staff&lt;/li&gt;
&lt;li&gt;Enterprise: HR, managers, employees, contractors&lt;/li&gt;
&lt;li&gt;Education: Teachers, students, administrators&lt;/li&gt;
&lt;li&gt;Marketplaces: Buyers, sellers, verified merchants&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each segment can be assigned different UAC configurations with specific feature sets tailored to their needs and subscription level. When you need to change feature sets or enhance your app with new capabilities, simply modify the UAC configuration once and it automatically applies to all assigned users, eliminating the need to update each user individually. Similarly, you can instantly change a user&amp;rsquo;s feature set by switching their assigned UAC. For example, when a free user becomes a paid subscriber, assigning them a different UAC immediately grants them the enhanced feature set without any manual configuration.&lt;/p&gt;</description></item><item><title>Deleting and Recalling Messages</title><link>https://docs.mesibo.com/api/messaging/deleting-and-recalling-messages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/deleting-and-recalling-messages/</guid><description>&lt;p&gt;mesibo offers a rich set of APIs for deleting, wiping, recalling or editing messages. These APIs can be utilized in various ways depending on your app logic, for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Invoking the delete or wipe message API when a user taps to remove a message.&lt;/li&gt;
&lt;li&gt;Leveraging the &lt;a href="https://docs.mesibo.com/api/messaging/message-retraction/"&gt;message retraction APIs&lt;/a&gt; when a user wants to retract or modify a sent message.&lt;/li&gt;
&lt;li&gt;Sending &lt;a href="https://docs.mesibo.com/api/messaging/disappearing-messages/"&gt;disappearing messages&lt;/a&gt; that will be deleted after set intervals.&lt;/li&gt;
&lt;li&gt;Scheduling regular cleanup on app start by wiping old, unwanted messages that are no longer relevant.&lt;/li&gt;
&lt;li&gt;Deleting messages when user is &lt;a href="https://docs.mesibo.com/api/users-and-profiles/blocking-users/"&gt;blocked&lt;/a&gt; or &lt;a href="https://docs.mesibo.com/api//messaging/restricted-communication/"&gt;unmatched&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are different types of deletion:&lt;/p&gt;</description></item><item><title>Loadable Modules - Extending the mesibo Platform</title><link>https://docs.mesibo.com/on-premise/loadable-modules/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/on-premise/loadable-modules/</guid><description>&lt;p&gt;mesibo On-Premise&amp;rsquo;s loadable module architecture lets you extend the platform with your own code — intercepting messages, adding custom processing logic, and integrating with any external service or backend. You can build profanity filters, message translators, AI-powered chatbots connected to LLMs or services like Dialogflow, vector database lookups, IoT and robotics control systems, analytics pipelines, and more. All of this runs inside your own infrastructure with full control over your data.&lt;/p&gt;</description></item><item><title>mesibo SDK for Linux</title><link>https://docs.mesibo.com/install/linux/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/linux/</guid><description>&lt;p&gt;Mesibo on Linux is available as a shared library(.so) which allows you to use it from any application OR languages of your choice like C, C++, Python, PHP, Matlab, Octave etc.&lt;/p&gt;
&lt;h2 id="os-requirements"&gt;OS requirements&lt;a class="td-heading-self-link" href="#os-requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;mesibo Linux API are tested on the following platforms.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RedHat 8.x / Rocky Linux 8.5 / CentOS 7.x and 8.x / Oracle Linux 8&lt;/li&gt;
&lt;li&gt;Ubuntu 22.04 and 20.04 (should work on Debian and mint too)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;mesibo APIs should work on other Linux platform too as it has minimum system dependencies. However, send us an email if your platform is not supported.&lt;/p&gt;</description></item><item><title>MesiboParticipant Class Reference</title><link>https://docs.mesibo.com/api/conferencing/mesiboparticipant/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/conferencing/mesiboparticipant/</guid><description>&lt;p&gt;The following is a list of methods available in the &lt;code&gt;MesiboParticipant&lt;/code&gt; class.&lt;/p&gt;
&lt;p&gt;You MUST not directly create an instance of &lt;code&gt;MesiboParticipant&lt;/code&gt;. You will get a new &lt;code&gt;MesiboParticipant&lt;/code&gt; object:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;When you create a publisher using &lt;a href="https://docs.mesibo.com/api/conferencing/mesibogroupcall/#createpublisher"&gt;GroupCall.createPublisher()&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Or through listeners, &lt;a href="https://docs.mesibo.com/api/conferencing/listeners/#mesibogroupcall_onpublisher"&gt;MesiboGroupcall_OnPublisher&lt;/a&gt; and &lt;a href="https://docs.mesibo.com/api/conferencing/listeners/#mesibogroupcall_onsubscriber"&gt;MesiboGroupcall_OnSubscriber&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Refer to &lt;a href="https://docs.mesibo.com/api/conferencing/"&gt;Conferencing API Documentation&lt;/a&gt; to learn more.&lt;/p&gt;
&lt;h2 id="call-functions"&gt;Call Functions&lt;a class="td-heading-self-link" href="#call-functions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The following methods handle the call to a participant&lt;/p&gt;
&lt;h3 id="call"&gt;call&lt;a class="td-heading-self-link" href="#call" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;call()&lt;/code&gt; method takes the following parameters:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;audio&lt;/strong&gt;, true if you would like to receive the audio stream, false otherwise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;video&lt;/strong&gt;, true if you would like to receive the video stream, false otherwise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;groupCallInProgressListener&lt;/strong&gt;, An instance of &lt;a href="https://docs.mesibo.com/api/conferencing/listeners/#groupcallinprogresslistener"&gt;GroupCallInProgressListener&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, in Android, if you would like to have both audio and video while viewing a publisher, make a call as follows&lt;/p&gt;</description></item><item><title>Mesibo Backend APIs - Hosting Backend APIs</title><link>https://docs.mesibo.com/api/backend-api/on-premise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/backend-api/on-premise/</guid><description>&lt;p&gt;If you are using &lt;a href="https://docs.mesibo.com/on-premise"&gt;mesibo on-premise&lt;/a&gt;, mesibo (and mesibo console) will NOT have any access to your on-premise setup or database. Hence, there are only limited operations (&lt;code&gt;useradd&lt;/code&gt;, &lt;code&gt;userset&lt;/code&gt;, and &lt;code&gt;usertoken&lt;/code&gt;) you can perform with mesibo hosted &lt;a href="https://docs.mesibo.com/api/backend-api/"&gt;backend API&lt;/a&gt; when using on-premise. For all other operations like group management or sending messages, you will need to use real-time APIs, for example, &lt;a href="https://docs.mesibo.com/api/group-management/"&gt;real-time group APIs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Alternatively (though OPTIONAL), you can host entire backend APIs to your own server. This will enable you to access entire backend APIs while using mesibo on-premise. Even if you are not using backend APIs for group management or sending messages, it is highly recommended that you enable and use backend APIs bundled with mesibo docker image as it will update your database instantly and also give you access to additionals ops like &lt;code&gt;usersget&lt;/code&gt;, &lt;code&gt;groupsget&lt;/code&gt;, etc.&lt;/p&gt;</description></item><item><title>Utility functions</title><link>https://docs.mesibo.com/chatbot/reference/utilities/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/chatbot/reference/utilities/</guid><description>&lt;p&gt;mesibo provides a set of utilities for generating a random number, hashing, etc.&lt;/p&gt;
&lt;h2 id="random32"&gt;random32()&lt;a class="td-heading-self-link" href="#random32" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Returns a 32-bit psuedo-random number.&lt;/p&gt;
&lt;h3 id="syntax"&gt;Syntax&lt;a class="td-heading-self-link" href="#syntax" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;random32&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="parameters"&gt;Parameters&lt;a class="td-heading-self-link" href="#parameters" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h3 id="return-value"&gt;Return value&lt;a class="td-heading-self-link" href="#return-value" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;unsigned 32-bit integer&lt;/p&gt;
&lt;h2 id="random64"&gt;random64()&lt;a class="td-heading-self-link" href="#random64" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Returns a 64-bit psuedo-random number.&lt;/p&gt;
&lt;h3 id="syntax-1"&gt;Syntax&lt;a class="td-heading-self-link" href="#syntax-1" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;random64&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="parameters-1"&gt;Parameters&lt;a class="td-heading-self-link" href="#parameters-1" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h3 id="return-value-1"&gt;Return value&lt;a class="td-heading-self-link" href="#return-value-1" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;unsigned 64-bit integer&lt;/p&gt;
&lt;h2 id="hash64"&gt;hash64()&lt;a class="td-heading-self-link" href="#hash64" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Returns a hash of the input.&lt;/p&gt;
&lt;h3 id="syntax-2"&gt;Syntax&lt;a class="td-heading-self-link" href="#syntax-2" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;hash64&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="parameters-2"&gt;Parameters&lt;a class="td-heading-self-link" href="#parameters-2" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Any valid object&lt;/p&gt;</description></item><item><title>Video and Voice Calls</title><link>https://docs.mesibo.com/tutorials/get-started/video-and-voice-calls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/video-and-voice-calls/</guid><description>&lt;p&gt;mesibo allows you to enable peer-to-peer HD video and voice calls between your users in just a few lines of code. As with messaging, mesibo video and voice calls are end-to-end encrypted and hence secure. mesibo does not charge any additional amount for the voice or video call APIs.&lt;/p&gt;
&lt;p&gt;Making and receiving voice &amp;amp; video calls with mesibo is simple. You only need to initialize &lt;a href="https://docs.mesibo.com/api/calls/mesibocall"&gt;MesiboCall&lt;/a&gt; once using just one line of code! Then, mesibo will automatically handle incoming calls. For outgoing calls, you can invoke call API as required.&lt;/p&gt;</description></item><item><title>Disappearing Messages</title><link>https://docs.mesibo.com/api/messaging/disappearing-messages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/disappearing-messages/</guid><description>&lt;p&gt;The disappearing feature allows the sender to control how long the receiver can view or store the received messages, after which the message will be deleted on both the sender and the receiver side.&lt;/p&gt;
&lt;p&gt;You can use this feature on a per-message basis to control which messages should disappear and which messages should not.&lt;/p&gt;
&lt;p&gt;Mesibo gives you fine control over how and when a message should disappear by setting &lt;code&gt;Age&lt;/code&gt;. You can set three types of &lt;code&gt;Age&lt;/code&gt; (time interval) after which the message will disappear. Depending on your app logic, you can use one or all three-time intervals.&lt;/p&gt;</description></item><item><title>mesibo SDK for macOS</title><link>https://docs.mesibo.com/install/mac/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/mac/</guid><description>&lt;p&gt;mesibo on macOS is available as a dynamic library (.dylib) which allows you to use it from any application OR languages of your choice like C, C++, Python, PHP, Matlab, Octave etc.&lt;/p&gt;
&lt;h2 id="os-requirements"&gt;OS requirements&lt;a class="td-heading-self-link" href="#os-requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;macOS (both Apple Silicon M1/M2/M3 etc, and Intel)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="install-using-the-convenience-script"&gt;Install using the convenience script&lt;a class="td-heading-self-link" href="#install-using-the-convenience-script" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;mesibo provides a convenience script for installing mesibo on all the supported platforms.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ curl -fsSL https://raw.githubusercontent.com/mesibo/libmesibo/master/install.sh &lt;span class="p"&gt;|&lt;/span&gt; sudo bash -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Please note the following points:&lt;/p&gt;</description></item><item><title>Video and Voice Conferencing (Group Calls)</title><link>https://docs.mesibo.com/tutorials/get-started/video-and-voice-conference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/video-and-voice-conference/</guid><description>&lt;p&gt;In this section, we will quickly learn how to add Video and Voice Conferencing (group calling) to your apps, in just one line of code.&lt;/p&gt;
&lt;p&gt;For detailed documentation and examples for conferencing refer to &lt;a href="https://docs.mesibo.com/api/conferencing"&gt;Mesibo Conferencing Docs&lt;/a&gt; and download the example source code for conferencing from &lt;a href="https://github.com/mesibo/conferencing"&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To add mesibo Group Calling to your app, you only need to initialize &lt;a href="https://docs.mesibo.com/api/calls/mesibocall"&gt;MesiboCall&lt;/a&gt; once using just one line of code. This you would have already done in the previous section.&lt;/p&gt;</description></item><item><title>Hosting Media and Files</title><link>https://docs.mesibo.com/tutorials/get-started/file-transfer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/file-transfer/</guid><description>&lt;p&gt;In this part, we will describe how to host media and files on your server instead of the mesibo file server.&lt;/p&gt;
&lt;h2 id="hosting-media-and-files-on-your-server"&gt;Hosting Media and Files on Your Server&lt;a class="td-heading-self-link" href="#hosting-media-and-files-on-your-server" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;As we learned before, mesibo allows you to send and receive any arbitrary file (image, audio, video, doc, etc) in real-time.&lt;/p&gt;
&lt;p&gt;By default, all media and files you send are stored on the mesibo file server. However most mesibo users, especially those having sensitive data (financial institutes, healthcare, dating, etc.) prefer to store files on their servers. We highly recommend that &lt;strong&gt;you should use the mesibo server only for initial development and use your own servers for deployment&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Retracting or Modifying Sent Messages</title><link>https://docs.mesibo.com/api/messaging/message-retraction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/message-retraction/</guid><description>&lt;p&gt;Message retraction APIs allow users to modify or delete the sent messages. For example, to correct typos or to remove messages they didn&amp;rsquo;t mean to send.&lt;/p&gt;
&lt;p&gt;You can enable or disable different retraction features by specifying retraction policies. You can also configure the max time limit for message retraction. Any messages that are older than the retraction time limit will not be retracted. The default retraction time limit is 3600 seconds which can be set from 1 second to any arbitrarily large value. You can also set various retraction policies that we will cover later in this document.&lt;/p&gt;</description></item><item><title>mesibo SDK for Windows</title><link>https://docs.mesibo.com/install/windows/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/windows/</guid><description>&lt;p&gt;Mesibo on Microsoft Windows is available as a dynamic link library (.dll) which allows you to use it from any application OR languages of your choice like C, C++, Python, PHP, Matlab, Octave etc.&lt;/p&gt;
&lt;h2 id="os-requirements"&gt;OS requirements&lt;a class="td-heading-self-link" href="#os-requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft Windows 10 and above (64-bit)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="download-from-github"&gt;Download from GitHub&lt;a class="td-heading-self-link" href="#download-from-github" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You can download header file and DLL for Microsoft Windows (and other platforms) from mesibo GitHub repository:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone git@github.com:mesibo/libmesibo.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Multi-Device Synchronization</title><link>https://docs.mesibo.com/tutorials/get-started/synchronization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/synchronization/</guid><description>&lt;p&gt;In this part, we will learn about synchronizing messages and user data on multiple devices with mesibo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note, to use the synchronization feature, you need to use the mesibo &lt;a href="https://docs.mesibo.com/on-premise"&gt;On-Premise&lt;/a&gt;, which allows you to store all the messages in your data center.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You MUST go through the following prerequisites before you read further.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Familiar with reading messages.&lt;/li&gt;
&lt;li&gt;Run &lt;a href="https://docs.mesibo.com/on-premise"&gt;mesibo On-Premise&lt;/a&gt;. See &lt;a href="https://docs.mesibo.com/on-premise"&gt;On-Premise Docs&lt;/a&gt; for installation instructions and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="multi-device-synchronization"&gt;Multi-Device Synchronization&lt;a class="td-heading-self-link" href="#multi-device-synchronization" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;mesibo stores your app’s messages on the server till they are delivered. Once the app receives messages, they are stored on the local device database so that your app can quickly access them later (both when online and offline). This is a very optimal approach used by many popular and high user density apps like Whatsapp.&lt;/p&gt;</description></item><item><title>mesibo SDK for Raspberry Pi</title><link>https://docs.mesibo.com/install/raspberrypi/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/raspberrypi/</guid><description>&lt;p&gt;Instantly add real-time communication on your embedded devices by using mesibo. You can control and communicate with your Raspberry Pi based devices from mobile apps, web, Linux, using the same API.&lt;/p&gt;
&lt;p&gt;Mesibo on Raspberry Pi is available as a shared library(.so) which allows you to use it from any application OR languages of your choice like C, C++, Python, PHP, etc. You can also use mesibo Python APIs for Raspberry Pi.&lt;/p&gt;</description></item><item><title>Restricting Communication Audience Per User</title><link>https://docs.mesibo.com/api/messaging/restricted-communication/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/restricted-communication/</guid><description>&lt;p&gt;By default, your mesibo users will be able to communicate with all the users of your apps. In addition, all the users can send and receive messages, make calls, create groups, etc. However, if you prefer, you can restrict how your app users communicate and with whom they can communicate.&lt;/p&gt;
&lt;p&gt;For example, in a dating or a social app, you may allow two users to communicate with each other only if they match, not otherwise. In addition, you need to break the communication link if they unmatch. You may even configure users to allow messaging but not calls unless they are premium users.&lt;/p&gt;</description></item><item><title>Chat / Messaging / Video Call App Source Code for Android, iOS and Web</title><link>https://docs.mesibo.com/source-code/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/source-code/</guid><description>&lt;p&gt;Mesibo Messenger is an open-source app with real-time messaging, voice, and video call &amp;amp; conferencing features. We have released the entire source code of Mesibo Android, iOS, and JavaScript Apps on GitHub that you can download, customize, rebrand, and reuse in your own mesibo based applications without any restrictions.&lt;/p&gt;
&lt;h3 id="some-of-the-key-features"&gt;Some of the Key Features&lt;a class="td-heading-self-link" href="#some-of-the-key-features" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Secure One-on-one messaging and Group chat&lt;/li&gt;
&lt;li&gt;High-quality voice and video calling&lt;/li&gt;
&lt;li&gt;Video and Voice Conferencing and Group Calls&lt;/li&gt;
&lt;li&gt;Rich messaging (text, picture, video, audio, location, other files)&lt;/li&gt;
&lt;li&gt;Message status and typing indicators&lt;/li&gt;
&lt;li&gt;Online status (presence) and real-time profile update&lt;/li&gt;
&lt;li&gt;Push notifications&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mesibo-android-app-source-code-java-and-kotlin"&gt;Mesibo Android App Source Code (Java and Kotlin)&lt;a class="td-heading-self-link" href="#mesibo-android-app-source-code-java-and-kotlin" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/mesibo/messenger-app-android/"&gt;https://github.com/mesibo/messenger-app-android/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Multi-Device Login and Synchronization</title><link>https://docs.mesibo.com/api/messaging/multi-device-login-and-synchronization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/multi-device-login-and-synchronization/</guid><description>&lt;p&gt;As more and more users use multiple devices, it is an absolute necessity for all apps to support multi-device login and synchronization to maintain a consistent and smooth user experience across all their devices.&lt;/p&gt;
&lt;p&gt;mesibo offers the capability for users to sign in from multiple devices. Users have the option to log in from up to eight devices simultaneously. All their data, including messages, calls, profiles, images, files, etc. will be automatically synchronized across all their devices.&lt;/p&gt;</description></item><item><title>Other Topics</title><link>https://docs.mesibo.com/tutorials/get-started/other-topics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/other-topics/</guid><description>&lt;p&gt;Now that you have a basic understanding of mesibo&amp;rsquo;s APIs, we suggest you read through the more detailed &lt;a href="https://docs.mesibo.com/api"&gt;API documentation&lt;/a&gt;, which covers additional topics such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/messaging/conversation-threads/"&gt;Message Reply and forward&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/messaging/message-retraction/"&gt;Message retraction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/messaging/disappearing-messages/"&gt;Disappearing messages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/push-notifications"&gt;Push Notifications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/webhooks"&gt;Webhooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/presence"&gt;Presence and Typing Indicators&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/messaging/restricted-communication/"&gt;Pairing Users&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/users-and-profiles/blocking-users/"&gt;Blocking and Unblocking Users&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api/phone-contacts-and-addressbook/"&gt;Phone Contacts APIs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mesibo.com/api"&gt;And more&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>How mesibo SDKs are versioned</title><link>https://docs.mesibo.com/install/versioning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/install/versioning/</guid><description>&lt;p&gt;mesibo follows Semantic Versioning. This document explains the version number scheme for mesibo release and beta SDKs.&lt;/p&gt;
&lt;h4 id="release-versions"&gt;Release Versions&lt;a class="td-heading-self-link" href="#release-versions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Each mesibo release SDK has a version number defined as MAJOR.MINOR.PATCH, for example 2.2.7, in which:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MAJOR version is incremented for major API changes&lt;/li&gt;
&lt;li&gt;MINOR version is incremented when new features/functionality are added&lt;/li&gt;
&lt;li&gt;PATCH version is incremented for bug fixes or minor updates&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="beta-versions"&gt;Beta Versions&lt;a class="td-heading-self-link" href="#beta-versions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Beta versions are not published and offered to mesibo users only as needed in response to support tickets.&lt;/p&gt;</description></item><item><title>Log in and Synchronization Across Browser Tabs and Windows [Web Only]</title><link>https://docs.mesibo.com/api/messaging/sync-across-browser-tabs-windows/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/sync-across-browser-tabs-windows/</guid><description>&lt;p&gt;Similar to &lt;a href="https://docs.mesibo.com/api/messaging/multi-device-login-and-synchronization/"&gt;multi-device login and syncronization&lt;/a&gt; described in the previous section, you can also enable your users to log in from multiple browser windows and tabs. All the messages and calls will be synchronized between all browser windows and tabs. This feature is quite useful when you want your users to continue chatting even when they open another page of your website in a new tab, for example, Facebook pop-out chat.&lt;/p&gt;</description></item><item><title>Managing User Devices and Browser Tabs</title><link>https://docs.mesibo.com/api/messaging/supporting-multiple-user-devices/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/supporting-multiple-user-devices/</guid><description>&lt;p&gt;Your users might use multiple devices simultaneously or switch devices. Depending on your use case, your app should display all messages and calls from all devices. mesibo provides multiple APIs depending on your use case. Below are the use cases:&lt;/p&gt;
&lt;h2 id="syncing-on-multiple-devices-simultaneously"&gt;Syncing on Multiple Devices Simultaneously&lt;a class="td-heading-self-link" href="#syncing-on-multiple-devices-simultaneously" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;mesibo offers the capability for users to sign in from multiple devices. Users can log in from up to eight devices simultaneously. All their data, including messages, calls, profiles, images, files, etc., will be automatically synchronized across all their devices.&lt;/p&gt;</description></item><item><title>Messaging APIs - Content Moderation and Filtering Messages</title><link>https://docs.mesibo.com/api/messaging/content-moderation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/content-moderation/</guid><description>&lt;p&gt;mesibo allows you to filter both incoming and outgoing messages as per the content moderation policy of your app, for example, profanity, personal details, URLs, file type, size, etc. It is up to you to decide what is inappropriate for your app.&lt;/p&gt;
&lt;p&gt;You can filter each incoming or outgoing message by implementing the &lt;code&gt;Mesibo_onMessageFilter&lt;/code&gt; listener. The mesibo APIs will call your &lt;code&gt;Mesibo_onMessageFilter&lt;/code&gt; listener every time a new real-time message is received or sent. You can return &lt;code&gt;true&lt;/code&gt; to pass the message or &lt;code&gt;false&lt;/code&gt; to drop the message.&lt;/p&gt;</description></item><item><title>Mesibo HTTP Library for Android, iOS, Linux, Mac</title><link>https://docs.mesibo.com/api/http-library/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/http-library/</guid><description>&lt;h3 id="introduction"&gt;Introduction&lt;a class="td-heading-self-link" href="#introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Mesibo HTTP is a light but fast and powerful http client library compliant with RFC 7230-7235, 1738, 2046. It is an extension of mesibo real-time Client APIs.&lt;/p&gt;
&lt;p&gt;Mesibo HTTP not only makes networking easier, but also makes it faster, and cross-platform (Android, iOS). It lets you control almost all aspects of the HTTP protocol giving you finer control over HTTP requests.&lt;/p&gt;
&lt;p&gt;While there are some good HTTP libraries such as Volley for Android and AFNetworking for iOS, mesibo has the distinct advantage of being cross platform by offering the same APIs across platforms thus eliminating the need to use different libraries for different platforms. mesibo HTTP also performed faster in a benchmark test and has the smaller memory footprint.&lt;/p&gt;</description></item><item><title>Messaging APIs - Generating URL Preview</title><link>https://docs.mesibo.com/api/messaging/url-preview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/url-preview/</guid><description>&lt;p&gt;When you send a URL link as part of the message text or set URL using the &lt;code&gt;setContent()&lt;/code&gt; API, the mesibo can generate a rich URL preview with a title, description, thumbnail image, etc. before sending it. This feature allows users to share links including tweets, Instagram posts, YouTube videos, news articles, etc with a preview so that the recipient knows about the link before opening it.&lt;/p&gt;
&lt;p&gt;To generate a URL preview, mesibo needs to open the website, download the content and then generate a preview from it. Depending on the network speed, the process may take small time, often unnoticeable.&lt;/p&gt;</description></item><item><title>Messaging APIs - Date and Time of Message and Message Status</title><link>https://docs.mesibo.com/api/messaging/date-and-time/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/date-and-time/</guid><description>&lt;p&gt;This section describes mesibo APIs to access various timestamps associated with a message, for exammple, when message was sent, delivered or read, and how to format the timestamp in human readable date and time representations.&lt;/p&gt;
&lt;p&gt;The mesibo time and date API provides &lt;code&gt;MesiboDateTime&lt;/code&gt; object, which store timestamps in milliseconds. The &lt;code&gt;MesiboDateTime&lt;/code&gt; object offers access to various date and time components, such as year, month, day, hour, minute, second, and more. It also provides convenient functions for converting timestamps into human-readable date and time strings.&lt;/p&gt;</description></item><item><title>Messaging APIs - Setting Default Parameters</title><link>https://docs.mesibo.com/api/messaging/setting-defaults/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/setting-defaults/</guid><description>&lt;p&gt;Mesibo sets various default parameters when you create a &lt;code&gt;MesiboMessage&lt;/code&gt; object. You can override those defaults by providing your own parameters which will be used as default, for example, message expiry, type, link preview, emojify, etc.&lt;/p&gt;
&lt;h2 id="setting-default-parameters"&gt;Setting Default Parameters&lt;a class="td-heading-self-link" href="#setting-default-parameters" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To set default parameters, you only need to create a &lt;code&gt;MesiboMessage&lt;/code&gt; object with parameters of your choice and then set it as default by calling &lt;code&gt;MesiboMessage.setDefaults()&lt;/code&gt; static method.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboMessage&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MesiboMessage&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;expiry&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;3600&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;24&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;30&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;emojify&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboMessage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setDefaults&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once you set defaults, all future &lt;code&gt;MesiboMessage&lt;/code&gt; objects created by the following methods will have default parameters copied from the default you have set.&lt;/p&gt;</description></item><item><title>Mesibo - Other Messaging Functions</title><link>https://docs.mesibo.com/api/messaging/functions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/functions/</guid><description>&lt;p&gt;In this reference section, we will describe &lt;code&gt;MesiboMessage&lt;/code&gt; class functions that are not covered elsewhere or for general use.&lt;/p&gt;
&lt;h3 id="message-status-functions"&gt;Message Status Functions&lt;a class="td-heading-self-link" href="#message-status-functions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;function&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;isIncoming()&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;returns true if the message was received (incoming)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;isOutgoing()&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;returns true if the Message was sent or being sent (outgoing)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;isInOutbox()&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;returns true if the message is being sent&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;isSent()&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;returns true if the message is sent but not delivered yet&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;isDelivered()&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;returns true if the message is delivered but not read yet&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;isReadByPeer()&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;returns true if the message was delivered and read&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;isReadByUs()&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;returns true if the incoming message was read&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;isUnread()&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;returns true if the incoming message is unread&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;isCustom()&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;returns true if the message is the custom message saved locally (not incoming or outgoing)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;isUnread()&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;returns true if the incoming message is unread&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Mesibo Messaging Properties</title><link>https://docs.mesibo.com/api/messaging/properties/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/properties/</guid><description>&lt;p&gt;In this reference section, we will describe various message properties you can set for outgoing messages and also properties you can view from any incoming or outgoing messages.&lt;/p&gt;
&lt;h3 id="message-content-properties"&gt;Message Content Properties&lt;a class="td-heading-self-link" href="#message-content-properties" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Following are the actual message content properties that you can set when sending a message. In addition, you can add a file or media using &lt;code&gt;setContent()&lt;/code&gt; function.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;Property&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Description&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Default&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;data&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Binary Data Message&lt;/td&gt;
 &lt;td style="text-align: left"&gt;null&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;message&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Text Message&lt;/td&gt;
 &lt;td style="text-align: left"&gt;null&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;title&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Message Title&lt;/td&gt;
 &lt;td style="text-align: left"&gt;null&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;subtitle&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Message Subtitle&lt;/td&gt;
 &lt;td style="text-align: left"&gt;null&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;footer&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Message Footer&lt;/td&gt;
 &lt;td style="text-align: left"&gt;null&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;latitude&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Location - Latitude&lt;/td&gt;
 &lt;td style="text-align: left"&gt;-720 (out of range)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;longitude&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Location - Longitude&lt;/td&gt;
 &lt;td style="text-align: left"&gt;-720 (out of range)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="messaging-endpoint-properties"&gt;Messaging Endpoint Properties&lt;a class="td-heading-self-link" href="#messaging-endpoint-properties" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Following are some of the protocol-level properties which describe the message ID, type, timestamp, remote peer, and group.&lt;/p&gt;</description></item><item><title>Easy documentation with Docsy</title><link>https://docs.mesibo.com/blog/2026/02/10/first-post/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/blog/2026/02/10/first-post/</guid><description>&lt;p&gt;&lt;strong&gt;This is a typical blog post that includes images.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The front matter specifies the date of the blog post, its title, a short
description that will be displayed on the blog landing page, and its author.&lt;/p&gt;
&lt;h2 id="including-images"&gt;Including images&lt;a class="td-heading-self-link" href="#including-images" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s an image that includes a byline and a caption.&lt;/p&gt;
&lt;figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 510px"&gt;
&lt;img class="card-img-top" src="https://docs.mesibo.com/blog/2026/02/10/first-post/featured-pexels-peter-xie-sunset-35157036_hu_e73e119a9cfebf79.jpg" width="500" height="300"&gt;
&lt;figcaption class="card-body px-0 pt-2 pb-0"&gt;
&lt;p class="card-text"&gt;



Image cropped to 500x300

&lt;small class="text-body-secondary"&gt;&lt;br/&gt;Photo by Peter Xie from Pexels&lt;/small&gt;
&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The front matter of this post specifies properties to be assigned to all image
resources:&lt;/p&gt;</description></item><item><title>Second blog post</title><link>https://docs.mesibo.com/blog/2026/01/06/second-post/</link><pubDate>Tue, 06 Jan 2026 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/blog/2026/01/06/second-post/</guid><description>&lt;p&gt;This is a &lt;strong&gt;placeholder page&lt;/strong&gt;. For an example of the kind of content that can
be added here, see the &lt;a href="https://docs.mesibo.com/docs/getting-started/example-page/"&gt;example page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="welcome"&gt;Welcome!&lt;a class="td-heading-self-link" href="#welcome" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Welcome to the Docsy theme user guide! This guide shows you how to get started
creating technical documentation sites using Docsy, including site customization
and how to use Docsy&amp;rsquo;s blocks and templates.&lt;/p&gt;
&lt;h2 id="what-is-docsy"&gt;What is Docsy?&lt;a class="td-heading-self-link" href="#what-is-docsy" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docsy is a theme for the &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; static site generator that&amp;rsquo;s
specifically designed for technical documentation sets and has a lot of best
practices built in. Use Docsy to get a working and reliable documentation site
up and running fast, and then get back to focusing on great content for your
users. &lt;a href="https://docs.mesibo.com/about"&gt;Learn more about Docsy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Another Great Release</title><link>https://docs.mesibo.com/blog/2018/01/04/in-depth-monoliths-detailed-spec/</link><pubDate>Thu, 04 Jan 2018 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/blog/2018/01/04/in-depth-monoliths-detailed-spec/</guid><description>&lt;p&gt;This is a &lt;strong&gt;placeholder page&lt;/strong&gt;. For an example of the kind of content that can
be added here, see the &lt;a href="https://docs.mesibo.com/docs/getting-started/example-page/"&gt;example page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="welcome"&gt;Welcome!&lt;a class="td-heading-self-link" href="#welcome" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Welcome to the Docsy theme user guide! This guide shows you how to get started
creating technical documentation sites using Docsy, including site customization
and how to use Docsy&amp;rsquo;s blocks and templates.&lt;/p&gt;
&lt;h2 id="what-is-docsy"&gt;What is Docsy?&lt;a class="td-heading-self-link" href="#what-is-docsy" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docsy is a theme for the &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; static site generator that&amp;rsquo;s
specifically designed for technical documentation sets and has a lot of best
practices built in. Use Docsy to get a working and reliable documentation site
up and running fast, and then get back to focusing on great content for your
users. &lt;a href="https://docs.mesibo.com/about"&gt;Learn more about Docsy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Example Page</title><link>https://docs.mesibo.com/docs/getting-started/example-page/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/getting-started/example-page/</guid><description>&lt;div class="pageinfo pageinfo-warning td-max-width-on-larger-screens mx-0"&gt;
&lt;p&gt;This is a placeholder page. Replace it with your own content.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Text can be &lt;strong&gt;bold&lt;/strong&gt;, &lt;em&gt;italic&lt;/em&gt;, or &lt;del&gt;strikethrough&lt;/del&gt;. &lt;a href="https://gohugo.io"&gt;Links&lt;/a&gt;
should be blue with no underlines (unless hovered over).&lt;/p&gt;
&lt;p&gt;There should be whitespace between paragraphs. Vape migas chillwave sriracha
poutine try-hard distillery. Tattooed shabby chic small batch, pabst art party
heirloom letterpress air plant pop-up. Sustainable chia skateboard art party
banjo cardigan normcore affogato vexillologist quinoa meggings man bun master
cleanse shoreditch readymade. Yuccie prism four dollar toast tbh cardigan
iPhone, tumblr listicle live-edge VHS. Pug lyft normcore hot chicken biodiesel,
actually keffiyeh thundercats photo booth pour-over twee fam food truck
microdosing banh mi. Vice activated charcoal raclette unicorn live-edge
post-ironic. Heirloom vexillologist coloring book, beard deep v letterpress echo
park humblebrag tilde.&lt;/p&gt;</description></item><item><title>Parameter Reference</title><link>https://docs.mesibo.com/docs/reference/parameter-reference/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/docs/reference/parameter-reference/</guid><description>&lt;p&gt;This is a &lt;strong&gt;placeholder page&lt;/strong&gt;. For an example of the kind of content that can
be added here, see the &lt;a href="https://docs.mesibo.com/docs/getting-started/example-page/"&gt;example page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="welcome"&gt;Welcome!&lt;a class="td-heading-self-link" href="#welcome" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Welcome to the Docsy theme user guide! This guide shows you how to get started
creating technical documentation sites using Docsy, including site customization
and how to use Docsy&amp;rsquo;s blocks and templates.&lt;/p&gt;
&lt;h2 id="what-is-docsy"&gt;What is Docsy?&lt;a class="td-heading-self-link" href="#what-is-docsy" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docsy is a theme for the &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; static site generator that&amp;rsquo;s
specifically designed for technical documentation sets and has a lot of best
practices built in. Use Docsy to get a working and reliable documentation site
up and running fast, and then get back to focusing on great content for your
users. &lt;a href="https://docs.mesibo.com/about"&gt;Learn more about Docsy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title/><link>https://docs.mesibo.com/tutorials/open-source-conferencing/backend/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-conferencing/backend/</guid><description/></item><item><title/><link>https://docs.mesibo.com/tutorials/open-source-conferencing/conf-app/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-conferencing/conf-app/</guid><description>&lt;p&gt;In this part, we will explore the {{page.platform}} Conferencing app.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s get started.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before we dive into running a fully featured Conference app for {{page.platform}}, ensure that you go through the following&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Must read the &lt;a href="index.md"&gt;first part of this tutorial&lt;/a&gt; and Prerequisites mentioned there.
{{prerequisites}}&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before we get into the code, we recommend that you build the app and try it out, to have a feel of how the app works. This is a basic conferencing app with all the essential features. You can easily refer to the source code and the documentation, to modify it to your needs.&lt;/p&gt;</description></item><item><title>Building the Open-Source Conferencing App for Android</title><link>https://docs.mesibo.com/tutorials/open-source-conferencing/android/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-conferencing/android/</guid><description>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/mesibo/conferencing"&gt;Downloaded the Source Code for the Android App&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Gone through the &lt;a href="https://docs.mesibo.com/api/conferencing/android"&gt;Quick Start with Mesibo Conferencing API - Android&lt;/a&gt; and have a basic familiarity with mesibo conferencing APIs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Android Studio Installed&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;An Android Device to run the app&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="build-instructions"&gt;Build Instructions&lt;a class="td-heading-self-link" href="#build-instructions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Building the code is as simple as:
&lt;img src="https://docs.mesibo.com/tutorials/open-source-conferencing/images/mobile-welcome.png" style="float:right;" height="120" width="100"/&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Launch Android Studio&lt;/li&gt;
&lt;li&gt;Open the project &lt;strong&gt;android/java/MesiboConference&lt;/strong&gt; from the folder where you have downloaded the code using the menu &lt;code&gt;File -&amp;gt; Open&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Build using menu &lt;code&gt;Build -&amp;gt; Rebuild Project&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;It may take a while to build the project for the first time.&lt;/li&gt;
&lt;li&gt;Once the build is over, run on the device using the menu &lt;code&gt;Run -&amp;gt; Run (app)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;That&amp;rsquo;s it, you should see the welcome screen and then the login screen.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Refer to the source code &lt;a href="https://github.com/mesibo/conferencing/blob/f5bb004625c3c80a7c4b0a5026e1a9eb28f335df/android/java/MesiboConference/app/src/main/java/com/mesibo/confdemo/app/SampleAPI.java#L280"&gt;here&lt;/a&gt; for an example on invoking the &lt;code&gt;login&lt;/code&gt; REST API.&lt;/p&gt;</description></item><item><title>Building the Open-Source Conferencing App for iOS</title><link>https://docs.mesibo.com/tutorials/open-source-conferencing/ios/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-conferencing/ios/</guid><description>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/mesibo/conferencing"&gt;Downloaded the Source Code for the iOS App&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Gone through the &lt;a href="https://docs.mesibo.com/api/conferencing/ios"&gt;Quick Start with Mesibo Conferencing API - iOS&lt;/a&gt; and have a basic familiarity with mesibo conferencing APIs..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;XCode Installed&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;An iPhone Device to run the app&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="build-instructions"&gt;Build Instructions&lt;a class="td-heading-self-link" href="#build-instructions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Building the code is as simple as:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Launch Xcode&lt;/li&gt;
&lt;li&gt;Open the project &lt;strong&gt;ios/MesiboConference&lt;/strong&gt; from the folder where you have downloaded the code using the menu &lt;code&gt;File -&amp;gt; Open&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Build using menu &lt;code&gt;Product -&amp;gt; Build&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;It may take a while to build the project for the first time.&lt;/li&gt;
&lt;li&gt;Once the build is over, run on the device using the menu &lt;code&gt;Product -&amp;gt; Run&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;That&amp;rsquo;s it, you should see the welcome screen like below and then the login screen.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="if-you-receive-linker-errors"&gt;If you receive linker errors&lt;a class="td-heading-self-link" href="#if-you-receive-linker-errors" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;If you receive linker errors, it means that &lt;strong&gt;your download was incomplete&lt;/strong&gt;. One of the likely reasons is that you forgot to issue &lt;code&gt;git lfs install&lt;/code&gt;. There are two ways to fix it:&lt;/p&gt;</description></item><item><title>Building the Open-Source Conferencing App for Javascript</title><link>https://docs.mesibo.com/tutorials/open-source-conferencing/javascript/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-conferencing/javascript/</guid><description>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/mesibo/conferencing"&gt;Downloaded the Source Code for the Javascript App&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Gone through the &lt;a href="https://docs.mesibo.com/api/conferencing/javascript"&gt;Quick Start with Mesibo Conferencing API - Javascript&lt;/a&gt; and have a basic familiarity with mesibo conferencing APIs.
.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A webserver with HTTPS support to host the Web App.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hosting-the-app"&gt;Hosting the App&lt;a class="td-heading-self-link" href="#hosting-the-app" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;img src="https://docs.mesibo.com/tutorials/open-source-conferencing/images/web-login.png" style="float:right;" height="150" width="240"/&gt;
Running the web app is as simple as:
&lt;ol&gt;
&lt;li&gt;Open the folder web/live-demo&lt;/li&gt;
&lt;li&gt;Serve this folder securely(*requires HTTPS)&lt;/li&gt;
&lt;li&gt;Open &lt;code&gt;index.html&lt;/code&gt; in your web browser&lt;/li&gt;
&lt;li&gt;That’s it! You should now see the login page&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Invoke the login REST API as follows. Refer to the source code in &lt;a href="https://github.com/mesibo/conferencing/blob/f5bb004625c3c80a7c4b0a5026e1a9eb28f335df/web/live-demo/web/scripts/login.js#L119"&gt;login.js&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Conclusion</title><link>https://docs.mesibo.com/tutorials/open-source-conferencing/conclusion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-conferencing/conclusion/</guid><description>&lt;h2 id="congratulations"&gt;Congratulations!&lt;a class="td-heading-self-link" href="#congratulations" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You&amp;rsquo;ve created a fully functional Zoom like Conferencing app. Visit our &lt;a href="https://docs.mesibo.com/faq/conference"&gt;FAQ Page&lt;/a&gt; if you have any questions.&lt;/p&gt;</description></item><item><title>Frequently Asked Questions - Other</title><link>https://docs.mesibo.com/faq/none/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/faq/none/</guid><description/></item><item><title>Get Started | UI Modules</title><link>https://docs.mesibo.com/tutorials/get-started/ui-modules/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/ui-modules/</guid><description>&lt;p&gt;In this part, we will cover how to use mesibo in your UI apps and mesibo UI modules.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Read the &lt;a href="https://docs.mesibo.com/tutorials/get-started/"&gt;First App&lt;/a&gt; Guide.&lt;/li&gt;
&lt;li&gt;Read one of the Android, iOS, JS section of this tutorial.&lt;/li&gt;
&lt;li&gt;Install Mesibo UI Modules by following &lt;a href="https://docs.mesibo.com/install/android/#install-mesibo-ui-and-voicevideo-calls-framework"&gt;Instructions for Android&lt;/a&gt; and &lt;a href="https://docs.mesibo.com/install/ios/#step-4-install-mesibo-ui-and-calls-framework"&gt;Instructions for iOS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ready-to-use-ui-modules"&gt;Ready to use UI Modules&lt;a class="td-heading-self-link" href="#ready-to-use-ui-modules" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mesibo provides a variety of pre-built UI components that allow you to quickly add messaging, voice &amp;amp; video call graphical user interface in your app. Mesibo UI modules are completely customizable. You can not only customize colors, icons, etc but also customize how each message is rendered. This enables you to create powerful chatbots in no-time.&lt;/p&gt;</description></item><item><title>Get Started | User Authentication in your App</title><link>https://docs.mesibo.com/tutorials/get-started/auth/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/get-started/auth/</guid><description>&lt;p&gt;A typical first step in every app is user authentication. This generally involves a login form where users enter their credentials. Note that &lt;strong&gt;mesibo does not recommend or enforce any particular authentication method&lt;/strong&gt;. You can use any authentication mechanism suitable to your app, for example, email, phone, user-id, LDAP, RADIUS, OAuth2, Kerberos, SAML, fingerprint, etc. All you need to do is to generate a mesibo access token for the user only after your user passed your authentication.&lt;/p&gt;</description></item><item><title>Loadable Modules - add your own custom features to Mesibo</title><link>https://docs.mesibo.com/on-premise/loadable-modules-new/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/on-premise/loadable-modules-new/</guid><description>&lt;p&gt;Imagine, if you could have the ability to process every message between your users, or could add custom features and functionalities. For example, create chatbots, filter profanity, translate messages between sender and recipient, analyze messages with machine learning and AI tools, and more. This can open up a plethora of creative possibilities for your apps. Now with mesibo modules, all of this is possible!.&lt;/p&gt;
&lt;p&gt;Mesibo is designed “&lt;strong&gt;by Developers for Developers&lt;/strong&gt;!”. As developers, we understand that a platform is very limited unless it allows its users to build more features and functionalities on it. This is how Mesibo loadable modules come in.&lt;/p&gt;</description></item><item><title>mesibo API documentation</title><link>https://docs.mesibo.com/index_old/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/index_old/</guid><description>&lt;section id="td-cover-block-0" class="row td-cover-block td-cover-block--height-full td-below-navbar js-td-cover td-overlay td-overlay--dark -bg-dark" &gt;
 &lt;div class="col-12"&gt;
 &lt;div class="container td-overlay__inner"&gt;
 &lt;div class="text-center"&gt;
 &lt;h1 class="display-1 mt-0 mt-md-5 pb-4"&gt;mesibo documentation&lt;/h1&gt;
 &lt;div class="pt-3 lead"&gt;
&lt;!--
 Want a cover without an image?
 Add the following argument to the blocks/cover shortcode:
 color="primary bg-gradient td-below-navbar"
--&gt;
&lt;!-- prettier-ignore --&gt;
&lt;p class="display-6"&gt;Porridge temperature assessment — in the cloud!&lt;/p&gt;
&lt;!-- prettier-ignore --&gt;
&lt;div class="td-cta-buttons my-5"&gt;
 &lt;a class="btn btn-lg btn-primary" role="button" href="docs/"&gt;
 Learn more
 &lt;/a&gt;
 &lt;a class="btn btn-lg btn-secondary" role="button"
 href="https://mesibo.com"
 target="_blank" rel="noopener noreferrer"&gt;
 Get the code
 &lt;i class="fa-brands fa-github text- px-1"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a class="btn btn-link text-info" href="#td-block-1" aria-label="Read more"&gt;&lt;i class="fa-solid fa-circle-chevron-down" style="font-size: 400%"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/section&gt;
&lt;div&gt;&lt;a id="td-block-1" class="td-anchor-no-extra-offset"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;section class="row td-box td-box--white position-relative td-box--height-auto"&gt;
&lt;div class="col-12"&gt;
&lt;div class="container text-center td-arrow-down"&gt;
&lt;div class="h4 mb-0"&gt;
&lt;p&gt;Goldydocs provides a single web UI providing visibility into porridge
temperature, chair size, and bed softness metrics! You can even find out who&amp;rsquo;s
been eating &lt;strong&gt;your&lt;/strong&gt; porridge.&lt;/p&gt;</description></item><item><title>mesibo Backend API Playground</title><link>https://docs.mesibo.com/api/backend-api/playground/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/backend-api/playground/</guid><description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
 &lt;head&gt;
 &lt;meta charset="utf-8"&gt;
 &lt;meta name="viewport" content="width=device-width"&gt;
 &lt;title&gt;mesibo Backend API Playground&lt;/title&gt;
 &lt;link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous"&gt;
 &lt;link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-2/css/all.min.css" /&gt;
 &lt;link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/&gt;
 &lt;link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.min.css"&gt;
 &lt;style&gt;
 sup { vertical-align: top; position: relative; top: -0.5em; }

 input::-webkit-inner-spin-button {
		-webkit-appearance: none;
		margin: 0;
	 }

	 /* Firefox */
	 input[type=number] {
		-moz-appearance: textfield;
	 }

	 .btn.btn-dark:disabled{
		background-color: #A9A9A9;
		border: none;
		outline:none;
	 }

	 textarea {
		 padding: 10px;
		 background-color: transparent;
		 font-family: monospace;
		}

		.navbar-nav li a {
		 line-height: 70px;
		}

		.navbar-nav li img {
		 vertical-align: bottom;
		}

		.btn:focus,.btn:active {
		 outline: none !important;
		 box-shadow: none;
		 -webkit-box-shadow: none
		}
 &lt;/style&gt;
 &lt;/head&gt;
 &lt;body ng-cloak="apis" ng-app="MesiboPlayground" id="mesiboapiplay" ng-controller="AppController"&gt;
 &lt;nav class="navbar navbar-light" style="background-color: #00868b;"&gt;
 &lt;a href="https://mesibo.com/"&gt;&lt;img class="logo" src="https://mesibo.com/images/mesibo-logo-white.png" alt="Mesibo" title="Mesibo" style="width: 160px;"&gt;&lt;/a&gt; 
 
 &lt;div class="ml-auto"&gt; 
 	 &lt;span style="color: white;" ng-show="app_name &amp;&amp; app_aid"&gt;{{app_name}}({{app_aid}})&lt;/span&gt;
	 	 &lt;button type="button" ng-show="token" class="btn btn-danger" onclick="window.location.reload(true);" style="align-self:right;"&gt;Logout&lt;/button&gt; 
 &lt;/div&gt;
 
 &lt;/nav&gt;
 &lt;br ng-if="!token"&gt;
 &lt;div class="mx-5"&gt; 
 &lt;div ng-show="!token"&gt;
 	&lt;h3 style="color: #00868b"&gt; mesibo Backend API Playground &lt;/h3&gt;
 	&lt;p&gt;This is an interactive playground for trying out REST based &lt;a rel="noopener noreferrer" target="_blank" href="https://docs.mesibo.com/api/backend-api"&gt;mesibo Backend APIs&lt;/a&gt;. You can administer your account, manage apps, manage users and groups etc using backend APIs. Refer to &lt;a href="https://docs.mesibo.com/api/backend-api/"&gt; Backend API Documentation &lt;/a&gt; to know more.&lt;/p&gt;</description></item><item><title>Mesibo Backend APIs - Group Management</title><link>https://docs.mesibo.com/api/backend-api/group-flag-notinuse/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/backend-api/group-flag-notinuse/</guid><description>&lt;p&gt;mesibo allows you to create groups having a set of users as group members. Once you create a group, you can send messages to the group, and all the group members will receive the messages.&lt;/p&gt;
&lt;p&gt;Unless you have a specific need for creating groups using backend API, we recommend using &lt;a href="https://docs.mesibo.com/api/real-time-api/groups/"&gt;real-time Group Management APIs&lt;/a&gt; to create groups and adding members. It is real-time, powerful, and works across both cloud and on-premise deployment without any changes.&lt;/p&gt;</description></item><item><title>Mesibo End-to-End Encryption APIs</title><link>https://docs.mesibo.com/api/end-to-end-encryption/e2e-progress-3472908472/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/end-to-end-encryption/e2e-progress-3472908472/</guid><description>&lt;p&gt;mesibo end-to-end algorithm is an improvement over existing protocol, namely OTR, Silent_Circle_Instant_Messaging_Protocol, and Open Whisper System (used by WhatsApp, Signal, etc).&lt;/p&gt;
&lt;p&gt;improvements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;third party man in middle elimination&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;improved rachet algoruthm in terms of&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;efficency in key generation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;imprioved ephernal keys for out of order packets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;assymetrical key generation where receiver dicates how sender generates key, while maintaining systmmetric cipher&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;indentiy update&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;does not maintain centralize key directory&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;configurable level of strength, same, more, or lower than other algorithm. As an appl developers, you can decide the strength (banking vs dating vs casual chat) depending on bandwidth and cpu usage&lt;/p&gt;</description></item><item><title>Mesibo Open Source Chat, Voice and Video Calls UI Modules</title><link>https://docs.mesibo.com/ui-modules/javascript/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/ui-modules/javascript/</guid><description>&lt;p&gt;mesibo provides a variety of pre-built open-source UI components that allow you to quickly add messaging, voice &amp;amp; video calls, and conferencing graphical user interface in your app in just a few lines of code. mesibo UI components are optional and provided to aid in the app development process. You can completely design your own UI components using mesibo core APIs.&lt;/p&gt;
&lt;p&gt;











&lt;a class="glightbox" href="https://docs.mesibo.com/ui-modules/images/one-on-one-chat-m.png"&gt;
 &lt;img src="https://docs.mesibo.com/ui-modules/images/one-on-one-chat-m.png" alt="messaging" style="max-width: 100%; height: auto;" /&gt;
&lt;/a&gt;

{:width=&amp;ldquo;225px&amp;rdquo;}| 











&lt;a class="glightbox" href="https://docs.mesibo.com/ui-modules/images/group-chat.png"&gt;
 &lt;img src="https://docs.mesibo.com/ui-modules/images/group-chat.png" alt="group chat" style="max-width: 100%; height: auto;" /&gt;
&lt;/a&gt;

{:width=&amp;ldquo;225px&amp;rdquo;} | 











&lt;a class="glightbox" href="https://docs.mesibo.com/ui-modules/images/voice-video.png"&gt;
 &lt;img src="https://docs.mesibo.com/ui-modules/images/voice-video.png" alt="mesibo voice and video calls" style="max-width: 100%; height: auto;" /&gt;
&lt;/a&gt;

{:width=&amp;ldquo;225px&amp;rdquo;}&lt;/p&gt;</description></item><item><title>Mesibo Open Source Chat, Voice and Video Calls UI Modules</title><link>https://docs.mesibo.com/ui-modules/messenger/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/ui-modules/messenger/</guid><description>&lt;p&gt;mesibo provides a variety of pre-built open-source UI components that allow you to quickly add messaging, voice &amp;amp; video calls, and conferencing graphical user interface in your app in just a few lines of code. mesibo UI components are optional and provided to aid in the app development process. You can completely design your own UI components using mesibo core APIs.&lt;/p&gt;
&lt;p&gt;











&lt;a class="glightbox" href="https://docs.mesibo.com/ui-modules/images/one-on-one-chat-m.png"&gt;
 &lt;img src="https://docs.mesibo.com/ui-modules/images/one-on-one-chat-m.png" alt="messaging" style="max-width: 100%; height: auto;" /&gt;
&lt;/a&gt;

{:width=&amp;ldquo;225px&amp;rdquo;}| 











&lt;a class="glightbox" href="https://docs.mesibo.com/ui-modules/images/group-chat.png"&gt;
 &lt;img src="https://docs.mesibo.com/ui-modules/images/group-chat.png" alt="group chat" style="max-width: 100%; height: auto;" /&gt;
&lt;/a&gt;

{:width=&amp;ldquo;225px&amp;rdquo;} | 











&lt;a class="glightbox" href="https://docs.mesibo.com/ui-modules/images/voice-video.png"&gt;
 &lt;img src="https://docs.mesibo.com/ui-modules/images/voice-video.png" alt="mesibo voice and video calls" style="max-width: 100%; height: auto;" /&gt;
&lt;/a&gt;

{:width=&amp;ldquo;225px&amp;rdquo;}&lt;/p&gt;</description></item><item><title>Mesibo Profile APIs - Listeners</title><link>https://docs.mesibo.com/api/users-and-profiles/listeners/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/users-and-profiles/listeners/</guid><description>&lt;p&gt;There are two types of listeners in the mesibo Profile API:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#userprofilelistener"&gt;UserProfileListener&lt;/a&gt; The global profile listener&lt;/li&gt;
&lt;li&gt;&lt;a href="#listener"&gt;UserProfile.Listener&lt;/a&gt; Per &lt;code&gt;UserProfile&lt;/code&gt; listener.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="userprofilelistener"&gt;UserProfileListener&lt;a class="td-heading-self-link" href="#userprofilelistener" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Your app must implement the &lt;code&gt;UserProfileListener&lt;/code&gt; to be notified of global profile events. The following global listeners are available through the &lt;code&gt;UserProfileListener&lt;/code&gt; interface:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="#mesibo_onuserprofileupdated"&gt;Mesibo_onUserProfileUpdated&lt;/a&gt;, called when a profile that you have subscribed to is updated globally. Also called when you request for a profile using &lt;code&gt;getProfile&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="#mesibo_onuserprofileaccess"&gt;Mesibo_onUserProfileAccess&lt;/a&gt;, called when your app wants to access a profile. You can make modifications to the profile object here as per your local context. For example, if you are syncing profiles of contacts on your phone, you may change the name on a user&amp;rsquo;s profile as per your local address book.&lt;/p&gt;</description></item><item><title>Mesibo Real-time Chat APIs - Messaging</title><link>https://docs.mesibo.com/api/messaging/messaging-old/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/messaging-old/</guid><description>&lt;p&gt;In this section, we will describe how to send messages.&lt;/p&gt;
&lt;h2 id="basic-usage"&gt;Basic Usage&lt;a class="td-heading-self-link" href="#basic-usage" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To send messages, you only need to create a &lt;code&gt;MesiboMessage&lt;/code&gt; object for the destination, add your content (text message, files, location, etc.), set message properties if requires, and call &lt;code&gt;send&lt;/code&gt; method. You can create a &lt;code&gt;MesiboMessage&lt;/code&gt; object by calling&lt;/p&gt;
&lt;h3 id="create"&gt;Create&lt;a class="td-heading-self-link" href="#create" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;MesiboMessage message = profile.newMessage();
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;OR,&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;MesiboMessage message = new MesiboMessage(profile);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;where the &lt;code&gt;profile&lt;/code&gt; is the user or group profile to whom you want to send a message. Once you create a &lt;code&gt;MesiboMessage&lt;/code&gt; object, all you need to do is to add your message content and call &lt;code&gt;send()&lt;/code&gt;. There is no difference between how you send messages to an individual user or a group, the destination is set based on the profile you have used to create &lt;code&gt;MesiboMessage&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Mesibo real-time webhooks</title><link>https://docs.mesibo.com/api/webhooks/wh_old/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/webhooks/wh_old/</guid><description>&lt;p&gt;Webhooks allow you to monitor your app and users in real-time by getting updates from the mesibo cloud or on-premise server, as it happens.












&lt;a class="glightbox" href="https://docs.mesibo.com/api/webhooks/images/webhook-block.png"&gt;
 &lt;img src="https://docs.mesibo.com/api/webhooks/images/webhook-block.png" alt="" style="max-width: 100%; height: auto;" /&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;You can select events you are interested in, say, for example, an offline message, a user comes online, goes offline, billings, etc. You also need to provide an URL in the mesibo console that will be invoked with POST data in real-time by Mesibo when such events happen.&lt;/p&gt;</description></item><item><title>MesiboProfile</title><link>https://docs.mesibo.com/api/users-and-profiles/mesiboprofile/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/users-and-profiles/mesiboprofile/</guid><description>&lt;h2 id="mesiboprofilemesiboselfprofile-methods"&gt;MesiboProfile/MesiboSelfProfile methods&lt;a class="td-heading-self-link" href="#mesiboprofilemesiboselfprofile-methods" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The following methods are available in the &lt;code&gt;MesiboProfile&lt;/code&gt; class to access and modify a profile. &lt;code&gt;MesiboSelfProfile&lt;/code&gt; is a derived class of &lt;code&gt;MesiboProfile&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="togglearchive"&gt;toggleArchive&lt;a class="td-heading-self-link" href="#togglearchive" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Enable or disable whether a profile is to be archived.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;mMesiboProfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toggleArchive&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="isarchieved"&gt;isArchieved&lt;a class="td-heading-self-link" href="#isarchieved" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Returns true if profile is archieved, false otherwise.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;mMesiboProfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;isArchieved&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="togglemute"&gt;toggleMute&lt;a class="td-heading-self-link" href="#togglemute" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Enable or disable profile updates. If you mute, you will not be notified when that profile is updated.&lt;/p&gt;</description></item><item><title>Mesibo Voice &amp; Video Call API - MesiboVideoView</title><link>https://docs.mesibo.com/api/calls/mesibovideoview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/calls/mesibovideoview/</guid><description>&lt;p&gt;&lt;code&gt;MesiboVideoView&lt;/code&gt; is a UI Component available in Android &amp;amp; iOS, that you need to use for displaying a video in One-to-One Video-Calls, Conferencing(Group Video Calls), etc.&lt;/p&gt;
&lt;p&gt;For example, in Android, you can have a &lt;code&gt;MesiboVideoView&lt;/code&gt; element like below:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;com.mesibo.calls.api.MesiboVideoView&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:id=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;@+id/my_video&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:layout_width=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;match_parent&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:layout_height=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;match_parent&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and get the &lt;code&gt;MesiboVideoView&lt;/code&gt; object like below:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MesiboVideoView&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;videoView&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;findViewById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;participant_stream_view&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;In Javascript, &lt;code&gt;MesiboVideoView&lt;/code&gt; is not available. You can simply use the HTML &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; player.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;MesiboVideoView&lt;/code&gt; extends &lt;a href="https://developer.android.com/reference/android/view/View"&gt;View&lt;/a&gt; in Android and &lt;a href="https://developer.apple.com/documentation/uikit/uiview"&gt;UIView&lt;/a&gt; in iOS. So, in addition to methods and properties in &lt;a href="https://developer.android.com/reference/android/view/View"&gt;View&lt;/a&gt; or &lt;a href="https://developer.apple.com/documentation/uikit/uiview"&gt;UIView&lt;/a&gt;, &lt;code&gt;MesiboVideoView&lt;/code&gt; has the following methods:&lt;/p&gt;</description></item><item><title>Real-time Chat APIs - Utility</title><link>https://docs.mesibo.com/api/messaging/utility/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/api/messaging/utility/</guid><description>&lt;p&gt;Following are some of the utility APIs which you can use in your apps. Ensure that you have the necessary permissions from the app users to use these APIs.&lt;/p&gt;
&lt;h2 id="networking-timings-and-other-utility-apis"&gt;Networking, Timings and other Utility APIs&lt;a class="td-heading-self-link" href="#networking-timings-and-other-utility-apis" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="getnetworkconnectivity-android-and-ios-only"&gt;getNetworkConnectivity [Android and iOS only]&lt;a class="td-heading-self-link" href="#getnetworkconnectivity-android-and-ios-only" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Returns current network connectivity. It can be one of the following&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CONNECTIVITY_UNKNOWN&lt;/li&gt;
&lt;li&gt;CONNECTIVITY_DISCONNECTED&lt;/li&gt;
&lt;li&gt;CONNECTIVITY_WIFI&lt;/li&gt;
&lt;li&gt;CONNECTIVITY_2G&lt;/li&gt;
&lt;li&gt;CONNECTIVITY_3G&lt;/li&gt;
&lt;li&gt;CONNECTIVITY_4G&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="gettimestamp"&gt;getTimestamp&lt;a class="td-heading-self-link" href="#gettimestamp" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Returns current timestamp in milliseconds.&lt;/p&gt;
&lt;p&gt;It does not take any parameters.&lt;/p&gt;</description></item><item><title>Search Results</title><link>https://docs.mesibo.com/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/search/</guid><description/></item><item><title>Setting up the Admin API</title><link>https://docs.mesibo.com/tutorials/open-source-conferencing/admin/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/tutorials/open-source-conferencing/admin/</guid><description>&lt;p&gt;In previous sections, we have implemented conferencing apps for Android, iOS, and Web. In all these apps, we have used the Admin API which is already hosted at &lt;code&gt;https://app.mesibo.com/conf/api.php&lt;/code&gt; so that you can quickly play with the apps without worrying about the backend. Now in this part, we will describe how to host the Admin API backend on your servers/infrastructure and having complete control over your conference participants, the resolution of the room, who are allowed to publish or view streams in the conference, etc.&lt;/p&gt;</description></item><item><title>Using Mesibo UI Modules for Android - Messaging</title><link>https://docs.mesibo.com/ui-modules/android/messaging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.mesibo.com/ui-modules/android/messaging/</guid><description>&lt;p&gt;Mesibo offers ready to use UI components which you can quickly add to your applications. Mesibo UI components are completely customizable as per your needs. On Android, Mesibo UI components are available as &lt;code&gt;Fragments&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There are primarily two types of Mesibo UI components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;MesiboUserListFragment&lt;/code&gt;, which displays a list of users in different modes. The modes are explained below.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;MesiboMessagingFragment&lt;/code&gt;, which renders all the messages for a particular user or a group&lt;/p&gt;</description></item></channel></rss>