title: How to deal with odd message from AT+CMGL command
body: <p>I have a bit of code (incidentally in .net but I don't think that matters) that sends and receieves SMS messages via a GSM modem plugged into the USB port of a Windows 7 PC (using <code>AT</code> commands sent to a virtual serial port).  </p>
  
  <p>It works generally fine (in that I can understand most of the messages that come in) but every so often when I issue an <code>AT+CMGL</code> command I get a message that is not what I expect to see, or that I can work out what it is.</p>
  
  <p>Here is an example (I have changed the values of address and body because I have no idea if this message contains any information that I would not want to become public but I have kept the length of the values the same and put in characters that are indicative of the message):</p>
  
  <pre><code>+CMGL: 0,"REC READ","7700000000000000000000",,"12/09/10,10:25:06+08"
  0123456789ABCDEF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  +CMGL: 1,"REC READ","7700000000000000000000",,"12/09/10,10:25:07+08"
  000000000000000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000
  
  OK
  </code></pre>
  
  <p>The first thing that struck me was that the <code>address</code> is quite long and does not contain a <code>+</code> (or start 00) so does not really look like a telephone number (at least within my limited understanding of telephone numbers).  I wondered, therefore, if this could be a message from my telecom provider.</p>
  
  <p>Secondly the body of the message looks to be hexadecimal values, so possibly it is a bit of binary data.  So, my question is...</p>
  
  <p><strong>Is there any way that I can decode these messages to work out what they actually are?</strong></p>
  
  <p>(I tried just loading the body into a binary array and dumping it to disk with a .jpg extension to see if it was an image, but of course that didn't work).</p>
  
  <p>This feels like it may be parameter settings perhaps - is there some sort of header that I could read off to find out if this is the case perhaps?</p>