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.
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.
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?
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).
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).
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.
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)?
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).
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.
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/
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.
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)?
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
"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."
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).
xiaomai|4 years ago
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
Curious about this, since it seems to imply your kids use Linux desktops. How has that worked out?
puggsy|4 years ago
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
Any general feedback on the pinephone? Is it your main smartphone?
otachack|4 years ago
Anyways, nice milestone for Dino! I still gotta try out the solution one day.
messe|4 years ago
solarkraft|4 years ago
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
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
app4soft|4 years ago
Here are Dino builds for Windows.[0]
[0] https://github.com/LAGonauta/dino/releases
cxr|4 years ago
Freedesktop folks should just standardize on Cocoa. With sufficient momentum, Windows would follow.
skyfaller|4 years ago
If you use Jabber today, who are you talking to and on what server(s)?
andrey_utkin|4 years ago
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
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
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 will add that Jitsi Meet kind of counts as Jabber use, although not in the traditional sense)
zaik|4 years ago
puggsy|4 years ago
Thovthe|4 years ago
dgrin91|4 years ago
zaik|4 years ago
ta-webrtc|4 years ago
NTARelix|4 years ago
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
app4soft|4 years ago
> https://chat@dino.im?join
In Dino (Desktop) window click on [+] in left-top corner on app title bar, and then input channel to join as next:
Then click "Next" button.N.B. Here is offical announcment of Dino 0.3 release thread on Mastodon.[0]
[0] https://fosstodon.org/@dino/107787204408646020
bufferoverflow|4 years ago
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 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
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
ta-webrtc|4 years ago
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.
unknown|4 years ago
[deleted]
haunter|4 years ago
singpolyma3|4 years ago
larma|4 years ago
2Gkashmiri|4 years ago
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
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
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.
Zash|4 years ago
soheilpro|4 years ago
[1] https://en.wikipedia.org/wiki/Vala_(programming_language)
larma|4 years ago
halpert|4 years ago
puggsy|4 years ago
"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
southerntofu|4 years ago
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