Agora.io provides building blocks for you to add real-time voice and video communications through a simple and powerful SDK. You can integrate the Agora SDK to enable real-time communications in your own application quickly.

Agora SDK

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
Audio Broadcasting
The Voice SDK package size is smaller than the Video SDK package size and applies to voice-only calls and voice-only live broadcasts.
Video SDK Video Call
Video Broadcasting
Provides both voice and video functions.
Gaming SDK Interactive Gaming Optimized for gaming applications. The package size is about 1 MB.
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 Recording
Cloud Recording
Records and saves voice/video calls and live broadcasts on your server.

Self-built infrastructure

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™. Agora deploys over 250 data centers worldwide that use intelligent dynamic routing algorithms to achieve millisecond latency and ensure high availability of Agora's service.

Feature Description
Global network coverage
  • Covers 200+ countries and regions
  • Covers dozens of small and medium telecommunication providers in China
  • Mass access capability
  • Supports multiple intelligent terminal access
  • A single channel can support a million people online at the same time
  • QoS (Quality of Service) capability enhancement
  • Prevents network congestion in advance
  • Weak network anti-loss guarantee
  • QoS-based dynamic routing
  • Comprehensive assessment of network resources
  • QoS optimal path guarantee
  • SLA (Service Level Agreement) guarantee
  • 7 × 24 support, including ticketing system/IM/community
  • One-to-one VIP service
  • Global network reliability
  • Global network availability at 99.999%
  • Invisible core business, such as anti-DDoS
  • Compatibility and Interoperability
  • Support for 6000+ devices
  • Support for mainstream web browsers, including Google Chrome, Safari, and Firefox
  • Support for iOS, Android, the Web, Windows, macOS, Electron, Linux, CoCos, Unity, and so on
  • UDP (User Datagram Protocol) optimization Optimizes multiple private protocols based on the UDP
    Self-developed audio and video codecs
  • Efficient use of network resources
  • Self-developed SOLO and NOVA codecs
  • Anti-packet-loss optimization
  • Algorithm for optimizing anti-packet-loss mechanism under weak network conditions
  • Audio anti-packet-loss rate of 70%
  • Self-developed audio and video codecs

    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.

    Audio

    • High-fidelity, 3D surround sound experience
    • 48 kHz full-band acquisition: Highly restored acoustic sound
    • 3A algorithm based on machine learning: Echo cancellation, automatic gain, and noise suppression
    • Audio enhancement: Stereo sound, 3D surround sound, sound localization, audio mixing, reverberation effects, in-ear monitoring, and voice changes

    Video

    • Immersive visual experience

    • Continuous network detection: Network detection before and after encoding, and network friendliness

    • Dynamic network flow control: Maintains a dynamic balance of network bandwidth resources

    • Highly efficient anti-loss coding products: Optimized coding algorithms and smooth video transmission that minimizes network impact

    • Packet loss compensation: Automatically repairs content to ensure the best experience

    • Visual enhancement: Image enhancement based on machine learning

    Key concepts

    Things you need to know before using the Agora SDK.

    Agora Console

    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:

    • Manage the account
    • Check and manage Agora projects and services
    • Get an App ID
    • Check call quality and usage
    • Check billing and make payments
    • Manage members and roles

    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

    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.

    For situations requiring high security, such as in a production environment, you must use a token for user authentication; otherwise, your environment is open to anyone who has your App ID.

    App Certificate

    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 token. See Enable the App Certificate.

    Token

    A token, also known as a dynamic key, is used by the Agora server for dynamic authentication.

    A token is used in situations requiring high security, such as in a production environment. You need a token for authentication when joining an RTC channel or when logging into the Agora RTM system.

    • For users of the Agora RTC SDK, Agora On-premise Recording SDK, or Agora Cloud Recording service, the Agora server uses a token to verify each user's App ID, privileges (for joining a channel and for publishing different types of streams), privilege expiration period, and token validity.
    • For users of the Agora RTM SDK, the Agora RTM server uses a token to verify each user's App ID, user ID, and token validity.

    See Set up Authentication for details.

    Channel

    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 identifies channels by channel name. 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.

    Channel profile

    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 Broadcast In a live broadcast 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.
    Gaming Any user in the channel can talk freely. This profile uses the codec with low-power consumption and low bitrate by default.
    The gaming profile applies to the Agora Gaming SDK only.

    User ID

    A user ID (UID) identifies a user in the channel. Each user in the same channel should have a unique user ID.

    Stream

    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.

    Publish

    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.

    Subscribe

    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.

    Developer tools and support

    • The Developer Center provides documentation for developers to integrate and use Agora SDKs, and for SDK and sample code downloads.
    • Agora Console is a self-service system that enables developers to monitor usage statistics, track the QoE, manage projects, manage account privileges, and submit tickets.
    • Agora GitHub and GitHub Community provide demos and use cases, which can also be found at the Developer Center.
    • 5 × 8 technical support. Developers can ask questions about integration on Stack Overflow, and submit tickets for quality issues.
    • Agora Analytics, a tool that tracks and analyzes the usage and quality of calls. You can use this tool to locate quality issues, find root causes, and fix the issues to improve the final user experience. See Agora Analytics Overview for more information.