2.1. 媒体 REST API

2.1.1. 版本信息

v1.0.5, 2017/05/11

2.1.2. 接入和授权

请求说明: GET http://xx.yy.zz:8080/rtc/auth/valid HTTP/1.1

接口描述: MCU对客户端进行认证

参数 类型 必须 说明
access_key String 平台赋予客户端的key
digest String

digest为按一定规则生成的串,规则说明如下:

base64(hash_hmac(access_key,secret_key),

secret_key为平台赋予客户端和access_key匹配的串,用于安全认证

返回说明:

http 响应:json
{
    "ret": 0,
    "random": "random",
    "key": "key"
}

access_token计算规则: access_token = base64(hash_hmac(random:key, secret_key))

主要返回码: 0,401,504

2.1.3. 创建房间

请求说明: GET http://xx.yy.zz:8080/rtc/room/create HTTP/1.1

接口描述: 创建房间

参数 类型 必须 说明
access_token String 认证成功后根据规则生成的串
topic String 房间主题,小于150字节
owner_id String 房间创建者ID
room_mode enum

1:mcu自由模式

2:mcu主持人模式

3: P2P自由模式

4: P2P主持人模式

目前1,2的逻辑基本一致的,3,4用于P2P的方式

host_password String 主持人密码,如果加入房间时密码和主持人密码那边用户的角色为主持人
max_video Number 房间最大视频数
max_audio Number 房间最大音频数
attendee_max Number 房间最大人数
room_extend_id String 需要保证唯一最好是UUID,否则创建房间有可能失败,room_id和room_extend_id为同一个值

返回说明:

http 响应:json
{
    "ret": 0,
    "room_id": "room_id"
}

room_id为房间号

主要返回码: 0,407,602,700

2.1.4. 根据房间号获取房间信息

请求说明: GET http://xx.yy.zz:8080/rtc/room/get HTTP/1.1

接口描述: 根据房间号获取房间

参数 类型 必须 说明
access_token String 认证成功后根据规则生成的串
room_id String 房间号

返回说明:

http 响应:json
{
    "ret": 0,
    "id": 1,
    "room_id": "room_id",
    "topic": "topic",
    "room_status": 0,
    "owner_id": "owner_id",
    "host_password": "host_password",
    "attendee_max": "attendee_max",
    "max_audio": "max_audio",
    "max_video": "max_video",
    "room_extend_id": "room_extend_id",
    "room_mode": "room_mode"
}

主要返回码: 0,404,602

2.1.5. 删除房间

请求说明: GET http://xx.yy.zz:8080/rtc/room/del HTTP/1.1 接口描述: 根据房间号获取房间

参数 类型 必须 说明
access_token String 认证成功后根据规则生成的串
room_id String 房间号
http 响应:json
{
    "ret": 0,
    "room_id": "room_id"
}

主要返回码: 0,404,602

2.1.6. 获取房间mcu地址

请求说明: GET http://xx.yy.zz:8080/sdk/get_mcu HTTP/1.1

接口描述: 根据房间号获取房间

参数 类型 必须 说明
access_token String 认证成功后根据规则生成的串
room_id String 房间号
http 响应:json
{
    "ret": 0,
    "addr": "addr"
}

主要返回码: 0,407,410,411

2.1.7. 根据房间号获取房间信息

请求说明: GET http://xx.yy.zz:8080/rtc/room/get_room_info HTTP/1.1

接口描述: 根据房间号获取房间

参数 类型 必须 说明
access_token String 认证成功后根据规则生成的串
room_id String 房间号
http 响应:json
{
    "ret": 0,
    "user_list": [
      {
         "user_name": "ming15",
         "user_id": "2eba97ef-7f6b-4d5f-b196-800ef6983192"
      }
    ]
}

主要返回码: 0,404,602

2.1.8. 强制房间中的用户下线

请求说明: GET http://xx.yy.zz:8080/rtc/force_offline_mcu HTTP/1.1

接口描述: 用户踢下线

参数 类型 必须 说明
access_token String 认证成功后根据规则生成的串
room_id String 房间号
user_id String 用户ID
http 响应:json
{
    "ret": 0,
    "msg": “succ”,
}

主要返回码: 0,404,602,417,428

2.1.9. 错误码表

ret 详细描述
0 成功
401 认证失败
404 房间未找到
405 licence过期
407 参数错误
408 http请求不支持
409 http内部超时
410 没有可用MCU
411 超过最大licence
504 超时
602 access_token不正确
700 数据库错误
701 没有P2P权限
417 MCU不在线
428 没有找到房间分配给了那个mcu
429 用户不在线
416 房间被关闭