Restrict media zones
When a user joins a channel, Voice 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 app by specifying the Agora SD-RTN™ media zone users connect to.
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 |
- 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:
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 app.
You specify the access zones by setting the RtcEngineConfig.mAreaCode
parameter when calling the create
method to create an RtcEngine
instance. The available zones are:
AREA_CODE_GLOB
: Global (Default)AREA_CODE_CN
: Mainland ChinaAREA_CODE_NA
: North AmericaAREA_CODE_EU
: EuropeAREA_CODE_AS
: Asia excluding Mainland ChinaAREA_CODE_JP
: JapanAREA_CODE_IN
: India
Media zones support bitwise operations.
Include a media zone
To limit access to servers in only one zone, such as North America, set config.mAreaCode = AREA_CODE_NA;
before creating the RtcEngine
instance:
Exclude a media zone
To exclude servers in a zone, such as Mainland China, set config.mAreaCode = AREA_CODE_GLOB ^ AREA_CODE_CN;
before creating the RtcEngine
instance:
Reference
This section contains content that completes the information on this page, or points you to documentation that explains other aspects to this product.