Übersicht über die Voice-Funktionalität des ELSA MicroLink 33.6TS

Voicemodems ermöglichen die Aufnahme und Wiedergabe von Sprache über eine Telefonleitung oder Microfon und Lautsprecher. Die Anwendungen reichen vom einfachen Anrufbeantwortern bis zu Voice-gestützten Bedienoberflächen für Mailboxen.

Datenfluß bei Aufnahme und Wiedergabe

Aufnahme Wiedergabe
Telefonleitung Sprache
analog
Sprache
analog
Datenpumpe Abtasten mit 16 Bit - 7200/11025Hz
16 Bit
ADPCM/PCM-Coder
2,4,8 Bit
in 16 Bit Register sammeln
16 Bit
Analog wandeln
16 Bit
ADPCM/PCM-Decoder
2,4,8 Bit
in 2,3,4 Bit zerschneiden
16 Bit
Modemcontroller 16 Bit -> 2 Byte
1Byte
Modem-Buffer
2 Byte -> 16 Bit
1Byte
Modem-Buffer
Host 1 Byte
in Datei schreiben
1Byte
Datei lesen

Notwendige Übertragungsraten auf der Schnittstelle

VerfahrenAuflösung Rechnerische Übertragungsrate Notwendige serielle Übertragungsrate
ADPCM2 Bit/Sample:7200 1/s * 2 Bit = 14.400 Bit/s 19.200 Bit/s
ADPCM4 Bit/Sample:7200 1/s * 4 Bit = 28.800 Bit/s 38.400 Bit/s
PCM8 Bit/Sample:7200 1/s * 8 Bit = 57.600 Bit/s 115.200 Bit/s
PCM8 Bit/Sample:11025 1/s * 8 Bit = 88.200 Bit/s 115.200 Bit/s

Stillekompression (Silence-Deletion)

Die Stillekompression, d.h. das Nicht-Kodieren von Sprachpausen, wird durch das ELSA MicroLink 33.6TS nicht unterstützt

Stilleerkennung (Silence-Detection)

Wird eine Stillephase erkannt, die eine vorgewählte Dauer (AT#VSP) überschreitet, wird das Ende der aufzunehmenden Nachricht angenommen, und der Modemcontroller meldet ein <dle> q zum Host, der dann die Voiceaufnahme beendet.

Byteorder

Bei der Aufnahme trennt der Modemcontroller 16 Bit Voicedaten in 2 Byte und schreibt sie nacheinander in den Modembuffer. Dabei werden zuerst die unteren und dann die oberen 8 Bit gespeichert. Da viele Anwendungsprogramme noch eine alte Norm verwenden, bei der die Reihenfolge des Abspeicherns umgekehrt ist, unterstützt das Modem beide Verfahren.

Setzt man das Register S229 / Bit0 = 0 (default), arbeitet das ELSA MicroLink 33.6TS nach der neuen, heute gültigen Norm, bei S229 / Bit0 = 1 nach der alten.

Die Wiedergabe von Voicedateien, die nach der jeweils anderen Norm aufgenommen wurden, ist bei 2 und 4 Bit/Sample recht "kratzig", aber noch gut zu verstehen.

Wählparameter Punkt

Enthält die Anwahlzeichenkette einen Punkt ".", dann legt das Modem nach der Wahl auf, sobald es einen Schleifenstrom erkennt, also wenn das nachgeschaltete Telefon abgenommen wird.

Kurzübersicht Voicemodem AT-Befehle nach Rockwell (#V)

BefehlZulässige Werte Erläuterung
#cls=<class>0,1,2,2.0,8 Auswahl Klasse:
p=0: Datenmodem
p=1: Fax Class 1 (TIA-578)
p=2: Fax Class 2
p=2.0: Fax Class 2.0 (TIA-592)
p=8: Voice Class (TIA/EIA/IS-101, Rockwell)
#mdl?-Anzeige Modemtyp
#mfr?-Anzeige Hersteller
#rev?-Anzeige Firmware
#vci?-Anzeige Kommpressionsmethode
#vbq?-Anzeige Puffergröße
#vls=<p>0,1,2,3,4,6 I/O-Gerät auswähle
p=0: Telefonleitung
p=1: nachgeschaltetes Telefon
p=2: Micro und Lautsprecher
p=3: nur Micro
p=4: Telefonleitung und Lautsprecher
p=6: Speakerphone
#bdr=<p>0..6,8,16,24,48 Bitrate setzen (=p*2400), die automatische Bitratenerkennung bleibt eingeschaltet
#vsr=<p>7200,11025 Abtastrate; bei 11025 nur 8Bit/PCM; bei 11025 während Aufnahme und Wiedergabe keine DTMF-Ton-Erkennung
#vbs=<p>2,4,8 Auflösung (Bit/Sample), bei 2 und 4 ADPCM, bei 8 PCM
#vgt=<p>128..255 Wiedergabelautstärke
#vgr=<p>128..255 Aufnahmelautstärke
#vtx-Voice-Daten senden
#vrx-Voice-Daten empfangen
#vts=<p><p><p>... p=0-9,A-D,*,#,!
{p,m}
[f1,f2,m]
DTMF-Ton senden mit Dauer gemäß #vbt;
DTMF-Ton senden mit Dauer m [100ms];
Frequenzen f1 und f2 senden (300-3400Hz) mit Dauer m [100ms];
DTMF-Töne können auch mit ATDp erzeugt werden
#vbt=<p>0..40 [100ms] Dauer eines Piep- oder DTMF-Tones
#vsp=<p>0..255 [100ms] Ruheerkennungszeit; Erkennt das Modem in der Aufnahme eine Stillephase, die länger als #vsp ist, dann meldet es ein <dle>q zum Host
#vss=<p>0..3 Empfindlichkeit der Stilleerkennung
#vtd=<p1>,<p2>,<p3>... pn=0..3F hexAusblenden von dle-Meldungen
#vsd=<p>0 Stille-Kompression aus; wird nicht unterstützt
#vra=<p>0..255 [100ms] "Ringback goes away" Timer; Das originate-Voice-Modem erkennt am Ausbleiben des Ringbacks (Intervallzeit > #vra), ob der Angerufene abgehoben hat.
#vrn=<p>0..255 [100ms] "Ringback never came" Timer; Das originate-Voice-Modem erkennt am Fehlen des Ringbacks (#vrn-Zeit abgelaufen), ob der Angerufene schon vor dem ersten Ringback abgehoben hat.
#vpp=<p>0 Packet Protokoll (immer abgeschaltet)

Kurzübersicht Voicemodem AT-Befehle nach TR29.2 (TIA/EIA/IS-101)

BefehlZulässige Werte Erläuterung
+fclass=<class>0,1,2,2.0,8 Auswahl Klasse:
p=0: Datenmodem
p=1: Fax Class 1 (TIA-578)
p=2: Fax Class 2
p=2.0: Fax Class 2.0 (TIA-592)
p=8: Voice Class (TIA/EIA/IS-101, Rockwell)
+vls=<p>0,1,7,14 I/O-Gerät auswählen
p=0: auflegen
p=1: Telefonleitung
p=7: Micro und Lautsprecher
p=14: Micro und Lautsprecher
+vpr=<p>0..6,8,16,24,48 Bitrate setzen (=p*2400) Die automatische Bitratenerkennung bleibt eingeschaltet
+vgt=<p>128..174 Wiedergabelautstärke
+vgr=<p>128..255 Aufnahmelautstärke
+vtx-Voice-Daten senden
+vrx-Voice-Daten empfangen
+vts=<p><p><p>...=p p=0-9,A-D,*,#,!
={p,m}
=[f1,f2,m]
DTMF-Ton senden mit Dauer gemäß +vtd;
DTMF-Ton senden mit Dauer m [10ms]
Frequenzen f1 und f2 senden (300-3400Hz) mit Dauer m [10ms]; DTMF-Töne können auch mit ATDp erzeugt werden
+vtd=<p>0..255 [10ms] Dauer eines Piep- oder DTMF-Tones
+vit=<p>0..60 [1s] Schnittstellen Inaktivitätstimer
+vip-Voice-Register auf Standardkonfiguration
+vem=<p>p=32Bit hexAusblenden von dle-Meldungen
+vsd=<sds>,<sdi>sds=0..143
sdi=10..200 [100ms]
sds = Empfindlichkeit der Stilleerkennung
sdi = Mindestdauer einer Sprachpause
Erkennt das Modem in der Aufnahme eine Stillephase die länger als <sdi> ist, dann meldet es ein <dle>q zum Host
+vsm=<cml>,<vsr>,<scs>,<sel> cml=5,7
vsr=7200,11025
scs=0,124..132
sel=0
Kompression
Methode cml = 5 bzw. 7 entspricht 4 bzw. 2 Bit/Abtastwert
vsr = Abtastrate
scs = Kompressionsempfindlichkeit
sel = Manipulation der Pausenlänge abgeschaltet
+vra=<p>0..255 [100ms] "Ringback goes away" Timer; Das originate-Voice-Modem erkennt am Ausbleiben des Ringbacks (Intervallzeit > +vra), ob der Angerufene abgehoben hat.
+vrn=<p>0..25 [1s] "Ringback never came" Timer; Das originate-Voice-Modem erkennt am Fehlen des Ringbacks(+vrn-Zeit abgelaufen), ob der Angerufene schon vor dem ersten Ringback abgehoben hat.
+vpp=<p>0 Paket Protokoll (immer abgeschaltet)
+vnh=<p>0..2 Automatic Hangup Controle; Nach einem Rückfall von Voice auf eine erfolglose Fax- oder Datenverbindung wird das Modem nicht auflegen, wenn vorher +vnh=1 oder 2 gesetzt wurde, so daß es wieder auf Voice zurückfallen kann. Bei +vnh=2 wird das Modem sogar bei ATH nicht auflegen.

Modem-Rückmeldungen

RING Rufmeldung (nur nach Verwendung eines Rockwell-Befehls)
VCONVoice Online Command Mode
Das Modem wird mit ATA oder ATD an die Telefonleitung oder an Mikrofon und Lautsprecher geschaltet, oder es hat eine Aunahme oder Wiedergabe beendet und kehrt in den Voice Online Command Mode zurück (nur nach Verwendung eines Rockwell-Befehls)
OK Voice Online Command Mode
Das Modem wird mit ATA oder ATD an die Telefonleitung oder an Mikrofon und Lautsprecher geschaltet, oder es hat eine Aunahme oder Wiedergabe beendet und kehrt in den Voice Online Command Mode zurück (nur nach Verwendung eines IS101-Befehls)
CONNECTVoice Action Mode
Das Modem beginnt mit mit #/+VRX eine Aufnahme oder #/+VTX eine Wiedergabe.

dle-Sequenzen: Modem --> Host

Alle Ereignismeldungen vom Modem zum Host werden über dle-Sequenzen abgehandelt. Dem informationstragenden Byte wird ein <dle> (10 hex = 016 dez = ^p) vorangestellt. Die dle-Sequenz kann einzeln zum Host geschickt oder in den Datenstrom eingefügt werden. Daten-dles wurden vorher in ein <dle><dle> umgewandelt, um sie von anderen dle-Sequenzen zu unterscheiden.

Wenn das Modem ein Ereignis (z.B. Busy) erkannt hat, schickt es die zugehörige dle-Sequenz (<dle>b) zum Host, das Modem wird aber nicht selbst reagieren (auflegen), sondern ist darauf angewiesen, daß das Anwenderprogramm die gerade laufende Voiceaktion beendet und auflegen läßt. Das ordnungsgemäße Verhalten des Voicemodems ist daher im Wesentlichen durch das Anwenderprogramm bestimmt.

Hinweis: Bei 11025 Hz (8 Bit/PCM) werden während Aufnahme und Wiedergabe keine DTMF-Töne erkannt.

<dle> bBesetztton (Busy)
<dle> dWählton (Dialtone)
<dle> rRufton (Ringback)
<dle> eRufton Datenmodem (1300 Hz)
<dle> cRufton Fax (1100 Hz)
<dle> aAntwortton Fax oder Daten (2100 Hz)
<dle> fAntwortton Daten Bell (2225 Hz)
<dle> qStille nach Sprechen (quiet)
<dle> sStille ohne vorangegengene Sprache (silence)
<dle> oBufferüberlauf wähernd der Aufnahme (overrun)
<dle> uBuffer leer während Wiedergabe (underrun)
<dle><dle>einzelnes <dle> (keine Meldung, sondern Daten)
<dle><etx>markiert das Ende eines Voicedatenblocks

Nach Verwendung eines Rockwell-Befehls aus {AT#CLS, AT#VLS, AT#VRX, AT#VTX}:

<dle> n DTMF-Ton n (0..9,A..D,*,#) erkannt (Nur bei 7200Hz Abtastrate!)
<dle> h Nachgeschaltetes Telefon aufgelegt (Handset down)
<dle> t Nachgeschaltetes Telefon abgehoben (Handset up)

Nach Verwendung eines IS101-Befehls aus {AT+FCLASS, AT+VLS, AT+VRX, AT+VTX}:

<dle> n <dle> ~ DTMF-Ton n (0..9,A..D,*,#) erkannt (Nur bei 7200Hz Abtastrate!)
<dle> R Rufmeldung (ring)
<dle> h Nachgeschaltetes Telefon aufgelegt (Handset down)
<dle> H Nachgeschaltetes Telefon abgehoben (Handset up)

dle-Sequenzen: Host --> Modem

Mit diesen dle-Sequenzen steuert der Host das Modem während Aufnahme undWiedergabe.

<dle> uWiedergabe lauter
<dle> dWiedergabe leiser
<dle> pWiedergabepause
<dle> rFortfahren nach Pause
<dle><can>Aufnahme/Wiedergabe beenden (bei Wiedergabe: Puffer löschen); Bei Rockwell: anschliessend VCON, bei IS101: in +vtx bleiben)
<dle><etx>Aufnahme/Wiedergabe beenden
<dle><dle>einzelnes <dle> (keine Meldung, sondern Daten)
<dle><sub>zwei <dle>s (keine Meldung, sondern Daten)
<dle> ?Abfrage der freien Bufferkapazität

Beispiel: Das Modem arbeitet als Anrufbeantworter

HostModemAnrufer Kommentar
AT#CLS=8Voice-Class setzen
AT#VLS=0I/O-Kanal = Telefonleitung
WähltVerbindung herstellen
RINGRuf liegt an
AT#VBS=22 Bit/Abtastwert
AT#VSS=2Stilleerkennung einschalten
AT#VSP=30Modem soll ab 3s Stille melden
AT#VSD=1Stillekompresssion an
AT#BDR=16Schnittstelle auf 38400bps
ATAModem schaltet an die Leitung
VCONerwartet AT-Kommando
AT#VTXVoice Wiedergabe
CONNECTerwartet Voicedaten
Sendet VoicedatenHört Ansage "Hier spricht der automatische ..."
<dle><etx>Ende der Wiedergabe
VCONerwartet AT-Kommando
AT#VTS=[1000, ,10]1000Hz, 1s -->Piepton
AT#VRXAufnahme
CONNECT
Sendet VoicedatenAnrufer sprichtAufnehmen der Nachricht
Kurze Sprechpause
PausenzeichenWeitersprechen
Pausenlänge
Sendet VoicedatenAnrufer sprichtWeitersprechen
<dle> qmehr als 3s Stille
XAbbruch, (fast) jedes Zeichen
<dle><etx>Ende der Aufnahme
VCONerwartet AT-Kommando
AT#VTXVoice Wiedergabe
CONNECT
Sendet VoicedatenAnrufer hört Endabsage"Wir danken für ihren Anruf ..."
<dle><etx>Ende der Wiedergabe
VCONerwartet AT-Kommando
ATHAuflegen
OK

Beispiel: Das Voice-Modem wird von einem Faxgerät angerufen

HostModem Anrufer Kommentar
AT#CLS=8 Voice-Class setzen
AT#VLS=0 I/O-Kanal = Telefonleitung
Anrufer wählt
RING Ruf liegt an
AT#VSS=2 Stilleerkennung einschalten
AT#VSP=30 Modem soll ab 3s Stille melden
AT#VSD=1 Stillekompresssion an
ATA Modem schaltet an die Leitung
VCON erwartet AT-Kommando
AT#VTX Voice Wiedergabe
CONNECT erwartet Voicedaten
Sendet VoicedatenAnrufer hört Ansage "Hier spricht der automatische ..."
<dle> cFaxrufton Gegenstelle ist ein Faxgerät
<dle><etx> Wiedergabe abbrechen
VCON erwartet AT-Kommando
Anwenderprogramm ruft sein Faxprogramm auf
AT#CLS=2 FaxClass = 2
ATA es wird eine Faxverbindung aufgebaut

Hinweis: Wenn das Anwenderprogramm die <dle>-Sequenz nicht auswertet, wird das Modem weiterhin im Voicemodus arbeiten, obwohl es einen Faxrufton erkannt hat. Der Moduswechsel kann nur durch das Anwenderprogramm erfolgen.

In gleicher Weise ist ein Rückfall auf Datenmodembetrieb möglich, wenn ein <dle>e (Rufton Daten) gemeldet wurde.

Wenn das Modem DTMF-Töne hört, meldet es diese durch eine dle-Sequenz zum Host. Einige komfortable Anwenderprogramme bieten dem Anwender am anderem Ende der Telefonleitung die Möglichkeit, sich z.B. mit DTMF-Tönen durch eine Benutzeroberfläche zu bewegen, die aufgesprochene Nachricht abhören oder zu korrigieren, Passwörtern zum Abhören von Nachrichten einzugeben oder Faxe an eine einzugebende Nummer zu senden.