Agora.io provides building blocks for you to add real-time engagement functions through a simple and powerful SDK. You can integrate the Agora SDK to enable real-time engagement in your own application quickly.
After integrating the Agora SDK, you can call different sets of APIs to implement voice/video communications in different scenarios.
Agora SDK | Functions | Description |
---|---|---|
Voice SDK | Voice Call Live Interactive Audio Streaming |
The Voice SDK package size is smaller than the Video SDK package size and applies to voice-only calls and voice-only live interactive streaming. |
Video SDK | Video Call Live Interactive Video Streaming |
Provides both audio and video functions. |
RTM SDK | Real-Time Messaging | Provides a stable messaging mechanism for real-time messaging scenarios that require low latency and high concurrency for a global audience. |
Recording Add-on | On-premise RecordingCloud Recording |
Records and saves voice/video calls and live interactive streaming on your server. |
SD-RTN™, or Software Defined Real-time Network, is a real-time transmission network built by Agora and is the only network infrastructure specifically designed for real-time communications in the world. All audio and video services provided by the Agora SDK are deployed and transmitted through the Agora SD-RTN™. This is also the only infrastructure in the world designed specifically for real-time transmission. Agora uses intelligent dynamic routing algorithms to achieve millisecond latency and ensure that the end-to-end high-quality transmission rate is greater than 99%.
Feature | Description |
---|---|
Global network coverage | Covers 200+ countries and regions |
Mass access capability | |
QoS (Quality of Service) capability enhancement | |
QoS-based dynamic routing | |
SLA (Service Level Agreement) guarantee | |
Global network reliability | |
Compatibility and interoperability | |
UDP (User Datagram Protocol) optimization | Optimizes multiple private protocols based on the UDP |
Anti-packet-loss optimization | Algorithm for optimizing anti-packet-loss mechanism under weak network conditions Audio anti-packet-loss rate of 80% |
Agora is the only RTC service provider in the world using self-developed audio and video codecs. This allows Agora to have unique advantages in audio and video qualities.
Things you need to know before using the Agora SDK.
Agora Console is a site for developers to manage Agora projects and services.
Agora Console provides an intuitive interface for developers to make payments, query, manage and accomplish other operations when using Agora services. After registering an Agora account, developers can use the following main features:
Agora also provides RESTful APIs, so developers can implement some of the above features directly, such as create a project and fetch usage numbers.
App ID is a random string created within Agora Console and is the unique identifier of an app.
Agora uses App ID to identify each app and provides billing and other statistical data services based on it. After signing up within Agora Console, you can create multiple apps, each with a unique App ID. When initializing a client, you need to pass an App ID as an argument. Clients created by different App IDs cannot communicate with each other. See Get an App ID.
An App Certificate is a random string created within Agora Console. It enables token authentication and is one of the required arguments for generating a RTC or RTM token.
You can get the App Certificate in Agora Console. See Manage the App Certificate.
A token, also known as a dynamic key, is used by the Agora server to check user permissions. For more information, see Authenticate Your Users with Tokens.
A channel is created by a developer calling the methods provided by Agora for transmitting real-time data.
Agora uses different channels to transmit different types of data. The RTC channel transmits audio or video data, while the RTM channel transmits messaging or signaling data. RTC channels and RTM channels are independent of each other.
Additional components provided by Agora, such as On-premise Recording and Cloud Recording, can join the RTC channel and provide real-time recording, transmission acceleration, media playback, and content moderation.
Agora uses the channel name to identify a channel. Users with the same channel name join the same channel and interact with each other. A channel no longer exists when the last user leaves the channel.
The SDK applies different optimization methods according to the channel profile.
Agora supports the following channel profiles:
Channel profile | Description |
---|---|
COMMUNICATION | One-on-one or group calls, where all users in the channel can talk freely. |
LIVE_BROADCASTING | In a live interactive streaming channel, users have two client roles: Host and audience. The host sends and receives audio/video, and the audience receives audio/video with the sending function disabled. |
A user ID (UID) identifies a user in the channel. Each user in the same channel should have a unique user ID.
A stream is an object that contains audio/video data. Users in a channel can publish the local stream and subscribe to the remote streams from other users.
Publishing is the action of sending the user's audio and/or video data to the channel. Usually, the published object is a media stream created by the audio data sampled from a microphone and/or the video data captured by a camera. Developers can also publish media streams from other sources, including an online music file and the user's screen.
After publishing succeeds, the SDK continues sending media data to other users in the channel. By publishing one's stream and subscribing to others' streams, users have real-time voice or video calls with each other.
Subscribing is the action of receiving media streams published to the channel. A user can receive other users' audio and/or video data by subscribing to their streams. A user can subscribe to one or more streams published by other users. Developers can either directly play the subscribed streams or process them, for example by taking screenshots, or recording the streams.