华为云用户手册

  • 响应示例 状态码: 200 配置成功 { "app_id" : "123456789abcdefghijklmno", "record_callback" : { "url" : "http://mydomain.com", "auth_key" : "78912374ae8cdb38", "notify_event_subscription" : [ "RECORD_NEW_FILE_START", "RECORD_FILE_COMPLETE", "RTC_USER_ROLE_CHANGED", "RTC_AUDIO_STREAM_OPEN", "RTC_AUDIO_STREAM_CLOSE", "RTC_VIDEO_STREAM_OPEN", "RTC_VIDEO_STREAM_CLOSE" ], "update_time" : "2020-07-26T07:53:05.075Z" } } 状态码: 400 配置失败,语义有误,当前请求无法被服务器理解,或参数有误 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue" } 状态码: 404 配置失败,应用不存在 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue" } 状态码: 500 配置失败,服务器端错误 { "error_code" : "RTC.00002xxx", "error_msg" : "InternalError" }
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表5 响应Body参数 参数 参数类型 描述 app_id String 应用id record_callback AppCallbackUrl object 回调信息 表6 AppCallbackUrl 参数 参数类型 描述 url String 回调通知url地址,url必须以http://或https://开头,需要支持POST调用。 auth_key String 回调秘钥,主要用于鉴权。如果不设置或者为空,则回调不会增加鉴权头域字段。 notify_event_subscription Array of strings 订阅云端录制通知消息。 取值如下: RECORD_NEW_FILE_START:开始创建新的录制文件。 RECORD_FILE_COMPLETE:录制文件生成完成。 update_time String 更新时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC。 状态码: 400 表7 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表9 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表11 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 内容类型。 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 url 是 String 回调通知url地址,url必须以http://或https://开头,需要支持POST调用。 auth_key 否 String 回调秘钥,主要用于鉴权
  • 操作步骤 获取用户Token,用于调用SparkRTC接口时进行认证鉴权。 在“我的凭证”页面获取username、password、domainname,调用如下接口 获取Token 。详细信息请参见构造请求。 POST https://iam.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //用户名。 "password": "password", //用户登录密码。 "domain": { "name": "domainname" //用户所属的账号名。 } } } }, "scope": { "domain": { "name": "domainname" //用户所属的账号名。 } } } } 如图1所示,红框中的信息为获取用户Token。 图1 获取用户Token 调用创建应用接口创建SparkRTC应用。 选择POST请求方法并输入URI。 https://rtc-api.myhuaweicloud.com/v2/apps 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。 Request Body中传入如下参数: { "app_name" : "rtctest" } 请求响应成功后,返回已创建应用的ID。 { "app_id": "5ff9701f2346968bb306cb43", } 调用创建或更新录制规则接口,创建录制规则。 选择POST请求方法并输入URI。 https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/record-rules 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。 Request Body中传入如下参数: { "obs_addr": { "bucket": "obsName", "location": "cn-north-4", "object": "Record/", "project_id": "01234567890123456789012345678901" }, "record_formats": ["MP4"], "mp4_config": {} } 请求响应成功后,返回已创建的录制规则。 { "app_id": "5ff9701f2346968bb306cb43", "rule_id": "5d0ec2c53a2c15625017adb8bbbcd9ab", "create_time": "2021-04-21T10:29:33Z", "hls_config": { "record_cycle": 0, "record_max_duration_to_merge_file": 0 }, "mp4_config": { "record_cycle": 7200, "record_max_duration_to_merge_file": 0, "record_prefix": "Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time}" }, "obs_addr": { "bucket": "obsName", "location": "cn-north-4", "object": "Record/", "project_id": "01234567890123456789012345678901" }, "record_formats": [ "MP4" ], "update_time": "2021-04-21T10:29:33Z" } 调用RTC增值(录制)事件回调配置接口,配置录制回调。 选择PUT请求方法并输入URI。 https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/record-callback 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。 Request Body中传入如下参数: { "url": "http://mydomain.com/callback", "auth_key": "8923ab8c2dcef4538923ab8c2dcef453" } 请求响应成功后,返回已创建的回调信息。 { "app_id": "5ff9701f2346968bb306cb43", "record_callback": { "auth_key": "8923ab8c2dcef4538923ab8c2dcef453", "update_time": "2021-04-07T12:05:18.0718Z", "url": "http://mydomain.com/callback", "notify_event_subscription": [ "RECORD_NEW_FILE_START", "RECORD_FILE_COMPLETE", "CLOUD_RECORD_OVER" ] } } 终端用户通过SparkRTC APP加入某个SparkRTC房间,SparkRTC APP的集成开发请参见客户端SDK。 调用启动合流任务接口,创建录制任务。 选择POST请求方法并输入URI。 https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/mix-stream-jobs 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。 Request Body中传入如下参数: { "mix_param": { "room_id": "room001", "encode_template": "1920x1080_30_4620", "max_idle_time": 30, "layout_template": "nine_grids_view" //若视频布局为屏幕共享,则填写为screen_share_left或screen_share_right。 }, "record_param": { "record_rule_id": "5d0ec2c53a2c15625017adb8bbbcd9ab" } } layout_template:视频布局模板编号。 nine_grids_view:九宫格模板(自适应模板)。 每个用户画面平铺在画布上,大小一致。根据用户数量,动态调整每个画面的大小和位置,最多支持25个画面。不同人数的实际布局效果如下图所示: 如果实际视频流的宽高比与视窗的宽高比不一致,则视频画面会裁剪以适配视窗的大小。 如果中途有流退出房间,则该条流的画面会被后进入房间的流顶替。 如果房间内的人数不足,则剩余位置显示背景色。 如果用户只发送音频,仍然会占用画面位置。 支持背景图,如果房间内人数不足,则显示背景图。 screen_share_left、screen_share_right:主视图在左边、右边的屏幕共享模板(自适应模板)。 屏幕分享(或者主讲人摄像头画面)始终占据屏幕左侧或者右侧大画面位置,其他用户依次垂直排列于旁边,最多支持17个画面。不同人数的实际布局效果如下图所示: 大视窗画面,可选择主讲摄像头流或共享屏幕流。 大视窗画面,显示指定的UID用户的视频,如果未指定或者指定用户未进入频道,则大视窗区域显示背景色。 左侧大视窗为了保持内容的完整性采用缩放方式处理,右侧小视窗采用裁剪方式适配视窗的大小。 右侧小视窗画面按照加入房间的时间先后顺序排列。 右侧小视窗有流退出房间,则该条流的画面会被后进入房间的流顶替。 如果房间内的人数不足,则剩余位置显示背景色。 如果用户只发送音频,仍然会占用画面位置。 支持背景图,如果房间内人数不足,则显示背景图。 请求响应成功后,返回合流录制任务信息。 { "app_id": "5ff9701f2346968bb306cb43", "create_time": "2021-04-21T11:47:32Z", "job_id": "607f9fc100d861eeefff9b300b388dab", "job_unique_id": "87b1f2b8da9c44cd", "mix_param": { "room_id": "room001", "layout_template": "nine_grids_view", "encode_template": "1920x1080_30_4620", "max_idle_time": 30 }, "push_param": { "rtmp_urls": null }, "record_param": { "record_rule_id": "5d0ec2c53a2c15625017adb8bbbcd9ab" }, "room_id": "room001", "start_time": "2021-04-21T11:47:32Z", "state": "INIT", "stop_time": "0001-01-01T00:00:00Z", "stream_name": "m_607f9fc100d861eeefff9b300b388dab_room001", "update_time": "2021-04-21T11:47:32Z" } SparkRTC房间结束音视频互动后,您可以在配置的OBS桶中获取录制文件。
  • 请求示例 创建或更新一个录制规则,区域为北京四,录制文件将被保存在名为obsName的桶上,录制文件格式为MP4,录制周期为60秒 POST https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/record-rules { "obs_addr" : { "bucket" : "obsName", "location" : "cn-north-4", "object" : "Record/", "project_id" : "ad7456ce8ef89adf567" }, "record_formats" : [ "MP4" ], "mp4_config" : { "record_cycle" : 60, "record_max_duration_to_merge_file" : 0 } }
  • 响应示例 状态码: 201 创建配置成功 { "app_id" : "123456abc", "rule_id" : "456789abc", "create_time" : "2006-01-02T15:04:05.075Z", "obs_addr" : { "bucket" : "obsName", "location" : "cn-north-4", "object" : "Record/", "project_id" : "ad7456ce8ef89adf567" }, "record_formats" : [ "MP4" ], "mp4_config" : { "record_cycle" : 60, "record_max_duration_to_merge_file" : 0 }, "update_time" : "2006-01-02T15:04:05.075Z" } 状态码: 200 更新配置成功 { "app_id" : "123456abc", "rule_id" : "456789abc", "create_time" : "2006-01-02T15:04:05.075Z", "obs_addr" : { "bucket" : "obsName", "location" : "cn-north-4", "object" : "Record/", "project_id" : "ad7456ce8ef89adf567" }, "record_formats" : [ "MP4" ], "mp4_config" : { "record_cycle" : 60, "record_max_duration_to_merge_file" : 0 }, "update_time" : "2006-01-02T15:04:05.075Z" } 状态码: 400 配置失败,语义有误,当前请求无法被服务器理解,或参数有误 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue" } 状态码: 404 配置失败,应用不存在 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue" } 状态码: 500 配置失败,服务器端错误 { "error_code" : "RTC.00002xxx", "error_msg" : "InternalError" }
  • 响应参数 状态码: 201 表7 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表8 响应Body参数 参数 参数类型 描述 rule_id String 规则id,由服务端返回。创建或修改规则的时候不携带 app_id String 应用id obs_addr RecordObsFileAddr object 保存录制文件所在的桶信息 record_formats Array of strings 录制格式:HLS格式或者MP4格式 hls_config HLSRecordConfig object hls格式录制规则管理 mp4_config MP4RecordConfig object mp4格式录制规则管理 create_time String 创建时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC update_time String 更新时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC 表9 RecordObsFileAddr 参数 参数类型 描述 location String OBS Bucket所在RegionID cn-north-4 project_id String OBS Bucket所在Region的项目ID bucket String OBS的bucket名称 object String OBS对象路径,遵守OBS Object定义。如果为空则保存到根目录 表10 HLSRecordConfig 参数 参数类型 描述 record_cycle Integer 周期录制时长。 取值范围:[60,43200]或者0,如果为0则整个流录制为一个文件。 单位:秒。 record_prefix String 录制m3u8文件含路径和文件名的前缀 默认{app_id}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time} 可自定义以下特殊变量: {app_id}:应用id {record_format}:录制格式 {stream}:流名 {file_start_time}:文件生成时间 record_slice_duration Integer 录制HLS时ts的切片时长,非必填。 取值范围:[2,60],缺省为10。 单位:秒。 record_max_duration_to_merge_file Integer 录制HLS文件拼接时长,如果流中断超过该时间,则生成新文件。 取值范围:[-1,300],缺省为0。 单位:秒。 如果为0表示流中断就生成新文件。 如果为-1则表示流中断恢复后追加到原来的文件中(相隔不超过30天)。 表11 MP4RecordConfig 参数 参数类型 描述 record_cycle Integer 周期录制时长。 取值范围:[60,10800]。 单位:秒。 record_prefix String 录制文件含路径和文件名的前缀。 默认{app_id}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time} 可自定义以下特殊变量: {app_id}:应用id {record_format}:录制格式 {stream}:流名 {file_start_time}:文件生成时间 record_max_duration_to_merge_file Integer 录制MP4拼接时长,如果流中断超过该时间,则生成新文件。 取值范围:[0,300],缺省为0。 单位:秒。 如果为0表示流中断就生成新文件。 状态码: 200 表12 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表13 响应Body参数 参数 参数类型 描述 rule_id String 规则id,由服务端返回。创建或修改规则的时候不携带 app_id String 应用id obs_addr RecordObsFileAddr object 保存录制文件所在的桶信息 record_formats Array of strings 录制格式:HLS格式或者MP4格式 hls_config HLSRecordConfig object hls格式录制规则管理 mp4_config MP4RecordConfig object mp4格式录制规则管理 create_time String 创建时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC update_time String 更新时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC 表14 RecordObsFileAddr 参数 参数类型 描述 location String OBS Bucket所在RegionID cn-north-4 project_id String OBS Bucket所在Region的项目ID bucket String OBS的bucket名称 object String OBS对象路径,遵守OBS Object定义。如果为空则保存到根目录 表15 HLSRecordConfig 参数 参数类型 描述 record_cycle Integer 周期录制时长。 取值范围:[60,43200]或者0,如果为0则整个流录制为一个文件。 单位:秒。 record_prefix String 录制m3u8文件含路径和文件名的前缀 默认{app_id}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time} 可自定义以下特殊变量: {app_id}:应用id {record_format}:录制格式 {stream}:流名 {file_start_time}:文件生成时间 record_slice_duration Integer 录制HLS时ts的切片时长,非必填。 取值范围:[2,60],缺省为10。 单位:秒。 record_max_duration_to_merge_file Integer 录制HLS文件拼接时长,如果流中断超过该时间,则生成新文件。 取值范围:[-1,300],缺省为0。 单位:秒。 如果为0表示流中断就生成新文件。 如果为-1则表示流中断恢复后追加到原来的文件中(相隔不超过30天)。 表16 MP4RecordConfig 参数 参数类型 描述 record_cycle Integer 周期录制时长。 取值范围:[60,10800]。 单位:秒。 record_prefix String 录制文件含路径和文件名的前缀。 默认{app_id}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time} 可自定义以下特殊变量: {app_id}:应用id {record_format}:录制格式 {stream}:流名 {file_start_time}:文件生成时间 record_max_duration_to_merge_file Integer 录制MP4拼接时长,如果流中断超过该时间,则生成新文件。 取值范围:[0,300],缺省为0。 单位:秒。 如果为0表示流中断就生成新文件。 状态码: 400 表17 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表18 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表19 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表20 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表21 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表22 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 内容类型。 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 obs_addr 是 RecordObsFileAddr object 保存录制文件所在的桶信息 record_formats 是 Array of strings 录制格式:支持HLS格式和MP4格式(HLS和MP4为大写)。 若配置HLS则必须携带HLSRecordConfig参数 若配置MP4则需要携带MP4RecordConfig hls_config 否 HLSRecordConfig object HLS格式录制规则管理 mp4_config 否 MP4RecordConfig object MP4格式录制规则管理 表4 RecordObsFileAddr 参数 是否必选 参数类型 描述 location 是 String OBS Bucket所在RegionID cn-north-4 project_id 是 String OBS Bucket所在Region的项目ID bucket 是 String OBS的bucket名称 object 否 String OBS对象路径,遵守OBS Object定义。如果为空则保存到根目录 表5 HLSRecordConfig 参数 是否必选 参数类型 描述 record_cycle 是 Integer 周期录制时长。 取值范围:[60,43200]或者0,如果为0则整个流录制为一个文件。 单位:秒。 record_prefix 否 String 录制m3u8文件含路径和文件名的前缀 默认{app_id}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time} 可自定义以下特殊变量: {app_id}:应用id {record_format}:录制格式 {stream}:流名 {file_start_time}:文件生成时间 record_slice_duration 否 Integer 录制HLS时ts的切片时长,非必填。 取值范围:[2,60],缺省为10。 单位:秒。 record_max_duration_to_merge_file 否 Integer 录制HLS文件拼接时长,如果流中断超过该时间,则生成新文件。 取值范围:[-1,300],缺省为0。 单位:秒。 如果为0表示流中断就生成新文件。 如果为-1则表示流中断恢复后追加到原来的文件中(相隔不超过30天)。 表6 MP4RecordConfig 参数 是否必选 参数类型 描述 record_cycle 是 Integer 周期录制时长。 取值范围:[60,10800]。 单位:秒。 record_prefix 否 String 录制文件含路径和文件名的前缀。 默认{app_id}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time} 可自定义以下特殊变量: {app_id}:应用id {record_format}:录制格式 {stream}:流名 {file_start_time}:文件生成时间 record_max_duration_to_merge_file 否 Integer 录制MP4拼接时长,如果流中断超过该时间,则生成新文件。 取值范围:[0,300],缺省为0。 单位:秒。 如果为0表示流中断就生成新文件。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息,与路径参数中的项目ID相同。
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 X-Request-Id String 请求的唯一标识 表5 响应Body参数 参数 参数类型 描述 usage Array of RtcHistoryUsage objects 时间戳及相应时间的指标数值列表 表6 RtcHistoryUsage 参数 参数类型 描述 date String 采样时间。日期格式按照ISO8601表示法,并使用UTC时间。格式为YYYY-MM-DD video_sd Long 标清视频时长,单位秒 video_hd Long 高清视频时长,单位秒 video_hdp Long 超高清视频时长,单位秒 audio Long 音频时长,单位秒 total_duration Long 音视频总时长,单位秒 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。
  • 响应示例 状态码: 200 查询成功返回。 { "usage" : [ { "date" : "2020-06-04", "video_sd" : 1, "video_hd" : 1, "video_hdp" : 1, "audio" : 1, "total_duration" : 4 } ] } 状态码: 400 查询失败返回 { "error_code" : "DATA.100011001", "error_msg" : "Required String parameter 'app' is not present" }
  • URI GET /v1/{project_id}/rtc/history/usage 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方法请参考获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 app 是 String 应用标识 metric 是 String 查询的数据类型 CommunicationDuration:音视频通话时长 start_date 是 String 查询起始时间。UTC时间,格式:YYYY-MM-DD,如2020-04-23,不写默认读取过去1天数据数据。 end_date 是 String 查询结束时间。UTC时间,格式:YYYY-MM-DD,如2020-04-23。
  • 响应示例 状态码: 200 app详细信息 { "app_name" : "example", "app_id" : "123456789abcdefghijklmno", "state" : { "state" : "ACTIVATION", "update_time" : "2020-07-26T07:03:05.075Z" }, "scope" : "DOMESTIC", "tenant_name" : "hwstaff_pub_videortc", "domain" : "123456789abcdefghijklmno.rtc.huawei.com", "create_time" : "2020-07-26T07:03:05.075Z", "authentication" : { "enable" : true, "expire" : 300, "app_key" : "12345ABCDEF12345", "update_time" : "2020-07-26T07:03:05.075Z" }, "callbacks" : { "record_callback" : { "url" : "http://mydomain.com", "auth_key" : "78912374ae8cdb38", "update_time" : "2020-07-26T07:53:05.075Z" } }, "auto_record_mode" : { "mode" : "AUTO_RECORD_OFF", "update_time" : "2020-07-26T07:53:05.075Z" } } 状态码: 400 语义有误,当前请求无法被服务器理解,或参数有误 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue" } 状态码: 404 app编号不存在 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue" } 状态码: 500 查询失败,服务器端错误 { "error_code" : "RTC.00002xxx", "error_msg" : "InternalError" }
  • 响应参数 状态码: 200 表3 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表4 响应Body参数 参数 参数类型 描述 app_name String app名称 app_id String 应用id state AppState object app状态 scope String RTC覆盖范围。 取值如下: DOMESTIC:国内范围。 OVERSEA:海外范围。 GLOBAL:全球范围。 tenant_name String 账号名 domain String 域名 ,App对应域名 create_time String 创建时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC authentication AppAuth object 鉴权配置 callbacks AppCallbacks object 回调配置 auto_record_mode AppAutoRecordMode object 自动录制配置 表5 AppState 参数 参数类型 描述 state String 状态 ACTIVATION:开启 DEACTIVATION:停用 ARREARS:欠费 DELETED:已删除 update_time String app鉴权的更新时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC 表6 AppAuth 参数 参数类型 描述 enable Boolean 开启或关闭URL鉴权 expire Integer 接入RTC建链认证时的signature的有效期。单位:秒。默认300秒。signature由app_key生成 app_key String app鉴权秘钥 update_time String app鉴权的更新时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC 表7 AppCallbacks 参数 参数类型 描述 push_callback AppCallbackUrl object 转推回调 record_callback AppCallbackUrl object 录制回调 表8 AppCallbackUrl 参数 参数类型 描述 url String 回调通知url地址,url必须以http://或https://开头,需要支持POST调用。 auth_key String 回调秘钥,主要用于鉴权。如果不设置或者为空,则回调不会增加鉴权头域字段。 notify_event_subscription Array of strings 订阅云端录制通知消息。 取值如下: RECORD_NEW_FILE_START:开始创建新的录制文件。 RECORD_FILE_COMPLETE:录制文件生成完成。 update_time String 更新时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC。 表9 AppAutoRecordMode 参数 参数类型 描述 mode String 录制模式。 AUTO_RECORD_OFF:关闭自动录制。 AUTO_INDIVIDUAL_RECORD:开启单流自动录制,此时record_rule_id必须非空。 record_rule_id String 录制规则id。 update_time String 更新时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC。 状态码: 400 表10 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表12 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表13 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表14 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表15 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 内容类型。 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。
  • 接口约束 开启自动单流录制功能之后,只针对新创建的房间有效,对开启自动录制功能之前已经创建的房间不生效。 单流自动录制任务的流名规则: {appid}_{roomid}_{userid}_{media_type}_{video_type} {media_type}可取值为v(代表纯视频录制),av(代表音视频录制)。 {video_type}可取值为m(代表录主流摄像头视频),a(代表录辅流视频)。 可能的组合有_av_m(自动录制主流和音频)和_v_a(自动录制辅流视频,无音频)。
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表5 响应Body参数 参数 参数类型 描述 app_id String 应用id auto_record_mode AppAutoRecordMode object 自动录制配置 表6 AppAutoRecordMode 参数 参数类型 描述 mode String 录制模式。 AUTO_RECORD_OFF:关闭自动录制。 AUTO_INDIVIDUAL_RECORD:开启单流自动录制,此时record_rule_id必须非空。 record_rule_id String 录制规则id。 update_time String 更新时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC。 状态码: 400 表7 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表9 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表11 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 内容类型。 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 mode 是 String 录制模式。 AUTO_RECORD_OFF:关闭自动录制。 AUTO_INDIVIDUAL_RECORD:开启单流自动录制,此时record_rule_id必须非空。 record_rule_id 否 String 录制规则id。
  • 响应示例 状态码: 200 任务创建成功,返回app的概要信息,如包含app_id { "app_id" : "123456789abcdefghijklmno", "auto_record_mode" : { "mode" : "AUTO_RECORD_OFF", "update_time" : "2020-07-26T07:53:05.075Z" } } 状态码: 400 更新自动录制任务失败,语义有误,当前请求无法被服务器理解,或参数有误 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue" } 状态码: 404 更新自动录制任务失败,应用不存在 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue" } 状态码: 500 更新自动录制任务失败,服务器错误 { "error_code" : "RTC.00002xxx", "error_msg" : "InternalError" }
  • URI GET /v1/{project_id}/rtc/realtime/quality 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方法请参考获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 app 是 String 应用标识 room_id 否 String 房间ID metric 是 String 查询的数据类型: JoinSuccessRate:加入房间成功率 JoinSuccess5SecsRate:5秒加入成功率 VideoFreezeRate:视频卡顿率 AudioFreezeRate:音频卡顿率 sdk_type 是 String sdk类型 native:非web版sdk webrtc:web版sdk start_time 否 String 查询起始时间。UTC时间,格式:YYYY-MM-DDThh:mm:ssZ,如2020-04-23T06:00:00Z,不写默认读取过去1小时数据。 end_time 否 String 查询结束时间。UTC时间,格式:YYYY-MM-DDThh:mm:ssZ,如2020-04-23T06:00:00Z,不写默认为当前时间。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息,与路径参数中的项目ID相同。
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 X-Request-Id String 请求的唯一标识 表5 响应Body参数 参数 参数类型 描述 quality Array of TimeDoubleValueData objects 时间戳及相应时间的指标数值列表 表6 TimeDoubleValueData 参数 参数类型 描述 time String 采样时间。日期格式按照ISO8601表示法,并使用UTC时间。格式为YYYY-MM-DDThh:mm:ssZ value Double 当前时间返回参数取值 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。
  • 响应示例 状态码: 200 查询成功返回。 { "quality" : [ { "time" : "2020-06-04T07:00:00Z", "value" : 0 } ] } 状态码: 400 查询失败返回 { "error_code" : "DATA.100011001", "error_msg" : "Required String parameter 'app' is not present" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 内容类型。 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。
  • 响应示例 状态码: 404 结束任务失败,应用不存在或者任务编号不存在 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue" } 状态码: 500 结束任务失败,服务器端错误 { "error_code" : "RTC.00002xxx", "error_msg" : "InternalError" }
  • 响应参数 状态码: 204 表3 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 状态码: 404 表4 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表6 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 400 语义有误,当前请求无法被服务器理解,或参数有误 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue" } 状态码: 500 请求失败,服务器端错误 { "error_code" : "RTC.00002xxx", "error_msg" : "InternalError" }
  • 响应参数 状态码: 202 表4 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 状态码: 400 表5 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表7 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 内容类型。 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 user_ids 是 Array of strings 用户ID列表
  • 响应参数 状态码: 200 表3 响应Header参数 参数 参数类型 描述 X-Request-Id String 请求的唯一标识 表4 响应Body参数 参数 参数类型 描述 total Integer 异常总数 events Array of AbnormalEvent objects 异常体验列表 表5 AbnormalEvent 参数 参数类型 描述 time String 采样时间。日期格式按照ISO8601表示法,并使用UTC时间。格式为YYYY-MM-DDThh:mm:ssZ uid String 出现异常的用户ID room_id String 出现异常的房间ID stage String 出现异常的环节 join_room:加入房间 communication:通话中 location String 事件发生位置 local:事件发生在客户端本地 remote:事件发生在远端 peer_uid String 如果根因来自远端用户,则peerid为远端用户的用户ID。如果根因来自自身,则peerid为空字符串 abnormal_type Integer 异常类型: 1:进房慢(5s加入房间失败) 2:视频卡顿 3:音频卡顿 abnormal_type_desc String 异常类型描述与异常类型对应,支持国际化,取值范围为: 进房慢(5s加入房间失败) 视频卡顿 音频卡顿 abnormal_factor Integer 异常因素 当异常类型为1时,异常因素取值范围为: 1:建链失败 2:房间非空闲 3:服务器异常 4:服务器反馈503 5:鉴权失败 6:鉴权重试 7:时钟同步失败 8:url错误 9:终端内部异常 90000004:SDK发出的加入房间信令响应超时 90100009:web侧没有收到MSP下发的配置信息 90100008:websocket链路建链失败 10000001:服务侧返回的异常信息 31000003:服务侧返回的异常信息 32000030:服务侧返回的异常信息 15:浏览器设置sdp异常 当异常类型为2或者3时,异常因素取值范围为: 1:系统CPU占用高 2:App CPU占用高 3:音频上行网络延时 4:音频上行网络抖动 5:视频上行网络延时 6:视频上行网络抖动 7:音频下行网络延时 8:音频下行网络抖动 9:视频下行网络延时 10:视频下行网络抖动 11:上行音频丢包 12:上行视频丢包 13:下行音频丢包 14:下行视频丢包 15:下行音频无声音 16:其他 17:对端用户离线 18:对端用户无码流 19:对端用户无帧率 20:本端服务器下行无码流 21:本端服务器下行无帧率 abnormal_factor_desc String 异常因素描述,支持国际化 当异常类型为1时,异常因素描述与异常因素对应,取值范围为: 建链失败 房间非空闲 服务器异常 服务器反馈503 鉴权失败 鉴权重试 时钟同步失败 url错误 终端内部异常 SDK发出的加入房间信令响应超时 web侧没有收到MSP下发的配置信息 websocket链路建链失败 服务侧返回的异常信息 服务侧返回的异常信息 服务侧返回的异常信息 浏览器设置sdp异常 当异常类型为2或者3时,异常因素描述与异常因素对应,取值范围为: 系统CPU占用高 App CPU占用高 音频上行网络延时 音频上行网络抖动 视频上行网络延时 视频上行网络抖动 音频下行网络延时 音频下行网络抖动 视频下行网络延时 视频下行网络抖动 上行音频丢包 上行视频丢包 下行音频丢包 下行视频丢包 下行音频无声音 其他 对端用户离线 对端用户无码流 对端用户无帧率 本端服务器下行无码流 本端服务器下行无帧率 其他情况,异常因素描述为:其他 状态码: 400 表6 响应Header参数 参数 参数类型 描述 X-Request-Id String 请求的唯一标识 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。
共100000条