Frequently Asked Questions - Other

How can I know if a user is online or offline?

You can check a user's current online status easily by calling the isOnline() function of the user profile. For more information, read profile and presence documentation in real-time APIs.

If you like to use online status on your server, you can configure a webhook to keep you informed in real-time about the user's online status.

How to reconnect to mesibo servers if there is a network issue?

mesibo APIs detect network conditions and automatically reconnect to mesibo servers unless you call stop() explicitly. Therefore, you do not need to worry about network conditions and reconnection. mesibo Client SDK also informs your app via mesibo_onConnectionStatus which you can use to take further app-specific actions. However, once you call stop(), mesibo will not reconnect unless you call start() again.

I am not getting connection status 1 - `online`

If you are not getting connection status 1, and getting 4 or 5, you are not passing the correct appid while creating a token. The appid passed to create a token must match the Android package name declared in the AndroidManifest.xml (and google-services.json), Or the iOS bundle id declared in the Xcode project (for example, ). If you are using Javascript API or other platforms, ensure that you pass the same app id to the setAppName API call.

Also, ensure that you are NOT using the App Token. App Token must be secret and should only be used from the backend API. You MUST only use a user access token in your real-time API.

We recommend checking Get Started Guide to quickly learn core mesibo concepts.

How do I restrict user access tokens to a particular app or domain?

User access tokens are only applicable to your app and issued only to authorized users by you. Hence there is less possibility of anyone reusing it.

For Android and iOS, user access tokens are restricted to the Android package name or iOS bundle ID. They can not be used on apps having a different app or bundle ID. Refer to the User Management APIs to learn more, Multiple apps with different package names or bundle IDs can come under one mesibo app and can communicate with each other as long as you use corresponding package name or bundle ID while generating a token for that particular app user.

For Javascript, there is no reliable method to detect domain or app name, and hence the same security policy does not apply. Domain and referrer methods used by many service providers (including Google) are subject to DNS or referrer spoofing and hence we do not want to offer a false sense of security to our users. We are investigating better methods. If you are particularly concerned, you can dynamically generate user access tokens for a short duration and destroy them after use. If you have other suggestions, we'd like to hear from you.

How can my apps receive messages and calls after it goes to the background?

You need to configure Push Notification to receive messages and calls in the background.

In the past, apps could stay online even when running in the background. However, it's no longer the case. Both Android and iOS will suspend the app after the app moves to the background. Read more about Android and iOS background execution limits here and here.

mesibo provides an easy way to wake up your app from the sleep state when new messages or calls are received. All you need to do is to configure mesibo Push Notifications. mesibo will send a push notification every time the destination is offline, which will trigger the app to move from the sleep state to the active state. Once the app moves to the active state, Mesibo will automatically connect and start receiving messages and calls. This entire process will be seamless for the user.

You may also refer to the mesibo sample app source code to see how it is implemented there.

What's the maximum file size I can send from clients?

Mesibo allows you to upload all the files to your private servers or any of your other cloud servers (say, Google, Amazon EC2, Akamai etc), Hence There is no limit on the maximum file size.

How can I moderate messages/filter profanity?

Before sending any message or immediately after receiving a message, Mesibo calls a message filter set by your app Mesibo_onMessageFilter. You can filter any words in the message or simply discard the message.

Why doesn't Mesibo provide server-side profanity filter?

Server-side message filtering is not at all recommended - although provided by some other API vendors. It completely defeats the privacy as the server needs to look into your messages and it simply won't work with end-to-end encryption. mesibo's approach (described earlier) provides much more flexibility and works with end-to-end encryption.

However, you can use our on-premise server and profanity filter module.

Can I make users on multiple apps communicate with each other?

You can, if you use a single Mesibo application for all of those apps. In other words, you would have to have one application in your Mesibo Console, with its application ID shared among multiple apps.

Can I request custom features not available in Mesibo?

Certainly, please contact us with your feature requests.

How much bandwidth does a video call consumes?

A normal non-HD video call consumes approx 600kbps which translates to 0.25GB per hour per leg. Typically an HD (720p and above) call consumes 1-2 Mbps which translates to 1 GB of bandwidth per participant.

Why am I getting the TOKENBREACH error?

You will receive a TOKENBREACH error if your app token is used from multiple IP addresses.

One possible reason is that if you are using the App token from the client side, it will be blocked for security reasons. Note that, you MUST not use the app token from the client side. It's a security and privacy violation. Your user will have complete access to everything including other users once they know your app token. Instead, your clients should communicate with your backend for any administrative tasks, for example, useradd, groupadd, etc. Your backend should invoke the mesibo API to carry out the requested operation.

Refer to mesibo Backend APIs to learn more.

How to keep a user online from multiple browser tabs using mesibo javascript API?

Refer to the Synchronization Across Browser Tabs and Windows to keep a user online from multiple browser tabs using mesibo javascript API.