top | item 30316755

Dino 0.3: Video calls and conferences – encrypted and peer-to-peer

186 points| larma | 4 years ago |dino.im

74 comments

order

xiaomai|4 years ago

I run a group chat for my family. I recently switched my server from running plain Prosody to Snikket. People with phones use the Snikket android app, but my kids that are too young for phones join in with Dino. Dino is a really nice client. Snikket is pretty good as a phone client... I think maybe there is a way to get push notifications working through the standard Android infrastructure which would be an improvement, but I haven't done that yet.

I guess the functionality isn't better (let's be honest, it's probably worse) than the proprietary alternatives, but for now the family is happy with it and I feel good about the extra privacy / lack of advertising / etc.

Really appreciate all the people that put in the work to make this possible. Great work Dino team.

toastercat|4 years ago

> but my kids that are too young for phones join in with Dino

Curious about this, since it seems to imply your kids use Linux desktops. How has that worked out?

puggsy|4 years ago

Great! Dino is my XMPP client of choice, it's good to see a new release.

My partner and family use https://quicksy.im/ which is an XMPP client that uses their phone number as username, to give it a "convenient as WhatsApp/Signal" feel.

I run the mobile UI branch https://github.com/dino/dino/tree/feature/handy on my Pinephone.

nicoco|4 years ago

Hey! I am considering buying a pinephone but fear I am not enough of a hacker, an XMPP is one of the few things I need in my pocket computer. How hard is it to get Dino working on the pinephone? Do A/V calls work?

Any general feedback on the pinephone? Is it your main smartphone?

otachack|4 years ago

For a second I thought I read "Deno" instead of "Dino" and got extremely confused at why Deno was going into the video chat space.

Anyways, nice milestone for Dino! I still gotta try out the solution one day.

messe|4 years ago

Same, I thought maybe the latest Deno version had enhanced WebRTC support or something of that ilk.

solarkraft|4 years ago

I love Dino! I want to tell all my friends to install it on their ... oh. Oh no. They use macOS and Windows.

I don't mean to be a downer, but if you want to reach a lot of people with your amazing software (not saying that you have to, but it seems like one of the intentions of the project), it's a good idea to get them where they already are.

Side note 1: Vala/GTK could be an amazing app development platform if the cross-OS story was clearly (it can absolutely cover desktop OSes and I think even phones, but how to do it isn't very clear and most GTK apps don't).

Side note 2: Dino seems to be co-developed by the guy who makes microG, another great piece of software (replaces Google services on Android).

Side note 3: It would be great to see an XMPP revival. Quality clients like Dino are a key part to this. An important part for that may be another standardization effort with a low number of groups of clearly defined XEPs to support some functionality (a huge problem appears to be the sheer number and fragmentation of XEPs).

larma|4 years ago

While Dino and all of its dependencies can be compiled and run on Windows and macOS, this process is tedious and GTK isn't really well-tested on anything but Linux, resulting in worse UX when not going the extra mile of doing targeted modifications for these platforms. This hopefully improves with the migration to GTK4.

The XMPP Standards Foundation publishes a document once a year stating a set that decent XMPP clients and servers should implement. The current one, https://xmpp.org/extensions/xep-0459.html even has a specific section on calling (it doesn't cover group calls yet).

opan|4 years ago

There are working Windows builds (in another repo, kinda beta still I think), not sure about macOS support. Probably just needs someone interested in working on it.

cxr|4 years ago

> Vala/GTK could be an amazing app development platform

Freedesktop folks should just standardize on Cocoa. With sufficient momentum, Windows would follow.

skyfaller|4 years ago

Ever since Google Talk stopped supporting Jabber, I quickly ran out of anyone to talk with. I talk with friends on Signal, I talk with FOSS projects on IRC or Matrix, and I occasionally set up ad-hoc video conferences using Jitsi Meet, but I have zero Jabber contacts left.

If you use Jabber today, who are you talking to and on what server(s)?

andrey_utkin|4 years ago

Family and a few friends, on own server.

It seems to be a good fit for families. Or rather, families are a good fit for any sane, sustainable technology. Long span of time, lots of mutual transparency, plenty of in-group communication inside and outside the chat technology.

No problems characteristic for big-tech (account seizures, hardware platform restrictions). No problems characteristic for free-for-all public servers (spam, vandalism).

opan|4 years ago

I got into XMPP in just the last few years, after already using Matrix (and still using IRC also).

XMPP for me is mostly internet friends. It's quite popular on the fediverse (they also happen to commonly dislike Matrix, although many are on both like me). Lots of people who are into technology and anime, basically.

I've noticed most free software projects don't have an XMPP room unless they are literally XMPP projects like Gajim and Dino. Pine64 (as well as many other places) will have a bridge between IRC and Matrix, but I've only seen one or two IRC channels that also bridge XMPP that I can remember. Many people aren't even really aware of it. I don't know the actual stats, but it often feels like XMPP is actually less popular than IRC these days.

larma|4 years ago

Friends and family all use XMPP via Conversations and/or Dino. I also join a few channels of FOSS projects on Matrix or IRC with a bridge. You can even bridge calls to SIP and PSTN via https://jmp.chat/.

I run my own server (any 5 bucks VPS can do), but there is a large number of public servers that also work good. Make sure to pick one with a good ranking at https://compliance.conversations.im/

Jiejeing|4 years ago

I run my own server, I am talking to some friends on https://jabber.fr and I refer non-technical people (family, mostly) to https://quicksy.im.

(I will add that Jitsi Meet kind of counts as Jabber use, although not in the traditional sense)

zaik|4 years ago

Since WhatsApp changed its ToS last year I deleted all messaging apps except Conversations and started using XMPP exclusively. Basically everyone I talk to regulary is now reachable via XMPP.

Thovthe|4 years ago

I use it for sms and phone calling through jmp.chat. Though I'm afraid that carriers are going to sandbag it if it gets popular.

dgrin91|4 years ago

It looks like Dino is built on top of XMPP. How can you be both XMPP and peer to peer? Doesn't XMPP mean there is a server in the middle (even if its not centralized)?

zaik|4 years ago

The server is used to exchange connection information. The A/V call itsef is peer to peer (or relayed via TURN server if they cannot establish a direct connection).

ta-webrtc|4 years ago

In order to establish a peer to peer video call you need a signaling channel that both peers know about.

NTARelix|4 years ago

> Calls are end-to-end encrypted and use a direct connection between the peers whenever possible, but fallbacks are also in place.

I imagine this means the 2+ clients use XMPP to negotiate direct connections to one another that are better suited for audio/video streaming.

Jiejeing|4 years ago

This is great, I knew this was in development for a while, but I did not expect it to land this early. 1 to 1 audio/video calls using Conversations and other apps work already perfectly, but group video chat using standardized technology was really missing from the ecosystem, I am glad that this is now done.

bufferoverflow|4 years ago

The thing about video call apps is - seemingly, no matter how great the internet is on both ends, the video quality is still laggy and blocky. We have 30 Mbps on both ends. That's supposed to be near bluray quality. But that's not what we get. Even when I use the crappy 720p camera, what I get over the internet is much worse.

From our testing, Whatsapp is one of the worst. Zoom is in between. Hangouts is usually decent. But again, nowhere near bluray quality.

crowbahr|4 years ago

I was shocked at how good the quality was in facetiming my in-laws on my wife's ipad. I've been using hangouts, signal, slack and duo for video calls and they were never nearly as crisp and nice as facetime was.

I think Discord was similarly good but... Discord just isn't what I'm going to voice call family on... realistically ever.

southerntofu|4 years ago

There are different considerations: do you have 30Mbit/s upload or download? do you have hardware acceleration available to make a smaller/better encoding? is it actually used by your app? Otherwise, your app may restrict encoding quality settings so that it can run on many more devices (maybe that's configurable).

Also to consider: where does the connection flow through? if you're both going through Google/Amazon servers (SFU, etc), it's quite possible your ISP will provide a route with a decent bandwidth. It's also quite possible if you establish a direct P2P link or through a route your ISP considers less important, they'll slow it down or simply oversubscribe this route.

axiosgunnar|4 years ago

What is the latency on this? Still looking for a call solution that makes you feel like you‘re in the same room…

ta-webrtc|4 years ago

Latency is as good as you can do when doing peer to peer calls, the trade off is bandwidth (and CPU, but mostly bandwidth).

Latency and non-terminated encryption (end-to-end, not point-to-point) is great, and for calls with 3 or fewer peers the stability is fine. More peers than that and you probably want a media router in the mix, which adds some latency (all the calls have to route through a central server) and the server typically has done termination of the encrypted call streams as it does its routing.

2Gkashmiri|4 years ago

is setting up and maintaining an xmpp /jabber server and clients easier/difficult than matrix?

i have been mulling the switch to a selfhosted thing for some time now but i need something that can run on low resources but isnt overly complicated

someoneelse9|4 years ago

XMPP server is slightly easier to setup and it requires far less resources than matrix. I think that in the server aspect XMPP is superior, in both performance and scalability (ejabberd).

The client setup in XMPP and Matrix seem to have the same usual steps (username and password). No big differences here, other than Element defaults to matrix.org to create an account (which contributes to centralization).

I'd say that XMPP clients are generally better than matrix's ones. Maybe because matrix is an immature and younger protocol, but Element seems to be the only client that implements everything and UI is confusing and it's electron.

And a personal preference, I like using my GPG keys to encrypt my conversations when possible in XMPP. This wouldn't be possible in matrix.

EuAndreh|4 years ago

I've used the prosody XMPP server and the synapse matrix server.

IMHO, the basic prosody setup is a bit simpler, but with the "extra" configuration such as retention policies, they're equal in setup effort.

On the other hand, prosody is an order of magnitute easier to maintain and administer. synapse is too brittle, and its not uncommon to use gigabytes of memory, while prosody's resource usage is barely noticible.

On the occasions that I wanted to look under the hood and skim the code, I felt more confortable understanding and hacking on prosody.

Overall, I found synapse to be needlessly complex and big. I don't know if that's because it's the first implementation and it accumulated a bunch of legacy code, or that's something that comes with Matrix itself.

soheilpro|4 years ago

It's written in Vala [1]. I had never heard of it before.

[1] https://en.wikipedia.org/wiki/Vala_(programming_language)

larma|4 years ago

Vala is a nice, modern niche language for GTK development. It certainly can also be used for other things, e.g. it can be compiled to WASM, but GTK development really is focus. Also the language is actively developed and getting updates with new feature. While originally inspired by C# it nowadays also incorporates features known from other modern languages like Kotlin.

halpert|4 years ago

P2P group video calls don’t work well unfortunately. Most people barely have enough upload bandwidth to upload one video stream. Needing to upload a stream per peer is a nonstarter for most people.

puggsy|4 years ago

From the article:

"Peer-to-peer calls require more bandwidth than calls routed through a server and are thus not suited for a large number of participants. In the future, we plan to also develop calls via a forwarding server to solve resource issues on the client side and to allow for calls with more participants."

integricho|4 years ago

What happened with tox.im , are the two products competitors?

southerntofu|4 years ago

Tox is peer-to-peer chat, Dino uses the federated Jabber/XMPP protocol. So on Tox your identifier is your public key, while on jabber you get a user@server address (which is usually the same as your email if your provider supports both protocols). Nowadays people interested in P2P chat mostly use jami.net or briarproject.org, both really cool. Briar in particular uses both a gossip protocol for local conversations (like Secure ScuttleButt protocol) and Tor onion services for internet-wide communications.

Both XMPP and Matrix servers can also be run on your own device (p2p): in XMPP world it's more common for ZeroConf LAN chat (to chat with other peers/servers in the LAN, not internet servers), while Matrix project is spending some efforts on Pinecone based on libp2p/yggdrasil to punch through NAT and (if it succeeds) offer proper P2P internet-wide. They have different trade-offs: XMPP protocol is more lightweight but less consistent about eventual delivery of messages when some servers can be offline at any given moment (it was initially designed as a live message-passing protocol).

exelib|4 years ago

Aren't p2p apps expose IPs of peers?