Inhaltsverzeichnis

XMPP Gruppenchats für allgemeine Themen

18.02.2024

Hier findet Ihr eine Übersicht für XMPP Gruppenchats (auch MUC genannt), die allgemeine Themen betreffen und in der Regel nicht über ein "Referenzprodukt" wie z. B. dem Namen einer Software zu finden sind. Ergänzungen und Vorschläge willkommen mit Hilfe des Supportchats am Ende dieser Seite. Politik bleibt absichtlich außen vor, hierfür gibt es schon genug Medien zum Austausch.

Ist schon ein XMPP-Client installiert, sollte ein Klick auf den Link genügen, um in den Chatraum zu gelangen. Wenn nicht, dann schnell zu den weiteren einstiegsfreundlichen XMPP-Seiten wechseln, sich ein Chatkonto zulegen und einen der vielen XMPP Clients installieren ;-)

zum Anfang der Seite

SMS2XMPP Gateway

14.07.2024

Neulich kam mir beim Stöbern mal wieder die Idee, eine alte Hardware neu zu nutzen. Ich habe schon seit Ewigkeiten einen Mobilfunk Stick für das 3G Netz (ja richtig, 3G), welcher schon länger bei mir keine Verwendung mehr findet. Der Stick ist ein Huawei E160E (damals gab es den u. a. bei n24 für den Internet Zugang).

Durch die Fusion von Sipgate und simquadrat und da ich schon seit Ewigkeiten einen (jetzt) Sipgate Basic Account habe, gab es irgendwann mal eine Mobilfunknummer kostenlos zur SIP-Rufnummer dazu. Auch die lag bei mir bisher mehr oder weniger brach. Bei genauerem Studium hatte ich festgestellt, dass man sich kostenlos SIM-Karten bestellen kann.

Also, mal das Internet bemüht und festgestellt, dass es mit Hilfe von den smstools (vorpaketiert für Debian) ohne große Anstrengungen möglich ist, SMS empfangen und versenden zu können. Zuerst wollte ich den modemmanager benutzen, bin aber letztendlich bei den smstools hängen geblieben. Eine Langzeit Zuverlässigkeitsaussage habe ich zwar noch nicht, aber bisher werkelt der Stick prima vor sich hin. Da es wohl am Schwierigsten sein soll, das jeweilige Modem zu initialisieren, stelle ich hier meine Konfiguration zur Verfügung. Vielleicht kann es der eine oder die andere brauchen :-)

/etc/smsd.conf

outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
incoming = /var/spool/sms/incoming
logfile = /var/log/smstools/smsd.log
infofile = /var/run/smstools/smsd.working
pidfile = /var/run/smstools/smsd.pid
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
incoming = /var/spool/sms/incoming
sent = /var/spool/sms/sent
stats = /var/log/smstools/smsd_stats
loglevel = notice
smart_logging = yes
receive_before_send = no
autosplit = 3
decode_unicode_text = yes
eventhandler = /usr/local/bin/sms2xmpp.sh

[GSM1]
init = AT+CPMS="ME","ME","ME" 
device = /dev/serial/by-id/usb-HUAWEI_Technology_HUAWEI_Mobile-if00-port0
incoming = yes
baudrate = 115200
keep_open = yes
cs_convert = yes
memory_start = 0
check_memory_method = 3
report = no
rtscts = no
report_device_details = yes
signal_quality_ber_ignore = yes

Hier einige Besonderheiten:

  • der Init-Befehel ist wohl von GSM-Modem zu GSM-Modem unterschiedlich und nach einigem Suchen und Probieren war der oben gegebene mein Schlüssel zu den SMS
  • das Device nehme ich absichtlich NICHT als /dev/ttyUSB0, da sich diese Bezeichnung schon mal ändern kann, z. B. nach Neustarts oder beim Plugin neuer Hardware
  • der Stick meldet 2 Modems an, bei mir funktioniert nur das erste, ein Switch ist nicht erforderlich (wegen zusätzlich integriertem Massenspeicher), das machen anscheinend aktuelle Kernels von alleine
  • die Weiterverarbeitung passiert bei mir in der Datei /usr/local/bin/sms2xmpp.sh die sich unter der Option eventhandler einstellen lässt. Hier ist wichtig zu wissen, dass der erste Parameter, der übergeben wird, das Ereignis darstellt (z. B. RECEIVED für SMS empfangen) und der zweite Parameter, der übergeben wird, den Pfad zur gespeicherten SMS beinhaltet.

Wie die Weiterverarbeitung /usr/local/bin/sms2xmpp.sh in der aussehen könnte, dafür gibt es hier ein sehr einfaches Beispiel, was man als Startbasis nehmen kann.

In meinem Falle nehme ich noch einige Daten mehr mit hinzu und sende das Ganze via go-sendxmpp an meine XMPP Adresse.

Eine winzige (bauartbedingte) Unannehmlichkeit gibt es noch: Die eingebaute grüne LED des Sticks blinkt regelmäßig im 2-3 Sekundentakt 1x auf. Der Stick sollte daher wenn möglich nicht im Schlafzimmer verbaut werden. Ansonsten bin ich ziemlich zufrieden mit der Lösung. Hier das Ergebnis:

sms2xmpp

Der erste Anbau erfolgte an einem Raspberry Pi Model 1B, musste aber aufgrund eines fehlenden aktiven USB-Hubs aber wieder verworfen werden, da der Stick soviel Energie aus dem USB-Port zieht, dass der Pi beim Einstecken neu startet. Das war so für mich nicht zu gebrauchen.

Sendemäßig habe ich diese Lösung noch nicht implementiert, da noch nicht gebraucht.

zum Anfang der Seite

Transports - Zugänge zu (proprietären) Netzen

18.02.2024

allgemein

XMPP bietet die Möglichkeit, mit Hilfe sogenannter Transports Nachrichten in andere (meistens proprietäre) Netze wie z. B. WhatsApp, Telegram, Signal, etc. senden und empfangen zu können. Die Einrichtung dieser Möglichkeit ist im Nachfolgenden beschrieben.

Es gibt aktuell zwei große Softwares, die diese Transporte ermöglichen:

Diese können selber gehostet werden, müssen es aber nicht. Ein öffentlicher XMPP-Provider, welcher beide Transports anbietet, ist z. B. hot-chilli.im.

Voraussetzungen

  • ein Benutzerkonto des jeweiligen Netzes (z. B. Telegram)
  • ein (angemeldeter) Client des jeweiligen Zielnetzes
  • ein (beliebiger) XMPP Client, für Spectrum2 muss dieser ad-hoc Kommandos unterstützen

so geht es los

Um herauszufinden, ob ein XMPP-Provider Transports anbietet, und wenn ja, welche, kann man mit Hilfe eines entsprechenden XMPP Clients wie z. B. Gajim - grafisch oder profanity - konsolenbasiert eine so genannte "Service Discovery" (disco) durchführen.

Bei profanity lautet der entsprechende Befehl, um den Server von hot-chilli.net zu durchsuchen:
/disco items hot-chilli.net

und es erscheinen (unter anderem) folgende Zeilen:

whatsapp.jabber.hot-chilli.net, (Hot-Chilli WhatsApp Transport)                  
whatsapp.hot-chilli.im, (Hot-Chilli WhatsApp Transport (Slidge Test))

Diese Adressen sollte man sich merken, da diese im Folgenden gebraucht werden, um den Transport nutzen zu können.

... und jetzt?

Die weitere Vorgehensweise hängt jetzt vom zu nutzenden Transport ab. Da die Benutzung von slidge aus meiner Sicht einfacher ist, wird diese hier weiter beschrieben:
Es wird ein 1:1 Chat im XMPP Client geöffnet, und zwar zur oben gezeigten Adresse (im Beispiel whatsapp.hot-chilli.im). Meistens erfolgt eine Warnung, dass das eine Domain ist und keine Chatadresse in der Form name@provider.org, das kann man aber ignorieren. Sollte der gewählte XMPP Client dies nicht unterstützen, bleibt nur das Ausweichen auf einen anderen Client. Die eigentliche Kommunikation erfolgt grundsätzlich unverschlüsselt.

Nun kann man entweder mit ad-hoc Kommandos weiterarbeiten (diese werden z. B. durch Gajim unterstützt), bei slidge hat man jedoch den Vorteil, dass man auch den normalen Chat nutzen kann. Gibt man hier z. B. help ein, so erscheint ein kleines Hilfemenü und danach weiß man, dass man mit dem Befehl register sich am Gateway registrieren kann.

Das weitere Vorgehen hängt jetzt vom Zielnetz ab. Man wird vom slidge-Chat jedoch geleitet, was verlangt wird.

Aufbau der Adressen anhand von WhatsApp und Telegram

Grundsätzlich können Gruppen und Kontakte synchronisiert werden. Diese Kontakte erscheinen dann in der Kontaktliste und brauchen nicht mehr, wie nachfolgend beschrieben, gesucht zu werden.

WhatsApp

Die WhatsApp-Adressen sehen unter slidge in XMPP z. B. wie folgt aus: +4915112341234@whatsapp.hot-chilli.im
Dabei ist der erste Teil die Telefonnummer des Kontaktes bei WhatsApp, der Teil nach dem "@" entspricht der Transport-Domain.

Telegram

Eine Telegram-Adresse für einen 1:1 sieht in XMPP z. B. wie folgt aus: 321056789@telegram.hot-chilli.im
Dabei ist die Nummer vor dem @ die ID des Chatpartners auf Telegram. Diese kann man mit z. B. mit Bots herausfinden.
Eine Telegram-Adresse für einen Gruppenchat sieht in XMPP z. B. so aus: group-1004567890123@telegram-hot-chilli.im
Hierbei entspricht die Nummer vor dem "@" der Gruppenchat Nummer.

Vor- und Nachteile von Transports

Vorteile

  • es wird nur 1 Client benötigt, um in verschiedenen Netzen unterwegs zu sein
  • für die Gegenseite ist kein Unterschied zu sehen, dass die Kommunikation über ein Transport erfolgt
  • man kann auf mehreren Endgeräten die Nachrichten des Zielnetzwerkes empfangen
  • Transports können auch genutzt werden, um automatisiert Nachrichten an Empfänger zu schicken, die in anderen Netzwerken zu Hause sind. Somit reicht es, sich mit der automatisierten Versendung von Nachrichten über das XMPP Netzwerk auseinanderzusetzen

Nachteile

  • die Ende-zu-Ende Verschlüsselung (sofern aktiviert) geht durch den Transport verloren. Die Transportverschlüsselung ist davon unberührt
  • nicht alle Funktionen des Zielnetzwerks sind möglich (bedingt durch unterschiedliche Netzwerkaufbauten)
  • bei verschiedenen Netzen ist weiterhin ein Client des Zielnetzwerks für erneute Identifikation erforderlich (z. B. bei WhatsApp in Form eines QR-Codes, der im WhatsApp Client eingescannt werden muss ca. alle 2-3 Wochen)
  • im Punkt Datenschutz gelten die gleichen Voraussetzungen wie im Zielnetzwerk
  • für die Anzahl der Accounts gelten die gleichen Voraussetzungen wie im Zielnetzwerk

persönliches Fazit

Wenn es unumgänglich ist, mit bestimmten Kommunikationspartnern über die (proprietären) Netze zu kommunizieren, sind Transports ein gutes Mittel, um den Kontakt zu halten. Vorzuziehen wäre jedoch ein kompletter Umstieg auf das XMPP Netzwerk.

zum Anfang der Seite

Zugänge zu Hilfe Chats

17.01.2024

diese Zugänge sind auch ohne XMPP-Konto nutzbar

zum Anfang der Seite

allgemeine XMPP-Kniffe

17.01.2024

  • ein /me am Anfang einer Nachricht wird ersetzt durch den Nicknamen (falls vom Client unterstützt)
    Bsp: /me ist interessiert -> MeinNick ist interessiert
  • in einem Multi User Chat (MUC) kann man durch Klicken auf das Profilbild/Avatar eines Nutzers ihm eine private Nachricht zukommen lassen (falls erlaubt)
    So stört man den Chat nicht und kann an bestimmte Leute gezielt Rückfragen stellen
  • es gibt einige Bots, die einen Befehl an einem vorausgehenden Ausrufezeichen erkennen, z. B. !uptime
  • Möchte man einen 1:1 Chat jemandem weitergeben und gleichzeitig einen bestimmten Namen für diesen Chat vergeben, so geht das mit folgender Syntax:
    xmpp:ich@irgendwo.ser.ver?add;name=Anzeigename
  • möchte man einen Zugang ohne XMPP-Konto (z. B. für einen Support-Chat), so geht das nur mit einem anonymen Zugang. Dieser muss auf dem Server des Chats separat erstellt werden
  • wenn man Bekannte in einen Chatraum einlädt, "fallen" diese direkt in den Raum rein, ohne dass sie selbst tätig werden müssen (im Gegensatz zum "blossen" Link verschicken)
  • Die Clients gajim oder profanity können die Komponenten eines XMPP-Servers auflisten (z. B. transports, anonyme Zugänge)
  • Einen Einladungslink (z. B. für eine eMail-Signatur) kann man so erstellen: https://xmpp.link/#eigene@xmpp.adresse
    Dabei die eigene XMPP-Adresse hinter das #-Zeichen setzen

zum Anfang der Seite

OMEMO - Verschlüsselung

13.03.2024

Die zur Zeit gängigste Verschlüsselung bei XMPP ist OMEMO, nachfolgend sollen ein paar Besonderheiten im Zusammenhang mit OMEMO aufgelistet werden

  • für jede XMPP Adresse (auch JID = Jabber ID genannt) wird ein OMEMO Schlüssel pro Gerät und pro Client erstellt, d. h. nutze ich die gleiche XMPP Adresse auf einem Smartphone einmal mit Monocles Chat und gleichzeitig mit Conversations, so habe ich für dieses Konto schon 2 OMEMO Schlüssel. Ebenso werden 2 unterschiedliche Schlüssel erstellt, wenn 2 Geräte mit einem Konto und z. B. Conversations benutzt werden
  • sollte man schon länger einen Client mit OMEMO benutzt haben und möchte jetzt auf einen anderen Client wechseln, so wird das zum Verlust der alten Nachrichten führen. Die Nachrichten sind zwar noch vorhanden, können aber wegen dem neuen Schlüssel nicht mehr decodiert werden. Abhilfe schafft hier nur die Mitnahme des alten Schlüssels mittels Backup und Restore. Dabei sollten aber niemals beide Clients gleichzeitig online sein.
  • Nutzt man mehrere Geräte, so kann man auch seine eigenen Schlüssel verifizieren (meistens mit Hilfe eines QR-Codes). Einmal verifizierte Schlüssel werden auf die anderen Geräte übertragen (bei 3 und mehr Geräten)

zum Anfang der Seite

Monocles Chat (Version 1.7.9) Kniffe

17.01.2024

Da die Entwicklung von Monocles Chat zur Zeit rasant voranschreitet, kann es passieren, dass die nachfolgenden Kniffe nicht mehr oder anders funktionieren

  • rechts wischen auf einer Nachricht macht diese zum Zitat im Eingabefeld
  • langer Druck auf das Anlagen- /Senden-Symbol fügt ein /me in die Nachricht ein
  • In einem Chatraum (MUC) kommt man durch Klick auf den Namen in die Eigenschaften des Chatraums
  • klickt man in den Raumeigenschaften auf "Zugehörige Chats", werden alle öffentlichen Chaträume auf dem gleichen Server angezeigt (falls die Raumsuche auf "Lokaler Server" eingestellt ist)
  • 1:1 Chats und Chaträume können über das Burger Menü (die 3 Punkte oben rechts) auf den Startbildschirm gelegt werden
  • ein einzelner : öffnet die Sticker, gesucht werden können Sticker z. B. mit :racoon
  • der aktuelle Kartenserver, um einen Standort in der Vorschau angezeigt zu bekommen, liegt hier: https://staticmap.monocles.eu/map.png Es reicht aber, einen eventuell vorhanden Eintrag in den Einstellungen zu löschen, dann wird diese Adresse als default genommen (Einstellungen - Sicherheit - Kartenserver)
  • ab sofort werden ad-hoc Kommandos richtig unterstützt
  • Falls in den Einstellungen - Experteneinstellungen der Schieber "Zeige Thread Icon" aktiviert ist, kann man in Gruppenchats einen Filter setzen (links im Eingabefeld) und schreibt dann mit dieser Zusatzmarkierung in den Chat. Möchte man das Symbol ändern, klickt man entweder im Eingabefeld auf das Symbol und wählt ein anderes aus. Wahlweise kann man im Chatverlauf auch auf einen Beitrag mit einem entsprechenden Symbol klicken, dann werden die nächsten Beiträge mit diesem Chatsymbol geschrieben. Klickt man lange auf einen Chateintrag mit einem Thread Symbol, so wird im Kontextmenü angeboten, dass man nur diesen Thread angezeigt bekommt und man hat damit eine Filteroption. Sehr nützlich bei großen Chaträumen, wo viele Themen parallel laufen.

zum Anfang der Seite

Weitere einstiegsfreundliche XMPP-Seiten

zum Anfang der Seite

direktes Feedback zu diesen Seiten

Hier kannst Du direkt Kontakt zum Support aufnehmen, für Feedback, Kommentare, Ergänzungen. Dieser Zugang ist testweise, sollte dieser zugespamt werden, wird er wieder abgestellt.