====== 会议管理 ======
----
环信使用 REST 的方式来对音视频会议进行管理操作,包括**创建会议**,**解散会议**,**获取会议**及**从会议中踢人**。
**注:**
* 原会议类型模式目前已经进行优化,用户可以直接使用普通模式, 大会议模式和直播模式将弃用。
* 在[[im:other:integrationcases:tc|TC Demo]]中,环信仅使用了**创建会议**,**解散会议**两个API,开发者可根据自身需求,选择使用。
====== REST API ======
音视频会议管理在集成过程中,可以使用以下4个接口来对会议进行管理操作。请查看以下 REST API 详细文档说明。
^名称^请求^Method^
|创建一个会议|/{orgName}/{appName}/conferences|POST|
|解散一个会议|/{orgName}/{appName}/conferences/{confrId}|DELETE|
|获取会议信息|/{orgName}/{appName}/conferences/{confrId}|GET|
|从会议中踢掉一个人|/{orgName}/{appName}/conferences/{confrId}/{userName}|DELETE|
===== 创建会议 =====
=== HTTP Request ===
^{{:im:server:basics:post.png?nolink&90|}}^/{org_name}/{app_name}/conferences^
=== Request Headers ===
^参数 ^说明^
|Content-Type|application/json|
|Authorization|Bearer ${token}|
=== Request Body ===
^名称 ^类型 ^描述^
|confrType|int|10: 普通模式 11: 大会议模式 12: 直播模式|
|password|string|指定密码时,将使用此密码;不指定,将由服务端生成|
|confrDelayMillis|long|会议临时保留时长,指从会议创建成功到第一个用户加入会议之间的时长,单位是毫秒。超过这个保留时间,会议将被解散。第一个人加入会议之后,此保留时间失效,当最后一人离开会议,会议会立即被销毁。此参数默认是120秒,建议不要设置超过60分钟。|
|memDefaultRole|int|会议成员默认角色。用户A通过会议 ID 密码获取加入会议后的角色就是这个 1:观众,3:主播,7:管理员(拥有主播权限)。 缺省时,根据会议类型设置,目前规则如下:普通模式默认主播;大会议模式默认主播;直播模式默认观众|
|allowAudienceTalk|boolean|true 允许观众上麦|
|creator|string|指定创建者,creator 将会成为这个会议的管理员,拥有管理员权限|
|rec|boolean|true 此会议将被录制|
|recMerge|boolean|true 此会议的所有通话将被合并到一个文件|
|supportWechatMiniProgram|boolean|true 这个会议将支持小程序,同时会议编码被强制更新为H264,VP8。注意:默认的会议是不支持小程序的,如果想要支持小程序,请手动指定这个参数为true|
|useVCodes|数组|指定会议将要采用的编码方式如["H264","VP8"]|
|maxTalkerCount|int|会议主播人数|
|maxVideoCount|int|会议最大视频数|
|maxAudienceCount|int|会议中的最大人数|
=== Response Body ===
^名称^类型^描述^
|type|int|10: 普通模式 11: 大会议模式 12: 直播模式|
|talkerLimit|int|主播上限数,大会议模式全部是是主播|
|id|string|会议ID|
|password|string|会议密码|
|allowAudienceTalk|boolean|允许观众上麦,大会议模式时忽略此项|
|audienceLimit|int|观众上限数,大会议模式无观众|
|expireDate|Date|过期时间,创建会议后,如果在 expireDate 之前没有人加入会议,将会被系统强制解散|
=== 请求示例 ===
curl --location --request POST 'http://127.0.0.1:9090/easemob-demo/hcl/conferences' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YWMtaJszCI5vEemOhnkmxEo52QAAAAAAAAAAAAAAAAAAAAHmqirKW28R6ZB2cYf5QmSUAQMAAAFrVLgKfgBPGgC863CANqOsZOAF1tnxLeMc0Z-gRFCQwqV-0MB5nVAB5A' \
--header 'Content-Type: application/json' \
--data-raw '{
"confrType": 10,
"password": "",
"confrDelayMillis": 100000,
"memDefaultRole":3,
"allowAudienceTalk": false,
"confrId": "",
"creator":"122",
"rec":false,
"recMerge":false,
"supportWechatMiniProgram": true,
"useVCodes": [
"H264",
"VP8"
],
"maxTalkerCount":9,
"maxVideoCount":9,
"maxAudienceCount":20
}'
=== 可能返回的结果示例 ===
**返回值200,表示会议创建成功**
{
"error": 0,
"id": "IM3SKW51SKH4TB80LV45000C7",
"type": 10,
"mixed": false,
"password": "0.37898245722568236",
"audienceLimit": 600,
"talkerLimit": 6,
"expireDate": "2019-06-14 15:41:58",
"allowAudienceTalk": true
}
返回值401,未授权[无token、token错误、token过期]
返回值403,没有开通音视频增值服务调用接口失败
----
===== 解散会议 =====
=== HTTP Request ===
^{{:im:server:basics:delete.png?nolink&90|}}^/{orgName}/{appName}/conferences/{confrId}^
需要在请求时对应填写{confrId},需要删除的会议 ID 。
=== Request Headers ===
^参数 ^说明^
|Content-Type |application/json|
|Authorization |Bearer ${token}|
=== 请求示例 ===
curl -X DELETE -H 'Accept: application/json' -H 'Authorization: Bearer YWMt7CoyjusbEeixOi3iod4eDAAAAAAAAAAAAAAAAAAAAAGL4CTw6XgR6LaXXVmNX4QCAgMAAAFnJlhJIwBPGgCqtjiyVnR209iyr8kNbhJhhanNQDdP9CMmpK2G-NIUOQ' 'http://a1.easemob.com/easemob-demo/testapp/conferences/TURN25AIYAVxASW7PL1Q00C51'
=== 可能返回的结果 ===
返回值200,表示会议解散成功
返回值404,表示该会议ID不存在
返回值401,未授权[无token、token错误、token过期]
返回值403,没有开通音视频增值服务调用接口失败
----
===== 踢掉会议中成员 =====
=== HTTP Request ===
^{{:im:server:basics:delete.png?nolink&90|}}^/{orgName}/{appName}/conferences/{confrId}/{userName}^
需要在请求时对应填写{confrId},需要删除的会议 ID 。
userName为成员用户名。
=== Request Headers ===
^参数 ^说明^
|Content-Type |application/json|
|Authorization |Bearer ${token}|
=== 请求示例 ===
curl -X DELETE -H 'Accept: application/json' -H 'Authorization: Bearer YWMt7CoyjusbEeixOi3iod4eDAAAAAAAAAAAAAAAAAAAAAGL4CTw6XgR6LaXXVmNX4QCAgMAAAFnJlhJIwBPGgCqtjiyVnR209iyr8kNbhJhhanNQDdP9CMmpK2G-NIUOQ' 'http://a1.easemob.com/easemob-demo/testapp/conferences/TURN25AIYAVxASW7PL1Q00C51/yangss'
=== 可能返回的结果 ===
返回值200,表示会议解散成功
返回值404,表示该会议ID不存在
返回值401,未授权[无token、token错误、token过期]
返回值403,没有开通音视频增值服务调用接口失败
----
===== 获取会议信息 =====
=== HTTP Request ===
^{{:im:server:basics:get.png?nolink&90|}}^/{orgName}/{appName}/conferences/{confrId}^
需要在请求时对应填写{confrId},需要获取的会议 ID 。
=== Request Headers ===
^参数 ^说明^
|Content-Type |application/json|
|Authorization |Bearer ${token}|
=== Response Body ===
^名称^类型^描述^
|type|int|10: 普通模式 11: 大会议模式 12: 直播模式|
|talkerLimit|int|主播上限数,大会议模式全部是是主播|
|id|string|会议ID|
|password|string|会议密码|
|allowAudienceTalk|boolean|允许观众上麦,大会议模式时忽略此项|
|audienceLimit|int|观众上限数,大会议模式无观众|
|expireDate|Date|过期时间,创建会议后,如果在 expireDate 之前没有人加入会议,将会被系统强制解散|
|mems |Array |现有成员列表|
=== 请求示例 ===
curl -X GET \
http://a1.easemob.com/1100181023201864/voicechatroom/conferences/IM3SKW51SKH4TB80LV45000C7 \
-H 'Accept: */*' \
-H 'Authorization: Bearer YWMtaJszCI5vEemOhnkmxEo52QAAAAAAAAAAAAAAAAAAAAHmqirKW28R6ZB2cYf5QmSUAQMAAAFrVLgKfgBPGgC863CANqOsZOAF1tnxLeMc0Z-gRFCQwqV-0MB5nVAB5A'
=== 可能返回的结果示例 ===
**返回值200,表示会议获取成功**
{
"error": 0,
"id": "13H05522N8TEXW49ESW00C10618",
"type": 11,
"mixed": true,
"password": "",
"audienceLimit": 0,
"talkerLimit": 30,
"allowAudienceTalk": true,
"mems": [{
"memberId": "13H05522N8TEXW49ESW00C10618M2",
"memName": "easemob-demo#chatdemoui_lulu3",
"role": 7
}]
}
返回值404,表示该会议ID不存在
返回值401,未授权[无token、token错误、token过期]
返回值403,没有开通音视频增值服务调用接口失败
----
上一页:[[im:server:basics:fileoperation|文件上传下载]]
下一页:[[im:server:basics:recordfiledownload|录制提取]]