SMSLink GSM Module Driver DescriptionSince each GSM module had a slightly different behaviour (case-sensitive AT command parser) or feature set (support for text and/or PDU mode), I soon had to include some form of driver in the server module to handle all this diversity.
Through this page, you'll learn how to tweak existing device definitions to fine-tune support for already supported hardware, or to create new entries to extend that support to new brands or models.
Should you play with this and find a way to improve support for some model, or devise a new entry, please contribute your work back to the community. Mail me the changes to the driver, and I'll include them in upcoming releases of the program. Please remember that I don't have the means to test all available hardware under the sun. You can make a difference here: any input from you helps and is always welcome.
The driver fileHere is a copy of the driver file (/etc/gsmcaps) as provided with the SMSLink package.
# /etc/gsmcaps # (c) Les Ateliers du Heron, 2000 for Scitex Europe, S.A. # # This file is part of the SMSLink project. It contains GSM modules # capacity matrices (aka "driver flags"). # Should you need to create your own entries, please base them on the # server/gsmdev.h file in the source tree, and should it work, please # contribute your new entry back to me for inclusion in the next release. # # Entry format: # MOD:value:datefmt:ok_string:line_sep:name # where MOD is a unique model identifier (max 15 char), and value is built # by adding the binary flags found in gsmdev.h. datefmt is a string describing # the date format used in incoming text-mode SMS (3 char. max., a combination # of the letters 'dmy' -- capital Y means 4-digit year). ok_string defines # the "OK" string returned by the modem, with line delimiters. The last field # (name) is there for the user's sake and will be ignored by the program. # # Use the MOD field in your /etc/gsmdevices. A008:4142:ymd:\nOK\n:\n:Motorola A008 DI27:2986:ymd:\nOK\n:\n:Ericsson DI27 IR modem EF151S:298:ymd:\nOK\n:\n:Ericsson F151s Business EF251M:810:ymd:\nOK\n:\n:Ericsson F251m EMU:303:ymd:\r\nOK\r\n:\r\n:Ostrich GSM/modem emulator FA1:259:dmy:\r\nOK\r\n:\r\n:Falcom A1 FA2:259:ymd:\r\nOK\r\n:\r\n:Falcom A2 FA2D:287:ymd:\nOK\n:\n:Falcom A2D FA2D3:303:ymd:\r\nOK\r\n:\r\n:Falcom A2D3 FATW:363:ymd:\nOK\n:\n:Falcom Twist GENSM2:271:ymd:\r\nOK\r\n:\r\n:Wavecom GEN SM-2 GM12:1578:ymd:\r\nOK\r\n:\r\n:Ericsson GM12/GM22 NO30:291:ymd:\r\nOK\r\n:\r\n:Nokia 30 PCFF900:175:ymd:\nOK\n:\n:Option FirstFone GSM 900 PCcard RMU:811:ymd:\r\nOK\r\n:\r\n:RMU Ultralite CX SM20:299:ymd:\r\nOK\r\n:\r\n:Siemens M20 SS25:106:ymd:\nOK\n:\n:Siemens S25/S35 T65:3370:ymd:\nOK\n:\n:Ericsson T65 TC35T:363:ymd:\r\nOK\r\n:\r\n:Siemens TC35 Terminal WMO1:259:dmy:\nOK\n:\n:Wavecom WMO1 WMO2:287:ymd:\nOK\n:\n:Wavecom WMO2 WMOD2A:287:ymd:\nOK\n:\n:Wavecom WMOD2 Single-band WMOD2B:303:ymd:\nOK\n:\n:Wavecom WMOD2 Dual-band
Capabilities MatrixThe following grid shows which features and behaviour oddities were seen on which device model. A '?' next to the flag means that this has not been verified but is based on an "educated guess". Caveat Emptor.
The flags shown in this grid are defined in the ./server/gsmdev.h header file.
(table drawing by OpenOffice.org)
Date format in incoming SMSWhen sent the AT+CMGL="REC UNREAD" command, the GSM module (if it has received new messages since the last check) will answer something like the following (here, on a GenSM-2):
Note: GSM number edited in above output to protect the innocent !
As you will notice in the output, the 5th field is a timestamp (its official name is <scts>, meaning "Service Center Timestamp"). If we want to successfully parse it and store it in our inbox file in a different format, we need to know the date format used.
Typically, this will be either dd/mm/yy or yy/mm/dd (but other combination might arise). Hence the third field in the driver file. This field is maximum 3 char. long, a combination of 'm', 'd', and 'y'. You can also capitalize the 'Y', denoting a year with century (4-digits year).
"Modem Okay" string and line separator character(s)The new (as of version 0.54b) "fast modem response" mode improves the modem dialog response time by implementing an early exit from the serial port reading loop as soon as a "catch phrase" is detected in the input stream. For most modem commands, that catch phrase is none other than the ubiquitous "OK". Of course, since this technique represent some form of "inband signalling", we want to make sure that the catch phrase has as little chance as possible of occuring in the normal text messages sent by the modem. Hence the need to enclose the "OK" string between a pair of line delimiters.
Here is a summary of the date format, "modem okay" string and line separation character(s) used by each model:
Brand and model nameThis last field is provided for the administrator's convenience and will be ignored by the program.
|Last Modified: September 29th, 2006.|