音频流信息
音频流采用 16 位小端序 PCM 格式进行编码,再经 Base64 编码后嵌入 JSON 消息中传输至第三方平台。本文介绍通过
WebSocket 传输的 JSON 消息中所包含的字段。
字段说明
| 字段 | 说明 |
|---|---|
| channelid | 通话中每个成员的通话通道 ID。 |
| callid | 通话的唯一 ID。 |
| callflow | 通话场景。 注: 若该字段为空,表示通话不符合以下场景。
|
| number | 通话的主叫号码。 |
| status | 语音流当前的传输状态。
|
| audio | 通话的音频载荷,包含 PCM 编码的语音数据。 |
示例
- 一对一通话的 JSON 消息
- 对于一对一通话,PBX 会与第三方平台建立单个 WebSocket 连接,并通过该连接和由
channelid标识的两个逻辑通道交替发送通话双方的音频片段。- 正在通话中。
- 通道 1
{ "callid":"1755940023.7" "callflow":"" "audio":"UkSDFj82nJKLm90qweRTyVxZaBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890ABCD..." "number":"1009", "status":"process" "channelid":"P]SIP/1009-XXXXX005' } - 通道 2
{ "callid":"1755940023.7" "callflow":"" "audio":"WHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA..." "number":"1010", "status":"process" "channelid":"P]SIP/1010-XXXXX006' }
- 通道 1
- 通话结束。
- 通话 1
{ "callid":"1755940023.7" "callflow":"" "audio":"" "number":"1009", "status":"end" "channelid":"P]SIP/1009-XXXXX005' } - 通道 2
{ "callid":"1755940023.7" "callflow":"" "audio":"" "number":"1010", "status":"end" "channelid":"P]SIP/1010-XXXXX006' }
- 通话 1
- 正在通话中。
- 多方通话的 JSON 消息
-
对于多方通话,PBX 会为每个通话方与第三方平台建立独立的 WebSocket 连接,并分别发送各自的音频片段。注: 如果多方通话是由一对一通话升级而来的,PBX 会将与第三方平台建立的单个 WebSocket 连接切换为多个独立的 WebSocket 连接,JSON 消息中的以下示例展示了一个三方会议的 JSON 消息,其中每个通话方的音频均通过各自独立的 WebSocket 连接进行传输。
call_id和原通话方的channel_id保持不变。- 正在通话中。
- 通道 1
{ "callid":"1769052671.54" "callflow":"conference" "audio":"Lm90qweRTyVxZaBcDeFgHi5ccll..." "number":"1000", "status":"process" "channelid":"PJSIP/1000-XXXX0020' } - 通道 2
{ "callid":"1769052671.54" "callflow":"conference" "audio":"HiJkLmNoPqRsTuVwXyZ1234567890ABCD..." "number":"1001", "status":"process" "channelid":"PJSIP/1001-XXXX0021' } - 通道 3
{ "callid":"1769052671.54" "callflow":"conference" "audio":"WHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5c..." "number":"2131005", "status":"process" "channelid":"PJSIP/2131005-XXXX0022' }
- 通道 1
- 通话结束。
- 通道 1
{ "callid":"1769052671.54" "callflow":"conference" "audio":"" "number":"1000", "status":"end" "channelid":"PJSIP/1000-XXXX0020' } - 通道 2
{ "callid":"1769052671.54" "callflow":"conference" "audio":"" "number":"1001", "status":"end" "channelid":"PJSIP/1001-XXXX0021' } - 通道 3
{ "callid":"1769052671.54" "callflow":"conference" "audio":"" "number":"2131005", "status":"end" "channelid":"PJSIP/2131005-XXXX0022' }
- 通道 1
- 正在通话中。