- <title>Add-on to control the projector from within Kodi</title>
- <link>http://people.skolelinux.org/pere/blog/Add_on_to_control_the_projector_from_within_Kodi.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Add_on_to_control_the_projector_from_within_Kodi.html</guid>
- <pubDate>Tue, 26 Jun 2018 23:55:00 +0200</pubDate>
- <description><p>My movie playing setup involve <a href="https://kodi.tv/">Kodi</a>,
-<a href="https://openelec.tv">OpenELEC</a> (probably soon to be
-replaced with <a href="https://libreelec.tv/">LibreELEC</a>) and an
-Infocus IN76 video projector. My projector can be controlled via both
-a infrared remote controller, and a RS-232 serial line. The vendor of
-my projector, <a href="https://www.infocus.com/">InFocus</a>, had been
-sensible enough to document the serial protocol in its user manual, so
-it is easily available, and I used it some years ago to write
-<a href="https://github.com/petterreinholdtsen/infocus-projector-control">a
-small script to control the projector</a>. For a while now, I longed
-for a setup where the projector was controlled by Kodi, for example in
-such a way that when the screen saver went on, the projector was
-turned off, and when the screen saver exited, the projector was turned
-on again.</p>
-
-<p>A few days ago, with very good help from parts of my family, I
-managed to find a Kodi Add-on for controlling a Epson projector, and
-got in touch with its author to see if we could join forces and make a
-Add-on with support for several projectors. To my pleasure, he was
-positive to the idea, and we set out to add InFocus support to his
-add-on, and make the add-on suitable for the official Kodi add-on
-repository.</p>
-
-<p>The Add-on is now working (for me, at least), with a few minor
-adjustments. The most important change I do relative to the master
-branch in the github repository is embedding the
-<a href="https://github.com/pyserial/pyserial">pyserial module</a> in
-the add-on. The long term solution is to make a "script" type
-pyserial module for Kodi, that can be pulled in as a dependency in
-Kodi. But until that in place, I embed it.</p>
-
-<p>The add-on can be configured to turn on the projector when Kodi
-starts, off when Kodi stops as well as turn the projector off when the
-screensaver start and on when the screesaver stops. It can also be
-told to set the projector source when turning on the projector.
-
-<p>If this sound interesting to you, check out
-<a href="https://github.com/fredrik-eriksson/kodi_projcontrol">the
-project github repository</a>. Perhaps you can send patches to
-support your projector too? As soon as we find time to wrap up the
-latest changes, it should be available for easy installation using any
-Kodi instance.</p>
-
-<p>For future improvements, I would like to add projector model
-detection and the ability to adjust the brightness level of the
-projector from within Kodi. We also need to figure out how to handle
-the cooling period of the projector. My projector refuses to turn on
-for 60 seconds after it was turned off. This is not handled well by
-the add-on at the moment.</p>
+ <title>Jami as a Zoom client, a trick for password protected rooms...</title>
+ <link>http://people.skolelinux.org/pere/blog/Jami_as_a_Zoom_client__a_trick_for_password_protected_rooms___.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Jami_as_a_Zoom_client__a_trick_for_password_protected_rooms___.html</guid>
+ <pubDate>Fri, 8 May 2020 13:30:00 +0200</pubDate>
+ <description><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>