媒体转发(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为配置的outputSampleRatepacket_size为配置的packetSize
连接成功后,Media Pass Track 会开始双向转发音频,如图: