Dipl. Math.
Holger Gräfe

Eumex 322 TK-Anlage

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!


Protokoll der V24-Konfiguration

Stand: 03/2003
Eumex 322

Schnittstellen-Parameter

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.


Der Verbindungsaufbau

Zum Aufbau einer Konfigurationsverbindung muss zunächst die RTS-Leitung auf 0 gesetzt werden (Das RTS-Signal wird bei den meisten Systemen über ein "Open"-Kommando auf den seriellen Port geschaltet). Nach ca. 2 Sekunden wird RTS wieder eingeschaltet und es werden im Abstand von ca. 20 Millisekunden Attention-Bytes (#02) mit der gewünschten Baudrate (4800 oder 19200) gesendet. Mit Hilfe dieser Bytes führt die Eumex 322 eine Baudratenerkennung durch (daher sind die Pausen zwischen den Bytes erforderlich) und unterscheidet die Verbindung von einem Gebührendrucker.

Hat die TK-Anlage die Attention-Bytes erkannt (i.d.R. nach 3 Bytes), so antwortet sie ihrerseits mit dem Zeichen #02.


Das Übertragungsprotokoll

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.

Beispiel:

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.

Erweitertes Protokoll

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.


Das Prüfsummenverfahren

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
CRC = CRC xor x*256 xor $E1F3
wiederhole 8 mal
CRC = CRC*2
CRC > $FFFF? Dann: CRC = (CRC and $FFFF) xor $1021

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


Der Verbindungsablauf

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

Der Wert für die Softwareversionskennung ist bei der aktuellen Firmware 1401, was in der Telekom-Software als Version 1.40 angezeigt wird. Entsprechend wird ein Wert von 1300 als Version 1.30 angezeigt. Ob die Versionsnummer tatsächlich drei Nachkommastellen hat oder die letzte Ziffer eine Art Updatezähler darstellt, ist mir nicht bekannt.

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):

Beispiel 1: Kurzwahlen auslesen

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.    

Beispiel 2: Kurzwahlen schreiben

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


Die Register der Anlage

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


Feedback erwünscht!
Hat Ihnen dieses Dokument geholfen?
Ja! Nein, weil...
Ihre eMail-Adresse:
Dieses Formular nutzt den kostenlosen Service von www.cutandpastescripts.com.

E-Mail-Adresse, Fax-Nr. etc. finden Sie auch hier.


[‹bersicht] [Home]
© H. Gräfe