Kannel mit LOX24

Kannel ist ein Opensource SMS-Gateway und ein echter Dinosaurier im besten Sinne des Wortes. Ein Dino weil die Kannel Entwicklung bereits 1999 begann. Auch ein Dinosaurier aufgrund seiner Größe. Das Kannel System besteht aus 300.000 Zeilen C-Code. Ein so umfangreiches Projekt lässt sich nicht ohne weiteres Ersetzen oder Neuentwickeln.

Und obwohl wir Kannel liebevoll den Dinosaurier nennen, ist Kannel auch heute noch sehr lebending. Nicht nur weil eine Vielzahl von Kunden und auch wir selber Kannel als Client nutzen um SMPP Verbindungen anzubinden, sondern weil nach einer langen Pause zwischen 2014 und 2018 wieder Leben und Bewegung ins Projekt zurückgekehrt ist.

LOX24 und SMPPP

Wie kommt jetzt LOX24 ins Spiel? Für den SMS Versand bieten wir eigentlich keine SMPP Schnittstelle an. SMPP ist ein kompaktes Binärprotokoll, das sich hervorragend für große SMS Volumen bei geringer Bandbreitennutzung eignet und kaum Leistung verbraucht. Es hält jedoch auch einen oder mehrere TCP-Sockets ständig mit dem SMSC verbunden, was sich schlecht auf Skalierbarkeit, Lastausgleich und Failover auswirkt.

Schlimmer noch, SMPP bietet keine Sicherheit auf Transportebene, wie z.B. SSL/TLS, und sendet alle Ihre Daten einschließlich der Zugangsdaten als Klartext. Die Verbindung muss also per VPN oder Tunnel abgesichert werden, was zusätzliche Komplexität und Störanfälligkeit ins Spiel bringt.

HTTPS SMS ist die Lösung

Vorteilhaft ist es also Kannel mit unserer https SMS API zu verbinden. Dann haben wir den Vorteil der SSL Verschlüsselung ohne weitere Tools und gleichzeitig können Kannel Kunden ihr gewohntes Tool weiternutzen und müssen nicht unsere API in Ihr System integrieren. Wer bereits SMPP Verbindungen mit Kannel nutzt, kann so unseren SMS Gateway in etwa 5 Minuten konfigurieren und ganz normal wie alle anderen SMS Verbindungen nutzen.

Kannel ist von Haus aus kompatibel mit https. Es muss also keine Veränderung am Source-Code von Kannel vorgenommen werden oder irgendetwas zusätzliches installiert werden. Normalweise würde man den System Typ «generic» verwenden (group = smsc, smsc = http, system-type = kannel). Allerdings ist «generic» kompliziert zu konfigurieren und – wenn man sich einmal in die Randfälle vertieft hat – ist er auch im Vergleich zu den anderen SMSC-Typen sehr eingeschränkt.

Wir nutzen deshalb «system-type = kannel«. Diese https Verbindung ist eigentlich dafür gedacht verschiedene Kannel Clients miteinander zu verbinden, eignet sich aber hervorragend um den LOX24 SMS Gateway zu nutzen. Für Kannel sieht es dabei so aus, als würden die SMS an einen anderen Kannel Client verschickt. In Wirklichkeit werden die SMS aber an die LOX24 SMS Api verschickt. Das ist kein Nachteil für Kannel und ein großer Vorteil für Sie als Kannel Nutzer, da hierdurch die Konfiguration äußerst einfach ist und keine Nachteile wie beim generischen Typ auftreten. Wenn Sie so möchten, simuliert LOX24 ein kleiner Kannel zu sein.

Eine Entscheidung müssen Sie aber vorab treffen. Wie möchten Sie die Zustellberichte empfangen. Wir können diese entweder direkt an Ihren eigenen Endpoint schicken, also z.B. eine URL auf Ihrem Server oder eine Mail Adresse. In diesem Fall senden wir die Zustellberichte nicht zurück an Kannel, sondern direkt an Sie. Oder wir schicken die Zustellberichte zurück an Kannel und Sie können dann die Zustellberichte von Kannel erhalten. Diese Lösung bietet sich meist an, wenn Sie bereits SMS mit Kannel via SMPP verschicken und die Zustellberichte von Kannel verarbeiten.

Variante 1: Zustellberichte direkt an Sie

In Kannel legen Sie die folgende Konfiguration an:

group = smsc
smsc = http
system-type = kannel
smsc-id = "lox24"
allowed-smsc-id = "lox24"
port = 10443
send-url = "https://lox24.eu/api/kannel/{SERVICE_CODE}"
smsc-username = "{USER_ID}"
smsc-password = "{API_KEY}"
max-sms-octets = 1530

  • SERVICE_CODE – ersetzen Sie durch den SMS Typ welchen Sie nutzen wollen, also ‘economy’, ‘pro’ oder ‘direct’
  • USER_ID – ist Ihre Kunden-Nr. wie Sie sie auch für den Login auf unserer Website nutzen
  • API_KEY – ist der Schlüssel welchen Sie in den API Einstellungen in Ihren Web-Account generieren können. Sie müssen dabei den Typ ‘API Kannel’ wählen.

Die Zustellberichte gehen an die URL welche Sie in Ihrem Web-Account als API v2 Endpoint hinterlegt haben. Es kann sich dabei auch um eine Mail Adresse handeln.

Variante 2: Zustellberichte an Kannel

In diesem Fall legen Sie in Kannel die folgende Konfiguration an:

group = smsc
smsc = http
system-type = kannel
smsc-id = "lox24"
allowed-smsc-id = "lox24"
port = 10443
send-url = "https://lox24.eu/api/kannel/{SERVICE_CODE}"
smsc-username = "{USER_ID}"
smsc-password = "{API_KEY}"
dlr-url = "http://youhosthere.com:10443/?username={USER_ID}&password={API_KEY}"
connect-allow-ip = "127.0.0.1;213.133.127.70;116.203.64.153;85.10.245.*"
max-sms-octets = 1530

  • SERVICE_CODE – ersetzen Sie durch den SMS Typ welchen Sie nutzen wollen, also ‘economy’, ‘pro’ oder ‘direct’
  • USER_ID – ist Ihre Kunden-Nr. wie Sie sie auch für den Login auf unserer Website nutzen
  • API_KEY – ist der Schlüssel welchen Sie in den API Einstellungen in Ihren Web-Account generieren können. Sie müssen dabei den Typ ‘API Kannel’ wählen.
  • youhosthere.com:10443 – müssen Sie ersetzen durch die Adresse Ihrer Kannel Installation

In der SMSC-Konfiguration verwenden wir den Port 10443, aber es kann jeder beliebige Port sein, der Ihnen gefällt. Wir empfehlen dringend in Ihrer Firewall Einstellung nur den LOX24 Server zuzulassen, damit niemand sonst DLRs an Ihr Kannel sendet:

LOX24-Server: 116.203.64.153, 213.133.127.127.70, 85.10.245.*

Ein paar weitere Informationen zu den Zustellberichten und der genauen Konfiguration finden Sie in unserer API Beschreibung unter:

About the Author

The Author has not yet added any info about himself