/*-INCLUDE-***************************************************************************************/
/* File-Name       : L 7 _ E X P . H                                                             */
/* Projekt         : Gesko I209                                                                  */
/* Modul           : Layer 7                                                                     */
/*-----------------------------------------------------------------------------------------------*/
/* Aufgabe         : Dieses Include stellt alle von der Layer 7 exportierten Defines, Struktur   */
/*                   und Funktions-Deklarationen fuer alle anderen Layers bereit.                */
/*-----------------------------------------------------------------------------------------------*/
/* Autor           : Thomas Marquardt                                                            */
/* entwickelt am   : 22.03.1993                                                                  */
/* letztes Update  : 05.09.1900                                                                  */
/*-----------------------------------------------------------------------------------------------*/
/* Vers.  | Datum  | Beschreibung                                                    | FNR | KZ  */
/* -------|--------|-----------------------------------------------------------------|-----|---- */
/* 01/000 |22.03.93| Erstellung                                                      |     | FM  */
/*        |21.11.95| Überarbeitung für GESKO I209 / neue Einrichtstruktur            |     | TM  */
/*        |14.02.96| Zaehler für ISDN-HOLD eingefügt                                 |     | TM  */
/*        |18.02.96| In Anlagen_Block .Anklopf für Konferenz eingefügt               |     | VH  */
/*        |26.03.96| RufKonfig für den Parameter der Anrufliste implementiert        |     | TM  */
/*        |13.06.96| Neuer Prototype fuer Gebuehrenimpulse                           |     | RH  */
/*        |14.07.96| Strukturen umgebaut und erweitert V2.12 to V2.20                |     | TM  */
/*                   autom. Umschaltung auf Nachtschltg. bei professionell           |     |     */
/*        |31.07.96| implementiert                                                   |     | TM  */
/*        |16.08.96| rul_art (ständig, nach Zeit, bei Besetzt) eingeführt            |     | TM  */
/*        |21.10.96| Landeskennung im L7_Einr_Block eingeführt                       |     | TM  */
/*        |26.10.96| Flashzeit variable gemacht                                      |     | TM  */
/*        |18.11.96| Die Struktur fürs BebKonto wurde in Globdef.h gepackt           |     | TM  */
/*        |16.04.97| GespDatenSpeicherung in EEP - eigene Variablen reingebracht     |     | TM  */
/*        |11.08.97| MSN-Rufabweisung eingebaut                                      |     | TM  */
/*        |15.08.97| spez. Proz. für ISDN-AWS damit an allen Tln möglich             |     | TM  */
/*        |15.08.97| internen Wählton programmierbar normal/dauerton                 |     | TM  */
/*        |20.08.97| EinrProzedur für 2.Klingelknopf eingebaut                       |     | TM  */
/*        |10.11.97| Teilnehmerteil in eigenes Segment verlagert                     |     | RH  */
/*        |19.01.98| L7_RUFNR_LEN bei 416 von 16 auf 25 Stellen geaendert            |     | TM  */
/*        |05.06.98| L7_NAHBER_LEN und L7_SPERRBERLEN auf 25 Stellen geaendert,      |     | VH  */
/*                   L7_RUFNR_LEN für alle auf 25 Stellen geaendert                  |     |     */
/*************************************************************************************************/

/* ----------------------------------------------------------------------------------------------*/
/* -- Defines                                                                                 -- */
/* ----------------------------------------------------------------------------------------------*/

/* -- Sinnvolle Betriebsarten für die I209                                                       */
#define  PtoMP_Type   (word) (PORT_DIRECTION_EXTERN | PORT_MODE_PTMP | TLN_PROTOKOLL_EDSS1)
#define  PtoP_Type    (word) (PORT_DIRECTION_EXTERN | PORT_MODE_PTP  | TLN_PROTOKOLL_EDSS1)

/* -- Tln-Typen (xxxx xx00 0000 0000)                                                            */
#define L7_NAHBER_LEN       25
#define L7_SPERRBER_LEN     25
#define L7_RUFNR_LEN        25
#define L7_INT_RUFNR_LEN     2
#define L7_NAME_LEN          8
#define L7_ANZ_NAHBER       20
#define L7_ANZ_SPERRBER     20
#define L7_ANL_RNR_MAX_LEN  12
#define L7_MIN_RWS_ZEIT      5
#define L7_MAX_RWS_ZEIT    110
#define L7_DEF_RWS_ZEIT     20

#define L7_CODNR_LEN         3
#define L7_PINNR_LEN         4
#define L7_MAX_PIN_VERSUCH   3
#define L7_DEFAULT_PIN   "0000"
#define L7_ANZ_KWZ         200                             /* Anzahl der Kurzwahl zentral        */
#define L7_KWZNAM_LEN       12                             /* Länge des Namens des Kurzwahlzieles*/
#define L7_MAX_ALARM_VERSUCH 3                             /* Ingesamt 3 Versuche                */
#define L7_MAX

#ifdef LM_UTA
  #define L7_LCR_PINNR_LEN    8                            /* Länge der LCR-Pin                  */
  #define L7_MAX_PROVI_LEN    5                            /* max. Länge der Provider-Rufnummer  */
  #define L7_ANZ_LCRTAB1     60                            /* Einträge in der Provider-Tabelle   */
  #define L7_ANZ_LCRTAB2     20                            /* Einträge in der Kunden-Tabelle     */
  #define L7_ANZ_FEIERT_FIX  10                            /* Anzahl der fixen Feiertage         */ 
  #define L7_ANZ_FEIERT_BEW  60                            /* Anzahl der beweglichen Feiertage   */ 
  #define K_FEIERTAG          7                            /* Wochentag = Feiertag               */   
  #define L7_ANZ_EINW_NR      2                            /* Anzahl der Einwahlnummern          */
#endif

#ifdef LM_LCRD
  #define L7_MAX_PROVI_LEN      6                          /* max. Länge der Provider-Rufnummer  */
  #define L7_ANZ_LCR_ZONEN     10                          /* Anzahl der Zonen                   */
  #define L7_LCR_VORW_MAX_LEN   9                          /* max. Länge der Zoneneinträge       */
  #define L7_MAX_ANZ_ZONE0     20                          /* max. Einträge in Zone              */
  #define L7_MAX_ANZ_ZONE1    125                          /* max. Einträge in Zone              */
  #define L7_MAX_ANZ_ZONE2     15                          /* max. Einträge in Zone              */
  #define L7_MAX_ANZ_ZONE3      5                          /* max. Einträge in Zone              */
  #define L7_MAX_ANZ_ZONE4    100                          /* max. Einträge in Zone              */
  #define L7_MAX_ANZ_ZONE5    100                          /* max. Einträge in Zone              */
  #define L7_MAX_ANZ_ZONE6      5                          /* max. Einträge in Zone              */
  #define L7_MAX_ANZ_ZONE7      5                          /* max. Einträge in Zone              */
  #define L7_MAX_ANZ_ZONE8      5                          /* max. Einträge in Zone              */
  #define L7_MAX_ANZ_ZONE9      5                          /* max. Einträge in Zone              */
  #define L7_ANZ_PROVIDER      16                          /* Anzahl der eintragbaren Provider   */
  #define L7_PROVI_NAME_LEN    10                          /* max. Länge des Providernamens      */
  #define L7_ANZ_LCRTAB1       14                          /* Einträge in der Provider-Tabelle   */
  #define K_FEIERTAG            7                          /* Wochentag = Feiertag               */   
#endif

#define EINR_BIT_TYPE       dword
#define EINR_BIT_MAX_WERT   0xffffffff
#define MASTER_BIT_TYPE     word
#define MASTER_BIT_MAX_WERT 0xffff

/* ----------------------------------------------------------------------------------------------*/
/* -- Typedefs                                                                                -- */
/* ----------------------------------------------------------------------------------------------*/

typedef struct WeckStruct
{
   byte   mode;
   byte   stunde;
   byte   minute;
} WeckType;

typedef struct MSN_ZuordStruct
{
   byte   extport;
   byte   msn;
} MSNZuordType;

#ifdef LM_UTA
typedef struct LcrTabStruct
{
   byte lcr_rufnr[L7_RUFNR_LEN+1];                  /* Rufnummer bzw -nbereich für Ausnahme (UTA)*/
                                                    /* bzw. Preselection m. Provider (ProviRufnr)*/
   byte anf_stunde;                                 /* Anfang                                    */
   byte anf_minute;                                 /* Anfang                                    */
   byte end_stunde;                                 /* Ende                                      */
   byte end_minute;                                 /* Ende                                      */
   byte wochentag;                                  /* an den eingetragenen Wochentagen          */
   byte ProviRufnr [L7_MAX_PROVI_LEN+1];            /* Provider-Nummer                   */
} LcrTabType;
#endif

#ifdef LM_LCRD
typedef struct LcrTabStruct
{
   byte anfang;                                     /* Anfang Std und Minute                     */
   byte ende;                                       /* Ende   Std und Minute                     */
   byte wochentag;                                  /* an den eingetragenen Wochentagen          */
   byte ProviNr;                                    /* Provider-Nummer                           */
   word Tarif;                                      /* aktueller Tarif in Pf/min                 */
} LcrTabType;
#endif

#if defined LM_UTA || defined LM_LCRD
typedef struct FeiertFixStruct
{
    byte Month;
    byte Day;
} FeiertFixType;

typedef struct FeiertBewStruct
{
    byte YearHundred;
    byte Year;
    byte Month;
    byte Day;
} FeiertBewType;
#endif

/*************************************************************************************************/
/*               Ab hier beginnen die Definitionen für die 416-Anlagen                           */
/*************************************************************************************************/

/*                                                                                               */
/*                                                                                               */
/* Die Einrichtdaten sind in der Regel indiziert für die Teilnehmer. Der Index 0 ist hierbei     */
/* die S0_Schnittstelle. Da aber alle Parameter nur für die ab-Teilnehmer relevant sind,         */
/* interesssieren nur die Indizes 1-8. Sie geben die a/b-Teilnehmer an. Index 9 ist ebenfalls    */
/* nicht relevant. Es spiegelt die TFE wieder.                                                   */
/* Diese Struktur wurde aus der alten S31-Software übernommen und nicht verändert.               */
/* X=LM programmierbar über PC+Telefon11  T=LM nur über Telefon 11 programmierbar.               */
typedef struct einr_daten                                 /*                                     */
{                                                         /*                                     */
                                                          /*                                     */
  EINR_BIT_TYPE tfe_tag_schltg [ANZ_TFE_PORT][2] ATT;         
                                                          /* TFE-Rufverteilung bei Tagschltg     */
                                                          /* für 2 Klingelknöpfe                 */
                                                          /* Jeder Tln ein Bit - Tln11 = bit0    */
                                                          /* Bit=0 aus / Bit=1 ein               */
  EINR_BIT_TYPE tfe_nacht_schltg [ANZ_TFE_PORT][2] ATT;       
                                                          /* TFE-Rufverteilung bei Nachtschltg   */
                                                          /* für 2 Klingelknöpfe                 */
                                                          /* Jeder Tln ein Bit - Tln11 = bit0    */
                                                          /* Bit=0 aus / Bit=1 ein               */
  byte typtln    [ MAX_ANZ_INT_PORT ] ATT,                    
                                                          /* Typ Tel/Modem/Fax/Multi/Anrb        */
                                                          /* typtln[x] = TYPINTAB    -> Telefon  */
                                                          /* typtln[x] = TYPMULTI    -> Multifkt */
                                                          /* typtln[x] = TYPANRB     -> Anrufb.  */
                                                          /* typtln[x] = TYPFAX      -> Fax      */
                                                          /* typtln[x] = TYPMODEM    -> Modem    */
                                                          /* typtln[x] = TYPALARM   -> Alarmport */
       typamtsruf[ANZ_EXT_S0_PORT][DDI_MAX_ANZ] ATT,          
                                                          /* Amtsrufrythmus bezogen auf MSN/DDI  */
                                                          /* typamtsruf[x]=K_AMT_R1 ->Rythmus 1  */
                                                          /* typamtsruf[x]=K_AMT_R2 ->Rythmus 2  */
                                                          /* typamtsruf[x]=K_AMT_R3 ->Rythmus 3  */
       typamtshol[ MAX_ANZ_INT_PORT ] ATT,                    
                                                          /* Amtsholung Null oder Abheben        */
                                                          /* typamtshol[x]=K_L7_OFF->durch '0'   */
                                                          /* typamtshol[x]=K_L7_ON ->Abheben     */
       ber       [ MAX_ANZ_INT_PORT ] ATT,                    
                                                          /* Amtsberechtigung bezogen auf Tln    */
                                                          /* ber[x]=NICHT_AMT  -> keine          */
                                                          /* ber[x]=HALB_AMT   -> kommend+kw     */
                                                          /* ber[x]=NAH_AMT    -> Ortsberechtigt */
                                                          /* ber[x]=INLAND_AMT -> Inlandsber.    */
                                                          /* ber[x]=VOLL_AMT   -> alles          */
       kwz       [ L7_ANZ_KWZ][(L7_RUFNR_LEN + 1)/2] ATT;     
                                                          /* Kurzwahlz. o. Null vorweg(genibblet)*/
  char kwz_name  [ L7_ANZ_KWZ][L7_KWZNAM_LEN + 1] ATT;        
                                                          /* Name des Kurzwahlzieles             */
  byte hotline   [ L7_RUFNR_LEN + 2] ATT,                     
                                                          /* Nr für automatische Wahl ggf. mit   */
                                                          /* Null vorweg                         */
       anlrufnr[ANZ_EXT_S0_PORT][L7_ANL_RNR_MAX_LEN+1] ATT,   
                                                          /* Anlagenrufnummer im PtoP Betrieb    */
       ddianz[ANZ_EXT_S0_PORT] ATT,                           
                                                          /* Anzahl der DDI-Nummern              */
       nahber   [ L7_ANZ_NAHBER ][ L7_NAHBER_LEN + 1] ATT,
                                                          /* Nahbereichs-Rufnummern              */
       sperrber [ L7_ANZ_SPERRBER ][ L7_SPERRBER_LEN + 1] ATT,
                                                          /* Sperrbereichs-Rufnummern            */
       cod_nr    [ L7_CODNR_LEN + 1] ATT;                     
                                                          /* Codenummer für Raumüberwachung      */
  EINR_BIT_TYPE tag_schltg   [ANZ_EXT_S0_PORT][DDI_MAX_ANZ] ATT;
                                                          /* Tagschltg bezogen auf NSN/DDI+Tln   */
                                                          /* Bit=0 nicht aktiv                   */
                                                          /* Bit=1 aktiv                         */
  EINR_BIT_TYPE nacht_schltg [ANZ_EXT_S0_PORT][DDI_MAX_ANZ] ATT;
                                                          /* Nachschltg bezogen auf MSN/DDI+Tln  */
                                                          /* K_L7_OFF nicht aktiv                */
                                                          /* K_L7_ON  aktiv                      */
  EINR_BIT_TYPE rws_schltg   [ANZ_EXT_S0_PORT][DDI_MAX_ANZ] ATT;
                                                          /* Rufweiterschltg, nur bei Tagschltg  */
                                                          /* K_L7_OFF nicht aktiv                */
                                                          /* K_L7_ON  aktiv                      */
  byte OldGrundFaktor ATT,                                
                                                          /* Anlagen Abrechnungseinheit          */
       OldUserFaktor ATT,                             
                                                          /* Hotel   Abrechnungseinheit          */
       PrnKonfig [ MAX_ANZ_INT_PORT  ] ATT,       
                                                          /* Angabe, ob die Rnr ausgedruckt wird */
                                                          /* PrnKonfig[x]=K_L7_OFF - ohne Rne    */
                                                          /* PrnKonfig[x]=K_L7_ON  - mit Rnr     */
                                                          /* PrnKonfig[x]=K_L7_GEK - Rnr gekürzt */
       Drucker   [ MAX_ANZ_INT_PORT  ] ATT,   
                                                          /* Angabe ob Drucker aktiviert         */
                                                          /* Drucker[x]=0x00     - nicht aktiv   */
                                                          /* Drucker[x]=0x80     - aktiv         */
       rwsz ATT,                          
                                                          /* Zeit für Aktivierung Rufweitersch.  */
       freigabe ATT,                  
                                                          /* Freigabe für versteckte LM's        */
       tfe_ext_nr [ANZ_TFE_PORT][ L7_RUFNR_LEN + 1] ATT,
                                                          /* Nr für die externe Rufumleitung     */
                                                          /* der TFE                             */
       AVA ATT,                                     
                                                          /* Anrufvariante                       */
                                                          /* K_L7_T = Tagschltg                  */
                                                          /* K_L7_TN= Tagschltg + Nachtschltg    */
                                                          /* K_L7_N = Nachtschaltung             */
       RufKonfig ATT,                           
                                                          /* Parameter für Ausgabe Anrufliste    */
       ab_mode   [ ANZ_INT_AB_PORT ] ATT,   
                                                          /* Anrufbeantworter-Mode. Hiermit kann */
                                                          /* optional das Besetztzeichen nach    */
                                                          /* Ende der Verb. abgeschaltet werden  */
                                                          /* ab_mode[x]=K_L7_OFF mit Besetztzei. */
                                                          /* ab_mode[x]=K_L7_ON ohne Besetztzei. */
       geb_mode  [ ANZ_INT_AB_PORT ] ATT, 
                                                          /* Gebührenimpuls-Mode                 */
                                                          /* geb_mode[x]=K_L7_OFF ohne Geb.Imp.  */
                                                          /* geb_mode[x]=K_L7_ON   mit Geb.Imp.  */
       ava_aktiv ATT,                 
                                                          /* K_L7_ON = autom. Umschaltung aktiv  */
                                                          /* K_L7_OFF = nicht aktiv              */
       ava_ein_std ATT,           
                                                          /* Stunde zur Aktivierung Nachtschltg  */
       ava_ein_min ATT,       
                                                          /* Minute zur Aktivierung Nachtschltg  */
       ava_aus_std ATT,   
                                                          /* dito für Deaktivierung              */
       ava_aus_min ATT,
                                                          /* dito für Deaktivierung              */
       typtel    [ ANZ_INT_AB_PORT ] ATT, 
                                                          /* Spezialtelefone z.B. Beocom         */
                                                          /* TELNORMAL          0                */
                                                          /* TELSERVICE         4(nicht genutzt) */
                                                          /* TELBEOCOM          2                */
       vorwahl   [ VORWAHL_MAX_LEN + 1] ATT;  
                                                          /* örtliche Vorwahlnummer              */
                                                          /* nur für Beocom                      */
  byte msn_zuordnung [2][MAX_ANZ_INT_PORT * 2] ATT; 
                                                          /* welche Msn wird mit prio1/2 belegt  */
                                                          /* Struktur aus 2 Byte: extPort + MSN  */
  EINR_BIT_TYPE msn_berechtigung [ANZ_EXT_S0_PORT][MSN_MAX_ANZ] ATT;   
                                                          /* welche Tln dürfen diese Msn */
                                                          /* belegen                             */
  byte ext_chg_idx [ANZ_EXT_S0_PORT] ATT;                 
                                                          /* gibt an, welcher Index für RulChg   */
  GebKontoType geb_konto [ MAX_ANZ_INT_PORT ] ATT;    
                                                          /* besteht aus 3 Bytes pro Tln         */
                                                          /* Strukur aus 1 Byte + 1 Word         */
                                                          /* Byte mode 0=AUS 1=EIN               */
                                                          /* Word DM   DM-Betrag des             */
                                                          /*           Gebührenkonto             */
  byte pin_nr    [ L7_PINNR_LEN + 1] ATT;    
                                                          /* PIN für Ändern der Rul aus Ferne    */
  byte land ATT;                         
                                                          /* Landeskennung                       */
                                                          /* 0 = Deutschland                     */
                                                          /* 1 = Schweiz                         */
                                                          /* 2 = Holland                         */
                                                          /* 3 = Österreich                      */
                                                          /* 4 = Rußland                         */
                                                          /* 5 = Großbritanien                   */
                                                          /* 6 = Spanien                         */
                                                          /* 7 = Belgien                         */
                                                          /* 8 = Dänemark                        */
                                                          /* 9 = Euro                            */
  byte geb_art ATT;                  
                                                          /* Art der Gebührenübertagung          */
                                                          /* 0 = Facility                        */
                                                          /* 1 = Display                         */
                                                          /* 2 = Codeset                         */
  byte flash_time ATT;           
                                                          /* Länge der Flashzeit                 */
                                                          /* 0 = 50 - 110 msec                   */
                                                          /* 1 = 50 - 350 msec                   */
                                                          /* 2 = 50 - 750 msec                   */
  byte ab_fern ATT;          
                                                          /* Rul aus Ferne für Anrufbeantw.      */
                                                          /* 0 = Aus                             */
                                                          /* 1-8= Tln (bzw. 3-18 bei i416)       */
  byte buffer_anz ATT;   
                                                          /* BufferAnzeige über Pc-Term          */
                                                          /* 0 = Aus                             */
                                                          /* 1 = Ein                             */
  byte GespKonfig [ MAX_ANZ_INT_PORT  ] ATT; 
                                                          /* Angabe, ob die Rnr gespeichert wird */
                                                          /* GespKonfig[x]=K_L7_OFF- ohne Rne    */
                                                          /* GespKonfig[x]=K_L7_ON - mit Rnr     */
                                                          /* GespKonfig[x]=K_L7_GEK- Rnr gekürzt */
  byte GespMode  [ MAX_ANZ_INT_PORT  ] ATT; 
                                                          /* Angabe ob EepSpeicherung aktiv      */
                                                          /* GespMode[x]=0x00     - nicht aktiv  */
                                                          /* GespMode[x]=0x80     - aktiv        */
  byte GespRufKonfig ATT;               
                                                          /* Parameter für Speichg. Anrufliste   */
  byte msn_rufabw [ANZ_EXT_S0_PORT][ DDI_MAX_ANZ   ] ATT; 
                                                          /* welche MSN sollen bei Zweitanrufen  */
                                                          /* abgewiesen werden                   */
                                                          /* msn_rufabw[x]=K_L7_OFF nicht aktiv  */
                                                          /* msn_rufabw[x]=K_L7_ON  aktiv        */
  MASTER_BIT_TYPE master_tln ATT;                     
                                                          /* Masterfunktion anderer Tln als 1    */
                                                          /* Jedes Bit repraesentiert einen Tln  */
                                                          /* LSB=Tln1 / MSB=Tln16                */
                                                          /* Bit = 0 Keine Berecht. für Master   */
                                                          /* Bit = 1 Berechtigung   für Master   */
  byte waehl_ton_art ATT;                         
                                                          /* interner Wählton                    */
                                                          /* =K_L7_OFF - normal                  */
                                                          /* =K_L7_ON  - quasi Dauerton          */
  byte    stern_tasten_funktion ATT;                         
                                                          /* Rückfrage mit '*' im Zustant AmtWb  */
                                                          /* K_L7_OFF - ausgeschaltet            */
                                                          /* K_L7_ON  - eingeschaltet            */
                                                          /* Kann einen Wert von 0-99 enthalten  */
                                                          /* Dieser Wert entspricht sec          */
  byte    tfe_ext_zusatzzeit ATT;                        
                                                          /* Zusatzzeit für Apothekerschltg      */
                                                          /* Kann einen Wert von 0-99 enthalten  */
                                                          /* Dieser Wert entspricht sec          */
  byte    isdn2_gb ATT;                              
                                                          /* alter Ausbaustand in Enland         */
                                                          /* K_L7_OFF - ausgeschaltet            */
                                                          /* K_L7_ON  - eingeschaltet            */
  byte    notruf_clip ATT;                       
                                                          /* Anzeige der CallingPartyNumber      */
                                                          /* bei Notrufanschlüssen               */
                                                          /* K_L7_OFF - ausgeschaltet            */
                                                          /* K_L7_ON  - eingeschaltet            */
  byte    iwv_rfr_ziffer ATT;                
                                                          /* Ziffer für Rückfrage bei IWV-Tel    */
                                                          /* kann '1' .. '9' sein                */
  byte    geb_freq ATT;                  
                                                          /* 1=16Khz / 2=12Khz                   */
  byte    code_lade_nr [L7_RUFNR_LEN + 1] ATT; 
                                                          /* Rufnummer für die Codeladung        */
  byte    code_lade_max_ctr ATT;           
                                                          /* max. Anzahl derVersuche, den Server */
                                                          /* für die Codeladung zu erreichen     */
  byte    glob_no ATT;                 
                                                          /* Spezielle Funktion für Austria für  */
                                                          /* die sogenannte Global Number        */
  byte    old_ruf_rhytmus ATT;     
                                                          /* K_L7_ON = Amtsruf bei FskTel nicht  */
                                                          /*           vor dem eigentlichen Ruf- */
                                                          /*           rhythmus schicken         */
                                                          /* K_L7_OFF = Normalfall               */
  byte    ImpAnpass ATT;       
                                                          /* Impedanzanpassung                   */
  word    GrundFaktor ATT; 
                                                          /* Faktor für Anlagensumme             */
  word    UserFaktor ATT; 
                                                          /* Faktor für Teilnehmersumme          */
                                                          /* Bereich 1-32767 1/100 der Währung   */
                                                          /* z.B. 12Pf = 0,12DM = 12             */
  byte    kwz_mit_namen ATT;   
                                                          /* ab V 4.17 gibt es KWZ mit Namen     */
  byte    fsk_mit_namen ATT; 
                                                          /* Namen sollen geschickt werden       */
  byte    GtvSonderwunsch ATT;
                                                          /* Sonderwunsch von Gtv,nicht ver-     */
                                                          /* öffentlichte Einrichtprozedur. Steht*/    
                                                          /* dieses Byte auf K_L7_ON, dann die   */
                                                          /* Amtsberechtigung anders behandelt.  */
  byte    tfe_gsp_limitieren ATT;   
                                                          /* soll die Gesprächszeit der TFE      */
                                                          /* limitiert werden? 0=nein 1=ja       */
  word    tfe_gsp_zeit ATT;     
                                                          /* die max. Gesprächszeit in sec       */
  MASTER_BIT_TYPE master_isdn ATT;
                                                          /* Masterfunktion für ISDN-Tln         */
                                                          /* Jedes Bit repraesentiert einen Tln  */
                                                          /* LSB=Tln30/ MSB=Tln39                */
                                                          /* Bit = 0 Keine Berecht. für Master   */
                                                          /* Bit = 1 Berechtigung   für Master   */
  byte    tfe_int_diffzeit ATT; 
                                                          /* Normalerweise läuft der TFE-Ruf     */
                                                          /* 25 sec. Jetzt kann man die difftime */
                                                          /* programmieren, um den Ruf abzu-     */
                                                          /* kürzen. Eingabe kann 0 bis 20 sein, */
                                                          /* bei 0 bleibt es 25 sec Rufzeit, bei */
                                                          /* 20 werden es 5 sec Rufzeit.         */
  byte    isdn_mit_namen ATT; 
                                                          /* Namen per Display-Msg im Setup      */
  byte    TsForCamera ATT;
                                                          /* Sonderwunsch von GTV, nicht ver-    */
                                                          /* öffentlichte Einrichtprozedur. Steht*/
                                                          /* dieses Byte auf K_L7_OFF, dann wird */
                                                          /* das TS-Relais normal behandelt.     */
                                                          /* Steht das Byte auf 1, dann wird beim*/
                                                          /* Drücken des Klingelknopf1 das       */
                                                          /* TS-Relais geschaltet.               */
                                                          /* Steht das Byte auf 2, dann wird beim*/
                                                          /* Drücken des Klingelknopf2 das       */
                                                          /* TS-Relais geschaltet.               */
  byte Reserve   [82] ATT;  
                                                          /* Reservebytes für später             */
} EINRICHT_BLOCK;


typedef struct einr_typ 
{
  word    ISDN_PortType[ANZ_S0_PORT] ATT;   /* Hierin wird der Typ der S0-Schnittstelle abgelegt  */
} TYP_BLOCK;

typedef struct einr_msn 
{
  byte    msn [ ANZ_EXT_S0_PORT ][ MSN_MAX_ANZ ][ MSN_MAX_LEN + 1] ATT;
                                           /* Dreidimensionales Feld für Speicherung der MSN's   */
  byte    ddi [ ANZ_EXT_S0_PORT ][ DDI_MAX_ANZ ][ DDI_MAX_LEN + 1] ATT;
                                           /* Dreidimensionales Feld für Speicherung der DDI's   */
} MSN_BLOCK;


typedef struct tln_daten  
{
  byte anrufschutz [ MAX_ANZ_INT_PORT ] ATT,
                                           /* Anrufschutz für einen Teilnehmer                   */
                                           /* K_L7_OFF   - kein Anrufschutz                      */
                                           /* K_ARSI     - Anrufschutz intern                    */
                                           /* K_ARSE     - Anrufschutz extern                    */
                                           /* K_ARSB     - Anrufschutz beide                     */
       anklopfschutz[ MAX_ANZ_INT_PORT ] ATT,
                                           /* Anklopfschutz für einen Teilnehmer                 */
                                           /* K_L7_OFF   - kein Anklopfschutz                    */
                                           /* K_AKSI     - Anklopfschutz intern                  */
                                           /* K_AKSE     - Anklopfschutz extern                  */
                                           /* K_AKSB     - Anklopfschutz beide                   */
       rufumleitung [ MAX_ANZ_INT_PORT ] ATT,
                                           /* Rufumleitung zu K_PORT_UNASS oder Nummer des Tln   */
       follow_me    [ MAX_ANZ_INT_PORT ] ATT,
                                           /* Rufumleitung von K_L7_ON=Ein / K_L7_OFF=Aus        */
       hotline      [ MAX_ANZ_INT_PORT ] ATT,  
                                           /* automatische Wahl K_L7_ON=Ein / K_L7_OFF=Aus       */
       CLIP_aktiv   [ MAX_ANZ_INT_PORT ] ATT,  
                                           /* Mitsenden der eigenen Rufnummer zum Anrufer        */
       COLP_aktiv   [ MAX_ANZ_INT_PORT ] ATT;  
                                            /* Mitsenden der eigenen Rufnummer zum Angerufenen    */
  WeckType weckzeit [ MAX_ANZ_INT_PORT ] ATT;  
                                           /* besteht aus                                        */
                                           /* weckzeit.mode=0 nicht aktiv (K_WK_AUS)             */
                                           /* weckzeit.mode=1 einmal wecken (K_WK_EINMAL)        */
                                           /* weckzeit.mode=2 täglich wecken (K_WK_DAUER)        */
                                           /* weckzeit.mode=3 täglich terminruf (K_WK_TERMIN)    */
                                           /* weckzeit.mode=4 täglich wecken an best. Wochentagen*/
                                           /*                 siehe 'weck_tage' (K_WK_W_TAGE)    */
                                           /* weckzeit.mode=5 täglich terminruf an best. Wochent.*/
                                           /*                 siehe 'weck_tage' (K_WK_T_TAGE)    */
                                           /* weckzeit.stunde                                    */
                                           /* weckzeit.minute                                    */
  byte rul_nr [ MAX_ANZ_INT_PORT][L7_RUFNR_LEN + 2] ATT; 
                                           /* Rufumleitung über 2 B-Kanäle für Prof.             */
  byte rul_art   [ MAX_ANZ_INT_PORT ] ATT;
                                           /* Art der Rufumleitung                               */
                                           /* rul_art[x]=CF_CLR   nix                            */
                                           /* rul_art[x]=CFU      ständig                        */
                                           /* rul_art[x]=CFNR     nach Zeit                      */
                                           /* rul_art[x]=CFB      bei Besetzt                    */
  byte weck_tage [ MAX_ANZ_INT_PORT ] ATT;
                                           /* für Tln1-8 jeweils 1 Byte. Bit0 bedeutet Montag,   */
                                           /* Bit1 Dienstag .. Bit7=Sonntag                      */
                                           /* wecktage befindet sich nicht in weckstruct, weil   */
                                           /* es erst später hinzugekommen ist                   */
  char tln_name [MAX_ANZ_INT_PORT][L7_NAME_LEN + 1] ATT; 
                                           /* Name für TlnPort. Max 8 Zeich+Endezeich            */
  byte Reserve        [  100 ] ATT;
                                           /* Reserve für später                                 */
} TLN_BLOCK;


typedef struct int_port_tab  
{
  char rufnr [MAX_ANZ_PORT] [ L7_INT_RUFNR_LEN + 1] ATT;
} INT_PORT_TAB;

#ifdef LM_UTA
typedef struct lcr_kunden_data  
{
  byte lcr_ausnnr[L7_ANZ_LCRTAB2][L7_RUFNR_LEN+1];  /* Ausnahmenummern bzw -bereiche vom Kunden  */
  byte Reserve        [  500 ];                     /* Reserve für später                        */
} LCR_KUNDE_BLOCK;
#else
  #ifdef LM_LCRD
  typedef struct lcr_kunden_data  
  {
    byte  lcr_zone_4 [L7_MAX_ANZ_ZONE4][(L7_LCR_VORW_MAX_LEN +1)/2];  /* Vorwahleintr. genibbled   */
    byte  lcr_zone_5 [L7_MAX_ANZ_ZONE5][(L7_LCR_VORW_MAX_LEN +1)/2];  /* Vorwahleintr. genibbled   */
    byte Reserve        [  20  ];                     /* Reserve für später                        */
  } LCR_KUNDE_BLOCK;
  #endif
#endif  

#ifdef LM_UTA
typedef struct lcr_provider_data  
{
  char lcr_vers [11];                         /* hier soll v. PC 'VERS Ux.xx' rein -> gült. Daten*/
  byte  lcrpin_nr  [ L7_LCR_PINNR_LEN + 1];        /* PIN für LCR                                */
  byte  presel_nr  [L7_MAX_PROVI_LEN + 1];         /* Preselection-Nummer des Providers (UTA)    */
  byte  lcr_aktiv;
  byte  provi_einwahl_nr [L7_ANZ_EINW_NR][L7_RUFNR_LEN + 1];       
                                                   /* Rufnummern des Providers für Einwahl       */
  LcrTabType lcr_tabelle [L7_ANZ_LCRTAB1];         /* enthält: */
                                                   /* -Rufnummer bzw -nbereich für Ausnahme (UTA)*/
                                                   /* -bzw. Preselection m. Provider (ProviRufnr)*/
                                                   /* -Beginn, Ende und Wochentag/Feiertag       */
                                                   /* -Preselection-Nummer                       */
  FeiertFixType feiert_fix [L7_ANZ_FEIERT_FIX];    /* feste Feiertage                            */
  FeiertBewType feiert_bew [L7_ANZ_FEIERT_BEW];    /* bewegliche Feiertage                       */
  byte  anz_fallback;                              /* Anzahl der Anwahlversuche bis Fallback     */
  byte Reserve        [  499 ];                    /* Reserve für später                         */
} LCR_PROVIDER_BLOCK;
#else
  #ifdef LM_LCRD
  typedef struct lcr_provider_data  
  {
    char lcr_vers [11];                         /* hier soll v. PC 'VERS Dx.xx' rein -> gült. Daten*/
    byte  provi_rufnr [L7_ANZ_PROVIDER][L7_MAX_PROVI_LEN +1]; /* Rufnummer der Provider            */
    char  provi_name [L7_ANZ_PROVIDER][L7_PROVI_NAME_LEN +1]; /* Name für Provider, 10 Zeich+Endez */
    byte  lcr_aktiv;
    byte  lcr_tln_aktiv [MAX_ANZ_INT_PORT];          /* pro Tln LCR aktiviert                      */
    byte  anz_fallback;                              /* Anzahl der Anwahlversuche bis Fallback     */
    byte  lcr_zone_0 [L7_MAX_ANZ_ZONE0][(L7_LCR_VORW_MAX_LEN +1)/2];  /* Vorwahleintr. genibbled   */
    byte  lcr_zone_1 [L7_MAX_ANZ_ZONE1][(L7_LCR_VORW_MAX_LEN +1)/2];  /* Vorwahleintr. genibbled   */
    byte  lcr_zone_2 [L7_MAX_ANZ_ZONE2][(L7_LCR_VORW_MAX_LEN +1)/2];  /* Vorwahleintr. genibbled   */
    byte  lcr_zone_3 [L7_MAX_ANZ_ZONE3][(L7_LCR_VORW_MAX_LEN +1)/2];  /* Vorwahleintr. genibbled   */
    byte  lcr_zone_6 [L7_MAX_ANZ_ZONE6][(L7_LCR_VORW_MAX_LEN +1)/2];  /* Vorwahleintr. genibbled   */
    byte  lcr_zone_7 [L7_MAX_ANZ_ZONE7][(L7_LCR_VORW_MAX_LEN +1)/2];  /* Vorwahleintr. genibbled   */
    byte  lcr_zone_8 [L7_MAX_ANZ_ZONE8][(L7_LCR_VORW_MAX_LEN +1)/2];  /* Vorwahleintr. genibbled   */
    byte  lcr_zone_9 [L7_MAX_ANZ_ZONE9][(L7_LCR_VORW_MAX_LEN +1)/2];  /* Vorwahleintr. genibbled   */
    LcrTabType lcr_tabelle [2][L7_ANZ_LCR_ZONEN][L7_ANZ_LCRTAB1]; /* LCR-Tabelle und Fallback-Tab. */
                                                     /* enthält:                                   */
                                                     /* -Beginn, Ende und Wochentag/Feiertag       */
                                                     /* -Provider-Nummer für Call by Call          */
    byte  bel_len_uanlage;                           /* Anz der Ziffern zur Amtsbel in Hauptanlage */
    byte Reserve        [ 125 ];                     /* Reserve für später                         */
  } LCR_PROVIDER_BLOCK;
  #endif
#endif


