NAME¶
gsmsmsd - SMS message reception daemon
SYNOPSIS¶
gsmsmsd [
-a action ] [
--action action ] [
-b baudrate ] [
--baudrate baudrate ] [
-c
concatenatedID ] [
--concatenate concatenatedID ] [
-C service centre address ] [
--sca service centre
address ] [
-d device ] [
--device device ] [
-D ] [
--direct ] [
-f ] [
--flush ] [
-h ]
[
--help ] [
-I init string ] [
--init init
string ] [
-r ] [
--requeststat ] [
-s spool
directory ] [
--spool spool directory ] [
-t SMS
store name ] [
--store SMS store name ] [
-v ] [
--version ] [
-X ] [
--xonxoff ] {
sms_type }
DESCRIPTION¶
gsmsmsd reads new incoming SMS from the mobile phone and dispatches them
to a user-defined action. Additionally it can send SMS message that it reads
from a spooldir.
gsmsmsd attaches itself to the
device given on the command line
(usually an GSM modem) using the specified
baudrate and waits for
incoming SMS messages. If no
device is given, the device
/dev/mobilephone is used. If no
baudrate is given, a default
baud rate of 38400 is used.
If no action is given, the SMS message is printed to the standard output. If an
action is specified the
action is excecuted using the shell and
the SMS message is written to the standard input of the action.
gsmsmsd needs one empty storage slot for SMS messages in the mobile
phone, otherwise SMS reception will not work. The SMS store to use for
temporary storage of incoming SMS can be selected using the
--store
option, otherwise the ME default store is used.
To terminate
gsmsmsd cleanly (without losing SMS messages) one should
send either SIGINT (CTRL-C on the command line) or SIGTERM to the process.
Error messages are printed to the standard error output. If the program
terminates on error the error code 1 is returned.
sms_type may be any combination of:
- sms, no_sms
- Controls reception of normal SMS messages.
- cb, no_cb
- Controls reception of cell broadcast messages.
- stat, no_stat
- Controls reception of status reports.
The default is
sms,
cb, and
stat.
OPTIONS¶
- -a action, --action action
- The action to execute for each incoming SMS message. If no action is given
the SMS is written to the standard output.
- -b baudrate, --baudrate baudrate
- The baud rate to use.
- -c concatenatedID, --concatenate
concatenatedID
- If an ID is given, large SMSs are split into several, concatenated SMSs.
All SMSs have the same ID and are numbered consecutively so that the
receiving phone can assemble them in the correct order. IDs must be in the
range 0..255. This number is increased by one for every outgoing
concatenated SMS and wraps around after 255. Not all receiving phones will
support concatenated SMSs (and display them as separate SMSs), since all
the numbering and ID information is carried in the user data header
element at the beginning of the SMS user data. This information may show
up as garbage in such phones.
- -C service centre address, --sca service centre
address
- Sets the service centre address to use for all SUBMIT SMSs (may not work
with some phones).
- -d device, --device device
- The device to which the GSM modem is connected. The default is
/dev/mobilephone.
- -D, --direct
- Enables direct routing of incoming SMS messages to the TE. This is not
supported by many mobile phone/GSM modem combinations. Therefore, the
default is to store incoming SMS temporarily before processing them in the
indicated store.
- -f, --flush
- This option causes gsmsmsd to flush (ie. read and erase) existing
SMS messages from the SMS store selected by the --store option. The
action given by the --action option is executed on each of the
flushed SMS. This option should be used to ensure that enough space is
available in the SMS store for temporary storage of incoming SMS,
otherwise incoming SMS might be ignored silently by the ME.
- -h, --help
- Prints an option summary.
- -I init string, --init init string
- Initialization string to send to the TA (default: "E0"). Note
that the sequence "ATZ" is sent first.
- -r, --requeststat
- Request status reports for sent SMS. Note: This option only makes sense if
the phone supports routing of status reports to the TE. Otherwise the
status reports might show on the phone's display or get lost.
- -s spool directory, --spool spool
directory
- This option sets the spool directory where gsmsmsd expects SMS
messages to send. The format of SMS files is very simple: The first line
contains the phone number of the recipient. Everything else after the
first line is interpreted as the SMS text. Please refer to
gsmsendsms(1) for details on the SMS text character set and maximum
length. gsmsmsd polls the spool directory every 5 seconds. Sent SMS
message files are removed.
- -t SMS store name, --store SMS store name
- The name of the SMS store to read from (for the --flush option) or
write to (for temporary SMS storage). This option must be must be used in
conjunction with the --flush option. If this option is omitted the
ME uses it's default SMS store for temporary storage of incoming SMS. A
commonly available message store is "SM" (SIM card).
- -v, --version
- Prints the program version.
- -X, --xonxoff
- Uses software handshaking (XON/XOFF) for accessing the device.
EXAMPLES¶
The following invocation of
gsmsmsd sends each incoming SMS message as a
mail to the user "smsadmin":
gsmsmsd -d /dev/ttyS2 -b 19200 -a "mail smsadmin"
This is the format of SMS deliver messages as output from
gsmsmsd:
----------------------------------------------------------------
Message type: SMS-DELIVER
SC address: '491710762100'
More messages to send: 1
Reply path: 0
User data header indicator: 0
Status report indication: 0
Originating address: '01805000102'
Protocol identifier: 0x39
Data coding scheme: default alphabet
SC timestamp: 17.12.98 14:10:55(+0100)
User data length: 159
User data header: 0x
User data: 'Nicht vergessen! Die XtraWeihnachtsverlosung lauft
noch bis zum 24.12. Nutzen Sie jetzt Ihre Gewinnchance und faxen
Sie Ihren Teiln.-Gutschein an 0180/5000 056'
----------------------------------------------------------------
This is the format of SMS status report messages as output from
gsmsmsd:
----------------------------------------------------------------
Message type: SMS-STATUS-REPORT
SC address: ''
More messages to send: 0
Status report qualifier: 0
Message reference: 0
Recipient address: ''
SC timestamp: 00.00.00 00:00:00(+0000)
Discharge time: 00.00.00 00:00:00(+0000)
Status: 0x0 'Short message received by the SME'
----------------------------------------------------------------
The following invocation of
gsmsmsd flushes all existing messages from
the "SM" SMS store and looks in the "/tmp/spooldir"
directory for SMS to send:
gsmsmsd -d /dev/ttyS2 --spool /tmp/spooldir -f --store sm \
--action 'mail smsadmin'
FILES¶
- /dev/mobilephone
- Default mobile phone device.
AUTHOR¶
Peter Hofmann <software@pxh.de>
BUGS¶
Cell broadcast SMS message reception has not been tested, but it has been
enabled in the
gsmsmsd daemon.
The mobile phone device is blocked when the
gsmsmsd daemon is running,
ie. it cannot be used for data transfer or from the other programs of this
suite (
gsmpb,
gsmsms).
Report bugs to software@pxh.de. Include a complete, self-contained example that
will allow the bug to be reproduced, and say which version of
gsmsmsd
you are using.
COPYRIGHT¶
Copyright © 1999 Peter Hofmann
gsmsmsd is free software; you can redistribute it and/or modify it under
the terms of the GNU Library General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later version.
gsmsmsd is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
details.
You should have received a copy of the GNU Library General Public License along
with
gsmsmsd; see the file COPYING. If not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
SEE ALSO¶
gsminfo(7), gsmpb(1), gsmctl(1), gsmsendsms(1),
gsmsmsstore(1).