AT+CSCB Empfangen von CellBroadcast-Nachrichten
AT+CSCB? gibt den momentanen Empfangsstatus für CB aus
AT+CSCB=mode,id,cs setzt die Empfangsparameter für CB
mode: die Nachrichten, auf die die in id und cs angegebenen Werte zutreffen, werden empfangen (mode 0) oder verworfen (mode 1)
id: ein oder mehrere Bereiche von CB-Message-IDs
cs: ein oder mehrere Bereiche von CB-Codierungsschemata
Beispiele:
AT+CSCB=0,"50,100","0-99" empfängt die Kanäle 50 und 100
AT+CSCB=1,"",""empfängt alle eintreffenden CB-Nachrichten. Seltsame Logik, aber alle Nachrichten mit id="" und cs="" (mithin also keine Nachricht) werden verworfen, alle anderen werden empfangen.
AT+CSCB=1,"1-99",""empfängt alle CB-Nachrichten der Kanäle 0 und 100-999. Logisch, oder?
Die eintreffenden Nachrichten erscheinen normalerweise leider nicht im Textmode, also als lesbarer Klartext, sondern im PDU-Mode, also in genau der Form, in der sie zwischen BTS und MS übertragen werden. Das sind 88 Byte, davon sind 6 Byte Headerinformationen und 82 Byte Nutzdaten. Etwa so:
+CBM: 88
431302580011CD246BE69AB97....
Der Header enthält folgende Informationen: Byte 1-2 die 'Message serial number', darin versteckt der 'Geographical scope indicator', der 'Message code' und die 'Update number'
Byte 3-4 'Message identifier', der CB-Kanal
Byte 5 das 'Data Coding Scheme'
Byte 6 der 'Page Parameter'
Und damit das nicht so einfach ist, sind die maximal 93 7-Bit-Zeichen pro Seite einer CellBroadcast-Nachricht in die restlichen 82 Byte verpackt. Urks. Etwa so:aus 8*7Bit6 5 4 3 2 1 0
6 5 4 3 2 1 0
6 5 4 3 2 1 0
6 5 4 3 2 1 0
6 5 4 3 2 1 0
6 5 4 3 2 1 0
6 5 4 3 2 1 0
6 5 4 3 2 1 0
werden 7*8Bit0 6 5 4 3 2 1 0
1 0 6 5 4 3 2 1
2 1 0 6 5 4 3 2
3 2 1 0 6 5 4 3
4 3 2 1 0 6 5 4
5 4 3 2 1 0 6 5
6 5 4 3 2 1 0 6
Nicht benutzte Bits im letzten Byte sollten auf '0' gesetzt werden. Und wers genauer wissen will, der kann in TS GSM 03.41 (Technical realization of Short Message Service Cell Broadcast (SMSCB)) und TS GSM 03.38 (Alphabets and language-specific information) genaueres dazu finden.