SendSMS Beschreibung

Inhalt

Lizenz

SendSMS darf kostenlos fⁿr eine Dauer von 20 Tagen getestetet werden. Danach mu▀ SendSMS fⁿr eine dauerhafte Nutzung registriert (http://www.bai.de/sendsms/bestell.shtml) werden. Jeder Anwender erkennt die Allgemeinen Nutzungs- und GeschΣftsbedingungen fⁿr SendSMS an.

Allgemeines

SendSMS ist ein Programm zum Versenden von ShortMessages (SMS) an GSM-Telephone oder Pager mittels der Protokolle TAP, UCP oder GSM. In Deutschland sind dies z.B. Telephone mit D1-, D2- oder EPlus-Karte oder verschiedene Pager (Quix, TeLMI, CityRuf, Scall, Skyper,...). SendSMS hat u.a. folgende FΣhigkeiten:

Mit (*) gekennzeichnete Punkte sind nur in der registrierten Version verfⁿgbar.

Installation

Die ZIP-Datei (alternativ auch tar.Z) wird in einem temporΣren Unterverzeichnis entpackt und danach 'setup' oder './setup' aufgerufen. Das Installationsprogramm fragt nach den wichtigsten Parametern (um SendSMS zu testen) und kopiert die folgenden Dateien in ein anzugebendes Verzeichnis:

handbuch.htm Handbuch
faq.htm hΣufig gestellte Fragen
sendsms[.exe] das eigentliche Programm
sendsms.cf_ original Konfigurationsdatei
sendsms.cfg vom Installationsprogramm erstellte Konfigurationsdatei
sendsms.err Fehlercodes
sendsms.pro Telefonnetz-Definitionen
sendsms.pbk Beispiel fⁿr ein Telefonbuch
group.sms Beispiel fⁿr ein Gruppendefinition (zum Versenden an mehrere EmpfΣnger)

Nachdem setup durchlaufen wurde sollten Sie die Datei sendsms.pro editieren und dort alle von Ihnen nicht ben÷tigten Providerdefinitionen l÷schen. Fⁿr manche Provider sind verschiedene Definitionen (Modem, ISDN, GSM) vorhanden, von welchen Sie die nicht ben÷tigten Definitionen l÷schen bzw. die fⁿr Ihre Device zutreffende Definition an den Anfang der Datei stellen sollten.

Testen Sie vor dem automatischen Aufruf von SendSMS unbedingt, ob der Auflegmechanismus (ESCAPE-Sequenz oder DTR zurⁿcksetzen) funktioniert.

In der DOS-Version ist ein DPMI-Server (cwsdpmi.exe) enthalten. Das komplette Archiv kann unter csdpmi4b.zip geladen werden.

In den Unix-Versionen mu▀ der Owner der Datei sendsms ausreichende Rechte besitzen um das Modemdevice zu benutzen und Dateien anzulegen (Spoolverzeichnis, Lockverzeichnis,...) und es mu▀ das Set-User-ID Bit gesetzt sein.

Konfiguration

In der Datei sendsms.cfg wird die allgemeine Konfiguration des Programms festgelegt.

In der Datei sendsms.pro werden die verschiedenen Telefonnetze (welches Netz benutzt TAP bzw. UCP, ⁿber welche Telefonnummer wird die Nachricht versendet und welche Vorwahlen haben die Nummern des entsprechenden Netzes) konfiguriert.

In der Datei sendsms.pbk werden Kⁿrzel zum WΣhlen mittels symbolischer Namen anstelle von Telefonnummern definiert.

Kommentare werden durch einen Strichpunkt (;) eingeleitet.

SΣmtliche Konfigurationsdateien werden standardmΣ▀ig in dem Verzeichnis gesucht, aus dem SendSMS aufgerufen wurde. Dies gilt nicht, wenn per Kommandozeile explizit eine Konfigurationsdatei angegeben wurde, bzw. wenn die Umgebungsvariable SendSMS gesetzt wurde. In letzterem Fall wird der Wert dieser Umgebungsvariable als Verzeichnis fⁿr die Konfigurationsdateien benutzt.

sendsms.cfg

Hier wird im Kapitel [SendSMS] die allgemeine Konfiguration vorgenommen. Im Kapitel [Device] wird die Kommunikationsschnittstelle (Modem) konfiguriert. Das Kapitel [Device] kann in der registrierten Version beliebig oft wiederholt werden. Beim Verbindungsaufbau wird immer versucht das als erstes definierte Modem zu benutzen. Ist dieses Modem gesperrt oder reagiert nicht, so wird das nΣchste benutzt. Sollte der Verbindungsaufbau mit allen Modems nicht funktionieren, so wird eine Pause (REDIALDELAY) eingelegt und das Ganze wiederholt (REDIALCOUNT).

Im Kapitel [SendSMS] stehen die im Folgenden aufgefⁿhrten Schlⁿsselworte zur Verfⁿgung. Jedes Schlⁿsselwort mu▀ in einer neuen Zeile stehen.

BINLOCKS=0
Gibt an, ob die Lockdatei binΣr (1) oder ASCII angelegt wird (nur UNIX).

CONNECTTIMEOUT=40
Gibt die Zeitdauer (in Sekunden) an, die das Programm nach dem WΣhlen auf die CONNECT-Meldung wartet.

FOOTER=
Gibt einen optionalen Footer an (ein Text, der an jede zu versendende Nachricht angehΣngt wird) [nur in der registrierten Version]

GSMTIMEOUT=30
Gibt die Zeitdauer (in Sekunden) an, die das Programm auf eine Antwort vom Servicerechner bei Verwendung des GSM-Protokolls wartet.

HEADER=
Gibt einen optionalen Header an (ein Text, der vor jede zu versendende Nachricht gestellt wird) [nur in der registrierten Version]

ISDNPHONE=24
Gibt die Telefonnummer des ISDN-Adapters (bei Verwendung von CAPI 2.0) an. Hier mⁿssen Sie die Nummer eintragen, die dem entsprechenden ISDN-Anschlu▀ zugeordnet ist. Bei Verwendung einer Nebenstellenanlage also die interne Rufnummer. Wenn Sie hier keine oder eine falsche Nummer angeben kann es sein, da▀ Sie keine Verbindungen bekommen.

LOGFILE=sendsms.log
Gibt das Logfile an, in dem SendSMS alle Aktionen protokolliert. Wird das File ohne Pfad angegeben, so wird es in dem Verzeichnis in dem das Programm liegt angelegt. Wird als LOGFILE 'syslog' (nur Unix) angegeben, so wird ⁿber den syslog-DΣmon protokolliert. [nur in der registrierten Version]

LOCKDIR=/var/spool/uucp
Gibt das Verzeichnis an, in dem eine Lockdatei gesucht bzw. angelegt wird (nur UNIX).

MAXERRORS=
Gibt die max. Anzahl Fehler (Nachricht nicht gesendet) an, die bis zu einem Programmabbruch akzeptiert wird. Ist dieser Parameter nicht bzw. auf 0 gesetzt, so wird nach einer fehlerhaften oder nicht ⁿbertragenen Nachricht NICHT abgebrochen. Dieser Parameter hat nur Bedeutung, wenn an mehrere EmpfΣnger gesendet wird. Im Servermodus wird der Parameter ignoriert.

PHONE=
Gibt die eigene Telephonnummer, von der die Nachricht ausgeht, an.

PRIORITY=-5
Hiermit kann die PrioritΣt, mit der SendSMS ausgefⁿhrt wird, gesetzt werden (nicht DOS oder Windows). Der Bereich geht von -15 (hohe PrioritΣt) bis 15 (niedrige PrioritΣt).

RECEIVEDIR=received
Gibt ein Verzeichnis an, in welchem empfangene Kurznachrichten abgespeichert werden sollen (GSM). [nur registrierte Version]

REDIALCOUNT=3
Gibt die Anzahl von Wahlversuchen an (siehe auch RETRYCOUNT). [nur in der registrierten Version]

REDIALDELAY=60
Gibt die Anzahl Sekunden an, die bis zum nΣchsten Wahlversuch gewartet wird. In der Zeit bis zum nΣchsten Wahlversuch wird das Modem wieder freigegeben. [nur in der registrierten Version]

RETRYCOUNT=3
Gibt an, wieoft versucht wird eine Nachricht zu ⁿbertragen. Im Servermodus ist dies die Anzahl wie oft eine Nachricht max. im Spoolverzeichnis belassen wird (nach fehlerhafter ▄bertragung). Im Gegensatz zum REDIALCOUNT greift RETRYCOUNT immer, wenn die ▄bertragung nicht geklappt hat, wΣhrend REDIALCOUNT nur greift, wenn keine Modem frei ist bzw. die Gegenstelle nicht abnimmt. [nur in der registrierten Version]

RETRYDELAY=60
Gibt die Anzahl Sekunden an, die bis zum nΣchsten Wahlversuch gewartet wird. In der Zeit bis zum nΣchsten Wahlversuch wird das Modem wieder freigegeben. [nur in der registrierten Version]

SHOWSENDSMS=0
AnhΣngen der 'SendSMS from ...' Meldung an die zu versendende Nachricht unterbinden. [nur in der registrierten Version]

SHOWURL=0
AnhΣngen der Url http://www.bai.de an die zu versendende Nachricht unterbinden. [nur in der registrierten Version]

SPOOLDIR=/var/spool/sendsms
Gibt das Verzeichnis an, in dem die Nachrichten gespoolt (zwischengespeichert) werden. [nur in der registrierten Version]

TAPTIMEOUT=30
Gibt die Zeitdauer (in Sekunden) an, die das Programm auf eine Antwort vom Servicerechner bei Verwendung des TAP-Protokolls wartet.

UCPTIMEOUT=60
Gibt die Zeitdauer (in Sekunden) an, die das Programm auf eine Antwort vom Servicerechner bei Verwendung des UCP-Protokolls wartet.

UNSENTDIR=unsent
Gibt ein Verzeichnis an, in welchem Nachrichten die nicht gesendet werden konnten (Servermode) archivierd werden.empfangene Kurznachrichten abgespeichert werden.

VALIDITYPERIOD=3
Gibt die Anzahl Tage an die eine SMS gⁿltig bleiben soll (d.h. die Zeitdauer wie lange die Nachricht auf dem Servicerechner gespeichert werden soll, falls sie zur Zeit nicht ausgeliefert werden kann).

WAITAFTERWRITE=1
Gibt die Anzahl Sekunden an, die nach jedem Schreiben auf das Modem gewartet wird (kann meistens auf 0 gesetzt werden).

Im Kapitel [Device] stehen die im Folgenden aufgefⁿhrten Schlⁿsselworte zur Verfⁿgung. Jedes Schlⁿsselwort mu▀ in einer neuen Zeile stehen. (Fⁿr die entsprechenden Modembefehle wird auf das Modemhandbuch verwiesen (soweit vorhanden))

BAUD=4800
Gibt die zu verwendende Baudrate an (300, 600, 1200, 2400, 4800 oder 9600). Dieser Wert wird nur verwendet, falls bei einem anzurufenden Provider keine Definition vorhanden ist.

DATABITS=8
Gibt die Anzahl der Datenbits an (7 oder 8). Dieser Wert wird nur verwendet, falls bei einem anzurufenden Provider keine Definition vorhanden ist.

CONTROLLER=1
Wenn Sie in Ihrem Rechner mehrere ISDN-Karten benutzen geben Sie hier an auf welche der Karten sich die Definition bezieht.

DEVICE=COM1
Gibt den Anschlu▀ an, an dem das Modem hΣngt (unter Unix z.B. /dev/ttyS0). (Achtung: unter Unix mu▀ darauf geachtet werden, da▀ der Besitzer der Datei sendsms berechtigt ist das Device zu benutzen). Unter DOS k÷nnen zusΣtzlich, durch Kommata getrennt, die Portadresse und der IRQ (beides in Hex)angegeben werden, falls diese nicht dem Standard entsprechen (z.B. COM1,3f8,4).

Wird die Kommunikation mittels CAPI 2.0 abgewickelt, so wird hier der Pfad zur Capi-DLL (Windows, OS/2) bzw. zum CAPI-Device (Unix) angegeben. Unter DOS wird der IRQ zum ansprechen der CAPI angegeben (z.B. DEVICE=IRQ F1).

DEVICETYPE=Modem
Gibt die Art der verwendeten Hardware (Modem, GSM 07.05 oder CAPI 2.0) an.

PIN=1234
Gibt die PIN fⁿr Ihre SIM an (GSM-Module). Falls Sie eine GSM-Karte verwenden, bei welcher man keine PIN eingeben braucht/kann (AT+CPIN? funktioniert nicht), darf dieser Parameter nicht belegt werden.

DIALPREFIX=ATDT0w
Gibt das Kommando zum wΣhlen einer Nummer an (hier Tonwahl und nach einer '0' auf das Freizeichen warten).
Bei Verwendung der CAPI-Schnittstelle an einer Nebenstellenanlage wird hier die Ziffernfolge angegeben, um eine Amtsleitung zu erhalten (normalerweise 0).

DIALSUFFIX=
Bei manchen Modems/ISDN-Terminaladaptern mu▀ an die zu wΣhlende Nummer noch ein oder mehrere AT-Kommandos angehΣngt werden, um z.B. ein bestimmtes Protokoll auszuwΣhlen. Diese Kommandos k÷nnen hier definiert werden. Dieser Wert wird nur verwendet, falls bei einem anzurufenden Provider keine Definition vorhanden ist.

ESCAPE=+++
Gibt die Fluchtsequenz an, welche zum Umschalten vom Datenmodus in den Befehlsmodus dient. ACHTUNG! Die Fluchtsequenz wird nur benutzt wenn sie explizit definiert ist. Ist sie nicht definiert so wird zum Auflegen des Modems das DTR-Signal fⁿr 1 Sekunde auf 0 gesetzt. Dies ist sicherer und schneller als die Fluchtsequentz und ein ATH. Definieren Sie also die Fluchtsequenz nur, wenn der DTR-Mechanismus bei Ihnen nicht funktioniert.

HANGUP=ATH
Gibt das Kommando zum Auflegen an.

INIT=ATQ0E1V1L1
Gibt das Initialisierungskommando fⁿr das Modem an. Das Modem mu▀ auf

eingestellt werden.

INIT2=
Gibt ein zweites Initialisierungskommando fⁿr das Modem an. Dieses Kommando erfolgt nach der Standardinitialisierung des Modems (GSM-Modules). Bei Verwendung eines GSM-Modules ist es u.U. notwendig eine Speicheradresse anzugeben (z.B. AT+CPMS="ME"), wozu man mit diesen Parameter verwenden kann.

LINETYPE=ANALOG
Gibt an, ob es sich bei der Telefonleitung um eine analoge (ANALOG) oder um eine digitale (ISDN) Leitung handelt. Dieser Parameter kann ebenfalls bei den Providerdefinitionen angegeben werden, wobei SendSMS automatisch ein passendes Device fⁿr einen entsprechenden Provider auswΣhlt. Wenn Sie z.B. beim Aufruf von SendSMS den Provider D1_ISDN (dort ist LINETYPE=ISDN angegeben) auswΣhlen, so wird automatisch ein ISDN-fΣhiges Device gewΣhlt.

PARITY=NONE
Gibt die Art der ParitΣt an (NONE, EVEN oder ODD). Dieser Wert wird nur verwendet, falls bei einem anzurufenden Provider keine Definition vorhanden ist.

RESET=ATZ
Gibt das Kommando zum Zurⁿcksetzen des Modems an (normalerweise ATZ).

RTSCTS=1
Gibt an da▀ die Hardwareflu▀kontrolle benutzt werden soll.

STOPBITS=1
Gibt die Anzahl der Stopbits an (1 oder 2). Dieser Wert wird nur verwendet, falls bei einem anzurufenden Provider keine Definition vorhanden ist.

sendsms.pro

Hier werden die verschiedenen Dienstanbieter konfiguriert. Fⁿr jeden Dienstanbieter mu▀ ein 'Kapitel' angelegt werden. In der Datei sind viele Dienstanbieter bereits vorkonfiguriert und k÷nnen direkt ⁿbernommen werden. Nicht ben÷tigte Dienstanbieterdefinitionen sollten jedoch gel÷schen werden. Fⁿr manche Dienstanbieter sind verschiedene Definitionen (Modem, ISDN, GSM) vorhanden. Hiervon sollten Sie die nicht ben÷tigten Definitionen l÷schen bzw. die fⁿr Ihre Device zutreffende Definition an den Anfang der Datei stellen. Eine Definition erfolgt durch eine Zeile mit dem Namen des Dienstanbieters in eckigen Klammern ([]) eingeklammert und den folgenden Parametern: (es sollte bei allen Providern mit UCP-Protokoll der Parameter MODEMINIT so gesetzt werden, da▀ das Modem zu V.42/LAPM gezwungen wird)

B1PROTOCOL=64K-HDLC
Mit diesem Parameter geben Sie das zu verwendende B1-Protokoll (ISDN, physical layer) an. Dies ist nur notwendig, wenn der entsprechende Provider vom Standard abweichende Protokolle benutzt und die Verbindung per CAPI aufgebaut wird. Bei Verwendung eines ISDN-Terminaladapters mu▀ das entsprechende Protokoll mit einem AT-Befehl in MODEMINIT ausgewΣhlt werden. Es stehen folgende Auswahlm÷glichkeiten zur Verfⁿgung:

64K-HDLC 64 kbit/s with HDLC framing
64K-TRANS 64 kbit/s bit-transparent operation with byte framin from the network
V.110-ASYNC V.110 asynchronous operation with start/stop byte framing
V.110-SYNC V.110 synchronous operation with HDLC framing
T.30-FAX3 T.30 modem for fax group 3
64K-INVERT 64 kbit/s inverted with HDLC framing
56K-TRANS 56 kbit/s bit-transparent operation with byte framing from the network
MODEM-NEGOTIATION Modem with full negotiation
MODEM-ASYNC Modem asynchronous operation with start/stop byte framing
MODEM-SYNC Modem synchronous operation with HDLC framing

B2PROTOCOL=X.75-SLP
Mit diesem Parameter geben Sie das zu verwendende B2-Protokoll (ISDN, data link layer) an. Dies ist nur notwendig, wenn der entsprechende Provider vom Standard abweichende Protokolle benutzt und die Verbindung per CAPI aufgebaut wird. Bei Verwendung eines ISDN-Terminaladapters mu▀ das entsprechende Protokoll mit einem AT-Befehl in MODEMINIT ausgewΣhlt werden. Es stehen folgende Auswahlm÷glichkeiten zur Verfⁿgung:

X.75-SLP ISO 7776 (X.75 SLP)
TRANS Transparent
SDLC SDLC
LAPD-X.25 LAPD in accordance with Q.921 for D channel X.25
T.30-FAX3 T.30 for fax group 3
PPP Point-to-Point Protocol
IGNORE Transparent (ignoring framing errors of B1 protocol)
MODEM Modem with full negotiation
X.75-SLP-V.42 ISO 7776 (X.75 SLP) with V.42 bis compression
V.120-ASYNC V.120 asynchronous mode
V.120-ASYNC-V.42 V.120 asynchronous mode with V.42 bis compression
V.120-TRANS V.120 bit-transparent mode
LAPD LAPD in accordance with Q.921

B3PROTOCOL=TRANS
Mit diesem Parameter geben Sie das zu verwendende B3-Protokoll (ISDN, netwok layer) an. Dies ist nur notwendig, wenn der entsprechende Provider vom Standard abweichende Protokolle benutzt und die Verbindung per CAPI aufgebaut wird. Bei Verwendung eines ISDN-Terminaladapters mu▀ das entsprechende Protokoll mit einem AT-Befehl in MODEMINIT ausgewΣhlt werden. Es stehen folgende Auswahlm÷glichkeiten zur Verfⁿgung:

TRANS Transparent
T.90NL T.90NL with compatibility to T.70NL
X.25-DTE-DTE ISO 8202 (x.25 DTE-DTE)
X.25-DCE X.25 DCE
T.30-FAX3 T.30 for fax group 3
T.30-FAX3-EXT T.30 for fax group 3 extended
MODEM Modem

BDATALEN=1024
Gibt die maximale LΣnge von Datenbl÷cken (CAPI; hat nichts mit der LΣnge einer Nachricht zu tun) an. Der Wert mu▀ im Bereich zwischen 128 und 2048 liegen.

BAUD=4800
Gibt die zu verwendende Baudrate an (300, 600, 1200, 2400, 4800 oder 9600). Dieser Wert, falls vorhanden, ⁿberschreibt den Wert in sendsms.cfg.

CIP=UNRESTRICTED-DIGITAL
Mit diesem Parameter kann (normalerweise nicht notwendig) der CIP-Wert (Compatibility Information Profile) zum Verbindungsaufbau per CAPI angegeben werden. Bei Verwendung eines ISDN-Terminaladapters mu▀ der entsprechende Wert mit einem AT-Befehl in MODEMINIT ausgewΣhlt werden. Es stehen folgende Auswahlm÷glichkeiten zur Verfⁿgung:

SPEECH Speech
UNRESTRICTED-DIGITAL unrestricted digital information
RESTRICTED-DIGITAL restricted digital information
3.1KHZ-AUDIO 3.1 kHz audio
7KHZ-AUDIO 7 kHz audio
VIDEO Video
PACKET-MODE packet mode
56KBIT-RATE-ADAPTION 56 kbit/s rate adaption
UNRESTRICTED-DIGITAL-WITH-TONES unrestricted digital information with tones/announcements

DATABITS=8
Gibt die Anzahl der Datenbits an (7 oder 8). Dieser Wert, falls vorhanden, ⁿberschreibt den Wert in sendsms.cfg.

DIALSUFFIX=
Bei manchen Modems/ISDN-Terminaladaptern mu▀ an die zu wΣhlende Nummer noch ein oder mehrere AT-Kommandos angehΣngt werden, um z.B. ein bestimmtes Protokoll auszuwΣhlen. Diese Kommandos k÷nnen hier definiert werden. Dieser Wert, falls vorhanden, ⁿberschreibt den Wert in sendsms.cfg.

LINETYPE=ANALOG
Gibt an, ob es sich bei der Telefonnummer das Providers um einen analogen (ANALOG) oder um einen digitalen (ISDN) Anschlu▀ handelt. Dieser Parameter kann ebenfalls bei den Devicedefinitionen angegeben werden, wobei SendSMS automatisch ein passendes Device fⁿr einen entsprechenden Provider auswΣhlt. Wenn Sie z.B. beim Aufruf von SendSMS den Provider D1_ISDN (dort ist LINETYPE=ISDN angegeben) auswΣhlen, so wird automatisch ein ISDN-fΣhiges Device gewΣhlt.

MAXMSG=
Gibt die maximale Anzahl von Nachrichten an, die innerhalb einer einzelnen Verbindung versendet werden k÷nnen. Ist dieser Parameter definiert, so werden bis zu der entsprechenden Anzahl Nachrichten versendet und danach automatisch die Verbindung beendet und falls erforderlich eine neue Aufgebaut. Dies ist n÷tig, da einige Provider nur eine begrenzte Anzahl Nachrichten pro Verbindung zulassen.

MODEMINIT=
Gibt ein zusΣtzliches Initialisierungskommando an. Dieses Kommando wird nach dem entsprechenden Kommando aus derDatei sendsms.cfg aufgerufen und ersetzt dieses nicht. In den meisten FΣllen kann dieser Parameter entfallen. Er wird nur ben÷tigt, wenn z.B. fⁿr einen Provider das Modem auf ein bestimmtes Protokoll eingestellt werden soll. Z.B. sollte bei einem Provider mit UCP-Protokoll das Modem auf V.42/LAPM eingestellt werden (z.B. AT&Q5).

MSGLEN=
Hier wird die maximale LΣnge einer Nachricht angegeben. Bei den Protokollen SKYPER und SCALL wird dieser Parameter automatisch bestimmt.

MSGTYPE=
Gibt an, ob die Nachricht nur Ziffern (NUMERIC), beliebige Zeichen (ALPHANUMERIC) oder gar keine Zeichen (TONE) enthalten darf (ALPHANUMERIC ist der Standard). Bei den Protokollen SKYPER und SCALL wird dieser Parameter automatisch bestimmt.

PARITY=NONE
Gibt die Art der ParitΣt an (NONE, EVEN oder ODD). Dieser Wert, falls vorhanden, ⁿberschreibt den Wert in sendsms.cfg.

PASSWORD=
Fⁿr manche Provider wird ein Passwort ben÷tigt, welches hier angegeben werden kann.

PHONE=
Hier wird die Telefonnummer, ⁿber die Nachrichten an das entsprechende Netz gesendet werden k÷nnen, angegeben. Ist das letzte Zeichen der Nummer ein '&', so bedeutet dies, da▀ beim AnwΣhlen des Providers an diese Nummer die Nummer des EmpfΣngers angehΣngt wird.
Bei Benutzung eines GSM-Zugangs geben Sie hier die SMSC-Adresse in der Form +<a><b><c> an, wobei <a> die Landesvorwahl (ohne Nullen), <b> die Ortsvorwahl (ohne Null) und <c> die Telefonnummer angibt.
Dieser Parameter kann pro Provider mehrfach definiert werden.

PREFIX=
Hier steht die Vorwahl des entsprechnden Netzes. Anhand dieser Vorwahl wird beim Aufruf von SendSMS mit einer Telefonnummer (kein Alias aus dem Telefonbuch) ⁿberprⁿft, zu welchem Netz die entsprechende Telefonnummer geh÷rt. Dieser Parameter kann pro Provider mehrfach definiert werden.

PROTOCOL=
Hier mu▀ TAP, UCP, GSM, Scall oder Skyper stehen.

REMOVEPREFIX=
Die Nummer des EmpfΣngers wird zusammen mit der zu ⁿbersendenden Nachricht verschickt. Da bei manchen Providern nur die Nummer (ohne Vorwahl) angegeben werden mu▀, kann man mit diesem Parameter (=1) angeben, da▀ der PREFIX (falls definiert) nicht gesendet wird.

STOPBITS=1
Gibt die Anzahl der Stopbits an (1 oder 2). Dieser Wert, falls vorhanden, ⁿberschreibt den Wert in sendsms.cfg.

TRANSTABLE=tap.ctt
Gibt eine Zeichenⁿbersetzungstabellen an (siehe Zeichenⁿbersetzungstabellen).

WAITAFTERCONNECT=
Bei manchen Providern (mit UCP-Protokoll) mu▀ nach dem Connect, bevor die erste Nachricht versendet wird, noch eine Pause eingelegt werden. Dieser Parameter gibt die LΣnge der Pause (in Sekunden) an. Dies ist anscheinend nur n÷tig, wenn das Modem nicht auf V.42/LAPM gesetzt ist. Falls m÷glich ist es der bessere Weg, in MODEMINIT (s.u.) einen entsprechendes AT-Kommando anzugeben.

Beispiel

[D1]
PHONE=01712092522
PROTOCOL=TAP
PREFIX=0171
MSGTYPE=ALPHANUMERIC
MSGLEN=160

sendsms.pbk

Hier k÷nnen zu den einzelnen in sendsms.pro definierten Telefonnetzen (jeweils ein eigens Kapitel) Kⁿrzel (Alias) fⁿr Telefonnummern definiert werden. Jedes Kⁿrzel steht in einer eigenen Zeile und danach durch '=' getrennt die zugeh÷rige Nummer (mit Vorwahl). Das Telefonbuch steht nur in der registrierten Version zur Verfⁿgung!!!!

Beispiel

[D1]
wobo=01714160598        ; Wolfgang B÷cherer

Zeichenⁿbersetzungstabellen

Da die verschiedenen von SendSMS unterstⁿtzten Protokolle per Definition verschiedene ZeichensΣtze verwenden und viele Provider diese ZeichensΣtze nochmals modifizieren bietet SendSMS die M÷glichkeit fⁿr jeden Provider eine eigen ▄bersetzungsabelle zu definieren. Ist zu einem Provider keine explizite Tabelle angegeben wird eine Standardtabelle benutzt. Um eine Tabelle einem Provider zuzuordnen wird eine Datei mit folgendem Format definiert und als Parameter TRANSTABLE bei der entsprechenden Providerdefinition angegeben:
Fⁿr jedes einzelnen Zeichen wird je eine Zeile mit drei durch Leerzeichen getrennten in Hexdarstellung angegebenen Codes eingegeben. Der erste Code gibt den Zeichencode des zu wandelnden Zeichens an, der zweite Wert den vom Provider benutzten Code und der dritte Wert den Code (ISO 8859-1) in den ein vom Provider empfangenes Zeichen zurⁿckgewandelt wird.

Server-Modus

In der registrierten Version von SendSMS gibt es einen zusΣtzlichen Server-Modus (-q). Mit diesem haben Sie die M÷glichkeit eine SendSMS-Instanz im Hintergrund laufen zu lassen, welche in regelmΣ▀igen AbstΣnden das Spoolverzeichnis kontrolliert und eventuell vorhandene Nachrichten versendet. Hierdurch ist es m÷glich Nachrichten zu sammeln und zusammen, innerhalb einer einzelnen Verbindung, zu versenden, was wiederum Geld spart. Sobald eine SendSMS-Instanz im Server-Modus lΣuft werden von allen weiteren Instanzen deren Nachrichten automatisch gespoolt, anstatt sie direkt zu versenden. Durch zusΣtzliche Parameter kann SendSMS aber auch, unabhΣngig davon ob ein Server lΣuft oder nicht, dazu gebracht werden, die Nachrichten zu spoolen bzw. sie direkt zu versenden. die Spooldatei selbst generieren (ASCII-Format).

Bei Verwendung eines GSM-fΣhigen Devices ist es auch m÷glich Nachrichten zu empfangen (SIM auslesen) und zu speichern (-Q).

Um Nachrichten zu spoolen, k÷nnen Sie einfach SendSMS aufrufen oder

Aufruf Syntax

SendSMS wird wie folgt aufgerufen:

sendsms [Optionen] {phoneNo | alias | @<inputFile>} [{message | < msgFile}]

Optionen sind:
-p<provider> gibt den Provider zur angegebenen Telefonnummer an
-f<msgFile> gibt den Namen eines Files an, dessen Inhalt als Nachricht verschickt werden soll
-c<cfgFile> gibt den Namen der Konfigurationsdatei an (sendsms.cfg)
-r<proFile> gibt den Namen der Providerdatei an (sendsms.pro)
-b<pbkFile> gibt den Namen der Telefonbuchdatei an (sendsms.pbk)
-q<n> startet SendSMS im Servermodus (Spoolverzeichnis wird alle <n> Minuten ⁿberprⁿft; kein Empfang von SMSs)
-Q<n> startet SendSMS im Servermodus (Spoolverzeichnis wird alle <n> Minuten ⁿberprⁿft; empfangene SMSs werden ausgelesen und gespeichert (GSM))
-U<userexit> gibt eine Programm-/Batchdatei an die gestartet wird, wenn eine Nachricht gesendet oder empfangen wurde (Servermodus)
-s SendSMS spoolt die Nachricht(en), auch wenn z.Zt. kein Server lΣuft
-n SendSMS sendet die Nachricht(en) direkt ⁿber das Modem, auch wenn z.Zt. ein Server lΣuft
-t<Zeichenⁿbersetzungstabelle> gibt an, ob die Nachricht den ISO-Zeichensatz (iso8859) oder die Codepage 850 (cp850) verwendet
-o<Absender> ⁿberschreibt den Absender (UserID) der Nachricht an
-v verbose; SendSMS zeigt die Kommunikation mit dem Modemdevice am Bildschirm an

Z.B.: sendsms 0171xxxxx "Ich teste SendSMS."

Es ist immer mindestens ein Parameter - die Telefonnummer des EmpfΣngers bzw. ein Alias (Eintrag im Telefonbuch) - notwendig. Beginnt dieser erste Parameter mit einem Masterspace (@), so gibt dieser nicht eine Nummer bzw. ein Alias an, sondern den Namen einer Datei, welche die Nummern von mehreren EmpfΣnger beinhaltet. Mit solch einer Datei kann eine Nachricht an beliebig viele EmpfΣnger, welche auch ⁿber verschiedene Netze erreichbar sind, versendet werden. Des weiteren ist es mit solch einer Datei m÷glich verschiedene Nachrichten an einen oder mehrere EmpfΣnger zu versenden. Eine entsprechende Datei mu▀ folgendes Format haben:

[<provider1>]
SMS=<message1>
PHONE=<nummer1>
PHONE=<nummer2>
SMS=<message2>
PHONE=<nummer3>
PHONE=<alias1>
PHONE=<alias2>

[<provider2>]
PHONE=<nummer4>

Durch eckige Klammern eingerahmt werden Provider (mⁿ▀en in der Datei sendsms.pro vorhanden sein) angegeben, zu welchen in den folgenden Zeilen Telefonnummern fⁿr EmpfΣnger folgen. Pro Zeile wird entweder eine neue Nachricht (SMS=...) oder eine Nummer (PHONE=...) bzw. ein Alias angegeben. In obigem Fall wird die Nachricht <message1> also an 2 Nummern des ersten Providers und wΣhrend der selben Verbindung auch noch die Nachricht <message2> an 3 weiter EmpfΣnger des Providers <provider1> gesendet. Au▀erdem wird die zweite Nachricht auch noch an einen EmpfΣnger von <provider2> gesendet. Ist in dieser Datei keine Nachricht enthalten wird die Nachricht, die ⁿber die Kommandozeile angegeben wurde an alle Nummern, die in der Datei enthalten sind, versendet.

Als zweiter Parameter wird die zu versendende Nachricht in Hochkommata angegeben (ACHTUNG: Je nach verwendeter Shell werden bestimmte Zeichen von dieser interpretiert und ersetzt (z.B. '!') und/oder mⁿssen anstatt Hochkommata doppelte Hochkommata angegeben werden). Alternativ kann die zu versendende Nachricht auch ⁿber eine Umleitung aus einer Datei angegeben werden (<msgFile) oder mit dem Parameter -F<msgFile>, wobei <msgFile> den Namen einer Datei angibt, deren Inhalt als Nachricht (zumindest die ersten n Zeichen) versendet wird. Wird beim Aufruf von SendSMS nur ein Parameter (EmpfΣnger) angegeben, so wird die zu versendende Nachricht von der Konsole eingelesen bis eine Zeile mit nur einem Punkt '.' eingegeben wird (nicht in der Version fⁿr Windows 3.x). Soll eine Nachricht an einen Provider gesendet werden, welcher anhand der Nummer des EmpfΣngers nicht eindeutig zu identifizieren ist, so mu▀ ⁿber den Parameter -P der entsprechende Provider angegeben werden (Name wie er in der Datei 'sendsms.pro' definiert ist). Z.B.: Es soll eine Nachricht an einen Quix-EmpfΣnger gesendet werden. Da SendSMS anhand der Quix-Nummer (7-stellige Nummer ohne Vorwahl) nicht erkennen kann, was dies fⁿr eine Nummer ist, mu▀ zusΣtzlich beim Aufruf -PQuix_News angegeben werden (bei D1-Nummern wird anhand der Vorwahl (0171) erkannt, da▀ es eine D1-Nummer ist).

Wird SendSMS mit dem Parameter -q<n> gestartet (alle weiteren Parameter werden in diesem Fall ignoriert), so lΣuft SendSMS als Server und ⁿberprⁿft alle Minuten das Spoolverzeichnis (SPOOLDIR). Ist <n> = 0, wird SendSMS nach einmaligem abarbeiten des Spoolverzeichnisses beendet. Falls Dateien vorhanden sind werden diese innerhalb einer minimalen Anzahl von Verbindungen versendet. Sobald ein SendSMS-Server lΣuft werden alle weiteren Instanzen automatisch im Spoolmodus gestartet. Mit den Parameter -n (direkt versenden) bzw. -s (auf jeden Fall spoolen) kann dieses Verhalten geΣndert werden. Mit diesen Mechanismen hat man die M÷glichkeit Nachrichten ⁿber eine Zeitdauer zu sammeln und diese mit einer minimalen Anzahl von Verbindungen innerhalb der gⁿnstigsten Tarifzeiten zu versenden.

Mit dem Parameter -t wird angegeben in welchem Zeichensatz die zu versendende Nachricht angegeben wird. StandarmΣ▀ig benutz SendSMS unter OS/2, DOS, und WindowsNT die Codepage 850 (cp850) und unter Windows 3.x und allen Unix-Versionen ISO-8859 (iso8859). Wenn die zu versendende Nachricht nicht mit dem standard Zeichensatz angegeben wird, so mu▀ dies mit diesem Parameter angezeigt werden.

Mit dem Parameter -U kann ein Userexit definiert werden. Dies ist ein externes Programm oder eine Batch-/Scriptdatei, die von SendSMS immer dann aufgerufen wird, wenn im Servermodus eine Nachricht erfolgreich versendet oder empfangen wurde bzw. wenn eine Nachricht nicht gesendet werden konnte. Als Eingabeparameter erhΣlt das aufgerufene Programm folgende 4 Werte:

Integration in Email-Systeme

Folgende .forward-Datei soll als Beispiel dienen, wie einfach es ist SendSMS in ein Email-System (Unix) zu integrieren. Sie legen einfach nur eine .forward Datei mit folgendem Inhalt in Ihrem Homeverzeichnis ab:
\wobo, "| egrep -ih '^From:|^Subject:' | /usr/local/sendsms/sendsms -s 0171xxx"
Diese Datei bewirkt, da▀ alle fⁿr Sie ankommenden Emails an die UserId wobo (hier geben Sie Ihre eigen UserId an) weitergeleitet werden (das hei▀t, die Email ist fⁿr Sie weiterhin ganz normal verfⁿgbar, so wie auch ohne .forward Datei) und da▀ automatisch eine Nachricht (mit dem Absender und dem Subject der Email) durch SendSMS an die angegebene Nummer gesendet wird.

Returncodes

SendSMS gibt als Returncode die Anzahl der erfolgreich versendeten Nachrichten zurⁿck (Returncode 0 bedeutet, da▀ SendSMS zwar regulΣr beendet wurde, aber keine Nachricht versenden konnte). Ist der Returncode negativ, so handelt es sich um einen Errorcode, welcher in der Datei sendsms.err erlΣutert wird. Dieses Feature ist nur in der registrierten Version verfⁿgbar.

Wo finde ich die neueste Version?

Die neuste Version finden Sie unter www.bai.de.

Probleme/Fragen

Schicken Sie eine Email mit folgenden Angaben

an info@bai.de.
Böcherer Angewandte Informatik
Dipl.-Inform. Wolfgang Böcherer
Im Grün 9
D-76316 Malsch
Tel: +49 (0)7246 942484
Fax: +49 (0)7246 942485
Email: info\@bai.de
WWW: http://www.bai.de