一、配网流程图

图1:IRIS配网完整流程图
二、流程说明与对接
(一)App端实作
App读取Device Profile中的 pairing mode 数组如下:
"pairing_mode": [
{
"flag": "iris"
}
]
App按以下Json格式生成QRCode:
{"r":"","s":"","ss":"","p":"","re":""}
1. 二维码参数说明
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
r | string | 是 | realm,设备上传信息时需填入此参数 |
s | string | 是 | sessionId,设备上传信息时需填入此参数 |
ss | string | 是 | wifi ssid,设备需配置的wifi网络 |
p | string | 是 | wifi password,设备配置wifi网络的密码 |
re | string | 是 | region,根据设备出货的区域访问对应的iris服务器 |
注:App端对以上定义的参数的内容(例如:特殊字符、中文等)未做任何转换处理。
(二)设备端实作
设备端解码出QRCode内容后,参考以下步骤完成对接流程:
1. 设备端读取QRCode中的 ss 和 p 参数,将设备配置到该WiFi网络下。
2. 设备端读取QRCode中的 r、s 和 re 参数,将参数带入HTTP请求中,上传给IRIS服务器。
1. HTTP请求说明
请求URL:
- https://{iris_domain}/iris/api/v1/prevali/session/{sessionId}?realm={realm}
请求方式:post
Request Headers:
- Content-Type:application/json
2. Query Params参数说明
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| realm | string | 是 | 此处为取QRCode中的 r 参数。 |
| sessionId | string | 是 | 此处为取QRCode中的 s 参数。 |
3. Body参数说明
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| secretData | object | 是 | 建议带入credential 和 udid |
| credential | string | 是 | 设备的credential |
| udid | string | 是 | 设备的udid |
4. credential生成方式
例如设备的信息如下:
UID:UUUUUUUUUUUUUUUUUUUU,
Authkey:00000000
Av account: admin
Av passwd: 88888888
使用JSON格式组装信息:
{
"av": "88888888",
"ak": "00000000", // 如果没使用authkey,则不需此字段
"identity": "admin"
}
进行base64编码生成credential:
ewoJ4oCcYXbigJ06IOKAnDg4ODg4ODg44oCdLAoJ4oCcYWvigJ06IOKAnDAwMDAwMDAw4oCdLAoJ4oCcaWRlbnRpdHnigJ06IOKAnGFkbWlu4oCdCn0=
5. 启动P2P模块
关于设备端如何启用P2P模块,请参考:基于AVAPIs模块开发网络摄像机-设备端
三、示例
- App按以下Json格式生成QRCode:
{"r":"kalayapp-cn","s":"579vca7h8wcj3g2wg1a9","ss":"TUTK-GUEST","p":"hshhs","re":"cn"}
- 最终设备上传给IRIS服务器的信息为:
请求URL:
- post:https://cn-iris-tutk.kalay.net.cn/iris/api/v1/prevali/session/579vca7h8wcj3g2wg1a9?realm=kalayapp-cn
Request Headers:
- Content-Type:application/json
Body:
{
"secretData":{
"credential":"ewoJ4oCcYXbigJ06IOKAnDg4ODg4ODg44oCdLAoJ4oCcYWvigJ06IOKAnDAwMDAwMDAw4oCdLAoJ4oCcaWRlbnRpdHnigJ06IOKAnGFkbWlu4oCdCn0=",
"udid":"UUUUUUUUUUUUUUUUUUUU"
}
}
