XSF Discussion - 2020-03-15


  1. jonas’

    so, completely unrelated to recent events, if I wanted to set up a reliable group video chat thing for friends&family, what would I do?

  2. Daniel

    The only non-skype thing I have experience with is jitsi meet

  3. Daniel

    Only ever used the hosted version though

  4. jonas’

    Daniel, what’s the experience?

  5. jonas’

    I expect the hosted one to get into certain difficulties soon

  6. Seve

    I'm using Nextcloud + Nextcloud Talk. The maximum people I tested it with was four.

  7. jonas’

    nextcloud I already have

  8. Ge0rG

    maybe I should re-evaluate setting up jitsi on my private prosody

  9. Seve

    Works super good on mobile (Android)

  10. Ge0rG

    can you use the jitsi meet app with a self-hosted instance yet?

  11. Daniel

    One time I couldn't get it to work but when we tried Skype afterwards it didn't really work either. (network issues on the other end I belive) but when it did work it was always ok

  12. jonas’

    hm, I can’t find any documentation on how to set it up so far

  13. jonas’

    seems like I should take notes

  14. Seve

    > nextcloud I already have Not good enough for you? You can send links and so, without an account.

  15. jonas’

    Seve, I’d prefer to go with XMPP before trying Nextcloud Talk

  16. jonas’

    though I *do* wonder how well such a videobridge/jitsi thing will work behind a NAT (on the server side.):/

  17. jonas’

    I do run out of IP addresses

  18. jonas’

    though I can probably argue for that being of shared value

  19. Ge0rG

    wasn't one of the STUN things silently using google servers?

  20. Zash

    jonas’: There's a docker thing for jitsi meet that's not too complicated to get running

  21. Seve

    I agree, but anyway you don't have integration with IM clients anyway... Quite annoying

  22. jonas’

    Zash, I don’t have docker on my servers

  23. jonas’

    Seve, I can live with it requiring some kind of special client fo rnw

  24. jonas’

    Seve, I can live with it requiring some kind of special client for now

  25. jonas’

    okay, let’s use the "broadcast" address of the network. what could possibly go wrong

  26. Ge0rG

    jonas’: other boxes not finding the default gateway any more? ;)

  27. jonas’

    Ge0rG, they’re statically configured :>

  28. Ge0rG

    jonas’: static ARP?

  29. jonas’

    no

  30. jonas’

    just static routes

  31. jonas’

    I’m already using the "network address" on one of the boxes with no issues so far

  32. Ge0rG

    OTOH, there was a sysctl in linux a loooong time ago to ignore packets to your IP address sent to ethernet broadcast, because it uncloaked promiscous mode devices

  33. jonas’

    Ge0rG, the gateway has static routes for each of the "funny" /32 addresses as onlink routes on the interface. all boxes already have static routes to the /32 of the gateway, because it’s not even part of the /29 they’re in

  34. jonas’

    IPv4 is expensive

  35. jonas’

    and I’m not going to pay 1 EUR / month for an address I’m not going to use

  36. Ge0rG

    I'm still wondering how jitsi videobridge integrates with an existing prosody.

  37. jonas’

    I’m figuring that out right now

  38. Ge0rG

    jonas’: will you blog it? :D

  39. jonas’

    I may

  40. Ge0rG

    I'm interested in learning the steps needed to run my own videobridge on debian + proper prosody

  41. jonas’

    me too!

  42. Ge0rG

    jonas’: so write them down as you do, pretty-please :)

  43. jonas’

    will do

  44. jonas’

    ugh

  45. jonas’

    identities: category='component' type='conference' [en] 'JitsiVideobridge'

  46. jonas’

    so there’? that

  47. jonas’

    so there’s that

  48. jonas’

    it is *very* opinionated about which (sub-)domain names you use :/

  49. jonas’

    Ge0rG, https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md

  50. jonas’

    this seems accurate AFAICT so far

  51. jonas’

    it also means I have to start over

  52. jonas’

    though that doesn’t use debian packages

  53. jonas’

    I love how they tell you to forward the port 4443, which isn’t even bound to by jvb

  54. jonas’

    I seem to have a working jitsi meet

  55. jonas’

    TIL: jitsi-meet will make a room non-anonymous when it joins

  56. jonas’

    so you’ll want a dedicated conference domain

  57. jonas’

    *sigh*

  58. moparisthebest

    I briefly looked at setting up jitsi-meet with existing prosody and quickly decided my own https://appr.tc/ instance would be easier, currently working on docker container that just spins it all up

  59. jonas’

    what’s that?

  60. jonas’

    the link you gave is incredibly non-descriptive ;)

  61. moparisthebest

    the main thing jitsi meet is missing is I can't just send people a link, it won't work in a mobile browser

  62. vanitasvitae

    don't they have a mobile app?

  63. vanitasvitae

    but yeah I get the point of "not just send a link" on mobile

  64. moparisthebest

    https://github.com/webrtc/apprtc / https://github.com/Piasy/WebRTC-Docker (this docker container isn't very suitable, runs 3 different http servers on different ports etc...)

  65. moparisthebest

    vanitasvitae, yep they do, so now I have to send a link, plus a link to my custom compiled jitsi meet app? meh

  66. Zash

    I thought the main thing Jitsi Meet was missing is that it doesn't make noise and show popups

  67. emus

    vanitasvitae: hitsi has, also on fdroid

  68. vanitasvitae

    I think you can set the instance

  69. vanitasvitae

    right?

  70. moparisthebest

    oh, possibly, still that's a pretty large hurdle compared to "click this link"

  71. pep.

    "moparisthebest> the main thing jitsi meet is missing is I can't just send people a link, it won't work in a mobile browser" Yes you can? I do that all the time

  72. moparisthebest

    I just tested it yesterday and it wouldn't work in a mobile browser, am I holding it wrong?

  73. jonas’

    waiting for DNS to propagate to be able to test >.>

  74. pep.

    If they use a browser then the instance might redirect them to downloading an app on mobile, but you can certainly remove that

  75. Zash

    "click this link" is apparently completely useless, gotta show a popup with "someone's calling, [answer]"

  76. moparisthebest

    I just tried on https://meet.jit.si/

  77. pep.

    moparisthebest, what device

  78. pep.

    On mobile it might annoy you indeed

  79. pep.

    I never have an issue on desktop

  80. moparisthebest

    firefox mobile on lineageos (android 9) on a samsung galaxy GS5

  81. moparisthebest

    oh yea, it works great on desktop

  82. moparisthebest

    at this second I'm after minimal setup that *just works* on all browsers including mobile

  83. moparisthebest

    appr.tc fits that bill, jitsi meet doesn't, I couldn't find anything else that might

  84. pep.

    Is that self-hosted?

  85. moparisthebest

    *that* instance is hosted by evil google, but it can be self hosted

  86. vanitasvitae

    just checked the jitsi app. Setting my own instance was super easy

  87. vanitasvitae

    it is so sad that I had far better video quality when switching from wifi to mobile 🙁

  88. vanitasvitae

    #developingInternetCountryThings

  89. Guus

    vanitasvitae same here

  90. jonas’

    someone mother’s wifi?

  91. Guus

    no. Fiber.

  92. vanitasvitae

    no, mine 🙁

  93. jonas’

    hm, so jitsi-meet

  94. jonas’

    I got it set up, but it’s rather different than what I expected

  95. Guus

    I wonder if it 'optimizes' the connection because of NAT and mulitple hops in my meshed wifi or something

  96. jonas’

    AFAICT, I now got an open relay for WebRTC traffic

  97. jonas’

    I expected it to be configurable in such a way that at least the host needs to authentiacte against my existing domain

  98. Guus

    jonas’ you can protect things with accounts etc - not sure how sturdy that is though.

  99. moparisthebest

    most of the time that's handled by secrets and hmac jonas’

  100. Guus

    but yeah, the default install allows anyone to use it.

  101. jonas’

    hm

  102. moparisthebest

    appr.tc / coturn supports it out of the box like https://github.com/Piasy/WebRTC-Docker/blob/master/apprtc-server/ice.js#L5 + https://github.com/Piasy/WebRTC-Docker/blob/master/apprtc-server/turnserver.conf#L7

  103. pep.

    jonas’, yeah I've done that in the past, you can use xmpp auth

  104. jonas’

    pep., interesting

  105. jonas’

    moparisthebest, what?

  106. jonas’

    moparisthebest, you seem to have missed the point

  107. moparisthebest

    it's still semi-open, just time limited, but you should be able to do something similar with xmpp

  108. moparisthebest

    jonas’, I'm saying you don't need coturn to do anything but authenticate an hmac, not contact your xmpp server/db, then it's just making the xmpp bit that hands out the secret do that

  109. jonas’

    moparisthebest, I’m not using coturn though

  110. jonas’

    I’ve got a jitsi-meet setup

  111. moparisthebest

    jitsi-meet doesn't use coturn?

  112. jonas’

    nope

  113. moparisthebest

    nevermind then, but surprising

  114. jonas’

    I was surprised, too

  115. jonas’

    but they only need 10000/udp and 443/tcp, and those are bound directly to the Java process

  116. jonas’

    ugh

  117. jonas’

    ok, so the jitsi-meet doesn’t work at all.

  118. jonas’

    I don’t even see it trying to send traffic to the bridge

  119. jonas’

    and p2p seems to fail too

  120. jonas’

    hm, no public support MUC either?

  121. Zash

    Oh is that why we get so many Jitsi Meet questions in the Prosody room?

  122. Guus

    probably.

  123. jonas’

    meh

  124. Guus

    They are very active on their discourse instance - but that seems to be having trouble today.

  125. jonas’

    also, discourse is unusable to me

  126. jonas’

    also, I got used to IM community support

  127. Guus

    fwiw: if you want to spin up basic functionality without jumping through any hoops: install Openfire plus its ofMeet plugin. It'll give you limited features, and is outdated by at least a year - but you can set it up in 2 minutes.

  128. Guus

    I showed that in last years' XSF summit.

  129. jonas’

    I specifically do not want that, I want it to integrate in my existing setup

  130. Guus

    totally understandable. Just wanting to give people some options that in these times are looking for a quick fix.

  131. Guus

    doing a separate install will give you better features, more performance, etc, etc.

  132. jonas’

    I also don’t get how this is supposed to even work without any traffic to the videobridge

  133. jonas’

    I’m wondering whether it gets confused about the A record for the domain not pointing to the videobridge

  134. Guus

    I didnt' read the backlog

  135. jonas’

    or about having both a private and a public IPv4

  136. Guus

    but basically, the web app will talk to the video bridge over UDP or TCP

  137. jonas’

    it doesn’t

  138. jonas’

    zero traffic to that IP

  139. Guus

    I think on port 10000 UDP with a fallback to 443 TCP with a fallback to 4443 TCP if 443 can't be bound to by the process.

  140. Guus

    well, for 1-on-1 conversations, the webapp defaults to peer-to-peer

  141. jonas’

    aha!

  142. jonas’

    that’s a bit of information which is interesting

  143. Guus

    add a third participant to force things over the videobridge

  144. jonas’

    and what if p2p fails for whatever reason?

  145. Guus

    unsure

  146. jonas’

    where do I get a third participant now

  147. Guus

    note thta I've been out of the loop for 12 months too.

  148. Guus

    new incognito tab.

  149. jonas’

    smart!

  150. Guus

    been there done that _a lot_ 😃

  151. jonas’

    oh, look at this traffic

  152. Guus

    ta-daaaah.

  153. Guus

    ok, off to prepare dinner.

  154. Guus

    poke me if you need more help

  155. jonas’

    lots of inbound traffic on the videobridge, but no outbound

  156. jonas’

    also, it doesn’t arrive there

  157. Guus

    nat weirdness?

  158. jonas’

    no, nevermind

  159. Guus

    you can configure it to ... ok.

  160. Guus

    ICE negotiation can take some time

  161. jonas’

    my SSH session with tcpdump just died

  162. jonas’

    so I see lots of inbound traffic, but virtually no outbound traffic on the videobridge

  163. Guus

    tcpdump will be pretty verbose with webrtc data 😃

  164. jonas’

    approximately 1:10, maybe 1:20

  165. Guus

    maybe this:

  166. Guus

    you want to prevent the device of each end-user to have to process the raw data of all participants - which would not scale, and bring commercial laptops to their knees fast. the JVB will therefor accept all inbound data, process that, and push an optimized stream back out.

  167. Guus

    there's webrtc mumbojumbo for this that I fail to remember, but that's the gist of it.

  168. Guus

    iirc, you upload three video stream (thumbnail, medium and full resolution, somesuch), but participants are only interesting in one (depending on who's talking, etc)

  169. Guus

    so there's a lot of room for optimization there.

  170. jonas’

    Guus, right, however, the data currently transmitted from my device would barely suffice for audio

  171. Guus

    (take all of this with a grain of salt - I'm far from an expert and I've not engaged with the devs for months)

  172. jonas’

    most certainly not for three clients

  173. Guus

    did you mute video?

  174. jonas’

    I disabled video to make tcpdump less verbose

  175. jonas’

    yeah

  176. Guus

    maaaybe it's not actually sending data then?

  177. jonas’

    yes, but why ;)

  178. Guus

    because you muted it?

  179. jonas’

    but I didn’t mute audio

  180. Guus

    do you hear audio?

  181. jonas’

    no

  182. jonas’

    I don’t see any outbound traffic on my machine for the audio which is suggested should be going out by the VU-meter bars in my avatar thumbnail thing

  183. Guus

    then I don't know 🙂

  184. Guus

    as I said, got to prepare dinner

  185. jonas’

    also it show bitrate etc as N/A when I hover over my avatar

  186. Guus

    also: covid update from government in a couple of minutes

  187. jonas’

    yeah, good luck and have fun

  188. Guus

    tx

  189. Guus

    that n/a bitrate was always there - confused me a lot

  190. jonas’

    oh, maybe it uses (or tries to use) P2P for audio always?

  191. Guus

    but this is pretty much where my knowledge ends too

  192. jonas’

    it’s a *video*bridge after all

  193. Guus

    don't think so, but maybe.

  194. Guus

    ok, I'm out.

  195. jonas’

    bon appetite

  196. Guus

    Poke Dele when he's in here - he's familiar with Jitsi.

  197. Guus

    tx

  198. jonas’

    okay, it’s not a purely local issue -- using meet.jit.si gives me a nice audio feedback loop instantly :)

  199. jonas’

    okay, so apparently, jitsi-meet wants that it runs on the same hostname as it advertises

  200. jonas’

    this is stupid

  201. Zash

    Oh yeah, I remember it being very picky about names of the various parts.

  202. jonas’

    can’t do that on my infra without doing nasty things

  203. jonas’

    like having two network namespaces with the same hostname

  204. jonas’

    or installing third-party packages on the main box

  205. moparisthebest

    I appreciate the reassurance my "this looks too complicated" was correct :/

  206. jonas’

    it’s too undocumented mostly

  207. jonas’

    A/V is complex, all those simple WebRTC apps are a golang-esque simplification which don’t hold in edge cases (non-web, for example)

  208. moparisthebest

    here simplify is a good thing, I can send a link over xmpp or sms or anything, and anyone with a web browser can click it and have it work

  209. moparisthebest

    not "here's a link that will work in a desktop browser, but if you are on mobile, please find a way to install this jitsi meet app, and also go into settings and change the default hostname, and maybe then it might work"

  210. moparisthebest

    you realize that sounds insane right?

  211. jonas’

    moparisthebest, all depends on your usecase

  212. jonas’

    installing the app was trivial

  213. jonas’

    even for me on f-droid

  214. jonas’

    it takes a full URL nowadays, so no need to change the hostname

  215. moparisthebest

    how's the iOS app?

  216. moparisthebest

    now I also need to know what os my contact is currently on?

  217. jonas’

    I don’t care about iOS

  218. moparisthebest

    why doesn't it *just work* in a mobile browser too?

  219. jonas’

    on my phone it probably wouldn’t work, even if they tried, because it already OOMs when you open two or three normal broswer tabs at once.

  220. jonas’

    using a dedicated app without the javascript bloat is a much saner way

  221. Zash

    But does it ring?

  222. moparisthebest

    my phone is 6 years old and I can run hundreds of tabs in firefox mobile *and* this video/audio webrtc thing ¯\_(ツ)_/¯

  223. jonas’

    moparisthebest, good for you!