可视对讲服务
1. 服务器管理
1.1 查询服务器列表
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipserver/query | 1.0.0 | 否 |
入参
无
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
data | JSONArray | |
-> serverId | String | 服务器id |
-> hostIp | String | 服务器地址 |
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": {
[
{
"serverId": "xxx",
"hostIp": "192.0.2.0"
},
{
"serverId": "xxx",
"hostIp": "192.0.2.1"
}
]
}
1.2 绑定服务器
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipserver/bind | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
serverId | String | 是 | 服务器id |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
请求示例
{
"serverId": "xxx"
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
}
1.3 查询当前绑定SIP服务器
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipserver/getbind | 1.0.0 | 否 |
入参
无
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
data | JSONObject | |
-> serverId | String | 服务器id |
-> hostIp | String | 服务器地址 |
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": {
{
"serverId": "xxx",
"hostIp": "192.0.2.0"
}
}
}
2. 对讲服务
2.1 创建SIP账号
需要指定type,1为⻔禁机类型,⽤于⻔禁机,当⼀路APP正在调看⻔禁机时,若发起第⼆路APP调看,则会加⼊会
话,可以实现多个APP同时调看同⼀台⻔禁机;0为APP类型,⽤于APP,当SIP号在通话时,则⽆法加⼊。
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipservice/sip/add | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
count | Integer | 是 | 创建数量,最⼤100 |
type | Integer | 是 | 类型,0 - APP, 1 - ⻔禁机 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
data | JSONArray | 数据列表 |
->sipNumber | String | SIP号,⻓度不超过50个字符 |
->sipPassword | String | SIP密码,⻓度不超过50个字符 |
->sipHost | String | SIP服务器地址 |
->sipPort | Integer | SIP服务器端⼝ |
->type | Integer | 类型,0 - APP, 1 - ⻔禁机 |
->createTime | Long | 创建时间戳(单位毫秒) |
请求示例
{
"count": 2,
"type": 1
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": [
{
"sipNumber": "obog97v34g",
"sipPassword": "o3yira",
"sipHost": "sip.iot.aliyun.com",
"sipPort": 6050,
"type": 1,
"createTime":1577085030000
}
]
}
2.2 删除SIP账号
需要指定type,1为⻔禁机类型,⽤于⻔禁机,当⼀路APP正在调看⻔禁机时,若发起第⼆路APP调看,则会加⼊会
话,可以实现多个APP同时调看同⼀台⻔禁机;0为APP类型,⽤于APP,当SIP号在通话时,则⽆法加⼊。
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipservice/sip/delete | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
sipNumberList | JASONArray<String> | 是 | 待删除SIP号列表 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
请求示例
{
"sipNumberList": [
"obog97v34g",
"vbog97v34g"
]
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
}
2.3 查询SIP账号详情
若返回错误为SYS_0002,表示SIP号⽆效或不存在。
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipservice/sip/detail/get | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
sipNumber | String | 是 | SIP号 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
data | JSONObject | 数据信息 |
->sipNumber | String | SIP号,⻓度不超过50个字符 |
->sipPassword | String | SIP密码,⻓度不超过50个字符 |
->sipHost | String | SIP服务器地址 |
->sipPort | Integer | SIP服务器端⼝ |
->type | Integer | 类型,0 - APP, 1 - ⻔禁机 |
->createTime | Long | 创建时间戳(单位毫秒) |
请求示例
{
"sipNumber": "obog97v34g"
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": {
"sipNumber": "obog97v34g",
"sipPassword": "o3yira",
"sipHost": "sip.iot.aliyun.com",
"sipPort": 6050,
"type": 1,
"createTime":1577085030000
}
}
2.4 更新SIP账号密码
⽬前⼀个SIP账号同时只允许在⼀个客户端登录,因此针对可能在多端同时登录的SIP账号,请在登录SIP账号前,调⽤该接⼝更新密码,并返回新密码,则之前的旧密码失效。
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipservice/sip/password/update | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
sipNumber | String | 是 | SIP号 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
data | JSONObject | 数据信息 |
->sipPassword | String | SIP密码,⻓度不超过50个字符 |
请求示例
{
"sipNumber": "obog97v34g"
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": {
"sipPassword": "12345678"
}
}
2.5 创建SIP组
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipservice/group/add | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
count | Integer | 是 | 创建数量,最⼤100 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
data | JSONArray | 数据信息 |
->groupID | String | SIP组ID,⻓度不超过50个字符 |
->createTime | Long | 创建时间戳(单位毫秒) |
请求示例
{
"count": 2
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": [
{
"groupID": "obog97v34g",
"createTime":1577085030000
},
{
"groupID": "abcg97v34g",
"createTime":1577085030000
}
]
}
2.6 删除SIP组
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipservice/group/delete | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
groupList | JASONArray<String> | 是 | 待删除SIP组号列表 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
请求示例
{
"groupList": [
"obog97v34g",
"vbog97v34g"
]
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
}
2.7 SIP账号分组
只有SIP账号type为0,即APP端使⽤的SIP账号,才能⽀持分组。
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipservice/group/sip/add | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
groupID | String | 是 | SIP组ID |
sipNumberList | JASONArray<String> | 是 | SIP号列表 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
请求示例
{
"groupID": "11111",
"sipNumberList": [
"obog97v34g",
"tb2yz0ca17"
]
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
}
2.8 SIP账号从组里删除
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipservice/group/sip/delete | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
groupID | String | 是 | SIP组ID |
sipNumberList | JASONArray<String> | 是 | SIP号列表 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
请求示例
{
"groupID": "11111",
"sipNumberList": [
"obog97v34g",
"tb2yz0ca17"
]
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
}
2.9 查看组下SIP账号列表
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/sipservice/group/sip/list | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
groupID | String | 是 | SIP组ID |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
data | JASONArray | SIP账号列表 |
->sipNumber | String | SIP号,⻓度不超过50个字符 |
->sipPassword | String | SIP密码,⻓度不超过50个字符 |
->sipHost | String | SIP服务器地址 |
->sipPort | Integer | SIP服务器端⼝ |
->type | Integer | 类型,0 - APP, 1 - ⻔禁机 |
->createTime | Long | 创建时间戳(单位毫秒) |
请求示例
{
"groupID": "11111"
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": [{
"sipNumber": "obog97v34g",
Introduction
10
"sipPassword": "o3yira",
"sipHost": "sip.iot.aliyun.com",
"serverPort": 6050,
"type": 0,
"createTime":1577085030000
},
{
"sipNumber": "tb2yz0ca17",
"sipPassword": "p14lvq",
"sipHost": "sip.iot.aliyun.com",
"serverPort": 6050,
"type": 0,
"createTime":1577085030000
}]
}
3. 设备与房间权限
3.1 颁发门禁机设备SIP Number
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/videointercom/sipnumber/sync | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
iotId | String | 是 | 门禁对讲机iotId |
sipNumber | String | 是 | SIP Number |
password | String | 是 | password |
host | String | 是 | SIP 服务器地址 |
port | String | 是 | SIP 服务器端口 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
请求示例
{
"iotId": "xxx",
"sipNumber": "xxx",
"host": "x.x.x.x",
"port": "8080"
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
}
3.2 查询门禁机设备SIP Number
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/videointercom/sipnumber/get | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
iotId | String | 是 | 门禁对讲机iotId |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
data | String | SIP Number |
->sipNumber | String | SIP Number |
->host | String | SIP 服务器地址 |
->port | String | SIP 服务器端口 |
请求示例
{
"iotId": "xxx"
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": {
"sipNumber": "xxxx",
"host": "x.x.x.x",
"port": "8080"
}
}
3.3 添加SIP组与房间编号映射关系
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/videointercom/map/add | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
iotId | String | 是 | 门禁对讲机iotId |
maps | JSONArray | 是 | 映射关系列表 |
-> roomId | String | 是 | 房间ID |
-> groupId | String | 是 | SIP组ID |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
请求示例
{
"iotId": "xxx",
"maps": [
{
"roomId": "room1",
"groupId": "group1"
},
{
"roomId": "room2",
"groupId": "group2"
}
]
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
}
3.4 删除SIP组与房间编号映射关系
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/videointercom/map/delete | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
iotId | String | 是 | 门禁对讲机iotId |
maps | JSONArray | 是 | 映射关系列表 |
-> roomId | String | 是 | 房间ID |
-> groupId | String | 是 | SIP组ID |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
请求示例
{
"iotId": "xxx",
"maps": [
{
"roomId": "room1",
"groupId": "group1"
},
{
"roomId": "room2",
"groupId": "group2"
}
]
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
}
3.5 查询SIP组与房间编号映射关系
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/videointercom/map/query | 1.0.1 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
iotId | String | 是 | 门禁对讲机iotId |
roomId | String | 否 | 房间ID |
groupId | String | 否 | SIP组ID |
pageNo | Integer | 是 | 请求的页码,详细见“分页参数”定义。 |
pageSize | Integer | 是 | 每页的记录数,详细见“分页参数”定义。 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
data | JSONObject | |
-> total | Integer | 总数 |
-> pageNo | Integer | 页码 |
-> pageSize | Integer | 页码大小 |
-> data | JSONArray | 映射关系列表 |
--> roomId | String | 房间ID |
--> groupId | String | SIP组ID |
请求示例
{
"iotId": "xxx",
"pageNo":1,
"pageSize":20
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": {
"total": 2,
"pageNo": 1,
"pageSize": 20,
"data": [
{
"roomId": "room1",
"groupId": "group1"
},
{
"roomId": "room2",
"groupId": "group2"
}
]
}
}
3.6 SIP呼叫事件通知订阅
呼叫事件topic
/broadcast/{aliyunUid}/vinotify
字段 | 类型 | 是否必传 | 备注 |
eventCode | String | 是 | 事件编号,1:呼叫事件 |
eventTime | Long | 是 | 事件发⽣时间戳(单位毫秒) |
source | String | 是 | 事件发起⽅,如呼叫事件,则为⻔禁机SIP号 |
targetType | String | 是 | ⽬标类型,0 - SIP号;1 - SIP组 |
target | String | 是 | 事件⽬标⽅,如呼叫事件,则为组ID |
样例:
{
"eventCode": "xxx",
"eventTime": 1577085030000,
"source": "22222",
"targetType": 1,
"target": "11111"
}
数据格式数据订阅参考
https://gaic.alicdn.com/doc/homelink-aquarius2/yoqgpf.html
3.7 添加/更新房屋空间
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/videointercom/space/add | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
spaceId | String | 是 | 房屋空间 |
groupId | String | 是 | SIP组 |
roomId | String | 是 | 房间ID |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
请求示例
{
"spaceId": "xxx",
"groupId": "xxx",
"roomId": "xxx"
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
}
3.8 删除房屋空间
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/videointercom/space/delete | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
spaceId | String | 是 | 房屋空间 |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
请求示例
{
"spaceId": "xxx"
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
}
3.9 查询房屋空间
接口定义
path | 版本 | 是否需要登录 |
/entrance/paas/videointercom/space/get | 1.0.0 | 否 |
入参
字段 | 类型 | 是否必传 | 备注 |
spaceId | String | 否 | 房屋空间(与SIP组二选一) |
groupId | String | 否 | SIP组(与房屋空间二选一) |
出参
字段 | 类型 | 备注 |
code | Integer | 返回码,200为成功 |
message | String | 返回信息 |
data | JSONObject | |
-spaceId | String | 房屋空间 |
-groupId | String | SIP组 |
-roomId | String | 房间ID |
请求示例
{
"spaceId": "xxx"
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data": {
"spaceId": "xxx",
"groupId": "xxx",
"roomid": "xxx"
}
}
4. 数据模型定义
模型ID:iot_entrance_videointercom_record_model
模型名称:可视对讲通行记录
模型版本:1.1
属性列表:
属性名称 | 属性标识符 | 数据类型 | 数据描述 | 必须 |
租户 | tenantId | String | 租户 | 是 |
IoT设备标示 | iotId | String | 对讲机IoT设备标示,如果为固话对讲则为空 | 否 |
源类型 | sourceType | String | 0 - 云对讲 | 是 |
事件信息 | eventInfo | String | 类型为云对讲:{ "sipNumber": "xxx", "groupId": "xxx", "roomId": "xxx", "spaceId": "xxx"} | 是 |