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.
-