Voice Modem ansprechen (Bibliothek gesucht)
-
Hallo Leute,
ich habe ein Projekt bei dem die Software eine Telefonnummer wählen muss um einen Mitarbeiter eine Sprachnotiz zu übermitteln.
Als Hardware für dieses Problem habe ich an ein VoiceModem gedacht. Jedoch habe ich damit noch nie zu tun gehabt.
Als Programmiersprache benutze ich Java oder C++. Kennt jemand eine Bibliothek, oder kann mir Informationen für den Anfang liefern ??
Alle Informationen zu diesem Thema sind mir recht.
Grüsse Alex
-
Ich glaube der AT-Befehlssatz dürfte dir weiter helfen. Ansonsten schau dich mal beim Hersteller des Voice Modems um, ob der nicht eine Bibliothek anbietet.
btw. mach doch nicht bitte nach jedem Satz eine Leerzeile, das ist nicht gerade förderlich für die Lesbarkeit ...

-
Hmm, ich habe das vor 10 Jahren mal gemacht. Keine Ahnung, ob es da Bibliotheken für gibt.
Das Abspielen ist jedenfalls ganz einfach. Du setzt das Modem in den Voice-Modus:
AT+FCLASS=8
oder
AT#CLS=8je nach Modem.
Dann schickst du die Daten einfach hinterher. Das Modem kümmert sich dann darum, da wieder Sprache draus zu machen.
Da steckt natürlich noch ein wenig mehr drin, die Art der komprimierung zum Beispiel. Zu meiner Zeit waren die Sprach-Daten ADPCM-Kodiert.
Also ich noch mit Modem unterwegs war, waren die Befehle alle im Modem-Handbuch dokumentiert (bei meinem ZyXel), bzw. wurden mir nach telefonischer Anfrage zugeschickt (bei Elsa). Heutigentags dürftest du das aber auch im Netz finden, ohne hinterherzutelefonieren

-
OK, also ich muss die guten alten AT-Befehle benutzen

Wenn ich nun im Voice-Modus drin bin.. kann ich einfach die WAV-Datei hinterschicken und das Modem macht daraus wieder was verständliches für den Hörer?
Ist das wirklich so einfach ?

grüsse alex
-
Soweit ich mich erinnere musst du dem Modem noch ein Kommando geben "Pass auf, jetzt kommen die Daten". Ich weiss aber nicht mehr wie das lautet (Ich glaube AT#VLS, aber ohne Gewähr).
Dann musst du dem Ding natürlich noch sagen, wo er das Ausgeben soll. Lautsprecher oder Telefonleitung (AT#VLS=x bei Rockwell).
Damals musste ich die WAV-Datei erst in das Modem-Format konvertieren, weil WAV-Daten viel zu gross waren. Die Verbindungsgeschwinidigkeit zwischen Modem und PC war über die Serielle Schnittstelle doch Arg beschränkt, darum musste das Zeug komprimiert werden.
je nachdem welche Komprimierung du verwendest (ADPCM2 - ADPCM4, also 2 bis 4 Bits pro Sample), musst du dem Modem das vor dam Abspielen natürlich sagen, sonst gibt's nur Rauschen.
Ich habe seit... Hmmmm... Sieben Jahren kein Modem mehr benutzt. Keine Ahnung wie das heute ausschaut. Würde mich aber überraschen, wenn sich da was geändert hätte.
Hmmm, ich werd' grad ganz nostalgisch... Ich glaube ich muss mal den Sourcecode von meinem Anrufbeantworter nochmal hervorkramen...
Edit: So, ich habe mal den Source hervorgekramt. Erschreckend. Einfachn nur Erschreckend...
Naja, wie auch immer, ich hatte keinen Bock die Befehle für die ganzen Modems Hardzucoden, darum lagen die in einer Text-Datei, in der jedes unterstützte Modem eine Sektion hatte, in der drin Stand welche Befehler für das Modem zustündig waren.
Hier mal der Rockwell-Teil. Vielleicht kannst du damit ja was anfangen:
[Other Rockwell 2 / Sonstige Rockwell 2]
VoiceMode = AT#CLS=8 NormalMode = AT#CLS=0 SetSpeaker = AT#VLS=2 SetLine = AT#VLS=4 SetMicro = AT#VLS=3 SilenceDetection = AT#VSS=%i #VSP=%i ADPCM2 = AT#VBS=2 ADPCM4 = AT#VBS=4 Beep = AT#VTS=[960,0,9] Beep2 = AT#VTS=[880,440,5] Beep3 = AT#VTS=[440,0,2] Beep4 = AT#VTS=[440,0,5] Beep5 = AT#VTS=[880,0,5] Beep6 = AT#VTS=[880,960,5] BeginPlay = AT#VTX BeginRecord = AT#VRX FileExtension = RVD Coding = Rockwell FaxPollClient = FALSE FaxPollServer = FALSE CallerID = FALSE
-
Danke für die Infos.
In meinem Projekt gehts unter anderem darum dass ein PC ein Telefon anrufen soll und dem Teilnehmer halt etwas "sagen" soll

Hatte in diesem Bereich bisher noch nichts zu tun, daher ist dass alles neu für mich.