; Windows Modem Setup File - enthaelt die notwendigen Registry-Eintraege
; Copyright (c) 1997 c't/Michael Huebler
; c't-Dialer fuer Eurit-Serie

; Installation:
; * Benoetigt Unimodem/V, z.B. erhaeltlich von
;   ftp://ftp.microsoft.com/Softlib/MSLFILES/UNIMODV.EXE oder
;   http://www.mtnsys.com/pages/download.htm (Caller-ID kann laenger als 10 Ziffern sein)
; * Systemsteuerung: * Modem hinzufuegen (keine automatische Erkennung!)

; Nach einer Aenderung dieser Datei:
; * Systemsteuerung: * Modem entfernen
;                    * Modem-Dialog beenden (!)
;                    * Modem wieder hinzufuegen

[Version] ; Standard-Header
LayoutFile=layout.inf
Signature="$Windows95$"
Class=Modem

[Manufacturer] ; Liste der Hersteller
%ct%=ct

[ct] ; Liste der Geraete der einzelnen Hersteller
%ctDialer%=ctDialer

[Strings] ; Liste der oben verwendeten Strings
ct = "c't/Michael Huebler"
ctDialer = "c't-Dialer"

[ctDialer] ; Liste der Abschnitte, die fuer die einzelnen Geraete installiert werden muessen
AddReg=all.Addreg, external.Addreg, ctDialer.Addreg

[all.Addreg] ; Eintraege, die bei jedem Modem enthalten sein sollten
HKR,,FriendlyDriver,,unimodem.vxd
HKR,,DevLoader,,*vcomm
HKR,,PortSubClass,1,02
HKR,,ConfigDialog,,modemui.dll
HKR,,EnumPropPages,,"modemui.dll,EnumPropPages"
HKR, Init, 1,, "AT<cr>"

; Soll automatisch eine Logdatei erzeugt werden, kann man bei den naechsten beiden Zeilen
; die Kommentarzeichen (";") entfernen:
; HKR,, Logging, 1, 01
; HKR,, LoggingPath,,"E:\WINDOWS\ModemLog.txt"

[external.Addreg] ; Eintrag fuer externe Modems
HKR,, DeviceType, 1, 01

[ctDialer.Addreg] ; c't-Dialer-spezifische Eintraege
HKR,, Properties, 1, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00, 20,00,00,00, 60,09,00,00, 00,00,00,00
; SoftwareFlowControl ist eingeschaltet (ein Workaround, weil Windows automatisch
; HardwareFlowControl vorgibt, wenn FlowControl ganz ausgeschaltet ist. HWFC vertraegt
; sich aber nicht mit dem c't-Dialer)

HKR, Settings, FlowControl_Off,, "AT<cr>"
HKR, Settings, FlowControl_Hard,, "AT<cr>"
HKR, Settings, FlowControl_Soft,, "AT<cr>"

HKR,, VoiceProfile, 1,05,00,46,00
; Bedeutung der Bits: (aus: "REG.DOC" aus dem Modem-SDK von Microsoft)
; 01,00,00,00 This is a voice modem (should always be set).
; 02,00,00,00 Modem has any element of a TAPI phone device. It can play audio to the handset
,             and/or report handset hookswitch events.
; 04,00,00,00 Modem has speakerphone phone device.
; 20,00,00,00 Modem will use serial wave driver for playing audio to the handset and line.
; 40,00,00,00 Set if dial string must always end with DialSuffix in voice mode.
; 80,00,00,00 Modem does not support Caller ID.
; 00,01,00,00 Modem speaker volume can be changed with multimedia mixer.
; 00,02,00,00 Force blind dialing after dialtone detection. long dial strings are broken up
;             into two or more dial strings. If the modem tries to detect dialtone every
;             time the dial command is issued, this bit should be set.
; 00,04,00,00 Speakerphone state must be reset after recording from line.
; 00,08,00,00 Speakerphone state must be reset after playing from line.
; 00,10,00,00 Modem does not report distinctive ring.
; 00,20,00,00 Modem supports distinctive ringing with ring duration (DRON and DROF).
;             Ignored if modem does not support distinctive ringing.
; 00,40,00,00 If distinctive ringing is enabled, first ring reported by modem may not be
;             correct.  Unimodem will not report the first ring.
; 00,80,00,00 Modem does not report first ring when distinctive ringing is enabled.
; 00,00,02,00 Modems does not support DTMF generation while in voice mode
; 00,00,04,00 Modem does not monitor DTMF digits while in voice mode.
; 00,00,08,00 If set, the UART baud rate will be set before issuing StartPlay or StartRecord
;             commands.  Otherwise, it will be set after the StartPlay or StartRecord
;             commands.
; 00,00,10,00 If set, the UART baudrate will be reset after the StopPlay or StopRecord
;             command is issued.
; 00,00,20,00 Indicates that modem keeps handset disconnected from modem while in voice
;             mode. If this bit is set, Unimodem will display "Talk/Drop" dialog during
;             outgoing calls.  Unimodem will not allow the line to be opened as
;             Owner/InteractiveVoice.
; 00,00,40,00 Indicates the speakerphone cannot be muted.
;             Speakerphone can be ONHOOK or MICSPEAKER.

HKR,, SpeakerPhoneSpecs, 1, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00
; Bedeutung: (aus: "REG.DOC" aus dem Modem-SDK von Microsoft)
; typedef struct SPEAKERPHONE_SPEC {
;         DWORD SpeakerPhoneVolMax;
;         DWORD SpeakerPhoneVolMin;
;         DWORD SpeakerPhoneGainMax;
;         DWORD SpeakerPhoneGainMin;
; } SPEAKERPHONE_SPEC;

HKR, Init, 2,, "ATE0<cr>"                 ; Initialisierung: Echo aus
HKR, Monitor, 1,, "None"                  ; Befehl: Auf ankommende Rufe warten
                                          ; Bei "None" wird nichts zum Modem uebertragen

HKR, Hangup, 1,, "ATH<cr>"                ; Auflegen
HKR, Answer, 1,, "ATA<cr>"                ; Abheben
HKR, VoiceAnswer, 1,, "ATA<cr>"           ; Abheben

HKR, Settings, Prefix,, "AT"              ; Waehlen: 1. Teil
HKR, Settings, DialPrefix,, "D"           ; Waehlen: 2. Teil, danach folgt die Nr.
HKR, Settings, Terminator,, "<cr>"        ; Waehlen; 3. Teil (Schluss)

HKR, EnableCallerID, 1,, "ATS0=135<cr>"   ; Dies wird gesendet, wenn auf einen Anruf
                                          ; gewartet wird.
                                          ; Die Antwort ("><cr><lf>") wird als Caller-ID
                                          ; gewertet (sonst verarbeitet Unimodem/V die
                                          ; eigentliche Caller-ID nicht richtig)
                                          ; s. RESPONSES: ">" und "<lf>"

HKR, EnableDistinctiveRing, 1,, "AT<cr>"  ; MSN-Unterscheidung bei ankommenden Rufen (entf.)
HKR, VoiceDialNumberSetup, 1,, "AT<cr>"   ; spezieller Befehl bei abgehenden Rufen (entf.)

HKR,, CallerIDPrivate,,"S"                ; Gehoert zu den Responses: Caller-ID unterdrueckt
HKR,, CallerIDOutSide,,"U"                ; Gehoert zu den Responses: Caller-ID unbekannt
HKR,, VariableTerminator,,"<cr>"          ; Gehoert zu den Responses: Ende der Caller-ID

; Die moeglichen Antworten:
; Syntax (vereinfacht):
;   Zeile: HKR, Responses, "Antwort", 1, Typ, 00, 00,00,00,00, 00,00,00,00
;   Antwort: Genaue Zeichenfolge, die an der seriellen Schnittstelle ankommt
;   Typ: 00 = OK
;        01 = Negotiation Progress (Information ueber Verbindung)
;        02 = CONNECT
;        03 = ERROR
;        04 = No Carrier
;        05 = No Dialtone
;        06 = Busy
;        07 = No Answer
;        08 = Ring

HKR, Responses, "OK<cr><lf>",         1, 00, 00, 00,00,00,00, 00,00,00,00

HKR, Responses, "[RI",                1, 08, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "NG]",                1, 95, 00, 00,00,00,00, 00,00,00,00
; "[RING]CallerID" in zwei Teile zerlegt (Version 1.1-5)

HKR, Responses, "[CALL_I_B",          1, 08, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "EGIN]",              1, 95, 00, 00,00,00,00, 00,00,00,00
; "[CALL_I_BEGIN]CallerID" in zwei Teile zerlegt (Version 1.2)

HKR, Responses, ">",                  1, 95, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<lf>",               1, 00, 00, 00,00,00,00, 00,00,00,00
; s. "EnableCallerID"

HKR, Responses, "[MSN]A<cr><lf>",     1, 18, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "[MSN]B<cr><lf>",     1, 19, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "[MSN]C<cr><lf>",     1, 1a, 00, 00,00,00,00, 00,00,00,00

; und nun noch einige moegliche Antworten, die nichts bewirken sollen:
HKR, Responses, "<cr>",               1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>",           1, 01, 00, 00,00,00,00, 00,00,00,00
; <cr><lf> muss einzeln aufgefuehrt sein, denn sonst wuerde das <lf>
; alleine als "OK" ausgewertet (s. "EnableCallerID"). Wenn Unimodem/V aber auf
; einen Anruf wartet, wuerde das "OK" als "RING" interpretiert und so einen
; nicht vorhandenen Anruf vorspiegeln.
HKR, Responses, "[CALL_I]",           1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "[CALL_I_END]",       1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "[CALL_O]",           1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "[CALL_O_BEGIN]",     1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "[CALL_O_END]",       1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "[CONNECT]<cr><lf>",  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>[MSN]A",     1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>[MSN]B",     1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>[MSN]C",     1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "[DISCON]",           1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "[DUR]",              1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "[TAX]",              1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "DM",                 1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "FR",                 1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, " ",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, ":",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, ".",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "0",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "1",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "2",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "3",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "4",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "5",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "6",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "7",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "8",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "9",                  1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "9",                  1, 01, 00, 00,00,00,00, 00,00,00,00
