<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/">

  <channel rdf:about="http://blogs.reucon.com/asterisk-java/">
    <title>Asterisk-Java</title>
    <link>http://blogs.reucon.com/asterisk-java/</link>
    <description>The free Java library for Asterisk PBX integration.</description>
    <items>
      <rdf:Seq>
        
        <rdf:li resource="http://blogs.reucon.com/asterisk-java/2009/10/19/asterisk_java_1_0_0_m3_released.html" />
        
        <rdf:li resource="http://blogs.reucon.com/asterisk-java/2009/10/17/built_in_support_for_network_tracing.html" />
        
        <rdf:li resource="http://blogs.reucon.com/asterisk-java/2009/09/26/asterisk_java_goes_osgi.html" />
        
        <rdf:li resource="http://blogs.reucon.com/asterisk-java/2009/09/15/users_adempiere_asterisk_integration.html" />
        
        <rdf:li resource="http://blogs.reucon.com/asterisk-java/2009/07/09/asterisk_java_sync_to_maven_central_repo.html" />
        
        <rdf:li resource="http://blogs.reucon.com/asterisk-java/2009/06/11/asterisk_java_1_0_0_m2_released.html" />
        
        <rdf:li resource="http://blogs.reucon.com/asterisk-java/2009/05/13/scripting_support_for_fastagi.html" />
        
        <rdf:li resource="http://blogs.reucon.com/asterisk-java/2009/04/27/asterisk_java_lightning_talk_jugc.html" />
        
        <rdf:li resource="http://blogs.reucon.com/asterisk-java/2009/04/19/users_asterisk_and_cti_whats_that_all_about.html" />
        
        <rdf:li resource="http://blogs.reucon.com/asterisk-java/2009/04/03/speech_recognition_with_asterisk_java.html" />
        
      </rdf:Seq>
    </items>
  </channel>

  
  <item rdf:about="http://blogs.reucon.com/asterisk-java/2009/10/19/asterisk_java_1_0_0_m3_released.html">
    <title>Asterisk-Java 1.0.0.M3 Released</title>
    <link>http://blogs.reucon.com/asterisk-java/2009/10/19/asterisk_java_1_0_0_m3_released.html</link>
    
      
        <description>
          &lt;p&gt;
We have released milestone 3 of Asterisk-Java 1.0.0. Next to a few bug fixes this new milestone makes Asterisk-Java OSGi compliant, adds support for the modern &lt;a href=&#034;http://www.slf4j.org/&#034;&gt;SLF4J&lt;/a&gt; logging framework and makes debugging easier through &lt;a href=&#034;http://blogs.reucon.com/asterisk-java/2009/10/17/built_in_support_for_network_tracing.html&#034;&gt;built-in support for network tracing&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
You can browse the full &lt;a href=&#034;https://secure.reucon.net/issues/secure/ReleaseNote.jspa?projectId=10110&amp;version=10359&#034;&gt;changelog&lt;/a&gt; to see which issues have been resolved.
&lt;/p&gt;&lt;p&gt;
The new release is available as a plain jar and a zip distribution at &lt;a href=&#034;http://asterisk-java.org/download/1.0.0.M3&#034;&gt;http://asterisk-java.org/download/1.0.0.M3&lt;/a&gt;. You can also browse the &lt;a href=&#034;http://asterisk-java.org/1.0.0.M3/&#034;&gt;documentation&lt;/a&gt; and &lt;a href=&#034;http://asterisk-java.org/1.0.0.M3/apidocs/&#034;&gt;javadocs&lt;/a&gt; online.
&lt;/p&gt;&lt;p&gt;
The new milestone is also available through Maven:
&lt;/p&gt;
&lt;pre class=&#034;brush: xml;&#034;&gt;
&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.asteriskjava&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;asterisk-java&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1.0.0.M3&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Please report back any issues you encounter while using milestone 3 through our &lt;a href=&#034;https://secure.reucon.net/issues/browse/AJ&#034;&gt;issue tracker&lt;/a&gt;. If you like to have a certain feature or bug fix included in the next version vote for it in Jira.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;References&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#034;http://asterisk-java.org/download/1.0.0.M3&#034;&gt;Download Asterisk-Java 1.0.0.M3&lt;/a&gt;
&lt;/ul&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://blogs.reucon.com/asterisk-java/2009/10/17/built_in_support_for_network_tracing.html">
    <title>Built-in Support For Network Tracing</title>
    <link>http://blogs.reucon.com/asterisk-java/2009/10/17/built_in_support_for_network_tracing.html</link>
    
      
        <description>
          &lt;p&gt;
Up to now the preferred way to obtain traces of the communication between Asterisk-Java and Asterisk was using tcpdump, wireshark or ngrep as described in &lt;a href=&#034;/asterisk-java/2006/08/23/debugging_manager_api.html&#034;&gt;Debugging Manager API&lt;/a&gt;. Having a full log of the direct network communication is often the only way to resolve issues related to problems in the Manager API or Fast AGI.
&lt;/p&gt;&lt;p&gt;
To make it easier for our users to obtain these traces we have now included a tracing feature directly into Asterisk-Java. You can enable it at runtime by setting the system property &lt;code&gt;org.asteriskjava.trace&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;. On the command line:
&lt;/p&gt;
&lt;pre&gt;java -Dorg.asteriskjava.trace=true ...&lt;/pre&gt;
&lt;p&gt;Trace files are written to the temp dir by default (&#034;java.io.temp&#034;). You can specify an alternate location by using the &lt;code&gt;org.asteriskjava.trace.directory&lt;/code&gt; system property:&lt;/p&gt;
&lt;pre&gt;java -Dorg.asteriskjava.trace=true \
     -Dorg.asteriskjava.trace.directory=/opt/traces ...&lt;/pre&gt;
&lt;p&gt;Log files contain a timestamp and the IP addresses and ports of the involved servers in their file name. A typical file looks like this:&lt;/p&gt;
&lt;pre&gt;
2009-10-20T21:51:18.414CEST &amp;lt;&amp;lt;&amp;lt; Asterisk Call Manager/1.1
2009-10-20T21:51:18.536CEST &amp;gt;&amp;gt;&amp;gt; action: Challenge
                            &amp;gt;&amp;gt;&amp;gt; actionid: 888911819_0#
                            &amp;gt;&amp;gt;&amp;gt; authtype: MD5
                            &amp;gt;&amp;gt;&amp;gt;
2009-10-20T21:51:18.601CEST &amp;lt;&amp;lt;&amp;lt; Response: Success
2009-10-20T21:51:18.663CEST &amp;lt;&amp;lt;&amp;lt; ActionID: 888911819_0#
2009-10-20T21:51:18.664CEST &amp;lt;&amp;lt;&amp;lt; Challenge: 336054137
2009-10-20T21:51:18.665CEST &amp;lt;&amp;lt;&amp;lt;
2009-10-20T21:51:18.705CEST &amp;gt;&amp;gt;&amp;gt; action: Login
                            &amp;gt;&amp;gt;&amp;gt; actionid: 888911819_1#
                            &amp;gt;&amp;gt;&amp;gt; authtype: MD5
                            &amp;gt;&amp;gt;&amp;gt; username: manager
                            &amp;gt;&amp;gt;&amp;gt; key: ed0481d08ae7832fb
                            &amp;gt;&amp;gt;&amp;gt;
2009-10-20T21:51:18.768CEST &amp;lt;&amp;lt;&amp;lt; Response: Success
2009-10-20T21:51:18.831CEST &amp;lt;&amp;lt;&amp;lt; ActionID: 888911819_1#
2009-10-20T21:51:18.832CEST &amp;lt;&amp;lt;&amp;lt; Message: Authentication accepted
2009-10-20T21:51:18.833CEST &amp;lt;&amp;lt;&amp;lt;
&lt;/pre&gt;
&lt;p&gt;This new feature is already part of the latest Asterisk-Java &lt;a href=&#034;http://asterisk-java.org/download/1.0.0.CI-SNAPSHOT&#034;&gt;1.0.0-CI-SNAPSHOT&lt;/a&gt; and will be shipped with milestone 3.&lt;/p&gt;
&lt;p&gt;Please consider attaching a trace file to your bug reports in the future. It speeds up bug fixing considerably.&lt;/p&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://blogs.reucon.com/asterisk-java/2009/09/26/asterisk_java_goes_osgi.html">
    <title>Asterisk-Java goes OSGi</title>
    <link>http://blogs.reucon.com/asterisk-java/2009/09/26/asterisk_java_goes_osgi.html</link>
    
      
        <description>
          &lt;p&gt;
We are currently working on making Asterisk-Java &lt;a href=&#034;http://www.osgi.org/&#034;&gt;OSGi&lt;/a&gt; compliant to make it easier for those users who want to use Asterisk-Java in an OSGi container like &lt;a href=&#034;http://eclipse.org/equinox/&#034;&gt;Equinox&lt;/a&gt;. This means  Asterisk-Java will contain the proper bundle headers in its MANIFEST.MF and will follow the OSGi rules for version names. The new version names for Asterisk-Java are similar to those used by Spring Framework: 
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;1.0.0.CI-SNAPSHOT&lt;/dt&gt;
&lt;dd&gt;Continious integration snapshot releases&lt;/dd&gt;
&lt;dt&gt;1.0.0.M3&lt;/dt&gt;
&lt;dd&gt;Milestone releases&lt;/dd&gt;
&lt;dt&gt;1.0.0.RC1&lt;/dt&gt;
&lt;dd&gt;Release candidates&lt;/dd&gt;
&lt;dt&gt;1.0.0.RELEASE&lt;/dt&gt;
&lt;dd&gt;Final release&lt;/dd&gt;
&lt;dt&gt;1.0.0.SR01&lt;/dt&gt;
&lt;dd&gt;Service release with emergency bug fixes&lt;/dd&gt;
&lt;dl&gt;
&lt;p&gt;
The first OSGi compliant snapshots of Asterisk-Java are now available for download: &lt;a href=&#034;http://asterisk-java.org/download/1.0.0.CI-SNAPSHOT&#034;&gt;Asterisk-Java 1.0.0.CI-SNAPSHOT&lt;/a&gt;. The old 1.0.0-SNAPSHOT releases will no longer be updated.&lt;br/&gt;
For those developers that are not interested in OSGi nothing will change. The OSGi manifest headers added to Asterisk-Java are simply ignored when run in a non-OSGi environment.
&lt;/p&gt;
&lt;p&gt;The new MANIFEST.MF looks like this:&lt;/p&gt;
&lt;pre class=&#034;codeSample&#034;&gt;
Manifest-Version: 1.0
Bundle-Description: The free Java library for Asterisk PBX integration.
Bundle-DocURL: http://asterisk-java.org/
Bundle-ManifestVersion: 2
Bundle-Name: Asterisk-Java
Bundle-SymbolicName: org.asteriskjava
Bundle-Vendor: reucon
Bundle-Version: 1.0.0.CI-SNAPSHOT
Export-Package: org.asteriskjava;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.config;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.config.dialplan;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.fastagi;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.fastagi.command;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.fastagi.reply;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.manager;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.manager.action;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.manager.event;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.manager.response;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.manager.util;version=&#034;1.0.0.CI-SNAPSHOT&#034;,
 org.asteriskjava.live;version=&#034;1.0.0.CI-SNAPSHOT&#034;
&lt;/pre&gt;
&lt;p&gt;If you are looking for a ready to use OSGi based framework to develop AGI scripts for Asterisk on SpringSource dm Server you may also want to check &lt;a href=&#034;http://code.google.com/p/ajdmserver/&#034;&gt;ajdmserver&lt;/a&gt;.
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://blogs.reucon.com/asterisk-java/2009/09/15/users_adempiere_asterisk_integration.html">
    <title>Users: ADempiere Asterisk Integration</title>
    <link>http://blogs.reucon.com/asterisk-java/2009/09/15/users_adempiere_asterisk_integration.html</link>
    
      
        <description>
          &lt;p&gt;
&lt;a href=&#034;http://www.adempiere.com/&#034;&gt;ADempiere&lt;/a&gt; is a collection of Open Source ERP applications. 
&lt;/p&gt;
&lt;p&gt;By leveraging Asterisk-Java the &lt;a href=&#034;http://www.adempiere.com/index.php/AsteriskJava&#034;&gt;Asterisk integration for ADempiere&lt;/a&gt; provides support for calling contacts directly from within ADempiere.
&lt;/p&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://blogs.reucon.com/asterisk-java/2009/07/09/asterisk_java_sync_to_maven_central_repo.html">
    <title>Asterisk-Java Sync to Maven Central Repo</title>
    <link>http://blogs.reucon.com/asterisk-java/2009/07/09/asterisk_java_sync_to_maven_central_repo.html</link>
    
      
        <description>
          &lt;p&gt;
The released Asterisk-Java artifacts are now automatically published to Maven&#039;s central repository. This includes our milestone releases 1.0.0-m1 and 1.0.0-m2. 
&lt;/p&gt;&lt;p&gt;
If you are already using Maven for development that means to you that you no longer have to download Asterisk-Java in order to use it. You can just declare a dependency and Maven automatically downloads it from central.
&lt;/p&gt;&lt;p&gt;
The Maven coordinates for Asterisk-Java are:
&lt;/p&gt;
&lt;pre class=&#034;brush: xml;&#034;&gt;
&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.asteriskjava&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;asterisk-java&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1.0.0-m2&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/pre&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://blogs.reucon.com/asterisk-java/2009/06/11/asterisk_java_1_0_0_m2_released.html">
    <title>Asterisk-Java 1.0.0-m2 Released</title>
    <link>http://blogs.reucon.com/asterisk-java/2009/06/11/asterisk_java_1_0_0_m2_released.html</link>
    
      
        <description>
          &lt;p&gt;
As most of the users already make use of many new features in 1.0.0-SNAPSHOT it is time to push the final release out of the door. As a first step I&#039;ve released milestone 2 of 1.0.0 called 1.0.0-m2. Have a look at the &lt;a href=&#034;http://jira.reucon.org/secure/ReleaseNote.jspa?projectId=10000&amp;styleName=Html&amp;version=10030&#034;&gt;changelog&lt;/a&gt; to see which bugs have been fixed and which new features are included.
&lt;/p&gt;&lt;p&gt;
Most notably milestone 2 includes support for the 1.6 series of Asterisk as well as support for &lt;a href=&#034;http://blogs.reucon.com/asterisk-java/2009/05/13/scripting_support_for_fastagi.html&#034;&gt;using scripting languages with the FastAGI server&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
The new release is available as a plain jar and a zip distribution at &lt;a href=&#034;http://asterisk-java.org/download/1.0.0-m2&#034;&gt;http://asterisk-java.org/download/1.0.0-m2&lt;/a&gt;. You can also browse the &lt;a href=&#034;http://asterisk-java.org/1.0.0-m2/&#034;&gt;documentation&lt;/a&gt; and &lt;a href=&#034;http://asterisk-java.org/1.0.0-m2/apidocs/&#034;&gt;javadocs&lt;/a&gt; online.
&lt;/p&gt;&lt;p&gt;
Please report back any issues you encounter while using milestone 2 through our &lt;a href=&#034;http://jira.reucon.org/browse/AJ&#034;&gt;issue tracker&lt;/a&gt;. If you like to have a certain feature or bug fix included vote for it.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;References&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#034;http://asterisk-java.org/download/1.0.0-m2&#034;&gt;Download Asterisk-Java 1.0.0-m2&lt;/a&gt;
&lt;/ul&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://blogs.reucon.com/asterisk-java/2009/05/13/scripting_support_for_fastagi.html">
    <title>Scripting Support for FastAGI</title>
    <link>http://blogs.reucon.com/asterisk-java/2009/05/13/scripting_support_for_fastagi.html</link>
    
      
        <description>
          &lt;p&gt;
Asterisk-Java 1.0.0 includes support for implementing AGI scripts in the scripting language of your choice. You still have the benefit of running on the JVM but for the implementation of your script you can now choose your favorite language.
&lt;/p&gt;&lt;p&gt;
I&#039;ve prepared a small demo script that counts down from ten to zero. Then it plays a beep and waits for DTMF input to read the digit you&#039;ve pressed back to you. You can exit by pressing star (*) or pound (#). To show you how this script looks like in the different languages it is implemented three times: In Groovy, JavaScript and PHP.
&lt;/p&gt;&lt;p&gt;
To get started just download the &lt;a href=&#034;http://maven.reucon.com/public-snapshot/org/asteriskjava/asterisk-java/1.0.0-SNAPSHOT/asterisk-java-1.0.0-20090513.085050-484-bin.zip&#034;&gt;binary distribution of Asterisk-Java&lt;/a&gt;. Unpack it and run the asterisk-java.jar file from the unpacked directory.
&lt;/p&gt;
&lt;pre class=&#034;brush: plain;&#034;&gt;
$ cd asterisk-java-1.0.0-SNAPSHOT
$ java -jar asterisk-java.jar
May 13, 2009 1:26:16 AM org.asteriskjava.fastagi.DefaultAgiServer startup
INFO: Listening on *:4573.
&lt;/pre&gt;
&lt;p&gt;
The AGI scripts are put into the agi directory. There you&#039;ll also find the &lt;a href=&#034;http://svn.reucon.net/repos/asterisk-java/trunk/dist/agi/demo.groovy&#034;&gt;demo.groovy&lt;/a&gt;, &lt;a href=&#034;http://svn.reucon.net/repos/asterisk-java/trunk/dist/agi/demo.js&#034;&gt;demo.js&lt;/a&gt; and &lt;a href=&#034;http://svn.reucon.net/repos/asterisk-java/trunk/dist/agi/demo.php&#034;&gt;demo.php&lt;/a&gt; files. The lib directory contains additional libraries required to execute the scripts.
&lt;/p&gt;&lt;p&gt;
In addition to the functions provided by the scripting language Asterisk-Java adds two variables:
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;a href=&#034;http://asterisk-java.org/development/apidocs/org/asteriskjava/fastagi/AgiRequest.html&#034;&gt;request&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;the request data including the dialed extension, the caller id, channel name, parameters and more&lt;/dd&gt;
&lt;dt&gt;&lt;a href=&#034;http://asterisk-java.org/development/apidocs/org/asteriskjava/fastagi/AgiChannel.html&#034;&gt;channel&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;for interacting with Asterisk, e.g. to stream files, receive DTMF digits or execute dialplan applications&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;
Modify your dialplan and add extensions for the demo scripts:
&lt;/p&gt;
&lt;pre class=&#034;brush: plain;&#034;&gt;
exten =&gt; 2000,1,Agi(agi://localhost/demo.groovy)
exten =&gt; 2001,1,Agi(agi://localhost/demo.js)
exten =&gt; 2002,1,Agi(agi://localhost/demo.php)
&lt;/pre&gt;
&lt;p&gt;
If you are not running Asterisk-Java on the same server as Asterisk replace localhost by the hostname of the machine running Asterisk-Java.
&lt;/p&gt;&lt;p&gt;
Note that you will need at least Java 6 to make use of the new scripting support.
&lt;/p&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://blogs.reucon.com/asterisk-java/2009/04/27/asterisk_java_lightning_talk_jugc.html">
    <title>Asterisk-Java Lightning Talk @ JUGC</title>
    <link>http://blogs.reucon.com/asterisk-java/2009/04/27/asterisk_java_lightning_talk_jugc.html</link>
    
      
        <description>
          &lt;p&gt;
&lt;img src=&#034;/asterisk-java/images/princeduke2.jpg&#034; align=&#034;right&#034;/&gt;
I will give a short presentation of Asterisk-Java (in German) at the &lt;a href=&#034;http://jugcologne.org&#034;&gt;Java User Group Cologne&lt;/a&gt; (JUGC) on May 29th.
&lt;/p&gt;&lt;p&gt;
It will be a short overview of what Asterisk-Java can do and how it can be used to add phone support to Java applications. The presentation will have a duration of 5 to 10 minutes and include a small interactive demo that serves as a show case.
&lt;/p&gt;&lt;p&gt;
The main talk will be about &lt;a href=&#034;http://87.230.78.21:8080/display/jugc/2009.05.29+JSF+2.0+vs+Struts+2.1&#034;&gt;JSF 2.0 vs Struts 2.1&lt;/a&gt;. I would be happy to meet a few Asterisk-Java developers over there.
&lt;/p&gt;
&lt;p&gt;The slides are available (in German) at &lt;a href=&#034;http://www.slideshare.net/srt/asteriskjava-at-jugc-20090529&#034;&gt;slideshare&lt;/a&gt;.&lt;/p&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://blogs.reucon.com/asterisk-java/2009/04/19/users_asterisk_and_cti_whats_that_all_about.html">
    <title>Users: Asterisk and CTI, what’s that all about?</title>
    <link>http://blogs.reucon.com/asterisk-java/2009/04/19/users_asterisk_and_cti_whats_that_all_about.html</link>
    
      
        <description>
          &lt;p&gt;
Sameh Shaker has posted some &lt;a href=&#034;http://smshaker.wordpress.com/2009/03/17/asterisk-and-cti-whats-that-all-about/&#034;&gt;examples&lt;/a&gt; of what you can do with Asterisk using the Manager API and Fast AGI. I think it&#039;s a good starting point for new users of Asterisk-Java to get some inspiration for their own applications.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;References&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sameh Shaker: &lt;a href=&#034;http://smshaker.wordpress.com/2009/03/17/asterisk-and-cti-whats-that-all-about/&#034;&gt;Asterisk and CTI, what’s that all about?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://blogs.reucon.com/asterisk-java/2009/04/03/speech_recognition_with_asterisk_java.html">
    <title>Speech Recognition with Asterisk-Java</title>
    <link>http://blogs.reucon.com/asterisk-java/2009/04/03/speech_recognition_with_asterisk_java.html</link>
    
      
        <description>
          &lt;p&gt;
&lt;img src=&#034;/asterisk-java/images/lumenvox.gif&#034; align=&#034;right&#034; vspace=&#034;5&#034;/&gt;
The latest &lt;a href=&#034;http://maven.reucon.com/public-snapshot/org/asteriskjava/asterisk-java/1.0.0-SNAPSHOT/asterisk-java-1.0.0-20090403.210610-444.jar&#034;&gt;snapshot&lt;/a&gt; of Asterisk-Java contains support for the Asterisk Speech API. This makes writing AGI script that recognize speech as easy as writing AGI scripts for DTMF input.
&lt;/p&gt;&lt;p&gt;
All you need to get started is a recent version of Asterisk 1.6 and the &lt;a href=&#034;http://www.lumenvox.com&#034;&gt;Lumenvox&lt;/a&gt; Speech Engine. For development you can buy a &lt;a href=&#034;http://store.digium.com/productview.php?product_code=8ASTLUMSTART&#034;&gt;starter kit&lt;/a&gt; from Digium for 50 USD.
&lt;/p&gt;&lt;p&gt;
In your AGI script you initialize the speech engine, load and activate a grammer and are ready to recognize speech. The speechRecognize() method takes a voice prompt as its first parameter. The prompt is played to the user and the users response is recognized. The user doesn&#039;t have to wait for the prompt to finish, he can start talking right away (&#034;barge in&#034;). The corresponding Java code looks like this:
&lt;/p&gt;
&lt;pre class=&#034;brush: java;&#034;&gt;
speechCreate();
speechLoadGrammar(&#034;digits&#034;, grammarPath);
speechActivateGrammar(&#034;digits&#034;);
SpeechRecognitionResult result = 
  speechRecognize(&#034;speech-demo/prompt&#034;, 10);
speechDeactivateGrammar(&#034;digits&#034;);
&lt;/pre&gt;
&lt;p&gt;
The &lt;a href=&#034;http://asterisk-java.org/development/apidocs/org/asteriskjava/fastagi/SpeechRecognitionResult.html&#034;&gt;SpeechRecognitionResult&lt;/a&gt; provided by Asterisk-Java contains the result and the confidence score &amp;ndash; a value between 0 and 1000 that indicates how sure the speech engine is that the result is correct. The Java code to evaluate the result looks like this:
&lt;/p&gt;
&lt;pre class=&#034;brush: java;&#034;&gt;
if (result.isSpeech())
{
    if (result.getScore() &gt; 990)
    {
        streamFile(&#034;speech-demo/absolutely-sure&#034;);
    }
    else if (result.getScore() &gt; 800)
    {
        streamFile(&#034;speech-demo/pretty-sure&#034;);
    }
    else
    {
        streamFile(&#034;speech-demo/not-sure&#034;);
    }

    // say what we have recognized
    sayDigits(result.getText());
}       
&lt;/pre&gt;
&lt;p&gt;Finally call speechDestory to end the speech recognition session (for a real application you probably want to do this in a finally block):&lt;/p&gt;
&lt;pre class=&#034;brush: java;&#034;&gt;
speechDestroy();
&lt;/pre&gt;
&lt;p&gt;Pretty easy, isn&#039;t it?&lt;/p&gt;
&lt;p&gt;
You can have a look at the &lt;a href=&#034;http://svn.reucon.net/repos/asterisk-java/trunk/src/integrationtest/org/asteriskjava/fastagi/SpeechDemo.java&#034;&gt;SpeechDemo&lt;/a&gt; AGI script or download the &lt;a href=&#034;http://asterisk-java.org/static/speech-demo.zip&#034;&gt;full demo&lt;/a&gt; that includes the latest snapshot of Asterisk-Java, the voice prompts and the AGI script.&lt;/a&gt;

        </description>
      
      
    
  </item>
  

</rdf:RDF>
