<?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/kategorie/software-entwicklung/unix-shell/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.christophbuente.de</link>
	<description>Software Entwicklung</description>
	<lastBuildDate>Tue, 07 Dec 2010 11:30:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</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>Shell Ausgabeumleitung &#8211; Fehlermeldungen in der Standardausgabe</title>
		<link>http://www.christophbuente.de/2007-11-02-shell-ausgabeumleitung-fehlermeldungen-in-der-standardausgabe/</link>
		<comments>http://www.christophbuente.de/2007-11-02-shell-ausgabeumleitung-fehlermeldungen-in-der-standardausgabe/#comments</comments>
		<pubDate>Thu, 01 Nov 2007 22:33:20 +0000</pubDate>
		<dc:creator>Christoph Bünte</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Unix shell]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[ausgabeumleitung]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[sox]]></category>
		<category><![CDATA[stderr]]></category>
		<category><![CDATA[stdout]]></category>
		<category><![CDATA[tips und tricks]]></category>
		<category><![CDATA[umleitung]]></category>

		<guid isPermaLink="false">http://www.christophbuente.de/2007-11-02-shell-ausgabeumleitung-fehlermeldungen-in-der-standardausgabe/</guid>
		<description><![CDATA[Hin und wieder braucht man ein paar Tips und Tricks für die Kommandozeile. Im Internet findet sich zahlreiche Hilfe. Doch nach spätestens zwei Wochen hat man es wieder vergessen, und die Suche geht von vorne Los. Aus Gründen meiner eigenen Vergesslichkeit hier nun auch für die Öffentlichkeit Zum Beispiel: Wie leitet man die Fehlerausgabe von [...]]]></description>
			<content:encoded><![CDATA[<p>Hin und wieder braucht man ein paar Tips und Tricks für die Kommandozeile. Im Internet findet sich zahlreiche Hilfe. Doch nach spätestens zwei Wochen hat man es wieder vergessen, und die Suche geht von vorne Los. Aus Gründen meiner eigenen Vergesslichkeit hier nun auch für die Öffentlichkeit <img src='http://www.christophbuente.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Zum Beispiel: Wie leitet man die Fehlerausgabe von Programmen auf das Standard Ausgabegerät um?</p>
<p><span id="more-17"></span></p>
<p>[ad#vert-banner]</p>
<p>Mit einem einfachen Trick kann man Ausgaben von der Fehlerausgabe auf die Standardausgabe umleiten, um eben diese  Ausgabe in anderen Programmen weiter zu verwenden.</p>
<pre lang="bash">$ <erstesKommando> 2>&#038;1 | <zweitesKommando> </pre>
<p>Die Fehlerausgabe von &#8220;erstesKommando&#8221; wird auf die Standardausgabe umgelenkt. Als besonderes Beispiel sei hier <a href="http://sox.sourceforge.net/">SOX</a> genannt. Es gilt als das Schweizer Taschenmesser der Audioverarbeitung auf der Kommandozeile.</p>
<pre lang="bash">$ sox beispiel.wav -e stat 2>&#038;1 | grep Length | awk '{print $3}'</pre>
<p>Diese Kommandofolge analysiert die Audiodatei beispiel.wav, filtert die Zeile aus dem Ergebnis, welche &#8220;Length&#8221; enthält, und gibt anschließend das dritte Wort aus. In diesem Fall handelt es sich dabei um die Länge in Sekunden.</p>
<p>Et voilà!</p>
<div id="crp_related"><h3>Ähnliche Beiträge:</h3><ul><li><a href="http://www.christophbuente.de/2007-06-19-performance-tests/" rel="bookmark" class="crp_title">Performance Tests</a></li><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-12-01-mac-software-heise-deals-zur-weihnachtszeit/" rel="bookmark" class="crp_title">Mac Software &#8211; heiße Deals zur Weihnachtszeit</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></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.christophbuente.de/2007-11-02-shell-ausgabeumleitung-fehlermeldungen-in-der-standardausgabe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached (Feed is rejected)
Page Caching using memcached
Database Caching 8/28 queries in 0.022 seconds using memcached
Object Caching 763/823 objects using memcached

Served from: www.christophbuente.de @ 2012-02-08 10:30:18 -->
