.RS
.TP
.B Nokia Communicator 9000/9000i
-All modes except \fB--logo-send\fP supported.
+All modes except \fB--logo-send\fP/\fB--ring-send\fP supported.
.TP
.B Nokia Communicator 9110
-All modes supported. This is the only device with \fB--logo-send\fP capability for now.
+All modes supported. This is the only device with \fB--logo-send\fP/\fB--ring-send\fP capability for now.
.TP
.B Siemens A1
-Firmware revision 2.0 required. All modes except \fB--logo-send\fP supported.
+Firmware revision 2.0 required. All modes except \fB--logo-send\fP/\fB--ring-send\fP supported.
+These modes \fBcould\fP be supported for this device but unfortunately
+.B mdsms
+currently does not support it.
+.TP
+.B Siemens M20, M1
+All modes except \fB--logo-send\fP/\fB--ring-send\fP supported.
+These modes \fBcould\fP be supported for this device but unfortunately
+.B mdsms
+currently does not support it.
.RE
.SH OPTIONS
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 -b | --baud\ < rate >
Sets custom baudrate for accessing Nokia modem. Supported speeds are currently:
\fB2400\fP,
\fB38400\fP,
\fB57600\fP. Default is \fB DEF_BAUD \fP.
.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~.
+.BR -x | --xonxoff
+Turns handshaking mode to \fBXON/XOFF\fP (also called \fBsoftware handshaking\fP).
+Use this mode if you are using only 3-wire serial cable. Device should be
+configured in "\fBAT+IFC=1,1\fP" mode, if \fBAT+IFC\fP command supported. When
+possible, you should rather use \fBRTS/CTS\fP handshaking described in the
+following paragraph. This mode is the default one.
+.TP
+.BR -C | --rtscts
+Turns handshaking mode to \fBRTS/CTS\fP (also called \fBhardware handshaking\fP).
+Use this mode if you are using full 7-wire (approx.) serial cable. Device should be
+configured in "\fBAT+IFC=2,2\fP" mode, if \fBAT+IFC\fP command supported. Try
+to use this mode whenever possible (instead of the default \fBXON/XOFF\fP mode described
+in the previous paragraph). This mode may not be available in your UNIX flavour.
+.TP
+.BR -M | --smsmode
+Forces the SMS mode to use - either \fBpdu\fP or \fB text\fP mode. By default
+.B mdsms
+tries to detect mode to use automatically, \fBPDU\fP mode is preferred. When
+your modem is capable of both modes and you need for some reasone \fBtext\fP
+mode, you may use \fB--smsmode text\fP argument to force it. \fBPDU\fP mode
+is recommended for unattended operation, on the other side \fBtext\fP mode
+should be more compatible when you have compatibility problems with unsupported
+GSM modem. It is recommended to force the exact mode you will be using in
+unattanded operaton. By such way you will prevent failures caused by the other
+mode after possible random communication glitches (and therefore automatic
+.B mdsms
+switchover).
+.TP
+.BR -P | --pdusmscmode
+Forces SMS center prepending mode for \fBPDU mode\fP operation. By default
+.B mdsms
+tries sequentially all the described modes, you should lock it for
+unattanded operation to prevent vain switchovers from random communication
+glitches (also you will notice faster response for "\fBcount-out\fP" or
+"\fBnone\fP" modes):
+.RS
+.TP
+.BR count-in
+The default mode, SMS center is prepended to the \fBPDU\fP and SMS
+.RB "center's"
+length is taken into account during length calculation for "\fBAT+CMGS=\fP#".
+.TP
+.BR count-out
+SMS center is prepended to the \fBPDU\fP but SMS
+.RB "center's"
+length is omitted
+during length calculation for "\fBAT+CMGS=\fP#".
+.TP
+.BR none
+SMS center is \fBNOT\fP prepended to the \fBPDU\fP, SMS center to use by
+GSM modem is taken from the one set by
+\fBAT+CSCA="\fPsmsc # from user\fB"\fP
+command.
+.RE
.TP
.BR -s | --smsc\ < smsc\ # >
Specify custom SMS center number. If not specified (or overriden as empty
.B mdsms
asks by "\fBAT+CSCA?\fP"
for the current default SMS center. Situation with undeterminable SMS center
-is unrecoverable and casues immediate fail. It is a common practice to use
+is unrecoverable and causes immediate fail. Please contact your GSM operator
+customer service if you are in trouble. It is a common practice to use
plus sign ("\fB+\fP") to indicate international number type.
-Known SMS centers as of May 1999:
+Known SMS centers as of April 2001:
.RS
.TP
-.BR "CZ Paegas " ( "230 01" "): " +420603052000
+.BR "CZ Paegas " ( "230 01" "): " +420603052000
.TP
.BR "CZ EuroTel " ( "230 02" "): " +420602909909
+.TP
+.BR "CZ Oskar " ( "230 03" "): " +420608005681
.RE
.TP
.BR -m | --maxretry\ < # >
.B AT
Test the responsiveness of the device.
.TP
-\fBAT+CSCA="\fPsmc # from user\fB"\fP
+\fBAT+CSCA="\fPsmsc # 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
+Query the currently set SMS 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. Also it is used to detect possibly unset SMS center.
.RE
.TP
.BR --receive :
+Receiving of messages is performed using direct routing of incoming data to TE (Terminal Equipment).
+No SMSes are stored to SIM card/device memory and then read back as one may expect.
+There are slight advantages of better response times (SIM card access is very slow) and
+saving EEPROM writes to SIMcard. Unfortunately there is one big advantage that when
+.B mdsms
+suddenly stops/crashes without switching the device back to SIM-store mode, messages
+being consequently received are lost on the dead end of serial port.
+.B mdsms
+tries very hard to restore the device state before its termination but sometimes it just
+.RB "isn't"
+possible. Due to this fact \fBnever kill mdsms with SIGKILL (-9) signal\fP, use standard
+SIGTERM instead, please. Also one fact resulting of this behaviour is that messages
+with Class-2 (SIM store) specific routing are really stored to SIM card and as such are
+not processed in any way by
+.BR mdsms .
+Safer SIM store/retrieve mechanism may be implemented in future versions. Command sequence used in
+.B --receive
+mode follows:
.RS
.TP
-FIXME
-To be written according to \fBAT+CMGF=0\fP support.
+\fBAT+CMGF=0\fP, if fails \fBAT+CMGF=1\fP
+Set the default SMS message format to PDU type (preferred) or text mode (if
+PDU mode not available).
+.TP
+\fBAT+CNMI=,2\fP
+Set the message routing to go directly to TE (Terminal Equipment), see the discussion
+in paragraph above for more. Also right before starting attempt to send this command,
+\fBAT+CNMI=,0\fP is set to be tried before finishing
+.BR mdsms
+to restore the original device behaviour.
+.TP
+\fBAT+CSDH=0\fP
+We
+.RB "aren't"
+really much interested in additional non-standard values of
+PID (Protocol IDentifier), DCS (Data Coding Scheme) etc.
+.TP
+data wait
+In this point the device lock file is removed, retry count is set to infinite value
+(see discussion in
+.B --maxretry
+parameter) and
+.B mdsms
+starts to passively listen for any incoming data. Possible dial-out mode is being
+detected afterwards, otherwise message receive sequence follows as described below.
+.TP
+\fB+CMT:\fP read
+Any waiting \fB+CMT\fP incoming message indications are read and processed. Format
+being processed (text/PDU) depends on the actual value of \fBAT+CMGF\fP set before. Any
+possible \fB+CMTI:\fP input is discarded as we are not interested in SIM-store
+directed messages.
+.TP
+receive restart
+After processing all the messages, the whole initialization sequence is restarted as
+the device configuration may have changed or lost during the data wait phase.
.RE
.SH SEE ALSO