问题标签 [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.
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' 安装,而不是通过编译源代码,则该目录不存在),但仍然没有乐趣。
sip - 如何从 FusionPBX 视频会议室获取视频流
我正在使用 SIP.js 连接到 FusionPBX 视频会议室,但是当呼叫者加入时,所有呼叫者都会获得一个呼叫者视频流。
我怎样才能让房间里的所有流来处理它们并互相查看,这样每个人都可以看到每个人的视频?
有什么我可以使用的活动吗?喜欢on("join")
什么的?所以当有人连接我得到他的流?
SIP.js 有这些事件,但它只适用于点对点,而不是房间。
还有其他方法可以让它与 FreeSWITCH 一起使用吗?
我怎样才能让它工作?
javascript - 如何通过 SIPJS 向其他呼叫者发送(屏幕共享流)
我正在使用SIPJS使用网络浏览器在 2 个呼叫者之间进行呼叫。
现在我想添加(屏幕共享)功能,到目前为止,我设法打开了 chrome 屏幕共享窗口,我得到了流并在视频元素中播放了它。
但我真正需要的是将此流发送给其他呼叫者,以便他可以看到我的屏幕共享。
到目前为止我已经尝试过:
- 在我获得(屏幕共享流)后,我将其传递给
session.sessionDescriptionHandler.peerConnection
,然后使用这些事件捕获流(或跟踪) 但是没有任何事件得到任何东西。onTrackAdded , onaddTrack , onaddStream , onstream
- 还尝试
video constraint
在通话开始之前发送流
- 甚至尝试发送流
video constraint
也没有工作。
这是我的代码
首先获取屏幕共享流,并发送给其他用户
然后在另一边赶上那条溪流
但仍然从上面的代码中一无所获
那么如何在通话开始后将该流或音轨传递给其他来电者呢?
太感谢了
javascript - SIP js UserAgent API,我不知道如何与dom元素建立关系,版本0.15x
我不知道如何与 dom 元素建立关系,版本 0.15x,在 0.06x 版本中是options.media.render
,但是在 0.15x 中是什么
已解决请参阅此附加媒体
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
命令?如果您需要查看日志,请告诉我,因为它们很长。
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
?是什么让端口发生变化?如何避免耗时的端口切换?
reactjs - SIP 与 JS 中的呼叫会议集成
我正在开发一个将 React.js 集成为前端框架的 Electron 应用程序,它更像是一个调用应用程序。在那个应用程序特定的用户可以有多个呼入、呼出、静音 | 取消静音,保持 | 挂断电话等。为了实现这个功能,我们有自己的 sip 服务器,为了集成该 SIP 服务器,我们在前端使用了一个名为SIP.JS的库。SIP.JS 为我们提供了几乎所有预定义的功能来拨打电话、接听电话、静音、取消静音、盲转接、出席转接等。但是在召开电话会议时,它没有相应的文档. SIP.JS 向我们说明我们可以使用FreeSWITCH以及ASTERISK为了实现功能,但根据我们的具体要求,不需要集成额外的服务器。我们还参考了电话会议的rfc 文档,但没有这样的进展。
到目前为止,我们所做的是:
- 注册了userAgent
- 集成来电代码
- 集成拨出电话代码
- 实现多个会话处理,用于多个调用
- 静音 | 取消静音,按住 | 取消持有。
- DTMF 功能
- 盲转,参加转
- 振铃所有设备
在这种电话会议的场景中,我想我们必须对传入和传出会话处理函数进行更改。
- 对于上下文中的注册和来电:
- 传出功能:
- 会话数组由以下人员维护:
- 存储所有会话的变量是:
注意: getUAConfig() 会在应用程序启动后立即调用。dialerFun() 当我们想拨打一个特定的号码时被调用。在 getUAConfig 和 dialerFun 中都会调用 sessionInfoAdd(),因为它们是用于呼入和呼出的代码。当 sessionInfoAdd() 被触发时,我们返回的特定会话被添加到 sessionInfo (Array) 中以维护会话。
webrtc - ICE 使用 SIP.js 重启
使用 SIP.js 时重新启动 ICE 的正确程序是什么?(v0.20.0)
这就是我正在尝试的:
它似乎执行没有错误,但也没有结果。FireFox 调试工具“about:webrtc”显示“ICE 重新启动:0”,所以我猜它甚至没有开始重新启动。
ps:失败状态是通过重新启动 RTP 引擎(Kamailio 设置)引起的。在 RTP 引擎重新启动后,音频仍然会持续大约 20 秒,并且仅当 ICE 状态更改为“失败”时音频才会停止。