Hi guys, unfotunately I have to confirm pmetras report here…
1st, thanks for all hard work on this project - theoretically, I love jami (20 years experience in FOSS networking/coding here).
To quote James:
First of all, I’d encourage you to stick with Jami. It is an excellent piece of software.
During the last 3 years I collected most frustrating user experience with jami on Android.
The concept behind jami is excellent, but at least on Android, I was never able to use/deploy with Family&Friends.
Formerly, it was running in an Android Sandbox on SailfishOS - that’s why I haven’t started seriously investigating all my issues back then.
These days I switched to GrapheneOS - kind of hardened AOSP, which runs all other Android Apps flawlessly. So to my understanding, I can rule out being too special on my side.
I can only confirm almost every single issue pmetras lists - beside the one with the cam - I simply never tried…
I started reading Technical overview — Jami documentation - understanding what is written there.
To make things easy, I kept almost all defaults - only disabling UPnP.; N/A here.
So bootstrap, DHT proxy und TRUN in on and set to it’s defaults and Firewall grants non-terminated TLS connections. I didn’t expect any difficulties with this setup, besides it depends on centralized services provided by Savoir-faire Linux Inc. - the very opposite of what you want if you’re looking for utilizing the actual strenghs of the design of jami, no matter which single instance/organisation is providing these services - which one can easily change; which is why I like the concept.
This is my first time inspecting jami behaviour from the network point of view
What bothers me most is that “partner” state doesn’t seem to reflect reality - the green online dot absolutely has no meaning for me and most times seems to be “stuck”, in what ever state the last one was.
Likewise “messages” - You/the user gets no hints if transmittion is in progress/success/failed state - neither sender nor receiver know anything about what’s happening.
Most annoying is the ridiculously wrong timespan state information in the android version:
This will stay forever - whenever you look at it, you will see 0 sec, 14h or whatever it once was. No way to refresh, no auto-refresh. I cannot emphasize how stupid I think it is to display it this way - make it simply a timestamp, not a delta! It’s needless wasted resources to take care about a correct delta information - timestamp is cheap and fine.
More important, the “green-dotted” peer account was put offline on all devices yesterday!!!
What I haven’t found/understood so far is what actually happens behind the scenes. I know SIP signalling and the P2P via TURN, but I 1st need to understand how states are recorded. I don’t know/understand DHT yet. Most likely, the state is DHT backed. But what are “conversation messages”??? RTP media, like calls, or transmitted via DHT too?
I have to understand the DHT-proxy traffic first (which I currently don’t) to get an idea what really is broken here.
Currently I suspect the root cause is roaming networks/gateways, especially due to very strange IPV6 behaviour and differences in active paths.
In one of my test LANs, I don’t advertise for SLAAC, but use DHCP6 (but android doesn’t utilize dhcpv6!). There I see LinkLocal originating internet traffic - fe80::/10 for jami TURNv6 destination! No idea how much this violates IPv6 standards, but it’s a well known Android (mis-)behaviour for me. For upcoming tests,I changed the firewall to TCP6-RST (instead of ICMP6 net-unreach)…
But I have no idea what happens if I use 5G iinternet connection. Device does get global-reachable IPv6 and a CGNAT IPv4 addresses.
If somebody knows any links helping me to speed up filling my knowledge gaps, please share. Unfortunately I have only very limited time to do tests - and do build environment to do more than tests curently (for android).
Sorry for jumping across topics here - basically I want to emphasize that on android, jami isn’t usable at all for me and I’m trying to find out why it is for me and for pmetras apparently too. I guess Android is primary target for this kind of application - hopefully at least the technically versed ones can use it one day, to focus on the rest of the userbase afterwards