Let’s Encrypt

Unter dem Motto Let’s Encrypt betreibt Mozilla zusammen mit Cisco u.a. eine Zertifizierungstelle bei der kostenlose domainvalidierte Zertifikate für die eigene Domain bestellt werden können.

Die Unterstützung für diese Plattform durfte ich Anfang der Woche bauen und bin dabei wiederholt an „neumodischen“ Erscheinungen hängen geblieben. In der guten alten Zeit hat man sich den Source einer Anwendung von der Webseite des Autors, Sourceforge o.ä. gezogen, kurz konfiguriert und dann kompiliert.

Heute klappt sowas nicht mehr, weil fast jedes Projekt gleich mehrere Frameworks einsetzt, die weder in den Readmes aufgeführt sind, noch sauber laufen. So mancher Webseite, die behauptet, das Projekt kurz kompiliert zu haben, kann man dabei kein Wort mehr trauen. Zumal es dann immernoch scheitern kann, selbst wenn das Lieblings OS einige Frameworks wie NodeJS, liefern kann.

Bis man sich die Einzelteile für ein kleines Projekt zusammen gesucht hat, können Stunden vergehen. Dabei spielt es keine Rolle, ob das Zielprogramm in Python, Java oder Javascript geschrieben wurde.

Zum Glück gibt es immer noch Menschen, die möglicherweise ungewollt, alles richtig machen, und keine skurrilen Abhängigkeiten in Ihre Projekte einbauen. Am Beispiel von Let’s Encrypt Tools ist letztendlich das primitivste Tool, daß „beste“ geworden: schneller Download, keine skurrilen Abhängigkeiten, und in der Alpha schon 100% zweckgeeignet naja und der beste Vorteil von allen, es ein Bashscript 🙂 Damit läuft es natürlich auf allen Linuxen sofort.Man muß es halt nur finden 😀

Am Ende bleibt nur zu hoffen, dann diese Abhängigkeitsfanatiker mit Ihren Projekten genauso schnell verschwinden, wie sie aufgetaucht sind. Outsourcing hat halt nicht nur Vorteile.

Skypetelefonbuch ins Jitsi importieren

Heute widmen wir uns ganz dem Umstieg von Skype OUT ™  und Skype IN ™zu Jitsi.

Die erste Frage die sich stellt :“kann ich meine Rufnummer mitnehmen ?“ kann mit einem „Ja, aber..“ beantwortet werden. Das Aber sieht so aus: Man braucht einen SIP Dienst im Netz, z.b. sipgate.de oder eine konfigurierte Fritz!Box, die aus dem Netz erreichbar ist, dann kann man das auch über zu Hause machen.

Die zweite Frage: „Bekomme ich mein Telefonbuch importiert ?“ kann ich auch mit „Ja“ beantworten.
Ich habe da mal was vorbereitet, aber ACHTUNG: Eine Fritz!Box nimmt es einem derzeit übel , wenn man mehr als 22 Einträge in der Kontaktliste hat! Ich hab es mit meinen 160 versucht, das war wie ein DOS Angriff.

Das Problem wird bereits bei Jitsi und AVM untersucht, daß Ergebnis steht noch aus.

Vorbereitungen

Wir brauchen : PHP mit SQLite3 support

Als ersten stoppen wir Jitsi. Die Beispiele hier sind alle für Linux, aber die funktionieren mit anderen Pfaden auch für Windows. Das PHP Programm habe ich unter angefügt.

php skypetojitsi.php pfad_zur_main.db SIPID SIPSERVERIP Gruppenname

Für eine Fritz!Box wäre das ein typisches Beispiel:

Wenn „620@192.168.178.1“ die von der Fritz!Box vorgegebene ID ist, dann ist 620 die SIPID und die IPadresse der SIPServer.

php skypetojitsi.php ~/.Skype/skypeusername/ 620 192.168.178.1 Phonebook >/tmp/jitsi.xml

Das Programm gibt ein XML Fragment aus, daß man per Texteditor in die Datei „~/.jitsi/contactlist.xml“ einfügen muß. Der Inhalt muß zwischen die „child-contacts“ Tags :

           <group name="Phonebook" uid="1450110895594310563919">
                
                    "SIP:620@192.168.178.1" parent-proto-group-uid="RootGroup.uid" uid="Phonebook.uid"/>
                </proto-groups>
                <subgroups/>
                <child-contacts>
                       ----> INSERT XML HERE <----
                </child-contacts>
            </group>

Das wars dann auch schon. Abspeichern und Jitsi neustarten.

Hier der PHP Code

$tmpl = "\t\">\n                        \n                        @\" address=\"@\" parent-proto-group-uid=\".uid\">\n                            xcap.resolved=false;\n                        \n                    \n";


function sqlite_open($location,$mode)
{
    $handle = new SQLite3($location,$mode);
    return $handle;
} 

function generateRandomString($length = 10) {
    $characters = '0123456789';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}

if ( $argc < 4 ) { print "Usage: skype2jitsi path_to_main.db SIPID SIPSERVER Groupname\n"; exit; } if ( $stmt = sqlite_open( $argv[1]."/main.db",SQLITE3_OPEN_READONLY) ) { if ( $result = $stmt->query("select displayname,pstnnumber from Contacts where pstnnumber like '+%' and pstnnumber!=displayname order by displayname") ) {
			
		while ( $row = $result->fetchArray(SQLITE3_ASSOC) ) {
			
			$uuid = "1450".generateRandomString(19);

			print str_replace(array("","","","","",""),
					  array($uuid, $row["displayname"], $argv[2], $row["pstnnumber"], $argv[3], $argv[4]),
					  $tmpl);

						

		}
	}
}

WordPress läßt einen leider keine PHP Anfangs- und Endetags benutzen, bitte selbst hinzufügen.

Dein Jitsi und SIP

Weil ich grade dabei bin meine neue Telefonanlage in Betrieb zu nehmen, hier ein paar Tips wie es mit VOIP zu Hause besser läuft.

Zunächst einmal braucht man einen SIP fähigen Clienten der funktioniert, und grade der letzte Teil ist nicht immer gegeben. Empathy für Fedora könnte zwar SIP, dummerweise funktionierts derzeit nicht. Der Alleskönner Jitsi dagegen kann es, ist aber nicht vorinstalliert. Zumindest das Problem läßt sich schnell lösen:

dnf install jitsi  bzw. yum install jitsi

Jitsi kann wirklich alles was man sich wünscht, Jabber, ZRTP ( Verschlüsselung ), SIP, Google Talk usw. usw. Audio / Video / Chat / Konferenzen / Screensharing alles kein Problem. Ein paar Kleinigkeiten muß man aber umkonfigurieren, damit es wirklich reibungslos funktioniert.

Sipgate.de :

Sipgate hat wohl ein kleines Anrufbeantworterproblem. Um das zu beheben, tun Sie folgendes:

  1. Dazu in die Einstellungen des Zugangskontos gehen
  2. Verbindung auswählen
  3. Anrufbeantworter (MWI) abschalten.
  4. abspeichern.

Machen Sie das nicht, kann es sein, daß Jitsi den vorhanden Speicher nach einigen Stunden vollgemüllt hat.

In einer neueren Version von Jitsi könnte der Fehler bereits behoben sein, aber wenn Sie den Anrufbeantworter eh nicht gebucht haben, können Sie es auch einfach abschalten.

Für Fritz!Boxen mit VOIP :

Damit SIP richtig läuft, muß man den CODEC G722 abschalten.

  1. Dazu in die globalen Einstellungen gehen
  2. Audio auswählen
  3. Kodierungen suchen
  4. G722/16000 abwählen.
  5. Jetzt sollte man das SIP Konto einmal abschalten und wieder aktivieren.

Macht man das nicht, hört man sich an wie Godzilla auf Drogen 🙂 Diese Einstellung kann man auch nur für einen bestimmtes SIP Konto abschalten. Wenn noch andere Codecs verfügbar sind, kann man den aber auch bedenkenlos global deaktivieren.

Und schon kann man darüber angerufen werden und Anrufe tätigen. Jitsi läuft 1a mit dem Fritz!box Anrufbeantworter zusammen.

In diesem Zusammenhang kann ich Pandora als Skypeersatz empfehlen:

  • Globale Erreichbarkeit 24/7
  • Einfache Installation
  • Cloudstorage
    Cloudkalender
  • verschlüsselte EMails
  • und bald auch WEBRTC

Update 2022:

Jitsi wird zwar noch entwickelt, kann aber meistens nicht mehr ohne Java 8 und alte RPMs installiert werden.
Als Alternative dazu kann ich TWINKLE empfehlen.

Twinkle, Twinkle little PVA …