服务端接口
业务服务端对接 TiRTC 云端 tirtc-server-api(TGV1-HMAC-SHA256 鉴权), 为设备侧 TiRtcWhipConnect 签发 WHIP peer_id(service_desc)与 Bearer token。
tirtc-server-api 地址:https://api-tirtc.tange365.com。
TGV1-HMAC-SHA256 签名
与探鸽云端 OpenAPI 服务端签名一致,详见 服务端API接口签名算法Demo。
签发微信VoIP通话凭证:POST /v1/token/wxvoip
用途:根据当前微信VoIP通话会话与设备媒体能力,向探鸽平台申请 peer_id 与 token,由业务服务端在 wxa_join_voip_room 中一并下发给设备。
请求
Headers
| Header | 说明 |
|---|---|
Content-Type | application/json |
Authorization | TGV1 鉴权行 |
X-Tg-Algorithm | 算法名 |
X-Tg-Date | 请求时间(UTC) |
X-Tg-App-Id | 应用 ID,须与凭证 app_id 一致 |
X-Tg-Content-Sha256 | 请求体 SHA-256(十六进制小写) |
X-Tg-Signed-Headers | 参与签名的头名列表 |
以上与 TGV1 相关的头:格式与计算见 TGV1-HMAC-SHA256 签名。
Body(JSON)
| 字段 | 类型 | 说明 |
|---|---|---|
wx_session_key | string | 必填。微信 join_voip_room 通知中的 session_key |
wx_room_id | string | 必填。微信通知中的 room_id |
wx_session_token | string | 必填。微信通知中的 server_token |
wx_app_id | string | 必填。小程序 appId |
device_id | string | 必填。设备标识,须与下发推送中的设备身份一致 |
wx_model_id | string | 必填(示例要求配置)。微信硬件设备的微信VoIP通话模型 ID |
wx_payload | string | 可选。主叫透传 payload;不传或省略时视为空字符串 |
calling_timeout_sec | number | 可选。振铃超时(秒),默认 30 |
no_video | boolean | 可选。纯音频时为 true |
video_mt | string | 可选兼容字段;同时设置上下行视频格式:h264 / mjpeg / none。若同时传 up_video_mt/down_video_mt 且不一致,则请求失败 |
up_video_mt | string | 设备到微信小程序方向的视频格式:h264 / h265 / mjpeg / none;不要与 video_mt 同时使用 |
down_video_mt | string | 微信小程序到设备方向的视频格式:h264 / mjpeg / none;不要与 video_mt 同时使用 |
screen_width / screen_height | number | 非纯音频时的屏幕宽高 |
down_audio_mt | string | 微信小程序到设备方向的音频编码:alaw / amr / opus;不传默认 alaw |
audio_rate | number | 必填。仅支持 8000、16000 |
audio_channels | number | 必填。仅支持 1、2 |
业务服务端通常在收到微信 join_voip_room 后,结合微信通知字段与设备事先上报的媒体能力组装上述 JSON。
响应
HTTP 200 且业务成功时,正文为统一包装,示例形态:
json
{
"code": 0,
"msg": "ok",
"data": {
"peer_id": "whips://wxvoip?x_wx_session_key=...&x_device_id=...",
"token": "<Bearer token 字符串>"
}
}code !== 0:表示失败,msg含说明;勿将无效peer_id/token下发给设备。data.peer_id:即TiRtcWhipConnect(service_desc, ...)的第一个参数(完整whips://wxvoip?...URL)。data.token:即TiRtcWhipConnect(..., token, ...)的第二个参数。