Open Source im professionellen Einsatz
Linux-Magazin 12/2008
364

Der Anrufer entscheidet per Tastendruck

Die Zeilen 268 und 272 setzen die Sprache auf Deutsch beziehungsweise auf Englisch. Angenehm bei dem Befehl »GET OPTION« ist, dass der Benutzer die Wiedergabe des Sprachbausteins durch Tippen einer gültigen Ziffer, hier: [1] oder [2], vorzeitig abbrechen kann. Die Zeilen 279 und 280 rufen die Funktion »agiNow_streamfile()« auf, um je eine Audiodatei wiederzugeben. Die erste enthält die Aufforderung, einen Begriff einzugeben, die zweite ist der Signalton. »agiNow_streamfile()« schickt den entsprechenden AGI-Befehl an Asterisk.

Die nun folgende While-Schleife in den Zeilen von 281 bis 317 kann der Anrufer nur dadurch verlassen, indem er auflegt. Sie eröffnet ihm die Möglichkeit, endlos oft einen neuen Begriff einzutippen, wie es der Callflow in Abbildung 1 vorgibt. Der erste Schritt der While-Schleife liest so lange einen Begriff vom Benutzer ein, bis die Eingabe länger als null Zeichen ist. Dies leistet die While-Schleife ab Zeile 283. Ihre entscheidende Funktion ist offensichtlich »agiNow_get_word_from_user()«, die in Zeile 131 beginnt.

Abbildung 2 beschreibt den Ablauf der Funktion, wie er sich für den Anwender darstellt. Rote Texte bekommt der Benutzer an der jeweiligen Stelle vorgespielt. So gibt der Sprachbaustein »deleted-character« den Text »gelöschter Buchstabe« wieder. Sie müssen natürlich die Sprachbausteine zuvor aufnehmen und unter den angegebenen Namen speichern, zum Beispiel als »/var/lib/asterisk/sounds/deleted-character.gsm«. Für den Buchstaben A drückt der Anrufer [0][1], für den Buchstaben B [0][2] und so weiter. Die komplette Umwandlungstabelle finden Sie unter [1] und in Abbildung 5.

Abbildung 2: Ablaufplan zur Funktion »agiNow_get_word_from_user()«. Texte in Rot bekommt der Benutzer an der jeweiligen Stelle vorgespielt.

PHP-Skript aus C-Programm heraus aufrufen

Die Funktion »system()« in Zeile 300 ruft das PHP-Skript »wikipedia2speech.php« auf, das eine Audiodatei mit dem in Sprache konvertierten Wikipedia-Artikel erzeugt. Falls bereits vorhanden gibt der Aufruf von »agiNow_streamfile()« in Zeile 304 die Datei wieder. »"#"« als vorletzter Parameter beim Aufruf der Funktion in Zeile 307 bewirkt, dass der Benutzer die Wiedergabe mit der Rautetaste beenden kann. Abhängig davon, ob der Benutzer tatsächlich Audiodaten zu hören bekommt, spielt der danach folgende Code einen der Sprachbausteine »06« oder »07« ab.

Alle in Listing 1 verwendeten Funktionen stellt die GPL-Bibliothek »libagiNow« zur Verfügung, die Sie bei [5] bekommen.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Zeit für was Neues

    Der eine braucht sowieso gerade eine neue, den anderen nervt, dass sich der Vermieter seiner Telefonanlage jedes Komfortmerkmal extra bezahlen lässt. Zeit zu wechseln, Zeit eine VoIP-fähige Anlage selbst zu bauen, Zeit für einen Asterisk-Workshop im Linux-Magazin.

  • Erweiterte Gesprächskultur

    Im zweiten Teil des großen Telefonanlagen-Workshops erfahren Sie, wie Sie komplexe Komfortfunktionen programmieren, beispielsweise interaktive Sprachmenüs, und welche Mechanismen Asterisk im Einzelnen dafür in seinem Ärmel hat.

  • Deutsche Sprachbausteine für Asterisk-Anlagen

    Der VoIP-Spezialist Amooma bietet Sprachbausteine für die freie Asterisk-Telefonanlage (Version 1.4 und 1.6) zum kostenfreien Download und uneingeschränkter Nutzung an.

  • Ruf mich an!

    Alles, was über Telefonie hinausgeht, macht den wirklichen Mehrwert von Asterisk aus: Sprachportale beispielsweise, die Fluggäste identifizieren und informieren, bei einer frostigen Wohnung warnen oder den Admin mimen, wenn die User ihre Passwörter verschusselt haben.

  • Gemeinschaft an der Strippe

    Asterisk-Toolkits wie das auf deutsche Verhältnisse angepasste Projekt mit dem schönen Namen Gemeinschaft helfen den Admins und Systemintegratoren, eine Telefonanlage ab mittlerer Größe mit überschaubarem Aufwand zu migrieren und zu betreiben.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.