webrtc - 如何记录与 SIP 客户端进行的通话的双方
问题描述
我正在尝试用sipML5录制 chrome 中的通话。
所以基本上通话处理工作正常,通话完美,双方都能完美听到对方的声音。
当我想记录通话时,问题就来了。所以我只是做了最低限度的录音。
chunks = [];
navigator.mediaDevices.getUserMedia({audio:true})
.then(stream => {
rec = new MediaRecorder(stream);
rec.ondataavailable = e => {
chunks.push(e.data);
}
})
.catch(e=>console.log(e));
然后与某人开始通话,它响起,他们接听,然后我rec.start();
在控制台中接听。然后在 5 秒的对话后,我结束通话并rec.stop();
在控制台中进行操作。
然后我这样做:
blob = new Blob(chunks,{type:'audio/ogg'});
$('.audio-remote', document).attr('src',URL.createObjectURL(blob))
创建 blob 并为音频元素提供所需的 src。
然后该音频元素立即开始播放音频,它只是对话的浏览器端。手机一侧没有任何声音。所以只有我通过麦克风发出的声音会被记录下来。
现在我不是所有 WebRTC 方面的专家,但看起来 getUserMedia 为您提供了仅包含您的设备和输入的流,与您与另一方进行 sip 诱导呼叫这一事实无关。那么显然这就是 sipML5 在内部必须做的就是接受我的输入并将其发送给我们使用的 sip 提供商,后者将其转换为电话呼叫。来自电话的声音只是通过那个音频元素呈现给我。
所以我想知道是否有办法按原样捕捉这个对话?将我的输入和来自 sip 客户端的语音数据作为一个对话捕获。
提前致谢。
解决方案
推荐阅读
- ajax - 页面 URL 是否会随 AJAX 更改?
- python - gRPC 是否有能力为调用添加最大重试次数?
- sql - SQL 磁盘空间不足警报
- r - 解决 OS vs list.files() 处理重音字符
- python - (空白)在我的石头剪刀布程序中没有定义
- compiler-construction - LLVM 中是否存在 MachineFunction CFG 和 IR Function CFG 的一对一映射?
- jquery - 如何使脚本识别模板节点红色中的范围?
- html - 相同的代码,不同的结果css?
- swift - 有没有办法可以将 KVP 字典转换为字符串?
- r - 如何根据 R 中的 shapefile 提取 netcdf 文件中的数据?