Initiating a Call From the Server

集成效果展示

您可以通过服务端完成发起通话、输入上行音视频媒体流。客户端接听通话的效果如下:
1 V 1 通话
群组通话



开始接入

服务端发起通话

请求 URL 示例:

https://console.tim.qq.com/v4/call_engine_http_srv/start_call_by_robot?sdkappid=88888888&identifier=administrator&
usersig=xxx&random=99999999&contenttype=json
参数
含义
取值
xxxxxx
SDKAppID 所在国家/地区对应的专属域名
中国:console.tim.qq.com、新加坡:adminapisgp.im.qcloud.com
https
请求协议
请求协议为 HTTPS,请求方式为 POST
console.tim.qq.com
请求域名
固定为 console.tim.qq.com
ver
协议版本号
固定为 v4
servicename
内部服务名,不同的 servicename 对应不同的服务类型
示例:v4/call_engine_http_srv/get_call_info,其中 call_engine_http_srv 为 servicename
command
命令字,与 servicename 组合用来标识具体的业务功能
示例:v4/call_engine_http_srv/get_call_info,其中 get_call_info 为 command
sdkappid
App 在即时通信 IM 控制台获取的应用标识
在申请接入时获得
identifier
用户名,调用 REST API 时必须为 App 管理员账号
参见 App 管理员
usersig
用户名对应的密码
参见 生成 UserSig
random
标识当前请求的随机参数
32位无符号整数随机数,取值范围 0 - 4294967295
contenttype
请求格式
固定值为 json

请求包示例

以下是服务端(userId:robot)向客户端(userId:jack)请求视频通话的请求包示例:
{
"Robot_Account":"robot", // robot userid,不会对robot进行心跳检测
"CalleeList_Account":["jack"],
"Timeout":300000,
"UserData":"userdata-12345687",
"CallInfo":{
"MediaType": "Video",
"RoomId":"roomid-test",
"RoomIdType":2
},
"OfflinePushInfo": {
"PushFlag": 0,
"Title":"这是推送标题",
"Desc": "这是离线推送内容",
"Ext": "{\"entity\":{\"key1\":\"value1\",\"key2\":\"value2\"}}"
}
}
参数
含义
Robot_Account
机器人 ID
CalleeList_Account
被叫成员列表
Timeout
超时时间
CallInfo.MediaType
通话类型。视频通话:"video" 语音通话:"Audio"
CallInfo.RoomId
房间ID。分为 Int 和 String 两种类型
CallInfo.RoomIdType
房间ID的类型。 Int 类型:1 String 类型:2
OfflinePushInfo
离线推送参数,详情请参考 即时通信IM消息格式描述

应答包示例

{
"ErrorCode": 0,
"ErrorInfo": "",
"ActionStatus": "OK",
"RequestId": "Id-01f93f1a85c34d64a0e4cadb371deef8-O-Seq-997346",
"Response": {
"CallId": "35fd577d-1d10-4201-a40d-6d7316560986",
"CallResult": [
{
"Callee_Account": "jack",
"ResultCode": 0
}
]
}
}
参数
含义
ErrorCode
错误码,0表示成功,非0表示失败
ErrorInfo
错误信息
ActionStatus
请求处理的结果,OK 表示处理成功,FAIL 表示失败
RequestId
唯一请求 ID,每次请求都会返回,定位问题时需要提供该次请求的 RequestId
Response
CallId: 通话 ID。 CallResult: 通话结果

服务端输入媒体流

TRTC 服务端调用推流接口推在线媒体流,可参考 输入媒体流进房
注意:
输入在线媒体流(StartStreamIngest)中关于 RoomIdType 的参数跟服务端发起通话中的不一致:
服务端发起通话中 RoomIdType 的参数解释:1 表示 Int 类型、2表示 String 类型 ;
输入在线媒体流中 RoomIdType 的参数解释:0 表示 Int 类型、1表示 String 类型;