<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://brijraj.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fbrijraj.spaces.live.com%2fcategory%2ftechnology%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Maverick's Space: technology</title><description /><link>http://brijraj.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=cattechnology</link><language>en-US</language><pubDate>Tue, 30 Sep 2008 12:40:25 GMT</pubDate><lastBuildDate>Tue, 30 Sep 2008 12:40:25 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://brijraj.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-868301763755123514</live:id><live:alias>brijraj</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>asterisk for java - installation</title><link>http://brijraj.spaces.live.com/Blog/cns!F3F32C257587DCC6!377.entry</link><description>Now a days i am playing with Asterisk, and now I needed to integrate a Java based application with asterisk.&lt;br&gt;&lt;br&gt;I started searching, and found about JAsterisk, but later i found that JAsterisk was made with Asterisk 1.0.0 while I am running with Asterisk 1.4, and 1.2 installations.&lt;br&gt;Then I found &lt;a target="_blank" href="http://asterisk-java.org"&gt;Asterisk for Java&lt;/a&gt; ; this package is built on top of Maven [a project management API for Linux],  the pre-requisites were as follows&lt;br&gt;&lt;br&gt;1. JDK above version 1.5&lt;br&gt;2. Maven&lt;br&gt;&lt;br&gt;Now, JDK has a significant style of it :) ... but As I am a .net developer I'll say it sucks....I tumbled a lot with installation sof JDK's and JVM' and environment variables, let me simplify it for you....&lt;br&gt;&lt;br&gt;1. Download JDK from &lt;a href="http://java.sun.com/javase/downloads/"&gt;http://java.sun.com/javase/downloads/&lt;/a&gt;   you need to download the self extracting binary .. with a name somewhat like this &lt;b&gt;jdk-6u6-linux-i586-rpm.bin&lt;/b&gt;&lt;br&gt;2. Copy it into a directory; I copied it in &lt;b&gt;/opt&lt;/b&gt; , extracted it there by command&lt;br&gt;&lt;b&gt;./jdk-6u6-linux-i586-rpm.bin&lt;/b&gt;&lt;br&gt;&lt;br&gt;Note - it should install automatically, but if it doesn't or it says some Java Package is already installed you'll have to remove it&lt;br&gt;&lt;b&gt;yum remove &amp;lt;packagetoremove&amp;gt;&lt;br&gt;&lt;br&gt;&lt;/b&gt;3. Now we need to create environment variables&lt;br&gt;My JAVA is installed in directory &lt;b&gt;/usr/java/jdk1.6.0_06&lt;/b&gt;&lt;br&gt;this is how you can persist your Java environment variables for good in your linux machine, be it on root OR on user&lt;br&gt;           open the directory /etc&lt;br&gt;          Find the file profile open it type these lines, one for PATH, one for JAVA_HOME, and one for CLASSPATH&lt;br&gt;Note - remove my comments from here before copy pasting these lines, also put them at end of file&lt;br&gt;        &lt;br&gt;//for the directory path where JAVA imnstallation resides&lt;br&gt;&lt;font color="#17365d"&gt;export JAVA_HOME=/usr/java/jdk1.6.0_06            &lt;/font&gt;&lt;br&gt;&lt;br&gt;//For the path where compiler resides, the bin dir contains javac which is the compiler&lt;br&gt;&lt;font color="#17365d"&gt;export PATH=PATH=$PATH:/usr/java/jdk1.6.0_06/bin&lt;/font&gt;&lt;br&gt;&lt;br&gt;//For the PATH where classes may reside,m in our case they may reside in any directory&lt;br&gt;&lt;font color="#17365d"&gt;export CLASSPATH=$CLASSPATH:.&lt;/font&gt;&lt;br&gt;&lt;br&gt;Now, you should restart your machine, raise the terminal window [command prompt] and cross check&lt;br&gt;type these commands, and you may see the results like this&lt;br&gt;&lt;font color="#4f81bd"&gt;[root@localhost ~]# java -version&lt;br&gt;java version &amp;quot;1.7.0&amp;quot;&lt;br&gt;IcedTea Runtime Environment (build 1.7.0-b21)&lt;br&gt;IcedTea Client VM (build 1.7.0-b21, mixed mode)&lt;br&gt;[root@localhost ~]# which java&lt;br&gt;/usr/bin/java&lt;br&gt;[root@localhost ~]# which javac&lt;br&gt;/usr/bin/javac&lt;br&gt;[root@localhost ~]# echo $JAVA_HOME&lt;br&gt;/usr/java/jdk1.6.0_06&lt;br&gt;[root@localhost ~]# echo $PATH&lt;br&gt;/usr/local/apache-maven-2.0.9/bin:PATH=/usr/local/apache-maven-2.0.9/bin:PATH=/usr/local/apache-maven-2.0.9/bin:PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/java/jdk1.6.0_06/bin:/usr/java/jdk1.6.0_06/bin:/root/bin:/usr/java/jdk1.6.0_06/bin&lt;br&gt;[root@localhost ~]# echo $CLASSPATH&lt;br&gt;:.:.:.&lt;br&gt;&lt;br&gt;&lt;font color="#000000"&gt;Ok , Now lets&lt;/font&gt;&lt;/font&gt; get the runtime of Asterisk for Java, As I don't have any plans to play with source of asterisk for Java&lt;br&gt;&lt;br&gt;download the Asterisk-java-03.jar from http://sourceforge.net/projects/asterisk-java/&lt;br&gt;&lt;br&gt;for testing create a directory and copy this Asterisk-java-03.jar file in it&lt;br&gt;Now create a file HelloAGIScript.java and copy paste this code&lt;br&gt;&lt;br&gt;&lt;font color="#17365d"&gt;import org.asteriskjava.fastagi.AgiChannel;&lt;br&gt;import org.asteriskjava.fastagi.AgiException;&lt;br&gt;import org.asteriskjava.fastagi.AgiRequest;&lt;br&gt;import org.asteriskjava.fastagi.BaseAgiScript;&lt;br&gt;&lt;br&gt;public class HelloAGIScript extends BaseAgiScript&lt;br&gt;{&lt;br&gt;    public void service(AgiRequest request, AgiChannel channel)&lt;br&gt;            throws AgiException&lt;br&gt;    {&lt;br&gt;        // Answer the channel...&lt;br&gt;        answer();&lt;br&gt;                &lt;br&gt;        // ...say hello...&lt;br&gt;        streamFile(&amp;quot;tt-monkeysintro&amp;quot;);&lt;br&gt;                &lt;br&gt;        // ...and hangup.&lt;br&gt;        hangup();&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;b&gt;&lt;br&gt;Save it in the same folder, I have saved both of these files at /root/MyAgiScript, now go to terminal window, and compile it&lt;br&gt;[root@localhost MyAgiScripts]# javac -g -cp asterisk-java-0.3.jar HelloAGIScript.java&lt;br&gt;Now, create a file fastagi-mapping.properties copy and paste this code&lt;br&gt;//for mapping the agi script to the Java code we created&lt;br&gt;&lt;font color="#17365d"&gt;hello.agi = HelloAGIScript &lt;/font&gt;&lt;br&gt;&lt;br&gt;now go to your dialplan in asterisk  /etc/asterisk/extensions..conf&lt;br&gt;I have a dialplan like this, which I can dial from a SIP phone&lt;br&gt;&lt;font color="#17365d"&gt;&lt;br&gt;[sip]&lt;br&gt;;&lt;br&gt;exten =&amp;gt; 1,1,Answer()&lt;br&gt;exten =&amp;gt; 1,2,Wait(2)&lt;br&gt;exten =&amp;gt; 1,3,Record(asterisk-recording%d:ulaw)&lt;br&gt;exten =&amp;gt; 1,4,Wait(2)&lt;br&gt;exten =&amp;gt; 1,5,Playback(${RECORDED_FILE}) &lt;br&gt;exten =&amp;gt; 1,6,Agi(agi://localhost/hello.agi)&lt;br&gt;exten =&amp;gt; 1,6,Hangup()&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;Now open another terminal window, and run your AGI server&lt;br&gt;&lt;font color="#17365d"&gt;java -cp asterisk-java-0.3.jar:. org.asteriskjava.fastagi.DefaultAgiServer&lt;/font&gt;&lt;br&gt;&lt;br&gt;and it should run like this&lt;br&gt;May 7, 2008 5:38:29 PM org.asteriskjava.fastagi.DefaultAgiServer startup&lt;br&gt;INFO: Thread pool started.&lt;br&gt;May 7, 2008 5:38:30 PM org.asteriskjava.fastagi.DefaultAgiServer startup&lt;br&gt;INFO: Listening on *:4573.&lt;br&gt;May 7, 2008 5:39:25 PM org.asteriskjava.fastagi.DefaultAgiServer startup&lt;br&gt;INFO: Received connection from /127.0.0.1&lt;br&gt;May 7, 2008 5:39:25 PM org.asteriskjava.fastagi.ResourceBundleMappingStrategy loadResourceBundle&lt;br&gt;INFO: Added mapping for 'hello.agi' to class HelloAGIScript&lt;br&gt;May 7, 2008 5:39:25 PM org.asteriskjava.fastagi.internal.AgiConnectionHandler runScript&lt;br&gt;INFO: Begin AgiScript HelloAGIScript on Asterisk-Java DaemonPool-1-thread-1&lt;br&gt;May 7, 2008 5:39:25 PM org.asteriskjava.fastagi.internal.AgiConnectionHandler runScript&lt;br&gt;INFO: End AgiScript HelloAGIScript on Asterisk-Java DaemonPool-1-thread-1&lt;br&gt;&lt;br&gt;This  output- comes when I dial a call from my sip-phone to the asterisk server; and it plays a sound file for me......&lt;br&gt;&lt;br&gt;Please feel free to ask me any questions you may have; it was sweet to do this, hope someone could've posted all the details like this.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-868301763755123514&amp;page=RSS%3a+asterisk+for+java+-+installation&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=brijraj.spaces.live.com&amp;amp;GT1=brijraj"&gt;</description><comments>http://brijraj.spaces.live.com/Blog/cns!F3F32C257587DCC6!377.entry#comment</comments><guid isPermaLink="true">http://brijraj.spaces.live.com/Blog/cns!F3F32C257587DCC6!377.entry</guid><pubDate>Wed, 07 May 2008 13:01:32 GMT</pubDate><slash:comments>4</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://brijraj.spaces.live.com/blog/cns!F3F32C257587DCC6!377/comments/feed.rss</wfw:commentRss><wfw:comment>http://brijraj.spaces.live.com/Blog/cns!F3F32C257587DCC6!377.entry#comment</wfw:comment><dcterms:modified>2008-05-07T13:01:32Z</dcterms:modified></item></channel></rss>