.TH MDSMS 1 "17 May 1999" ~ VERSION ~ "SendSMS Manual" .\~ $Id$ .\~ .\~ $Log$ .\~ Revision 1.4 1999/07/03 18:56:49 short .\~ Documentation fixes. .\~ .\~ Revision 1.3 1999/06/03 11:46:41 short .\~ Logging (--log) implemented. .\~ .\~ Revision 1.2 1999/06/03 10:38:52 short .\~ Implemented remaining communication timeouts and maximum retry count. .\~ .\~ Revision 1.1.1.1 1999/05/26 13:06:26 short .\~ First alpha release. .\~ .SH NAME mdsms \- send SMSes through MobilDock .SH SYNOPSIS .B mdsms .RB [ "-c " ] .RB [ "-d " ] .RB [ "-L " ] .RB [ "-l " ] .RB [ "-s " ] .RB [ "-m <#>" ] .RB [ "-r " ] .RB [ "-t " ] .RB [ "-T " ] .RB [ "\-fvhV" ] .RB [ "" ] .RB [ "" ] .SH DESCRIPTION Program sends one SMS message through MobilDock device. .SH OPTIONS .TP .BR -c | --config\ < cfgfile > Process recursively this file and read all options from it. See the section .B CONFIGURATION for more information. .TP .BR -d | --device\ < device > Specify serial device to communicate with MobilDock. If only bare name is specified, "\fB/dev/\fP" is prepended automatically. This device name is used subsequently with .BR -l | --lockfile option, see below. .TP .BR -L | --log\ < file > Log all important messages to this file preceded by timestamp, machine hostname etc., similar to output of .BR syslogd (8). If set to empty string (which is default - ~\fB DEF_LOGNAME \fP~), nothing is logged anywhere. .TP .BR -l | --lockfile\ < lockfile > Prior to accessing serial device specified above the lockfile should be acquired for correct concurrent processes behaviour. Although this name can be given as direct filename more common method is to use pattern with embedded "\fB%s\fP" where this mark is replaced by actual basename (last component of pathname with all preceding directory names stripped) of serial device used. Default name for lockfile is ~\fB DEF_LOCKFILE \fP~. .TP .BR -s | --smsc\ < smsc\ # > Specify custom SMS center number. If not specified (or overriden as empty string by \fB-s ""\fP) .B mdsms asks by "\fBAT+CSCA?\fP" Siemens A1 for its default SMS center. Situation with undeterminable SMS center is unrecoverable and casues immediate fail. It is a common practice to use plus sign ("\fB+\fP") to indicate international number type. Known SMS centers as of May 1999: .RS .TP .BR "CZ Paegas " ( "230 01" "): " +420603052000 .TP .BR "CZ EuroTel " ( "230 02" "): " +420602909909 .RE .TP .BR -m | --maxretry\ < # > Maximum retries of any \fBAT\fP-style command during the session. All the retries are summed during one run of .B mdsms and no more retries of the command are permitted. After exceeding this value the program is terminated. .TP .BR -r | --readtime\ < sec > Maximum response read timeout before give up. .B mdsms sends the requested \fBAT\fP-style command to .B MobilDock and expects response. Unfortunately when the voice call is in progress, .B MobilDock will block any serial device communication and it is impossible to differentiate between calling .B MobilDock and stucked/disconnected one. After exceeding this time interval, .B mdsms is terminated immediately, .B maxretry parameter notwithstanding. Standard value is .BR DEF_READTIME seconds and should be enough for any voice call. .TP .BR -t | --chartime\ < msec > Although the fixed used baudrate of .B 19200 is pretty low, MobilDock/Siemens A1 couple .RB "aren't" able to accept steady stream of data at this speed. Even the used XON/XOFF handshaking is just not enough. The only possible workaround is to slowdown the communication by waiting a bit after character sent to give relax time to these devices. When full rate communication was used, occasional longer SMS data corruption was observed. Argument is given in milliseconds and its default value is .BR DEF_CHARTIME ms. .TP .BR -T | --cmdtime\ < msec > This delay is given before sending any .B AT-style command to MobilDock/Siemens A1. Its primary purpose is to let any previous entered commands to finish and to clear any input before actually sending our own command. Also all Siemens devices are known that they strongly dislike fast edge-to-edge communication and to satisfy these requirements this delay was considered as the best approach. The default value is .BR DEF_CMDTIME ms. .TP .BR -f | --file When parameter <\fBmsg text\fP> has been specified, by using this option \fBmdsms\fP will read the file with the <\fBmsg text\fP> filename instead and send its \fBcontents\fP as the SMS message. .TP .BR -v | --verbose Increase verbosity level by one. Currently the maximum defined level is .BR 3 , the default value is .BR 0 . .TP .BR -h | --help Give short parameters description to .I stderr (standard error output stream). .TP .BR -V | --version Print the version number and exit. .TP .RB < "dest. phone" > This mandatory parameter specifies the telephone number of the recipient of SMS message. International prefix character plus .RB ( + ) is supported the national mode without plus .RB ( + ) prefix is supported and the meaning is specific to the GSM operator currently being roamed in (NOT the native .RB "'home'" operator of the SIM card!). This number can be made default in system configuration files, see below for section .BR CONFIGURATION . .TP .RB < "msg text" > Here you write the exact body of the message. This parameter should be specified only as one component, although if more found they are concatenated with separating space (" "). But this practice is discouraged as your shell will probably remove any multiple spaces found and also other metacharacters may be incorrectly interpreted. To prevent any escaping mess, you may prefer to omit this parameter and the the message text is then read from .I stdin (standard input stream). .SH CONFIGURATION .B mdsms reads ~\fB CONFIG_MAIN \fP~ followed by ~\fB$HOME CONFIG_HOME \fP~ configuration files. The content of these files (and also any file read by .BR -c | --config option) has the usual .BR getopt (3) syntax with dashes. Newlines are taken as whitespace, both double ("\fB~\fP") and single ("\fB'\fP") quoting is supported. Embedded quote characters can be escaped by backslash ("\fB\\\fP"). Arguments are processes in order as specified in configuration files and finally the command-line of the program itself, overriding any previous values. Although the order of .BR -c | --config options on one line is preserved the first file is read AFTER all of the current options are processed. Recursive use of .B -c is permitted and the files are read in LIFO (Last-In First-Out, AKA stack) order. You should use "\fB-v -v\fP" to see details of option processing with more complex configuration setups. .SH OPERATION Upon startup .B mdsms locks the port (see option .BR -l | --lockfile for details) and opens the serial device with hardcoded parameters of 19200 baud, software handshaking (XON/XOFF style), 8 bits, no parity. Then issues the following commands: .TP .BR AT .B AT is used to fool MobilDock and pass the following .B (ascii decimal code 26) character to Siemens A1 and break it from eventual .B AT+CMGS mode in which it may errorneously remain from previous sessions. .TP .B AT Test the responsiveness of Siemens A1. .TP \fBAT+CSCA="\fPsmc # from user\fB"\fP This command is omitted if .B "smsc #" is not specified by user (or specified/overriden as empty string \fB""\fP .TP \fBAT+CSCA?\fP Query the currently set SMC center number to include it later to the header of SMS PDU format where it is required. If \fBAT+CSCA="\fP...\fB"\fP was issued before, this number should match it but no sanity checks are currently do so. .TP \fBAT+CMGF=0\fP Set the default SMS message format to PDU type. Currently Siemens A1 .RB "doesn't" support any other SMS format anyway. .TP \fBAT+CMGS=\fP# chars This command physically sends the message and the resulting "\fB+CMGS:\fP" output is catched and returned as .B MR (message reference) number to the user. .TP \fBAT\fP Check that Siemens A1 survived the sending of the message. .SH SEE ALSO .TP .B GSM 03.40 ETSI documentation for SMS messages in GSM networks .TP .B "Developers'" Guide: SMS with the A1 Tech note on PDU SMS format etc: .B http:/ /www.siemens.se/telefoner/ovrigtgsm/fragorsvar/a1_sms.pdf .TP .B Technical Description of the Siemens A1 Siemens A1 command description .B http:/ /www.siemens.se/telefoner/ovrigtgsm/fragorsvar/a1_manual.pdf .SH FILES .TP \fB CONFIG_MAIN \fP Main configuration file .TP \fB$HOME CONFIG_HOME \fP User personalized local configuration file .SH AUTHOR .B mdsms was written by Jan Kratochvil who should be responsible for all the bugs included. Please see the file "\fBAUTHORS\fP" shipped with the original distribution archive for more details.