问题标签 [sipjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1202 浏览

google-chrome - wss 连接失败:连接建立错误:net::ERR_CERT_COMMON_NAME_INVALID

我已经建立了一个可以工作的 FreeSwitch 盒子,并且可以使用 ws 连接在桌面上进行内部调用。稍后,我将盒子配置为使用 SSL 和 Letsencrypt 颁发的证书。SSL 证书由https://www.sslshopper.com/ssl-checker.htm验证,并且 Chrome 中的 https:// 连接显示良好的锁定标志。

然后我将代码从 ws 更改为 wss(见下文;公共 IP 地址被屏蔽。),但在 Chrome 中出现“net::ERR_CERT_COMMON_NAME_INVALID”错误。

顺便说一句,我已经尝试更改为以下 2 个地方:

1)用来自 Letsencrypt 的有效证书/密钥附加或替换 /etc/freeswitch/tls/wss.pem,不高兴。

2)在 /usr/local/freeswitch/certs 中创建了 wss.pem(如果通过 'apt install freeswitch' 安装,而不是通过编译源代码,则该目录不存在),但仍然没有乐趣。

0 投票
1 回答
978 浏览

sip - 如何从 FusionPBX 视频会议室获取视频流

我正在使用 SIP.js 连接到 FusionPBX 视频会议室,但是当呼叫者加入时,所有呼叫者都会获得一个呼叫者视频流。

我怎样才能让房间里的所有流来处理它们并互相查看,这样每个人都可以看到每个人的视频?

有什么我可以使用的活动吗?喜欢on("join")什么的?所以当有人连接我得到他的流?

SIP.js 有这些事件,但它只适用于点对点,而不是房间。

还有其他方法可以让它与 FreeSWITCH 一起使用吗?

我怎样才能让它工作?

0 投票
1 回答
455 浏览

javascript - 如何通过 SIPJS 向其他呼叫者发送(屏幕共享流)

我正在使用SIPJS使用网络浏览器在 2 个呼叫者之间进行呼叫。

现在我想添加(屏幕共享)功能,到目前为止,我设法打开了 chrome 屏幕共享窗口,我得到了流并在视频元素中播放了它。

但我真正需要的是将此流发送给其他呼叫者,以便他可以看到我的屏幕共享。

到目前为止我已经尝试过:

  • 在我获得(屏幕共享流)后,我将其传递给session.sessionDescriptionHandler.peerConnection,然后使用这些事件捕获流(或跟踪) 但是没有任何事件得到任何东西。onTrackAdded , onaddTrack , onaddStream , onstream
  • 还尝试video constraint在通话开始之前发送流
  • 甚至尝试发送流video constraint

也没有工作。

这是我的代码

首先获取屏幕共享流,并发送给其他用户

然后在另一边赶上那条溪流

但仍然从上面的代码中一无所获

那么如何在通话开始后将该音轨传递给其他来电者呢?

太感谢了

0 投票
0 回答
625 浏览

javascript - SIP js UserAgent API,我不知道如何与dom元素建立关系,版本0.15x

我不知道如何与 dom 元素建立关系,版本 0.15x,在 0.06x 版本中是options.media.render,但是在 0.15x 中是什么

已解决请参阅此附加媒体

0 投票
1 回答
600 浏览

webrtc - 如何为 WebRTC 设置 SIP.JS 库的会话计时器?

我正在使用 Sip.JS 库开发 WebRTC 项目。除了远程对等方每 30 秒自动放弃会话的一件事之外,音频和视频的一切都按预期工作。检查日志,我看到了这些消息:Timer M expired for INVITE client transaction在调用方和Timer L expired for INVITE server transaction远程方。一直在这里查看 Sip.JS 文档,https://sipjs.com/api/0.15.0/但似乎我无法设置会话计时器。我曾经使用一个名为 JSSIP 的不同 WebRTC JS 库,它们有一个名为的变量session_timers,允许我启用/禁用会话计时器。所以问题:我可以禁用 Sip.JS 中的会话计时器吗?如果我不能如何触发re-invite命令?如果您需要查看日志,请告诉我,因为它们很长。

0 投票
1 回答
282 浏览

webrtc - 如何加快音频连接

使用 SipJs 0.17.1 和 freeswitch 1.10.5。Debian 10. stun:stun.l.google.com:19302 <param name="apply-candidate-acl" value="wan.auto"/>

如果用户使用任何家庭或办公室互联网并在接到电话时,音频会在约 0.2 秒内出现。

但是当用户使用移动互联网和接听电话时,音频会在大约 1.5 秒内出现(主观上更长)。

为什么会出现线条Auto Changing audio stun/rtp/dtls?是什么让端口发生变化?如何避免耗时的端口切换?

0 投票
1 回答
332 浏览

reactjs - SIP 与 JS 中的呼叫会议集成

我正在开发一个将 React.js 集成为前端框架的 Electron 应用程序,它更像是一个调用应用程序。在那个应用程序特定的用户可以有多个呼入、呼出、静音 | 取消静音,保持 | 挂断电话等。为了实现这个功能,我们有自己的 sip 服务器,为了集成该 SIP 服务器,我们在前端使用了一个名为SIP.JS的库。SIP.JS 为我们提供了几乎所有预定义的功能来拨打电话、接听电话、静音、取消静音、盲转接、出席转接等。但是在召开电话会议时,它没有相应的文档. SIP.JS 向我们说明我们可以使用FreeSWITCH以及ASTERISK为了实现功能,但根据我们的具体要求,不需要集成额外的服务器。我们还参考了电话会议的rfc 文档,但没有这样的进展。

到目前为止,我们所做的是:

  1. 注册了userAgent
  2. 集成来电代码
  3. 集成拨出电话代码
  4. 实现多个会话处理,用于多个调用
  5. 静音 | 取消静音,按住 | 取消持有。
  6. DTMF 功能
  7. 盲转,参加转
  8. 振铃所有设备

在这种电话会议的场景中,我想我们必须对传入和传出会话处理函数进行更改。

  1. 对于上下文中的注册和来电:
  1. 传出功能:
  1. 会话数组由以下人员维护:
  1. 存储所有会话的变量是:

注意: getUAConfig() 会在应用程序启动后立即调用。dialerFun() 当我们想拨打一个特定的号码时被调用。在 getUAConfig 和 dialerFun 中都会调用 sessionInfoAdd(),因为它们是用于呼入和呼出的代码。当 sessionInfoAdd() 被触发时,我们返回的特定会话被添加到 sessionInfo (Array) 中以维护会话。

0 投票
1 回答
31 浏览

webrtc - ICE 使用 SIP.js 重启

使用 SIP.js 时重新启动 ICE 的正确程序是什么?(v0.20.0)

这就是我正在尝试的:

它似乎执行没有错误,但也没有结果。FireFox 调试工具“about:webrtc”显示“ICE 重新启动:0”,所以我猜它甚至没有开始重新启动。

ps:失败状态是通过重新启动 RTP 引擎(Kamailio 设置)引起的。在 RTP 引擎重新启动后,音频仍然会持续大约 20 秒,并且仅当 ICE 状态更改为“失败”时音频才会停止。