Jami: Share, Message, Call freely and privately
jami.net
jami.net
With p2p projects I’m always interested to see how they are solving ‘Signaling’, ie. the initial peer to peer matching.
I was unable to find anything on the Jami page or FAQ.
Is the above language chosen carefully for “relaying data” while likely using a central jami server for signaling?
Jami has also been around a long time. It had other names in the past like SFLphone and Ring.
Also, thanks to Jami's distributed nature, it can also function in local networks without internet connectivity:
You won’t get momentum with that user experience. Even the website sucks.
This is traditionally the worst UX problem with Signal / Session / Matrix etc. Manually handing keys back and forth is a disaster. Compare that to something like Telegram or WhatsApp where you can just log on and everything is there.
You can read more about Swarm here: https://jami.net/synchronizing-conversation-history-with-swa...
To add a new device, from account settings select 'Link another device'. This will create an encrypted archive of your account details and temporarily (for 10 minutes) put it on the OpenDHT network, and give you a PIN which you would use on your new device to have Jami retrieve and import your account. You could also do this manually and without going through OpenDHT, by having Jami create a local backup of your account on your current device, and then transfer the backup archive onto your new device yourself, and import it into Jami. After adding the new device, your Swarm conversations and their histories will begin synchronizing shortly.
They're doing cool enough stuff that it seems like they could attract real attention eventually though.
After we filled up the chat a bit, opening it again takes about six seconds. And sometimes, it starts using 60% CPU doing apparently nothing.
There is a "reply to message" function, but it's useless on images because it only shows the first part of the path to the image (you just see "/home/me/.local/share/jami/8fd7...") and clicking it doesn't bring you to the message in question.
I also tried the Android client, which was usable enough, but it could only receive messages if I had the desktop client too. But that might be because of my NAT.
While it’s certainly nice if the user does this and removes burden from you, it’s a better practice (and engenders more good will from your users) to just ingest this into the bug tracker on the user’s behalf (and dedupe as needed / do a search and give them the link to existing bugs if it describes their issue).
I do this at my job all the time because our Jira setup is fucking balls and I have all kinds of greesemonkey to make it usable and quick for me. Any casual user is going to bounce the fuck off our jira setup. Secondly I know if there is already a bug in our system covering this issue or not, less time for my team to do de-duping etc.
How does this JamiID work?
Is this JamiID that I created forever mine?
If my friends create their JamiID, will the search just list them?
Do I need to import any JamiID's? How does discovery work for these JamiID's?
I'm seriously looking into Jami for "conference" calls with a small set of family members, it should be just point and click.
If you register a username for your Jami account, your JamiID will be that username, otherwise it will just be the account's infohash (public key fingerprint). A Jami username is a mapping between a unique human-friendly name and an account infohash.
> Is this JamiID that I created forever mine?
With the default Jami name server, https://ns.jami.net, username registrations are permanent, and cannot be changed or deleted. Also, if you delete or lose your account without having backed it up earlier, you will lose that username and it cannot be recovered. This is one of the reasons why it's really important to back up your account.
> If my friends create their JamiID, will the search just list them?
Yes, you can search others by their JamiID, whether it's their username or the longer account infohash.
> Do I need to import any JamiID's? How does discovery work for these JamiID's?
You would search for their JamiID and add them as contacts, similarly to how you would with other messaging applications. When you search a username, Jami will query the name server to get the account infohash and send a contact request. For example, with the default name server, to look up 'bandali' Jami would make a request to https://ns.jami.net/name/bandali to get the associated account infohash.
You can read more about this on the Jami user FAQ and the 'name server protocol' section of the developer manual:
https://docs.jami.net/user/faq.html#how-does-the-username-re...
https://docs.jami.net/developer/name-server-protocol.html
> I'm seriously looking into Jami for "conference" calls with a small set of family members, it should be just point and click.
Pretty much. :) Jami should be able to fit that use-case nicely.
(For me, just now, `jami-gnome` installed and set up easily enough, including registering my username, but linking the account on the app from F-Droid seems to have left it halfway-done, without the username, and any kind of username lookup from the app from F-Droid hangs indefinitely.)
https://git.jami.net/savoirfairelinux/jami-client-android/-/...
(I'm not going to try an older version, since I quickly found bug reports that suggest a pattern of breakage, and I already have to use way too much comms software that casually breaks. I might give it another chance later.)
Can video conference calls be placed?
If not, does there exist existing FOSS that does conference calls on a P2P network?
Edit: It appears TURN is used.
Yes, Jami supports conferencing. One can add additional participants to a 1-on-1 call on the fly, effectively making it a conference. Alternatively, one can enable rendezvous mode from account settings, in which case incoming calls to that account will be added to a conference (similar to a Jisti room).
I was fidgeting with the tought of something like a overlay multicast network on top of unicast IP, since RFC 1770 was deprecated/never implemented.
https://docs.jami.net/user/faq.html#how-much-bandwidth-do-i-...
Hope this helps. :)