> I recently bought a Nokia 3650 and have been playing with the
> modem connection via Bluetooth.
[quoted text clipped - 6 lines]
>
> +CBM: 88
011000320111C2327BFC76BBCBEE46A3D168341A8D46A3D168341A8D46A3D1683
41A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3
D168
341A8D46A3D168341A8D46A3D168341A8D46A3D100
> When I set the modem to text mode (AT+CMGF=1), I seem to
> receive "blank messages"....
I usually use the following composite command for reading CB
messages in text-mode:
AT+CMGF=1;+CNMI=1,0,2,0,1;+CSCB=0,"50","0-15";
And this worked OK on my friend's Nokia 6210. I've always found
the need to include the "AT+CNMI" CB serial port redirection on
my Siemens phones. Note that I've selected all languages
("0-15"), and not just English.
In the case of your command, I take it that your AT+CSBC=1,"50",1
was intended to read AT+CSCB=1,"50","1". Even then, there's a
mistake. The "1" immediately following the "=" means read all CB
channels *except* the ones listed. You need a zero in this
position.
> Anyway, question is as follows: can anyone provide a simple
> explanation of the PDU encoding as relates to the above,
> and/or/preferably some code that can perform the decoding into
> (presumably) text?
You'll need GSM 03.41 and GSM 03.38 if you need to decode the
PDU. You can download these free, after registering, from
www.etsi.org. Go to the download area, search for "03.41", and
download a recent version from the unsorted list (and the same
for 03.38 obviously).
To work through your example, Octets 1 & 2 hold message serial
number data. That's 0110, or 0000000100010000 binary. Working
through it from left to right, Geographical Scope is 00 (a cell
wide broadcast), Message Code is 0000010001, and Update
Number is 0000.
Octets 3 & 4 (0032) contain the Message Identifier, or channel
number. That's 0000000000110010 binary, or 50 decimal.
Octet 5 (01h) is the Data Coding Scheme. "1" means "English
language" (not surprising as you probably live in the next suburb
to me - my Telstra cell name is "Higgins")!
Octet 6 (11) is the Page Parameter. The 00010001 binary
literally means page 1 of 1.
Octets 7 to 88 are the message content. And the coding is
complicated here by the fact that a 7-bit alphabet is used,
resulting in characters being spread between octets in an obscure
way. That's what you need GSM 03.38 for.
Let's bite off a chunk and analyse it.
Octets 7 to 14 (C2327BFC76BBCBEE46) contain the interesting part
of the message. The rest is repeated <carriage return>s, which
is the usual fill character for CB messages.
In binary, this is the 72 bit string:
11000010001100100111101111111100011101101011101111001011111011100
1000110
or broken up in groups of 10 for me to count more easily:
1100001000 1100100111 1011111111 0001110110 1011101111 0010111110
1110010001 10
The first character is made up of bits 2, 3, 4, 5, 6, 7 and 8, or
1000010. This is "B". Putting these succeeding bit groups,
binary values, and their respective characters into a list we
have:
2 3 4 5 6 7 8, 1001011, B
11 12 13 14 15 16 1, 1100101, e
20 21 22 23 24 9 10, 1101100, l
29 30 31 32 17 18 19, 1100011, c
38 39 40 25 26 27 28, 1101111, o
47 48 33 34 35 36 37, 1101110, n
56 41 42 43 44 45 46, 1101110, n
49 50 51 52 53 54 55, 1100101, e
58 59 60 61 62 63 64, 1101110, n
67 68 69 70 71 72 57, 1100101, <carriage return>
and so on.
John
John Henderson - 23 Jan 2004 08:16 GMT
Earlier, I wrote:
> 2 3 4 5 6 7 8, 1001011, B
And that should be:
2 3 4 5 6 7 8, 1000010, B
> 67 68 69 70 71 72 57, 1100101, <carriage return>
should be:
67 68 69 70 71 72 57, 0001101, <carriage return>
John
> Anyway, I have been able to receive a couple of Cell Broadcast
> Anyway, question is as follows: can anyone provide a simple
> explanation of the PDU encoding as relates to the above,
> and/or/preferably some code that can perform the decoding into
> (presumably) text?
http://www.nobbi.com/monitor/index_en.htm
N.