• Recent
Add chat and video calling using QuickBlox chat API and SDK

Build Your Own Messenger With Real-Time Chat & Video APIs

Add instant messaging and online video chat to any Android, iOS, or Web application, with ease and flexibility. In-app chat and calling APIs and SDKs, trusted globally by developers, startups, and enterprises.

QuickBlox Bayshore
QuickBlox NextGen
QuickBlox Teladoc
QuickBlox OMRON

Launch quickly and convert more prospects with real‑time Chat, Audio, and Video communication

If you own a product, you know exactly how drawn-out and exorbitant it can be to build to build real-time communication features from scratch. Quickblox can help you design, create, and enter the market at a much faster rate with APIs and SDKs that shortcut product and engineering delivery. Convert your ideas into a successful product with us and watch the engagement rate rise, while you build a loyal user base.

Over 30,000 software developers and organizations worldwide are using QuickBlox messaging API.


enterprise instances




chats per day


requests per month

Wherever you are in your product journey, we have chat, voice, and video APIs ready to build new features into your app

Why QuickBlox?

Quickblox APIs are equipped to support mobile applications and websites at different stages, be it a fresh product idea, an MVP, early stage startup or a scaling enterprise. Our documentation and developer support are highly efficient to make your dream product a reality.


Chat API and Feature-Rich SDKs

Our versatile software is designed for multi‑platform use including iOS, Android, and the Web.


SDKs and Code Samples:

Cross-platform kits and sample apps for easy and quick integration of chat.


Restful API:

Enable real-time communication via the server.


UI Kits:

Customize everything as you want with our ready UI Kits.



White‑label solution for teleconsultation and similar use cases.


Fully Customizable White Label Solutions

Customizable UI Kits to speed up your design workflow and build a product of your vision as well as a ready white‑label solution for virtual rooms and video calling use cases.


Cloud & Dedicated Infrastructure

Host your apps wherever you want - opt for a dedicated fully managed server or on‑premises infrastructure. Pick a cloud provider that’s best as per your business goals.



A dedicated QuickBlox cloud or your own virtual cloud?



Deployed and managed on your own physical server.



Integrating QuickBlox across multiple platforms.



Quickblox support is a click away.


Rich Documentation & Constant Support

Get easy step by step guidance to build a powerful chat/messaging/communication app. Easily integrate new features using our documentation and developer support.

Do you need additional security, compliance, and support for the long-term ?

We have a more scalable and flexible solution for you, customized to your unique business/app requirements.

Insanely powerful in-app chat solutions- for every industry

  • Healthcare

    Provide better care for your patients and teams using feature-rich HIPAA‑compliant chat solutions. Integrate powerful telemedicine communication tools into your existing platform.

  • Finance & Banking

    Secure communication solutions for the financial and banking industry to support your clients. Easily integrated with your banking APIs with full customization available.

  • Marketplaces & E-commerce

    Integrate chat and calling into your e‑commerce marketplace platform to connect with customers using chat, audio, and video calling features.

  • Education & Coaching

    Add communication functions to connect teachers with students, coaches with players, and trainers with clients. Appropriate for any remote learning application.


Trusted by Developers & Product Owners

Explore Documentation

Familiarize yourself with our chat and calling APIs. Use our platform SDKs and code samples to learn more about the software and integration process.

Start For FREE. Customize Everything. Build Your Dream Online Platform.

Our real-time chat and messaging solutions scale as your business grows, and can be customized to create 100% custom in-app messaging.

QuickBlox post-box

Q-Consultation for every industry

Securely hold virtual meetings and video conferences

Learn More>

Want to learn more about our products and services?

Speak to us now

How to Manage In-Coming Calls on your Android App with Push Notifications

Kirill Tolmachev
25 Oct 2022
Push notification on Android App

Push notifications for Android are made possible by Google’s Firebase platform. Through the use of push notifications, an app user can receive a notification about any event like a chat message, promotion, or reminder. Push notifications can also be used to signal a user about an incoming call, even if their app is turned off.

We have created a series of tutorials to explain these different aspects of setting up and using push notifications on an Android App. In our first blog we outlined how to get your Android App ready for push notifications by configuring Firebase. In the second blog, we explained the next stage of how to implement push notifications once the configuration was complete. Now with this third blog in the series we explain how to use push notifications to notify your user of an incoming call when an application is closed or in the background mode.

So that we can explain this set-up in some detail, we won’t have space to discuss call related code and details on application state management below. But don’t worry, if you want to learn more about these topics check out our Android SDK documentation.

Read on to find out more about managing in-coming calls.

Understanding the Schema of Push Notifications

To understand how push notifications work with call functionality we can use a simple schema. Let’s imagine that we have two logged Android users in our application. Of course we have used the Quickblox Android SDK to build our video and audio calling app and it works fine when the app is in foreground mode. But when one of the users goes to background mode he can no longer receive a call. Let’s take a closer look of this in action.

For a video and audio call to work, we need a REST connection to a server so that we can log-in/log-out users, get chat messages, get users, etc., and we need an XMPP connection for sending/receiving chat messages and for making calls. We need both of these primary connections (REST and XMPP), as outlined in the scheme below, so that our audio and video calls work.

Push Notification Schema

Before being able to receive a call, the user needs to be connected to both the Rest Server and XMPP server. The following code snippet shows how to establish this connection.

sample code XMPP connect

Once the user receives a push notification, their application will automatically establish a connection to both servers.

Let’s look at this in a little more detail. When User A wishes to call User B , User A needs to send a push notification and initiate the call. On the other side, when User B receives the notification, their app will establish a connection with the REST server, which will enable them the receive an incoming call, as detailed in the diagram below.

When we need to call somebody we should send a push notification and make a call. On another side, we will receive a call, establish connections and receive an incoming call like in a picture below.

push notification schema 1

As we can see we have 7 steps. Let’s describe them in detail.

1. UserA sends a push notification to an opponent (REST)
2. Rest server sends push notification to opponent (specific device)
3. UserA makes a call (XMPP)
4. UserB receives a push notification
5. UserB log-in (REST)
6. UserB log-in (XMPP)
7. UserB receives a call event

Let’s see how it works and how we can implement specific steps in a code.

1. UserA sends a push notification to an opponent


When we send a push notification, we can include additional information to help identify whether it’s a notification for a new message, advertisement, new chat, or incoming call. In the code snippet above the information is included in the JSONObject.

On the other side, when the push notification is received, the JSONObject is parsed so that the information about the type of push notification is identified.

2. Rest server sends push notification to opponent

In this case, the server sends a message to the Google server (Firebase or another, it depends on what server we choose). This is covered by QuickBlox and no action from the developer is required.

3. UserA makes a call

Here is a normal flow for making calls without any additional information. To know how to make calls, check out our documentation.

4. UserB receives a push notification

How you receive and handle a push notification depends on how your push notification has been implemented. The code snippet below shows the default implementation for Firebase in QuickBlox.

sample code for push listener

In onMessageReceived we can parse the message and identify the message type (e.g. new message, new chat, or incoming call).

5-6. UserB log-ins

Here we should login-in our user to REST and XMPP, as shown in the code below:

sample code XMPP connect

7. UserB receives a call event

In order to handle call events you need to subscribe for incoming calls without any modifications.

The QuickBlox server will send a message via XMPP about an incoming call to UserB and it will trigger a onReceiveNewSession callback that will initiate a standard call flow. If you want to learn more about video call flow check out our documentation.


As you can see from the description above, setting up push notifications so that they can inform app users of incoming calls is a pretty straightforward process that shouldn’t require too many modification to your code. In short, you need to send push notifications from the call’s side, receive notification on the recipients side, log into QuickBlox’s servers and subscribe to incoming calls.

Once you have these steps in place, you will have fully-functional push notifications enabled on your Android app!

Got more questions? Please add them to the comments below, or contact customer support.

  1. Gilles says:

    How about Systems not using Firebase but MySQL what are the options and possibilities offered your by your SDK

    1. Gail M. says:

      MySQL is a database. You can use MySQL with QuickBlox to store any information but it doesn’t have functionality to send/receive push notifications. In this tutorial we use Firebase to send/receive push notifications, but our customers can use others platforms if they wish, instead of Firebase. For example, JPush is alternative for Firebase push notifications in China.

  2. Olga says:

    Thank you for the efforts you have put in writing this article.

Leave a Comment

Your email address will not be published. Required fields are marked *

Read More

Ready to get started?

QuickBlox post-box