XSF Discussion - 2024-01-15


  1. jjrh

    Is there only one xmpp talk at fosdem?

  2. jjrh

    And only one day of the realtime room?

  3. MattJ

    Correct

  4. latex

    Hey all, here's my personal collection of XMPP specifications that have been lost, and I wish would have been given a chance

  5. latex

    https://disroot.org/upload/065a5017-15c1-7c64-8910-75781cc2b090/Lost_XMPP_Specifications.zip

  6. MattJ

    Do you have a summary that's not a zip file?

  7. jonas’

    mmm zip file uploaded by stranger in the internet, I'm sure gonna click that :-)

  8. MattJ

    Right :)

  9. MattJ

    Here's the summary: https://paste.debian.net/hidden/2fcd44db/

  10. MattJ

    I'm curious how these came to be "lost"

  11. Dele Olajide

    I am currently implementing pubsub of user media (audio/video) streams in XMPP using WebRTC-HTTP Ingestion/Egress Protocols (WHIP/WHEP). I wrote an XEP to document what I am doing. If anyone is interested, please have a quick read. Reviews, feedback or comments will be appreciated. The primary use case is broadcasting. https://igniterealtime.github.io/openfire-broadcastbox-plugin/xep/xep-xxxx-user_media_streams-01-01.xml

  12. latex

    Dele Olajide: is this supposed to be an alternative to e.g. video streaming in say, Discord, Twitch, or YouTube?

  13. latex

    Because I'm working on a similar project that is not XMPP-related

  14. latex

    > I'm curious how these came to be "lost" They are archives of lost specifications I took from the wayback machine, originally listed on http://hancke.name/jabber/

  15. Dele Olajide

    >latex : is this supposed to be an alternative to e.g. video streaming in say, Discord, Twitch, or YouTube? I would say complimentary rather than alternative as most video streaming services will support WHIP and WHEP at some point.

  16. latex

    I'm unfamiliar with this WHIP and WHEP

  17. latex

    What does it do?

  18. latex

    I'm not a fan of using HTTP for real time communications, because TCP is too slow

  19. Dele Olajide

    HTTP signalling protocol for Web-RTC using single request and response of media session data. See https://www.meetecho.com/blog/whip-whep/

  20. latex

    I'm quite new to working with WebRTC. Mainly because there doesn't really exist a meaningful server implementation I can immediately deploy, so sorry for any confusion. I hope the media stream isn't transmitted over HTTP or TCP but iirc WebRTC uses some kind of UDP transport, doesn't it?

  21. latex

    That article is still confusing to me. I don't know why HTTP plays a role at all here

  22. latex

    I have deployed media streaming servers that use RTMP and SRT, neither of which require HTTP. In fact, RTMP has one of the most standard ways to access content from a client like VLC, which is still very experimental within SRT. With WebRTC, there doesn't seem to be any standard way to access a stream

  23. MattJ

    WebRTC defines how two parties can connect to each other, but it requires a signalling protocol to help those parties exchange the necessary information before the WebRTC stream can be started

  24. latex

    Hmm

  25. latex

    Well, that confuses me. But I have seen real implementations of WebRTC that intrigue me, like for example there's a screen sharing web app called screego

  26. latex

    I don't know of any WebRTC server that can be directly consumed with something like ffmpeg

  27. latex

    Most WebRTC solutions seem to require an entire web browser

  28. latex

    I wish to make video streaming accessible to native computer programs and to be accessible to ffmpeg directly. SRT and RIST seem to support that, but I'm having trouble wrapping my head around WebRTC

  29. MattJ

    Because they mostly use HTTP to a web server for signalling and use the browser's built-in WebRTC implementation to establish the media connection

  30. MattJ

    In XMPP audio/video calls use XMPP for signalling, and most implementations use libwebrtc for the media connection

  31. latex

    Is that how Jingle works, or is it different?

  32. MattJ

    The signalling is done via Jingle, yes

  33. Dele Olajide

    SRTP and RTMP showed their age at the last FIFA womens world cup streaimng service. The high latency made coverage of penalty shoutouts very painful with radio coverage. This has trggered an uptake of real-time low latency media streaming using Web-RTC

  34. MattJ

    The signalling is stuff like "here's where to send/receive your UDP packets", and "here's what codecs I support"

  35. latex

    > SRTP and RTMP showed their age at the last FIFA womens world cup streaimng service. The high latency made coverage of penalty shoutouts very painful with radio coverage. This has trggered an uptake of real-time low latency media streaming using Web-RTC SRTP and SRT are two completely different protocols

  36. Dele Olajide

    **SRT** not SRTP Too many acroymns 🙂

  37. latex

    I'm currently hosting an SRT video streaming server for me and my friends, as an alternative to Discord's Go Live feature. FFmpeg, VLC, and mpv can take SRT streams directly. It's really neat. Latency can be very low, but this depends on codec configurations (most of my friends misconfigure their OBS)

  38. latex

    If the codec has been misconfigured, latency is about 1 second

  39. latex

    If the codec has been configured for real-time low latency, the latency is about 200 ms

  40. latex

    Which seems like it's as fast as WebRTC, but with an actual standard signalling protocol (being SRT itself)

  41. latex

    But I'm planning on totally rewriting my current streaming server, because the SRT server software I'm using is unmaintained, has memory corruption bugs, high CPU usage, and is written in ugly C++

  42. latex

    I feel like I'm the only one in the world running a real SRT server capable of handling multiple streams from multiple users

  43. latex

    Imagine Icecast but video and low-latency

  44. latex

    Unfortunately, I'm not releasing this server to the public. My ISP is too shitty

  45. latex

    And SRT streams consume quite a bit of bandwidth

  46. latex

    With my new server software design, I'm planning to implement multicasting so other nodes can mirror the stream

  47. latex

    With my new server software design, I'm planning to implement multicasting so other nodes can mirror the streams

  48. latex

    There used to exist one other public video streaming server, which used nginx-rtmp, but the owner of said server has gone homeless and had to take the server offline due to severe financial issues (it ain't easy living in America)

  49. latex

    Now there is no public video streaming server. Not any that I know of anyway

  50. latex

    The RTMP server I'm talking about is nuegia.net. They hosted XMPP as well and often used the two in combination with Mumble to provide a full free software stack for instant messaging, voice chat, and video streaming

  51. latex

    Unfortunately it's down due to the unfortunate financial reality that plagues the United States

  52. latex

    I'm really intrigued by what a lot of new WebRTC-based solutions are trying to do, but a lot of them require a web browser and that really bothers me

  53. latex

    I love using my trusty media player https://mpv.io/ and I don't want to replace that with a web browser

  54. Zash

    Tge 'Web' in WebRTC is misleading, afaik it's a profile of a collection of other standard protocols and codecs

  55. MattJ

    and in that sense, having some standards for the signalling (even if over HTTP) will make it possible for non-browser apps to support them

  56. latex

    Perhaps WebRTC can be used without a web browser, but something needs to be able to make it digestible by a media player like mpv or a library like ffmpeg

  57. MattJ

    When the signalling is just some random web app using a custom format, it's problematic

  58. jonas’

    latex, gstreamer already has webrtc support for instance.

  59. latex

    How does gstreamer do the signaling part?

  60. latex

    Or is that up the the developer?

  61. jonas’

    probably, yeah

  62. latex

    That sucks

  63. jonas’

    there's a jitsi thing which uses gstreamer: https://github.com/avstack/gst-meet

  64. latex

    I wonder how one could make a WebRTC stream digestible by a conventional media player

  65. latex

    Maybe by translating WebRTC to UDP on the receiving end?

  66. MattJ

    WebRTC generally is UDP

  67. latex

    Or to a protocol that actually has a standard signaling protocol like SRT or RIST?

  68. latex

    Wasn't there also some mechanism that could make WebRTC scale?

  69. latex

    In a distributed manner?

  70. latex

    Because that's something that RTMP, SRT, and RIST all do not support

  71. Dele Olajide

    >latex : Wasn't there also some mechanism that could make WebRTC scale? Scalability of webrtc signalling can be achieved by using XMPP with Jingle, Rayo or custom protocols. As for media streams, we generally use an SFU (client does the work) or an MCU (server does the work)

  72. latex

    What's that SFU or MCU?

  73. jonas’

    selective forwarding unit, and something-something unit

  74. latex

    And what is Rayo?

  75. Dele Olajide

    >latex : And what is Rayo? https://xmpp.org/extensions/xep-0327.html

  76. latex

    I'm also thinking, does there exist some XEP for an XMPP-based bulletin board?

  77. latex

    Because I remember there is an XEP for microblogging. And a more organized form of asynchronous communication is: forums / bulletin boards!

  78. latex

    It's better than microblogging in my opinion

  79. jonas’

    it's different use cases

  80. latex

    And the current era of Web 2.0 bulletin board software annoys me

  81. latex

    I have an itch of writing a custom bulletin board TCP protocol

  82. latex

    But at that point maybe I should just use SSH as the modern equivalent of Telnet?

  83. singpolyma

    Jurt use XMPP then you get identity for free 😉

  84. singpolyma

    Just use XMPP then you get identity for free 😉

  85. singpolyma

    Libervia has one possible prototype. Really you can do it with just social feed xep

  86. MSavoritias fae.ve

    yeah i doubt we need more xeps for a forum interface

  87. MSavoritias fae.ve

    isnt forums just messages but long form and with threads anyway :P

  88. flow

    latex, an xmpp-based bulletin board could probably re-use many semantics of pubsub, whichs provides you authorization, management, and structuring (see "pubsub collection nodes"). You probably still need a small layer on top, but potentially mostly consisting of defining well-known names (like the entry node to the board)

  89. Dele Olajide

    >latex : does there exist some XEP for an XMPP-based bulletin board? Once upon a time, there was one social web https://igniterealtime.github.io/openfire-osw-plugin/spec/1.0/osw-activities.xml https://igniterealtime.github.io/openfire-osw-plugin/spec/1.0/osw-inbox.xml https://igniterealtime.github.io/openfire-osw-plugin/spec/1.0/osw-relations.xml

  90. Zash

    They had some interesting ideas. Like extremely granual profile permissions.

  91. flow

    smells like a hacker's dream and a UX nightmare

  92. flow

    otoh, it sure is nice to have fine grained access control on the protocol level, you can still later decide if and how you want to expose that to the user

  93. edhelas

    > >latex : does there exist some XEP for an XMPP-based bulletin board? > Once upon a time, there was one social web > https://igniterealtime.github.io/openfire-osw-plugin/spec/1.0/osw-activities.xml > https://igniterealtime.github.io/openfire-osw-plugin/spec/1.0/osw-inbox.xml > https://igniterealtime.github.io/openfire-osw-plugin/spec/1.0/osw-relations.xml Wow, that brings back some memories indeed !

  94. edhelas

    I had a look at it for Movim back then

  95. Zash

    flow, I'm decently happy about the separation between avatar and vcard4 permissions tho :)

  96. flow

    Zash, sure, not saying individual access control is bad. but, as always, it's hard to find the right balance

  97. flow

    and you usally have an idea about where the sweet spot is, after you build something that geared towards one of the two extremes

  98. Zash

    ITYM after flipping between the extremes for a few hundred years

  99. emus

    Hey Link Mauve, will you participate the xmpp summit ?

  100. Daniel

    emus: what makes you think he might not?

  101. emus

    Daniel: the statement not sure and no reaction

  102. emus

    anyway, see the scam chat

  103. fjklp

    Is there any official xmpp glossary? I'm aware of a few but not an official one.

  104. fjklp

    I know of: https://www.process-one.net/blog/xmpp_glossary/ https://wiki.xmpp.org/web/Usability/Glossary https://docs.modernxmpp.org/terminology/

  105. fjklp

    I don't know who to suggest an additional term to

  106. fjklp

    I don't see the term "whisper" being covered

  107. moparisthebest

    fjklp: looks like modernxmpp just calls them MUC PMs, probably not good to use that in a modern client though https://docs.modernxmpp.org/client/groupchat/#private-messages it's possible I'm not looking in the right place though, MattJ would know

  108. fjklp

    >looks like modernxmpp just calls them MUC PMs where do you see this?

  109. Zash

    I don't think I've seen "whisper" outside of Conversations(?)

  110. mdosch

    moparisthebest: I think 'private message' as term is OK. Just don't expose MUC to users.

  111. moparisthebest

    fjklp: in the link I provided

  112. moparisthebest

    > moparisthebest: I think 'private message' as term is OK. Just don't expose MUC to users. I tend to agree

  113. fjklp

    Then what should we be calling them, if not MUC PM?

  114. fjklp

    > I don't think I've seen "whisper" outside of Conversations(?) I've seen them referred to as whispers many times, so it seems pretty relevant.

  115. fjklp

    Ideally, it should be possible for people to communicate.

  116. Menel

    >> I don't think I've seen "whisper" outside of Conversations(?) > I've seen them referred to as whispers many times, so it seems pretty relevant. Both can be true, since many use conversations and forks