SAMSEM SMS interface programs for GSM devices (Gabor Kiss <kissg@sztaki.hu> 1998-2001) This package is located at ftp://ftp.sztaki.hu/pub/private/kissg/samsem/ and contains 4 programs: samsemd - a daemon that can receive and deliver incoming messages asynchronously. You don't rely on size of message store of the GSM device, you can receive any number of messages without fast polling. It is intended to be base of a *bidirectional* SMS-<anything> gateway. Sample configuration file and sample phonebook are included. spoolmsg - a utility that creates job files for samsemd. samsem - a command line utility to GSM modules and other modem-like interfaces to GSM phones. It allows you to send/receive Short Messages as well as to manipulate the message store of your device. Run 'samsem' without args for help. Samsem uses PDU mode with 7 bit encoding to send SMs so your messages may be up to 160 character long. Sample configuration file and sample phonebook are included. cquery - a simple utility to discover capabilities of your device. Samsem programs are originally written for Siemens M1 GSM module. However modern GSM devices (made by Falcom, Nokia, Bosch etc.) use the similar subset of AT+C command set described in ETSI document GSM 07.05, so Samsem is probably can work with any of them. Cquery checks the most important AT+C commands against your hardware. I ask you to send me the output in order to adapt Samsem programs to as much GSM device as possible. I have a web page with comparison of different implementations. URL is http://www.sztaki.hu/~kissg/gsm/at+c.html ---- Note for native Hungarian speakers about the word "samsem": A program neve nem jelent semmit, de jól rímel az SMS-re. Hofi Géza énekelte a színpadon: "Samsem, samsem, nincs egy vasam sem." :-) ---- Additional files: samsem.pl - a PERL library file. It contains common subroutines of samsem and samsemd as well as GSM device database. sms.pl - a PERL library file. It contains subroutines for encoding and decoding PDUs. lock.pl - a PERL library file. It provides UUCP-style device locking routines for samsem. It needs some customization before use. chat3.pl - replacement of chat2.pl shipped with PERL. Original chat2.pl uses network dependent constants to handle sockets. These constants normally come from PERL header (.ph) files which are generated from C header (.h) files via the h2ph utility. However several times I had problems when making .ph files. Moreover I found a bug in chat2.pl around interrupted system calls. Using of chat3.pl is strongly encouraged. You should put .pl file into a directory where the Samsem programs can found them. Use standard PERL include directories or edit the 'push(@INC,".");' statement appropriately in the head of the programs. Samsem package is originally developed and tested under Linux with a Siemens M1 GSM module. It is written in PERL5 so you should be able to run on most Unix systems. I don't hope major portability problems. It is partially tested under Solaris 2.5, and NetBSD. Samsem 3.0+ can be configured to adapt to your device. It has a little database that contains differences of implementations. See file samsem.pl for details. You have to have write access to the serial device where the GSM device is connected to. This is usually writable by group 'uucp' so you may use samsem as setgid 'uucp' if you wants to allow nonprivileged users to access the SMS engine. However if you run samsem in setuid/setgid mode configuration file must be owned by effective uid/gid. Config file must be world unreadable anyway. Comments and suggestions are welcome. Additional informations can be found at http://www.sztaki.hu/~kissg/gsm/. ---- DISCLAIMER. This software is in the public domain. This software is distributed with no warranty whatever. The author takes no responsibility for the consequences of its use.