会议集成开发指南

会议 API

下面仅列出了 XSwitch 会议相关的 API,具体的使用方法请参考对应的文档。

Rest API

查询所有会议(正在进行的会议)

  • 请求 URL/api/conferences
  • 请求方式GET
  • 返回值:code(200 即为正常),session_id
  • curl 示例
curl -XGET -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" localhost/api/conferences
  • 返回(示例)

部分字段说明:

参数说明
book_meeting_id预约会议 id
caller_id_name与会者名称
hold保持
can_hear可以听,false 为不可听
can_speak不可说,即静音,如果为 true 则表示未静音
has_video未开启视频
talking未说话;true 为正在说话
can_see可以看
caller_id_number与会者号码
id与会者在会议中的 id
uuid与会者通道 UUID
join_time该成员加入会议的总时长,单位:秒
max_members最大会议容量
conference_name会议号码
member_count当前会议总人数
locked会议是否锁定
canvas_count画布个数
conference_uuid会议 UUID

返回 JSON:

{
	"msg": "+OK",
	"data": [
		{
			"variables": {
				"book_meeting_id": "1",
				"book_recurrent_meeting_id": "2"
			},
			"dynamic": true,
			"members": [
				{
					"record_path": "/usr/local/freeswitch/storage/recordings/conference-record-715834449-xswitch.cn-2023-03-02-00-07-13-74dbee72-0446-420d-a125-75bdfd2e0b1c.wav",
					"join_time": 1677686833,
					"type": "recording_node"
				},
				{
					"type": "caller",
					"uuid": "74dbee72-0446-420d-a125-75bdfd2e0b1c",
					"last_talking": 0,
					"volume_out": 0,
					"join_time": 3,
					"volume_in": 0,
					"id": 1,
					"caller_id_name": "1028",
					"input-volume": 0,
					"output-volume": 0,
					"energy": 0,
					"flags": {
						"can_see": true,
						"talking": true,
						"hold": false,
						"end_conference": false,
						"mute_detect": false,
						"has_floor": true,
						"has_video": false,
						"video_bridge": false,
						"can_hear": true,
						"pass_digits": false,
						"is_moderator": false,
						"can_speak": true
					},
					"caller_id_number": "1028"
				}
			],
			"destruct": false,
			"max_members": 10,
			"video_rfc4579": false,
			"video_floor_only": false,
			"video_floor_packets": 0,
			"conference_name": "715834449-xswitch.cn",
			"member_count": 1,
			"enforce_min": true,
			"enter_sound": true,
			"exit_sound": true,
			"max_bw_in": 0,
			"wait_mod": false,
			"conference_uuid": "577fdc73-ac90-429e-b18d-bfdf47bc884b",
			"running": true,
			"locked": false,
			"canvas_count": 1,
			"ghost_count": 0,
			"bridge_to": false,
			"recording": true,
			"answered": true,
			"video_bridge": false,
			"audio_always": false,
			"run_time": 3,
			"force_bw_in": 0,
			"rate": 8000
		}
	],
	"code": 200
}

其中 conference_name 是会议的唯一标识,返回的 members 里的 id 是与会者的一个标识 ID。

查询指定会议状态

  • 请求 URL/api/conferences/$name
  • 请求方式GET
  • 返回值:code(200 即为正常),session_id
  • curl 示例 1
curl -XGET -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" localhost/api/conferences/715834449-xswitch.cn
  • 返回(示例 1)

返回 JSON:

{
  "msg": "+OK",
  "data": [
    {
      "locked": false,
      "exit_sound": true,
      "rate": 8000,
      "member_count": 1,
      "max_members": 10,
      "conference_name": "715834449-xswitch.cn",
      "node_uuid": "4bbf9d95-dfef-40a4-9fb9-35c2c77c4dee",
      "enter_sound": true,
      "members": [
        {
          "record_path": "/usr/local/freeswitch/storage/recordings/conference-record-715834449-xswitch.cn-2023-03-02-00-10-25-daa0338c-bc7e-4830-afd7-08ad900de47c.wav",
          "type": "recording_node",
          "join_time": 1677687025
        },
        {
          "output-volume": 0,
          "caller_id_number": "1028",
          "id": 3,
          "type": "caller",
          "uuid": "daa0338c-bc7e-4830-afd7-08ad900de47c",
          "caller_id_name": "1028",
          "join_time": 14,
          "input-volume": 0,
          "volume_out": 0,
          "flags": {
            "is_moderator": false,
            "has_floor": true,
            "pass_digits": false,
            "video_bridge": false,
            "can_see": true,
            "hold": false,
            "end_conference": false,
            "can_hear": true,
            "can_speak": true,
            "talking": true,
            "has_video": false,
            "mute_detect": false
          },
          "energy": 0,
          "volume_in": 0,
          "last_talking": 0
        }
      ],
      "run_time": 14,
      "destruct": false,
      "max_bw_in": 0,
      "canvas_count": 1,
      "bridge_to": false,
      "ghost_count": 0,
      "variables": {
        "book_recurrent_meeting_id": "2",
        "book_meeting_id": "1"
      },
      "recording": true,
      "video_rfc4579": false,
      "video_bridge": false,
      "force_bw_in": 0,
      "audio_always": false,
      "video_floor_only": false,
      "video_floor_packets": 0,
      "conference_uuid": "1eee5ce6-cc83-4117-94b7-e222b12c65c8",
      "dynamic": true,
      "answered": true,
      "enforce_min": true,
      "running": true,
      "wait_mod": false
    }
  ],
  "code": 200
}

其中 conference_name 是会议的唯一标识,返回的 members 里的 id 是与会者的一个标识 ID

  • curl 示例 2 增加realMembersOnly标识,为true时只返回typecaller的成员。
curl -XGET -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" localhost:8081/api/conferences/3000-xswitch.cn?realMembersOnly=true
  • 返回(示例 2)
{
  "code": 200,
  "data": [
    {
      "audio_always": false,
      "video_floor_packets": 0,
      "locked": false,
      "run_time": 112,
      "bridge_to": false,
      "conference_name": "3000-xswitch.cn",
      "max_members": 10,
      "enforce_min": true,
      "member_count": 1,
      "variables": [],
      "ghost_count": 0,
      "conference_uuid": "9a04b0c0-f777-4beb-94c0-8d911dfe24ce",
      "answered": true,
      "members": [
        {
          "join_time": 112,
          "input-volume": 0,
          "energy": 0,
          "output-volume": 0,
          "uuid": "3ab084a3-ea3b-4686-932e-b6a3c46e6719",
          "id": 1,
          "type": "caller",
          "volume_in": 0,
          "caller_id_name": "1001",
          "last_talking": 0,
          "caller_id_number": "1001",
          "volume_out": 0,
          "flags": {
            "mute_detect": false,
            "can_see": true,
            "can_speak": true,
            "talking": true,
            "end_conference": false,
            "can_hear": true,
            "pass_digits": false,
            "has_floor": true,
            "hold": false,
            "is_moderator": false,
            "video_bridge": false,
            "has_video": false
          }
        }
      ],
      "running": true,
      "destruct": false,
      "exit_sound": true,
      "video_floor_only": false,
      "node_uuid": "dae08bca-c6e1-4540-bfce-533bd1e53f79",
      "video_rfc4579": false,
      "dynamic": true,
      "canvas_count": 1,
      "wait_mod": false,
      "recording": true,
      "force_bw_in": 0,
      "video_bridge": false,
      "enter_sound": true,
      "max_bw_in": 0,
      "rate": 8000
    }
  ],
  "msg": "+OK"
}

邀请会议成员入会

此接口的$name为会议名称,不局限于“预约页面”预约创建好的会议,当会议成员入会后,会议自动创建。

  • 请求 URL/api/conferences/$name邀请指定号码到指定会议中
  • 请求方式POST

邀请某人入会

  • Body 信息
参数说明
cidName拉人入会时,被拉的账号响铃时显示的主叫名称,建议写会议号码
cidNumber拉人入会时,被拉的账号响铃时显示的主叫号码
from和cidNumber作用一样,如果没有设置cidName及cidNumber,则取from设置的号码作为拉人入会显示的主叫号码
to需要拉入的号码比如1001,【呼叫】⇨【路由】中已有对应路由方可成功
vars需要额外设置的通道变量,只有body内包含to字段时才生效
context呼叫源,可不携带,默认为context-1

Body:

{
    "cidName": "3000-xswitch.cn",
    "cidNumber": "1001",
    "to": "1018",
    "vars": {
        "yxb": "23",
        "verto_svar_yxb": "true",
        "absolute_codec_string": "PCMA,PCMU"
    }
}
  • curl 示例
curl -XPOST -d '{"cidName": "3000-xswitch.cn","cidNumber": "1001","to": "1018","vars": {"yxb": "23","verto_svar_yxb": "true","absolute_codec_string": "PCMA,PCMU"}}' -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.1.100:8081/api/conferences/9999
  • 返回值
{
    "msg": {
        "code": 200,
        "msg": "Job-UUID: dd9d4bea-8a15-4472-8d44-8dfdb4b589c6"
    },
    "code": 200,
    "data": "9999"
}

批量邀请成员入会

  • Body 信息
参数说明
from拉人入会时,被拉的账号响铃时显示的主叫号码
to需要拉入的号码比如1001、18812345678,【呼叫】⇨【路由】中已有对应路由方可成功
context呼叫源,可不携带,默认为context-1

Body:

{
    "participants": [
        {
            "from": "test1",
            "cidNumber": "120",
            "to": "1000"
        },
        {
            "from": "test2",
            "cidNumber": "110",
            "to": "20000"
        }
    ]
}
  • curl 示例
curl -XPOST -d '{"participants": [{"from": "test1","cidNumber": "120","to": "1000"},{"from": "test2","cidNumber": "110","to": "20000"}]}' -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.1.100:8081/api/conferences/9999
  • 返回值
{
    "msg": {
        "code": 200,
        "msg": "Job-UUID: 05b8b350-87a3-4b90-9110-6c31570a5a10"
    },
    "code": 200,
    "data": "9999"
}

邀请预约会议的成员入会与邀请批量成员入会

该接口仅针对已经在“预约页面”预约创建好的会议,如果会议未创建,则会呼叫失败;不支持临时会议批量入会。

  • 请求 URL/api/conferences/call_members
  • 请求方式POST
  • Body 信息:参见信息说明。
  • 返回值:code(200 即为正常),data,msg,
  • curl 示例 1

callData字段说明

参数说明
id与会者分机 ID,如果为外部用户则无需填写
name被邀请的用户名
login邀请的本地分机
phone邀请的用户外部号码

roomInfo字段说明

参数说明
nbr会议号码
name会议名称

Body:

{
  "callData": [
    {
      "id": 5,
      "name": "1003",
      "login": "1003"
    },
    {
      "name": "张三",
      "phone": "15666091234"
    }
  ],
  "roomInfo": {
    "nbr": "712418732"
  }
}
  • 返回(示例)
{
  "code": 200,
  "name": "712418732-xswitch.cn"
}
  • curl 示例 2

body:

{
  "callData": [
    {
      "id": 5,
      "name": "1003",
      "login": "1003"
    },
    {
      "id": 3,
      "name": "1001",
      "login": "1001"
    }
  ],
  "roomInfo": {
    "nbr": "712418732"
  }
}
  • 返回(示例)
{
  "code": 200,
  "name": "712418732-xswitch.cn"
}

开启会议录制功能

  • 请求 URL/api/conferences/$name/record开启录制

  • 请求方式PUT

  • Body 信息:无

  • 返回值:code(200 即为正常),data,

  • curl 示例

curl -XPUT-H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.1.100:8081/api/conferences/712418732-xswitch.cn/record
  • 返回值
{
  "message": "success",
  "code": 200,
  "data": {
    "rel_path": "conference-record-20220524104830-712418732-xswitch.cn.mp4",
    "name": "712418732-xswitch.cn",
    "ext": "mp4",
    "description": "Conference Video Record",
    "id": "8",
    "mime": "video/mp4",
    "original_file_name": "conference-record-20220524104830-712418732-xswitch.cn.mp4",
    "dir_path": "/usr/local/freeswitch/storage/recordings",
    "type": "VIDEO_CONF",
    "abs_path": "/usr/local/freeswitch/storage/recordings/conference-record-20220524104830-712418732-xswitch.cn.mp4",
    "channel_uuid": "4368ab30-a448-4d68-8ded-be81a5746c39"
  }
}

返回值部分字段说明

参数说明
description描述
name会议号码
rel_path文件名
ext录制格式
dir_path文件路径,不包含文件名
abs_path录音绝对路径,包含文件名
channel_uuid通道 UUID

会议内执行某个动作

  • 请求 URL/api/conferences/$name
  • 请求方式PUT

示例1,全部静音:

  • Body 信息
{
    "action": "mute",
    "val": "all"
}
  • curl 示例
curl -XPUT -d '{"action": "mute","val": "all"}' -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.31.99:8081/api/conferences/3000-192.168.31.99
  • 返回(示例)
{
    "msg": "mute 31",
    "code": 200
}

示例2,列出某个会议内所有会议成员:

  • Body 信息
{
    "action": "list"
}
  • curl 示例
curl -XPUT -d '{"action": "list"}' -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.31.99:8081/api/conferences/3000-192.168.31.99
  • 返回(示例)
{
    "msg": "31;sofia/default/20000@192.168.31.99:7060;a48bb07c-2683-45a4-923e-f0e1a7811ee4;20000;20000;hear|floor;0;0;0\n",
    "code": 200
}

会议内给某个会议成员执行某个动作

  • 请求 URL/api/conferences/$name/$memberID
  • 请求方式PUT

示例1,给某个会议成员静音:

  • Body 信息
{
    "action": "mute"
}
  • curl 示例
curl -XPUT -d '{"action": "mute"}' -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.31.99:8081/api/conferences/3000-192.168.31.99/33
  • 返回(示例)
{
    "code": 200,
    "msg": "mute 33"
}

示例2,强制设置某个会议成员为视频主持人:

  • Body 信息
{
    "action": "vid-floor",
    "val": "force"
}
  • curl 示例
curl -XPUT -d '{"action": "vid-floor","val": "force"}' -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.31.99:8081/api/conferences/3000-192.168.31.99/33
  • 返回(示例)
{
    "action": "vid-floor",
    "val": "force"
}

踢人

  • 请求 URL/api/conferences/:name/:memberID
  • 请求方式DELETE
  • Body 信息:参见信息说明。
  • 返回值: code(200 即为正常),msg

memberID 为成员在会议中的 ID(如果 all,表示所有成员)

参数:

  • action:动作。固定为hup

示例:

curl -vvv -XPUT -d '{"action": "hup"}' \
-H "X-XTRA-AUTH-ID: e30fe29f-97f0-4200-a034-8d36aca8cda2" \
-H "content-type: application/json" \
https://localhost/api/conferences/711293167-xswitch.cn/39

修改会议当前画布布局

  • 请求 URL/api/conferences/:name/:memberID
  • 请求方式PUT
  • Body 信息:参见信息说明。
  • 返回值: code(200 即为正常),msg
参数说明例子
action会议动作vid-layout 设置画布布局
val会议动作后指定的值2x2 1 表示在画布 1 设置为 2x2 的布局

Body:

{
  "action": "vid-layout",
  "val": "2x2 1"
}
  • curl 示例
curl -vvv -XPUT -d '{"action": "vid-layout", "val":"2x2 1"}' \
-H "X-XTRA-AUTH-ID: e30fe29f-97f0-4200-a034-8d36aca8cda2" \
-H "content-type: application/json" \
https://localhost/api/conferences/711293167-xswitch.cn/39

锁定(解锁)某个会议

  • 请求 URL/api/conferences/:name
  • 请求方式PUT
  • Body 信息:参见信息说明。
  • 返回值: code(200 即为正常),msg
参数说明例子
action会议动作lock 锁定会议 unlock 解锁会议
val会议动作后指定的值

Body:

锁定

{
  "action": "lock"
}

解锁

{
  "action": "unlock"
}
  • curl 示例
curl -XPUT -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.1.100:8081/api/conferences/711293167-xswitch.cn

结束会议

  • 请求 URL/api/conferences/:name
  • 请求方式DELETE
  • Body 信息:参见信息说明。
  • 返回值: code(200 即为正常),msg
curl -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" -XDELETE localhost:8088/api/conferences/711293167-xswitch.cn

详见会议开发指南

XCC API

获取运行中的会议详情

  • commandconferenceInfo
  • data:数据
    • conferenceName:必填,会议室名称
    • showMembers:可选,布尔值,是否显示会议室成员,默认为否。

示例:

{
	"jsonrpc":"2.0",
	"id":"conference-request-1",
	"method":"XNode.NativeJSAPI",
	"params":{
		"ctrl_uuid":"54d0d141-a748-406a-8a63-992f195789cc",
		"data": {
			"command":"conferenceInfo",
			"data":{
				"conferenceName":"3000",
				"showMembers":true
			}
		}
	}
}

{
	"jsonrpc":	"2.0",
	"id":	"conference",
	"result":	{
		"code":	200,
		"message":	"OK",
		"node_uuid":	"xcc-node-1",
		"data":	{
			"conference":	{
				"conference_name":	"3000",
				"member_count":	1,
				"ghost_count":	0,
				"rate":	8000,
				"run_time":	381,
				"conference_uuid":	"41d33e47-881e-483f-bef9-8174a8516f2e",
				"canvas_count":	0,
				"max_bw_in":	0,
				"force_bw_in":	0,
				"video_floor_packets":	0,
				"locked":	false,
				"destruct":	false,
				"wait_mod":	false,
				"audio_always":	false,
				"running":	true,
				"answered":	true,
				"enforce_min":	true,
				"bridge_to":	false,
				"dynamic":	true,
				"exit_sound":	true,
				"enter_sound":	true,
				"recording":	false,
				"video_bridge":	false,
				"video_floor_only":	false,
				"video_rfc4579":	false,
				"variables":	{
				},
				"members":	[{
						"type":	"caller",
						"id":	2,
						"flags":	{
							"can_hear":	true,
							"can_see":	true,
							"can_speak":	true,
							"hold":	false,
							"mute_detect":	false,
							"talking":	true,
							"has_video":	false,
							"video_bridge":	false,
							"has_floor":	true,
							"is_moderator":	false,
							"end_conference":	false
						},
						"uuid":	"a3c2df89-b6c9-4fb3-a0a4-c1934b21f5a9",
						"caller_id_name":	"Seven Du",
						"caller_id_number":	"1001",
						"join_time":	381,
						"last_talking":	0,
						"energy":	100,
						"volume_in":	0,
						"volume_out":	0,
						"output-volume":	0,
						"input-volume":	0
					}]
			}
		}
	}
}

执行会议控制

可以使用NativeAPI控制会议,如:

{
  "jsonrpc": "2.0",
  "id": "...",
  "method": "XNode.NativeAPI",
  "params": {
    "ctrl_uuid": "ctrl_uuid ... ",
    "cmd": "conference",
    "args": "list"
  }
}

常用的命令有:(以下假定会议名称为3000

  • list:列出该节点上所有会议
  • json_list:同上,返回 JSON 字符串
  • xml_list:同上,返回 XML 字符串
  • 3000 list:仅列出名称为 3000 的会议
  • 3000 mute 1:对member_id1的成员静音
  • 3000 unmute 1:对member_id1的成员取消静音
  • 3000 mute all:将所有人静音
  • 3000 mute uuid=5bb13395-acc8-4dbc-9e90-2c6de0a27f98:将 Channel UUID 对应的成员静音
  • 更多命令可以在命令行上输入conference查看帮助

详见XCC 会议接口

会议API

XSwitch会议模块提供丰富的API接口(REST-API中提到的动作),其中动作即REST-API中的action,参考用法,若动作后有其他参数,则为val,若无,则val为空。

会议成员标识说明如下:

标识说明
member_id会议成员对应的会议ID
all所有会议成员
last最后一个进入会议的会议成员
non_moderator除主持人外的其余会议成员

常见动作及简要说明如下:

动作       说   明       用法例子
bgdial非阻塞形式执行呼叫动作。conference <confname> bgdial <dial-string> [<callerid_number> [<callerid_name>]]conference 3000 bgdial {origination_caller_id_number=8888}user/1000
deaf让某个会议成员或全部会议成员听不到conference <confname> deaf <member_id>all
dial阻塞形式执行呼叫动作conference <confname> dial <dial-string> [<callerid_number> [<callerid_name>]]conference 3000 dial {origination_caller_id_number=8888}user/1000
dtmf向某个会议成员或全部会议成员发送一个DTMF按键信息conference <confname> dtmf <member_id>|all <digits>conference 3000 dtmf all 3
enter_sound调整会议成员入会时播放的声音conference <confname> enter_sound on|off|none|file <filename>conference 3000 enter_sound file /root/111.wav
exit_sound调整会议成员离会时播放的声音conference <confname> exit_sound on|off|none|file <filename>conference 3000 exit_sound file /root/111.wav
floor切换会议主讲人conference <confname> floor <member_idlast>
hup挂断某个会议成员或全部会议成员通话conference <confname> hup <[member_id|all|last|non_moderator]>conference 3000 hup all
list列出当前会议内所有会议成员信息conference <confname> listconference 3000 list
lock锁定某个会议,不再允许其他会议成员进入conference <confname> lockconference 3000 lock
mute给某个会议成员或全部会议成员静音conference <confname> mute <[member_id|all]|last|non_moderator>conference 3000 mute all
nopin去掉会议的入会密码conference <confname> nopinconference 3000 nopin
norecord停止录音conference <confname> norecord <[filename|all]>conference 3000 norecord /root/test.wav
pause暂停录音conference <confname> <filename>conference 3000 pause /root/test.wav
pause_play暂停正在播放的音频文件,若已暂停后再次执行本命令可恢复播放conference <confname> pause_playconference 3000 pause_play
play向会议内播放一个音频文件conference <confname> play <file_path> [async|<member_id> [nomux]]conference 3000 play /root/test.wav
record开启会议录音功能conference <confname> record <file-path>conference 3000 record /root/record.wav
recording控制一个会议中的录音动作conference <confname> recording [start|stop|check|pause|resume] [<filename>|all]conference 3000 recording check
relate调整会议成员之间的听说关系conference <confname> relate <member_id> <other_member_id> [nospeak|nohear]conference 3000 relate 31 32 nospeak
resume恢复会议录音conference <confname> resume <file-path>conference 3000 resume /root/record.wav
say使用TTS向会议内说一段话conference <confname> say <text>conference 3000 say 你好
saymember使用TTS向会议内某个会议成员说一段话conference <confname> saymember <member_id> <text>conference 3000 saymember 37 你好
stop停止向会议内播放音频文件conference <confname> stopconference 3000 stop
transfer将某个会议成员通话转移到另一个会议内conference <confname> transfer <conference_name> <member_id>conference 3000 transfer 3001 37
undeaf让某个会议成员可以听到conference <confname> undeaf <[member_id|all]|last|non_moderator>conference 3000 undeaf all
unlock给某个会议解锁,允许其他会议成员入会conference <confname> unlockconference 3000 unlock
unmute给某个会议成员解除静音conference <confname> unmute <[member_id|all]|last|non_moderator>conference 3000 unmute all
xml_list以XML的形式列出当前会议内所有会议成员信息conference <confname> xml_listconference 3000 xml_list
json_list以JSON的形式列出当前会议内所有会议成员信息conference <confname> json_listconference 3000 json_list
vid-floor设置视频主讲人conference <confname> <member_id|last> [force]conference 3000 vid-floor 30 force
vmute给某个会议成员或全部会议成员视频静音conference <confname> vmute <[member_id|all]|last|non_moderator>conference 3000 vmute all
tvmute给某个会议成员或全部会议成员视频、音频全部静音conference <confname> tvmute <[member_id|all]|last|non_moderator>conference 3000 tvmute all
unvmute给某个会议成员或全部会议成员解除视频静音conference <confname> unvmute <[member_id|all]|last|non_moderator>conference 3000 unvmute all
vid-banner给某个会议成员设置字幕conference <confname> vid-banner <member_id|last> <text>conference 3000 vid-banner 37 test
vid-mute-img给某个会议成员设置被视频静音时显示的图片conference <confname> vid-mute-img <member_id|last> [<path>|clear]conference 3000 vid-mute-img 37 /tmp/test.png
clear-vid-floor清除某个会议成员的视频主讲人角色conference <confname> clear-vid-floorconference 3000 clear-vid-floor 37
vid-layout给视频会议设置布局格式conference <confname> vid-layout <layout-name>conference 3000 vid-layout 1x1
vid-fps给视频会议设置fps值conference <confname> vid-fps <fps>conference 3000 vid-fps 20
vid-write-png会议内截屏conference <confname> vid-write-png <path>conference 3000 vid-write-png /tmp/vid.png
vid-personal视频会议时,会议成员看到除去自己后的视频画面conference <confname> vid-personal <on|off>conference 3000 vid-personal on
视频