首页 > 解决方案 > 如何记录与 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 客户端的语音数据作为一个对话捕获。

提前致谢。

标签: webrtcsip

解决方案


推荐阅读