<?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>Zaki.Asia &#187; voip</title>
	<atom:link href="http://zaki.asia/tag/voip/feed/" rel="self" type="application/rss+xml" />
	<link>http://zaki.asia</link>
	<description>Virtual Worlds - Real Experience</description>
	<lastBuildDate>Fri, 16 Jul 2010 05:29:47 +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>FreeSWITCH, OpenSim and the G722.1C codec</title>
		<link>http://zaki.asia/2009/05/18/freeswitch-opensim-and-the-g7221c-codec/</link>
		<comments>http://zaki.asia/2009/05/18/freeswitch-opensim-and-the-g7221c-codec/#comments</comments>
		<pubDate>Mon, 18 May 2009 08:48:53 +0000</pubDate>
		<dc:creator>Zaki</dc:creator>
				<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://zaki.asia/?p=79</guid>
		<description><![CDATA[Kai Ludwig has recently left a very valuable comment (thank you, Kai): Actually the new FreeSwitch siren14 codec has never been used with SLVoice! Everybody having voicechat with OpenSim is using PCMU without knowing it. Actually I didn&#8217;t realize that at first either, but after he pointed this out, I started looking for a way ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.talentraspel.de/" target="_blank">Kai Ludwig</a> has recently left a very valuable <a href="  http://zaki.asia/?p=41&amp;cpage=1#comment-760" target="_self">comment</a> (thank you, Kai):</p>
<blockquote><p>Actually the new FreeSwitch siren14 codec has never been used with SLVoice! Everybody having voicechat with OpenSim is using PCMU without knowing it.</p></blockquote>
<p>Actually I didn&#8217;t realize that at first either, but after he pointed this out, I started looking for a way to be able to use siren14. I haven&#8217;t really come up with a way to use the SLVoice.exe included with the SecondLife viewer, rather, I modified the <a href="https://sourceforge.net/projects/voipforvw/" target="_blank">voipforvw</a> codes to support it. Voice quality is now way better than the stock PCMU.<br />
<img src="http://zaki.asia/images/freeswitch_g7221c.jpg" alt="Connecting to FreeSWITCH with G722.1" width="100%" /></p>
<p>In the near future, I intend to make a post on how to use voipforvw with FreeSWITCH.</p>
]]></content:encoded>
			<wfw:commentRss>http://zaki.asia/2009/05/18/freeswitch-opensim-and-the-g7221c-codec/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to compile Voipforvw&#8217;s SLVoice</title>
		<link>http://zaki.asia/2009/05/10/how-to-compile-voipforvws-slvoice/</link>
		<comments>http://zaki.asia/2009/05/10/how-to-compile-voipforvws-slvoice/#comments</comments>
		<pubDate>Sat, 09 May 2009 16:18:08 +0000</pubDate>
		<dc:creator>Zaki</dc:creator>
				<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[voip]]></category>
		<category><![CDATA[voipforvw]]></category>

		<guid isPermaLink="false">http://zaki.asia/?p=67</guid>
		<description><![CDATA[What is Voipforvw? With the SecondLife viewer comes an executable named SLVoice.exe. This is the piece of software that is responsible for the &#8220;low level&#8221; voice communication, so while the viewer does the accounting (login information, UI), this part does all the heavy lifting of contacting the voice servers and of  course translating the voice ...]]></description>
			<content:encoded><![CDATA[<h3>What is Voipforvw?</h3>
<p>With the SecondLife viewer comes an executable named SLVoice.exe. This is the piece of software that is responsible for the &#8220;low level&#8221; voice communication, so while the viewer does the accounting (login information, UI), this part does all the heavy lifting of contacting the voice servers and of  course translating the voice of the speaker to RTP packets and back. The long and the short of it is that <a href="http://sourceforge.net/projects/voipforvw/" target="_blank">voipforvw</a> (voip for virtual worlds) is a snap-in replacement for this executable that communicates with the viewer and as you&#8217;d guess, does the heavy lifting and coding/decoding. The core of this application was originally developped by <a href="http://www.3di.jp/en/index.html" target="_blank">3Di</a> (more specifically sempuki, who in the meantime left for greener pastures and skiryu, who is now the CEO of the startup <a href="http://www.magicalim.com/home_en.html" target="_blank">Magical Implements</a>) I came to the project around August 2008 and was working, among others, on this project with skiryu until about October 2008, when the internal priorities changed, so for a very long time we didn&#8217;t have the time to maintain voipforvw. Now here we are in May 2009 and I hope that with the new FreeSWITCH module for OpenSim working (mostly), attention might come back to voice and thus voipforvw. At 3Di, internally we are also increasing the amount and quality of community activity compared to last year (before we shifted temporarily to a shipping-oriented mindset), so we will have more time to work on and share various projects like this.</p>
<h3>But why should I care about it?</h3>
<p>The thing is, that the original SLVoice was developped for Linden Labs by a company named <a href="http://www.vivox.com/" target="_blank">Vivox</a> and is of a proprietary license. The good news is, that it is insanely high quality (it runs on a couple of plaftorms and powers virtual worlds like SecondLife or games like EVE Online) with ready-made 3D positional audio. The bad news is that it&#8217;s proprietary to the point that you are explicitly disallowed from using it for OpenSim. From the <a href="http://www.vivox.com/open/faq.php" target="_blank">FAQ</a> on vivox&#8217;s home page says:</p>
<blockquote><p><strong>Can I distribute this to friends?</strong><br />
No, currently Vivox software and service is offered for individual, non-commercial use only.</p></blockquote>
<blockquote><p><strong>Can I use this outside of Second Life?</strong><br />
No, the currently offered software is only available for the Second Life Viewer open source community.</p></blockquote>
<p>Tough luck if you are a commercial entity who wants to provide a VoIP solution for your customers based on OpenSim.</p>
<p>I was pretty surprised that outside 3Di (and to be self-critical, for a long time even inside 3Di &#8211; even if it&#8217;s for a <a href="http://3di-opensim.com/" target="_blank">reason</a>) nobody really cared about this project and that voice patches were not accepted becase of a base64 encoded UUID (that by the way works the same way in the new FreeSWITCH module that was committed by the same person). My hope is that more developers from the community can join to the project in the future and help clean up the relative mess it is in right now.</p>
<h3>What&#8217;s the catch?</h3>
<p>Well, unfortunately there <strong>is</strong> a catch. The license of the SIP/RTP stack used in vopforvw is GPL. This has a simple effect on the whole project, that is, voipforvw automatically becomes GPL. Unfortunately currently there is no good library that comes with a BSD-like license, the closest we can get is LGPL. (If you happen to know of one, please do let me know in the comments). While I&#8217;m a fan of C#, there is basically no free SIP/SDP library of any license for C# either.</p>
<p>Second, at the moment noone is maintaining the Linux version: in theory it should compile just OK, but that is not something I&#8217;d personally guarantee. I will try to look into that later.</p>
<h3>But it&#8217;s sooooo difficult to use.</h3>
<p>I&#8217;ve heard this argument for quite some time: it is probably my failure to do zilch about it so far and i guess being busy (look up the japanese word karoushi) for the last half a year or so is no excuse, so I will try to make amends now. Compiling the SLVoice replacement is not really that difficult. If you have problems with building, take a look at the screencast below and see if it can help fixing your problem. And of course, you can leave comments here (sorry, I am not really monitoring the sourceforge project forum)</p>
<p><strong>Please note:</strong> trunk contains a version that only works with SLViewer versions below 1.22 (1.19, 1.20 and 1.21 were tested). For 1.22, I started a branch named sl_1.22 that contains an updated version that &#8211; in turn &#8211; only works with 1.22. As I am not allowed to look at the viewer&#8217;s source code, many thanks go to yk, who described the major API changes to me. Unfortunately this also means, that I can&#8217;t guarantee that the 1.22 version works properly. At least I had success making conferences work with that branch, but further testing will be needed for that branch to be integrated back into trunk.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="505" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/snEyl-hLhVo&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="505" src="http://www.youtube.com/v/snEyl-hLhVo&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>What will I need?</h3>
<p>You will need voipforvw, that you can check out from sourceforge.net:</p>
<pre class="brush: bash;">
svn co https://voipforvw.svn.sourceforge.net/svnroot/voipforvw voipforvw
</pre>
<p>Next, you will need <a href="http://www.boost.org/" target="_blank">boost</a>, <a href="http://curl.haxx.se/download.html" target="_blank">curl</a> and <a href="http://www.pjsip.org/download.htm" target="_blank">pjsip</a>. The versions that I was using are 1.39, 7.19.4 and 1.0.2 respectively. For PjSIP, 1.x series will currently not work due to API changes.</p>
<p>For compiling on Windows, you will also need the Platform SDK and DirectX SDK. Voipforvw uses <a href="http://www.cmake.org/cmake/resources/software.html" target="_blank">CMake</a> for its configuration too.</p>
<h4>Step 1. Compile dependencies</h4>
<p>Set up (if you haven&#8217;t already) the platform SDK and DirectX SDK folders in Visual Studio.</p>
<p>Compile boost with bjam. To build bjam first, just run build.bat, which creates bjam.exe; use that in the boost directory with the following commandline:</p>
<pre class="brush: bash;">
#
#
#
bjam --toolset=msvc link=static runtime-link=static threading=multi \
     --with-thread stage
</pre>
<p>To compile cURL, open the solution file, change the build type to Release and set the Runtime Library to Multithreaded (/MT). These changes are necessary, because we will be using multiple boost state machines from a multithreaded environment. Build only libcurl.</p>
<p>PjSIP will need you to move the file  pjlib/include/pj/config_site_sample.h into config_site.h No changes are necessary to this file, the defaults will work fine.</p>
<p>Open  pjproject-vs8.sln (and convert it as needed) set it to Release and build the solution.</p>
<h4>Step 2: Configure and build voipforvw</h4>
<p>Next, go to the voipforvw trunk and edit CMakeLists.txt You will need to change the paths for PJDIR, CURLDIR and BOOSTDIR. Don&#8217;t use backslashes, replace them with forward slashes. The CURLLIBS variable needs to be changed from curllib.lib to libcurl.lib.</p>
<p>Open up CMake-gui and set the source directory to the voipforvw trunk. The output directory can be the same. Hit Configure (it will probably complain about backwards compatibility, but just ignore it and hit Configure again). If configuring goes well, there will be no red lines in the config window. Hit Generate, that will ask for the format of the solution file, choose the Visual Studio version you have and click OK. This creates the main solution file.</p>
<p>After opening this solution, there are three things you will need to check: first, set the build type to Release. Next check that the Runtime Library is Multithreaded (/MT) to match the other libraries and finally, LIBCMT will have to be removed from the libraries (because it conflicts with MSVCRT). Now you can build SLVoice.exe that you can use as a replacement for the vivox solution.</p>
<h4>Debug</h4>
<p>You probably noticed that we are building everything in Release mode. That&#8217;s fine as long as it works, but sometimes you will want to debug (hopefully less often). In this case you will need to change the Runtime Library to /MTd for PjSIP and voipforvw. Then CMakeLists.txt needs to be updated to reflect this by setting</p>
<p>SET (PJTARGET i386-win32-vc8-debug)</p>
<p>Where you remove the LIBCMT library, now you will have to do the same thing for both LIBCMT and LIBCMTD and you can build SLVoice.exe in debug mode.</p>
<p>If you only need logging to see what&#8217;s going on inside, you can change the code:</p>
<pre class="brush: cpp;">
// CHANGE FILE: main.h:37
#define LOG
#ifdef LOG
extern FILE *logfp;
#define  VFVW_LOGINIT()  logfp = fopen(&quot;test.log&quot;, &quot;a&quot;)
/*
#define  VFVW_LOG(fmt, ...)  \
fprintf(stderr, &quot;[VFVW] %s:%d - &quot;, __FILE__, __LINE__);	\
fprintf(stderr, fmt, ## __VA_ARGS__);	\
fprintf(stderr, &quot;\r\n&quot;)
*/
#define  VFVW_LOG(fmt, ...) \
fprintf(logfp, &quot;[VFVW] %s:%d - &quot;, __FILE__, __LINE__);	\
fprintf(logfp, fmt, ## __VA_ARGS__);	\
fprintf(logfp, &quot;\r\n&quot;);	\
fflush(logfp)
#else
#define VFVW_LOGINIT()        void()
#define VFVW_LOG(fmt, ...)    void()
#endif
[/sourcecode]

[sourcecode language=&quot;c++&quot;]
//CHANGE FILE main.cpp:15
#ifdef LOG
FILE *logfp = NULL;
#endif
</pre>
]]></content:encoded>
			<wfw:commentRss>http://zaki.asia/2009/05/10/how-to-compile-voipforvws-slvoice/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FreeSWITCH module in OpenSim</title>
		<link>http://zaki.asia/2009/04/28/freeswitch-module-in-opensim/</link>
		<comments>http://zaki.asia/2009/04/28/freeswitch-module-in-opensim/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 18:26:01 +0000</pubDate>
		<dc:creator>Zaki</dc:creator>
				<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://zaki.asia/?p=41</guid>
		<description><![CDATA[A video tutorial for setting up OpenSim to use the new FreeSWITCH voice chat module.]]></description>
			<content:encoded><![CDATA[<p>It seems that Linden Labs has finally changed their code and removed the hardcoded vivox.com references in 1.22; this has opened a lot of possibilities for making voice chat work, which previously required the &#8211; still valid &#8211; <a href="http://sourceforge.net/projects/voipforvw" target="_blank">voipforvw</a> project&#8217;s SLVoice replacement. There is of course nothing wrong with voipforvw except that it&#8217;s a monster that prefers to live under a rock and by its nature does not lend itself easily to compiling; as other internal targets were more important, and the replacement SLVoice was working (and working well, actually) with the <a href="http://zaki.asia/?p=11" target="_self">Asterisk setup</a>, unfortunately I had pretty much no time to get that project into shape.</p>
<p>To my great relief, Rob Smart from IBM has finally stepped up the game and provided a solution for FreeSWITCH, that works without this SLVoice replacement (I want to note though, that it is only working with the unmodified SLVoice.exe because of the changes in the viewer, and in all likeliness, the Asterisk solution would work just as well). I&#8217;ve been eyeing FreeSWITCH for quite a while and just when I finally have some spare time to play around with it, this new module comes out: and it&#8217;s really awesome! First of all, it works without jumping through ztdummy/dahdi hoops and mysql realtime configurations, or heaven forbid, RFC4028s.</p>
<p>Setup is very straightforward, and it works even on Windows. To set it up, you will need three components:</p>
<p>First, OpenSim itself. Because the new FreeSWITCH module is experimental, it is only found in trunk, and as usual, please note, that trunk is <strong>unstable </strong>it might have serious bugs, it can corrupt your data, or <a href="https://lists.berlios.de/pipermail/opensim-users/2009-April/001878.html" target="_blank">eat your children</a>, especially if you do the unthinkable and try to install it in a production environment, which you should never do. Ever! No exceptions. If you are brave enough, you can proceed very carefully and try out the trunk.</p>
<p>Next, obviously, you will need FreeSWITCH. I tried the Windows binary snapshot from <a href="http://wiki.freeswitch.org/wiki/Installation_Guide" target="_blank">here</a>: that works well. For the configuration instructions take a look at the <a href="http://opensimulator.org/wiki/Freeswitch_Module" target="_blank">OpenSim wiki page</a>. Linux installation instructions are also included there.</p>
<p>Finally, SecondLife viewer. Only versions later than 1.22 are supported, so be sure to grab a newer version from Linden Labs.</p>
<p>After setting up FreeSWITCH and OpenSim, connecting to the grid and enabling voice chat, one surprising thing will happen by default: that is, nothing. Conference chat won&#8217;t work with the default estate settings, because the parcel voice is disabled. In the video, I&#8217;m setting &#8220;Use a private spatial channel&#8221;, but &#8220;Use the estate spatial channel&#8221; should work as well. Enable voice, and it will work now. After this, conference and private chat features will work. On my setup, I found that private chat is quite clear and easy to understand, but the spatial conferences are way too low quality, but that is probably a configuration issue on my environment.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="505" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/7k_xQQOcYDk&amp;fmt=22&amp;hl=en&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;hd=1&amp;border=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="505" src="http://www.youtube.com/v/7k_xQQOcYDk&amp;fmt=22&amp;hl=en&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;hd=1&amp;border=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://zaki.asia/2009/04/28/freeswitch-module-in-opensim/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Voice chat in OpenSim</title>
		<link>http://zaki.asia/2008/08/28/getting-voice-chat-in-opensim/</link>
		<comments>http://zaki.asia/2008/08/28/getting-voice-chat-in-opensim/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 13:07:49 +0000</pubDate>
		<dc:creator>Zaki</dc:creator>
				<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://zaki.asia/?p=11</guid>
		<description><![CDATA[Overview If you want to set up voice chat for your grid, here is a rundown on what you will need and how it works. The SIP server that is currently used with OpenSim is Asterisk. The setup is based on a dynamic, MySQL-based configuration that our frontend (at this point a python script that ...]]></description>
			<content:encoded><![CDATA[<div class="note_box">The content of this post is outdated. To learn more about the new FreeSWITCH connector in OpenSim, go to <a href="http://zaki.asia/2009/04/28/freeswitch-module-in-opensim/" target="_self">FreeSWITCH module in OpenSim</a></div>
<div class="divider"></div>
<div class="bvMsg">
<h1>Overview</h1>
<p>If you want to set up voice chat for your grid, here is a rundown on what you will need and how it works.</p>
<p>The SIP server that is currently used with OpenSim is Asterisk. The setup is based on a dynamic, MySQL-based configuration that our frontend (at this point a python script that will be retired very soon) can communicate with. This frontend is invoked by the SLVoice replacement when the user REGISTERs to the SIP channel selected.</p>
<p>There are two questions at this point: how does SLVoice know where to contact the voice server and how does it know the SIP domain associated with our asterisk so that it can register.</p>
<p>The region server must be set up to provide the SIP domain to SLViewer which passes it down to SLVoice. Also, OpenSim.ini has the address of the frontend and the AsteriskVoice module in Region.Environment.Modules.Avatar.Voice invokes the registration methods of this frontend.</p>
<p>However SLVoice doesn&#8217;t always get the real SIP domain. Conference chat is no problem, but when private chat is initiated, it only receives a hard-coded SIP URI that it needs to change to the real URI. To be most flexible, this domain is queried at registration time from an HTTP server, the address of which is defined in slvoice.ini. This seems like a long-cut, but VoiceServer (the frontend) is being refactored already to include this functionality, so that this extraneous initialization and additional component can be removed.</p>
<p>When SLVoice registered via the frontend, it can contact the Asterisk service and start the real voice chat.</p>
<h1>Installation</h1>
<h5>Zaptel</h5>
<a class="button_link" href="#"><span>Download Zaptel</span></a>
<p>Zaptel is a dependency for Asterisk and absolutely a must if you have specialized telephony hardware. For voice chat though, the ztdummy kernel module is enough: this will provide a timer for asterisk.</p>
<p>Zaptel requires that you have</p>
<p><em>bison, bison-devel<br />
newt, newt-devel<br />
ncurses, ncurses-devel</em></p>
<p>Installation is straightforward: <em><strong>./configure; make; make install </strong></em></p>
<p>(Note: You need to be root to install zaptel, sudo won&#8217;t be enough even with the proper permissions)</p>
<p>After installation, make sure you run <strong><em>modprobe ztdummy; modprobe zaptel</em></strong></p>
<h5>Asterisk</h5>
<p><a title="http://www.asterisk.org/" href="http://www.asterisk.org/"><strong>http://www.asterisk.org/</strong></a></p>
<p>First of all, asterisk has a linux and a windows version, but at this moment, setting up the windows version is very awkward to say the least. Also, recent distributions already include a package version of asterisk with proper dependencies resolved&#8230; that doesn&#8217;t seem to work. So your best bet is installing from source. I have done this on Fedora 8 and 9, Centos4(! it&#8217;s a pain, though) and 5 and Ubuntu.</p>
<p>Before you start, please make sure the following are installed:</p>
<p><em>mysql, mysql-connector-odbc<br />
unixODBC-devel<br />
libtool-ltdl-devel<br />
kernel-devel</em> (this should also match your currently installed kernel. On Fedora, if you haven&#8217;t done that already, you should update the kernel at this point if you can, unless you want to hunt down older versions of the kernel-devel package)</p>
<p>The latest versions of Asterisk don&#8217;t include the sources for the codec iLBC anymore. If you want those supported, please run contrib/scripts/get_ilbc_source.sh</p>
<p>It is advised that you run <strong><em>make menuselect</em></strong> and configure the modules before you install asterisk. You will need res_odbc to interface properly with MySQL. Also make sure that ztdummy and app_meetme are marked for install. Then <strong><em>make; make install</em></strong>.</p>
<h5>OpenSim</h5>
<p>Get OpenSim and apply [Patch 1689] (<a title="http://opensimulator.org/mantis/view.php?id=1689" href="http://opensimulator.org/mantis/view.php?id=1689">http://opensimulator.org/mantis/view.php?id=1689</a>) to get private chat working.</p>
<h5>Asterisk Frontend</h5>
<p>The current frontend requires Python2.5 with mysql support (<a title="http://sourceforge.net/projects/mysql-python" href="http://sourceforge.net/projects/mysql-python">http://sourceforge.net/projects/mysql-python</a> if not included in the distribution) The frontend can be found in <strong><em>share/python/asterisk/</em></strong></p>
<h1>Setup</h1>
<h4>Asterisk</h4>
<p>In MySQL, create a database: <em>CREATE DATABASE asterisk; </em>and add an &#8216;asterisk&#8217; user by <em>GRANT ALL ON asterisk.* TO asterisk@&lt;host&gt; IDENTIFIED BY &#8216;&lt;password&gt;&#8217;;</em></p>
<p>The frontend will create the schema on first start.</p>
<p>Set up ODBC:</p>
<p><strong>/etc/odbcinst.ini<br />
</strong></p>
<pre class="brush: plain;">
[MySQL]
Description = MySQL For Asterisk
Driver = /usr/lib/libmyodbc3.so
Setup = /usr/lib/libodbcmyS.so
FileUsage = 1
</pre>
<p><strong>/etc/odbc.ini<br />
</strong></p>
<pre class="brush: plain;">
[asterisk]
Driver = MySQL
Server =&lt;server address&gt;
Database = asterisk
Port = 3306
User = asterisk
Password = *********
Socket =
Option = 3
Stmt =
</pre>
<p><strong>/etc/asterisk/extconfig.conf<br />
</strong></p>
<pre class="brush: plain;">
sipusers =&gt;    odbc,asterisk,ast_sipfriends
sippeers =&gt;    odbc,asterisk,ast_sipfriends
extensions =&gt; odbc,asterisk,extensions_table
</pre>
<p><strong>/etc/asterisk/extensions.conf<br />
</strong></p>
<pre class="brush: plain;">
[avatare]
switch =&gt; Realtime/@
</pre>
<p><strong>/etc/asterisk/modules.conf</strong></p>
<pre class="brush: plain;">
[modules]
autoload =&gt; yes
noload =&gt; pbx_gtkconsole.so
load =&gt; res_musiconhold.so
noload =&gt; chan_alsa.so
preload =&gt; res_odbc.so
preload =&gt; res_config_odbc.so
</pre>
<p><strong>/etc/asterisk/res_odbc.conf</strong></p>
<pre class="brush: plain;">
[asterisk]
enabled =&gt; yes
dsn =&gt; asterisk
username =&gt; asterisk
password =&gt; *********
pre_connect =&gt; yes
</pre>
<h4>Frontend</h4>
<p>In asterisk-opensim.cfg, set</p>
<pre class="brush: plain;">
[xmlrpc]
baseurl = http://&lt;frontendhost&gt;:&lt;frontendport&gt;

[mysql]
server   = &lt;mysqlhost&gt;
database = asterisk
user      = asterisk
password = ************
debug    = true

[mysql-templates]
tables = create-table.sql
user   = create-user.sql
region = create-region.sql
</pre>
<h4>OpenSim</h4>
<p>In OpenSim.ini, add the following section:</p>
<pre class="brush: plain;">
[AsteriskVoice]
enabled = true
sip_domain = &lt;asterisk address&gt;
conf_domain = &lt;asterisk address&gt;
asterisk_frontend = http://&lt;frontendhost&gt;:&lt;frontendport&gt;/
asterisk_password = **********
asterisk_timeout = 3000
asterisk_salt = paluempalum
</pre>
<h4>SLVoice</h4>
<p>Create an HTML page that has a single line stating the SIP URI to be used for private chats (same as &lt;asterisk address&gt;) Set this page&#8217;s address in slvoice.ini and connect to the region. Voice chat should be working now.</p>
<h1>What&#8217;s next</h1>
<ul>
<li>There is an ongoing effort to refactor the frontend code. The resulting architecture will be much cleaner with fewer connections.</li>
</ul>
<ul>
<li>The new VoiceServer in progress already includes support for SIP proxies like OpenSER, the SLVoice replacement will be updated shortly to add proxy support as well.</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://zaki.asia/2008/08/28/getting-voice-chat-in-opensim/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
