我正在尝试向我的客户自动呼叫,我已经设置并运行了 freepbx,现在我希望能够触发一些 nodejs 代码来进行呼叫,获取音频流并将其传递给 dialogflow 并播放 MP3 (或任何其他音频类型)根据对话流响应发送给客户。
我试过这个包:
https://github.com/versatica/JsSIP
我可以稳定通话并获取音频流。是的,那太好了,如果不是在浏览器上的 html 中......但后来我发现了这个!
https://github.com/versatica/jssip-node-websocket
看起来像我所有问题的答案,直到我尝试从我的 nodejs 脚本中拨打电话,令人惊讶的是,它不起作用,甚至不打算工作,它只是用于发送 sip 信号,但无法拨打电话因为包在 WebRTC 上中继(Wich 只在浏览器上运行)
然后我发现了这个问题:
没有 WebRTC 的 nodeJS 中的简单 SIP 电话
提到了一些名为 sip 的包,我需要尝试一下,哇,这是纯粹的 sip 通信,我对此知之甚少,但是,经过大量工作后,我设法连接到我的 freepbx,进行身份验证并放置一个电话!!那时一切似乎都很好,但现在……音频在哪里?
正如我在大量阅读后了解到 sip 只发出呼叫,所有媒体传输都由 RTP 执行,但我的问题是,我该如何实现?我需要创建一些 RTP 媒体服务器来处理这个问题,或者我需要做什么?任何关于正确方向的帮助、澄清或指导将不胜感激,提前致谢,并为我的英语不好而道歉。
这是我当前的代码:
const sip = require('sip');
const util = require('util');
const digest = require('sip/digest');
const rstring = () => Math.floor(Math.random() * 1e6).toString();
sip.start({
publicAddress: 'My public IP Address',
tcp: false,
logger: {
send: (message, address) => {
debugger; …Run Code Online (Sandbox Code Playgroud)