跳到主要内容

媒体转发(Media Pass)

使用 Media Pass 功能可以将音频处理交给外部系统,RustPBX 负责协议部分。

Invite/Accept 命令的 option: CallOption 参数的 mediaPass: MediaPassOption 中配置:

参数

url

WebSocket 服务地址。

inputSampleRate

从 WebSocket 连接接收的音频采样率(也是 RTP/WebRTC 轨道的采样率)。

建议设置为:

  • SIP 通话: 16000hz
  • WebRTC 通话::
    • G722: 16000hz
    • Opus: 48000hz
    • 其他: 8000hz

outputSampleRate

从 WebSocket 连接发出的音频采样率 (也是外部服务会接收到的采样率) 如果和 inputSampleRate 不同,则需要进行重采样。

packetSize

数据包大小(默认:2560 字节)。

流程

当用呼入或者呼出会话建立时,会创建 Media Pass Track。和其他 Track 一样, Media Pass Track 的开始和结束都分别会触发 Track Start 和 Track End 事件。

Media Pass Track 会使用配置的地址加上参数请求外部 websocket 服务。示例:

ws://127.0.0.1:8080/?sample_rate=16000&packet_size=1024
  • sample_rate 为配置的 outputSampleRate
  • packet_size 为配置的 packetSize

连接成功后,Media Pass Track 会开始双向转发音频,如图:

转发
转发
Media Pass Track
Media Pass Track
RTP. 连接
RTP. 连接
RTP Track
RTP Track
电话
电话
语音流
语音流
WebSocket 服务
WebSocket 服务
Text is not SVG - cannot display