Martin Stut's Blog

Random Notes about Information Technology

Autor: Martin Stut

  • WLAN-Call – ein wenig bekannter Weg um im Ausland zu telefonieren wie im Heimatland

    Ein Überblick über andere Möglichkeiten im Ausland wie in der Heimat zu telefonieren steht in Deutsche Telefonnummern aus dem Ausland anrufen.

    Wer braucht das?

    Wenn du im Ausland bist, hast du gelegentlich Bedarf, in die Heimat zu telefonieren und/oder SMS zu senden und empfangen.

    Dies ist vor allem bei längerem Aufenthalt von Bedeutung, wenn du mit Angehörigen, Banken, Behörden u.Ä. Kontakt halten möchtest, die viel lieber eine heimatliche Nummer in der Anzeige sehen bzw. zurückrufen möchten.

    Roaming (einfach im Ausland die Heimat-SIM-Karte nutzen) ist oft zu teuer und manchmal gar nicht möglich, wenn z.B. dein Heimat-Mobilfunkanbieter keinen Vertrag mit dem empfangbaren Gastland-Mobilfunknetz hat.

    Als Deutscher, der öfter mal Kontakt zu im Ausland lebenden Deutschen hat, habe ich beim Wort „Heimat“ meist Deutschland im Hinterkopf. Die Logik von WLAN-Call gilt aber genau so auch für andere Länder, z.B. um mit einer SIM-Karte aus Albanien bei einem Aufenthalt in der Schweiz zu telefonieren als ob man in Albanien wäre. Dann wäre Albanien die Heimat und Schweiz das Gastland/Ausland.

    Was ist „WLAN-Call“ (manchmal auch „Wifi-Calling“ genannt)?

    WLAN-Call ist ein international genormtes Verfahren, mit dem sich dein Mobiltelefon über das Internet mit dem Netz deines Heimat-Anbieters verbinden kann, sozusagen als Verlängerung des heimischen Mobilfunkmastes.

    Wenn WLAN-Call aktiv ist, telefonierst du exakt so als ob du im Heimatland im Heimatnetz angemeldet wärest – weil du tatsächlich dort angemeldet bist.

    Voraussetzungen:

    • Du hast einen Heimat-Mobilfunkvertrag, der WLAN-Call unterstützt.
    • Dein Heimat-Mobilfunkvertrag hat akzeptable Preise für Inlandsgespräche, in den Mengen die du vom Gastland aus planst.
    • Dein Smartphone muss WLAN-Call unterstützen und entsprechend eingerichtet sein.
      • Die meisten heutigen Smartphones können es.
        • Ein 2018er Mittelklasse Nokia kann es nicht.
        • Ein einfaches 2022er Samsung kann es.
    • Warm empfohlen: Du kannst ein separates Smartphone nur für die Heimat-SIM-Karte reservieren.
      • z.B. dein „Heimat“-Smartphone.
      • Dann brauchst du nicht zwischen Gastland-SIM und Heimat-SIM hin und her zu schalten.
        • Ein Fehler würde hohe Roaming-Kosten verursachen.
    • Falls du kein separates Heimat-Smartphone hast: Du kannst ankommende Gespräche zeitlich absprechen/erwarten.
      • Du musst dein Smartphone vorbereiten/umstellen um empfangsbereit zu sein, ohne horrende Roaming-Kosten zu verursachen.

    Vorbereitung/Test

    • Wenn du ein separates „Heimat“-Smartphone hast, musst du diese Schritte nur einmal durcharbeiten.
    • Wenn du jedoch kein separates „Heimat“-Smartphone hast, musst du diese Schritte vor jeder „Heimat-Telefonie-Sitzung“ durcharbeiten.
    1. Optional aber empfohlen, schützt vor versehentlichen hohen Roaming-Gebühren: Schalte dein Smartphone in den Flugmodus (manchmal auch Offline-Modus genannt) aber schalte WLAN ein.
    2. Lege deine Heimat-SIM-Karte ein.
    3. Öffne die Einstellungen deines Smartphones. Das Menü sieht je nach Hersteller unterschiedlich aus. Ich beschreibe hier mein 2022er Samsung mit Android 14:
      • Verbindungen > Mobile Netzwerke > WLAN Call (dein deutscher Mobilfunkanbieter, bei mir Congstar): Hebel auf „ein“ stellen. Falls die Option statt dessen heißt „VoLTE-Anrufe (dein deutscher Mobilfunkanbieter, bei mir Aldi-Talk), setze den Hebel auch. Das sieht dann z.B. so aus:
      • Smartphone Einstellungen Verbindungen srcset= Mobile Netzwerke > WLAN-Call“>
    4. Überprüfe nochmal dass WLAN eingeschaltet ist und eine funktionierende Internet-Verbindung hat.
    5. Warte 1-5 Minuten.
    6. Wenn es gut geht, ändert/ergänzt sich in der Anzeige ganz oben rechts das Symbol der Mobilfunkverbindung um anzuzeigen dass WLAN-Call angemeldet ist. Bei meinem Samsung Smartphone ist die Erfolgsanzeige der Telefonhörer mit der WLAN-Welle und der Zahl 1 bzw. 2. Die Zahl steht für SIM 1 (bei mir Aldi-Talk) bzw. SIM 2 (bei mir Congstar).
    7. Wenn die Fernanmeldung per WLAN/Internet funktioniert, stelle dein Smartphone so um, dass abgehende Anrufe und SMS („Nachrichten“) über die Heimat-SIM-Karte gehen oder du jedes Mal gefragt wirst.
      • Bei meinem Samsung ist das in Einstellungen > Verbindungen > SIM-Manager > Anrufe bzw. Nachrichten, und sieht z.B. so aus:
      • Einstellungen srcset= Verbindungen > SIM-Manager“>

    Telefonieren wie in der Heimat.

    • Jetzt ist dein Smartphone im heimatlichen Mobilfunknetz angemeldet und du kannst zu heimatlichen Tarifen anrufen und angerufen werden, SMS senden und empfangen.
    • Kleine Tücke: „heimatliche Tarife“ heißt, dass Anrufe in dein Gastland vom Heimat-Anbieter berechnet werden wie Anrufe aus der Heimat ins Gastland. Für Gespräche innerhalb deines Gastlandes nimm besser die SIM-Karte deines Gastland-Telefonanbieters.

    Zurückstellen auf Betrieb im Gastland (entfällt bei separatem Smartphone)

    • Wenn du das selbe Smartphone auch für Gespräche innerhalb des Gastlands verwendest, musst du nach der Heimat-Aktion mindestens im SIM-Manager wieder umstellen, dass abgehende Gespräche und SMS über deine Gastland-SIM-Karte gehen.
    • Am besten schaltest du die Heimat-SIM-Karte komplett ab, damit nicht bei ankommenden Anrufen hohe Roaming-Gebühren entstehen.
    • Dieses umständliche Hin- und Her-Schalten ist der Grund warum ich empfehle, ein separates Smartphone für die Heimat-SIM-Karte mit WLAN-Call zu verwenden.

    Zusammenfassung

    Wenn du im Ausland lebst, aber wie im Mobilfunknetz deines Heimatlands telefonieren möchtest, ist WLAN-Call ein relativ einfacher Weg, das zu tun, ohne hohe Roaming-Gebühren zahlen zu müssen.

    Du brauchst dazu einen Heimat-Mobilfunkvertrag und ein Smartphone die beide WLAN-Call können.

    Die Einrichtung ist überschaubar, findet komplett in den Einstellungen deines Smartphones statt, ist aber bei Fehlern mit Kostenrisiko (Roaming-Gebühren statt heimatlicher Flatrate) verbunden, weswegen ein separates „Heimat“-Smartphone im Flugmodus (aber WLAN eingeschaltet) empfehlenswert ist.

  • Deutsche Telefonnummern aus dem Ausland anrufen

    Wenn du als Deutscher längere Zeit im Ausland lebst, entsteht öfter mal der Bedarf, eine normale deutsche Telefonnummer anzurufen, z.B. Angehörige die keine Messenger-App installieren wollen oder Behörden/Banken die für dein Anliegen nur telefonisch erreichbar sind – Papierpost ist oft zu langsam oder unzuverlässig.

    Du bekommst hier eine Liste von Optionen aufgezeigt, einschliesslich einer kurzen Bewertung wann sie jeweils sinnvoll sind und wie hoch der Aufwand ist. Die Liste ist grob nach Einrichtungsaufwand sortiert.

    Hier steht keine detaillierte Anleitung wie du sie einrichtest. Das ist Stoff für jeweils einen Blogpost pro Option.

    Die weitaus meisten Optionen nutzen das Internet für die Langstrecken-Verbindung von deinem Gastland nach Deutschland. Du solltest also Internet-Techniken (Smartphone-Apps etc.) etc. nutzen können und wollen.

    Fragen vorab

    Um abschätzen zu können, welche Optionen für dich sinnvoll sind, ist es hilfreich, wenn du dir vorab folgende Fragen über deinen Bedarf und deine Möglichkeiten beantwortest:

    • Ist die Internetverbindung von dir im Gastland nach Deutschland gut oder sehr gut? Es geht nicht um besonders hohe Bandbreite (ein Telefongespräch braucht ja nur 80 Kilobit pro Sekunde pro Richtung), sondern um geringen Paketverlust und gleichmäßige Paketlaufzeit („ping“).
    • Wie viele Minuten pro Monat telefonierst du ungefähr auf diesem Weg nach Deutschland? Mehr als 100?
    • Musst du auf diesem Weg auch Schweizer Nummern anrufen können?
    • Welche Kosten sind für dich akzeptabel (Grundgebühr, Minutengebühr)?
      • Sind 12 Euro pro Monat o.k. oder lieber 1 Euro pro Monat plus 10 Cent pro Minute in deutsche Mobilnetze?
      • Oder bist du bereit, erheblichen Einrichtungsaufwand zu treiben um Geld in dieser Grössenordnung einzusparen?
    • Hast du ein deutsches Bankkonto, von dem du die Gebühren abbuchen lassen und ggf. auch vom Gastland aus Überweisungen auslösen kannst?
    • Ist eine aufwändige Softwareinstallation mit zahlreichen Parametern und Tests für dich akzeptabel?
    • Ist es für deine deutschen Gesprächspartner akzeptabel, wenn sie deine Nummer als „anonym“ sieht? Wenn nein, brauchst du eine deutsche Telefonnummer:
      • Darf die angezeigte Nummer eine deutsche Mobilnummer sein oder sollte/muss es eine deutsche Festnetznummer sein? (Für Angehörige ohne Flatrate kostet es typisch 20 Cent pro Minute eine deutsche Mobilnummer anzurufen.)
      • Bist du unter der anzuzeigenden Nummer jetzt schon direkt erreichbar, ggf. nach Vorbereitung? (Das ist Voraussetzung damit du sie bei Voip2GSM zur Anzeige registrieren kannst.)
    • Musst du aus dem normalen deutschen Telefonnetz aus anrufbar sein? Wenn ja, brauchst du eine deutsche Telefonnummer:
      • Darf es eine Mobilnummer sein (einfach+preisgünstig für dich, teuer für Anrufer aus dem Festnetz) oder sollte es aus dem Festnetz sein (aufwändiger für dich einzurichten, viel preisgünstiger für Anrufer aus dem Festnetz)?
      • Ist eine Terminabsprache vor ankommenden Anrufen akzeptabel, damit du kurz vor dem Termin z.B. eine erforderlich App starten oder dein Smartphone umkonfigurieren kannst?
        • Ohne Absprache würde der Anrufer nur einen Anrufbeantworter erreichen.
    • Musst Du SMS empfangen und senden können? Wenn ja, brauchst du eine deutsche Mobilfunknummer und eine Technik die SMS verarbeiten kann – derzeit nur WLAN-Call.
    • Hast Du einen aktiven deutschen Mobilfunkvertrag und hast du die zugehörige SIM-Karte (oder eSIM) in deinem Gastland dabei, so dass du sie bei Bedarf in ein vorhandenes Smartphone stecken kannst? Wenn ja:
      • Unterstützt dein Mobilfunkvertrag WLAN-Call? (Aldi-Talk und Congstar Prepaid können es, ca. die Hälfte aller Neuverträge kann es nicht)
      • Unterstützt dein Smartphone WLAN-Call? (mein 2018er Mittelklasse-Nokia kann es nicht, das 2022er Billig-Samsung kann es)
      • Hast du ein zweites (vielleicht dein „deutsches“) Smartphone, das WLAN-Call unterstützt, in das du die deutsche SIM-Karte dauerhaft einlegen kannst und das du nicht für den Mobilfunk deines Gastlandes brauchst? Das wäre ideal für die Option „WLAN-Call“.
    • Wenn du eine deutsche Telefonnummer brauchst:
      • Hast Du eine deutsche Adresse auf die du eine deutsche Telefonnummer registrieren kannst?
        • Wenn nein, funktionieren manche Optionen nicht – oder du bewegst dich am Rande der Legalität und brauchst einen „Strohmann“.
        • Würde ein Brief an dich (ohne Adresszusatz „c/o Schwager“ !) dort ankommen (steht dein Name auf dem Briefkasten?) und würden die Leute dort dir ggf. den Inhalt fotografieren und zumailen?
    • Hast du eine befreundete Gegenstelle in Deutschland mit FritzBox?
      • Hat diese FritzBox eine öffentliche IPv4-Adresse? (Fernsehkabel- und Glasfaseranschlüsse haben das oft nicht!)
      • wenn nein: hat dein Internetzugang im Gastland IPv6-Konnektivität?
    • Für alle halbwegs kostengünstigen Optionen gilt:
      • Du brauchst eine gute Internet-Verbindung von deinem Aufenthaltsort nach Deutschland.
      • Du brauchst ein Smartphone oder einen Computer (je nach Option).
      • Du kannst und willst einen gewissen Einrichtungsaufwand, Bürokratie und Programmeinrichtung, in Kauf nehmen.

    Option: Roaming

    Du nutzt deinen deutschen Mobilfunkvertrag einfach im Gastland.

    Sinnvoll wenn …

    • du nur ganz wenige Gespräche und keine mobilen Daten nutzt.
    • du nur ankommende SMS, aber keine Gespräche, zu empfangen brauchst.
    • dir einfache Einrichtung sehr viel wichtiger ist als geringe Kosten.
    • du keine Internet-Verbindung und keine SIM-Karte des Gastlandes hast.
    • du in einer extremen Notsituation bist, in der du keine Zeit oder Möglichkeit hast, eine der anderen Optionen einzurichten.

    Voraussetzungen: gering

    • deutscher Mobilfunkvertrag in dem Roaming freigeschaltet ist
    • Mobilfunkanbieter im Gastland, der mit deinem deutschen Mobilfunkanbieter einen Roaming-Vertrag hat
    • dringend empfohlen: deutscher Prepaid-Vertrag, nicht Postpaid (auf Rechnung)
      • oder sehr dickes Bankkonto

    Kosten: extrem teuer

    • typisch 3 Euro pro Minute für abgehende Gespräche
    • typisch 2 Euro pro Minute für ankommende(!) Gespräche
    • zur Begrenzung der Kosten ist ein deutscher Prepaid-Vertrag sehr empfehlenswert
      • so dass bei einem langen Gespräch oder Handhabungsfehler schlimmstenfalls das einbezahlte Guthaben weg ist und nicht gleich ein Monatsgehalt vom Bankkonto abgeht.

    Einrichtungsaufwand: keiner

    • Dein Mobiltelefon bucht sich wenige Minuten nach dem Einschalten in das Gastnetz ein.

    Handhabungsaufwand: keiner

    • Du kannst telefonieren wie wenn du in Deutschland wärst.
    • Du musst nur aufpassen, dass du bei Anrufen nach Deutschland die Landesvorwahl +49 hinzufügst, also z.B. nach Berlin nicht 030 sondern +4930 wählst.

    Tonqualität: ideal, wie im deutschen Netz

    Option: WLAN-Call

    (detailliert beschrieben in WLAN-Call – ein wenig bekannter Weg um im Ausland zu telefonieren wie im Heimatland)

    Methode, um einen vorhandenen deutschen Mobilfunkvertrag überall zu nutzen wo es WLAN gibt, wie wenn du in Deutschland wärst

    • ohne deutschen Mobilfunkmast und ohne Roaming
    • zu Gebühren als ob du in Deutschland wärst
    • ankommend und abgehend
    • mit der eigenen deutschen Mobilfunknummer

    Sinnvoll wenn …

    • du SMS brauchst (Banken!).
    • du deine vorhandene deutsche Mobilfunknummer verwenden möchtest.
    • du am besten ein separates Smartphone hast, das WLAN Call unterstützt.

    Voraussetzungen: mittelhoch

    • Du hast einen deutschen Mobilfunkvertrag, der WLAN-Call unterstützt.
    • Das Smartphone muss WLAN-Call unterstützen und entsprechend eingerichtet sein.
      • Die meisten heutigen Smartphones können es.
        • Ein 2018er Mittelklasse Nokia kann es nicht.
        • Ein einfaches 2022er Samsung kann es.
    • Du kannst ankommende Gespräche zeitlich absprechen/erwarten.
      • Du musst dein Smartphone vorbereiten/umstellen um empfangsbereit zu sein, ohne horrende Roaming-Kosten zu verursachen.
    • Warm empfohlen: Du kannst ein separates Smartphone nur für die deutsche SIM-Karte reservieren.
      • z.B. dein „deutsches“ Smartphone.
      • Dann brauchst du nicht zwischen Gastland-SIM und deutscher SIM hin und her zu schalten.
        • Ein Fehler würde hohe Roaming-Kosten verursachen.

    Kosten: wie wenn du in Deutschland mobil telefonierst

    • monatliche Grundgebühr deines deutschen Mobilfunkvertrags
    • Gesprächsgebühren pro Minute deines deutschen Mobilfunkvertrags, wie wenn du in Deutschland wärst.
      • Wenn dein deutscher Mobilfunkvertrag eine Flatrate enthält (häufig), fallen also keine Gesprächsgebühren an.
    • Tücke: Anrufe ins Gastland sind sehr teuer, weil sie ein Gespräch von Deutschland ins Gastland sind.
    • Bei Handhabungsfehlern passiert automatisch Roaming und es wird teuer.

    Einrichtungsaufwand: gering

    • In den Einstellungen des Smartphone für die deutsche SIM-Karte
      • WLAN-Call einschalten,
      • sicherheitshalber Roaming abschalten.
    • kein extra Vertrag oder App erforderlich

    Handhabungsaufwand pro Anruf: umständlich falls du Kostenschutz möchtest

    in den Einstellungen des Smartphones.

    • Vor Beginn der Anrufe/SMS:
      • Wärmstens empfohlen: Smartphone in Flugmodus versetzen (Roaming-Kosten verhindern).
      • Deutsche SIM aktiv schalten, Gastland-SIM inaktiv schalten.
      • Empfohlen: Für deutsche SIM Roaming abschalten.
      • WLAN einschalten.
      • Im Bildschirm des Smartphones abwarten/prüfen ob sich die deutsche SIM-Karte per WLAN anmeldet.
      • Deutsche SIM-Karte als Vorgabe für abgehende Anrufe und SMS setzen.
    • Anruf/SMS abwarten bzw. tätigen.
    • Nach Ende der Anrufe wieder zurück stellen:
      • Deutsche SIM-Karte inaktiv schalten, Gastland-SIM aktiv schalten
      • Gastland-SIM-Karte als Vorgabe für abgehende Anrufe/SMS setzen.
      • Flugmodus beenden
    • Der Aufwand lässt sich vermeiden, indem du
      • ein separates „deutsches“ Smartphone für die deutsche SIM-Karte verwendest, das
      • dauerhaft im Flugmodus, aber mit aktiviertem WLAN läuft.
    • Bei Fehlern gibt es leider keine Warnung sondern hohe Roaming-Gebühren
    • dringende Empfehlung: Smartphone in Flugmodus versetzen und nur WLAN einschalten

    Tonqualität: gut, u.U. sogar besser als im deutschen Mobilfunknetz

    Option: Satellite.me

    Smartphone-App, die ohne SIM-Karte über das Internet eine fast vollwertige deutsche Mobilfunknummer realisiert.

    Satellite ist eine Tochtergesellschaft des deutschen Internet-Telefonie-Pioniers Sipgate.

    Sinnvoll wenn …

    • du preisgünstig telefonieren möchtest
      • auch ins Ausland (60 Länder, Schweiz ist nicht dabei!)
    • du eine deutsche Mobilfunknummer möchtest
    • ankommende Gespräche jederzeit, auch unvorbereitet, funktionieren sollen
      • du brauchst nur eine Internet-Verbindung
        • z.B. mobile Daten deines Gastlands oder WLAN
    • du auf SMS verzichten kannst (Bank?)
    • du nicht in die Schweiz anrufen musst
    • ankommende Gespräche auf eine Mobilnummer, keine Festnetznummer, gehen dürfen.
      • Das ist teuer (20 Cent pro Minute) für Angehörige mit Festnetz.

    Voraussetzungen: gut machbar

    • Smartphone (nicht am PC/Mac nutzbar)
    • Deutsche Adresse
      • Ohne die bekommt man bei keinem Anbieter eine deutsche Telefonnummer.
        • Das ist eine Vorgabe der Bundesnetzagentur an die Telefonieanbieter.
      • An diese Adresse „Vorname Nachname, Straße Hausnummer, PLZ Ort“ wird ein Papierbrief mit einem Freischaltcode geschickt.
        • Kein „c/o Schwiegereltern“ zulässig!
        • Der eigene Nachname muss also auf dem Briefkastenschild stehen.
        • Das Warten auf diesen Freischaltbrief dauert ein paar Tage länger als du erwartest.
        • Deine Angehörigen dort müssen den Brief öffnen und dir den enthaltenen Freischaltcode innerhalb weniger Tage übermitteln.
          • Am besten die Aktion mit den Angehörigen vorher absprechen, die den Brief dann abfotografieren und mailen.

    Kosten: sehr günstig

    • Keine Minutengebühren.
    • 100 Minuten pro Monat kostenlos
    • Wenn du mehr brauchst, kannst du unbegrenzt Minuten für 5 € pro Monat buchen („Flatrate+“),
      • zu bezahlen über Google Play bzw. Apple ID.
        • Google Play Guthabenkarten kann z.B. ein Helfer im deutschen Supermarkt kaufen, freirubbeln, fotografieren und das Foto zu dir ins Gastland schicken.

    Einrichtungsaufwand: relativ einfach, aber etwas langwierig

    • App installieren
    • persönliche Daten eingeben, insbesondere Adresse in Deutschland
    • auf den Papierbrief mit dem Freischaltcode warten
    • Freischaltcode in die App eingeben

    Handhabung: einfach. Wie die normale Telefon-App.

    • Nachrichten auf den Anrufbeantworter kommen per E-Mail als WAV-Dateianhang.

    Tonqualität: gut, wenn die Internetverbindung einigermaßen stabil ist.

    Auch Android-Geräte haben gute Tonqualität.

    Option: Apps wie Yolla oder mytello

    Smartphone-App mit Verbindung ins Telefonnetz (nur abgehend)

    • Dienstleister sind eher kleine Firmen.
    • Ich habe keine persönliche Erfahrung damit.
      • Alles was hier steht stammt aus Web-Recherchen, ohne Tests.
      • Die Option wird hier erwähnt, weil im Ausland lebende Deutsche danach fragen.

    Sinnvoll wenn …

    • du keine ganz langen Gespräche führst.
    • dir einfache Einrichtung wichtiger ist als geringe Kosten.
    • du auch in die Schweiz telefonieren musst.
    • du keine deutsche Telefonnummer brauchst.
    • du keine ankommenden Anrufe erwartest.
    • du keine SMS brauchst.

    Voraussetzungen: gering

    • Smartphone
      • manche Anbieter ermöglichen auch Nutzung mit PC

    Kosten: etwas gehoben, aber erträglich

    • i.d.R. keine Grundgebühren
    • etwas gehobene Gesprächsgebühren:
      • (1-3 Cent/Minute ins deutsche Festnetz, 5-12 Cent/Minute in deutsche Mobilnetze)
      • Manche Anbieter verlangen eine Verbindungsgebühr pro Gespräch
        • (z.B. 5 Cent bei mytello),
        • haben aber dafür deutlich geringere Minutengebühren.

    Einrichtungsaufwand: theoretisch relativ einfach,

    • praktisch keine Erfahrung.

    Handhabungsaufwand: theoretisch einfach,

    • praktisch keine Erfahrung.

    Tonqualität: sehr gut bis unbrauchbar,

    • je nach Anbieter und Internet-Verbindung.
    • Zu ein und der selben App gibt es Bewertungen von „super“ bis „nicht verstehbar“.

    Option: Easybell.de

    Vollwertige deutsche Festnetznummer, die über das Internet (SIP-Protokoll) nutzbar ist.

    • Absenderufnummer frei einstellbar(!)
    • eigene Smartphone-App
    • anrufbar mit Festnetznummer(!)
    • kann Fax (Faxe kommen als E-Mail mit PDF-Anhang)
    • kann die Gespräche verschlüsseln

    Sinnvoll wenn …

    • du über eine Festnetznummer ankommend erreichbar sein willst.
    • du in die Schweiz anrufen musst.
    • ein deutlicher Einrichtungsaufwand akzeptabel ist,
      • meist auf der Easybell-Weboberfläche.

    Voraussetzungen: gehoben

    • Dein Gastland toleriert Internet-Telefonie, insbesondere SIP,
      • oder du hast ein VPN (Proton, Nord, …), das allerdings die Tonqualiät verschlechtert.
    • deutsches Bankkonto
      • Bezahlung nur per Lastschrift
    • deutsche Adresse um die Telefonnummer zu registrieren
      • die Festnetznummer bekommt eine Vorwahl aus dem Ortsnetz deiner deutschen Adresse

    Kosten: überschaubar

    • es gibt verschiedene Preismodelle, z.B.
      • Call start: 1 Euro pro Monat Grundgebühr (für die Festnetznummer), 1 Cent pro Minute ins deutsche Festnetz, 10 Cent pro Minute in deutsche Mobilnetze
      • Call allnet: 12 Euro pro Monat Grundgebühr, alle Gespräche in deutsche Fest- und Mobilnetze inklusive

    Einrichtungsaufwand: hoch, etwas Bürokratie, relativ komplexe Technik

    • bei der Bestellung etc. musst du eine deutsche Adresse angeben, sonst gibt es keine deutsche Telefonnummer
    • durch die Easybell-Web-Konfiguration kämpfen
      • den Unterschied zwischen Telefonnummer und Endgerät verstehen lernen
      • Passworte setzen etc.
      • den Anrufbeantworter einzurichten ist kompliziert
      • du kannst einen großen Teil dieses Aufwands durch einen Helfer in Deutschland erledigen lassen
    • App auf dem eigenen Smartphone installieren und koppeln.
      • in der App muss man u.U. die Lautstärke sorgfältig einstellen

    Handhabungsaufwand: gut.

    • Die Easybell-App ist so einfach wie die normale Telefon-App.
    • Die Easybell-App hat ein paar „raue Ecken“, z.B. Lautstärkeeinstellungen, abhängig vom Hersteller deines Smartphones.
    • Klingelverzögerung bei ankommenden Anrufen:
      • Manchmal klingelt dein Smartphone erst, wenn der Anrufer schon 4 mal Klingeln gehört hat.
      • Anrufer, die das nicht wissen, legen auf, bevor du die Chance hattest, dein Smartphone zu greifen.

    Tonqualität: brauchbar, auch bei mäßigen Internet-Verbindungen

    • bei manchen Android-Geräten verzerrt oder mit Echo, schlechter als mit Satellite oder normalem Mobilfunk.

    Option: Voip2GSM.eu

    IP-basierter Telefonanschluss mit zahlreichen Möglichkeiten und günstigen Tarifen

    • sehr günstige Minutentarife, z.B. in deutsche Mobilnetze 3 Cent pro Minute
    • Absendenummer kann selbst gesetzt werden, ist aber nicht erforderlich
      • Voip2GSM holt Bestätigung durch Kontrollanruf mit Freischaltcode ein; an der Absendernummer musst also der Einrichter antworten.
    • ankommend erreichbare Festnetznummer gegen Gebühr (1 € pro Monat) erhältlich

    Sinnvoll wenn …

    • du nicht ganz viele abgehende Gespräche führst (so dass sich Easybell allnet für 12 Euro pro Monat nicht lohnt), aber trotzdem günstige Preise möchtest.
    • abgehende Gespräche zu diversen Destinationen, insbesondere Mobilfunk und Ausland, auch Schweiz, nötig sind.
    • du einen hohen Einrichtungsaufwand akzeptierst.
    • Easybell zu teuer ist, du aber keine Flatrate brauchst.
    • du keine deutsche Telefonnummer bekommen kannst oder willst.

    Voraussetzungen: mittel bis hoch

    • Dein Gastland toleriert Internet-Telefonie, insbesondere SIP,
      • oder du hast ein VPN (Proton, Nord, …), das allerdings die Tonqualiät verschlechtert.
    • Bankkonto im SEPA-Raum.
      • Bezahlung nur sinnvoll per SEPA-Banküberweisung, notfalls Lastschrift.

    Kosten: sehr günstig, aber keine Flatrate

    • Gesprächsgebühren pro Minute, günstig, z.B. ins deutsche Festnetz 0,3 Cent/Minute, in deutsche Mobilnetze 3 Cent/Minute
    • Festnetzrufnummer: 5 Euro für 2 Jahre

    Einrichtungsaufwand: erheblich

    • komplizierte Webseite
    • es gibt keine App vom Betreiber
      • aber: Linphone funktioniert relativ einfach
      • man muss selber herausfinden, welches Programm mit welchen Einstellungen funktioniert
      • funktionierende Apps können nach einem App-Update aufhören zu funktionieren
    • am einfachsten: an einer FritzBox einrichten.
      • Die FritzBox kann man auch in Deutschland einrichten und dann ins Gastland transportieren.
      • An der FritzBox kann dann ein normales Telefon mit oder ohne (DECT) Kabel laufen.

    Handhabungsaufwand: gut, im Detail von App/Endgerät abhängig

    Tonqualität: o.k., stark abhängig von der verwendeten App

    Option: VPN zu einer FritzBox in Deutschland

    Angehörige in Deutschland lassen dich ihren normalen Telefonanschluss mitbenutzen, an dem eine FritzBox als Router und Telefonanlage arbeitet (sehr verbreitet):

    • Dein Smartphone verbindet sich per VPN mit dieser FritzBox.
    • Du benutzt die FritzApp Fon auf deinem Smartphone zum telefonieren.
    • Deine Angehörigen lassen dich eine ihrer Rufnummern mitbenutzen.

    Sinnvoll wenn …

    • du sehr viel in das deutsche Festnetz telefonierst.
    • du eine deutsche Festnetznummer brauchst, aber z.B. keine Adresse in Deutschland hast,
      • so dass Easybell nicht in Frage kommt.
    • du kein deutsches Bankkonto im Zugriff hast.
    • ankommende Anrufe (nur) zu vereinbarten Zeiten stattfinden, so dass Du als Vorbereitung das VPN und die FritzApp Fon starten kannst.
    • äusserst hoher Einrichtungsaufwand akzeptabel ist.

    Kosten: Null bis gering

    • keine direkten Gebühren
    • deine deutschen Angehörigen zahlen eventuelle Gesprächsgebühren die du verursachst
    • evtl. müssen deine Angehörigen ihren Internet-Tarif vergrössern (10-20 € pro Monat) damit du deren FritzBox per VPN überhaupt erreichst

    Voraussetzungen: hoch bis sehr hoch

    • Die Internet-Verbindung von dir im Gastland nach Deutschland ist nicht nur gut sondern sehr gut.
    • Deine Angehörigen sind bereit,
      • dich auf ihre Kosten telefonieren zu lassen,
      • eine ihrer Telefonnummern für dich zu reservieren.
    • Deine Angehörigen in Deutschland haben einen Internet-Anschluss mit öffentlich erreichbarer IPv4-Adresse. Das wird immer seltener.
      • die Adresse muss nicht konstant sein; der bei DSL übliche tägliche Wechsel ist o.k.
      • nur noch bei der Deutschen Telekom selbstverständlich.
      • besonders Glasfaser- und Fernsehkabelanschlüsse haben oft nur noch IPv6 und nutzen für das ältere IPv4 Brückenverfahren namens DS-Lite oder CGN (Carrier Grade NAT).
      • Für eine öffentlich erreichbare IPv4-Adresse muss man oft einen Business-Tarif wählen, der 10-20 € pro Monat extra kostet.
        • Zum Vergleich: für den Aufpreis bekommt man bei Easybell schon die Flatrate in alle Mobilnetze (12 € pro Monat).
    • Alternativ zur öffentlich erreichbaren IPv4-Adresse der FritzBox: dein Internet-Provider im Gastland stellt IPv6 bereit. Das ist je nach Land völlig selbstverständlich oder völlig unüblich.
    • Deine Angehörigen haben als Router und Telefonanlage eine große, einigermaßen moderne FritzBox, z.B. 7530, 7590, 7690 (häufig).
    • Deine Angehörigen haben jemanden mit guten IT-Kenntnissen an der Hand, der dynamisches DNS und ein Wireguard-VPN an der FritzBox einrichten kann.

    Einrichtungsaufwand: äußerst hoch

    • Sicherstellen, dass eine öffentlich erreichbare IPv4-Adresse vorhanden ist.
    • Dynamisches DNS (z.B. mit myfritz.net) auf der FritzBox einrichten.
    • Wireguard VPN auf der FritzBox einrichten.
    • Wireguard auf deinem Smartphone einrichten.
    • FritzApp Fon auf Deinem Smartphone einrichten.
    • FritzApp Fon auf der FritzBox als Nebenstelle einrichten.
      • Das geht viel einfacher wenn das Smartphone im WLAN der FritzBox ist,
        • z.B. während eines Deutschland-Aufenthalts.
    • auf der FritzBox die Nebenstelle mit einer Telefonnummer verknüpfen.
      • Welche Nummer soll abgehend signalisiert werden?
      • Bei welchen ankommend gerufenen Nummern soll deine FritzApp klingeln?

    Handhabungsaufwand: hoch, aber weniger als bei WLAN-Call

    • VPN einschalten, prüfen.
    • FritzApp Fon starten.
    • Jetzt kommen Anrufe an und du kannst anrufen.

    Tonqualität: grenzwertig

    • Die Internet-Verbindung muss sehr gut sein, sonst gibt es nervige Aussetzer;
      • z.B. gibt es in einem deutsches 4G-Mobilfunknetz mit nur 2 Balken Empfang erhebliche Aussetzer.
        • Zum Vergleich: Easybell funktioniert dann noch völlig stabil.

    Du kannst all diese Optionen kombinieren,

    was dann aber natürlich die Summe der Grundgebühren und des Einrichtungsaufwands bedeutet.
    Z.B. nutze ich, als experimentierfreudiger IT-ler mit Hobby Telefonkostenoptimierung, unterwegs für:

    • abgehende Telefonate (ausser Schweiz): Satellite.me .
    • ankommende Telefonate: Easybell (Nebenstelle einer Cloud-Telefonanlage einer befreundeten Organisation).
    • SMS und wichtige Gespräche (Bank o.Ä., die irritiert wären wenn sie nicht eine deutsche Mobilnummer sehen): WLAN-Call mit dem vorhandenen Aldi-Talk Mobilfunkvertrag.
    • lange Gespräche ins deutsche Festnetz (z.B. mit meiner Frau): VPN zur Fritz-Box zu Hause.
    • Gespräche in die Schweiz: VoIP2GSM, eingerichtet auf jener FritzBox, die ich per VPN erreiche.
    • Für deine Situation reichen wahrscheinlich weniger Optionen…

    Zusammenfassung

    Zu verschiedene Situationen passen verschiedene Optionen. Wenn du die Wahl hast, in dieser Reihenfolge:

    • Wenn alle Gesprächspartner ein Smartphone haben und eine App installieren (lassen) und bedienen können: Signal. Das bietet den besten Datenschutz, die beste Tonqualität und kostet nichts, hat aber keine Telefonnummer und kann auch nicht zu Telefonnummern anrufen.
    • Wenn eine deutsche Mobilnummer (abgehend und ankommend nutzbar) ausreicht, du keine SMS brauchst und keine abgehenden Gespräche zu Schweizer Telefonnummern führst: Satellite.me .
    • Wenn du SMS brauchst: WLAN-Call, notfalls Roaming (teuer, SMS z.T. unzuverlässig).
    • Wenn dein deutscher Mobilfunkvertrag vernünftige Konditionen bietet und es reicht, dass du nur unter der deutschen Mobilnummer erreichbar bist und du möglichst ein separates Smartphone mit der deutschen SIM-Karte hast: WLAN-Call.
    • Wenn du unter einer deutschen Festnetznummer ohne Terminplanung erreichbar sein möchtest und gewisse Kosten (1 bzw. 12 Euro pro Monat zzgl. bzw. inkl. Minutengebühren) akzeptabel sind: Easybell.de .
    • Wenn du in die Schweiz anrufen musst: Voip2GSM (günstig), Easybell, notfalls WLAN-Call.
    • Wenn du viel, aber unter 12 Euro pro Monat, in Mobilnetze anrufst oder Auslandsdestinationen häufig sind und du einen mittelhohen Einrichtungsaufwand akzeptierst: Voip2GSM.
    • Wenn du keine deutsche Adresse, aber eine sehr gute Internet-Verbindung und einen technisch versierten FritzBox-Besitzer in Deutschland hast: VPN zu einer FritzBox.

    Wenn dir die Vielzahl der Optionen zu unübersichtlich ist, stelle deine Frage als Kommentar und ich versuche, Dir Rat zu geben.

  • Using Local AI for Summarizing Long Texts

    In this post, I’ll describe how you can use GPT4All, an AI tool running locally on your computer, to create a reasonable first draft of meeting notes from a transcript. This tool is capable of processing text versions of meetings that have been created by tools like Whisper from audio recordings. By using GPT4All, the task of taking meeting notes becomes more manageable and efficient.

    You need to tweak the standard settings of GPT4All’s AI model in order to obtain a large enough context window so that your AI engine can analyze the entire transcript and not just the last portion of it.

    One-time Setup

    1. Install GPT4All, as outlined in an earlier blog post.
    2. Start GPT4All.
    3. Install the „Llama 3.1 8B Instruct 128k“ model: Models -> + Add Model -> search for „Llama 3.1 8B Instruct 128k“ -> Download
    4. Increase the context window:
      1. Chats -> load the „Llama 3.1 8B Instruct 128k“ model
      2. Settings -> Model -> Context Length: increase from default 2048 to 16384 (at least three times the number of words in your transcript; 8192 was not enough for a 3600 word transcript).
      3. Max Length: increase from 4096 to 8192 (this might not be needed if you want a short output).

    Steps per Meeting Transcript

    1. Start GPT4All, load the „Llama 3.1 8B Instruct 128k“ model and start a new chat.
    2. Copy & paste this prompt into the „Send a message“ field. At the end, do not press enter, instead press Shift+Enter twice to insert a blank line, without sending the message:
      Create a summary of the following meeting transcript. Use bullet points, include all topics, even those that were mentioned only briefly.
    3. Paste your meeting transcript into the message box, after the prompt and the newline. Then hit Enter to send the request and get a cup of water/tea/coffee while you wait for the reply.
    4. If the AI output has too few notes about some topics, ask follow-up questions like Please elaborate more on the conference in ... .
    5. Copy the reply (output) to your word processor and review whether AI got the facts right.

    Important: Review AI Output

    Review whether AI got the facts right. AI tends to hallucinate and this tendency is amplified by audio transcription errors, interrupted sentences etc.

    • AI might have reversed who is going to do what. For instance, when talking about an app, AI might think you are developing it, while in reality you are researching its usefulness and someone else would be doing the development.
    • AI might mix up or group unrelated events, like a conference that is half a year ahead and a visit to relatives next weekend.
    • In many places you’ll need to change „the speaker“ into the appropriate real name.

    Conclusion

    • AI can give you a good first draft of the meeting notes.
    • You still need to take some notes during the meeting:
      • important topics – AI might miss or inappropriately reduce a topic
      • key facts and numbers – speech-to-text AI might miss or misunderstand key words
      • key decisions – AI might misunderstand decision words as small remarks
    • Do your review shortly (hours, at most a few days) after the meeting, so you can remember key facts that AI may have mixed up.

  • How to Include a Mermaid Diagram into a WordPress Blog Post

    Why Mermaid?

    You can describe a diagram in simple text form, much easier (to me) than drawing it using a drawing program. You enter the relationships and let the program do the layout. I’m thinking of Mermaid as a diagramming tool in a way similar to what Markdown is for text authoring.

    For example, when you enter this code into a Mermaid interpreter

    graph TD
    mermaidsource["Mermaid Source Code"] --> wpedit["Word Press Editor, MerPress Block"] --> website[Finished Website]

    you’ll get a diagram like the one shown below.

    You can find an introduction to Mermaid on https://mermaid.js.org/intro/

    Approach 1: WordPress Plugin

    When searching the web, multiple options appear. The classic seems to have been „WP Mermaid“ but the page has disappeared from wordpress.org/plugins

    The plugin I chose is MerPress . Initially, I was a bit sceptical because it has only 100+ installations, which tends to indicate a scam or buggy sofware, but the development history shows continuous development since June 2021 and there are current updates for each WordPress version.

    When editing, you’ll see your code on the top and the resulting diagram below it. This is as comfortable as you can get. When you see no diagram, there is a syntax error in the code.

    Here is an example, from the code shown above:

    graph TD
    mermaidsource["Mermaid Source Code"] --> wpedit["Word Press Editor, MerPress Block"] --> website[Finished Website]

    Approach 2: Online-Editor + Image Export

    The Mermaid team has setup a Live Editor where you can input your diagram’s code and then see and download a PNG or SVG file. SVG is not easy in WordPress for security and privacy reasons (SVG is a variant of XML and can contain all kinds of links, including links to malware), so you are better off with a PNG image.

    But a PNG image is much larger than a mermaid file, so for your visitors, the plugin option is probably better, but the PNG option is a lot more portable because it does not require JavaScript execution on their computer.

  • Improve Your English Communication with AI-Powered Grammar Correction – A Guide for Non-Native Speakers

    Install GPT4All and let it rewrite your text by choosing a suitable model and prompt, as demonstrated in this article. GPT4All runs localy on your computer, so you can use this method for confidential data. (Updated on 2025-02-25 for GPT4All version 3.10, original version)

    Issue

    You speak and write some English, but not near native quality. However, you need to publish English texts, even if just as a chat message to a team. Since you cannot run each chat message by a native speaker friend because they have lots of other things to do, you are looking for machine help.

    Solution

    Let AI do the job. AI is said to occasionally hallucinate about facts and conclusions, but it’s good about grammar and spelling. So you create the content, and AI can adjust the words.

    Someone said, “AI is like a parrot and a text mechanic.” That’s what I’m trying to use it for. Comparable to a pocket calculator in Mathematics. Not a supercomputer or Wolfram Alpha, but a pocket calculator.

    Tool

    Because your content may not be public, e.g. intended for an internal message within your organization, you cannot use online services like Grammarly. Therefore, you must utilize a locally running AI. A colleague pointed me to GPT4All.io . Their smaller models run on computers with as little as 8 GB of RAM, while the larger models require 16 GB. You don’t need a GPU; the standard CPU of your desktop/notebook computer is sufficient. If you have the opportunity, run it on a Mac with ARM CPU. I found a 2021 M1 Mac Mini to be about 5 times faster than a Windows or Linux desktop with an Intel CPU. GPT4All supports all major operating systems: Linux, Mac, Windows.

    Initial one-time Setup

    Download GPT4All app

    1. Point your web browser to gpt4all.io
    2. Download the installer for your operating system type (Windows, Mac, Ubuntu). Ubuntu should also work for Debian, Mint and other Debian-derived systems.
    3. Install the downloaded package on your computer.
    4. Select “no” to the opt-in questions (after all, you are doing this to keep your text confidential).

    Download Models

    Note: Do this when you have good, unmetered Internet connectivity. The models are approximately 3-8 gigabytes each to download.

    1. Start GPT4All
    2. In the left pane, click on the “Models” icon.
    3. In the lower left corner, click on “Downloads”.
    4. In the top right corner click the „+ Add Model“ button.
    5. Identify the line of the “Mistral Instruct” model.
    6. In the right corner of the model’s line, click on the “Download” button. Wait until about 4.1 gigabytes have downloaded.

    If you want to experiment with other models, repeat step 6. You can also get models not in the list by entering a search term in the long top line „Discover and download models by keyword search…“

    If you want to download only one model, choose “Mistral Instruct”.

    Configure the App to Speed Up Your Text Checking Workflow

    1. Start GPT4All
    2. In the left navigation pane, click on the „Settings“ gear icon, then on the „Model“ line. A „Settings“ window opens.
    3. In the semi-left pane, click on the „Model” line. The header of the main pane is now “Model Settings”.
    4. Click on the unnamed line between „Model Settings“ and select “Mistral Instruct” from the dropdown
    5. Click on “Clone”
    6. Edit the “Unique Name” field to something like “Mistral Instruct Grammar Checker”
    7. Edit the „Chat Template“ field to read:
    {%- if messages[0]['role'] == 'system' %}
        {%- set system_message = messages[0]['content'] %}
        {%- set loop_start = 1 %}
    {%- else %}
        {%- set loop_start = 0 %}
    {%- endif %}
    {%- for message in messages %}
        {%- if loop.index0 >= loop_start %}
            {%- if (message['role'] == 'user') != ((loop.index0 - loop_start) % 2 == 0) %}
                {{- raise_exception('After the optional system message, conversation roles must alternate user/assistant/user/assistant/...') }}
            {%- endif %}
            {%- if message['role'] == 'user' %}
                {%- if loop.index0 == loop_start and loop_start == 1 %}
                    {{- ' [INST] ' + system_message + '\n\n' + message['content'] + ' [/INST]' }}
                {%- else %}
                    {{- ' [INST] Please correct any grammatical or spelling errors in this text while staying as close to the original content as possible. Do not consider the context when making your corrections and only provide the revised version.' + '\n\n' + message['content'] + ' [/INST]' }}
                {%- endif %}
            {%- elif message['role'] == 'assistant' %}
                {{- ' ' + message['content'] + eos_token }}
            {%- else %}
                {{- raise_exception('Only user and assistant roles are supported, with the exception of an initial optional system message!') }}
            {%- endif %}
        {%- endif %}
    {%- endfor %}
    • Optionally: empty the „Suggested FollowUp Prompt“
    • Close the Settings and the GPT4All Chat app

    Daily Use

    1. Open the GPT4All App
    2. In the left navigation pane, click on the „Chats“ icon.
    3. In the top center „Choose a model“ drop down field, select your newly configured model, e.g. “Mistral Instruct Grammar Checker”
    4. In the lower “Send a message” field, enter your sentence and click on the arrow in the right side.
    5. Check the output. If you believe that the AI output can be improved, or if you simply wish to view a different version, click on the ‘Regenerate response’ button.
    6. After 5-10 questions, the output tends to become less useful, like claiming spelling errors in the input while the output is identical to the input, start a „+ New Chat“ in the top of the semi-left navigation pane.

    To check another sentence or paragraph, just repeat from step 4.

    Conclusion

    GPT4All can help you improve your English communication by providing grammar and spelling corrections for your written text, always respecting the privacy of your data. This tool uses artificial intelligence to identify errors in your writing and suggest corrected versions. You can use this app daily as a part of your writing routine.

  • WordPress Site bei Hetzner aufsetzen

    Beim Umstellen meiner Website auf ein Blogging-freundliches CMS fiel die Wahl auf WordPress. Mein bevorzugter Hosting-Provider Hetzner bietet an, WordPress direkt aus seiner Verwaltungsoberfläche Konsole-H zu installieren.
    Hier sind meine Notizen dieses Vorgangs:

    Vorbereitungen

    • ein Verzeichnis für die neue WordPress-Installation anlegen, z.B. mit Web-FTP, z.B. „stut-de_wp2024“
    • für die Domain TLS einrichten. Hetzner kann auf „Knopfdruck“ Wildcard-Zertifikate einrichten, die dann z.B. für „*.stut.de“ gültig sind. Das erspart die Mühe, für jede Subdomain ein separates TLS-Zertifikat einzurichten.
    • ein Postfach „wordpress“ installieren, das als Absender verwendet wird. Hetzner prüft die Existenz dieses Postfachs bevor man mit der Installation fortfahren kann.
    • Die PHP-Version auf eine aktuelle einstellen. Bei mir stand es noch auf 7.3. Ich habe auf 8.3 (das neueste das derzeit angeboten wird) umgestellt.
    • PHP-Modul imagick aktivieren. Wenn das nicht aktiv ist, klagt WordPress im Bereich „Zustand der Webseite“ über dessen Fehlen. Wenn ich gerade dabei bin: auch noch das PHP-Modul OpCache aktivieren, das den PHP-Interpreter beschleunigt.

    Konsole-H > Produkte > Einstellungen > Extras > WordPress

    1. Zielverzeichnis angeben (s.o.)
    2. Die Automatik richtet selbstständig eine neue MySQL/MariaDB-Datenbank ein. Es empfiehlt sich, den Namen dieser Datenbank zu notieren. Die Zugangsdaten kann man hinterher im Bereich Datenbanken > MySQL einsehen. Dort kann man auch eine Beschreibung der Datenbank hinterlegen, was sich empfiehlt um in 10 Jahren noch zu wissen, wozu diese Datenbank mal gedient hat oder vielleicht immer noch dient.
    3. Klick auf „WordPress einrichten“:
      • Titel: z.B. „Martin Stut’s Blog“
      • Benachrichtigungs-Email: die Adresse, an die z.B. Meldungen über erforderliche/erfolgte Updates oder Kommentare zum Freigeben geschickt werden.
      • Benutzername/Passwort setzen – das umgeht das Problem, das ganz frische WordPress-Installationen (für Angreifer erkennbar an einem frisch angelegten TLS-Zertifikat) in Sekundenschnelle gehackt werden, noch bevor der echte Admin sein Passwort setzt.
      • Speichern
    4. „WordPress wird eingerichtet“

    In WordPress …/wp-admin anmelden

    Mit den Zugangsdaten, die oben gesetzt wurden.

    „Zustand der Webseite“ überprüfen. Da können PHP-Module fehlen (-> in Konsole-H einschalten) oder Updates nötig sein.

    Der Rest des Einrichtungsvorgangs findet dann innerhalb WordPress statt und ist nicht mehr Hetzner-spezifisch.

  • How to archive a CMS powered website to static HTML

    When switching the content management system of my website from ProcessWire to WordPress, I want to archive the previous website, because it contains some content that I want to keep and stay accessible.

    In this post I’ll describe how to do it. Essentially, it is one single wget command with optional post-processing by sed .

    For a real-world example, my goal is to create a collection of locally browsable HTML files from https://processwire2015.stut.de . I want to shut down that CMS but still publish the old website under a subdomain.

    I’m doing this on a Linux (Ubuntu 22.04, but most Linuxes, as well as macOS, have the tools mentioned) command line. The go-to tool for ripping an entire website in Linux is wget . (wget is also available for Windows, see https://gnuwin32.sourceforge.net/packages/wget.htm and https://www.tomshardware.com/how-to/use-wget-download-files-command-line .)

    I’m creating a blank subdirectory ~/processwire2015-static . All work is being done in this subdirectory.

    1. Collect the Right wget Parameters

    wget is a very versatile tool with lots of options. So I went through the documentation and collected the parameters for my use case:

    • follow links : -r
    • … but only within this domain: --domains=processwire2015.stut.de,www.stut.de,stut.de
    • write relative links, suitable for local viewing (as the original will go away): --convert-links
    • create files as .html, even is the URL ends with something else: --adjust-extension
    • also get page requisites like CSS: --page-requisites
    • don’t create subdirectories per host, to avoid the font being stored in a separate subdirectory: --no-host-directories

    so the complete command line is

    wget -r --domains=processwire2015.stut.de,www.stut.de,stut.de --no-host-directories --convert-links --adjust-extension --page-requisites https://processwire2015.stut.de

    This runs for a minute or so and generates a collection of files and subdirectories. The number of separate index.html files comes from the URL composition of ProcessWire: For instance, the „english“ page has the URL /english , which is not a good filename. So wget creates a subdirectory of this name and an index.html file with the real contents.

    The Linux tree command lists a nice overview:

    .
    ├── css?family=Lusitana:400,700|Quattrocento:400,700.css
    ├── deutsch
    │   ├── bueroservice-marion-stut
    │   │   └── index.html
    │   ├── dienstleistung
    │   │   └── index.html
    │   ├── erfahrungen
    │   │   └── index.html
    │   ├── index.html
    │   └── lebenslauf
    │       └── index.html
    ├── english
    │   ├── cv
    │   │   └── index.html
    │   ├── experience
    │   │   └── index.html
    │   ├── index.html
    │   └── services
    │       └── index.html
    ├── index.html
    ├── kontakt-impressum
    │   ├── datenschutzerklaerung
    │   │   └── index.html
    │   └── index.html
    ├── links
    │   └── index.html
    ├── site
    │   ├── assets
    │   │   └── files
    │   │       ├── 1025
    │   │       │   └── passbild-martin-web.jpg
    │   │       └── 1034
    │   │           └── passbild-martin-web.jpg
    │   └── templates
    │       └── styles
    │           └── main.css
    └── site-map
        └── index.html
    

    2. Postprocessing – Cleanup with sed

    Inevitably, some manual cleanup will be needed.

    Remove the Admin Login Page Link Target

    All pages generated by the old CMS had a link „Admin Login“ at the bottom, pointing to the /admin page. As the CMS will go away it is pointless to have a link to the no-longer-existing admin page. So let’s point the link to the start page.

    As all files need to be edited, this task cries for automation. One of Linux’s go-to tools for mass replacement of text file content is sed . (awk is another tool capable of this, but sed is a lot simpler and I wanted to learn it at this opportunity.)

    Because I haven’t used sed for quite a time, I searched the web for examples and found https://tecadmin.net/sed-command-in-linux-with-examples/ . For a single file the command line is:

    sed -i 's/adminpage//' index.html

    The -i option copies the result in-place to the file being edited, as opposed to writing it to standard output. The s/adminpage// command does a substitution of the regular expression adminpage to the empty string (between the last two slashes). The single quotes just serve to protect the command from being expanded by the shell.

    To apply this command to all files, I’m using the find command:

    find . -type f -exec sed -i 's/adminpage//' {} \;

    The . means „start at this directory“; type -f means „only look at files“ as opposed to directories, symbolic links, devices, …; -exec means „execute the following command for each file found“; the {} in the command is a placeholder to insert the filename to be processed. The \; at the end is a plain semicolon to signify the end of the -exec command, with the backslash protecting the semicolon from the outer shell.

    Then of course remove the /adminpage directory.

    Remove the Admin Login Page Link Text

    The same sed logic does the trick here, replacing „Admin Login“ with nothing:

    find . -type f -exec sed -i 's/Admin Login//' {} \;

    Remove the Search Form Action

    The old CMS‘ template also placed a search field (miniature form) onto each page. This search form won’t work with a static copy. Because it would have been too much effort to remove the search form, I decided to just remove the action: replace https://processwire2015.stut.de/search/ with nothing:

    find . -type f -exec sed -i 's/https:\/\/processwire2015.stut.de\/search\///' {} \;

    The sed command is suffering from „leaning toothpick syndrome“, because the literal forward slashes in the search text need to be protected by preceding backslashes from being interpreted as „end of regular expression“ marks.

    Conclusion

    You have now an adaptable recipe for archiving an entire CMS-driven website to a static collection of HTML files using the wget command, and postprocessing it using the sed command.

    This example task demonstrates some of the power of the command line. Explaining the same process for a graphical user interface would be much more complex.