Skip to main content
Android
iOS
macOS
Web
Windows
Electron
Flutter
React Native
React JS
Unity
Unreal Engine
Unreal (Blueprint)

Restrict media zones

When a user joins a channel, Video SDK automatically connects them to the Agora SD-RTN™ media zone that is geographically closest to the user. However, to meet the laws and regulations of the user's country, you may need to specify, or filter out connections to a specific geographical zone. Agora enables you to control and customize data routing in your game by specifying the Agora SD-RTN™ media zone users connect to.

information

This is an advanced feature suitable only for scenarios with access security restrictions.

Understand the tech

After you turn on the restricted media zones feature, the SDK only accesses the Agora server in the specified zone(s), irrespective of the geographical location of the user. As an example, the following table shows the outcome if you specify North America as the access zone, and users connect to Agora SD-RTN™ from North America and China respectively:

Designated access zone User's location Zone actually accessed by the SDK User experience
North America North America North America Normal
China Quality may be affected
information
  • If a server in the specified zone is not available, the SDK reports an error.
  • Due to cross-regional public internet between the designated zone and the geographical location where the app user is located, the audio and video experience may be affected.

The following figure shows the workflow you implement to restrict access to media zones:

Restrict media zones

Prerequisites

Ensure that you have implemented the SDK quickstart in your project.

Implement restricted media zones

This section shows you how to restrict access to media zones in your game.

By default, the SDK connects to the nearest Agora server. Set the areaCode property of RtcEngineContext when calling the initialize method to specify the access zone(s). After setting the access zone, the SDK only connects to Agora servers in the specified zone(s).

You can set the areaCode to:

  • AREA_CODE_GLOB: Global (Default)
  • AREA_CODE_CN : Mainland China
  • AREA_CODE_NA : North America
  • AREA_CODE_EU : Europe
  • AREA_CODE_AS : Asia except Mainland China
  • AREA_CODE_JP : Japan
  • AREA_CODE_IN : India
information

Media zones support bitwise operations.

Refer to the following code:

public virtual void SetupAgoraEngine()
{
// Create an instance of the video SDK engine.
agoraEngine = Agora.Rtc.RtcEngine.CreateAgoraRtcEngine();
// Set context configuration
CHANNEL_PROFILE_TYPE channelProfile = CHANNEL_PROFILE_TYPE.CHANNEL_PROFILE_LIVE_BROADCASTING;
region = AREA_CODE.AREA_CODE_NA;
RtcEngineContext context = new RtcEngineContext(_appID, 0, channelProfile,
AUDIO_SCENARIO_TYPE.AUDIO_SCENARIO_DEFAULT, region, null);
agoraEngine.Initialize(context);
// Enable the video module.
agoraEngine.EnableVideo();
// Set the user role as broadcaster.
agoraEngine.SetClientRole(CLIENT_ROLE_TYPE.CLIENT_ROLE_BROADCASTER);
// Attach the eventHandler
InitEventHandler();
}
Copy

Reference

This section contains content that completes the information on this page, or points you to documentation that explains other aspects to this product.

Video Calling