<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mesibo Voice and Video Call APIs - Secure and end-to-end encrypted calling on mesibo documentation</title><link>https://docs.mesibo.com/api/calls/</link><description>Recent content in Mesibo Voice and Video Call APIs - Secure and end-to-end encrypted calling on mesibo documentation</description><generator>Hugo</generator><language>en</language><atom:link href="https://docs.mesibo.com/api/calls/index.xml" rel="self" type="application/rss+xml"/><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>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>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>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>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>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></channel></rss>