VBOX-CallMaster study-version A Voice Answering Machine for isdn4linux with call-forwarding-, call-back-, call-through-features - based on the original VBOX by Michael 'Ghandi' Herold Copyright 1999 Author: Matthias Weingart This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -- Ich habe ein klein wenig an der tollen vbox von Michael rumgebastelt :-) Die neue "vbox-CallMaster" kann nun auch selbst telefonieren: - Rufumleitung ueber den 2. B-Kanal - callback und callthrough, wie man es von calling-card Anbietern kennt; sinnvoll heutzutage fuer Handytelefonierer; per callbycall wird es damit so um einiges billiger besonders fuer Nutzer von D-Xtra oder D-Telly o.ae. (z.B. der eigene ISDN-Anschluss ruft zurueck: 42 Pf D-Netz -> 2 B-Kanaele zu Hause -> 0,09 Festnetz = 51Pf (Stand 1.6.99)) (D-Netz -> D-Netz 84Pf) Rein technisch gesehen ist es totaler Schwachsinn, man telefoniert mit dem doppelten Aufwand; aber komischerweise zu geringeren Kosten. Bleibt zu hoffen, das dieses umstaendliche Callback irgendwann mal nicht mehr noetig ist (vielleicht hilft vbox-cm da ein bissl mit :-). Dabei sind (fast) alle Features der vbox erhalten geblieben. Vor allem die Zeitsteuerung, es ist z.B. moeglich, zwischen Anrufbeantworter und Rufweiterschaltung (zu unterschiedl. Rufnummern) zeitgesteuert zu wechseln. Nur das DTMF (touchtone) handling ist anders, zum Waehlen gemacht und nicht fuer "breaklists" (wer kann mit den breaklists eigentlich was anfangen!?). Aber man kann das "breaklist"-Verhalten im tcl-script nachbilden. WARNUNG! Diese Version ist nur eine Studie (bzw. schneller Hack - in 3 Tagen angepasst). Es gibt noch viele Ungereimtheiten und sie ist nur fuer Kernel 2.0.xx gemacht. Ich uebernehme keine Verantwortung fuer ev. ueberschriebene Konfigurationsscripte des alten vbox oder fuer tagelang offene Verbindungen. Auch hat jeder User die Moeglichkeit kostenpflichtige Verbindungen nach aussen zu oeffnen. INSTALL Vbox installieren, wie gehabt. Leider installiert sich die vbox nach "/". Verwendet man statt ./configure die ./inst.sh, dann wird es sauber nach /usr/bin (usw.) installiert. Leider muss man danach das Makefile editieren; dort den Rest der in inst.sh steht austauschen. (Auch noch so ein Bug...) In examples/ befinden sich die neuen Configs. NEU ist: /etc/isdn/vbox.conf: "-c /dev/ttyIxx" fuer vboxgetty. Damit wird der Port zum Rauswaehlen bestimmt. Die Angabe ist zwingend erforderlich. Die Scripte in examples/userhome in das entsprechende var/spool/vbox /kopieren, sonst funktioniert nichts. Die entspr. Ansagen *.msg sollte man auch anlegen. Wie arbeitet die Rufweiterleitung (call forward)? (konfiguriert in vbox.conf) Der anrufende Teilnehmer hoert ein Freizeichen. Nach einigen Klingelzeichen (RINGS=xx) versucht vboxgetty eine Verbindung zum konfigurierten Anschluss (CALLFORWARDINGTO=) aufzubauen. Der Anrufer hat weiterhin ein Freizeichen! Ist der Verbindungsaufbau erfolgreich, werden beide verbunden, wenn nicht, dann bekommt der Anrufer ein Besetztzeichen. (per Tcl-Script sollte es auch moeglich sein, das anders zu realisieren - vboxgetty hebt ab und macht einen Spruch, das der Anruf weitergeleitet wird und baut dann die Verbindung auf). Bei der B-Kanal-B-Kanal-Verbindung laufen die Daten kreuzweise ueber den Kernel (von einem zum anderen B-Kanal) - falls der Rechner stark unter Last ist, koennte die Verbindung gestoert werden. Aber mein P60 mit 16MB RAM und apache,squid,inn,rc5des usw. hat keine Probleme damit. Wie arbeitet Callback/Callthrough? Man ruft z.B. vom Handy seinen ISDN-Anschluss an. Legt man nach dem ersten Freizeichen sofort auf, erkennt vboxgetty an der callerid ( [CALLBACK]-section in vbox.conf), das es zurueckrufen soll. Es ruft zurueck und man kann durchwaehlen, als waere man zu Hause. Abschliessen muss man die Rufnummer mit #. Per * kann man die gesamte Sequenz loeschen, falls man sich mal vertippt hat. Zum Kostensparen sollte man eine CallByCall-Nummer mitwaehlen. (www.billiger-telefonieren.de - deren tcl-script muesste man eigentlich noch in vbox-cm einbauen :-) Ruft man an, und wartet ab, bis vboxgetty abhebt, dann kann man gleich durchwaehlen (call through). Beendet der Gegenueber das Gespraech (oder tippt man dreimal #) Kommt wieder der Ansagetext und man kann eine neue Verbindung aufbauen. Bekannte Bugs, ToDo: - callback / callthrough wenn die zweite Leitung nicht frei ist, wird es logischerweise nichts mit dem Rausrufen. Das Verhalten koennte verbessert werden (z.B. ruft erst zurueck, wenn Leitung frei - und blockiert die 2. Leitung solange (nur wie macht man das?), oder weisst gleich ab, wenn die 2.Leitung belegt ist) - callforward Da waehrend des Waehlens das andere Modem nicht ueberwacht wird (kein multithreading :-( bekommt vbox-cm es nicht mit, wenn das andere auflegt. So passiert es, das man ev. "leere" Anrufe bekommt, wenn der weiterzuleitende Anrufer einfach auflegt. - es fehlt eine Tabelle, wann und wohin callbycall am guenstigsten ist - ohne dies macht vbox-cm nicht allzuviel gut, da leider nicht jeder Anbieter, ueberallhin und zu jeder ZEit am guenstigsten ist. ; z.Z. ist 01078 eingetragen fuer den Rueckruf; andere callbycall muss man selber tippen :-) zumindest ein dialprefix.conf muesste noch gebastelt werden, damit es auch Leute hinter einer Telefonanlage leichter haben (jetzt nach ATD suchen im Quelltext und die Null dahintersetzen). Bei der Gelegenheit koennte man auch noch Kurzwahlnummern ablegen. Ideal am Waehlen per ISDN ist, dass ATD sofort zurueckkommt, wenn der callbycall-Anbieter ueberlastet ist - mit mehreren kurzen Wiederholungen kommt trotzdem schnell durch (nur die Frage wann die Vermittlungsstelle verstopft :-) Die Wahlwiederholung bei callback hat aber den Nachteil, dass man mehrfach angerufen wird, wenn man das Gespraech abweist. - DTMF-Wahl Im Linuxkernel ist die DTMF-Wahl zu empfindlich, bei schlechten Handy-Verbindungen erkennt er Ziffern mehrfach. Tippt man waehrend eines Ansagetextes, so wird er sofort unterbrochen. In der Zeit, bis die "Lausch-"Routine gestartet ist, koennen DTMF-Toene untergehen -> am besten Warten, bis der Ansagetext vorbei ist, oder diesen ganz weglassen. - per kill -USR1 koennte man vbox-cm sogar zum Anrufen animieren. Zusammen mit dem Sprachsynthesetool MBROLA (blinux) wuerde dann der Rechner beim Herrchen anrufen, und mitteilen, wo wiedermal Chaos im System ist :-) (und gibt es nicht auch schon ein Spracherkennungstool fuer Linux? "Computer zwei Personen hochbeamen." :-) Eigentlich muesste man das vbox komplett umschreiben (multithreaded und die modem.c in eine class verwandeln) aber das duerfte ein paar Tage in Anspruch nehmen. http://www.boerde.de/~matthias/linux Matthias Weingart, 1.6.99, Version der CallMaster Extension 0.1