Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
150 lines (84 sloc) 8.38 KB

title: Agora Key Terms description: platform: All Platforms updatedAt: Fri Nov 09 2018 08:26:32 GMT+0000 (UTC)

Agora Key Terms

Learn about the key terms of the Agora platform.

Basics

Things you need to know before using the Agora SDK.

Agora Dashboard

Agora Dashboard is a platform provided by Agora for you to create and manage your projects. After signing up at Agora Dashboard, you can create projects, get App IDs, view your usage statistics, analyze the quality of your calls, and check your bills.

App ID

App IDs are issued to app developers by Agora to identify the projects and organizations. After signing up at Agora Dashboard, you can create multiple projects, and each project will have a unique App ID. See Getting an App ID.

All communication sessions created across the Agora SD-RTN (Software Defined Real-time Network) with one App ID are isolated from all other sessions with different App IDs. Communication sessions with different App IDs are not connected or related. Statistics, management, and billing are separately associated based on each App ID. If an organization develops independently different apps by different teams, the apps should use different App IDs. However, if the apps need to communicate with each other, a single App ID should be used.

App Certificate

Agora provides an App Certificate for generating dynamic keys. You can enable the App Certificate in the Agora Dashboard. See Getting an App Certificate.

Dynamic Key

Using your App ID is simple and sufficient for initial app development. However, a person can illicitly obtain your App ID to develop apps and join your sessions billed to you. To prevent this and to secure your apps, Agora recommends you use Dynamic Keys for large-scale production apps.

Dynamic Keys are generated within the server-side code using an App Certificate. The App Certificate is not accessible in any client code, which makes using the Dynamic Key more secure than the static App ID.

Dynamic Keys have expiry dates and contain client permissions, such as different role privileges (host and audience).

Based on the SDK version, the Dynamic Key can be a Channel Key or a Token, see Security Keys for details.

SD-RTN

Agora’s audio and video transmissions rely on Agora's self-built SD-RTN (Software Defined Real-time Network), a virtual and UDP (User Datagram Protocol)-based network architecture designed specifically for real-time communications. By deploying software networking units, which work in synergy with one another, at different data centers across the Internet, Agora managed to add a virtual layer. To ensure stable transmission and low latency, particularly on weak networks, the SD-RTN automatically assigns an optimal path according to the following node conditions in real-time:

  • Transmission status
  • Load conditions
  • Distance to the users
  • Response time

SDK Core Concepts

The Agora SDKs are a set of API methods (engine interfaces) and callbacks (events).

  • Method: The client calls the API methods to implement the features provided by the Agora SDKs.
  • Callback: Feedback sent from the Agora SDKs to the client on a local or remote event that has happened. A remote event is a callback of a remote user in the channel and transmits through the UDP channel that is not 100% reliable.

For details on specific methods and callbacks, see the Agora API Reference:

Channel

As an analogy, if we imagine an app being a building, a channel will be a room in the building. A channel is created when the first user joins the channel and is automatically destroyed when the last user leaves the channel. When entering a room in a building, you need a key to open the door. Similarly, when joining a channel, you need an App ID or Dynamic Key for authentication.

Channel Profile

The SDK applies different optimization methods according to the channel profile. Users in the same channel must use the same 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.

uid

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

If you leave the uid empty or set it as 0, the SDK will automatically assign a uid for you.

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 a stream describes the action of a user sending the local audio/video data to other users in the channel after joining a channel.

In a live broadcast channel, only the hosts can publish streams.

Subscribe

Subscribing to the streams describes the action of the user receiving the audio/video streams published (sent) by other users in the channel after joining a channel.

Dual-stream Mode

Dual streams are a hybrid of a high-video stream and a low-video stream. The publisher can choose to enable the dual-stream mode to send both video streams at the same time.

High video and low video are relative concepts. A low-video stream consumes less bandwidth and is suitable for poor network conditions.

Stream Type Description
High-video High bitrate, and high-resolution video stream.
Low-video Low bitrate, and low-resolution video stream.

Stream Fallback

The publisher/subscriber can enable stream fallback to send/receive the low-video stream or audio-only stream in poor network conditions. Stream fallback only works when the dual-stream mode is enabled.

Live Broadcast Core Concepts

A live broadcast is an Internet broadcast of a live performance through an app, where the viewers are called the audience and the performer is called the host.

Agora’s products allow you to implement the live broadcast feature on an app:

  • To give a live broadcast, create a channel and join the channel as the host role.
  • To view a live broadcast, join the channel created by the host as the audience role.

Host

In a live broadcast channel, the hosts are users who can publish and subscribe to streams.

Audience

In a live broadcast channel, an audience is a group of users who can only subscribe to streams. The audience cannot publish streams.

Hosting-in

An audience can apply to become a host to interact directly with the existing hosts, namely hosting-in.

CDN Live Streaming

The process of publishing streams into the CDN (Content Delivery Network) is called CDN live streaming, where users can view the live broadcast through a web browser.

Transcoding

Transcoding is used in CDN live streaming when multiple hosts are in the channel.

In CDN live streaming, the audio and video streams sent to the SD-RTN are transferred into an RTMP (Real-Time Messaging Protocol) stream and pushed to the CDN. If there are multiple hosts, their streams need to be combined into a single stream by transcoding.

Transcoding sets the audio/video profiles and the picture-in-picture layout for the stream to be pushed to the CDN.

Agora does not recommend transcoding in the case of a single host.