Toolmaker Produkt-Dokumentation
gsmtext - Fehlersuche und -behebung
Inhaltsübersicht
- 1 Lizenz prüfen
- 2 Bibliotheken und Verzeichnisse für gsmtext
- 3 Fehlersuche und -behebung auf IBM i
- 3.1 Version feststellen
- 3.1.1 IBM i-Version
- 3.1.2 gsmtext Version
- 3.2 Befehle zur Konfiguration
- 3.3 Start/Stop -Befehle
- 3.4 Kompletter ("sauberer") Neustart
- 3.5 Subsystem und Jobs
- 3.6 Logs/Protokolle/Dumps
- 3.6.1 Die SPLF GSM490P
- 3.6.1.1 CMS ERROR- Codes in der GSM490P
- 3.6.1.2 Der CREG-Befehl und seine Antworten
- 3.6.1.3 Der CNMI-Befehl: Umgang mit unverlangt eingehenden SMS
- 3.6.1.4 Standard-Fehlersituationen aus verschiedenen Support-Cases
- 3.6.1.5 Weitere links zum Thema GSM-Hayes-Befehle
- 3.6.1.6 Liste der GSM-Fehlercodes "CME Error xxx" und "CMS Error xxx"
- 3.6.2 SMTP / Email -Protokoll-Dateien im IFS, Verzeichnis /toolmaker/gsmtext/smtplog/
- 3.6.3 Protokoll-Dateien in Bibliothek GSMTEXT
- 3.6.4 Protokoll-Dateien im IFS
- 3.6.5 Einträge im Nachrichtenprotokoll (STRGSMT, Aw 5)
- 3.6.1 Die SPLF GSM490P
- 3.1 Version feststellen
- 4 Fehlersuche GSM-Einheit
- 5 Fehlersuche Comserver (Comport)
- 6 Support-Fälle
- 6.1 Email-Versand funktioniert nicht (18030213)
- 6.2 QSYSOPR zeigt "GSM Einheitenfehler"
- 6.3 SMS gehen nicht raus - GSM490P zeigt: +CREG 0,2 (18030226)
- 6.4 SMS gehen nicht raus - GSM490P zeigt: +CREG 0,3
- 6.5 Alle SMS bleiben im Status "N.verfügb." (19000003)
- 6.6 MSG-RNX0100 T/GSM320 – Stmt 1607 - Alarmierung fkt. nicht (19000176)
- 6.7 Job GSMTCTL ends unexpectedly - RNX0100 F/QRNXIE T/GSM400 Stmt 2495 (19000174)
- 6.8 SMS gehen nicht 'raus - Kein Kontakt zum Comserver
- 6.9 Intermittierender (sporadischer) Ausfall - nach einem gewissen Zeitintervall werden keine SMS mehr gesendet
Lizenz prüfen
DSPPFM GSMTEXT/LCLICDP
Bibliotheken und Verzeichnisse für gsmtext
Fehlersuche und -behebung auf IBM i
Version feststellen
IBM i-Version
GO LICPGM, Auswahl 10, Taste F11
gsmtext Version
STRGSMT - Die Versionsnummer steht oben links auf dem Bildschirm (z.B. "6.13")
Befehle zur Konfiguration
Start/Stop -Befehle
STRGSMT
Auswahl 21 zum Starten
Auswahl 22 zum Beenden
Kompletter ("sauberer") Neustart
1.. Das Subsystem über STRGSMT Punkt 22 beenden
2. Mit WRKUSRJOB GSMTEXT prüfen, dass kein Job des Benutzers mehr aktiv ist
a) Wenn doch: mit Auswahl 4 (F4) den Job beenden (Auswahl: *IMMED)
3. GSM Modul vom Strom trennen
4. Den ComServer vom Strom trennen
5. alle Kabel/Stecker am Gerät auf festen Sitz prüfen
5a - wenn von der Hotline angefordert: SIM-Karte auf sichern Sitz prüfen
6. Stromzufuhr des ComServer wieder aktivieren, kurz (2 Minuten) warten
7. Stromzufuhr des GSM-Moduls wieder aktivieren, kurz (2 Minuten) warten
8. Das Subsystem mit Punkt 21 wieder starten und ca. 10 Min. laufen lassen.
Subsystem und Jobs
Subsystem GSMTEXT
Minimum-Jobs:
GSMTCTL - Pgm-GSMTCTL
GSMTPR1 - Pgm-GSMTPR1
GSMTSY1 - Pgm-GSMTSY1
Verarbeitet die Checkpoints *SBS, *MSGQ, *MSGW, *JOBQ, *OUTQ, *JOB, *SBS und die für *SYSACT konfigurierten Systeme
GSMTSY2 - Pgm-GSMTSY2
Verarbeitet die Checkpoints *HTTP, *SMTP, *POP3, *SERVER
Weitere mögliche Jobs - abhängig von der Anbindung an das SMS-Netzwerk
GSMTRUT - DLY-30
Anbindung mit Teltonica-RUT-Einheiten
GSMTSND
Anbindung mit Modemen, X32, X25 oder GSM-Einheiten mit Comport
GSMT35CC - Pgm-GSMTCMS
Anbindung mit GSM-Einheiten, die per Comport angeschlossen sind
GSMT35CM - Pgm-GSMTCMN
Anbindung mit GSM-Einheiten, die per V.24 oder Comport angeschlossen sind
GSMTTCP und GSMTTTCS
Anbindung über TCP/IP
Weitere mögliche Jobs - abhängig von den konfigurierten Checkpoints
GSMTSY3 - Pgm-GSMTSY3
Verarbeitet *USRDFN
GSMTSY4 - Pgm-GSMTSY4
Verarbeitet *SENSOR
Weitere mögliche Jobs
GSMTNTM - Pgm-GSMTNTM
GSMTPR2 - Pgm-GSMTPR2
GSMTSRV - Pgm-GSMTSRV
GSMTSC1 - Pgm-GSMTSC1
GSMTSC2 - Pgm-GSMTSC2
Logs/Protokolle/Dumps
Die SPLF GSM490P
Aufruf mit
WRKSPLF SELECT(GSMTEXT *ALL *ALL GSM490), EnterF18
Diese SPLF wird immer erzeugt, wenn es irgendwelche Unregelmäßigkeiten gibt. In ihr ist die gesamte Kommunikation für einen Vorgang abgebildet, die zwischen der IBM i und der GSM-Einheit stattfindet. Anhand der Befehle der IBM i (D1) und der Antworten der Einheiten (D2) kann man den Fortgang des Vorganges erkennen.
WRKOUTQ *ALL und dann scrollen bis zur OutQ GSMTEXT.
CMS ERROR- Codes in der GSM490P
Der CREG-Befehl und seine Antworten
siehe auch: http://www.ozekisms.com/index.php?owpn=691
Der CNMI-Befehl: Umgang mit unverlangt eingehenden SMS
Auszug aus: http://www.nobbi.com/atgsm.html#+cnmi
Der Befehl AT+CNMI? ruft die aktuellen Einstellungen an
Der Befehl AT+CNMI=... legt fest, wie neu eintreffende Nachrichten behandelt werden sollen.
Standard-Fehlersituationen aus verschiedenen Support-Cases
Weitere links zum Thema GSM-Hayes-Befehle
(PDF-Datei mit vermutlich vollständigem Befehlssatz - inklusive SLED)
Liste der GSM-Fehlercodes "CME Error xxx" und "CMS Error xxx"
Diese Seite ist eine von vielen mit einer Übersicht über die Fehlercodes:
SMTP / Email -Protokoll-Dateien im IFS, Verzeichnis /toolmaker/gsmtext/smtplog/
Für jedes Email, das von gsmtext versendet wird, werden zwei Dateien im IFS erstellt:
Sxxxxxxx.dat
Mxxxxxx.dat
Beispiele:
Diese logs werden immer geschrieben. Die Aufbewahrungszeit entspricht der "Gültigkeitsperiode eing. SMS".
Diese wird in der Allgemeinen Konfiguration, Seite 3 bestimmt (STRGSMT, Aw. 20, Aw. 1, 2x Enter):
Protokoll-Dateien in Bibliothek GSMTEXT
EGEMLGP - E-Mail log - status, retries,
ELELOGP- E-Mail Error log
EREMLRP - Empfänger einer E-Mail
EAEATTP - E-Mail attachment log
EGEMLGP - Beispiel für einen Eintrag
Mail send status
9 = nicht gesendet
5 = gesendet
Feld EGERRC - Fehlercodes
0 = No error
1 = SSL not available
2 = Could not connect to SMTP server
3 = SSL upgrade failed
4 = Invalid server response code
5 = Invalid response code to HELO/EHLO command
6 = Invalid response code to AUTH command
7 = AUTH login failed
10 = Invalid response code to MAIL command
11 = Invalid response code to RCPT command
30 = Invalid response code to DATA command
40 = Invalid response code to end of data
80 = User index processing error
90 = Send error
91 = Read error
99 = Unspecified error
m_sndeml - Return Codes
Protokoll-Dateien im IFS
Verzeichnis: /acme/gsm/log
Einträge im Nachrichtenprotokoll (STRGSMT, Aw 5)
Bei über E-Mail versandten Nachrichten bleibt der Status "N.verfügb.", auch wenn das E-Mail erfolgreich gesendet wurde.
Anhand des Datums/Uhrzeit neben der E-Mail-Adresse kann man erkenne, dass der Versand stattfand.
Erfolgreich gesendet: Versanddatum/-zeit sind angegeben
Fehlersuche GSM-Einheit
Verfügbare GSM-Einheiten
Eine Übersicht über die verfügbarten GSM-Einheiten befindet sich auf der Seite: Hardware für die Kommunikation mit dem SMS-Netzwerk
RUTxxx-Einheiten - Verbindung testen
Das Versenden von SMS auf RUTxxx geschieht in zwei Schritten:
einen Token (auch "Bearer" genannt) von der RUT holen
mit diesem Token SMS versenden
Beide Schritte werden werden über HTTP_POST-Aufrufe in einem SQL-Fenster gestartet .
Man benötigt diese Daten:
<rut_ip_address>- IP-Adresse der RUTxx<rut_password>- Kennwort des Benutzers "admin" auf der RUTxx<phone_no_in_interntl_format>- Telefonnummer, an die die SMS gesendet werden soll (z.B. "+49172567890")
Punkt 1 und 2 kann man in GSMTEXT ermitteln:
STRGSMT → Aw. 20 → Aw 4 → Aw 2 für die RUT, dann 2x Enter:
Test mit SQL-Befehl
-- POST /api/login - request a token
values qsys2.HTTP_POST('http://<rut_ip_address>/api/login',
'{"username":"admin","password":"<rut_password>"}' ,
'{"header":"Content-Type,application/json;Accept,application/json","connectTimeout":"5"}' );
-- the command returns:
-- {"success":true,"data":{"username":"admin","token":"2d9189b02fd37920ee16916d0b10f770","expires":299}}
--
--> the string 2d9189b02fd37920ee16916d0b10f770 is the <token_from_login_post>,
--> that must be inserted into the next command
-- POST /api/messages /send - send an SMS
values QSYS2.HTTP_POST(
'http://<rut_ip_address>/api/messages/actions/send' ,
'{"data":{"number":"<phone_no_in_interntl_format>","message":"SMS Text","modem":"1-1"}}' ,
'{"header":"authorization,Bearer <token_from_login-post>"}');
Test mit dem QSH-Befehl "curl"
Wenn die Open Source Komponente "curl" installiert ist, dann man diese Tests auch damit machen.
Zur Installation der Open Source Komponenten siehe: IBM i - wichtige Informationen rund um das Betriebssytem - OpenSource-Komponenten
STRQSHA <Enter>
// Prüfen, ob Port 80 frei ist:
curl -v telnet://<ip_adresse_der_rut>:80
// Token holen
curl -i -X POST "http://<DEVICE_IP>/api/login" \
-H "Content-Type: application/json" \
-d '{"username": "<USERNAME>", "password": "<PASSWORD>"}' \
-k
// Antwort: {"success":true,"data":{"username":"admin","expires":299,"token":"24f11c4366d9d509e4ac71aa2e1f87e2","group":"root"}}
// SMS senden
curl -X POST "http://<rut_ip_address>/api/messages/actions/send" \
-H "Authorization: Bearer <token_from_login-post>" \
-H "Content-Type: application/json" \
-d '{"data":{"number":"<phone_no_in_interntl_format>","message":"SMS Text","modem":"1-1"}}'
Konfiguration der GSM-Einheit prüfen/korrigieren ("klassische" GSM-Einheiten)
Wenn eien GSM-Einheit ausgetauscht wurde, dann ist die neue Einheit oft ein neueres/anderes Modell, als die vorherige. In diesem Fall muss der korrekte Typ konfiguriert werden.
Prüfen, welche Einheit tatsächlich angeschlossen ist
STRGSMT, Aw. 20, Aw 4, Option 8 für die Einheit:
Hier: TC63i
Ermitteln des Namens, den man in gsmtext konfigurieren muss
Die Seite Hardware für die Kommunikation mit dem SMS-Netzwerk enthält eine Liste der Einheiten, die von gsmtext unterstützt werden, wie sie sich bei Auswahl 8 melden und mit welchem "Einheitentyp" sie konfiguriert werden müssen:
In diesem Fall ist für "Cinterion TC63i" der Einheitentyp "ETM9350" angegeben.
Den ermittelten Einheitentyp konfigurieren
STRGSMT, Aw 20, Aw, 4 - Option 2 für die Konfiguration (GSMT34 oder GSMT35)
siehe auch: Konfiguration - GSM-Modul-Verbindungsart 5 (beim Anschluss über einen Comport).
Wenn die GSM-Einheit direkt per V.24-Kabel angeschlossen ist (sehr selten), dann wäre es die Verbindungsart 4 (GSMT34).
Hinweise zum Einheitentyp ETM9350 (Cinterion TC63i)
Kommunikation mit einer GSM-Einheit mit dem Befehl STRITF
Mit dem Befehl STRITF (Start Interactive Terminal Facility) kann man direkt AT-Befehl an die Box schicken.
Fehlersuche Comserver (Comport)
Die GSM-Einheiten werden im Regelfall über einen Comserver der Firma WuT angeschlossen. Das ist erforderlich, weil diese GSM-Einheiten nur über eine V.24-Schnittstelle verfügen, aber aktuelle IBMi-Systeme keine V.24-Schnittstelle mehr haben.
Der Comserver hat eine LAN-Schnittstelle, mit der er über das LAN mit der IBMi verbunden wird und eine V.24-Schnittstelle, an die die GSM-Einheit angeschlossen wird.
Er leitet die Kommunikation zwischen IBMi und GSM-Einheit transparent durch.
Weitere Information zum Comserver: COMPORT (Comserver von W&T)
Kommunikation zwischen Comserver und GSM-Einheit prüfen
Wenn die Verbindung zur GSM-Einheit über einen Comserver läuft.
Wenn das Log GSM490P (zu finden mit WRKSPLF GSMTEXT), zeigt, dass keine Verbindung zur GSM-Einheit zustande kommt (siehe hier: Standard-Fehler - Keine Verbindung zur GSM-Einheit), dann kann man über TELNET prüfen, ob der Comserver die Box erkennt: Prüfen, ob der Comserver mit der GSM-Einheit verbunden ist
Support-Fälle
Email-Versand funktioniert nicht (18030213)
Problem
Bei einer Installation ohne GSM-Einheit sollen die Nachrichten nur per E-Mail gesendet werden. E-Mail ist korrekt konfiguriert.
Siehe auch https://toolmaker.atlassian.net/wiki/spaces/DOKU/pages/652214484/Konfiguration#Konfiguration-_Toc317576535Teil3
STRGSMT, Auswahl 20, Auswahl 1, dann 2 x Enter:
|
Für den Benutzer ist eine E-Mail-Adresse hinterlegt.
Auch die Benutzeroptionen sind korrekt:
|
|
Lösung
Im Benutzerprofil von GSMText muss immer eine Mobil-Tel.nummer angegeben werden. Auch wenn das System keine GSM-Einheit hat und nur gemailt werden soll.
STRGSMT, Auswahl 11, Auswahl 2 für die Benutzer-Registrierung:
|
Nachrichten an einen so konfigurierten Benutzer gehen als E-Mails raus:
|
Hinweis: der Status bleibt bei E-Mails immer N.verfügb., weil das System nur für SMS-Nachrichten eine Antwort vom Netzwerk bekommt.
Autor: RSC
IBM i – betroffenes System |
|
– Betr.System-Version | V7R3 |
Produkt – Version auf IBMi | 6.13 |
QSYSOPR zeigt "GSM Einheitenfehler"
GSM490P zeigt "+CMS ERROR: PS busy"
Schritte zur Fehlerbehebung:
Sauberer Neustart, inkl. Prüfung, dass die SIM-Karte sicher und eingelegt ist
Wenn das nicht hilft
2. Sicherstellen, dass die Nummer der Nachrichtenzentrale ("Service-Center-Adresse") korrekt ist
Hier ein Beispiel:
Im Web prüfen, ob die Nummer stimmt.
ggf. korrigieren: STRGSMT → Auswahl 20 → Auswahl 5
Wenn das nicht hlft
3. die SIM-Karte in einem Mobiltelefon prüfen: können SMS geschickt werden?
Wenn das möglich ist.
4. Noch einmal Schritt 1 "Sauberer Neustart" versuchen (inkl. SIM-Karten-Prüfung)
Wenn es immer noch nicht geht:
5. WRKSPLF GSMTEXT - den Inhalt der neuesten SPLF-GSM490P an's helpdesk schicken
Autor: RSC
Produkt – Version auf IBMi | alle |
GSM490P zeigt "+CMS ERROR: operation not supported"
In diesem Fall war eine falsche GSM-Einheit konfiguriert.
Angeschlossen war eine Einheit "Cinterion - PLS62-W". Diese muss in gsmtext als "ETM9440" konfiguriert werden. Es war aber eine "ETM9350" konfiguriert.
Autor: RSC
Produkt – Version auf IBMi | alle |
SMS gehen nicht raus - GSM490P zeigt: +CREG 0,2 (18030226)
Problem
Es gehen keine Nachrichten raus. Mit WRKSPLF GSMTEXT bekommt man viele SPLF mit dem Namen GSM490P angezeigt.
Darin findet man:
D1 11:28:28 AT+CREG?D2 11:28:29 +CREG: 0,2 OK D2 11:28:39 D1 11:28:39 AT+CNMI=1,0,0,0,1
Und nach einiger Zeit wechselt die Zeile mit dem #CREG in:
D2 11:28:29 +CREG: 0,0 OK
Lösung
Die GSM-Einheit hat nicht hinreichend Empfangsstärke. Sie muss woanders aufgestellt werden.
+CREG: 0,2 heisst: Nicht mit einem Netzwerk verbunden, sucht danach
+CREG: 0,0 heisst: Nicht mit einem Netzwerk verbunden, keine Suche (mehr)
Autor: RSC
Produkt – Version auf IBMi | 6.13 |
SMS gehen nicht raus - GSM490P zeigt: +CREG 0,3
Problem
Es gehen keine Nachrichten raus. Mit WRKSPLF GSMTEXT bekommt man viele SPLF mit dem Namen GSM490P angezeigt.
Zunächst sieht alles gut aus:
D1 0000 23:49:27 AT+CPIN?D2 0000 23:49:33 +CPIN: READY OKD1 0000 23:49:33 AT&FD2 0000 23:49:34 OKD1 0000 23:49:34 ATE0 D2 0000 23:49:35 ATE0 OKD1 0000 23:49:35 AT+CMEE=2D2 0000 23:49:36 OKD1 0000 23:49:36 AT^SLED=?D2 0000 23:49:37 ^SLED: (0-2),(1-50) OKD1 0000 23:49:37 AT^SLED=2,40D2 0000 23:49:38 OK
Aber der CREG wird beantwortet mit: nicht registriert (0), Zugang verweigert (3)
D1 0000 23:49:44 AT+CREG?D2 0000 23:49:45 +CREG: 0,3 OKD2 Y 0310 23:49:57
Diese Einträge wiederholen sich einige Minuten
D1 0000 23:49:57 AT+CREG?D2 0000 23:49:58 +CREG: 0,3 OKD2 Y 0310 23:50:09
...
D1 0000 23:52:27 AT+CREG?D2 0000 23:52:28 +CREG: 0,3 OKD2 Y 0310 23:52:40
..und dann schliesst das Protokoll mit:
D1 0000 23:52:40 AT+CNMI=1,0,0,0,1D2 0000 23:52:41 OK
Lösung
In einem Fall musste die SIM-Karte getauscht werden (streiche O2, setze vodafone).
+CREG: 0,3 heisst: Nicht mit einem Netzwerk verbunden, vom Provider abgelehnt
Alle SMS bleiben im Status "N.verfügb." (19000003)
Bei einer ganz neuen Installation bleiben alle SMS im Status "N.verfügb.". Es wird keine SMS verschickt.
Es gibt keine GSM490P spooled files (WRKSPLF GSMTEXT zeigt leere Liste)
Im IFS (/acme/gsm/logs) gibt es keine Einträge
Die Joblogs der Jobs im SBS GSMTEXT zeigen keine Besonderheiten
Der COMSERVER ist korrekt konfiguriert
Man kann auf einem PC über den Port 8000 eine Telnet-Verbindung zur GSM-Einheit aufbauen und auch „vernünftig" mit der Box „sprechen", z.B
AT AT OK ATE0 ATE0 OK AT+CPIN? +CPIN: SIM PIN OK AT+CPIN="nnnn" OK <-- hier die PIN der SIM-Karte eingebenAT&F OK ATE0 ATE0 OK AT+CSCA="+491710760000" <-- Nr. Der Nachrichtenzentrale (STRGSMT, 20, 5)OK AT+CREG? +CREG: 0,1 OK <-- Verbindung zum Netz bestehtAT+CMEE=2 OK ATS0=0 OK AT+CSMS=0 +CSMS: 1,1,1 OK AT+CMGF=0 OK AT+CPMS="SM","SM","SM" +CPMS: 0,20,0,20,0,20 OK AT+CGMI Cinterion OK AT+CGMM TC63i OK AT+CGMR REVISION 01.100 OK AT+CGSN 353229026868180 OK AT+CSQ +CSQ: 21,99 OK AT+CMGS=022 >0011000D91947136584769F40000AA07D4F29C0E82C900 +CMGS: 195 OK