A class defining the properties of the config parameter in the createClient method.


  • Ensure that you do not leave mode and codec as empty.
  • Ensure that you set these properties before calling Client.join.

Set the Channel Profile

The table below lists the corresponding channel profile settings between different versions of the Web SDK:

Before v2.3 From v2.3
createClient({mode: "interop"}) createClient({mode: "live", codec: "vp8"})
createClient({mode: "h264_interop"}) createClient({mode: "live", codec: "h264"})

Set the Proxy Server

Define proxyServer and turnServer if you need to set a proxy server. For a tutorial on deploying the Proxy server on a Web client, see Deploy the Enterprise Proxy.


Proxy services by different service providers may result in slow performance if you are using the Firefox browser. Therefore, Agora recommends using the same service provider for the proxy services. If you use different service providers, Agora recommends not using the Firefox browser.


Sample Code

var config = {
     mode: "live",
     codec: "vp8",
     proxyServer: "YOUR NGINX PROXY SERVER IP",
     turnServer: {
         turnServerURL: "YOUR TURNSERVER URL",
         username: "YOUR USERNAME",
         password: "YOUR PASSWORD",
         udpport: "THE UDP PORT YOU WANT TO ADD",
         tcpport: "THE TCP PORT YOU WANT TO ADD",
         forceturn: false
var client = AgoraRTC.createClient(config);```


  • ClientConfig




codec: "vp8" | "h264"

The codec the Web browser uses for encoding and decoding.

  • "vp8": Sets the browser to use VP8 for encoding and decoding.
  • "h264": Sets the browser to use H264 for encoding and decoding.

Note: Set codec as "h264" as long as Safari is involved in the call.


mode: "live" | "rtc"

The channel profile.

Agora Web SDK needs to know the application scenario to apply different optimization methods.

Currently Agora Web SDK supports the following channel profiles:

  • "live": Sets the channel profile as live broadcast.
  • "rtc": Sets the channel profile as communication.


If you need to communicate with Agora Native SDK, Agora recommends the following settings:

  • For Native SDK v2.3.2 and later:
    • Set mode as "rtc" or "live" if the Native SDK uses the communication channel profile.
    • Set mode as "live" if the Native SDK uses the live broadcast channel profile.
  • For Native SDK before v2.3.2, set mode as "live" regardless of which channel profile the Native SDK uses.


If you set mode as "rtc", the Agora Recording SDK is not supported.

Optional proxyServer

proxyServer: string

Your Nginx server domain name.

Enterprise users with a company firewall can use this property to pass signaling messages to the Agora SD-RTN through the Nginx Server.

Optional turnServer

turnServer: object

TURN server settings.

Enterprise users with a company firewall can use this property to pass audio and video data to the Agora SD-RTN through the TURN Server.

Type declaration

  • forceturn: boolean

    Sets whether to force data transfer by TURN Server:

    • true: Force data transfer.
    • false: (default) Not to force data transfer.
  • password: string

    Your TURN Server password.

  • Optional tcpport?: string

    The TCP port(s) you want add to TURN Server.

  • turnServerURL: string

    Your TURN Server URL address.

  • Optional udpport?: string

    The UDP port(s) you want to add to TURN Server.

  • username: string

    Your TURN Server username.