<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>Christoph Bünte&nbsp;&raquo; Software Entwicklung Berlin</title> <atom:link href="http://www.christophbuente.de/tag/asterisk/feed/" rel="self" type="application/rss+xml" /><link>http://www.christophbuente.de</link> <description>Software Entwicklung</description> <lastBuildDate>Tue, 03 Aug 2010 15:37:30 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <item><title>VoiceGlue Konfiguration &#8211; Server für Sprachanwendungen einrichten</title><link>http://www.christophbuente.de/2007-12-21-voiceglue-konfiguration-server-fur-sprachanwendungen-einrichten/</link> <comments>http://www.christophbuente.de/2007-12-21-voiceglue-konfiguration-server-fur-sprachanwendungen-einrichten/#comments</comments> <pubDate>Fri, 21 Dec 2007 19:25:58 +0000</pubDate> <dc:creator>Christoph Bünte</dc:creator> <category><![CDATA[Unix shell]]></category> <category><![CDATA[Voice]]></category> <category><![CDATA[agi]]></category> <category><![CDATA[anleitung]]></category> <category><![CDATA[asr]]></category> <category><![CDATA[asterisk]]></category> <category><![CDATA[dtmf]]></category> <category><![CDATA[hilfe]]></category> <category><![CDATA[howto]]></category> <category><![CDATA[sip]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[speech]]></category> <category><![CDATA[tts]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[voiceglue]]></category> <category><![CDATA[voicexml]]></category> <category><![CDATA[vox]]></category> <category><![CDATA[vxglue]]></category> <category><![CDATA[vxml]]></category><guid isPermaLink="false">http://www.christophbuente.de/2007-12-21-voiceglue-konfiguration-server-fur-sprachanwendungen-einrichten/</guid> <description><![CDATA[[lang_de]In meinem letzten Artikel habe ich die Installation der IVR Software VoiceGlue unter Fedora Core 8 in einer Parallels Desktop VM beschrieben. Nun möchte ich eine Anleitung für die Einrichtung von VoiceGlue nachliefern. Damit wird es jedem möglich, eine VoiceXML basierte Sprachanwendung aufzusetzen. [ad#vert-banner] Nachdem alle Schritte aus der Installationsanleitung befolgt wurden, sind folgende Komponenten [...]]]></description> <content:encoded><![CDATA[<p>[lang_de]In meinem <a title="VoiceGlue Installation - Interactive Voice Response leicht gemacht" href="http://www.christophbuente.de/2007-12-06-voiceglue-installation-interactive-voice-response-leicht-gemacht/">letzten Artikel</a> habe ich die Installation der <acronym title="Interactive Voice Response" lang="en">IVR</acronym> Software <a title="VoiceGlue" href="http://www.voiceglue.org">VoiceGlue</a> unter <a href="http://fedoraproject.org/">Fedora Core 8</a> in einer <a href="http://www.parallels.com/en/products/desktop/">Parallels Desktop VM</a> beschrieben. Nun möchte ich eine Anleitung für die Einrichtung von VoiceGlue nachliefern. Damit wird es jedem möglich, eine VoiceXML basierte Sprachanwendung aufzusetzen.<br /> <span id="more-27"></span></p><p>[ad#vert-banner]</p><p>Nachdem alle Schritte aus der Installationsanleitung befolgt wurden, sind folgende Komponenten auf dem System installiert:</p><ul><li><a href="http://www.perl.org/">perl</a> (Skriptsprache)</li><li><a href="http://www.asterisk.org/">asterisk</a> (Telefonieserver)</li><li><a href="http://www.openvxi.org/">openVXI</a> (Open Source VoiceXML Interpreter)</li><li><a href="http://www.speech.cs.cmu.edu/flite/index.html">flite</a> (engl. <acronym title="Text To Speech" lang="en">TTS</acronym> Engine)</li><li><a href="http://www.voiceglue.org">voiceglue</a> (IVR Software)</li></ul><p>Um tatsächlich Anrufe über das Telefon- oder auch VoIP Netz entgegen nehmen zu können, muss der asterisk Server konfiguriert werden. Eine vollständige Beschreibung der asterisk Konfiguration würde allerdings den Rahmen dieses Tutorials sprengen. Aus diesem Grund wird lediglich die Konfiguration erklärt, mit er es möglich ist, mit Hilfe eines sogenannten <a title="Softphone" href="http://de.wikipedia.org/wiki/Softphone">Softphones</a> an der Sprachanwendung anzurufen. Für vielschichtige asterisk Konfigurationen findet man in <a title="Asterisk" href="http://www.amazon.de/gp/redirect.html%3FASIN=0596009623%26tag=chribuensofte-21%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0596009623%253FSubscriptionId=1YNZ339ZCHHAKYFSY702">Asterisk: The Future if Telephony</a> ausreichend Hilfe.</p><p>Als erstes benötigen wir für die Annahme von Anrufen via <acronym title="Session Initiation Protocol" lang="en">SIP</acronym> einen eigenen Kontext in der Datei: <code>/etc/asterisk/manager.conf</code>. Die folgenden Zeilen sollte man am besten am Ende der Datei einfügen:</p><pre lang="conf">[phoneglue]
secret=phoneglue
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user</pre><p>Ausserdem muss der Manager noch aktiviert werden. Deswegen sollte man sicherstellen, dass in der gleichen Datei die Variable <code>enabled=yes</code> gesetzt ist.</p><p>Danach wird asterisk so konfiguriert, dass alle angenommenen Anrufe per <acronym title="Asterisk Gateway Interface" lang="en">AGI</acronym> an den Voicebrowser weitergeleitet werden. Durch die Verwendung von AGI ist es möglich, den Voicebrowser auch auf einem anderen Server zu betreiben und die Verbindung via Netzwerk herzustellen. Dies nimmt bei vielen Anrufen die Last vom System. Die Konfiguration wird in der Datei <code>/etc/asterisk/extensions.conf</code> vorgenommen. Auch hier ist es wieder sinnvoll einen neuem Kontext am Ende der Datei einzufügen:</p><pre lang="conf">[phoneglue]
exten =&gt; 1,1,Agi(agi://localhost)
exten =&gt; 1,2,Hangup</pre><p>Die Einträge für die Extensions beginnen mit einer <em>1</em>. Dies ist die Durchwahl für die Sprachanwendung. Der Aufruf &#8220;Agi(agi://localhost) verbindet nun den Voicebrowser mit dem Anrufer.</p><p>Möchte man nun alle eingehenden Anrufe, welche mit SIP initiiert werden, an die Sprachanwendung leiten, ist noch eine Änderung in der Datei <code>/etc/asterisk/sip.conf</code> nötig. Der Standard Kontext muss von <code>default</code> auf <code>phoneglue</code> gesetzt werden.</p><pre lang="conf">[general]
context=phoneglue</pre><p>Damit ist die Konfiguration von asterisk schon abgeschlossen. Nun kann es mit der Konfiguration der Sprachanwendung weitergehen.</p><p>VoiceXML basierte Sprachanwendungen benötigen einen <acronym title="Hyper Text Transport Protocol" lang="en">HTTP</acronym> Server, welcher die statischen oder dynamisch erzeugten *.vxml Dateien ausliefert. Auch hier haben die Entwickler von VoiceGlue mitgedacht, indem das System so konfigurierbar ist, dass der VoiceXML Server auf einer separaten Maschine laufen kann. Zu Demonstrationszwecken genügt es hier allerdings, dass alle Dienste auf einer Maschine laufen. Die Konfiguration wird in der Datei <code>/etc/voiceglue.conf</code> vorgenommen. Hier genügt ein Eintrag, der auf die Einstiegsseite der Sprachanwendung zeigt.</p><pre lang="conf"> * http://localhost/index.vxml</pre><p>Diese Datei muss vom lokalen <a href="http://apache.org">Apache</a> ausgeliefert werden. Falls noch nicht geschehen, sollte der Apache jetzt gestartet werden:</p><pre lang="shell">sudo service httpd start</pre><p>Standardmässig liegen die <acronym title="Hyper Text Markup Language" lang="en">HTML</acronym> für den Apache unter Fedora im Verzeichnis <code>/var/www/html</code>. Genau an dieser Stelle legen wir eine klassische <span lang="en">Hello World</span> Anwendung in Form einer VoiceXML Datei mit folgendem Inhalt ab:</p><pre lang="xml">
<form>

      Hello World. This is my first voiceglue application.</form>
</pre><p>Damit ist die Konfiguration abgeschlossen. Alle Dienste sind vollständig konfiguriert und sollten jetzt gestartet werden.</p><pre lang="bash">sudo service asterisk start
sudo service phoneglue start
sudo service voiceglue start</pre><p>Als letztes wollen wir überprüfen, ob die Komfiguration erfolgreich war. Dazu benötigen wir ein Softphone. Eine freie Version findet man bei <a href="http://sjlabs.com">SJLabs</a>. Das Telefon ist für Windows, Linux und OS X verfügbar. Nach dem herunterladen muss im Menupunkt <em>Phone-&gt;Services</em> das SIP Protolkoll gewählt werden. Anschließend wählen wir unseren lokalen asterisk Dienst mit der Durchwahl <code>1@localhost</code> an.</p><p>Basierend auf der gezeigten Konfiguration lassen sich beliebige Sprachanwendungen erstellen. Wie jedoch schon im Beitrag <a title="VoiceGlue Installation - Interactive Voice Response leicht gemacht" href="http://www.christophbuente.de/2007-12-06-voiceglue-installation-interactive-voice-response-leicht-gemacht/">VoiceGlue Installation &#8211; Interactive Voice Response leicht gemacht</a> beschrieben, fehlt die Intergration einer <acronym title="Automatic Speech Recognition" lang="en">ASR</acronym> Engine. Somit beschränken sich Anrufereingaben auf <acronym title="Dual Tone Multiple Frequencies" lang="en">DTMF</acronym>.[/lang_de]</p><div id="crp_related"><h3>Ähnliche Beiträge:</h3><ul><li><a href="http://www.christophbuente.de/2007-12-06-voiceglue-installation-interactive-voice-response-leicht-gemacht/" rel="bookmark" class="crp_title">VoiceGlue Installation &#8211; Interactive Voice Response leicht gemacht</a></li><li><a href="http://www.christophbuente.de/2007-11-17-canoo-webtest-web-anwendungen-automatisch-testen/" rel="bookmark" class="crp_title">canoo webtest &#8211; Web-Anwendungen automatisch testen</a></li><li><a href="http://www.christophbuente.de/2007-11-25-ruby-on-rails-auf-mac-os-x-5-minuten-kurzanleitung/" rel="bookmark" class="crp_title">Ruby on Rails auf Mac OS X &#8211; 5 Minuten Kurzanleitung</a></li><li><a href="http://www.christophbuente.de/2009-09-09-500-internal-server-error-apache-config-vs-wp-super-cache/" rel="bookmark" class="crp_title">500 Internal Server Error &#8211; Apache config vs. WP-Super-Cache</a></li><li><a href="http://www.christophbuente.de/2007-10-05-frei-nehmen-um-zu-lernen/" rel="bookmark" class="crp_title">Rails tutorial &#8211;  Eine Woche lang Agile Webentwicklung</a></li></ul></div>]]></content:encoded> <wfw:commentRss>http://www.christophbuente.de/2007-12-21-voiceglue-konfiguration-server-fur-sprachanwendungen-einrichten/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>VoiceGlue Installation &#8211; Interactive Voice Response leicht gemacht</title><link>http://www.christophbuente.de/2007-12-06-voiceglue-installation-interactive-voice-response-leicht-gemacht/</link> <comments>http://www.christophbuente.de/2007-12-06-voiceglue-installation-interactive-voice-response-leicht-gemacht/#comments</comments> <pubDate>Thu, 06 Dec 2007 20:43:32 +0000</pubDate> <dc:creator>Christoph Bünte</dc:creator> <category><![CDATA[Voice]]></category> <category><![CDATA[asterisk]]></category> <category><![CDATA[fedora core]]></category> <category><![CDATA[help]]></category> <category><![CDATA[hilfe]]></category> <category><![CDATA[howto]]></category> <category><![CDATA[installation]]></category> <category><![CDATA[ivr]]></category> <category><![CDATA[mac os x]]></category> <category><![CDATA[parallels desktop]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[speech]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[voiceglue]]></category> <category><![CDATA[voicexml]]></category> <category><![CDATA[vox]]></category> <category><![CDATA[vxglue]]></category><guid isPermaLink="false">http://www.christophbuente.de/2007-12-06-voiceglue-installation-interactive-voice-response-leicht-gemacht/</guid> <description><![CDATA[Neulich bin ich durch Okko auf VoiceGlue aufmerksam gemacht worden. Dabei handelt es sich um eine Sammlung von Open Source Programmen, die zusammen die Funktionalität einer IVR zur Verfügung stellen. Als ehemalige Mitarbeiter der Mundwerk AG sind wir IVR Systeme der Enterprise Klasse gewohnt. Sicherlich wird VoiceGlue in der aktuellen Version 0.6 diesen Ansprüchen noch [...]]]></description> <content:encoded><![CDATA[<p>Neulich bin ich durch <a href="http://okkobuss.blogspot.com/2007/12/news-redux-building-voiceglue.html">Okko</a> auf <span lang="en"><a href="http://www.voiceglue.org/">VoiceGlue</a></span> aufmerksam gemacht worden. Dabei handelt es sich um eine Sammlung von <span lang="en"><a href="http://de.wikipedia.org/wiki/Open_Source">Open Source Programmen</a></span>, die zusammen die Funktionalität einer <acronym title="Interactive Voice Response" lang="en"><a href="http://de.wikipedia.org/wiki/IVR">IVR</a></acronym> zur Verfügung stellen. Als ehemalige Mitarbeiter der <a href="http://www.mundwerk.de/">Mundwerk AG</a> sind wir IVR Systeme der <span lang="en">Enterprise</span> Klasse gewohnt. Sicherlich wird <span lang="en">VoiceGlue</span> in der aktuellen <a href="http://www.voiceglue.org/download/">Version 0.6</a> diesen Ansprüchen noch nicht gerecht, zumal die Anbindung an <a href="http://de.wikipedia.org/wiki/Spracherkennung"><acronym title="Automatic Speech Recognition" lang="en">ASR</acronym> Systeme</a> bisher nur auf der Agenda steht. Trotzdem wollten wir wissen: Wie einfach ist es, eine IVR mit <span lang="en">VoiceGlue</span> zu installieren.</p><p><span id="more-25"></span></p><p>[ad#vert-banner]</p><p>Ein erster Blick auf die <a href="http://www.voiceglue.org/documentation/install/" title="VoiceGlue">Installationsanleitung</a> offenbart keine sehr ausführlichen Informationen. Lediglich ein paar Pakete installieren, und fertig. Nun, wir wollen sehen. Die Installation wurde mit Hilfe von <a href="http://www.parallels.com/products/desktop/" title="Virtuelle Maschine für den Mac">Parallels Desktop 3.0</a> unter <a href="http://www.apple.com/de/macosx/" title="Apple Betriebsystem">Mac OS X</a> vorgenommen. Als Gastbetriebsystem haben wir, wie in der Anleitung empfohlen <a href="http://fedoraproject.org/" title="Fedora Core 8 Linux">Fedora Core 8</a> verwendet.</p><p>Nach der Installation von Fedora Core 8 in der <acronym title="Virtual Machine" lang="en">VM</acronym> mit den Standard Optionen fehlen vor allem noch ein Compiler, ein paar Developer Pakete und jede Menge Perl Module. Der bereits installierte Paketmanager <a href="http://linux.duke.edu/projects/yum/"><acronym title="Yellow dog Updater, Modified" lang="en">YUM</acronym></a> wird also gleich bemüht, um alles Fehlende an den Start zu bringen.</p><pre lang="shell">
sudo yum install perl gcc-c++ libstdc++-devel xerces-c-devel js-devel flite openssl-devel libxml2-devel expat-devel</pre><p>Soweit noch nicht geschehen, sollte <a href="http://www.cpan.org/"><acronym title="Comprehensive Perl Archive Network" lang="en">cpan</acronym></a> installiert werden. Hiermit lassen sich benötigte Perl Pakete leicht installieren. Eine Anleitung findet man auf der <a href="http://search.cpan.org/~andk/CPAN-1.9205/lib/CPAN.pm">cpan homepage</a>. Es ist jedoch ratsam folgende Pakete gleich mit zu installieren: <code>ncftp, wget</code></p><pre lang="shell">
sudo yum install ncftp wget cpan</pre><p>Nun fehlen noch folgende Perl Module: <code>XML::LibXML, BSD::Resource, Module::Build</code>. Während der Installation von cpan werden mehrere Fragen gestellt, die eigentlich alle, bis auf die Frage nach dem Ort und den Servern, mit &#8220;ENTER&#8221; bestätigt werden können. Aber genau lesen hat noch nie geschadet. Die Fragen, ob alle benötigten Pakete ebenfalls installiert werden sollen, kann man auch getrost mit &#8220;ja&#8221; beantworten. Aber man sollte gewarnt sein: Je nach dem, wie viel oder wenig Perl Module schon installiert sind, dauert es unter Umständen bis zu 10 Minuten. Wie sich allerdings herausstellt, gibt es für <code>Module::Build</code> zwei optionale Pakete, die zwar wichtig sind, aber nicht automatisch installiert werden. Aus diesem Grund wird <code>ExtUtils::ParseXS</code> und damit auch <code>ExtUtils::CBuilder</code> zusätzlich installiert.</p><pre lang="shell">
cpan install Bundle::CPAN
cpan install XML::LibXML
cpan install BSD::Resource
cpan install ExtUtils::ParseXS
cpan install Module::Build</pre><p>Wenn alle Module erfolgreich installiert wurden, fehlt nur noch der <a href="http://www.asterisk.org/">asterisk</a> Dienst. Dieser ist jedoch nicht über das Fedora Repository erhältlich. Deswegen muss in die YUM Konfiguration ein weiteres Repository aufgenommen werden. Dazu wird die Datei <code>/etc/yum.repos.d/atrpms.repo</code> mit folgendem Inhalt angelegt:</p><pre lang="shell">
[atrpms]
name=Fedora Core $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/f$releasever-$basearch/atrpms/stable
#enabled=1
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1</pre><p>Anschließend muss noch der <a href="http://www.gnupg.org/" title="The GNU Privacy Guard"><acronym title="The GNU Privacy Guard" lang="en">GPG</acronym></a> Schlüssel für das neue Repository importiert werden:</p><pre lang="shell">
sudo rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms</pre><p>Jetzt kann der asterisk Dienst installiert werden. YUM wird vorschlagen, alle fehlenden Pakete ebenfalls zu installieren:</p><pre lang="shell">
sudo yum install asterisk</pre><p>Nachdem nun endlich alle Vorbereitungen für die Installation abgeschlossen sind, sollte das Voiceglue Paket <a href="http://www.voiceglue.org/download">heruntergeladen</a> werden. Nachdem Download einfach entpacken, und los geht der Spass.</p><pre lang="shell">
tar xvfz voiceglue_0.6.tar.gz
cd voiceglue_0.6
perl doc/install-voiceglue</pre><p>Sollte das Installationsskript wider Erwarten nicht korrekt durchlaufen, müssen die einzelnen Komponenten per Hand in der richtigen Reihenfolge installiert werden:</p><ul><li>Cam-Scom</li><li>dynlog</li><li>libvglue</li><li>openvxi</li><li>phoneglue</li><li>Satc</li><li>SRGSDTMF</li><li>voiceglue</li><li>Vxglue</li></ul><p>In jedem Unterverzeichnis sollte entweder eine Build.pl Datei oder ein build Skript liegen, welches ausgeführt werden muss. Bei Problemen kann ich gerne versuchen zu helfen.</p><p>Fazit: Mit der Original Anleitung war die Installation sehr mühsam, weil nicht alle Pakete aufgeführt sind, die benötigt werden. Nach mehrmaligem Zurücksetzen der Virtuellen Maschine konnte ich alle Paketabhängigkeiten herausfinden und auflösen. Die hier beschriebene Lösung funktionierte für mich ohne Probleme. Wie immer ist Feedback sehr willkommen. Für Hinweise und bei Problemen einfach einen Kommentar hinterlassen.</p><div id="crp_related"><h3>Ähnliche Beiträge:</h3><ul><li><a href="http://www.christophbuente.de/2007-12-21-voiceglue-konfiguration-server-fur-sprachanwendungen-einrichten/" rel="bookmark" class="crp_title">VoiceGlue Konfiguration &#8211; Server für Sprachanwendungen einrichten</a></li><li><a href="http://www.christophbuente.de/2007-11-25-ruby-on-rails-auf-mac-os-x-5-minuten-kurzanleitung/" rel="bookmark" class="crp_title">Ruby on Rails auf Mac OS X &#8211; 5 Minuten Kurzanleitung</a></li><li><a href="http://www.christophbuente.de/2007-11-17-canoo-webtest-web-anwendungen-automatisch-testen/" rel="bookmark" class="crp_title">canoo webtest &#8211; Web-Anwendungen automatisch testen</a></li><li><a href="http://www.christophbuente.de/2007-11-24-advancing-rails-ein-workshop-mit-david-a-black/" rel="bookmark" class="crp_title">Advancing Rails &#8211; Ein Workshop mit David A. Black</a></li><li><a href="http://www.christophbuente.de/2008-08-04-bilder-versehentlich-geloscht-urlaubserinnerungen-ganz-leicht-zuruckholen/" rel="bookmark" class="crp_title">Bilder versehentlich gelöscht &#8211; Urlaubserinnerungen ganz leicht zurückholen</a></li></ul></div>]]></content:encoded> <wfw:commentRss>http://www.christophbuente.de/2007-12-06-voiceglue-installation-interactive-voice-response-leicht-gemacht/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached
Database Caching 1/28 queries in 0.038 seconds using memcached
Object Caching 580/641 objects using memcached

Served from: www.christophbuente.de @ 2010-09-10 19:08:08 -->