After a lot of hard work by its maintainer Alexandre Viau and others, the decentralized communication platform Jami (earlier known as Ring), managed to get its latest version into Debian Testing. Several of its dependencies has caused build and propagation problems, which all seem to be solved now.
In addition to the fact that Jami is decentralized, similar to how bittorrent is decentralized, I first of all like how it is not connected to external IDs like phone numbers. This allow me to set up computers to send me notifications using Jami without having to find get a phone number for each computer. Automatic notification via Jami is also made trivial thanks to the provided client side API (as a DBus service). Here is my bourne shell script demonstrating how to let any system send a message to any Jami address. It will create a new identity before sending the message, if no Jami identity exist already:
#!/bin/sh # # Usage: $0# # Send to , create local jami account if # missing. # # License: GPL v2 or later at your choice # Author: Petter Reinholdtsen if [ -z "$HOME" ] ; then echo "error: missing \$HOME, required for dbus to work" exit 1 fi # First, get dbus running if not already running DBUSLAUNCH=/usr/bin/dbus-launch PIDFILE=/run/asterisk/dbus-session.pid if [ -e $PIDFILE ] ; then . $PIDFILE if ! kill -0 $DBUS_SESSION_BUS_PID 2>/dev/null ; then unset DBUS_SESSION_BUS_ADDRESS fi fi if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && [ -x "$DBUSLAUNCH" ]; then DBUS_SESSION_BUS_ADDRESS="unix:path=$HOME/.dbus" dbus-daemon --session --address="$DBUS_SESSION_BUS_ADDRESS" --nofork --nopidfile --syslog-only < /dev/null > /dev/null 2>&1 3>&1 & DBUS_SESSION_BUS_PID=$! ( echo DBUS_SESSION_BUS_PID=$DBUS_SESSION_BUS_PID echo DBUS_SESSION_BUS_ADDRESS=\""$DBUS_SESSION_BUS_ADDRESS"\" echo export DBUS_SESSION_BUS_ADDRESS ) > $PIDFILE . $PIDFILE fi & dringop() { part="$1"; shift op="$1"; shift dbus-send --session \ --dest="cx.ring.Ring" /cx/ring/Ring/$part cx.ring.Ring.$part.$op $* } dringopreply() { part="$1"; shift op="$1"; shift dbus-send --session --print-reply \ --dest="cx.ring.Ring" /cx/ring/Ring/$part cx.ring.Ring.$part.$op $* } firstaccount() { dringopreply ConfigurationManager getAccountList | \ grep string | awk -F'"' '{print $2}' | head -n 1 } account=$(firstaccount) if [ -z "$account" ] ; then echo "Missing local account, trying to create it" dringop ConfigurationManager addAccount \ dict:string:string:"Account.type","RING","Account.videoEnabled","false" account=$(firstaccount) if [ -z "$account" ] ; then echo "unable to create local account" exit 1 fi fi # Not using dringopreply to ensure $2 can contain spaces dbus-send --print-reply --session \ --dest=cx.ring.Ring \ /cx/ring/Ring/ConfigurationManager \ cx.ring.Ring.ConfigurationManager.sendTextMessage \ string:"$account" string:"$1" \ dict:string:string:"text/plain","$2"
If you want to check it out yourself, visit the the Jami system project page to learn more, and install the latest Jami client from Debian Unstable or Testing.
As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.