设备呼叫小程序
更新时间不可用
通过该接口实现设备端向微信小程序发起呼叫。
https://api.sd-rtn.com/v2/miniapp/{appId}/voip/call/miniapp鉴权
appIdstring你的声网项目使用的 App ID。
设备呼叫小程序请求体。
声网相关配置。
appIdstring你的声网项目使用的 App ID。
channelNamestring设备端加入的 RTC 频道名。
robotUIDstring微呼叫服务加入 RTC 频道时使用的 UID。
deviceUIDstring设备端加入 RTC 频道时使用的 UID。
tokenstring微呼叫服务加入 RTC 频道时使用的 Token。
licensestringLicense 值,用于校验呼叫是否合法,校验结果会通过 NCS 事件 98 返回。详见获取并使用 License。
encryptionModestring加密模式。可以设为如下值:
AES_128_XTS: 128 位 AES 加密,XTS 模式AES_128_ECB: 128 位 AES 加密,ECB 模式AES_256_XTS: 256 位 AES 加密,XTS 模式SM4_128_ECB: 128 位 SM4 加密,ECB 模式AES_128_GCM: 128 位 AES 加密,GCM 模式AES_256_GCM: 256 位 AES 加密,GCM 模式AES_128_GCM2:(默认)128 位 AES 加密,GCM 模式。该加密模式需要设置盐(encryptionKdfSalt)AES_256_GCM2: 256 位 AES 加密,GCM 模式。该加密模式需要设置盐(encryptionKdfSalt)
如果不想启用加密,可以设置为 NONE。
encryptionKeystring加密的 Key 值,与设备端对应,encryptionMode 为 NONE 时,可以不填。
encryptionKdfSaltstring盐值,encryptionMode 为 NONE 时,可以不填。
从设备端向小程序端发送的视频祯属性。agora.source 和 wechat.sink 为对应关系,你可以参考 设置 Source 和 Sink了解更多细节。
videoCodecstring支持设为 JPEG、H264、H265。
videoWidthinteger视频的宽。
videoHeightinteger视频的高。
videoFrameRateinteger视频帧率。
设备端接收小程序端的视频祯属性。agora.sink 和 wechat.source 为对应关系,你可以参考 设置 Source 和 Sink了解更多细节。
videoTranscodeboolean是否需要对接收到的视频祯进行转码。如果 agora.sink 中的 videoCodec 设为 JPEG,则需要设置为 true。
audioCodecstring支持设为 PCMU、PCMA、G722、AAC。
videoCodecstring支持设为 JPEG、H264、H265。
videoWidthinteger视频的宽。
videoHeightinteger视频的高。
videoFrameRateinteger视频帧率。
微信小程序相关配置。
openIdstring小程序用户的唯一 ID。该 ID 需要用户授权。
appIdstring微信小程序的 App ID。
deviceIdstring设备 ID。
modelIdstring设备的 Model ID。
encodeVideoRotationintegerlandscapeboolean设备端接收小程序推流是否为 4:3 的流。
true: SDK 收到的流为横屏,即宽高比为 4:3。该宽高比下,视频分辨率可以设为 320 × 240、480 × 352、640 × 480、1280 × 720、1920 × 1080false: SDK 收到的流为竖屏,即宽高比为 3:4。该宽高比下,视频分辨率可以设为 240 × 320、352 × 480、480 × 640、720 × 1080、1080 × 1920
subscribeVideoLengthinteger设备端订阅视频分辨率的固定长边值。适用于不希望收到可变分辨率视频流的设备。如果不使用此功能,SDK 收到的视频流在不同的网络环境下会有不同的分辨率。如果想开通该功能,需要同时向微信提交 App ID,待开通订阅机制后才生效。支持设为如下值:
320: video_landscape = true 时收到的是 320 × 240,video_landscape = false 时收到的是 240 × 320640: 不支持 video_landscape = true 模式,video_landscape = false 时收到的是 480 × 640
roomTypestring房间类型,支持设为如下值:
video:视频通话voice:音频通话
listenerNamestring微信端显示呼入名字,在小程序授权设备时指定。该参数设置不生效,可以填写任意字符串,如 "m"。
versionTypeinteger接听方小程序的类型:
0:正式版1:开发版2:体验版
querystring小程序页面自定义参数。
callerCameraStatusinteger小程序是否打开远端视图,以便看到拨打方:
0:打开1:关闭
listenerCameraStatusinteger小程序是否打开本地视图,以便看到接听方:
0:打开1:关闭
从小程序端向设备端发送的视频祯属性。wechat.source 和 agora.sink 为对应关系,你可以参考 Source 和 Sink 对应关系了解更多细节。
videoCodecstring支持 H264、H265。
videoWidthinteger视频的宽。
videoHeightinteger视频的高。
videoFrameRateinteger视频帧率。
小程序端接收设备端发送的视频祯属性。wechat.sink 和 agora.source 为对应关系,你可以参考 Source 和 Sink 对应关系了解更多细节。
videoTranscodeboolean是否需要对接收到的视频祯进行转码。如果 agora.source 中的 videoCodec 为JPEG,则需要设置 true。
videoCodecstring支持 H264、H265。
videoWidthinteger视频的宽。
videoHeightinteger视频的高。
videoFrameRateinteger视频帧率。
响应
请求成功。
响应 Body
标准响应格式。
codeinteger状态码。
msgstring提示信息。
taskIdstring本次请求的唯一标识符。该字段的值和 NCS 事件中返回的 sid 一致,你可以使用该字段定位出现异常的请求,然后排查问题。
请求示例
curl --request POST \
--url "https://api.sd-rtn.com/v2/miniapp/:appId/voip/call/miniapp" \
--header 'Authorization: Basic <credentials>' \
-H 'Content-Type: application/json' \
-d '{
"agora": {
"channelName": "voip123456",
"robotUID": "123",
"deviceUID": "456",
"token": "aabxxxxxxxxxxxx63",
"license": "sdfjiojefkkglekr",
"appId": "aabxxxxxxxxxxxx63",
"encryptionMode": "NONE",
"encryptionKey": "test123",
"encryptionKdfSalt": "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq",
"source": {
"videoCodec": "H264",
"videoWidth": 640,
"videoHeight": 480,
"videoFrameRate": 15
},
"sink": {
"audioCodec": "PCMA",
"videoTranscode": false,
"videoCodec": "H264",
"videoWidth": 640,
"videoHeight": 480,
"videoFrameRate": 15
}
},
"wechat": {
"openId": "ox-xxxxxxxxxxxxA",
"appId": "wxxxxxxxxxxd6",
"deviceId": "test_sn_1",
"modelId": "axxxxxxxxw",
"encodeVideoRotation": 1,
"landscape": true,
"subscribeVideoLength": 320,
"roomType": "video",
"listenerName": "m",
"versionType": 1,
"query": "a=b",
"callerCameraStatus": 0,
"listenerCameraStatus": 0,
"source": {
"videoCodec": "H264",
"videoWidth": 1920,
"videoHeight": 1080,
"videoFrameRate": 15
},
"sink": {
"videoTranscode": false,
"videoCodec": "H264",
"videoWidth": 640,
"videoHeight": 480,
"videoFrameRate": 15
}
}
}'响应示例
{
"code": 200,
"msg": "ok",
"taskId": "1NxxxxxxxxxxxxxxxxxV"
}