Communication Function Overview


Agora Native SDK supports both Communication and Live Broadcast scenarios which is set when calling setChannelProfile before joining a channel. This document describes the detailed functions for the communication scenario.

For users who want to understand the Agora Native SDK for Live Broadcast function, refer to Live Broadcast Function Overview.


For the functions without references to other documents for detailed implementation, refer to each platform API reference. For each function, a diagram to indicate the API sequence will be provided in the later releases.

Basic Communication

Channel Setup

Agora Native SDK allows you to join and leave the shared Agora channels, identified by unique channel names, where there may be many global users conferenced together or simply one other user for one-to-one communication. Your application code should create and manage unique channel names.


Media Control

Agora Native SDK allows you to enable and disable voice and video (allowing muting) and set various voice and video parameters that help the Agora Native SDK optimize communications. Many of the SDK operations are automated and do not require developer intervention if these parameter settings are not provided.

Device Control

Agora Native SDK allows you to access the microphone or speakerphone, set the volume, select from alternative cameras, and set the video window display.

Channel Control

Agora Native SDK allows you to receive events when other users join or leave a channel, and understanding who’s speaking, who’s muted, and who’s viewing the session. These events allow the application to decide when to make changes to the delivery of video and audio streams, and other application-specific user and status information.

Quality Management

Agora Native SDK allows you to obtain statistics and quality indicators about network conditions on the Dashboard, run built-in tests, submit ratings and complaints about sessions and enable different levels of error logging. The host bitrate is adjusted dynamically according to the current network quality.

Data Encryption

Agora Native SDK allows you to encrypt the audio and video packets. For details, refer to Data Encryption.

Data Channel

The users can receive reliable and ordered packets via data channels.


Agora Native SDK for Web does not support the data channel yet.

Raw Data Modification

Agora raw data interface is an advanced feature provided in the SDK library for users to obtain the audio/video raw data of the SDK engine. You, as a developer, can modify the audio or video data and create special effects to meet special needs of their applications.

You can insert a pre-processing stage before sending the data to the encoder, modifying the captured of video frames or audio signals. You can also insert a post-processing stage before sending the data to the decoder, modifying the received video frames or audio signals.

For details, refer to Modify Raw Data .


Agora Native SDK for Web does not supporting raw data modification yet.

Recording and Storage

You can record audio or video and audio in one or multiple channels simultaneously based on all-platform Agora Native SDK. This function is only applicable to the users who have adopted the Recording Key schema. For details, refer to Recording Guide - Service Beta.


You can provide a simple collaboration platform on the whiteboard based on the all-platform Agora Native SDK where users from different locations can draw, annotate, and share PDF documents to visualize and simplify the communication. For details, refer to Use Whiteboard Beta.



On Android and iOS, the users have view-only permission.

Screen Sharing

You can share the desktop or window with another user on all platforms. When the screen sharing function is enabled, the other person’s screen displays your shared desktop or window instead of the camera video.



On Android and iOS, the users have view-only permission.

Image Enhancement

The users can enhance the visual effects based on Agora Native SDK by integrating the Agora Image Enhancement component.

The component is delivered in a separate package, see Using Image Enhancement Beta for details.