--- /dev/null
+Title: Jami as a Zoom client, a trick for password protected rooms...
+Tags: english, debian, sikkerhet, surveillance
+Date: 2020-05-08 13:30
+
+<p>Half a year ago,
+<a href="http://people.skolelinux.org/pere/blog/Jami_Ring__finally_functioning_peer_to_peer_communication_client.html">I
+wrote</a> about <a href="https://jami.net/">the Jami communication
+client</a>, capable of peer-to-peer encrypted communication. It
+handle both messages, audio and video. It uses distributed hash
+tables instead of central infrastructure to connect its users to each
+other, which in my book is a plus. I mentioned briefly that it could
+also work as a SIP client, which came in handy when the higher
+educational sector in Norway started to promote Zoom as its video
+conferencing solution. I am reluctant to use the official Zoom client
+software, due to their <a href="https://zoom.us/terms">copyright
+license clauses</a> prohibiting users to reverse engineer (for example
+to check the security) and benchmark it, and thus prefer to connect to
+Zoom meetings with free software clients.</p>
+
+<p>Jami worked OK as a SIP client to Zoom as long as there was no
+password set on the room. The Jami daemon leak memory like crazy
+(approximately 1 GiB a minute) when I am connected to the video
+conference, so I had to restart the client every 7-10 minutes, which
+is not a great. I tried to get other SIP Linux clients to work
+without success, so I decided I would have to live with this wart
+until someone managed to fix the leak in the dring code base. But
+another problem showed up once the rooms were password protected. I
+could not get my dial tone signaling through from Jami to Zoom, and
+dial tone signaling is used to enter the password when connecting to
+Zoom. I tried a lot of different permutations with my Jami and
+Asterisk setup to try to figure out why the signaling did not get
+through, only to finally discover that the fundamental problem seem to
+be that Zoom is simply not able to receive dial tone signaling when
+connecting via SIP. There seem to be nothing wrong with the Jami and
+Asterisk end, it is simply broken in the Zoom end. I got help from a
+very skilled VoIP engineer figuring out this last part. And being a
+very skilled engineer, he was also able to locate a solution for me.
+Or to be exact, a workaround that solve my initial problem of
+connecting to password protected Zoom rooms using Jami.</p>
+
+<p>So, how do you do this, I am sure you are wondering by now. The
+trick is already
+<a href="https://support.zoom.us/hc/en-us/articles/202405539-H-323-SIP-Room-Connector-Dial-Strings#sip">documented
+from Zoom</a>, and it is to modify the SIP address to include the room
+password. What is most surprising about this is that the
+automatically generated email from Zoom with instructions on how to
+connect via SIP do not mention this. The SIP address to use normally
+consist of the room ID (a number), an @ character and the IP address
+of the Zoom SIP gateway. But Zoom understand a lot more than just the
+room ID in front of the at sign. The format is "<tt>[Meeting
+ID].[Password].[Layout].[Host Key]</tt>", and you can hear see how you
+can both enter password, control the layout (full screen, active
+presence and gallery) and specify the host key to start the meeting.
+The full SIP address entered into Jami to provide the password will
+then look like this (all using made up numbers):</p>
+
+<p><blockquote>
+<tt>sip:657837644.522827@192.168.169.170</tt>
+</blockquote></p>
+
+<p>Now if only jami would reduce its memory usage, I could even
+recommend this setup to others. :)</p>
+
+<p>As usual, if you use Bitcoin and want to show your support of my
+activities, please send Bitcoin donations to my address
+<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>