License 是声网服务的一种计费模式。在 IoT 场景中,声网通过设备 License 对单个设备进行收费,每个设备的 License 是唯一的。在 License 有效期内,不再对通话时长进行收费。
通常 IoT 厂商会预估设备的出货量与音视频用量,向声网采购 License 并激活,再以一机一码的形式将 License 烧录在设备中。下图展示了设备 License 的整体使用流程:
如需申请使用 License,联系 sales@agora.io 并提供以下信息:
名称 | 说明 |
---|---|
品类 | License 的品类: |
企业 ID (CID) | 声网分配给每个企业 (组织) 的唯一标识。你可以注册账号并在控制台的账号设置页面获取 CID。 |
License 类型 | License 的类型: 声网推荐你在集成测试时选用测试 License,正式上线前改用正式 License。详见测试 License 和正式 License。 |
库存量单位 (SKU) | 设置 License 的能力集,包含以下参数:
|
有效期 | License 的有效期: |
申请数量 | 申请的 License 数量。 |
启用 License 的项目 ID (App ID) 列表 | App ID 为声网分配给每个项目的唯一标识,从属于 CID。你可以为指定 App ID 启用 License 功能。你可以创建项目并在控制台的项目管理页面获取 App ID。 |
是否设置最高同时在线人数 (PCU) 限制 | 启用 PCU 限制后,你可以限制 CID 或 App ID 维度上同时接入 SDK 的最大人数。 |
License 申请通过后,License PID 会关联到你的 CID 下,你可以在控制台的 License 用量页面查看 License 的 PID 和使用情况。
收到声网 License 后,参考本节信息和 License RESTful API 的基本信息调用 RESTful API 激活 License。
POST
https://api.sd-rtn.com/dabiz/license/v2/active
查询参数
在请求路径中传入以下查询参数:
参数 | 类型 | 描述 |
---|---|---|
pid |
String | 由 SKU、有效期、品类定义的 License 标识。详见 PID。 |
licenseKey |
String | 设备的唯一标识。例如设备的 SN 号、Mac 地址等。字符串长度需小于 64 字节。 |
appid |
String | 声网分配给每个项目的唯一标识。 |
请求路径
https://api.sd-rtn.com/dabiz/license/v2/active?pid=02F5xxxxxxxxxxxxxxxxxxxxxxxxEC30&licenseKey=111&appid=a6d6xxxxxxxxxxxxxxxxxxxxxxxxf75e
如果状态码为 200
,则请求成功,响应包体中包含如下参数:
参数 | 类型 | 描述 |
---|---|---|
license |
String | 激活的 License 的值。 |
skuView |
Array | SKU 能力集:
|
如果状态码不为 200
,则请求失败。你可以根据返回的 状态码 和响应包体中 message
字段的描述进行错误排查。
请求成功的响应示例:
{
"code": 200,
"data": {
"license": "1D65xxxxxxxxxxxxxxxxxxxxxxxx6016",
"skuView": {
"product": 1,
"name": "演示申请01",
"mediaType": 1,
"minutes": 100,
"period": "00:00~23:59"
}
}
}
成功激活 License 后,你需要在 SDK 中使用 License 并在设备中烧录 License,流程图如下:
操作步骤如下:
从服务端接收已激活的 License。
写入 License,确保每个设备中写入的 License 是正确且唯一的。常见的两种写入方式如下,你可以根据实际需求自行实现:
设备读取 License:
在 RTSA Lite SDK 中,调用 agora_rtc_init
并在 rtc_service_option_t
的 license_value
参数中传入 License。
RTSA Lite SDK 会在用户
加入频道时自动验证 License。
on_license_validation_failure
回调,你可以根据收到的错误码处理问题。如需继续使用声网服务,为不影响你的业务,声网推荐你至少在 License 到期前 30 天联系 sales@agora.io 申请续期。续期申请通过后,你可以参考本节信息和 License RESTful API 的基本信息调用 RESTful API 续期 License。
POST
https://api.sd-rtn.com/dabiz/license/v2/renew
查询参数
在请求路径中传入以下查询参数:
参数 | 类型 | 描述 |
---|---|---|
appid |
String | 声网分配给每个项目的唯一标识。 |
pid |
String | 由 SKU、有效期、品类定义的 License 标识。详见 PID。 |
license |
String | 续期的 License。 |
请求路径
https://api.sd-rtn.com/dabiz/license/v2/renew?pid=4750xxxxxxxxxxxxxxxxxxxxxxxx6270&license=85B3xxxxxxxxxxxxxxxxxxxxxxxx656F&appid=a6d6xxxxxxxxxxxxxxxxxxxxxxxxf75e
如果状态码为 200
,则请求成功。
如果状态码不为 200
,则请求失败。你可以根据返回的 状态码 和响应包体中 message
字段的描述进行错误排查。
请求成功的响应示例:
{
"code": 200,
"message": "license续期成功"
}
本节介绍所有声网控制台 License RESTful API 的基本信息。
所有请求都发送给域名:api.sd-rtn.com
。
声网控制台 RESTful API 仅支持 HTTPS 协议。发送请求时,你需要使用声网提供的客户 ID 和客户密钥生成一个 Base64 算法编码的凭证,并填入 HTTP 请求头部的 Authorization
字段中。详见如何在 RESTful API 中进行 HTTP 基本认证和 Token 认证。
对于每个声网账号(非每个 App ID),本页每个 API 的调用频率上限为每秒 10 次。如果调用频率超出限制,参考如何处理服务端 RESTful API 调用超出频率限制优化调用频率。
PID
PID 是由 SKU、有效期、品类定义的 License 标识。
无论 License 的申请数量和申请批次,只要 SKU、有效期、品类不变,申请的 License 均归属于同一个 PID。License 申请通过后,你可以在控制台的 License 用量页面查看一批 License 的 PID 和使用情况。
接下来,你可以调用激活接口将 PID 下的 License 额度关联给指定设备。
licenseValue
licenseValue 是每个 License 的标识。
用户调用续期接口将续期额度关联到 License 时,传入 licenseValue 指定要续期的 License。
查询 licenseValue 的方式有以下两种:
licenseKey
licenseKey 是设备的唯一标识。例如设备的 SN 号、Mac 地址等。字符串长度需小于 64 字节。
用户调用激活接口为某个设备激活 License 时,传入 licenseKey 消耗一个 License。此外,用户可以执行预授权操作,仅在白名单中的 licenseKey 可以通过校验激活 License。
为方便你测试和使用 SDK,声网提供测试 License 和正式 License,区别如下:
声网推荐你先使用测试 License,在产品正式上线前,参考如下步骤改用正式 License:
agora_rtc_init
并在 rtc_service_option_t
的 license_value
参数中传入新的 License。