@shodanx Two more things below. Which might either resolved a few challenges or narrow down the cause of your challenge.
Add Free STUN Server
Depending on the device and network, is when appropriate, add any STUN server to your liking.
For example, using Jami, under “Account” —> “Advanced Settings”, activate “Use STUN”. Then add this free and unlimited STUN server stun.relay.metered.ca
I do not know if stun.relay.metered.ca is the correct format for Jami. I am assuming that, for this STUN field above, Jami uses port 80 by default. I know that the format stun:stun.relay.metered.ca:80 would fail. stun:stun.relay.metered.ca:443 would also fail. Because on save, Jami would crash and exit. Maybe because of this challenge.
STUN is use by Jami during SIP call. Source is a maintainer of Jami at https://forum.jami.net/t/what-is-stun-used-for/1222/8
Related documentation at https://www.metered.ca/stun-turn
or at https://archive.ph/1jRQO
Launch Only One SIP Software
Another possible resolution, is when we install, configure, and test Jami, we open only Jami. We double-check that only Jami is launched and active. Fully exit all other SIP software. Otherwise, if two or more SIP software are launch at the same time, it is risky that another SIP software could interfere with Jami. Such as, but not limited to, intercept incoming data or lock port(s). Some SIP software look fully exit. But are still in memory. To resolve this challenge we used force exit with a system monitor. Or restart the device.