音频流信息

音频流采用 16 位小端序 PCM 格式进行编码,再经 Base64 编码后嵌入 JSON 消息中传输至第三方平台。本文介绍通过 WebSocket 传输的 JSON 消息中所包含的字段。

字段说明

字段 说明
channelid 通话中每个成员的通话通道 ID。
callid 通话的唯一 ID。
callflow 通话场景。
注: 若该字段为空,表示通话不符合以下场景。
  • ivr:IVR
  • queue:队列
  • ringgroup:响铃组
  • cfd:通话流程
  • conference:会议室
  • multicast_paging:广播组
number 通话的主叫号码。
status 语音流当前的传输状态。
  • process:进行中
  • end:已结束
audio 通话的音频载荷,包含 PCM 编码的语音数据。
提示: 要获取通话的更多细节,可使用音频流中的 callid 字段调用 API 进行查询。更多信息,请参见 开发者指南 - 查询通话

示例

通话方的数量不同,音频传输方式也有所不同。
一对一通话的 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
      {
          "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'
      }
多方通话的 JSON 消息
对于多方通话,PBX 会为每个通话方与第三方平台建立独立的 WebSocket 连接,并分别发送各自的音频片段。
注: 如果多方通话是由一对一通话升级而来的,PBX 会将与第三方平台建立的单个 WebSocket 连接切换为多个独立的 WebSocket 连接,JSON 消息中的 call_id 和原通话方的 channel_id 保持不变。
以下示例展示了一个三方会议的 JSON 消息,其中每个通话方的音频均通过各自独立的 WebSocket 连接进行传输。
  • 正在通话中。
    • 通道 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
      {
          "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'
      }