Menü

POCSAG/Pager

Das "Radio-paging code No. 1" Protokoll, fälschlicherweise "POCSAG" genannt, ist ein einfaches, asynchrones Protokoll, mit welchem Pager Meldungen verschickt werden. POCSAG steht für Post Office Code Standardisation Advisory Group, welches die Organisation ist, die das Protokoll erfunden hat. Das Protokoll ist passiv. Es ist nicht überprüfbar, ob eine Meldung wirklich angekommen ist oder nicht. Meldungen werden daher häufig mehrmals versendet, und Pager besitzen ein Mechanismus um Duplikate Meldungen zu unterdrücken.

Funktionsweise

Eine Pager Meldung besteht aus einer "Telefonnummer" und der Meldung selbst. Die Telefonnummer wird beim Pager als RIC (Radio Identity Code) oder CAP Code (Channel Access Protocol code) bezeichnet. Die Nummer ist 21 bit lang, was bedeutet, alle Pager Codes sind im Bereich von 0 bis 2'097'151 (221-1).

Die Nachricht kann in zwei Formaten vorliegen. Numerisch, wobei zwei Ziffern mittels BCD Kodierung in ein Byte kodiert werden, oder Text, wobei Zeichen als 7-bit ASCII übertragen werden.

Spezial Codes

Viele Pager empfangen auf RIC "224" ebenfalls Meldungen. Wird die Zeichenkette YYYYMMDDHHMMSS gefolgt von der Zeit im Format yyMMddhhmmss gesendet (z.B. jetzt gerade YYYYMMDDHHMMSS250428113406 in UTC), stellt sich der Pager automatisch auf die gesendete Zeit ein. Pager Systeme senden deswegen dieses Zeitsignal in regelmässigen Intervallen aus.
Man beachte, dass der Code vermuten lässt, dass das Jahr vierstellig ist, ist es aber nicht. Das Jahr wird zweistellig übermittelt. Es ist nicht garantiert, dass dieser Code funktioniert. Gewisse Pager haben ein anderes Format oder RIC, und manche unterstützen es gar nicht.
Die Zeitmeldung hat keine Zeitzoneninfo, und wird als lokale Zeit interpretiert.

Probleme

Das Protokoll ist nicht verschlüsselt. Meldungen können von jederman in Reichweite des Senders eingesehen werden. Dies ist problematisch aus mehreren Gründen. Erstens können die CAP Codes abgegriffen werden, was es einem Angreifer erlaubt gefälschte Meldungen an den Pager zu senden, oder den Empfang von Meldungen zu verhindern.
Das zweite Problem ist, dass die Meldung eingesehen werden können. Dies ist insbesondere problematisch wenn Pager im Gesundheitswesen eingesetzt werden, z.B. Spitäler.

Da das Protokoll passiv ist, weiss man nicht ob eine Meldung empfangen wurde oder nicht.

Meldungen senden mittels MMDVM

Um Meldungen abzusetzen ohne an DAPNET oder ähnlichen Systemen teil zu nehmen kann ein MMDVM Gerät mit pi-star Software benutzt werden (siehe AliExpress).

Thumbnail In der Konfiguration vom pi-star muss zuerst POCSAG aktiviert werden. Nach dem Speichern erhält die Konfigurationsseite einen Bereich um POCSAG zu konfigurieren. In der Regel muss hier nichts unternommen werden. Höchstens die Frequenz muss dem Pager angepasst werden. Der vordefinierte Wert von 439.9875 MHz ist mit DAPNET kompatibel. Kommerzielle Pager von abgeschalteten Systemen verwenden eine andere Frequenz. Diese ist teilweise auf dem Geräte Label angegeben, ansonsten muss im Internet gesucht, oder das Gerät zerlegt werden.

Thumbnail Nachdem POCSAG aktiviert wurde, muss der RemoteCommand Befehl aktiviert werden. Hierzu klickt man auf der Webseite oben auf "Expert" (Der Menüpunkt ist nur sichtbar auf der Konfigurationsseite). Dies zeigt nun eine Warnung an, und das Menü hat einige neue Menüpunkte bekommen. Hier muss "MMDVMHost" gewählt werden.

Thumbnail Die Host Konfigurationsseite ist relativ gross. Im unteren Viertel sollte eine Sektion "Remote Control" sein. Hier muss "Enabled" auf "1" gesetzt werden.

Das pi-star Gerät sollte nun neu gestartet werden. Entweder über die Web Oberfläche oder durch ziehen des Steckers.

Nach dem Neustart steht über SSH der "RemoteCommand" Befehl zur Verfügung. Der Syntax um eine Nachricht zu senden ist RemoteCommand <port> page <ric> <msg>. Der Port kann unter der Expert Konfiguration in der "Remote Control" Sektion entnommen werden. Normalerweise ist es 7642. "ric" ist die Pager Nummer, wobei führende Nullen nicht angegeben werden müssen. "msg" ist die Nachricht. Diese muss von doppelten Anführungszeichen umschlossen sein wenn sie Leerzeichen oder Sonderzeichen enthält.
Beispiel: RemoteCommand 7642 page 2097151 "Hello, World!"

Der Befehl wird über SSH abgesetzt. Eine Beispiel Implementation ist hier zu finden.

Der oben verlinkte Code sollte aller Sorgfalt entsprechend sicher sein. Trotzdem sollte die Datei nicht direkt aus dem Internet zugängig sein, da keinerlei Limits eingebaut wurden um Massenmeldungen (Spam) zu unterdrücken. Das obere Limit sind 80 Zeichen für die Nachricht. Dieses Limit darf nicht erhöht werden, da der MMDVM Transmitter abstürzt beim Versuch zu lange Nachrichten zu versenden. Die ITU Empfehlung damals war Speicherplatz für 40 Zeichen, daher sollten sowieso nur kurze Meldungen versandt werden.