[BAI]
SendXMS®
Made in Germany

Deutsch | English

[Dot] Home
[Dot] Eigenschaften
[Dot] Handbuch
[Dot] Neuerungen
[Dot] FAQ
[Dot] Download
[Dot] Bestellung
[Dot] Referenzen
[Dot] Links
[Dot] AGB
[Dot] Impressum

 

      SMS
+     EMS
+     MMS
[HR]
= SendXMS

[Valid XHTML 1.0!]

[Valid CSS!]

Home | Eigenschaften | Handbuch | Neuerungen | FAQ | Download | Bestellung | Referenzen | Links | AGB | Impressum

[HR]

Böcherer Angewandte Informatik SendXMS® Handbuch

  1. Inhalt

    1. Inhalt
    2. Lizenz
    3. Allgemeines
    4. Installation
    5. Konfiguration
    6. Zeichenübersetzungstabellen
    7. Filter für Nummernformate
    8. Sprachnachrichten
    9. Server-Modus
    10. ODBC Interface
    11. Spool-API
    12. Userexit
    13. VXMSC-Edition
    14. Zeitversetztes Senden und Gültigkeitsdauer
    15. Funktionsauswahl
    16. Aufrufsyntax
    17. Integration in Email-Systeme
    18. Integration in WWW-Server
    19. Graphische Benutzeroberfläche
    20. X.25/X.31
    21. TCP/IP, SSL
    22. PPP
    23. Returncodes
    24. SMS über HTTP
    25. MMS, Klingeltöne, Logos, WAP Push (OMA Provisioning, OMA DRM, OMA EMN, Bookmarks, MMS Notifications, ...)
    26. UCS-2
    27. Mobile Number Portability (MNP)
    28. Abkürzungen
    29. Wo finde ich die neueste Version
    30. Probleme/Fragen
  2. Lizenz

    SendXMS darf kostenlos für eine Dauer von 20 Tagen getestet werden. Danach muss SendXMS für eine dauerhafte Nutzung lizenziert werden. Jeder Anwender erkennt unsere Lizenz- und Nutzungsbedingungen an.

  3. Allgemeines

    SendXMS ist das führende, skalierbare Programm zum Versenden und Empfangen von Kurznachrichten (SMS, EMS, MMS) an Mobiltelefone oder Pager mittels der Protokolle TAP, EMI/UCP (CMG), SMPP (Logica), CIMD (NOKIA), OIS (SMS2000, SEMA), ES 201 912, GSM, HTTP, MM1, MM7 oder EAIF (Nokia). SendXMS ist ebenfalls in der Lage Sprachnachrichten aufzunehmen/abzuspielen.

    SendXMS (Standard-Edition) hat u.a. folgende Eigenschaften:

    • MNP fähig (Mobile Number Portability)
    • zusätzliche graphische Oberfläche durch Java-Frontend
    • verfügbar auf vielen verschiedenen Betriebssystemen
    • TAP-Protokoll (z.B.: D1, EPlus)
    • AIM-Erweiterungen für TAP (z.B.: D1, EPlus)
    • EMI/UCP-Protokoll (CMG; z.B.: D2)
    • SMPP-Protokoll (Logica; z.B.: EPlus Großkundenzugang)
    • OIS-Protokoll (SMS2000, SEMA)
    • CIMD-Protokoll (NOKIA)
    • SMS im Festnetz (ETSI ES 201 912 (Protokoll 1 und 2); nur mit CAPI)
    • MMS im Festnetz (MMS-F)
    • Unterstützung für MM1 (WAP 1.x und 2.0)
    • Unterstützung für binäre Nachrichten1)
    • Unterstützung für UCS-2 (Unicode) Nachrichten
    • Unterstützung für WAP Push1)
    • Senden von DTMF-Sequenzen
    • GSM 07.05 (MO und MT; PDU-Mode)
    • Empfangen von Nachrichten (GSM, ETSI ES 201 912, MM1, MMS-F und UUS; in Professional-Edition auch mit UCP, SMPP, OIS, CIMD, EAIF)
    • UUS (User-User-Signaling) mit CAPI 2.0 (kostenloser Versand im D-Kanal; nur falls dies von verwendeter CAPI und Provider unterstützt wird)
    • bestätigte Übertragung von SMS
    • Statusabfrage von zuvor übertragenen SMS1)
    • Löschen von zuvor übertragenen aber noch nicht ausgelieferten SMS1)
    • direkte Anzeige (Flash SMS) auf dem Display des empfangenden Telefons möglich
    • Unterstützung der Option Reply-Path-Request
    • Unterstützung für lange Kurznachrichten (Aufteilen/Zusammensetzen einer Nachricht in bis zu 255 SMS)1)
    • Emulation der CityRuf-Terminalschnittstelle
    • zeitversetztes Senden1)
    • CAPI 2.0 Unterstützung
    • VoIP-CAPI (® Ikon GmbH, Ulm) Unterstützung
    • RemoteCAPI Unterstützung (BINTEC-Erweiterung) (auch für Unix)
    • RemoteCAPI Unterstützung (AVM-Erweiterung; CAPIoTCP) (auch für Unix)
    • TAPI 2.0 Unterstützung
    • Aufzeichnen und Abspielen von Sprachnachrichten
    • Definition von beliebig vielen Zeichenübersetzungstabellen möglich
    • Unterstützung des erweiterten GSM-Zeichensatzes
    • Konvertierungsprogramm zum Lesen von .bmp, .png, .gif, .mng, .rtx, .rtttl, .imy, .htm, .mid und .xml (.xml ab Professional-Edition) Dateien1)
    • Unterstützung für Nachrichten mit unterschiedlichen Prioritäten1)
    • Unterstützung für (Sprach-, Fax, Email- und andere) 'Nachrichten verfügbar' Informationen
    • Unterstützung für EMS 4.x und 5.x (Bilder, Melodien, Animationen, ...); mit EMS 5.x auch farbig bzw. polyphon
    • Unterstützung für Smart Messaging (wie z.B. Klingeltöne, Operator-Logos, Visitenkarten), auch für TDMA1)
    • Unterstützung für Nokia, EMS, Motorola und Sagem Klingeltönen1)
    • Unterstützung für Siemens OTA Download Service1)
    • beliebig konfigurierbar für weitere Dienstanbieter mit TAP, EMI/UCP, SMPP, OIS, CIMD, ES 201 912, MM1, MM7, MMS-F, EAIF oder GSM 07.05.
    • vorkonfiguriert für viele Provider in der ganzen Welt
    • Nachricht kann über Kommandozeile oder aus einer Datei angegeben werden (Batchmodus möglich)
    • einfache Installation und Konfiguration
    • einfache Einbindung in Email-Systeme, WWW-Server und/oder SNMP Überwachung
    • Gerät (Modem, ISDN-Karte) wird zwischen den Wahlversuchen nicht blockiert
    • Konfiguration für die meisten Modems, ISDN-Karten und ISDN-Terminaladapter möglich
    • Gebührenanzeige (CAPI)
    • Definition für mehrere Geräte möglich (falls eines nicht verfügbar ist, wird das nächste benutzt)1)
    • Führen einer Protokolldatei (Logdatei) bzw. Protokollierung über syslogd1)
    • auswertbare Returncodes (Errorcode oder Anzahl erfolgreich bearbeiteter Nachrichten)1)
    • Definition der Anzahl der Wahlwiederholungen möglich1)
    • frei definierbare Pause zwischen den Wahlversuchen1)
    • Telefonbuch: anstelle der Telefonnummer können definierte Kürzel benutzt werden1)
    • Versenden von Nachrichten an mehrere Empfänger auch über verschiedene Provider1)
    • Versenden von Nachrichten an mehrere Empfänger während einer einzelnen Verbindung1)
    • Multithreaded
    • Format von ein-/ausgehenden Nummern kann über Filter mit reguläre Ausdrücke automatisch gewandelt werden

    Die Server-Edition hat alle Eigenschaften der Standard-Edition und zusätzlich noch folgende:

    • kann unter Windows als Service installiert werden1)
    • über einen Userexit kann automatisch ein externes Programm oder eine Funktion in einem SharedObject bzw. einer DLL gestartet werden, wenn eine Nachricht empfangen oder gesendet wurde1)
    • Nachrichten können gespoolt und im Servermodus mit einer minimalen Verbindungsanzahl, z.B. während günstiger Tarifzeiten, versendet werden1)
    • Blackliste (Nummern an die keine Nachrichten gesendet werden dürfen)1)
    • Allow- und Denyliste (Benutzer die SendXMS benutzen bzw. nicht benutzen dürfen)1)

    Die Professional-Edition hat alle Eigenschaften der Server-Edition und zusätzlich noch folgende:

    • Unterstützung für SSL (OpenSSL notwendig)1)
    • Unterstützung für SMS über HTTP1)
    • Unterstützung für MM71)
    • Unterstützung für EAIF1)
    • Unterstützung für asynchrone Kommunikation (Windowing)1)
    • Unterstützung von Großkundenzugänge1)
    • Unterstützung für permanente Verbindungen1)
    • Unterstützung für KeepAlive (Enqire Link)1)
    • Compiler für WAP-Push Nachrichten (WAP/OMA Client Provisioning, OMA (SyncML) Device Management (Package#0), OMA Digital Rights Management (DRM) 1.0, OMA E-Mail Notification (EMN), MMS Notification, Service Indication (SI), Service Loading (SL), (Nokia/Sony Ericsson) OTA Service Settings, Bookmarks und SyncML Settings)1)
    • Datendurchsatz (pro Session) mit X.25 oder TCP/IP über 500 SMS/Sekunde möglich, mit GSM (pro Modem) bis zu 1200 SMS/Stunde und mit X.31 (D-Kanal) bis zu 18000 SMS/Stunde.
    • Empfangen von SMS's (GSM, UCP, SMPP, OIS, CIMD, ETSI ES 201 912, MM1, MM7, MMS-F, EAIF)1)
    • X.25-Unterstützung1)
    • X.31-Unterstützung1)
    • TCP/IP-Unterstützung (IPv4 und IPv6)1)
    • UDP-Unterstützung1)
    • RFC1086 (TCP/IP-X.25 Bridge) Unterstützung1)
    • Priorisierung von Spooldatein möglich
    • Schreiben von Statistik-/Abrechnungsdaten1)
    • Spool-API (standardmäßig werden Spooldateien im Filesystem abgelegt/gelesen; durch dieses API kann dies z.B. auf eine Datenbank umgelenkt werden) 1)
    • Implementierung des Spool-APIs via ODBC enthalten1)

    Die VXMSC-Edition hat alle Eigenschaften der Professional-Edition und zusätzlich noch folgende:

    • Funktionalität (entsprechend der Professional-Edition) einer virtuelle SMSC/MMSC (VXMSC)1)
    • kann als XMS-Gateway benutzt werden1)
    • Annahme/Verteilung von XMS von/an beliebige andere Programme per UCP, SMPP, CIMD, OIS, MM7 oder EAIF1)

    1)nur in der registrierten Version verfügbar

  4. Installation

    Laden sie für das zu verwendende Betriebssystem ein entsprechendes Installationsarchiv auf ihren Rechner und führen sie die geladene Datei (ggf. (Unix) mit gunzip -N oder mit gzip -dN entpacken) aus. Sofern Java auf dem System installiert ist wird ein Java Installer mit graphischer Oberfläche ansonsten ein Konsoleinstaller gestartet. Durch Aufruf von 'setup -java' bzw. 'setup -console' kann man den jeweiligen Installationsmodus vorgeben. Das Installationsprogramm fragt nach den wichtigsten Parametern (um SendXMS zu testen) und kopiert die benötigten Dateien in ein anzugebendes Verzeichnis.

    Nachdem setup durchlaufen wurde sollten Sie die Datei sendxms.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 SendXMS unbedingt, ob der Auflegemechanismus (ESCAPE-Sequenz oder DTR zurücksetzen) funktioniert.

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

  5. Konfiguration

    In der Regel müssen nach der Installation mit dem Setup-Programm keine weiteren Konfigurationen zur Nutzung von SendXMS durchgeführt werden. SendXMS bietet jedoch die Möglichkeit durch seine Konfigurationsdateien und durch Kommandozeilenparameter das Programm auf die unterschiedlichsten Anwendungsfälle anzupassen. Alle Dateien müssen in UTF-8 kodiert sein.

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

    In der Datei sendxms.pro werden die verschiedenen Provider (welches Provider benutzt TAP, UCP, ..., über welche Telefonnummer wird die Nachricht versendet und welche Vorwahlen haben die Nummern des entsprechenden Providers) konfiguriert.

    In der Datei sendxms.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 indem auch das Programm selbst liegt. Dies gilt nicht, wenn per Kommandozeile explizit eine Konfigurationsdatei angegeben wurde, bzw. wenn die Umgebungsvariable SendXMS gesetzt wurde. In letzterem Fall wird der Wert dieser Umgebungsvariable als Verzeichnis für die Konfigurationsdateien benutzt.

    1. sendxms.cfg

      Hier wird im Kapitel [SendXMS] die allgemeine Konfiguration vorgenommen, im Kapitel [Device] werden die Kommunikationsschnittstellen konfiguriert und im Kapitel [XMSGUI] wird die Nutzung des graphischen Frontends konfiguriert. Des Weiteren können in den Kapiteln [ALLOW] und [DENY] Benutzerbeschränkungen, bzw. in [BLACKLIST] Telefonnummern an die keine Nachrichten versendet werden dürfen, definiert werden. Im Kapitel [SSL] wird die optionale Einbindung von OpenSSL konfiguriert und im Kapitel [PPP] werden Konfigurationen für PPP Verbindungen vorgenommen. In dem Kapitel [ODBC] werden die Zugangsdaten zu einer ODBC-Datenbank zur Nutzung des integrierten ODBC-Spool-APIs angegeben. In dem Kapiteln [Audio Mime Types], [Image Mime Types] und [Video Mime Types] werden Dateiextensions für einen entsprechenden MIME Typ definiert.

      Das Kapitel [Device] kann in der registrierten Version beliebig oft wiederholt werden. Beim Verbindungsaufbau wird immer versucht das als erstes definierte Device zu benutzen. Ist dieses Device gesperrt oder reagiert nicht, so wird das nächste benutzt. Sollte der Verbindungsaufbau mit allen Devices nicht funktionieren, so wird eine Pause (REDIALDELAY) eingelegt und das Ganze wiederholt (REDIALCOUNT).

      Im Kapitel [SendXMS] stehen die im Folgenden aufgeführten Schlüsselworte zur Verfügung. Jedes Schlüsselwort muss in einer neuen Zeile stehen.

      BinLocks=false
      Gibt an, ob die Lockdatei binär (true) oder ASCII angelegt wird (nur UNIX).

      CountryCode=+49
      Gibt die internationale Länderkennung (z.B. '+49' für Deutschland oder '+1' für Nord-Amerika) an. Dieser Parameter muss unbedingt korrekt angegeben werden, damit SendXMS eine zu wählende Nummer richtig bilden kann (ist dieser Wert falsch angegeben, wird bei der Anwahl einer nationalen Nummer die Länderkennung mitgewählt, was nicht funktioniert).

      DontReassemble=true
      Verhindert das Zusammensetzen von ankommenden langen Kurznachrichten (die in mehreren Teilnachrichten empfangen werden).

      InternationalPrefix=00
      Gibt eine Ziffernfolge an, mit welcher ein '+'-Zeichen am Anfang einer Telefonnummer ersetzt wird und anhand derer eine internationale Nummer identifiziert werden kann (default: "00").

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

      LogFile=sendxms.log
      Gibt das Logfile an, in dem SendXMS alle Aktionen protokolliert werden. Wird der Dateiname ohne Pfad angegeben, so wird die Datei im Installationsverzeichnis angelegt. Wenn der Dateiname die Zeichenfolge $h oder $d enthält wird diese Zeichenfolge durch die aktuelle Stunde (yyyymmddhh) bzw. durch den aktuellen Tag (yyyymmdd) ersetzt und eine entsprechende Logdateien generiert. Zusätzlich wird (nicht unter Windows) ein symbolischer Link (gleicher Name aber ohne Datum) auf die generierte Logdatei angelegt, welcher bei gleichbleibendem Namen immer auf die aktuelle Logdatei zeigt. Wird als LogFile=syslog (nur Unix) angegeben, so wird über den syslog-Dämon protokolliert (Facility=LOG_DAEMON, Priority=LOG_INFO; wichtige Alarmmeldungen zusätzlich noch mit Priority=LOG_ALERT). Mit LogFile=/dev/null kann das Logging unterdrückt werden. [nur in der registrierten Version]

      LogMsgText=false
      Unterdrückt das Loggen des Textes der Nachrichten (standardmäßig eingeschaltet). [nur in der registrierten Version]

      LogLevel=255
      Mit diesem Parameter kann angegeben werden welche Informationen in der Logdatei protokolliert werden. Der angegebene Wert wird als Bitfeld interpretiert, wobei z.Zt. folgende Bits interpretiert werden:

      Bit0informative Meldungen (z.B. dass eine Nachricht empfangen wurde)
      Bit1Warnungen (z.B. dass die SMSC das Gültigkeitsdatum überschrieben hat)
      Bit2Fehler (z.B. dass ein Provider nicht verfügbar ist)
      Bit3die Meldung 'looking for messages on...' bei Verwendung eines GSM-Geräts

      [nur in der registrierten Version]

      LongDistancePrefix=0
      Gibt eine Ziffer(-nfolge) an, die für ein nationales Ferngespräch angegeben werden muss (wenn z.B. die internationale Nummer +49 721 9109550 innerhalb von Deutschland gewählt werden soll muss die Länderkennung '+49' durch den LONGDISTANCEPREFIX 0 ersetzt werden).

      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.

      MNP= (siehe auch Mobile Number Portability (MNP))
      Gibt eine Funktion in einer DLL bzw. in einem shared object an, mit welcher überprüft wird ob eine Empfängernummer portiert wurde oder nicht.

      Phone=
      Gibt die eigene Telefonnummer, von der die Nachricht ausgeht, an.

      Priority=-5
      Hiermit kann die Priorität, mit der SendXMS ausgeführt wird, gesetzt werden. Der Bereich geht von -15 (hohe Priorität) bis 15 (niedrige Priorität).

      RcZeroIfOK=true
      Gibt an, dass der Returncode im Falle eines erfolgreichen Versendens gleich 0 sein soll. Dies ist unter Unix so üblich und sollte bei einer Einbindung in z.B. ein Emailsystem verwendet werden. Ist dieser Parameter nicht gesetzt, wird die Anzahl der übertragenen Nachrichten bzw. ein Fehlercode zurück gegeben.

      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, wie oft 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 kein 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 Sendeversuch gewartet wird. In der Zeit bis zum nächsten Wahlversuch wird das Modem wieder freigegeben. [nur in der registrierten Version]

      SentDir=unsent
      Gibt ein Verzeichnis an, in welchem versendete Nachrichten archiviert werden. [nur in der registrierten Version]

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

      SpoolFilePrefix=
      Gibt einen Prefix zur Erzeungung von Spooldateien an. Standardmäßig generiert SendXMS Spooldateien deren Name die Form sms* hat und bearbeitet alle Dateien in SPOOLDIR. Wenn aber dieser Parameter definiert ist werden die Spooldateien mit diesem Prefix angelegt und es werden auch nur noch Dateien mit diesem Prefix im Spoolverzeichnis bearbeitet.

      StatisticDir=statistic
      Gibt ein Verzeichnis an, in welchem Statistik-/Billingdaten gespeichert werden. Die Daten werden im CSV-Format abgespeichert und können einfach mit einer Datenbank, Tabellenkalkulation oder anderer Software ausgewertet werden. Folgende Daten werden abgespeichert:

      • Datum/Zeit (z.B.: "2007-11-16, 10:42:07")
      • Art der Nachricht (0=gesendet, 1=empfangen, 2=Fehler)
      • Nummer des Empfängers
      • Nummer des Absenders
      • Nummer des Segments einer mehrteiligen Nachricht
      • Anzahl des benötigten Segmente bei einer mehrteiligen Nachricht
      • DCS der Nachricht
      • MessageClass der Nachricht
      • TariffClass der Nachricht
      • Dauer der Übertragung in Sekunden (Verweildauer der Nachricht im Spoolverzichnis)
      • Angabe ob die Nachricht (vom Userexit) abgelehnt wurde (1) oder nicht (0)

      [nur in der registrierten Version]

      UnsentDir=unsent
      Gibt ein Verzeichnis an, in welchem Nachrichten die nicht gesendet werden konnten archiviert werden. [nur in der registrierten Version]

      TimeFormat=%Y%m%d%H%M%S
      Definiert das Format in dem Zeitwerte (ValidityPeriod oder DeferredDelivery) angegeben werden. Die Syntax entspricht den Formatangaben der C-Funktion strftime. Siehe auch Zeitversetztes Senden und Gültigkeitsdauer. [nur in der registrierten Version]

      User=
      Gibt eine optionale UserID zur Benutzung in Verbindung mit Remote-CAPI (intern) an.

      UserExitVersion=
      Gibt die Version des verwendeten Userexitformats an. Ist dieser Parameter nicht definiert wird automatisch die aktuellste definierte Aufrufsyntax benutzt. Fall sich die Aufrufsyntax des Userexits in einer neuen SendXMS-Version ändert (neue Parameter) wird dieser Definition eine neue Versionsnummer zugeordnet. Mit diesem Parameter kann ausgewählt werden, welche Syntax benutzt werden soll, so dass bei einer Erweiterung von SendXMS keine Änderungen am Userexit notwendig werden. In diesem Handbuch wird jeweils nur die aktuelle Version des Userexits beschrieben.

      ACHTUNG: Ab dem nächsten Major-Release wird dieser Parameter nicht mehr unterstützt.

      Im Kapitel [XMSConv] stehen die im Folgenden aufgeführten Schlüsselworte zur Verfügung. Jedes Schlüsselwort muss in einer neuen Zeile stehen.

      WapInitiatorUri=
      Gibt einen Standardwert für den WSP Parameter X-WAP-Initiator-URI an. Dieser Parameter wird nur von XMSConv beim compilieren von WAP-Push Nachrichten verwendet (nur in Professional-Edition und höher).

      WapPushFlag=
      Gibt einen Standardwert für den WSP Parameter PushFlag an. Dieser Parameter wird nur von XMSConv beim compilieren von WAP-Push Nachrichten verwendet (nur in Professional-Edition und höher).

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

      Address=
      Gibt die IP-Adresse eines ISDN-Routers bei Verwendung einer RemoteCAPI (BINTEC-Erweiterungen) an.

      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. (wird nicht in Verbindung mit TAPI benutzt)

      BC=
      Bei Nutzung von CAPI2.0 kann (i.d.R. nicht notwendig) hier ein Wert für Bearer Capability (jeweils einzelne Bytes in Hex-Format (zwei Hexziffern)) angegeben werden. Die Kodierung kann der CAPI-Dokumentation entnommen werden.

      BChannelInfo=
      Bei Nutzung einer Standleitung mit CAPI2.0 werden hier die Leitungsparameter angegeben (jeweils einzelne Bytes in Hex-Format (zwei Hexziffern)). Die Kodierung kann der CAPI-Dokumentation entnommen werden.

      Beep=AT#VTS=[960,0,6]
      Gibt ein Kommando zum Generieren eines Signaltons (bei Aufnahme einer Sprachnachricht mit Voice-Modem) an. (wird nicht in Verbindung mit TAPI benutzt)

      ConnectTimeout=40
      Gibt die Zeitdauer (in Sekunden) an, die das SendXMS nach dem Wählen auf das Zustandekommen einer Verbindung wartet.

      Controller=
      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. (wird nicht in Verbindung mit TAPI benutzt)

      Device=
      Gibt den Anschluss an, an dem das Modem hängt (unter Unix z.B. /dev/ttyS0). (Achtung: unter Unix muss darauf geachtet werden, dass der Besitzer der Datei sendxms berechtigt ist das Device zu benutzen).

      Wird die Kommunikation mittels CAPI 2.0 abgewickelt, so wird hier der Pfad zur Capi-DLL/-Shared-Object (Windows, Linux) bzw. zum CAPI-Device (Unix) angegeben.

      Unter Windows wird zunächst versucht das angegebene Device exclusiv zu öffnen. Sollte dies nicht gelingen (z.B. weil der Port von RAS benutzt wird) wird versucht das Device über die TAPI-Schnittstelle zu öffnen. Durch diese Vorgehensweise hat man die Möglichkeit ein Modem mit anderen Applikationen zu teilen, es stehen jedoch nicht alle Funktionen zur Verfügung, wenn das Device jedoch über die TAPI-Schnittstelle geöffnet wird.

      DeviceType=Modem
      Gibt die Art der verwendeten Hardware (Modem, Voice-Modem, GSM 07.05, CAPI 2.0, CAPI 2.0 (BINTEC), RFC1086 oder SERIAL) 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). (wird nicht in Verbindung mit TAPI benutzt)

      DialSuffix=
      Bei manchen Modems/ISDN-Terminaladaptern muss 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. (wird nicht in Verbindung mit TAPI benutzt)

      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 Fluchtsequenz 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.

      HLC=
      Bei Nutzung von CAPI2.0 kann (i.d.R. nicht notwendig) hier ein Wert für High Layer Capability (jeweils einzelne Bytes in Hex-Format (zwei Hexziffern)) angegeben werden. Die Kodierung kann der CAPI-Dokumentation entnommen werden.

      IMSI=
      Gibt die IMSI der verwendeten SIM-Karte an (dient der Zuordnung zwischen Provider-Definition und GSM-Gerät).

      Init=ATQ0E1V1L1
      Gibt das Initialisierungskommando für das Modem an. Das Modem muss auf

      • Echo an
      • Antwort an
      • Antwort als Text

      eingestellt werden. (wird nicht in Verbindung mit TAPI benutzt)

      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. (wird nicht in Verbindung mit TAPI benutzt)

      KeepAlive=
      Gibt die maximale Anzahl Sekunden an, die ein GSM-Gerät inaktiv bleiben darf. Ist dieses Limit erreicht wird überprüft, ob das Gerät noch in das GSM-Netz eingebucht ist und ggf. wird das Gerät neu angemeldet (nur in Professional-Edition und höher).

      LineType=ANALOG
      Gibt an, ob es sich bei der Leitung um eine analoge (ANALOG), um eine digitale (ISDN), eine X.25 (X.25) oder eine X.31-Leitung (X.31) handelt. Dieser Parameter kann ebenfalls bei den Providerdefinitionen angegeben werden, wobei SendXMS automatisch ein passendes Device für einen entsprechenden Provider auswählt.

      LLC=
      Bei Nutzung von CAPI2.0 kann (i.d.R. nicht notwendig) hier ein Wert für Low Layer Capability (jeweils einzelne Bytes in Hex-Format (zwei Hexziffern)) angegeben werden. Die Kodierung kann der CAPI-Dokumentation entnommen werden.

      MsgDelay=<n>
      Gibt eine Anzahl von Sekunden an (z.B. 0.2), welche zwischen dem Versenden von zwei Nachrichten innerhalb von einer Verbindung gewartet wird (wird normalerweise nicht benötigt).

      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-Anschluss zugeordnet ist. Bei Verwendung einer Nebenstellenanlage also die interne Rufnummer. Wenn Sie hier keine oder eine falsche Nummer angeben kann es sein, dass 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 SendXMS ein spezielles Devices vorgegeben werden. Dies ist nur notwendig, wenn mehrere Devices konfiguriert sind und die automatische Deviceauswahl umgangen werden soll.

      RegisterNetwork=
      Gibt das Kommando an, mit dem sich ein GSM-Gerät bei einem Netz anmelden soll (default: AT+COPS=0). Dieses Kommando wird benutzt, wenn das GSM-Gerät beim Öffnen des Modems bei keinem Netz angemeldet ist bzw. wenn der Parameter KEEPALIVE definiert ist und das Modem zwischenzeitlich aus dem Netz ausgebucht wurde.

      OriginatingAddress=01234..
      Gibt die Absenderadresse (lokale Nummer) an.

      PacketLen=128
      Gibt die X.25-Paketlänge bzw. die X.31-Paketlänge (Standard: 128) an.

      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. (wird nicht in Verbindung mit TAPI benutzt)

      Password=
      Gibt ein optionales Passwort zur Benutzung in Verbindung mit Remote-CAPI (intern) an.

      PDUWithoutSCA=true
      Einige GSM-Modems benötigen eine PDU ohne vorgestellte SCA (in Kontrast zu GSM 07.05). Dieser Parameter ist z.B. für Siemens M1, Falcom A1 oder Xircom CreditCard notwendig, während er bei z.B. Siemens E10, S10, M20, Nokia DataCard, CardPhone oder Data Suite nicht gesetzt werden darf.

      Phone=
      Gibt die Anschlußnummer des entsprechenden Modems bzw. der in dem entsprechenden GSM-Modul verwendeten SIM an.

      PIN="1234"
      Gibt die PIN für Ihre SIM an (GSM-Device). Falls Sie eine GSM-Karte verwenden, bei welcher man keine PIN eingeben braucht/kann (AT+CPIN? funktioniert nicht), darf dieser Parameter nicht belegt werden. Bei manchen Devices muss die PIN in Hochkommata angegeben werden, wohingegen dies bei anderen Devices zu Fehlern führt.

      PlayDTMF=AT#VTS=
      Gibt ein Kommando zum Abspielen einer DTMF-Sequenz (numerische Zeichen) (nur Voice-Modem) an. (wird nicht in Verbindung mit TAPI benutzt)

      Port=2662
      Bei Verwendung einer RemoteCAPI (BINTEC-Erweiterungen) gibt dieser Parameter den PORT an, auf welchen der ISDN-Router konfiguriert ist.

      PowerOn=
      Gibt ein Kommando zum Einschalten eines GSM-Gerätes an (Default: AT+CFUN=1).

      PowerOff=
      Gibt ein Kommando zum Ausschalten eines GSM-Gerätes an (Default: AT+CFUN=0).

      PppInit=
      Gibt ein zusätzliches Initialisierungskommando für das Modem für PPP-Verbindungen an. Dieses Kommando erfolgt nach der Standardinitialisierung des Modems (GSM-Modules).

      PppMmsProfile=
      Gibt die Zeichenfolge an, die benötigt wird um eine PPP Verbindung über das MMS Profil aufzubauen (bei Verwenung eines GSM-Geräts). Ist dieser Parameter nicht gesetzt versucht SendXMS ihn automatisch zu bestimme bzw. verwendet den Standardwert *99***1#.

      Provider=
      Für ein GSM-Gerät können Sie hier einen standard Providernamen eintragen. Per default werden über ein GSM-Gerät eingehende Nachrichten in SpoolDir in einem Unterverzeichnis, welches der Nummer der verwendeten SMSC entspricht, abgelegt. Falls für das GSM-Gerät der Parameter Provider definiert ist wird statt der SMSC-Nummer ein Unterverzeichnis mit entsprechendem Namen verwendet (dies bedeutet, dass alle Nachrichten die über diese GSM-Gerät empfangen wurden in einem einzelnen Verzeichnis abgelegt werden).

      PUK="1234"
      Gibt den PUK für Ihre SIM an (GSM-Device). Falls Sie eine GSM-Karte verwenden, bei welcher man keine PIN eingeben braucht/kann (AT+CPIN? funktioniert nicht), darf dieser Parameter nicht belegt werden. Bei manchen Devices muss der PUK in Hochkommata angegeben werden, wohingegen dies bei anderen Devices zu Fehlern führt.

      Reset=ATZ
      Gibt das Kommando zum Zurücksetzen des Modems an (normalerweise ATZ).

      RtsCts=true
      Gibt an, dass die Hardwareflußkontrolle benutzt werden soll.

      SetMsn=
      Gibt ein (AT-) Kommando zum Setzen der MSN, EAZ, CallingPartyNumber an. Falls dieses Kommando definiert ist und eine MSN angegeben wurde, wird vor dem Verbindungsaufbau versucht die Nummer, über die die Verbindung aufgebaut werden soll, zu selektieren. Die MSN wird am Ende des Kommandos bzw. für den Platzhalter $msn eingesetzt.

      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. (wird nicht in Verbindung mit TAPI benutzt)

      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. (wird nicht in Verbindung mit TAPI benutzt)

      StopVoicemode=AT#CLS=0
      Gibt das Kommando an mit dem bei einem Voice-Modem der Voice-Modus beendet wird. (wird nicht in Verbindung mit TAPI benutzt)

      SuppressReinit=true
      Verhindert, dass ein Devices im Servermodus bei jedem Öffnen erneut initialisiert wird. Ist dieser Parameter gesetzt, so wird das Device nur beim ersten Öffnen initialisiert (nur im Servermodus). Hierdurch kann man einen wesentlich höheren Durchsatz erreichen. Der Parameter sollte nur benutzt werden, wenn sichergestellt ist, dass keine andere Applikation zwischenzeitlich auf das Device zugreift und u.U. die Einstellungen verändert.

      TEI=1
      Gibt den TEI (Terminal Endpoint Identifier; wird vom Netzbetreiber zugewiesen) an, der zum Verbindungsaufbau über X.31 verwendet werden soll.

      UseDChannel=true
      Gibt an, dass die Verbindung (X.31) über den D-Kanal erfolgen soll. Ist dieser Wert nicht oder gleich 0 gesetzt wird ein B-Kanal benutzt.

      VoiceCompression=ALAW
      Wenn dieser Parameter definiert ist werden aufgenommene Sprachnachrichten als WAV-Datei gespeichert und es können WAV-Dateien abgespielt werden, falls diese in einem unterstützten Format vorliegen. Z.Zt. werden die Formate ALAW (ISDN in Europa) und ULAW (ISDN in USA) unterstützt (8kHz, 1 Kanal, 8 Bit).

      VoiceReceive=AT#VRX
      Gibt das Kommando an mit dem bei einem Voice-Modem der Sprachempfangsmodus gestartet wird (Aufzeichnen von Sprachnachrichten). (wird nicht in Verbindung mit TAPI benutzt)

      VoiceTransmit=AT#VTX
      Gibt das Kommando an mit dem bei einem Voice-Modem der Sprachsendemodus gestartet wird (Abspielen von Sprachnachrichten). (wird nicht in Verbindung mit TAPI benutzt)

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

      WindowSize=2
      Gibt die Fenstergröße für X.25 (Standard: 7) bzw. die B3-Fenstergröße für X.31 (Standard: 2) an.

      X31Channels=0,0,1,1,0,0
      Gibt die zu verwendenden X.31-Kanäle an. Es werden durch Kommata getrennt die Werte für den

      • kleinsten eingehenden Kanal
      • größten eingehenden Kanal
      • kleinsten bidirektionalen Kanal
      • größten bidirektionalen Kanal
      • kleinsten ausgehenden Kanal
      • größten ausgehenden Kanal

      angegeben. Wird dieser Parameter nicht spezifiziert wird der Standard (0,0,1,1,0,0) verwendet, welcher in den meisten Fällen funktioniert.

      XonXoff=true
      Gibt an, dass die Softwareflußkontrolle benutzt werden soll.

      Im Kapitel [XMSGUI] stehen die im Folgenden aufgeführten Schlüsselworte zur Verfügung. Jedes Schlüsselwort muss in einer neuen Zeile stehen.

      cfgEditable=true
      Gibt an, ob die Datei sendxms.cfg von einem Endbenutzer des graphischen Frontends modifiziert werden darf (=true) oder nicht (=false). Selbst wenn dieser Parameter auf true gesetzt ist kann der Endbenutzer die Konfiguration nur modifizieren, wenn er auch Schreibrecht auf die Datei sendxms.cfg hat.

      proEditable=true
      Gibt an, ob die Datei sendxms.pro von einem Endbenutzer des graphischen Frontends modifiziert werden darf (=true) oder nicht (=false). Selbst wenn dieser Parameter auf true gesetzt ist kann der Endbenutzer die Providerdefinitionen nur modifizieren, wenn er auch Schreibrecht auf die Datei sendxms.pro hat.

      showLogfile=false
      Gibt an, ob ein Endbenutzer des graphischen Frontends die Logdatei von SendXMS anzeigen lassen kann (=true) oder nicht (=false). Selbst wenn dieser Parameter auf true gesetzt ist kann der Endbenutzer die Logdatei nur anzeigen lassen, wenn er auch Leserecht auf die Logdatei hat.

      In den Kapiteln [ALLOW] und [DENY] stehen die im Folgenden aufgeführten Schlüsselworte zur Verfügung. Jedes Schlüsselwort muss in einer neuen Zeile stehen. Es wird immer nur eine von beiden Listen benutzt, sind beide definiert so wird die ALLOW-Liste benutzt.

      User= Dieser Parameter kann mehrfach angegeben werden. Es wird jeweils eine UserID angegeben, welche SendXMS benutzen bzw. nicht benutzen darf. Werden im Kapitel [ALLOW] eine oder mehrere UserIDs angegeben, darf SendXMS nur von diesen Benutzern benutzt werden. Werden die UserIDs im Kapitel [DENY] angegeben, dürfen alle Benutzer, außer den aufgelisteten, das Programm benutzen.

      In dem Kapitel [BLACKLIST] stehen die im Folgenden aufgeführten Schlüsselworte zur Verfügung. Jedes Schlüsselwort muss in einer neuen Zeile stehen.

      Phone= Dieser Parameter kann mehrfach angegeben werden. Es wird jeweils eine Telefonnummer angegeben, an welche keine Nachrichten versendet werden sollen. Wenn die angegebene Nummer mit dem Zeichen '&' endet, so handelt es sich um einen Präfix, d.h. es werden alle Nummern gesperrt, die mit dem angegeben Wert beginnen. Die Nummern müssen in dem Format angegeben werden, wie sie auch zum Provider übertragen worden wären, d.h. es müssen mögliche Transformationen (siehe PREFIX) berücksichtigt werden.

      Das Kapitel [SSL] dient zur optionalen Integration von OpenSSL (i.d.R. nicht notwendig). Es stehen folgende Parameter zur Verfügung:

      AcceptSelfSignedCertificates=true
      Gibt an dass auch self-signed Zertifikate akzeptiert werden sollen.

      CALocation=
      Gibt an wo vertrauenswürdige CA Zertifikate (PEM coded) gespeichert sind. Dies kann ein Verzeichnis (ended mit /) oder eine Datei, welche mehrere Zertifikate enthalten kann, sein.

      CertFile=
      Gibt den Dateinamen ihres eigenen Zertifikats an.

      LibCrypto=
      Mit diesem Parameter kann der Name der crypto-Library (mit oder ohne Pfad) angegeben werden (Default ist libeay32.dll für Windows und libcrypto.so sonst).

      LibSsl=
      Mit diesem Parameter kann der Name der SSL-Library (mit oder ohne Pfad) angegeben werden (Default ist libssl32.dll für Windows und libssl.so sonst).

      Password=
      Gibt das Passwort (passphrase) ihres eigenen privaten Keys an (KeyFile).

      KeyFile=
      Gibt den Dateinamen ihres eigenen privaten Keys an (für ihr Zertifikat CertFile).

      Das Kapitel [PPP] dient zur Konfiguration von PPP Verbindungen (in den meisten Fällen nur für MM1-Verbindungen notwendig). Es stehen folgende Parameter zur Verfügung:

      IpUp=
      Gibt eine optionale Script-/Batchdatei (oder Executable) an, welche nach dem Herstellen einer PPP-Verbindung aufgerufen wird. Diese Datei kann genutzt werden um ein eigenes Roting zu definieren. Als Parameter werden folgende Daten übergeben:

      • IP-Adresse der Gegenstelle (MMSC)
      • IP-Adresse des lokalen PPP Interfaces
      • IP-Adresse des PPP-Servers

      NoDefaultRoute=true
      Mit diesem Parameter wird verhindert, dass beim Aufbau einer PPP-Verbindung eine Defaultroute über das eingerichtete PPP-Interface angelegt wird (andernfalls würde - solange die Verbindung offen ist - sämtlicher IP-Verkehr über dieses Interface geleitet werden). Ist dieser Parameter gesetzt wird stattdessen nur die Adresse der Gegenstelle über das PPP-Interface geroutet. Allerdings ist es hierfür notwendig, dass SendXMS unter dem root Account (bzw. unter Windows als Administartor) ausgeführt wird.

      pppd=
      Gibt den kompletten Pfad zu pppd an (nur Unix/Linux). Ist dieser Parameter nicht angegeben wird versuchet pppd über den standard PATH aufzurufen.

      Das Kapitel [ODBC] dient zur Angabe von optionalen Zugangsdaten zur Nutzung des integrierten ODBC-Spool-APIs (i.d.R. nicht notwendig). Es stehen folgende Parameter zur Verfügung:

      DSN=
      Gibt den DataSourceName der zu verwendenden ODBC-Verbindung an. Der DSN wird auf Systemeben (unter Unix z.B. in /etc/unixODBC/odbc.ini) konfiguriert.

      UID=
      Gibt die zu verwendende (ODBC) UserId an.

      PASSWORD=
      Gibt das zu verwendende (ODBC) Passwort an.

      LibOdbc=
      Mit diesem Parameter kann der Name der ODBC-Library (mit oder ohne Pfad) angegeben werden (Default ist libodbc32.dll für Windows und libodbc.so sonst).

      UseInternalSpoolApi=true
      Gibt an, dass die interne ODBC SpoolAPI-Implementierung genutzt werden soll.

      In dem Kapiteln [Audio Mime Types], [Image Mime Types] und [Video Mime Types] können Dateiextensions für einen entsprechenden MIME Typ definiert werden, z.B.:

      [Audio Mime Types]
      mid=audio/midi
      midi=audio/midi
      amr=audio/amr

    2. sendxms.pro

      Hier werden die verschiedenen Dienstanbieter konfiguriert. Für jeden Dienstanbieter muss 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öscht 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, dass das Modem zu V.42/LAPM gezwungen wird)

      AdcInFilter=
      Mit diesem Parameter kann ein Filter (bzw. bei mehrfacher Angabe eine Kette von Filtern) definiert werden, mit welchem eingehende Rufnummern (Empfänger) automatisch geprüft und ggf. umgeformt werden. Siehe auch Filter für Nummernformate.

      AdcOutFilter=
      Mit diesem Parameter kann ein Filter (bzw. bei mehrfacher Angabe eine Kette von Filtern) definiert werden, mit welchem ausgehende Rufnummern (Empfänger) automatisch geprüft und ggf. umgeformt werden. Siehe auch Filter für Nummernformate.

      Address=<ip-address>
      Dieser Parameter ist äquivalent zu dem Parameter PHONE, nur dass hier eine IP-Adresse für eine TCP/IP-Verbindung anstelle einer Telefonnummer angegeben wird. Optional kann durch ein Leerzeichen getrennt auch eine Portnummer angehängt werden. Dieser Parameter kann mehrfach angegeben werden. falls die erste Adresse nicht erreichbar ist wird die nächste verwendet.

      AddrNpi=9
      Gibt die NumberingPlanIdenticator an. Dieser Parameter wird in der Regel bei den Protokollen SMPP und UCP zur Nutzung mit Großkundenzugängen benötigt. Fragen Sie bei Ihrem Provider nach dem entsprechenden Wert.

      AddrTon=0
      Gibt den TypeOfNumber an. Dieser Parameter wird in der Regel bei den Protokollen SMPP und UCP zur Nutzung mit Großkundenzugängen benötigt. Fragen Sie bei Ihrem Provider nach dem entsprechenden Wert.

      AddressRange=
      Gibt den Address Range an (nur SMPP). Fragen Sie bei Ihrem Provider nach dem entsprechenden Wert.

      APN=
      Gibt den Access Point Name (MM1) an.

      AutoAlert=<telefonnummer>
      Dieser Parameter wird nur benutzt, wenn SendXMS im Servermodus läuft und mit dem Parameter -aRECEIVE (zum Lesen von ankommenden SMS) aufgerufen wurde. In diesem Fall gibt der Parameter eine Telefonnummer an, für welche bei jedem Abarbeiten der SMS-Warteschlange des entsprechenden Providers der Servicerechner angerufen wird und nach ankommenden Nachrichten aktiv gefragt wird (dies kann bei kurzen Abfrageintervallen per X.25/X.31 teuer werden). Bei CIMD muss zwar eine Telefonnummer angegeben werden, diese hat jedoch keine Bedeutung. Bei Verwendung von UCP kann die Telefonnummer in der Form <pid>:<phone> angegeben werden.

      AutoConnect=<n>
      Dieser Parameter wird nur benutzt, wenn SendXMS im Servermodus läuft und mit dem Parameter -aRECEIVE (zum Lesen von ankommenden SMS) aufgerufen wurde. In diesem Fall gibt der Parameter eine Anzahl Sekunden an, die nach einem automatischen Verbindungsaufbau zum Servicerechner des entsprechenden Providers auf ankommende Nachrichten gewartet wird. Der Unterschied zu AUTOALERT ist der, dass kein überflüssiger Datenverkehr stattfindet und somit bei z.B. X.25/X.31-Verbindungen keine Kosten entstehen.

      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 muss 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 framing 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 muss 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, network 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 muss 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

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

      BC=
      Bei Nutzung von CAPI2.0 kann (i.d.R. nicht notwendig) hier ein Wert für Bearer Capability (jeweils einzelne Bytes in Hex-Format (zwei Hexziffern)) angegeben werden. Die Kodierung kann der CAPI-Dokumentation entnommen werden. Dieser Wert, falls vorhanden, überschreibt den Wert in sendxms.cfg.

      BDataLen=1024
      Gibt die maximale Länge von Datenblöcken (CAPI; hat nichts mit der Länge einer Nachricht zu tun) an. Der Wert muss im Bereich zwischen 128 und 2048 liegen.

      CallUserData=
      Gibt die CallUserData für eine X.25/X.31-Verbindung an. Es können max. 16 Byte jeweils als zwei Hex-Ziffern kodiert angegeben werden.

      ChargedParty=
      Über den angegebenen Wert wird gesteuert, wer die Gebühren für eine MMS übernimmt (Sender, Recipient, Both oder Neither).

      ChargedPartyID=
      Gibt die Adresse einer dritten Partei an, welche die MMS bezahlen soll.

      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 muss 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-ADAPTATION 56 kbit/s rate adaptation
      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 sendxms.cfg.

      Device=
      Hier kann der Name eines Devices (so wie er in sendxms.cfg unter NAME definiert ist) angegeben werden um die Nutzung des entsprechenden Devices für diesen Provider zu erzwingen.

      Detach=
      Gibt an, dass die entsprechenden Providerdefinition gesondert behandelt wird. In Abhängigkeit des angegebenen Parameterwertes wird für diesen Provider ein eigener Kindprozess gestartet um eine permanente Verbindung aufzubauen. Gültige Parameterwerte sind:

      Send Es wird eine permanente Verbindung aufgebaut über welche Nachrichten versendet werden (kein Empfang).
      Receive Es wird eine permanente Verbindung aufgebaut über welche Nachrichten empfangen werden (kein Versand).
      All Es wird eine permanente Verbindung aufgebaut über welche Nachrichten gesendet und empfangen werden.
      Ignore Diese Providerdefinition wird nur bei expliziter Auswahl mit dem Kommandozeilenparameter -p verwendet. Ansonsten (Servermodus ohne explizite Providerangabe) wird dieser Provider komplett ignoriert.
      AcceptXME (nur mit LineType=TCP) Es wird auf eingehende Verbindungen einer XMSC auf der (den) angegebenen Adresse(n)/Port(s) gewartet. Ggf. wird eine XME Session gestartet.
      AcceptVXMSC (nur mit VXMSC-Edition und LineType=TCP) Es wird auf eingehende Verbindungen einer XME auf der (den) angegebenen Adresse(n)/Port(s) gewartet. Ggf. wird eine VXMSC Session gestartet.

      Nachrichten können nur Empfangen werden falls der Serverprozess mit dem Parameter -aRECEIVE aufgerufen wurde.

      DetachQueueDelay=
      Falls für den entsprechenden Provider ein eigener Kindprozess gestartet wird (siehe auch Detach=) kann mit diesem Parameter ein eigener QueueDealy Wert definiert werden. Standardmäßig wird der Kindprozess mit dem gleichen QueueDelay (Komanndozeilenparameter -q<n>) gestartet wie der aufrufende Serverprozess.

      DetachUserexit=
      Falls für den entsprechenden Provider ein eigener Kindprozess gestartet wird (siehe auch Detach=) kann mit diesem Parameter ein eigener Userexit angegeben werden. Standardmäßig wird der Kindprozess mit dem gleichen Userexit (Komanndozeilenparameter -u) gestartet wie der aufrufende Serverprozess.

      DialSuffix=
      Bei manchen Modems/ISDN-Terminaladaptern muss 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 sendxms.cfg.

      DirName=
      Hier kann ein Unterverzeichnis (in ReceiveDir, SpoolDir, ...) angegeben werden, welches anstelle des Providernamens benutzt wird. Mit dieser Option kann man erreichen, daß verschieden Providereinträge (mit verschiedenen Namen) das gleiche Spoolverzeichnis verwenden.

      ErrorFilter=
      Bei Verwendung eines SMS über HTTP Dienstanbieters kann man mittels dieses Parameters einen Filter definieren, welcher anhand der vom Dienstanbieter zurückgegebenen Antwort (die nicht standardisiert ist) erkennt, ob der Versand gescheitert ist (der Filter passt auf die Antwort) oder erfolgreich war (der Filter passt nicht). Wenn der Dienstanbieter z.B. folgende Antwort auf einen Senderequest sendet:
      ERROR: invalid recipient
      kann man z.B. mit folgendem Filter den Misserfolg erkennen:
      MsgIdFilter=/^ERROR:(.*)/\1/
      (siehe auch Filter für Nummernformate und SMS über HTTP).

      HexDigits=lower
      Gibt an, dass bei binären Nachrichten die Hex-Ziffern als Kleinbuchstaben übertragen werden (per Default werden Großbuchstaben benutzt).

      HLC=
      Bei Nutzung von CAPI2.0 kann (i.d.R. nicht notwendig) hier ein Wert für High Layer Capability (jeweils einzelne Bytes in Hex-Format (zwei Hexziffern)) angegeben werden. Die Kodierung kann der CAPI-Dokumentation entnommen werden. Dieser Wert, falls vorhanden, überschreibt den Wert in sendxms.cfg.

      KeepAlive=
      Gibt die maximale Anzahl Sekunden an, die die Leitung inaktiv bleiben darf. Ist dieses Limit erreicht wird eine Protokollaktion ausgelöst um zu testen ob die Verbindung noch besteht und um zu verhindern, dass diese automatisch abgebaut wird. Dieser Wert muss größer als der ProtocolTimeout sein (nur ab Professional-Edition).

      Kennung=
      Gibt die Vielnutzerkennung für einen TMobil-Vielnutzerzugang (CityRuf, Skyper) an (nur ab Professional-Edition).

      LineType=ANALOG
      Gibt an, ob es sich bei der Telefonnummer/Adresse das Providers um einen analogen (ANALOG), einen digitalen (ISDN), eine TCP/IP Verbindung (TCP), eine PPP (PPP_TCP), einen X.25- (X.25) oder einen X.31-Anschluss (X.31) handelt. Dieser Parameter kann ebenfalls bei den Devicedefinitionen angegeben werden, wobei SendXMS automatisch ein passendes Device für einen entsprechenden Provider auswählt. LLC=
      Bei Nutzung von CAPI2.0 kann (i.d.R. nicht notwendig) hier ein Wert für Low Layer Capability (jeweils einzelne Bytes in Hex-Format (zwei Hexziffern)) angegeben werden. Die Kodierung kann der CAPI-Dokumentation entnommen werden. Dieser Wert, falls vorhanden, überschreibt den Wert in sendxms.cfg.

      MapUserValue=
      Mit diesem Parameter können benuterdefinierte Parameter anbieterspezifischen Erweiterungen zugeordnet werden. Manche Protokolle bieten spezielle Parameter zur Unterstützung von anbietersepzifischen Erweiterungen an. So können z.B. bei SMPP (ab 3.4) die optionalen TLV-Parameter 0x1400 bis 0x4000, bei CIMD die Tags 600 bis 900 und bei UCP (EMI) die XSer Type of services 0x0E bis 0xFF hierzu verwendet werden. Wenn der zu definierende Dienstanbieter eine solche Erweiterung anbietet kann dies mit diesem Parameter definiert werden. So kann z.B. mittels MapUserValue=TariffOption|0x1500 für einen SMPP-Dienstanbieter angegeben werden, dass der Inhalt des benutzerspezifischen Spoolfileparameters TariffOption mittels des optionalen TLV-Parameters 0x1500 ausgetauscht (gesendet und/oder empfangen) wird. Bei Verwendung von MM1, MM7 oder EAIF können hiermit zusätzliche HTTP-Header-Parameter angegeben werden (z.B. MapUserValue=uaprofile|X-WAP-PROFILE um ein User Agent Profile mitzusenden bzw. zu empfangen). Bei Verwendung eines SMS über HTTP Anbieters können auch die standard Spoolfileparameter den vom Anbieter vorgegebene URI-Parametern zugeordnet werden (nur ab Professional-Edition).

      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 Verbindung aufgebaut. Dies ist nötig, da einige Provider nur eine begrenzte Anzahl Nachrichten pro Verbindung zulassen. Im Servermodus bewirkt dieser Parameter, dass max. entsprechend viele Nachrichten bearbeitet werden und der Server dann zum nächsten Provider wechselt.

      MaxThroughput=
      Gibt (optional) den maximalen Durchsatz für einen bestimmten Provider an. Standardmäßig bezieht sich der Wert auf den max. Durchsatz pro Sekunde. Dies kann verändert werden indem durch einen Schrägstrich (/) getrennt ein anderes Zeitintervall angegeben wird (z.B.: MaxThroughput=100 bedeutet max. 100 Nachrichten/Sekunde; MaxThroughput=1200/60 bedeutet max. 1200 Nachrichten/Minute).

      MessageMode=
      Gibt bei SMPP 3.4 den Message Mode (zwischen 1 und 3) an oder bei UCP 4.0 ob es sich um eine 'SingleShot' Nachricht handelt (0 oder 1).

      MM7Schema=
      Gibt bei das für MM7 verwendete Schema an (z.B.: http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4).

      MNP= (siehe auch Mobile Number Portability (MNP))
      Hier steht die Portierungskennung des entsprechenden Netzes. Anhand dieser Portierungskennung wird - falls in der cfg-Datei eine MNP-Funktion definiert wurde - beim Aufruf von SendXMS 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.

      ModemInit=
      Gibt ein zusätzliches Initialisierungskommando an. Dieses Kommando wird nach dem entsprechenden Kommando aus der Datei sendxms.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.

      MsgDelay=<n>
      Gibt eine Anzahl von Sekunden an, welche zwischen dem Versenden von zwei Nachrichten innerhalb von einer Verbindung gewartet wird (wird normalerweise nicht benötigt).

      MsgIdFilter=
      Bei Verwendung eines SMS über HTTP Dienstanbieters kann man mittels dieses Parameters einen Filter definieren, welcher aus der vom Dienstanbieter zurückgegebenen Antwort (die nicht standardisiert ist) die vergeben MsgId extrahiert. Wenn der Dienstanbieter z.B. folgende Antwort auf einen erfolgreichen Senderequest sendet:
      SUCCESS: SMS was scheduled for delivery (MessageIdentifier=30106CCE)
      kann man z.B. mit folgendem Filter die MsgId extrahieren:
      MsgIdFilter=/^SUCCESS: SMS was scheduled for delivery \(MessageIdentifier=([0-9,A-F]*)\)/\1/
      (siehe auch Filter für Nummernformate und SMS über HTTP).

      MsgLen=
      Hier wird die maximale Länge einer Nachricht (Anzahl Zeichen bzw. Anzahl Sekunden) angegeben. Bei dem Protokoll SKYPER 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 dem Protokoll SKYPER wird dieser Parameter automatisch bestimmt.

      MTBillingInterface=
      Gibt an ob und welches Interface zum MT Billing benutzt werden soll. Momentan stehen 'IC3S' und 'Whatever Mobile' zur Auswahl.
      IC3S bedeutet, dass die T-Mobile Micropayment Platform benutzt wird. Der Parameter bewirkt, dass das Feld TariffClass (BillingIdentifier) vor dem Versenden geparst wird und ggf. die Platzhalter $y und $z durch die max. Anzahl von Teilsegmenten bzw. die Nummer des aktuellen Teilsegments ersetzt werden.
      Whatever Mobile bedeutet, dass das Billing-Interface des Dienstanbieters Whatever Mobile GmbH benutzt wird. Wie die Nachrichten gebillt werden kann man über den Parameter MTBillingMode genauer definieren.

      MTBillingMode=
      Über den angegebenen Wert kann man steuern, ob kein Nachrichtensegment (1), alle Nachrichtensegmente (2), nur das erste Segment (3) oder nur das letzte Segmente (4) gebillt werden sollen.

      Network=
      Gibt den Netzwerktype (GSM, TDMA, ...) an.

      NoHttpAuthentication=true
      Standardmäßig wird bei einer HTTP-Verbindung (sofern eine UsereId oder ein Password definiert wurde) die Basic Access Authentication verwendet. Da die meisten Anbieter von SMS über HTTP Diensten diese Authentifizierung nicht unterstützen kann man dies mit diesem Parameter verhindern (siehe auch SMS über HTTP) (nur ab Professional-Edition).

      NoKeepAlive=
      Gibt die maximale Anzahl Sekunden an, die die Leitung inaktiv bleiben darf. Ist dieses Limit erreicht wird die Verbindung abgebrochen. Dieser Wert muss größer als der ProtocolTimeout sein (nur ab Professional-Edition).

      NotificationAddress=
      Gibt eine Adresse an, an die die SMSC eine Bestätigung senden soll [nur UCP Funktion 51; nicht in Standard-Edition].

      NotificationPID=<n>
      Gibt den Typ der NotificationAddress an [nur UCP Funktion 51; nicht in Standard-Edition].

      Folgende Wert sind für <n> definiert:

      0100Mobile Station
      0122Fax Group 3
      0131X.400
      0138Menu over PSTN
      0139PC appl. over PSTN (E.164)
      0339PC appl. over X.25 (X.121)
      0439PC appl. over ISDN (E.164)
      0539PC appl. over TCP/IP

      NotificationType=<n>
      Gibt an, welche Bestätigungen gesendet werden sollen [nur UCP Funktion 51, CIMD, SMPP und OIS].

      Folgende Wert sind in UCP, CIMD und OIS für <n> zulässig:

      0none (default value)
      1Delivery Notification (DN)
      2Non-delivery Notification (ND)
      3DN + ND
      4Buffered message notification (BN)
      5BN + DN
      6BN + ND
      7all

      Für SMPP 3.4 können beliebige Werte gemäß der Protokollspezifikation angegeben werden.

      OadcInFilter=
      Mit diesem Parameter kann ein Filter (bzw. bei mehrfacher Angabe eine Kette von Filtern) definiert werden, mit welchem eingehende Rufnummern (Absender) automatisch geprüft und ggf. umgeformt werden. Siehe auch Filter für Nummernformate.

      OadcOutFilter=
      Mit diesem Parameter kann ein Filter (bzw. bei mehrfacher Angabe eine Kette von Filtern) definiert werden, mit welchem ausgehende Rufnummern (Absender) automatisch geprüft und ggf. umgeformt werden. Siehe auch Filter für Nummernformate.

      OkFilter=
      Bei Verwendung eines SMS über HTTP Dienstanbieters kann man mittels dieses Parameters einen Filter definieren, welcher anhand der vom Dienstanbieter zurückgegebenen Antwort (die nicht standardisiert ist) erkennt, ob der Versand erfolgreich war (der Filter passt auf die Antwort) oder nicht (der Filter passt nicht). Wenn der Dienstanbieter z.B. folgende Antwort auf einen Senderequest sendet:
      SUCCESS: SMS was scheduled for delivery (MessageIdentifier=30106CCE)
      kann man z.B. mit folgendem Filter den Erfolg erkennen:
      MsgIdFilter=/^SUCCESS:(.*)/\1/
      (siehe auch Filter für Nummernformate und SMS über HTTP).

      OriginatingAddress=01234..
      Gibt die Absenderadresse (Telefonnummer) an, die für diesen Provider benutzt werden soll (nur ab Professional-Edition und nur wenn vom Provider/Device unterstützt).

      Parity=NONE
      Gibt die Art der Parität an (NONE, EVEN oder ODD). Dieser Wert, falls vorhanden, überschreibt den Wert in sendxms.cfg.

      Password=
      Für manche Provider wird ein Passwort benötigt (bei UCP ist dies der Wert für Authentication Code), 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, dass 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.

      PIN=
      Gibt die PIN für einen TMobil-Vielnutzerzugang (CityRuf, Skyper) an (nur ab Professional-Edition).

      PLMN=
      Gibt die PLMN für den MM1 Provider an (dient der Zuordnung zwischen Provider-Definition und GSM-Gerät).

      Port=<n>
      Gibt den zu verwendenden Port (auf dem Zielrechner) für eine TCP/IP-Verbindung an. Der Port wird Ihnen vom Provider mitgeteilt.

      PPPPhone=
      Hier wird die Rufnummer angegeben, über welche eine PPP Verbindung aufgebaut werden soll. Dieser parameter wird nur in Verbindung mit LineType=PPP_TCP benötigt.

      Prefix=
      Hier steht die Vorwahl des entsprechenden Netzes. Anhand dieser Vorwahl wird beim Aufruf von SendXMS mit einer Telefonnummer (kein Alias aus dem Telefonbuch) überprüft, zu welchem Netz die entsprechende Telefonnummer gehört. Wenn PREFIX=* angegeben wird werden alle Nummern als gültig erkannt. Dieser Parameter kann pro Provider mehrfach definiert werden.

      Priority=
      Gibt eine Standardpriorität an, welche verwendet werden soll falls einer Nachricht nicht explizit eine Priorität (-I) zugeordnet wurde.

      Protocol=
      Hier muss TAP (Telocator Alphanumeric Protocol), TAPAIM (TAP-Protokoll mit AIM-Erweiterungen), SMPP (Short Message Peer to Peer; Logica), CIMD (Computer Interface to Message Distribution; Nokia), UCP (Universal Computer Protocol; CMG), OIS (Open Interface Specification; SMS2000 SEMA), ES201912_1, ES201912_2, GSM (Global System for Mobile communication), HTTP (SMS über HTTP (proprietär); siehe auch SMS über HTTP), MM1 (Multimedia Messaging protocol 1) MM7 (Multimedia Messaging protocol 7), EAIF (External Application Interface; Nokia), UUS (User-User-Signaling), DTMF, Skyper oder CITYRUF stehen. UUS ist ein Euro-ISDN Dienstmerkmal, welches nicht in allen Ländern unterstützt wird und mit SendXMS nur über CAPI 2.0 genutzt werden kann. DTMF ist für Pagerdienste gedacht, bei welchen man über Tastentelefone Nachrichten für den Empfänger eingeben kann (CAPI 2.0 oder Voicemodem). Im Falle von Skyper muss das Modem so konfiguriert werden, dass XON/XOFF-Zeichen nicht gefiltert werden (zur Gegenstelle übertragen werden).

      Bei UCP kann zusätzlich zwischen verschiedenen Sendefunktionen gewählt werden, indem in eckigen Klammern eingerahmt der zu verwendende Funktionscode (UCP[01], UCP[30] oder UCP[51]; im Falle eines Großkundenzugangs ist i.d.R. die Funktion 51 zu benutzen) angegeben wird. Bei den Funktionen 30 und 51 wird die Telefonnummer des Absenders und - falls definiert - eine Validity Period übertragen. Diese Funktionen werden aber nicht von allen Providern unterstützt.

      Bei SMPP (ab Version 3.4) kann mit SMPP[Transceiver] angegeben werden, dass die Verbindung zur SMSC in jedem Fall mit einem BIND_TRANSCEIVER, anstelle eines BIND_TRANSMITTERs oder BIND_RECEIVERs, eröffnet wird (nur in seltenen Fällen nötig, wenn die SMSCs nur BIND_TRANSCEIVER akzeptiert).

      Bei CIMD kann zusätzlich zwischen einer SMSC und einer USSD (CIMD[USSD]) Verbindung unterschieden werden.

      Bei OIS kann zusätzlich zwischen dem General Access (OIS) und dem Direct Access (OIS[Direct]) unterschieden werden.

      Bei MM1 kann zwischen MM1 über HTTP (MM1[HTTP] oder einfach MM1) (MMS-F oder WAP 2.0) und MM1 über WSP (MM1[WSP]) (WAP 1.x) gewählt werden.

      ProtocolVersion=
      Dient zur Unterscheidung von verschiedenen Protokollversionen (z.B. Protocol=CIMD, ProtocolVersion=2.0).

      ProtocolTimeout=60
      Gibt die Zeitdauer (in Sekunden) an, die das Programm auf eine Antwort vom Servicerechner wartet. Wenn dieser Wert nicht definiert wurde werden folgende Standardwerte benutzt, welche über den vom Protokoll vorgeschriebenen Grenzen liegen:

      Für X.25, X.31 und TCP/IP-Verbindungen immer 10 Sekunden, ansonsten:

      CIMD 30 Sekunden
      ES201912_1 10 Sekunden
      ES201912_2 10 Sekunden
      GSM 160 Sekunden
      OIS 30 Sekunden
      SMPP 30 Sekunden
      TAP 30 Sekunden
      UCP 120 Sekunden

      ReconnectDelay=<n>
      Gibt eine Zeitspanne (in Sekunden) an, in der nach einem Verbindungsabbau keine neue Verbindung zu diesem Provider aufgebaut werden kann (nur im Servermodus).

      SaveToADCSubdir=true
      Gibt an, dass eingehende Nachrichten jeweils in einem Unterverzeichnis für die Zielrufnummer gespeichert werden.

      SourceAddress=<w.x.y.z>
      Gibt die zu verwendende IP-Adresse (des Ausgangsrechners) für eine TCP/IP-Verbindung an.

      SourcePort=<n>
      Gibt den zu verwendenden Port (auf dem Ausgangsrechner) für eine TCP/IP-Verbindung an. Der Port wird Ihnen vom Provider mitgeteilt.

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

      SystemDescription=
      Gibt eine SystemDescription (zwischen 0 und 9) an (nur für CIMD), welche standardmäßig benutzt wird.

      SystemId=
      Gibt die System ID an (nur SMPP). Fragen Sie bei Ihrem Provider nach dem entsprechenden Wert.

      SystemType=
      Gibt den System Type an (nur SMPP). Fragen Sie bei Ihrem Provider nach dem entsprechenden Wert.

      TariffClass=
      Gibt eine TariffClass (CIMD, zwischen 0 und 99) bzw. den BillingIdentifier (UCP 4.0) an, welche standardmäßig benutzt wird.

      ThrottledDelay=
      Gibt eine Anzahl Sekunden an, die nach einem Throttled-Error (nur SMPP) gewartet wird bis weitere Protokollaktionen gestartet werden.

      TimeOffset=
      Gibt die Zeitdifferenz zwischen der lokalen Zeit und der der SMSC in Minuten an. Mit diesem Parameter werden die Werte für Validity- und DeferredDelivery korrigiert (nur bei UCP und CIMD; die anderen Protokolle unterstützen direkt verschiedene Zeitzonen).

      TransTable=tap.ctt
      Gibt eine Zeichenübersetzungstabelle an (siehe Zeichenübersetzungstabellen).

      UCP60Password=
      Falls von einem UCP-Provider die Passwort-Option benutzt wird, wird hier das Passwort angegeben, welches zum Beginn einer Sitzung mit der UCP-Funktion 60 übertragen wird. Dies ist i.d.R. nur - wenn überhaupt - bei Großkundenzugängen notwendig. In diesem Fall muss auch noch der Parameter USEUCP60=true gesetzt werden.

      URI=
      Gibt den URI für einen HTTP Post Request (z.B. MM1, MM7, EAIF) an. Für eingehende Verbindungen muss die von der Gegenstelle angeforderte URI /SendXMS/<provider> (<provider> entspricht dem Namen des Providereintrags) lauten.

      UseAimCharacterTranslation=true
      Schaltet die erweiterte Zeichensatzkodierung ein (nur TAPAIM) ein.

      UseOtoA=true
      Schaltet die Benutzung des OTOA Parameters (nur UCP) ein. Dieser Parameter wird für alphanumerische und internationale Absendenummern benötigt, aber zumindest von D2 nicht über den öffentlichen Zugang unterstützt.

      UserId=
      Für manche Provider (CIMD oder UCP (Funktion 60)) wird eine UserID benötigt, welche hier angegeben werden kann. Im Falle von UCP kann die UserId in der Form <opid>:<userid> (aber auch einfach nur <userid>) angegeben werden.

      UseUCP60=true
      Gibt an, dass vor dem Versenden von SMS eine Sitzung (mit UCP-Funktion 60) eröffnet werden muss. Weiterhin sollte der Parameter UCP60PASSWORD gesetzt werden.

      VASID=
      Gibt die Identifizierung der Applikation an.

      VASPID=
      Gibt die Identifizierung des P für den MMS Relay/Server an.

      WaitAfterConnect=
      Bei manchen Providern (mit UCP-Protokoll) muss 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.

      WindowSize=
      Gibt die max. Anzahl von Nachrichten an, welche gleichzeitig gesendet werden können ohne auf eine entsprechende Bestätigung warten zu müssen (Default=1). Gegenüber der synchronen Übertragung (nach jeder übertragenen Nachricht wird auf die entsprechende Bestätigung gewartet) ergibt dies eine bessere Performance (nur ab Professional-Edition).

      WspEncodingVersion=1.3
      Setzt die WSP Encoding-Version z.B. bei Benutzung von EAIF oder MM1.

      Beispiel

      [D1]
      Phone=01712092522
      Protocol=TAP
      Prefix=+49171
      MsgType=ALPHANUMERIC
      MsgLen=160
    3. sendxms.pbk

      Hier können zu den einzelnen in sendxms.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]
      max=01711234567 ; Max Müller
  6. Zeichenübersetzungstabellen

    Da die verschiedenen von SendXMS unterstützten Protokolle per Definition verschiedene Zeichensätze verwenden und viele Provider diese Zeichensätze nochmals modifizieren, bietet SendXMS die Möglichkeit für jeden Provider eine eigen Übersetzungstabelle 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 einzelne Zeichen wird je eine Zeile mit drei durch Komma getrennte 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 in den ein vom Provider empfangenes Zeichen zurückgewandelt wird.
    Der vom Provider benutzte Code (zweite Spalte) kann wiederum aus mehreren Zeichen (HEX-Zeichenpaaren) bestehen. Wenn diese Hex-Zeichenpaare durch einen Schrägstrich (/) getrennt sind bedeutet dies, dass das Ausgangszeichen in mehrere Zeichen gewandelt wird (Escapesequenzen; z.B. extended GSM-Zeichensatz). Wird kein Schrägstrich angegeben, so wird das Ausgangszeichen durch mehrere Zeichen beschrieben (entspricht aber weiterhin einem einzelnen Zeichen; z.B. CIMD-Kodierung). Als Beispiel verweisen wir auf die in der Installation enthaltenen Dateien gsm.ctt und cimd.ctt.

  7. Filter für Nummernformate

    Da bei manchen Verbindungen zu einer SMSC/MMSC die übertragenen Nummern ein ganz bestimmtes Format haben müssen (z.B. immer im internationalen Format, internationales Format ohne führende '00' oder nationales Format) bietet SendXMS die Möglichkeit pro Providerdefinition verschiedene Filter zu definieren. Durch Mehrfachangabe können ganze Ketten aufgebaut werden, welche in der angegebenen Reihenfolge abgearbeitet werden, bis ein Filter auf das entsprechende Datum (z.B. die Zielrufnummer) passt. Es lassen sich sowohl für die Zielrufnummer als auch für die Absendenummer Filter(-listen) definieren, sowohl für eingehende Nachrichten als auch für ausgehende Nachrichten. So ist es z.B. möglich dass beim Versenden einer Nachricht die Zielrufnummer (falls die SMSC dies benötigt) automatisch immer in ein internationales Format ohne ein führendes '+' bzw. ohne führende '00' umwandeln zu lassen. Der Benutzer kann die Zielrufnummer in einem beliebigen Format (z.B. 0049..., +49... oder 0...) angeben. Bei eingehenden Nachrichten kann man ggf. Filter definieren, welche grundsätzlich ein '+' vor jede eingehende Zielrufnummer setzen.

    Ein Filter wird als regulärer Ausdruck (POSIX 1003.2) angegeben. Der Filter besteht immer aus zwei Teilen, welche durch einen Delimiter ('/') getrennt angegeben werden. Der erste Teil des Filter ist der reguläre Ausdruck (RE). Falls dieser RE auf das Datum (Zielrufnummer oder Absendenummer) passt, wird das Datum durch den im zweiten Teil angegebenen Ausdruck ersetzt. Innerhalb des zweiten Ausdrucks können feste Ziffernfolgen und/oder Rückwärtsreferenzen angegeben werden. Eine Rückwärtsreferenz wird in der Form \<n> angegeben, wobei <n> Werte zwischen 1 und 9 annehmen kann. Die Rückwärtsreferenz \1 bezieht sich auf den ersten Teilausdruck (erste öffnende Klammer) im RE.

    Hier einige Beispiele:

    AdcOutFilter=/^(\+|00)([0-9]*)/\2/
    AdcOutFilter=/^(0)([0-9]*)/49\2/
    Diese Filter bewirken, dass vor dem Versenden einer Nachricht überprüft wird ob die Zielrufnummer im internationalen Format (+... oder 00...) angegeben ist (erster Filter) oder im nationalen Format (0...) (zweiter Filter). Wenn der erste Filter passt wird die Nummer mittels \2 in eine international Nummer ohne Prefix (ohne + bzw. 00) gewandelt. Wenn der erste Filter nicht passt wird der zweite Filter geprüft und falls dieser passt (Nummer beginnt mit einer 0) wird mittels 49\2 der Nummer ohne die führende 0 die Zeichenfolge '49 vorangestellt.
    Aus +491711234567, 00491711234567 oder 01711234567 wird also jeweils 491711234567.
    Aus +123456789 wird 123456789.

    AdcOutFilter=/^(\+49|0049|0)(164|168|1691)([0-9]*)/\3/
    Dieser Filter bewirkt, dass vor dem Versenden einer Nachricht überprüft wird ob die Zielrufnummer eine der deutschen Vorwahlen 0164, 0168 oder 01691 (im internationalen oder im nationalen Format) hat. Falls der Filter zutrifft wird die komplette Vorwahl gelöscht.
    Aus +491681234567 oder 01681234567 wird also jeweils 1234567.
    Aus +123456789 wird +123456789 (bleibt unverändert).

    AdcInFilter=/^(\+491|00491)([0-9]{5})(0*)/\2/
    Dieser Filter bewirkt, dass bei eingehenden Nummern (Zielrufnummern), welche mit +491 oder 00491 beginnen, 5 weitere Ziffern haben und mit einer beliebigen Anzahl Nullen enden die 5 Ziffern (Kurzwahl) ausgefiltert werden.
    Aus +49112345000, 00491123450 oder +49112345 wird also jeweils 12345.
    Aus +112345000 wird +112345000 (bleibt unverändert).

  8. Sprachnachrichten

    SendXMS kann außer mit Mobiltelefonen und Pagern auch mit "gewöhnlichen" Telefonen kommunizieren und Sprachnachrichten abspielen bzw. aufnehmen. Hierzu ist es nötig ein Voicemodem oder CAPI 2.0 zur Kommunikation zu benutzen. In der Providerdatei (sendxms.pro) sind Einträge zur Sprachkommunikation vordefiniert. Um eine Sprachnachricht abzuspielen muss die entsprechende Nachricht im nativen Kodierungsformat des zu benutzenden Devices vorliegen (diese Formate unterscheiden sich leider zwischen den verschiedenen Modemherstellern). Um eine Nachricht in einem anderen Format abzuspielen müssen entsprechende Konvertierungsprogramme vorgeschaltet werden. Solche Konvertierungsprogramm sind in großer Zahl frei erhältlich (z.B. sox oder mgetty+sendfax). Zum Abspielen einer Sprachnachricht wird SendXMS genau wie zum Versenden einer Textnachricht aufgerufen, nur dass explizit der vordefinierte Provider VOICE angegeben werden muss:

    sendxms -pVOICE 07246942484 -fvoice.dat

    oder

    sendxms -pVOICE 07246942484 < voice.dat

    In beiden Fällen wird die angegeben Nummer angerufen und die Sprachnachricht, die unter der Datei voice.dat gespeichert ist, abgespielt.

    Bei Verwendung von CAPI 2.0 können WAV-dateien direkt abgespielt werden, wenn Sie im aLaw oder uLaw Format mit 8 kHz, 1 Kanal und 8 Bit vorliegen. Bei anderen Geräten muss die Nachricht im nativen Kodierungsformat es Gerätes vorliegen, welches man am Besten mit SendXMS selbst mit folgendem Aufruf aufnimmt:

    sendxms -pVOICE 07246942484 -fvoice.dat -aRECEIVE

  9. Server-Modus

    In der registrierten Version (ab Server-Edition) von SendXMS gibt es einen zusätzlichen Server-Modus (-q<n>). Mit diesem haben Sie die Möglichkeit eine SendXMS-Instanz laufen zu lassen, welche in regelmäßigen Abständen ein Spoolverzeichnis kontrolliert und eventuell vorhandene Nachrichten versendet. Hierdurch ist es möglich Nachrichten zu sammeln und zusammen, innerhalb einer einzelnen Verbindung, zu versenden, was die Performance erhöht und Geld spart. Sobald eine SendXMS-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 SendXMS aber auch, unabhängig davon ob ein Server läuft oder nicht, dazu gebracht werden, die Nachrichten zu spoolen bzw. sie direkt zu versenden.

    Ggf. (z.B. bei Verwendung eines GSM-fähigen Devices bzw. in Verbindung mit einem Großkundenzugang) ist es auch möglich Nachrichten (und Notifications (DLRs)) zu empfangen (SIM auslesen) und zu speichern (-aRECEIVE).

    Um Nachrichten zu spoolen, kann man einfach SendXMS aufrufen oder die Spooldateien selbst generieren (z.B. durch ein kleines Programm; Datei währen der Generierung exklusiv sperren). Die Spooldateien müssen in dem Verzeichnis <SPOOLDIR> (aus sendxms.cfg) abgelegt werden, wobei es in diesem Verzeichnis für jeden Provider ein Unterverzeichnis (mit gleichem Namen wie in sendxms.pro definiert) gibt. Die Spooldateien müssen UTF-8 kodiert sein und sollten mit der Zeile
    ; encoding=UTF-8
    beginnen. Pro Nachricht wird jeweils eine eigene Spooldatei angelegt. Im Folgenden ist eine Beispielspooldatei angegeben:

    ; encoding=UTF-8
    [D1]
    Count=0
    Phone=491711234567
    Split=10
    XMS=Dies ist eine Beispielspooldatei.

    Folgende Schlüsselworte werden interpretiert (die meisten sind optional):

    Action=
    Gibt den Type der Anforderung an. Mögliche Werte sind SEND, DELETE, RECEIVE, QUERY (Kommandozeilenparameter -a).

    AddCodes=
    AddInfo=
    AddCodes und AddInfo beinhaltet ggf. zusätzliche protokollspezifische Informationen und werden wie folgt belegt:

    negative response
    ProtokolladdCodesaddInfo
    GSMerror code"CME ERROR" or "CMS ERROR"
    CIMDError Code (900)Error Text (901)
    SMPPCommand Status
    OISresult
    UCPEc (error code)
    MM1StatusCodeStatusText
    MM7StatusCodeStatusText
    EAIFStatusCodeStatusText
    status report
    ProtokolladdCodesaddInfo
    GSMTP-StatusTP-Service-Center-Time-Stamp; TP-Discharge-Time
    CIMDstatus code (061); status error code (062)discharge time (063)
    SMPPmessage_status; Error_codedone_date
    OISSM status; delivery failure reasoncompletition/intermediate time
    UCPDst; Rsn
    MM1'DeliveryReport' oder 'ReadReply': (Read)Status; StatusExtension
    MM7'DeliveryReport' oder 'ReadReply': MMStatus; MMStatusExtension
    EAIF'DeliveryReport' oder 'ReadReply': (Read)Status; StatusExtension

    AllowAdaptations=
    Gibt an ob VASP eine Adaptierung des Inhalts einer MMs erlaubt (true oder false).

    ChargedParty=
    Gibt an welcher Seite eine MMS berechnet werden soll (Sender, Receiver, Both, Neither oder ThirdParty).

    ChargedPartyID=
    Die Adresse einer dritten Partei die eine MMS bezahlen soll.

    Count=
    Gibt die Anzahl der bisherigen Sendeversuche an. Falls die Nachricht nicht erfolgreich übertragen werden kann wird dieser Parameter von SendXMS automatisch erhöht, bis er das erlaubte Maximum (RetryCount) erreicht hat.

    Date=
    Gibt den ServiceCenterTimeStamp (z.B.: Tue, 09 Jan 2001 11:22:19 +0000) an.

    DCS=
    Gibt das zu verwendende DataCodingScheme (dezimal) an (siehe GSM 03.38).

    DeferredDelivery=
    Gibt Datum/Uhrzeit an, wann die Nachricht von der SMSC/MMSC ausgeliefert werden soll (Kommandozeilenparameter -D). Siehe auch Zeitversetztes Senden und Gültigkeitsdauer.

    Device=
    Gibt das zu verwendende Device an (Kommandozeilenparameter -d).

    DistributionIndicator=
    Gibt an ob der Inhalt einer MMS verteilt werden darf (true oder false).

    LocalId=
    Gibt die UserID des Absenders (default) oder eine eindeutige (lokale) Id für die Nachricht an (Kommandozeilenparameter -o). Dieser Parameter hat nichts mit der Absendernummer (die beim Empfänger angezeigt wird zu tun) und kann für interne Zwecke benutzt werden.

    MessageMode=
    Gibt bei SMPP 3.4 den Message Mode (zwischen 1 und 3) an oder bei UCP 4.0 ob es sich um eine 'SingleShot' Nachricht handelt (0 oder 1).

    MmsMessageClass=
    Gibt bei MMS den Wert der Nachrichtenklasse (X-Mms-Nessage-Class) an.

    MsgId=
    Gibt die MsgID einer Nachricht an (Kommandozeilenparameter -G). Die MsgID wird von der SMSC/MMSC vergeben und wird z.B. zum Löschen einer Nachricht oder zur Statusabfrage benötigt.

    MSN=
    Gibt die zu verwendende MSN an (Kommandozeilenparameter -m, nur bei ISDN).

    OriginatingAddress=
    Gibt die Absendernummer an, die beim Empfänger angezeigt wird (Kommandozeilenparameter -O).

    Phone=
    Gibt die Empfängernummer an.

    PID=
    Gibt den zu verwendende ProtocolIdentifier (dezimal) an (siehe GSM 03.40).

    ReplyPathRequest=1
    Gibt an ob der Parameter ReplyPathRequest gesetzt werden soll (Kommandozeilenparameter -R).

    Priority=
    Gibt die Priorität der Nachricht an (Kommandozeilenparameter -I).

    ReplaceIfPresent=1
    Gibt an, dass eine alte Nachricht an die gleiche Zieladresse überschrieben werden soll (nur SMPP).

    ServiceCode=
    Gibt den ServiceCode der MMS an.

    ServiceDescription=
    Gibt einen Wert zwischen 0 und 99 an, welcher zur Abrechnung verwendet werden kann (nur CIMD).

    ServiceType=
    Gibt den service_type der Nachricht an (nur SMPP).

    Split=
    Gibt die max. Anzahl von SMS an, in die die angegebene Nachricht zerlegt werden soll (Kommandozeilenparameter -N). Ggf. kann dieser Parameter auch angeben (z.B. bei einem Userexitaufruf), dass es sich bei dem angegebenen Inhalt um das n-te Segment einer mehrteiligen Nachricht handelt. In diesem Fall wird der Parameter im Format x/y/z angegeben, wobei x die Anzahl der benötigten Segmente, y die Nummer des aktuellen Segments und z eine Referenznummer (bei allen Segmenten einer einzelnen Nachricht gleich) angibt.

    StartTime=
    Gibt Datum/Uhrzeit an, wann die Nachricht an das SMSC/MMSC übertragen werden soll (Kommandozeilenparameter -S). Siehe auch Zeitversetztes Senden und Gültigkeitsdauer.

    StatusReportRequest=1
    Gibt an ob der Parameter StatusReportRequest gesetzt werden soll (Kommandozeilenparameter -F).

    Subject=
    Gibt das Subject einer MMS an (Kommandozeilenparameter -U).

    TariffClass=
    Gibt eine TariffClass (CIMD, zwischen 0 und 99) bzw. den BillingIdentifier (UCP 4.0) an.

    UDH=
    Gibt (für SMS oder EMS) den UserDataHeader (ohne Längenangabe) an (Kommandozeilenparameter -U). Es sollte nur der Teil, der sich in jedem Segment einer langen Nachricht wiederholt, angegeben werden. Die Teile die nur in einem einzelnen Segment vorkommen (EMS) werden im Nachrichtentext innerhalb der Tags <UDH>...</UDH> angegeben (mit XMSConv können solche Inhalte einfach generiert werden).

    UsedDevice=
    Gibt das Device (aus sendxms.cfg) an, welches für die Nachricht benutzt wurde.

    UsedProtocol=
    Gibt das Protocol an, welches zur Übertragung der Nachricht benutzt wurde.

    ValidityPeriod=
    Gibt Datum/Uhrzeit an, bis wann die Nachricht gültig bleiben soll (Kommandozeilenparameter -V). Siehe auch Zeitversetztes Senden und Gültigkeitsdauer.

    XMS=
    Die Nachricht selbst. Die Zeichen <TAB> (0x09), <LF> (0x0A), <CR> (0x0D) und <Backslash> (0x5C) werden mit einer Escapesequenz als '\t', '\n', '\r' bzw. '\\' angegeben.

  10. ODBC Interface

    Standardmäßig werden Spooldateien von SendXMS im Dateisystem abgelegt/gesucht. Unabhängig von dem unten beschriebenen Spool-API besteht ab der Professional-Edition die Möglichkeit die Spooldateien per ODBC direkt mit einem Datenbanksystem auszutauschen. Hierzu müssen die Zugangsdaten für das verwendete Datenbanksystem in der cfg-Datei konfiguriert werden (siehe auch Konfiguration). Die ODBC Datenquelle muss natürlich auch auf Betriebssystemebene konfiguriert (und getestet) werden. Auf Datenbanksystemebene muss eine Datenbank mit den entsprechenden Tabellen und StoredProcedures angelegt werden. Nach erfolgreicher Installation von SendXMS befindet sich im Unterverzeichnis samples (im Installationsverzeichnis) die Datei spoolapi.mysql welche eine Datenbankdefinition zur Nutzung mit MySQL (und MyODBC) enthält und welche natürlich entsprechend an andere Datenbanksystem angepasst werden kann.

  11. Spool-API

    Standardmäßig werden Spooldateien von SendXMS im Dateisystem abgelegt/gesucht. Ab der Professional-Edition steht ein Spool-API zur Verfügung, über welches man dies abändern kann und somit z.B. in der Lage ist die Daten direkt mit einer Datenbank auszutauschen. Hierfür muss ein SharedObject (eine DLL) mit bestimmten Funktionen zur Verfügung gestellt werden. Der Name des SharedObjects (der DLL) wird mit dem Parameter SpoolAPI in der verwendeten .cfg-Datei angegeben (im Kapitel [SendXMS]). Wird die dort angegeben Datei nicht gefunden oder kann eine (oder mehrere) Funktion nicht geladen werden wird das standard Spool-API (Dateisystem) verwendet.

    Eine Implementierung des Spool-APIs muss threadsafe sein! Jede Funktion gibt im Falle einer erfolgreichen ausführung aine 0 als Returncode zurück. In der Initialisierungfunktion des Spool-APIs kann ein Zeiger auf eine interne Struktur zurückgegeben werden, welcher von SendXMS bei jedem weiteren Aufruf als Parameter verwendet wird. Über diese (beliebige) Struktur kann die Nutzung von globale Variablen vermieden werden.

    Das Spool-API bildet in etwa die Architektur nach, die auch mit dem Dateisystem benutzt wird. So wird auch hier zwischen SPOOLDIR, RECEIVEDIR, SENTDIR und UNSENTDIR unterschieden. Ob diese Unterscheidung tatsächlich in der Implementierung verwirklicht wird is irrelevant.

    Die Datenübergabe erfolgt im Spoolfileformat (UTF-8 kodiert) (siehe auch Server-Modus). Ob die Daten genau in diesem oder einem beliebigen anderen Format abgespeichert werden ist ebenfalls irrelevant.

    Datensätze müssen jeweils exklusiv (pro Thread) gelockt werden um eine Mehrfachbearbeitung zu verhindern.

    Folgende Funktionen müssen von einer Implementierung des Spool-APIs zur Verfügung gestellt werden:

    #define XMS_SPOOLDIR 0 /* messages to send */
    #define XMS_RECEIVEDIR 1 /* received messages */
    #define XMS_UNSENTDIR 2 /* messages which couldn't be sent */
    #define XMS_SENTDIR 3 /* already sent messages */

    /* initialise the API; returns a pointer to any Userdata and the version of the implemented API */
    int xmsSpoolApiInit (void **userdata, int *version);

    /* release locks, memory, ... */
    int xmsSpoolApiExit (void *userdata);

    /* generate a list with keys of messages in the given dir; return -1 if the list is empty */
    int xmsSpoolApiOpenMsgList (void *userdata, int dir, char *provider);

    /* lock the next messages, allocate memory (sets *xmsLen to the size of the message) and return it; return -1 if no more messages are available */
    int xmsSpoolApiGetNextMsg (void *userdata, int dir, char *provider, char *key, int maxKeyLen, char **xms, int *xmsLen);

    /* free the memory allocated in xmsSpoolApiGetNextMsg (but do not release the lock!)*/
    int xmsSpoolApiFreeMsg (char *xms);

    /* free the previously generated list */
    int xmsSpoolApiCloseMsgList (void *userdata, int dir, char *provider);

    /* unlock the given record */
    int xmsSpoolApiUnlock (void *userdata, int dir, char *provider, char *key);

    /* inserte a new record and returns the generated primary key */
    int xmsSpoolApiInsert (void *userdata, int dir, char *provider, char *key, int maxKeyLen, char *xms, int xmsLen);

    /* update the given record and unlocks it */
    int xmsSpoolApiUpdate (void *userdata, int dir, char *provider, char *key, char *xms, int xmsLen);

    /* delete the given record */
    int xmsSpoolApiDelete (void *userdata, int dir, char *provider, char *key);

  12. Userexit

    Mit dem Parameter -u kann ein Userexit angegeben werden. Dies ist eine Funktion in einem Shared-Object/DLL (empfohlen), ein externes Programm oder eine Batch-/Scriptdatei, die von SendXMS immer dann aufgerufen wird, wenn eine Nachricht erfolgreich versendet oder empfangen wurde, eine Nachricht nicht gesendet werden konnte, eine Verbindung auf- oder abgebaut wurde, ... Mit einem Userexit kann somit z.B. eine Integration einer Datenbanksystem, einer Netzwerküberwachung (z.B. mittels Net-SNMP), eines Billingsystems oder ähnlichem erfolgen.

    Wenn der Userexit ein externes Programm (also ein Executable oder eine Script-/Batchdatei) ist, erhält der Userexit als ersten und einzigen Eingabeparameter einen Code (cause), welcher angibt warum der Userexit aufgerufen wird (cause: 1 = Nachricht erfolgreich gesendet, 2 = Nachricht erfolgreich empfangen, 3 = Nachrichtenstatus empfangen, 4 = Nachricht wurde gelöscht, 98 = Verbindung wurde gestartet, 99 = Verbindung wurde beendet, 100 = Programm wurde (re-)initialisiert, -1 = Nachricht konnte nicht gesendet werden, -2 = Hardwareproblem). Über eine Pipe (stdin) erhält der Userexit zudem den kompletten Inhalt einer Spooldatei übergeben. Das Spooldateiformat ist im Kapitel Server-Modus beschrieben. Der Inhalt dieses Formats kann einfach interpretiert werden und beinhaltet alle zur Verfügung stehenden Informationen, welche beliebig vom Userexit verwendet werden können.

    Der Userexit darf keine Ausgaben auf stdout (ebenfalls eine Pipe) machen. Sollten Ausgaben nötig sein müssen diese über stderr erfolgen. Ein Userexit sollte immer möglichst zeitnah beendet werden, da es ansonsten zu Timeouts bei der Verbindung zu einer SMSC kommen könnte. Der Userexit muss als Returncode eine 0 zurückgeben, damit die Transaktion korrekt beendet werden kann. Wenn der Userexit eine Wert ungleich 0 zurück gibt wird die entsprechende Transaktion abgebrochen (also eine empfangene Nachricht nicht gespeichert und auf der SMSC/MMSC nicht gelöscht). Bei einem Returncode < 0 ist wird eine Standardfehlermeldung (abhängig vom verwendeten Protokoll) an den Kommunikationspartner zurückgegeben. Bei einem Returncode > 0 und < 256 ist wird dieser Wert als ein UCP-Errorcode interpretiert und in einen, vom verwendeten Protokoll abhängigen, entsprechenden Retunrcode übersetzt. Bei einem Returncode > 255 ist wird dieser als ein protokollspezifischer Returncode interpretiert und dieser Wert minus 255 zurückgegeben.

    Als Userexit kann auch eine Funktion (muss threadsafe sein) aus einer DLL bzw. aus einer so-Library (shared object) angegeben werden. Hierzu werden der Name der DLL bzw. der so-Library und der Name der Funktion durch ein Masterspace (@) getrennt (-u<dll>@<function>). Ein solcher Userexit bekommt den Inhalt der Spooldatei nicht über eine Pipe sondern direkt als zweiten Parameter (als Zeichenkette) übergeben. Der dritte Parameter gibt die Länge der Zeichenkette an. Der Inhalt des Spoolfiles (die übergebene Zeichenkette) darf NICHT verändert werden. Sollten Änderungen erforderlich sein müssen diese Änderungen (nur Schlüssel und Inhalt des geänderten Parameters) über den vierten Parameter zurück gegeben werden.

    Ein Prototyp für einen Userexit-Funktion in einem shared object ist:

    int UserExit (int cause, char *xms, int xmsLen, char *changedXms);

    Unter Windows sollte die Funktion wie folgt definiert werden:

    Borland-Compiler: int __stdcall __declspec(dllexport) UserExit (...)
    MS-Compiler: extern "C" int __declspec(dllexport) __stdcall UserExit (...)

    /* Der MS-Compiler dekoriert die Funktion. Dies bewirkt, dass beim Aufruf also _UserExit@<n> angegeben werden muss (oder eine def-Datei verwendet werden muss, welche die Funktion mit dem richtigen Namen exportiert). */

    Im Samples-Verzeichnis sind einfache Beispiele für einen Userexit enthalten.

  13. VXMSC-Edition

    Mit der VXMSC-Edition ist es möglich eine virtuelle SMSC/MMSC zu emulieren. Z.Zt. wird hierfür sowohl UCP, SMPP, CIMD, OIS als auch TAP über TCP/IP unterstützt (mit z.B. einem CISCO-Router ist ebenfalls X.25, FrameRelay, ... möglich). Der Funktionsumfang entspricht dem Umfang der auch von der SendXMS-Professional-Edition unterstützt wird. Mit der VXMSC-Edition kann man sich natürlich auch weiterhin ganz normal als Client (XME) mit einer beliebigen SMSC/MMSC verbinden.

    Eingehende Requests werden standardmäßig, wie bei den anderen Editionen auch, als Spooldateien (RECEIVEDIR) abgelegt. Die vom Anwender gewünschte Logik (z.B. die eines Gateways) muss entweder durch ein externes Programm oder (besser) durch einen entsprechenden Userexit implementiert werden. Der Userexit erhält gegenüber den anderen Editionen (siehe Userexit) auch folgende zusätzliche Status-Codes:

    6Nachricht wurde ausgeliefert
    7DeliverNotification wurde ausgeliefert
    129SubmitRequest wurde empfangen (Nachricht soll versendet werden)
    130StatusReportRequest wurde empfangen (Statusreport wird angefordert)
    131DeleteRequest wurde empfangen (vorhandener SubmitRequest soll gelöscht werden)
    133StartSessionRequest wurde empfangen
    134StopSessionRequest wurde empfangen

    Bei eingehenden Submit-Requests wird weiterhin die von der VXMSC-Edition vergebene MsgID als localId übergeben.

    Bei einem Verbindungsauf-/abbau und beim Starten/Stoppen einer Session enthalten die Felder adC bzw. oAdC die IP-Adresse und die Portnummer (lokal bzw. remote).

    Bei einem StartSessionRequest (UCP Funktion 60, SMPP BIND Operation oder CIMD Funktion 1) wird die UserId der XME in der Variablen localId und das Passwort in addCodes übergeben.

    Bei SMPP wird weiterhin in addInfo RECEIVER, TRANSMITTER oder TRANSCEIVER übergeben, je nachdem was für ein BIND-Request von der SME gesendet wurde. Die SME muss den SYSTEMTYPE=SendXMS verwenden.

    Bei MM7/EAIF muss die von der Gegenstelle angeforderte URI /SendXMS/<provider> (<provider> entspricht dem Namen des Providereintrags (der VXMSC) mit dem der Request bearbeitet wird) lauten. Bei eingehenden MM7/EAIF Requests enthält addInfo die VASPID und addCodes die VASID.

    Soll die Verbindungsanforderung abgelehnt werden muss der Userexit -1 als Rückgabewert übergeben.

    Um eingehende Verbindungen als VXMSC anzunehmen wird einfach in der entsprechenden Providerdefinition der Parameter Detach=AcceptVXMSC angegeben. Dies bewirkt, dass SendXMS an den angegebenen Adresse(n)/Port(s) auf eingehende Verbindungen gewartet wird und ggf. eine entsprechende VXMSC-Session gestartet wird. Alternativ können eingehende Verbindungen auch über Tools wie inetd oder xinetd gestartet werden. Dies wird z.B. (inetd) in der Datei /etc/inetd.conf (und /etc/services) wie folgt definiert:

    vxmscd     stream     tcp     nowait     root       /usr/local/sendxms/sendxms /usr/local/sendxms/sendxms -pTEST -aRECEIVE -Q0 -XHANDLE=-1

    ACHTUNG: meistens ist es besser von inetd aus ein Script aufrufen zu lassen, welches wiederum das o.g. Kommando aufruft. Falls in dem Kommando Dateien (userexit, cfg-Datei, ...) mitangegeben werden, sollte ein absoluter Pfad verwendet werden).

    Der hier angegeben Provider TEST muss natürlich in sendxms.pro mit dem Protokoll UCP[51], SMPP, CIMD, OIS oder TAP definiert werden (kein DETACH angeben).

    Damit die VXMSC Nachrichten zu einem Client übertragen kann müssen diese Nachrichten mit der Option -aDELIVER (Kommandozeile) gespoolt werden bzw. in den generierten Spooldateien jeweils die Zeile ACTION=DELIVER aufgenommen werden.

  14. Zeitversetztes Senden und Gültigkeitsdauer

    SendXMS bietet die Möglichkeit Nachrichten zu einem späteren Zeitpunkt, welcher über einen Kommandozeilenparameter (-S) angegeben wird, zu versenden. Wenn die Nachricht direkt gesendet (nicht gespoolt) werden soll, wartet SendXMS bis der angegebene Zeitpunkt erreicht ist und sendet die Nachricht dann. Falls die Nachricht gespoolt wird wird sie vom Server erst zu dem angegeben Zeitpunkt bearbeitet.

    Alternativ kann man zu einer Nachricht, welche sofort übertragen wird, mit dem Parameter -D einen Zeitpunkt angeben, zu dem die Nachricht von dem Servicerechner ausgeliefert werden soll.

    Mit dem Parameter -V kann man eine Gültigkeitsdauer für eine Nachricht definieren. Ist diese angegeben wird eine Nachricht automatisch gelöscht, falls sie bis zu dem angegebenen Zeitpunkt nicht an den Empfänger ausgeliefert werden konnte.

    Die entsprechenden Zeitpunkte werden jeweils entweder relativ (Anzahl Sekunden mit einem vorgestellten Plus-Zeichen (+), z.B. -S+3600) oder a