1 Title: Jami/Ring, finally functioning peer to peer communication client
2 Tags: english, debian, sikkerhet, surveillance
5 <p>Some years ago, in 2016, I
6 <a href="http://people.skolelinux.org/pere/blog/Experience_and_updated_recipe_for_using_the_Signal_app_without_a_mobile_phone.html">wrote
7 for the first time about</a> the Ring peer to peer messaging system.
8 It would provide messaging without any central server coordinating the
9 system and without requiring all users to register a phone number or
10 own a mobile phone. Back then, I could not get it to work, and put it
11 aside until it had seen more development. A few days ago I decided to
12 give it another try, and am happy to report that this time I am able
13 to not only send and receive messages, but also place audio and video
14 calls. But only if UDP is not blocked into your network.</p>
16 <p>The Ring system changed name earlier this year to
17 <a href="https://en.wikipedia.org/wiki/Jami_(software)">Jami</a>. I
18 tried doing web search for 'ring' when I discovered it for the first
19 time, and can only applaud this change as it is impossible to find
20 something called Ring among the noise of other uses of that word. Now
21 you can search for 'jami' and this client and
22 <a href="https://jami.net/">the Jami system</a> is the first hit at
23 least on duckduckgo.</p>
25 <p>Jami will by default encrypt messages as well as audio and video
26 calls, and try to send them directly between the communicating parties
27 if possible. If this proves impossible (for example if both ends are
28 behind NAT), it will use a central SIP TURN server maintained by the
29 Jami project. Jami can also be a normal SIP client. If the SIP
30 server is unencrypted, the audio and video calls will also be
31 unencrypted. This is as far as I know the only case where Jami will
32 do anything without encryption.</p>
34 <p>Jami is available for several platforms: Linux, Windows, MacOSX,
35 Android, iOS, and Android TV. It is included in Debian already. Jami
36 also work for those using F-Droid without any Google connections,
38 <a href="https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Protocol">The
39 protocol</a> is described in the Ring project wiki. The system uses a
40 distributed hash table (DHT) system (similar to BitTorrent) running
41 over UDP. On one of the networks I use, I discovered Jami failed to
42 work. I tracked this down to the fact that incoming UDP packages
43 going to ports 1-49999 were blocked, and the DHT would pick a random
44 port and end up in the low range most of the time. After talking to
45 the developers, I solved this by enabling the dhtproxy in the
46 settings, thus using TCP to talk to a central DHT proxy instead of
48 peering directly with others. I've been told the developers are
49 working on allowing DHT to use TCP to avoid this problem. I also ran
50 into a problem when trying to talk to the version of Ring included in
51 Debian Stable (Stretch). Apparently the protocol changed between
52 beta2 and the current version, making these clients incompatible.
53 Hopefully the protocol will not be made incompatible in the
56 <p>It is worth noting that while looking at Jami and its features, I
57 came across another communication platform I have not tested yet. The
58 <a href="https://en.wikipedia.org/wiki/Tox_(protocol)">Tox protocol</a>
59 and <a href="https://tox.chat/">family of Tox clients</a>. It might
60 become the topic of a future blog post.</p>
62 <p>As usual, if you use Bitcoin and want to show your support of my
63 activities, please send Bitcoin donations to my address
64 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>