Dipl. Math. Holger Gräfe |
Die Deutsche Telekom als Vertreiber dieser Telefonanlage verweigert die Herausgabe von technischen Unterlagen, insbesondere über das Protokoll zur Konfiguration. Daher kann die Anlage nur über die Telekom-Software konfiguriert werden. Diese ist jedoch nur für MS-Windows erhältlich und in einigen Punkten nicht optimal.
Als Antwort auf diese "Entmündigung" der Kunden möchte ich an dieser Stelle einige wesentliche Informationen öffentlich zugänglich machen.
Es handelt sich hier um die technische Spezifikation der Konfigurationsverbindung der Eumex 322 und ist in erster Linie für Programmierer gedacht. Mit allgemein verständlichen Anleitungen, Treibern oder Informationen über die DFÜ-Funktionalität der Eumex-Anlagen mit integrierter PC-Karte kann ich leider (noch) nicht dienen. Ein paar Fragen und Antworten zu diesen Themen habe ich aber auf einer anderen Seite zusammengestellt. |
Die hier aufgeführten technischen Beschreibungen wurden mit Hilfe eines kleinen DOS-Programmes getestet. Interessierte können dieses Programm nebst Turbo-Pascal-Source hier erhalten.
Wenn Sie über weitere technische Informationen (auch anderer Eumex-Anlagen) verfügen, so biete ich diese Web-Seite als "Sammelstelle" an.
Bitte beachten Sie den Haftungsauschluss!
Stand: 03/2003 | |
![]() |
Die serielle Schnittstelle der Eumex 322 wird mit den Parametern
Daten-Bits | 8 |
Parität | keine |
Stop-Bits | 1 |
betrieben. Sie verfügt dabei über eine Baudratenerkennung (verwendet werden 19200, 9600 und 4800 Baud). Wenn innerhalb von 5 Sekunden nach Wechsel der RTS-Leitung von 0 auf 1 kein Attention zur Anlage gesendet wird, so geht die Anlage davon aus, dass ein Drucker angeschlossen wurde und schaltet auf 9600 Baud.
Hat die TK-Anlage die Attention-Bytes erkannt (i.d.R. nach 3 Bytes), so antwortet sie ihrerseits mit dem Zeichen #02.
Der weitere Datenaustausch nach dem oben geschilderten Verbindungsaufbau findet nach einem einheitlichen Protokoll statt. Jeder Datensatz (von Computer oder Anlage) hat dabei folgenden Aufbau:
#02 | Daten | CRC | #03 |
Der Anfang und das Ende eines Datenpaketes sind also durch die Werte #02 (STX = Start of Text) und #03 (ETX = End of Text) markiert. Dies setzt natürlich voraus, dass diese Bytes in den Daten selbst nicht vorkommen. Das wird durch folgende Ersetzungstabelle erreicht:
Datenbyte (hexadez.) |
gesendet als |
02 | 06 04 |
03 | 06 05 |
06 | 06 06 |
Es wird also #06 (ACK = Acknowledgment) als "Shift-In-Code" verwendet. Diese Ersetzung wird auch auf die Prüfsumme (CRC) angewendet!
CRC ist eine 16-Bit Prüfsumme, die in der Reihenfolge Low-Byte, High-Byte gesendet wird.
Original-String (hexadezimal) |
80 02 |
mit CRC | 80 02 2A D9 |
nach Steuerzeichen- ersetzung |
80 06 04 2A D9 |
mit Anfang- und Endemarkierung |
02 80 06 04 2A D9 03 |
Bei den Tests wurden keine Strings mit einer Gesamtlänge von mehr als 255 Bytes gesendet; ob tatsächlich eine solche Beschränkung besteht, ist noch zu prüfen.
Für den eigentlichen Datenaustausch zwischen Computer und Telefonanlage wird eine zusätzliche Protokollebene verwendet. Dabei wird jede "Transaktion" mit einer laufenden Nummer versehen und jede Kommando- oder Datenübertragung quittiert. Die laufende Nummer ist ein Byte-Wert mit folgendem Aufbau:
Bit | Bedeutung |
0-5 | Transaktionsnummer (0-63) |
6 | 1 = Meldung vom Computer |
7 | 1 = Nachricht wiederholen (nach Übertragungsfehler) |
Die Transaktionsnummer wird von der Anlage hochgezählt. Der Aufbau einer Kommando- oder Datennachricht ist:
Nummer des aktuellen Kommandos (vom Computer) |
Nummer dieser Nachricht |
#02 für Abfrage der Anlagen-/Softwareversion, #01 sonst |
Kommando-String |
Der Aufbau einer Bestätigung ist:
#80 | Nummer der Nachricht |
Mit der Start-Transaktionsnummer 0 findet z.B. folgender Dialog statt:
Computer | Eumex 322 |
Kommando: 40 40 01 <Kommando> |
|
Bestätigung: 80 41 (Transaktionsnr. hochgezählt) |
|
Antwort: 40 01 01 <Daten> |
|
Bestätigung: 80 01 |
|
Kommando: 41 41 01 <Kommando> |
|
Bestätigung: 80 42 |
|
Antwort: 41 02 01 <Daten> |
|
und so weiter... |
Die Kommando- oder Datenstrings variabler Länge sind durch #00 abgeschlossen und können ansonsten auch leer sein.
Als Prüfsumme (zur Erkennung von Übertragungsfehlern) verwendet die Eumex 322 eine Modifikation (warum auch immer) des CRC-16 nach CCITT (CRC = Cyclic Redundancy Check) mit folgendem Algorithmus:
CRC = 0 | ||||
Für jedes Byte x
|
Eine Implementierung in PASCAL könnte so aussehen:
procedure crc(var c:longint;v:integer); var j: integer; t : boolean; begin c := c xor (longint(v) shl 8) xor $e1f3; for j:= 7 downto 0 do begin t := c>=$8000; c := (c and $7fff) shl 1; if t then c := c xor $1021; end; end;
Der Aufruf erfolgt für jedes Zeichen mit:
crc(aktueller_crc,pruef_byte);
Die Prüfsumme wird nur auf den Datenteil angewendet (nicht auf das Startzeichen #02), und zwar vor der Ersetzung der Spezialzeichen (#02,#03 und #06). (Siehe auch das Beispiel.)
Die Telekom-Software stellt zunächst eine Verbindung mit 19200 Baud her und "erfragt" die Anlagenkennung und die Softwareversion. Danach wird die Verbindung abgebaut und mit 4800 Baud wieder hergestellt. Dieses Vorgehen ist jedoch nicht erforderlich; der erste Teil des nachfolgenden Ablaufs kann also entfallen.
Schritt | Aktion | Beispiel | |
gesendete Bytes | empfangene Bytes | ||
1 | Verbindungsaufbau mit 19200 Baud | 02 02 02 | 02 |
2 |
Identifikation der
Konfigurationsverbindung: Computer sendet #C0 (mit dem oben beschriebenen Protokoll). Anlage antwortet mit #C3. |
02 C0 43 C7 03 | 02 C3 20 F7 03 |
3 |
Der Computer erfragt (im
erweiterten Protokoll)
die Anlagen- und Softwareversion: Mit der Transaktionsnummer 0 wird das Kommando 02 64 gesendet. |
02 40 40 06 04 64 4E 42 03 | |
4 | Die Anlage bestätigt und antwortet mit 02 65 kk 00 00 00 00 ll hh, wobei kk die Anlagenkennung ist und ll und hh das Low- bzw. High-Byte der Softwareversionskennung sind. |
02 80 41 8D A1 03 02 40 01 06 04 65 01 00 00 00 00 79 05 04 59 03 |
|
5 | Der Computer bestätigt die Antwort. | 02 80 01 49 E9 03 | |
6 | Die Telekom-Software baut an dieser Stelle die Verbindung ab. (RTS=0) |
Die Anlagentypen haben dabei folgende Kennungen:
Anlagentyp | Kennung (hex.) |
---|---|
Eumex 322 | 01 |
Eumex 322PC | 11 |
Eumex 322PCi | 21 |
An dieser Stelle beginnt die eigentliche Konfigurationsverbindung. Die vorangegangenen Schritte sind verzichtbar.
Schritt | Aktion | Beispiel | |
gesendete Bytes | empfangene Bytes | ||
1 | Verbindungsaufbau mit 4800 Baud | 02 02 02 | 02 |
2 |
Identifikation der
Konfigurationsverbindung: Computer sendet #C0 (mit dem oben beschriebenen Protokoll). Anlage antwortet mit #C3. |
02 C0 43 C7 03 | 02 C3 20 F7 03 |
3 |
Der Computer sendet den
Anlagen-Programmiercode (im erweiterten
Protokoll): Mit der Transaktionsnummer 0 wird das Register-Kommando #01"LI G a"+Code gesendet. |
02 40 40 01 "LI G a0000" 00 CA C6 03 | |
4 | Die Anlage bestätigt und antwortet mit "LI 1", falls der Code stimmt. |
02 80 41 8D A1 03 02 40 01 01 "LI 1" 00 00 00 B0 3F 03 |
|
5 | Der Computer bestätigt die Antwort. | 02 80 01 49 E9 03 |
Jetzt folgen die Kommandos zur Abfrage oder Änderung der Anlagen-Register im erweiterten Protokoll. Die Transaktionsnummer wurde durch die Programmiercode-Prüfung auf 1 hochgezählt; vor allen Kommando- und Antwortstrings steht das Byte #01. Dazu zwei Muster (Kurzwahlen auslesen bzw. schreiben):
Schritt | Aktion | gesendete Bytes | empfangene Bytes |
6 | Mit der Transaktionsnummer 1 wird das Register-Kommando "DK G " gesendet. | 02 41 41 01 "DK G " 0A 00 20 1B 03 | |
7 | Die Anlage bestätigt und antwortet mit dem Inhalt der ersten Kurzwahlregister. (Achtung: Bei der Übermittlung der Transaktionsnummer 2 kommt die Steuerzeichen-Ersetzung zum Tragen!) |
02 80 42 EE 91 03 02 41 06 04 01 "KW z0 e02598929057 z1 e112 ..." 00 'CRC' 03 |
|
8 | Der Computer bestätigt die Antwort. | 02 80 06 04 2A D9 03 | |
9 | Der Computer sendet das "Leerkommando" #00, um die Fortsetzung der Übermittlung zu erwirken. | 02 42 42 01 00 37 B8 03 | |
10 | Die Anlage bestätigt und antwortet mit dem Inhalt der nächsten Kurzwahlregister. |
02 80 43 CF 81 03 02 42 03 01 "KW z12 e01191 z13 e01910 ..." 00 'CRC' 03 |
|
n | Sind alle Kurzwahlen übertragen, so sendet die Eumex 322 anstelle einer "KW ..."-Antwort den Datenendestring "ZZ". | 02 xx yy 01 "ZZ" 00 'CRC' 03 | |
n+1 | Der Computer baut die Verbindung ab. |
Schritt | Aktion | gesendete Bytes | empfangene Bytes |
6 | Mit der Transaktionsnummer 1 wird das Register-Kommando "KW A " mit den Kurzwahlen gesendet. | 02 41 41 01 "KW A z0 e02598929057 z1 e112 ..." 0A 00 'CRC' 03 | |
7 | Die Anlage bestätigt und antwortet mit einem Leerstring. (Achtung: Bei der Übermittlung der Transaktionsnummer 2 kommt die Steuerzeichen-Ersetzung zum Tragen!) |
02 80 42 EE 91 03 02 41 06 04 01 00 'CRC' 03 |
|
8 | Der Computer bestätigt die Antwort. | 02 80 06 04 2A D9 03 | |
9 | Der Computer sendet die nächsten Kurzwahlen. | 02 41 41 01 "KW A z15 e01910 z16 e01191 ..." 0A 00 'CRC' 03 | |
10 | Die Anlage bestätigt und antwortet mit einem Leersting. |
02 80 43 CF 81 03 02 42 03 01 00 'CRC' 03 |
|
n | Sind alle Kurzwahlen übertragen, so baut der Computer die Verbindung ab. |
Nach dem gleichen Schema lassen sich auch die Konfigurationsdaten auslesen und ändern, sowie die Entgeldsummen auslesen. Durch die Lesekommandos für Konfiguration und Kurzwahlen ("DA G" bzw. "DK G") werden jeweils alle Daten ausgelesen; die einzelnen Register können jedoch separat geändert werden, ohne jeweils die gesamte Konfiguration oder den gesamten Kurzwahlspeicher zu schreiben (wie es die Telekom-Software macht).
Register | Kommandos | Parameter | Bedeutung |
AA | A = ändern | m oder a |
Anschlussart: Mehrgeräte- oder
Anlagenanschluss Bsp.: AA A m |
AB | A = ändern | nNebenst. rBerecht. ... |
Amtsberechtigung: 0=internat., 1=national,
2=nat.-eingeschr., 3=Ort, 4=halbamtsber., 5=intern Bsp.: AB A n11 r0 n12 r1 |
AG | A = ändern | s oder k |
Amtsbelegung: s=sofort, k=Amtsvorwahl 0 Bsp.: AG A k |
AS | A = ändern | nNebenst. 0 oder 1 ... |
Anrufschutz: 0=aus, 1=an Bsp.: AS A n19 1 n29 0 n11 0 |
DA | G = ausgeben | - | Gespeicherte Konfiguration auslesen |
DK | G = ausgeben | - | Gespeicherte Kurzwahlen auslesen |
FB | A = ändern | 0 oder 1 |
Besetzt bei Besetzt: 0=aus, 1=an Bsp.: FB A 0 |
FE |
A = ändern L = löschen |
ePräfix ... (Löschen ohne Parameter) |
Rufnummern für eingeschränkte
Amtsberechtigung Bsp.: FE L |
GB |
G = ausgeben L = löschen |
- | Gebührenzähler auslesen / löschen |
GS | A = ändern | nNebenst. 0 oder 1 ... |
Gebühren-Sofortausdruck: 0=aus, 1=an Bsp.: GS A n19 1 n29 0 n11 0 |
GT | A = ändern | gTarif |
Gebühren-Tarifeinheit Bsp.: GT A g0012 |
KW |
A = ändern L = löschen |
zKurzw. eLangrufn. ... (Löschen ohne Parameter) |
Kurzwahlregister Bsp.: KW A z5 e110 z6 e112 |
LI |
G = prüfen |
aCode |
Programmiercode prüfen Bsp.: LI G a0000 |
NT | A = ändern | nNebenst. tTyp ... |
Gerätetypen der analogen Nebenstellen:
0=Telefon, 1=Kombi, 2=AB, 3=Fax, 4=Daten Bsp.: NT A n19 t2 n29 t0 |
PR | A = ändern | zZeilen/Seite lLeerz. |
Anzahl Zeilen pro Seite (0=endlos) und
Leerzeilen zwischen Datensätzen Bsp.: PR z0 l0 |
RA | A = ändern | eMSN |
MSN-Hauptnummer bei Anlagenanschluss Bsp.: RA A e025989290 |
RB | A = ändern | 0 oder 1 |
Rufumleitung in der Anlage (=1) oder
Vermittlungsstelle (=0) Bsp.: RB A 0 |
RD | A = ändern | tSekunden |
Verzögerung für Rufuml. in der
Anlage Bsp.: RD A t20 |
RN | A = ändern | nNebenst. 0 oder 1 ... |
Rufnummernübermittlung bei analogen
Nebenstellen: 0=an, 1=aus Bsp.: RN A n19 1 n29 0 |
RU | nur lesen | nNebenst. tTyp ... |
Rufumleitung: 0=aus Bsp.: RU n11 t0 n12 t0 |
RZ | A = ändern | iMSN# mMSN ... |
MSN-Nummern bei Mehrgeräteanschluss Bsp.: RZ A i0 m929055 i1 m929056 |
VA | A = ändern | vVariante iMSN# nNebenst. ... |
Rufverteilung: Variante 0 = Tag, Variante 1 =
Nacht Bsp.: VA A v0 i1 n11 n12 n19 (= MSN 1 läutet bei Tagsschaltung auf 11, 12 und 19) |
ZZ | - | - | Ende der Übertragung |
E-Mail-Adresse, Fax-Nr. etc. finden Sie auch hier.
[Übersicht] | [Home] |