Description of SendSMS ====================== Licence ------- This program is shareware. Every user has to aggree to the following licence-conditions: 1. This program may only be distributed in this package. 2. All rights for commercial-use will belong to the author. 3. For a periode of 20 days you may use the program free. To use this software after this periode of 20 days you have to register SendSMS. If you doesn't register SendSMS you are not allowed to continue using the software. 4. To register please fill out the form (order.txt) and send it to the following address: Böcherer Angewandte Informatik Wolfgang Böcherer Im Grün 9 D-76316 Malsch Tel.: +49 (0)7246/942484 Fax.: +49 (0)7246/942485 EMail: wobo@bai.de WWW: http://www.bai.de The fee for one licence (installation on one computer) is: 230,-- DM (incl. tax) (transfers from foreign countrys plus 20,-- DM) (please ask for multiple licences) A T T E N T I O N!!! For registering it is important to specify your operating-system and the phonenumber of the line to use with SendSMS. 5. In response to your order you get a bill and after we have got the money we will send you a registration-key with which you are allowed to use SendSMS on one computer. It is forbitten to distribute this registration-key. 6. The use of SendSMS will result on your own risk. I am not responsible for any damage through the use of SendSMS (neighter damage through errors nor through wrong usage). ------------------------------------------------------------------------------ SendSMS is a shareware-program to send ShortMessages (SMS) to GSM-phones or pagers via the protocols TAP or UCP. SendSMS has following topics: - UCP- and TAP-Protocol (ex.: D1, D2, EPlus, Quix, TeLMI, CityRuf, Scall, Skyper) - completly configurable for providers which use TAP or UCP - preconfigured fpr differnet providers in Germany, Autrich, England, Danmark and Finland - message can be specified on the commandline (batch-processing) - easy to configure - evaluatable returncodes (errorcode or count of successfully sent messages) - can be used in server-mode and/or standalone (*) - phonebook: insted of numbers you can use aliases (*) - sending messages to multiple reciptients through different providers (*) - sending multiple messages to one or more reciptients within one connection (*) - messages can be spooled and sent in servermode with a minimum number of connections (*) - event-logging (Logfile) or logging through syslogd (*) - configurable redialing (*) - definiton of header- and/or footer-line (*) - configurable delay between dial-attempts (*) - modem will not be locked between dial-attempts - configurable for the most common modems - available on many operating-systems Topics marked with (*) are only available in the registered version. ------------------------------------------------------------------------------ Installation ------------ You have only to decompress the ZIP-file (alternativly the tar.Z-file) in any directory. After that this directory should contain at least the following files: readme.txt - this file sendsms[.exe] - program-file sendsms.cfg - configuration-file sendsms.err - error-codes sendsms.pro - definition of providers sendsms.pbk - phonebook group - example for a group-definition (to send messages to multiple reciptients) If you are using Unix you have to set the execute-permission for SendSMS (chmod u+x sendsms). (the OS/2-version requires the EMX-runtime-environment http://www.leo.org/pub/comp/os/os2/leo/index.html) (the DOS-version requires a Fossil-driver, for Example adf.exe http://www.digsys.se) ------------------------------------------------------------------------------ Configuration ------------- To configure SendSMS, edit the file sendsms.cfg. In the file sendsms.pro you can define the different providers (which provider uses TAP or UCP, which phonenumbers are to be used for them and what is the predial-code for them). Your personal phonebook with aliases can be defined in the file sendsms.pbk. Comments are always prefixed by ';' or '#'. ------------------------------------------------------------------------------ sendsms.cfg ----------- In this file you can configure SendSMS in the chapter [SendSMS]. In the chapter [Modem] you can configure your modem(-device). In the registered version you can define as many modems as you want. In the connection-phase SendSMS tries to use the first defined modem. If this went wrong (modem is locked) the next one is used. If no modem can be used there will be a delay (REDIALDELAY) and then the whole will be repeated (REDIALCOUNT). In the chapter [SendSMS] you can specify the following keywords to configure SendSMS. Every keyword has to be entered in an own line. LOCKDIR=/var/spool/uucp Specifies the directory to look for and to generate a lock-file (only unix). BINLOCKS=0 Specifies whether the lockfile should be binary or ascii (only unix). SPOOLDIR=/var/spool/sendsms Specifies the directory to spool messages. [only available in the registered version] LOGFILE=sendsms.log Specifies a file in which all actions will be logged. If you specify 'syslog' (only unix) the logging will be handled through the syslog-daemon. [only available in the registered version] HEADER= Specifies an optional headerline (text which will preceed every message) [only available in the registered version] FOOTER= Specifies an optional footerline (text which will be appended to every message) [only available in the registered version] REDIALCOUNT=1 Specifies the count of redial-attempts. In servermode this specifies the max. count of leaving the message in the spooldirectory (after faulty transmission) [only available in the registered version] REDIALDELAY=60 Specifies the count of seconds to wait between two dial-attempts. While this time the modem will not be locked. [only available in the registered version] PHONE= Your own phonenumber, from which the message will be submitted. MAXERRORS= Specifies the count of errors (not transmitted messages) to accept until SendSMS will be terminated. If this parameter isn't set or is set to 0 the program will not terminate after an error. This parameter has only sense if you send messages to multiple reciptients. BAUD=4800 Specifies the baudrate (300, 600, 1200, 2400, 4800 or 9600). This value is only used if it isn't defined in sendsms.pro for the provider to be called. DATABITS=8 Specifies the count of databits (7 or 8). This value is only used if it isn't defined in sendsms.pro for the provider to be called. STOPBITS=1 Specifies the count of stopbits (1 or 2). This value is only used if it isn't defined in sendsms.pro for the provider to be called. PARITY=NONE Specifies the kind of parity (NONE, EVEN or ODD). This value is only used if it isn't defined in sendsms.pro for the provider to be called. TIMEOUT=40 Specifies the time (in seconds) to wait for the CONNECT-Message after the dial-command. WAITAFTERWRITE=1 Specifies the count of seconds to wait after writing to the modem (normaly 0) In the chapter [Modem] you can specify the following keywords to configure your modem. Every keyword has to be entered in an own line. (Please check your modem-description (if you have one) for the corresponding modem-commands) DEVICE=COM1 Specifies the device to which your modem is connected. (Attention: on unix you have to take notice that you are allowed to use the device) RESET=ATZ Specifies the command to reset your modem (normaly ATZ). If the standard profile of your modem sets the modem to 'answer off' (see below) then you have to leave this blank or to load another profile (ATZ1). INIT=ATL1E1Q0V1 Specifies the initialisation-command for your modem. You have to set your modem to: echo on answer on answer as text DIAL=ATDT0w Specifies the command to dial a number. ESCAPE=+++ Specifies the escapesequence to switch the modem from data- to command-mode. HANGUP=ATH Specifies the comman to hang up. RTSCTS=1 Specifies to use the hardware-flowcontrol. sendsms.pro ----------- In this file you can define different providers (in the unregistered version a maximum of three providers). For every provider you have to enter a chapter by entering a line of the form: [] In every chapter you can specify the following parameters: PHONE= Specifies the phonenumber of the provider. If the last character of the number is a '&', this means that the specified number will be appended by the number of the reciptient. PROTOCOL= Specifies the protocol (TAP, UCP, Scall or Skyper) which the provider uses. PREFIX= Specifies the predialcode for the corresponding provider. With this prefix SendSMS tries to identify the provider to which the phonenumber of the reciptient belongs. REMOVEPREFIX= The number of the reciptient will be send together with the corresponding message. Because for some providers the number has to be send without any prefix you can specify with this parameter (=1) that the PREFIX (if defined) will be discarded. MSGTYPE= Specifies the kind of message: NUMERIC (only digits), ALPHANUMERIC (characters and digits) or TONE (no characters, only beeping). If the protocol is SKYPER or SCALL (German pagers) then this parameter is set automatically. MSGLEN= Specifies the max. length of a message. If the protocol is SKYPER or SCALL (German pagers) then this parameter is set automatically. MAXMSG= Specifies the max. count of messages which can be send in a single connection. If this parameter is specified the connection is canceld after the corresponding count of messages is sent and if required a new connection will be established. This is neccesary because some providers have a limit for sending muliple messages per connection. BAUD=4800 Specifies the baudrate (300, 600, 1200, 2400, 4800 or 9600). If this parameter isn't specified the value from sendsms.cfg will be used. DATABITS=8 Specifies the count of databits (7 or 8). If this parameter isn't specified the value from sendsms.cfg will be used. STOPBITS=1 Specifies the count of stopbits (1 or 2). If this parameter isn't specified the value from sendsms.cfg will be used. PARITY=NONE Specifies the kind of parity (NONE, EVEN or ODD). If this parameter isn't specified the value from sendsms.cfg will be used. WAITAFTERCONNECT= For some providers (using the UCP-protocol) there must be a delay between the Connect-message of the modem and the first outgoing message (this dependes on the modem-settings, too). This parameter specifies the duration in seconds of this delay. MODEMINIT= Specifies an additional initializecommand for the modem. This command is called after the initializecommand deffined in sendsms.cfg and doesn't substitute it. Commonly this command can be left blank. It is only needed, if you want to force your modem to use a specific protocol. For eample you should use V.42/LAPM for providers using UCP (that is AT&Q5 for my modem). for example: [D1] PHONE=01712092522 PROTOCOL=TAP PREFIX=0171 MSGTYPE=ALPHANUMERIC MSGLEN=160 sendsms.pbk ----------- In this file you can enter a chapter for every in sendsms.pro defined provider with aliases. Every chapter starts with a line of the form: [] Every alias has to be entered in an own line and has to be of the form: = The phonebook is only available in the registered version!!!! for example: [D1] wobo=01714160598 ; Wolfgang Böcherer ------------------------------------------------------------------------------ Calling syntax -------------- SendSMS will be executed as follows: sendsms [options] {phoneNo | alias | @} [{message | < msgFile}] options are: -P specifies the provider for the corresponding phonenumber -F specifies a filename which contents will be send as the message -C specifies the configuration-file (sendsms.cfg) -R specifies the provider-definition-file (sendsms.pro) -B specifies the phonebook-file (sendsms.pbk) -q start SendSMS as a server and check queue every minutes -s spool messages (even if there runs no server) -n start SendSMS standalone (even if there runs a server) Ex.: sendsms 0171xxxxx "I am testing SendSMS" You have to specify at least one parameter - the phonenumber of the recipient or an alias (form the phonebook). If this first parameter starts with a masterspace (@), the parameter specifies the name of a file which contains multiple phonenumbers. With such a file it is possible to send one or multiple messages to multiple reciptients. The specified file must have the following format: [] SMS= PHONE= PHONE= SMS= PHONE= PHONE= PHONE= [] PHONE= Inclosed in brackets ([]) you have to specify providers (which are defined in sendsms.pro), followed by multiple lines with phonenumbers of reciptients or messages. Every line contains a new message (SMS=...), which should be sent to the following reciptients or the phonenumber (PHONE=...) of a reciptient (number or alias), which belongs to the corresponding provider and to which the message should be send in one connection. In the above example the message will be send to 2 reciptients and the message to 3 reciptients of using the same connection. The second message will be send to one reciptient of , too. If that file doesn't contain any message, the message entered on the commandline will be send to all reciptients. The second parameter is the message, enclosed by ' (ATTENTION: depending on the shell you are using some characters are substituted by the shell (for example '!') or you have to enclose the message by " insted of '). Alternativly you can specify the message by redirecting it from a file (< msgFile) or with the Parameter -F, where is the name of the file that will be send (at least the first n characters). If you specify only one parameter on the commandline (the reciptient), the message will be read from the console until you enter a line only consisting of a single '.'. If you want to send a message to a provider, which can't be identified by the predial-code of the reciptients phonenumber you have to specify the corresponding provider (as defined in sendsms.pro) with the parameter -P. For Example: you want to send a message to a Quix-Pager. SendSMS can't recognize the provider (Quix_News), because the number has no predialcode. Thatswhy you have to specify -PQuix_News. If you start SendSMS with the parameter -q (in that case all other parameters are ignored), SendSMS works as a server and checks every minutes the spooldirectory ( = 0 means to check only one time and terminate). If there are spooled messages thay will be sent with a minimum number of connections. If there runs a server every new instance will be started in spoolmode. This can be manipulated with the parameters -s (always spool) and -n (never spool). ------------------------------------------------------------------------------ Returncodes ----------- SendSMS returns the count of successfully sent Messages. If the returncode is negative then this is an errorcode, which is described in the file sendsms.err. ------------------------------------------------------------------------------ Where can I get the newest version? =================================== You can always get the newest version under: http://www.bai.de/ ------------------------------------------------------------------------------ Problems/Questions ================== Please send an Email including the following informations - error-/problem-description - hardcopy of the screen (commandline and errormessage) - your sendsms.cfg - your sendsms.pro - used operating-system - used version of SendSMS - used modem to: wobo@bai.de ------------------------------------------------------------------------------ Böcherer Angewandte Informatik Wolfgang Böcherer, Im Grün 9, D-76316 Malsch Tel.: +49 (0)7246/942484, Fax.: +49 (0)7246/942485 EMail: wobo@bai.de WWW: http://www.bai.de