SendSMS Beschreibung |
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.
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.
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).
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]
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 3.x). 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 bzw. - falls das letzte Zeichen ein M ist die Anzahl Minuten 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). Der Parameter
kann alternativ auch in Minuten angegeben werden, wenn
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.
BEEP=AT#VTS=[960,0,6]
Gibt ein Kommando zum Generieren eines Signaltones (bei Aufnahme einer Sprachnachricht mit
Voice-Modem) an.
CONNECTTIMEOUT=40
Gibt die Zeitdauer (in Sekunden) an, die das SendSMS nach dem Wählen auf das
Zustandekommen einer Verbindung wartet.
CONTROLLER=1
Wenn Sie in Ihrem Rechner mehrere ISDN-Karten benutzen geben Sie hier an auf welche der
Karten sich die Definition bezieht.
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.
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, Voice-Modem, GSM 07.05 oder CAPI 2.0) an.
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
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 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.
MSN=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. Dieser Parameter kann durch die
Kommandozeilenoption -m überschrieben werden.
NAME=Modem1
Dient zur eindeutigen Identifizierung eines Devices. Wenn dieser Name mit dem
Kommandozeilenparameter -d angegeben wird, kann schon beim Aufruf von SendSMS
ein spezielles Devices vorgegeben werden. Dies ist nur notwendig, wenn mehrere Devices
konfiguriert sind und die automatische Deviceauswahl umgangen werden soll.
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.
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.
RESET=ATZ
Gibt das Kommando zum Zurücksetzen des Modems an (normalerweise ATZ).
RTSCTS=1
Gibt an daß die Hardwareflußkontrolle benutzt werden soll.
STARTVOICEMODE=AT#CLS=8
Gibt das Kommando an mit dem ein Voice-Modem in den Voice-Modus gesetzt wird. Dies ist zum
Abspielen/Aufnehmen von Sprachnachrichten nötig.
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.
STOPVOICEMODE=AT#CLS=0
Gibt das Kommando an mit dem bei einem Voice-Modem der Voice-Modus beendet wird.
VOICERECEIVE=AT#VTX
Gibt das Kommando an mit dem bei einem Voice-Modem der Sprachempfangsmodus gestartet wird
(Aufzeichnen von Sprachnachrichten).
VOICETRANSMIT=AT#VTX
Gibt das Kommando an mit dem bei einem Voice-Modem der Sprachsendemodus gestartet wird
(Abspielen von Sprachnachrichten).
WAITAFTERWRITE=1
Gibt die Anzahl Sekunden an, die nach jedem Schreiben auf das Device
gewartet wird (kann meistens auf 0 gesetzt werden).
XONXOFF=1
Gibt an daß die Softwareflußkontrolle benutzt werden soll.
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 |
TELEPHONY | Telephony |
DATABITS=8
Gibt die Anzahl der Datenbits an (7 oder 8). Dieser Wert, falls vorhanden,
überschreibt den Wert in sendsms.cfg.
DEVICE=
Hier kann der Name eines Devices (so wie er in sendsms.cfg unter NAME definiert ist)
angegeben werden um die Nutzung des entsprechenden Devices für diesen Provider zu erzwingen.
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 (Anzahl Zeichen bzw. Anzahl Sekunden) angegeben.
Bei den Protokollen SKYPER und SCALL wird dieser Parameter automatisch bestimmt. In der
unregistrierten Version ist die maximale Länge auf 60 Zeichen bzw 5 Sekunden beschränkt.
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, Skyper oder CITYRUF stehen. Im Falle von Scall und Skyper muß das Modem
so konfiguriert werden, daß XON/XOFF-Zeichen nicht gefiltert werden (zur Gegenstelle
übertragen werden).
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.
[D1] PHONE=01712092522 PROTOCOL=TAP PREFIX=0171 MSGTYPE=ALPHANUMERIC MSGLEN=160
[D1] wobo=01714160598 ; Wolfgang Böcherer
sendsms -PVOICE 07246942484 -Fvoice.datoder
sendsms -PVOICE 07246942484 < voice.datIn beiden Fällen wird die angegeben Nummer angerufen und die Sprachnachricht, die unter der Datei voice.dat gespeichert ist, abgespielt.
Zum Aufzeichen einer Sprachnachricht muß der Dateiname, der mit dem Parameter -F angegeben wird, mit einem Masterspace (@) beginnen.
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
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) |
-d<device> | hiermit kann die Benutzung eines bestimmten Devices vorgegeben werden |
-m<MSN> | gibt die zu verwendende MSN an (nur bei CAPI 2.0)) |
-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 |
-i | Installiert SendSMS (Servermode) als einen Service (nur WindowsNT) |
-x | Deinstalliert den Service SendSMS (nur WindowsNT) |
-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. Eine entsprechende Datei muß folgendes Format haben:
[<provider1>] PHONE=<nummer1> PHONE=<nummer2> 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 eine Nummer (PHONE=...) bzw. ein Alias angegeben. In obigem Fall wird die Nachricht also an 5 Nummern des ersten Providers (während der selben Verbindung) gesendet. Außerdem wird die Nachricht auch noch an einen Empfänger von <provider2> gesendet.
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). Eine auf der Kommandozeile angegebene Nachricht darf
nicht mit einem Bindestrich beginnen. 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 (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
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
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
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:
Beispiele:
sendsms -PD1 01714160598 "Dies ist eine Testnachricht"
sendsms 01714160598 -Fmsg.txt
sendsms @group "Alarm an alle"
sendsms -PVOICE 07246942484 < voice.dat
sendsms -PVOICE 07246942484 -F@voice.dat
Z.B.:
Unter WindowsNT/Windows 9x ist eine entsprechende Benachrichtingung durch SendSMS
bei eintreffenden Emails z.B. mit dem Freeware-Produkt
POSTIE möglich.
In der OS/2- und der WindowsNT-Version kann als Userexit auch eine Funktion aus einer DLL angegeben
werden. Hierzu werden der Name der DLL und der Name der Funktion durch ein Masterspace (@) getrennt
(-u<dll>@<function>).
sendsms 01714160598 test
Die Nachricht "test" wird an die angegebene Nummer gesendet. Es wird automatisch der erste Provider
aus sendsms.pro benutzt, bei welchem der PREFIX=0171 definiert ist.
Die Nachricht "Dies ist eine Testnachricht" wird an die angegebene Nummer gesendet. Der zu verwendende Provider
wird explizit angegeben.
sendsms -dModem1 01714160598 < msg.txt
In beiden Fällen wird der Inhalt der Datei msg.txt an die angegeben Nummer gesendet. Im zweiten Fall
wird die Benutzung des Devices Modem1 (Parameter NAME im Kapitel [Device] in sendsms.cfg) vorgegeben.
Es wird die Nachricht "Alarm an alle" an alle Nummern, die in der Datei group aufgelistet
sind, versendet.
sendsms -PVOICE 07246942484 -Fvoice.dat
Es wird eine Sprachnachricht (Voice-Modem oder CAPI 2.0) an die angegebene Nummer gesendet. Die
Datei voice.dat muß eine Voice-Datei in dem nativen Format des benutzen Devices sein.
Es wird die angegebene Nummer angerufen und eine Sprachaufzeichnung im nativen Deviceformat in der
datei voice.dat abgespeichert.
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 01711234567 > /dev/null"
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. In dem angegebenen Beispiel werden die
Nachrichten gespoolt, was auch bedeutet, daß ein Serverprozess zum Arbeiten der Spooldateien gestartet
werden muß. Sollen die Nachrichten direkt versendet werden (ohne Sooling) so muß in der
.forward-Datei ein Script aufgerufen werden, welches SendSMS ohne -s aufruft und als Returncode
immer 0 zurück gibt (der Mailer benötigt 0, während SendSMS die Anzahl der versendeten
Nachrichten zurück gibt).
#! /bin/sh
egrep -ih '^From:|^Subject:' | /usr/local/sendsms/sendsms 01711234567 > /dev/null
exit 0
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