问题标签 [jingle]

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 回答
645 浏览

xmpp - 使用带有叮当声的候选冰块

我正在尝试使用 strophe 使用 webrtc videochat 来做我的第一个 xmpp 客户端。strophe.jingle

它的文档很少,所以我最终窃取了示例代码来尝试让它工作。

我通过 XMPP 成功地将视频聊天邀请发送给其他用户,并且该应用程序正在尝试设置聊天。然而,它给了我这样的关于 ICE 候选人的错误(它抛出 6-8):

addIceCandidate failed SyntaxError: 无法在“RTCPeerConnection”上执行“addIceCandidate”:无法添加 ICE 候选。a=candidate 2565634929 1 udp 41819903 66.228.45.110 64264 typ relay raddr 79.260.27.217 rport 58182 generation 0

我已经做了足够多的搜索,意识到我需要设置 ice 服务器 url 或其他东西。但我不知道怎么做。

我试过了:

我正在发送这样的邀请

在这一点上,我觉得这一切都在我的脑海中,如果没有任何真正的文档,真的很难阅读它。如果有人能给我一根骨头,我真的很高兴。

0 投票
2 回答
8242 浏览

xmpp - WebRTC、Jingle 和 XMPP 有什么区别?

WebRTC 和 Jingle 有什么区别。我将使用 XMPP ejabberd 服务器构建基于 Android 的语音呼叫应用程序。那么,其中哪一个将是 Android 上语音通话的最佳选择?

0 投票
0 回答
79 浏览

java - 在android中,如何在从服务器下载视频文件时添加叮当声

在这段代码中,当视频从服务器下载到移动设备时,我需要应用叮当声

MainActivity.java 包 ivmshd.mcu.com.demo;

在视频视图中播放视频的位置。此视频是从服务器获取的视频

0 投票
0 回答
273 浏览

xmpp - 如何在 smack 4.2.0 中为没有命名空间的元素添加提供程序

我在谷歌搜索中找不到任何关于此的内容,但我离 XMPP 专家还很远,所以答案可能很明显。我想知道解析没有显式命名空间的自定义子元素的最佳方法。在这种情况下,我正在解析一些 jingle 元素,其中一些没有任何明确的命名空间(例如,payload-type,或者parameter没有明确声明命名空间而只是继承它)。

例如:

在这里,payload-type 和 parameter 都将从 description ( urn:xmpp:jingle:apps:rtp:1) 继承父命名空间。但是参数也可以在其他地方使用:

在这里,参数将具有urn:xmpp:jingle:apps:rtp:ssma:0命名空间。

向 ProviderManager 添加自定义提供程序时,它需要传入显式命名空间,因此我不能只传入一个空字符串(ProviderManager.addExtensionProvider 显式检查)。

一种选择是注册parameter提供者,例如,在每个可能的命名空间下,但这感觉不太好。

另一种选择是更高级别的提供程序(具有显式命名空间的提供程序)解析任何没有命名空间的嵌套子元素,而不是仅仅递归地获取适当的扩展提供程序并调用 parse。似乎向 ProviderManager 注册所有内容是一种更惯用的方式。这可能会使用某种内部版本的提供程序管理器,它只适用于名称。因此,一个元素会首先在官方 ProviderManager 中查找任何匹配的内容,然后尝试其内部版本。

有没有一种惯用的方法来实现这一目标?也许我完全错过了什么?

我确实在这个问题中看到了名称空间是预期的,但我没有看到Jingle RTP spec中列出的任何名称。所以也许我上面的想法之一是正确的,但我想知道哪个最适合图书馆。

谢谢

0 投票
1 回答
1151 浏览

dns - 为 ejabberd STUN 添加 DNS 记录

我正在使用 Ejabberd 服务器开发一个聊天应用程序。我想实现音频和视频通话。为此,我想使用 Jingle。

但是,jingle 需要一个 stun 服务器,所以我试图将 Ejabberd 配置为一个。

在文档(https://docs.ejabberd.im/admin/configuration/#stun-and-turn)中,据说您必须添加 DNS 记录,如下所示: _stun._udp IN SRV 0 0 3478 stun.example.com. _stun._tcp IN SRV 0 0 3478 stun.example.com. _stuns._tcp IN SRV 0 0 5349 stun.example.com.

但是,我不知道在哪里进行此配置(我正在使用 Windows 机器)。有人能帮助我吗 ?

谢谢

0 投票
1 回答
306 浏览

node.js - Webrtc:无法处理 WebRTC 答案

我使用 ejabberd + stanza io 来构建一个实时消息和音频呼叫网站。我设法打了我的第一个音频电话

当我尝试拨打电话时出现问题

chrome浏览器日志显示 Could not process WebRTC answer

通过使用chrome://webrtc-internals调试器工具,我发现setremotedescription失败并出现错误:

这就是我用来开始通话的方法:

我究竟做错了什么?firefox如何成功建立呼叫但chrome无法(在opera上测试结果相同(失败))

完整的JS代码

0 投票
0 回答
30 浏览

java - 在java中创建一个具有公共IP和内部IP的套接字

我们正在尝试在我们的应用程序中实现 xmpp 叮当协议,叮当声结构如下:

如您所见,我们有两个 IP 和两个端口,一个是公共的,另一个是内部的(如果我没记错的话,在 NAT 后面)

所以在java中我们应该使用什么样的套接字来实现两个客户端之间的p2p。

0 投票
0 回答
680 浏览

android - How to use the ip and port returned from a STUN server

hope your having a nice day . im building a Video Call application using XMPP and Jingle and direct ByteStream from phone to phone . in order to do so i noticed i need a stun server to get public ip and port of android devices and send them to the other party , im getting the public ip like this

then i send the result to the other party and open up a SocketServer on this client using given port , but still i can not connect to this ServerSocket over internet , or probably i am doing some thing wrong ? can you please help me how should i use STUN or TURN results ? thanks

and here is my connecting side of Jingle just in case

0 投票
1 回答
205 浏览

video-streaming - JICOFO:参与者不支持捆绑包,这是必需的

我正在使用自定义客户端连接到 jitsi 中创建的会议室。但我得到以下异常:

org.jitsi.jicofo.AbstractChannelAllocator.log() 创建报价时出错 org.jitsi.jicofo.UnsupportedFeatureConfigurationException:参与者不支持捆绑包,这是 org.jitsi.jicofo.Participant.setSupportedFeatures(Participant.java:280) 所必需的org.jitsi.jicofo.ParticipantChannelAllocator.createOffer(ParticipantChannelAllocator.java:93) 在 org.jitsi.jicofo.AbstractChannelAllocator.doRun(AbstractChannelAllocator.java:178) 在 org.jitsi.jicofo.AbstractChannelAllocator.run(AbstractChannelAllocator.java:150)在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java :1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker。在 java.lang.Thread.run(Thread.java:748) 处运行(ThreadPoolExecutor.java:624)

我正在使用 LibJitsi ( https://github.com/jitsi/libjitsi ) 和 jirecon ( https://github.com/linhnv5/jirecon )。jirecon 是客户。客户说

无法获取 session-init 数据包,可能 MUC 已锁定

由于 jicofo 的错误,这就是 jingle session 也没有建立的原因。

任何人都可以帮助解决这个问题吗?

0 投票
0 回答
102 浏览

react-native - Stanza Jingle 无法在 React Native 中使用 XMPP 服务器进行 webRTC 信令

我正在使用 react-native 开发 XMPP 聊天应用程序。我正在使用节库与 XMPP 服务器进行通信。文字聊天工作正常。现在我正在使用 webRTC 集成视频聊天。我想使用 XMPP 服务器作为我的信令服务器。我正在使用jingle为 webRTC 通信创建媒体会话。但是当我试图创建一个 RTCPeerConnection 时,它总是返回未定义。

这是我的反应原生代码:

这就是我尝试建立会话的方式。但它抛出以下错误:

RTCPeerConnectionUndefined

问题出现在SessionManager.js

这里的 stanza_shims_1.RTCPeerConnection 总是未定义的。所以我尝试用react-native-webrtc 替换 RTCPeerConnection(不是正确的方法)。然后会话被启动并且能够发送用于信令的数据包。但是该节中的侦听器不适用于react-native-webrtc。谁能帮我完成这项工作?