AgoraRTC

Introduction

Agora.io is on a mission to change the way the world communicates. Agora is known for developing the industry-leading real-time communication framework that serves over 10 billion minutes a month of real-time video, audio, and live interactive broadcasting.

Prerequisites

You must have an account with Agora.IO to interact with the API. Create your development account at: https://docs.agora.io/en

Note: There are certain factors that affect plugin's workload possibilities such as Bubble application plan, user’s connection bandwidth, type of connection and Agora limitations related to device and browser / OS version. Please follow Agora's and its plugin's documentation carefully to properly configure the plugin.

Getting Agora API Keys

  1. Sign up as developer: https://docs.agora.io/en

2. Open the Console (https://console.agora.io) , go to Project Management tab and create new project

3. In the pop-up window enter your project name and select APP ID + APP Certificate

4. Get the App ID and APP Certificate for your project

5. Place App ID and App Certificate in the Bubble > plugins settings tab:

You're all set to use plugin actions, events and states.

Plugin installation

Streaming

  1. Place Element to the page and set mode to 'Stream' and role to 'Host'

2. Place to another page Element and set mode to 'Stream' and role to 'Audience'

For streaming you need to generate token before start.

Generate Agora Token

And add this token in field

Real-Time Calls

Place element to the page, set mode to Real-time Call and set unique id for remote user group

Add an group to the page and set it id

AgoraRTC

New Element

Since AgoraRTC version 4 and below uses those dependencies that browsers now no longer support, version 4.5+ of the library was released. The new item works on the latest up-to-date version.

The new version of the library allows using only one element for both streaming and real time calls.

Fields

Title

Description

Type

Remote Users Group ID

Group where will be displayed video tracks of remote users.

text

Codec

The codec that the Web browser uses for encoding.

enum

Automatic change

Change automatic supported by the Web browser codec.

yes\no

Mode

Element use mode.

enum

Role

If mode is "Stream" this field change role of user.

enum

Log level

Sets the Agora log mode.

enum

About log levels:

DEBUG. Output all API logs.

INFO. Output logs of the INFO, WARNING and ERROR level.

WARNING. Output logs of the WARNING and ERROR level.

ERROR. Output logs of the ERROR level.

NONE. Do not output any log.

Logs are written to the console.

States

Title

Description

Type

Connected to room

Indicate if current user is connected to the room.

yes/no

Video is enabled

Indicate if current user video is enabled

yes/no

Microphone is enabled

Indicate if current user microphone is enabled

yes/no

List of cameras

Return list of all available by browser cameras

List of text

List of microphones

Return list of all available by browser microphones

List of text

Number of users

Return number of users in channel

Number

User Leave Reason

Reason why user leave channel

Text

Joined User uid

UID of joined user

Text

Leaved User uid

UID of leaved user

Text

User UID

Current User UID

Text

Current Used Microphone

Return label of current used microphone

Text

Current Used Camera

Return label of current used camera

Text

Possible User Leave Reason values:

  • "Quit": The user calls leave and leaves the channel.

  • "ServerTimeOut": The user has dropped offline.

  • "BecomeAudience": The client role is switched from host to audience.

Events

Title

Description

Joined

Is triggered then current user is joined to the channel

Agora is not compatible

Is triggered then Web browser not support AgoraRTC

User joined

Is triggered then an user is joined to the channel

User left

Is triggered then an user leave the channel

Actions

Join

Try to connect user to RTC or Stream

Title

Description

Type

Room Name

Name of room there to connect

Text

Enable video

Connect with video

yes/no

Enable audio

Connect with audio

yes/no

Token for streaming

Token generated by API Call for streaming

Text

Screen Sharing

Use screen sharing instead of camera

yes/no

Screen With Audio

Allow to share audio with screen sharing (only if supported by browser)

yes/no

Leave

Leave from current connected room.

Mute\Unmute

Mute or unmute himself.

Disable\enable Video

Disable or enable video from himself.

Set Camera Settings

Change camera and camera mode.

Settings must be applied before connecting

Title

Description

Type

Camera Label

Camera label. Can be find in state returned by element List of cameras

text

Optimization Mode

Transmission optimization mode. Whether to prioritize video quality or smoothness. Supported only in Chrome.

enum

Set Microphone Settings

Change microphone and microphone settings.

Settings must be applied before connecting

Title

Description

Type

Microphone Label

Label of microphone to set. Get it from state returned by plugin element List of microphones.

Text

Acoustic echo cancellation

Whether to enable acoustic echo cancellation.

Yes/No

Audio gain control

Whether to enable audio gain control.

Yes/No

Automatic noise suppression

Whether to enable automatic noise suppression.

Yes/No

Get Number of users

Publish number of users in state Number of users

Mute All

Mute all another users

Unmute All

Unmute all another users

Last updated

Was this helpful?