<?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>Elastix Blogs</title>
	<atom:link href="http://blogs.elastix.org/en/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.elastix.org/en</link>
	<description>Elastix Community Blog</description>
	<lastBuildDate>Fri, 29 Jan 2010 15:10:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Broadcast messages with Elastix&#8217;s Call Center Module</title>
		<link>http://blogs.elastix.org/en/2010/01/broadcast-messages-with-elastixs-call-center-module/</link>
		<comments>http://blogs.elastix.org/en/2010/01/broadcast-messages-with-elastixs-call-center-module/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 22:04:30 +0000</pubDate>
		<dc:creator>Juan Pablo Bustos</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Elastix]]></category>
		<category><![CDATA[VOIP]]></category>
		<category><![CDATA[Agents]]></category>
		<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[automated message]]></category>
		<category><![CDATA[broadcast]]></category>
		<category><![CDATA[Call Center]]></category>
		<category><![CDATA[campaign]]></category>
		<category><![CDATA[Dialer]]></category>
		<category><![CDATA[message]]></category>

		<guid isPermaLink="false">http://blogs.elastix.org/en/?p=258</guid>
		<description><![CDATA[Hi people, this is my first appearence at this blog, by way of a small introduction  my name is Juan Pablo Bustos and I&#8217;m writing from Mendoza &#8211; Argentina, I&#8217;m a Systems Analyst and also I have my ECT Certification.
I&#8217;ve been talking with Rafael about publishing this method, and he suggested to share it in [...]]]></description>
			<content:encoded><![CDATA[<p>Hi people, this is my first appearence at this blog, by way of a small introduction  my name is Juan Pablo Bustos and I&#8217;m writing from Mendoza &#8211; Argentina, I&#8217;m a Systems Analyst and also I have my ECT Certification.</p>
<p>I&#8217;ve been talking with Rafael about publishing this method, and he suggested to share it in the Elastix Blog, so that&#8217;s why I&#8217;ve have published it, so we can polish it and see a way to implement it on a larger scale.</p>
<p>The objective of this implementation is to use Elastix&#8217;s dialer to call a list of customers to deliver a message and to be able to still use the Call Center with “real” agents. I have also added a little PHP script that logs the customer&#8217;s answer (number dialed) after the call is completed.</p>
<p>To get this to work, we need to create:</p>
<p>- Some &#8220;virtual agents&#8221; that are created in the same way as the &#8220;real&#8221; agents in the  Call Center&#8217;s GUI.</p>
<p>- A Custom Context to log them in with the command AgentCallbackLogin (sadly deprecated in Asterisk 1.6 , but able to be worked around).</p>
<p>- Another Custom Context to log them (for debugging purposes, but useful sometimes).</p>
<p>- A Custom Context to redirect the calls to a final custom context that will handle the calls.<span id="more-258"></span></p>
<p>It seems a little tricky, but with a few Custom Contexts you’ll be able to use a feature that is requested very often.</p>
<p>Now the question is, why “virtual” agents ? The answer is pretty simple, I needed to keep Call Center’s original functionality.</p>
<p>As you may noticed the way that Elastix’s dialer, before dialing, polls for the available agents, that’s why we are using AgentCallbackLogin, and to make it call.</p>
<p>So the overview of the process will be something like this:</p>
<p><strong>1) We create the agent with the Call Center’s GUI.</strong></p>
<p><strong>2)  We delete the password of the agent at the file</strong></p>
<p>In etc/asterisk/agents.conf , it will be something like this:<br />
Agent prototype: agent =&gt; [Agent ID],[password],[Agent’s Name]</p>
<blockquote><p>[agents]</p>
<p>Agent =&gt; 1001,,Virtual 1</p>
<p>Agent =&gt; 1002,,Virtual 2</p>
<p>Agent =&gt; 1003,,Virtual 3</p>
<p>Agent =&gt; 1004,,Virtual 4</p></blockquote>
<p><strong><br />
3)  We create a Custom Context to login our virtual agent at extensions_custom.conf:</strong></p>
<p>The prototype for <strong>AgentCallbackLogin</strong> is this:<br />
<em>AgentCallbackLogin([AgentNo][|Options[|exten[@context]]])</em></p>
<blockquote><p>[login-agents]</p>
<p>exten =&gt; 1111,1,Answer</p>
<p>exten =&gt; 1111,n,NoOp(Logging Agents)</p>
<p>exten =&gt; 1111,n,AgentCallbackLogin(1001,s,501 at from-internal)</p>
<p>exten =&gt; 1111,n,AgentCallbackLogin(1002,s,502 at from-internal)</p>
<p>exten =&gt; 1111,n,AgentCallbackLogin(1003,s,503 at from-internal)</p>
<p>exten =&gt; 1111,n,AgentCallbackLogin(1004,s,504 at from-internal)</p>
<p>exten =&gt; 1111,n,NoOp(All Logged)</p>
<p>exten =&gt; 1111,n,Hangup()</p></blockquote>
<p><strong>4) We create a “Catch” extension to pick up all the calls directed to our virtual agents:</strong></p>
<blockquote><p>[catchcalls]</p>
<p>exten =&gt; 501,1, Goto(amessage,s,1)</p>
<p>exten =&gt; 502,1, Goto(amessage,s,1)</p>
<p>exten =&gt; 503,1, Goto(amessage,s,1)</p>
<p>exten =&gt; 504,1, Goto(amessage,s,1)</p></blockquote>
<p><strong>5) Finally we create the Custom Context to deliver the message:</strong></p>
<blockquote><p>[amessage]</p>
<p>exten =&gt; s,1,Answer</p>
<p>exten =&gt; s,2,Wait,2</p>
<p>exten =&gt; s,n,Read(tmp,custom/message1,1||1|5)</p>
<p>exten =&gt; s,n,Set(RESP=${tmp})</p>
<p>exten =&gt; s,n,Playback(thank-you-cooperation)</p>
<p>exten =&gt; s,n,Hangup()</p>
<p>exten =&gt; h,1,DeadAGI(llamadas.php,${RESP})</p></blockquote>
<p>As you may notice if you want to store the answer in the case of a poll or similar, you can store the answer using the command read instead of playback, and once the call is finished call a script to handle the answer.</p>
<p><strong>6)  Create a queue where you’ll put your virtual agents.</strong></p>
<p><strong>7) Create an outgoing campaign and start burning minutes!</strong></p>
<p>For this implementation I used <strong>Elastix 1.5.2 </strong>and <strong>Call Center 1.5 </strong> with 50 virtual agents and it works like a charm.</p>
<p>I hope you weren’t bored if this mini guide is kind of basic or by my English.</p>
<p>Thanks for reading it and I hope It’ll be useful</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.elastix.org%2Fen%2F2010%2F01%2Fbroadcast-messages-with-elastixs-call-center-module%2F&amp;linkname=Broadcast%20messages%20with%20Elastix%26%238217%3Bs%20Call%20Center%20Module"><img src="http://blogs.elastix.org/en/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blogs.elastix.org/en/2010/01/broadcast-messages-with-elastixs-call-center-module/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Elastix &amp; NetBook E1210</title>
		<link>http://blogs.elastix.org/en/2009/12/elastix-netbook-e1210/</link>
		<comments>http://blogs.elastix.org/en/2009/12/elastix-netbook-e1210/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 11:35:21 +0000</pubDate>
		<dc:creator>Franck Danard</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Elastix]]></category>
		<category><![CDATA[VOIP]]></category>
		<category><![CDATA[E1210]]></category>
		<category><![CDATA[elastix install usb]]></category>
		<category><![CDATA[elastix install web]]></category>
		<category><![CDATA[netbook]]></category>

		<guid isPermaLink="false">http://blogs.elastix.org/en/?p=230</guid>
		<description><![CDATA[It&#8217;s sometimes interesting to be able to install a small server Elastix on a device that is not expensive.
It is also well known that Asterisk does not need huge CPU power to function properly, with minimal requirements for RAM, and the hard disk size (few gigabytes is enough).
I personally had the chance to get their [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s sometimes interesting to be able to install a small server Elastix on a device that is not expensive.</p>
<p>It is also well known that Asterisk does not need huge CPU power to function properly, with minimal requirements for RAM, and the hard disk size (few gigabytes is enough).</p>
<p>I personally had the chance to get their hands on a superb offer from the incumbent. No less than 101 € for this little Netbook. With my current server running on the same basis, I told myself: &#8220;Why not put this on Elastix netbook?!&#8221;</p>
<p><img class="aligncenter size-full wp-image-251" src="http://blogs.elastix.org/en/wp-content/uploads/2009/12/netbook1.jpg" alt="netbook" width="600" height="502" /></p>
<p><span id="more-230"></span></p>
<p>As this marvelous Medion Netbook E1210 is capable of booting from a USB key, it was sufficient for me to take a key of 2GB, and to put Elastix on it.</p>
<p><strong>First</strong> &#8211; Download the latest version of Elastix off the Elastix.org site.<br />
<strong>Next</strong> &#8211; Burn Elastix onto a CD, then to put the content of the CD to a web site /var/www/html/<strong>install</strong> for example.<br />
(<em>Either a site intranet, or other. There are some small servers as Easyphp that functions very well on a PC under Windows</em>).</p>
<p>Modify the ks.cfg file while commenting out the cdrom info like this:</p>
<p><strong>#Use CDROM installation medium<br />
#cdrom</strong></p>
<p>Next, it will be necessary for you to format the USB Key using  FAT preferably using FAT32. Then to download the Windows program: <a href="http://unetbootin.sourceforge.net/" target="_blank">unetbootin</a> from the web.</p>
<p><img class="aligncenter size-full wp-image-256" src="http://blogs.elastix.org/en/wp-content/uploads/2009/12/unebootin.png" alt="unebootin" width="440" height="326" /></p>
<p>This program prepares the USB key for booting, and then copy the file iso content to the USB Key, following the instructions which are very simplistic. After a few minutes, the USB key is ready.</p>
<p>Put the key on the right side of the Netbook (otherwise, the key will be recognized but the boot won&#8217;t make itself), then press the [<strong>F11</strong>] key repeatedly until a small menu with a choice comes up indicating the name of the USB key.</p>
<p>Select this, and another menu will appear. Press  [<strong>ENTER</strong>]. Linux is will continue loading as if it was being installed from CDROM.</p>
<p>But at some point, it will prompt saying that it cannot find the file: <strong>CDROM:/ks_advenced.cfg.</strong></p>
<p>When this occurs then replace : <strong>CDROM:/ks_advenced.cfg </strong>with<strong> </strong><strong>http://your_web_server/install/ks.cfg</strong> , and then press OK.</p>
<p>At this point the installation program will recognize that the installation is to be completed from a Web server.</p>
<p>Use this time to disable the WIFI with (Key [<strong>Fn</strong>] + [<strong>F11</strong>]) and disable the webcam with (Key [<strong>Fn</strong>] + [<strong>F6</strong>]).</p>
<p><img class="aligncenter size-full wp-image-250" src="http://blogs.elastix.org/en/wp-content/uploads/2009/12/netbookkeyboard.jpg" alt="netbookkeyboard" width="600" height="351" /></p>
<p>It&#8217;s going to ask the url of the web site:  <strong>http://your_web_server/install/</strong>.  Press OK.</p>
<p>The installation will continue as normal.</p>
<p>Remove the key before the Elastix installation goes into the section of partitioning, otherwise, the GRUB will be installed badly on the disk.</p>
<p>Thats it, the installation is finished.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.elastix.org%2Fen%2F2009%2F12%2Felastix-netbook-e1210%2F&amp;linkname=Elastix%20%26amp%3B%20NetBook%20E1210"><img src="http://blogs.elastix.org/en/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blogs.elastix.org/en/2009/12/elastix-netbook-e1210/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Useful Elastix Videos</title>
		<link>http://blogs.elastix.org/en/2009/11/useful-elastix-videos/</link>
		<comments>http://blogs.elastix.org/en/2009/11/useful-elastix-videos/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 20:06:48 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[Elastix]]></category>
		<category><![CDATA[VOIP]]></category>
		<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[create extension]]></category>
		<category><![CDATA[DID]]></category>
		<category><![CDATA[follow me]]></category>
		<category><![CDATA[ivr]]></category>
		<category><![CDATA[outgoing trunk]]></category>
		<category><![CDATA[recordings]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blogs.elastix.org/en/?p=180</guid>
		<description><![CDATA[In this post we are going to share some useful video tutorials uploaded to Youtube by  Scott Wittenberg.  These and other videos can be accessed in the Elastix Youtube Channel.
In this article you can watch the following videos:

How to setup a basic Extension in Elastix
How to setup a basic outgoing trunk in Elastix
How to setup [...]]]></description>
			<content:encoded><![CDATA[<p>In this post we are going to share some useful video tutorials uploaded to Youtube by  <a href="http://www.youtube.com/user/synapseglobal">Scott Wittenberg</a>.  These and other videos can be accessed in the <a href="http://www.youtube.com/elastixpbx">Elastix Youtube Channel</a>.</p>
<p>In this article you can watch the following videos:</p>
<ul>
<li>How to setup a basic Extension in Elastix</li>
<li>How to setup a basic outgoing trunk in Elastix</li>
<li>How to setup Follow Me in Elastix</li>
<li>How to Setup A Basic DID (Telephone Number) Using Elastix</li>
<li>How to setup a basic IVR (Automated Attendant) in Elastix</li>
</ul>
<h2>How to setup a basic Extension in Elastix</h2>
<h2><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" 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/TyfJdlbg4FA&amp;hl=es_ES&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/TyfJdlbg4FA&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></h2>
<h2><span id="more-180"></span></h2>
<h2>How to setup a basic outgoing trunk in Elastix</h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" 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/EEbf0pqcJ3U&amp;hl=es_ES&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/EEbf0pqcJ3U&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h2>How to setup Follow Me in Elastix</h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" 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/tdqDwCVPw0Y&amp;hl=es_ES&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/tdqDwCVPw0Y&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h2>How to Setup A Basic DID (Telephone Number) Using Elastix</h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" 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/hCBEU3ArfjU&amp;hl=es_ES&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/hCBEU3ArfjU&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h2>How to setup System Recordings in Elastix</h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" 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/zizcvAjS59w&amp;hl=es_ES&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/zizcvAjS59w&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h2>How to setup a basic IVR (Automated Attendant) in Elastix</h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" 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/Vv0paVu7u9Q&amp;hl=es_ES&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/Vv0paVu7u9Q&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.elastix.org%2Fen%2F2009%2F11%2Fuseful-elastix-videos%2F&amp;linkname=Useful%20Elastix%20Videos"><img src="http://blogs.elastix.org/en/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blogs.elastix.org/en/2009/11/useful-elastix-videos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing Elastix on Embedded (Alix) hardware</title>
		<link>http://blogs.elastix.org/en/2009/11/installing-elastix-on-embedded-alix-hardware/</link>
		<comments>http://blogs.elastix.org/en/2009/11/installing-elastix-on-embedded-alix-hardware/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 09:15:57 +0000</pubDate>
		<dc:creator>Josiah Spackman</dc:creator>
				<category><![CDATA[Elastix]]></category>
		<category><![CDATA[Alix]]></category>
		<category><![CDATA[Compact Flash]]></category>
		<category><![CDATA[CompactFlash]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Geode]]></category>
		<category><![CDATA[Serial]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[Virtualbox]]></category>

		<guid isPermaLink="false">http://blogs.elastix.org/en/?p=172</guid>
		<description><![CDATA[There have been quite a few un-answered questions about getting Elastix working on embedded x86 hardware, such as PCEngines Alix hardware. In this tutorial we want to install Elastix on the Alix.6b2, however other Alix hardware will work fine. The aim is to have a fully working Elastix system booting on an embedded x86 system [...]]]></description>
			<content:encoded><![CDATA[<p>There have been quite a few un-answered questions about getting Elastix working on embedded x86 hardware, such as PCEngines Alix hardware. In this tutorial we want to install Elastix on the Alix.6b2, however other Alix hardware will work fine. The aim is to have a fully working Elastix system booting on an embedded x86 system without a monitor ever being plugged into the hardware. You will need one attached to your desktop however.</p>
<p>I was incredibly surprised at how easy it was to install Elastix on an embedded system. Very little tweaking was required when I found out where to go and what to do. Now you too can install Elastix on your Alix hardware with ease!</p>
<p>Be warned, there&#8217;s a few screenshots after the break (Around 20)!</p>
<p><span id="more-172"></span></p>
<h2>Requirements:</h2>
<ul>
<li>Alix.6b2 or similar embedded system, preferably with 256MB RAM</li>
<li>Compact Flash USB Card Reader, or IDE -&gt; CF adapter for your Desktop PC. Either will suffice</li>
<li>4GB CompactFlash Card</li>
<li>The latest Elastix-1.6 ISO (Well older ISO&#8217;s work too, but the latest is nice)</li>
<li>VirtualBox</li>
<li>Teraterm or similar application (Optional for viewing boot process over serial cable)</li>
</ul>
<p>Allow at least 90 minutes for this whole procedure, you don&#8217;t want to rush it, and installing Elastix in a VM can take longer than usual. It took around 60 minutes for Elastix just to install the packages, though thats possibly my slow &amp; cheap CompactFlash card.</p>
<p>Firstly, we want to install <a title="Virtualbox Downloads" href="http://www.virtualbox.org/wiki/Downloads" target="_blank">Virtualbox</a>, with the latest version being 3.0.12 at the time of writing. This can also work with VMWare, but due to Virtualbox being <strong>free</strong> I figured it was easiest for all if the guide was written with it in mind.</p>
<p>Once Virtualbox is installed, you want to plug in your USB Compact Flash reader with your 4GB CompactFlash Card inserted. If windows asks &#8220;Do you want to format&#8221;, just ignore / cancel it for now.</p>
<p>Now, we&#8217;re going to bring up Windows Disk Management. Right-click on My Computer &#8211;&gt; Manage &#8211;&gt; Storage &#8211;&gt; Disk Management</p>
<p>Where it says &#8220;Disk 0&#8243;, &#8220;Disk 1&#8243;, is the Physical Disk ID. Make a note of the Physical Disk ID of your CompactFlash Card. For me, it was &#8220;Disk 4&#8243;:</p>
<p><img class="alignnone size-full wp-image-195" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/0-diskid.jpg" alt="Physical Disk ID" width="566" height="344" /></p>
<p>Now we&#8217;re going to open a command window, click Start &#8211;&gt; (then click Run for Win9X / 2K / XP) &#8211;&gt; type in: cmd</p>
<p>Hit Enter and you should see a new Command Prompt Window.</p>
<p>Type in the following:</p>
<pre style="padding-left: 30px">cd "\Program Files\Sun\VirtualBox"</pre>
<p>You should now be in the directory you installed VirtualBox into.</p>
<p>What we&#8217;re now going to do is create a Virtual Disk Image for VirtualBox to use, but this Disk Image will use the physical CompactFlash card as it&#8217;s drive.</p>
<p>Now, type in:</p>
<pre style="padding-left: 30px">VBoxManage.exe internalcommands createrawvmdk -filename</pre>
<pre style="padding-left: 30px">c:\cf.vmdk -rawdisk \\.\PhysicalDrive4 -register</pre>
<p>(I had to put in a line-break in order for it to fit in the blog window width, but this should all be done on one line)</p>
<p>Where it says &#8220;\\.\PhysicalDrive4&#8243; replace the number with the Physical Disk ID you made a note of earlier.</p>
<p>It should say &#8220;RAW host disk access VMDK file c:\cf.vmdk created successfully.&#8221;:</p>
<p><img class="alignnone size-full wp-image-196" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/1_make-raw-disk.jpg" alt="Make RAW disk" width="542" height="274" /></p>
<p>If it did, then great! Now you can fire up VirtualBox and get ready to create a new Virtual Machine.</p>
<p>In VirtualBox, click on &#8220;New&#8221;, it will welcome you to the Wizard, click on Next.</p>
<p>Name your VirtualMachine &#8220;Elastix Embedded&#8221;, tell its Linux &#8211;&gt; Other Linux. Click Next:</p>
<p><img class="alignnone size-full wp-image-197" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/2_name-vm.jpg" alt="Name your VM" width="461" height="413" /></p>
<p>Give it 256MB RAM, just like your final system will have, and click Next:</p>
<p><img class="alignnone size-full wp-image-198" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/3-vm-ram.jpg" alt="VM RAM" width="461" height="413" /></p>
<p>Tell it to use an Existing Hard Disk and click on the little Folder button. In the Virtual Media Manager, add c:\cf.vmdk to the list and select it. Hit Next to continue:</p>
<p><img class="alignnone size-full wp-image-199" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/4-add-disk-to-manager.jpg" alt="Add disk to Manager" width="572" height="448" /></p>
<p><img class="alignnone size-full wp-image-200" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/5-selected-disk.jpg" alt="Selected RAW Disk" width="461" height="413" /></p>
<p>It&#8217;ll give you a quick run-down of your system, click on Finish.</p>
<p>Now, before you power it on you need to tell it to boot the Elastix DVD first. Right-click on the Elastix Embedded Virtual Machine and go to Settings. Click CD / DVD-ROM and tick &#8220;Mount CD/DVD Drive&#8221;. Choose ISO Image, then find your Elastix ISO. Select it and it should now boot it by default when you turn on your Virtual Machine:</p>
<p><img class="alignnone size-full wp-image-201" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/7-mount-elastix-disc.jpg" alt="Mount Elastix ISO" width="529" height="460" /></p>
<p>I also go into the Audio and USB and disable them both:</p>
<p><img class="alignnone size-full wp-image-202" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/6-untick-enable-audio.jpg" alt="Disable Audio" width="529" height="460" /></p>
<p><img class="alignnone size-full wp-image-203" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/8-disable-usb.jpg" alt="Disable USB" width="529" height="460" /></p>
<p>Click OK to close the Settings, then Start the Elastix Embedded Virtual Machine.</p>
<p><img class="alignnone size-full wp-image-204" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/9-boot-vm.JPG" alt="Boot Elastix VM" width="590" height="505" /></p>
<p><strong><em><span style="font-style: normal;font-weight: normal">When the Virtual Machine starts and you&#8217;re at the boot prompt for Elastix (As above), enter:</span></em></strong></p>
<pre>linux text resolution=800×600 mem=256M</pre>
<p>Otherwise the install hangs during startup, and we don&#8217;t want that.</p>
<p>Follow through the install, most of the defaults seem to be fine.</p>
<p>When it comes to partitionging, try it like this (Give it some SWAP just in-case):</p>
<p><img class="alignnone size-full wp-image-205" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/10-partitioning.JPG" alt="Partitioning" width="588" height="386" /></p>
<p>Once installed, let the Virtual Machine restart and login as root.</p>
<p>We&#8217;re now going to tidy up the install a little and make it boot from the Alix system by &#8220;disabling&#8221; the GUI and sending output over the Serial interface.</p>
<address><strong>Note</strong>: If you&#8217;ve never used Nano before, then just remember that if you make any mistakes, or to save the file when you&#8217;re done just press Ctrl + X to exit. It&#8217;ll ask you if you want to save the file or not. Choose yes or no. If you choose Yes, it&#8217;ll ask you what the filename is and if you want to overwrite. Naturally you&#8217;re going to press Enter to overwrite. Feel free to use Vi or anything else you&#8217;re comfortable with.</address>
<h2>Changes to a standard Elastix distribution to make it boot on an Alix system</h2>
<pre style="padding-left: 30px">yum install nano</pre>
<pre style="padding-left: 30px">nano -w /etc/sysconfig/kudzu</pre>
<p>Set:</p>
<pre style="padding-left: 30px">safe=yes</pre>
<p><img class="alignnone size-full wp-image-211" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/11-kudzu.JPG" alt="nano -w /etc/sysconfig/kudzu" width="589" height="384" /></p>
<p>This will stop Elastix from probing serial / ps2 hardware and potentially failing on boot.</p>
<pre style="padding-left: 30px">nano -w /boot/grub/grub.conf</pre>
<p>Comment out the following line by adding a # in front of it:</p>
<pre style="padding-left: 30px">splashimage=(hd0,0)/grub/splash.xpm.gz</pre>
<p>So it should now look like:</p>
<pre style="padding-left: 30px">#splashimage=(hd0,0)/grub/splash.xpm.gz</pre>
<p>Add in the following two lines after it:</p>
<pre style="padding-left: 30px">serial -unit=0 -speed=9600 -word=8 -parity=no -stop=1</pre>
<pre style="padding-left: 30px">terminal -timeout=10 serial console</pre>
<p>Also, add the following to the <strong><span style="text-decoration: underline">end</span></strong> of every line that starts with &#8220;kernel&#8221;:</p>
<pre style="padding-left: 30px">CONSOLE=TTY0 CONSOLE=TTYS0,9600N8</pre>
<p><img class="alignnone size-full wp-image-212" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/12-grub.JPG" alt="nano -w /boot/grub/grub.conf" width="588" height="385" /></p>
<p>This tells Grub that you want to see everything both over the serial interface and your regular screen. Ctrl + X to quit, and save the file.</p>
<p>Next you want to run:</p>
<pre style="padding-left: 30px">nano -w /etc/inittab</pre>
<p>Add a line at the very bottom:</p>
<pre style="padding-left: 30px">S0:12345:respawn:/sbin/agetty ttyS0 9600 linux</pre>
<p><img class="alignnone size-full wp-image-213" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/13-inittab.JPG" alt="nano -w /etc/inittab" width="590" height="385" /></p>
<p>To be honest I&#8217;m not 100% certain why this is needed, but it seems to be required, so let me know if you know <img src='http://blogs.elastix.org/en/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Next, run:</p>
<pre style="padding-left: 30px">nano -w /etc/securetty</pre>
<p>Add a line at the very bottom:</p>
<pre style="padding-left: 30px">ttyS0</pre>
<p>That&#8217;s S then a Zero, not S then the letter &#8220;o&#8221;</p>
<p><img class="alignnone size-full wp-image-214" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/14-securetty.JPG" alt="nano -w /etc/securetty" width="590" height="384" /></p>
<p>This lets you login as root via the serial cable.</p>
<p>Lastly run:</p>
<pre style="padding-left: 30px">nano -w /etc/sysconfig/init</pre>
<p>Change &#8220;BOOTUP=color&#8221; to:</p>
<pre style="padding-left: 30px">BOOTUP=serial</pre>
<p><img class="alignnone size-full wp-image-215" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/15-init.JPG" alt="nano -w /etc/sysconfig/init" width="589" height="383" /></p>
<p>That&#8217;s it! All done!</p>
<p>Now, run:</p>
<pre style="padding-left: 30px">shutdown -h now</pre>
<p><img class="alignnone size-full wp-image-216" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/16-shutdown.JPG" alt="shutdown -h now" width="588" height="386" /></p>
<p>That&#8217;ll shut down the virtual machine. Safely eject the CompactFlash Card, whip it out, pop it in your Alix system.</p>
<p><img class="alignnone size-full wp-image-217" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/17-safely-eject.jpg" alt="Safely Eject the CF Card" width="264" height="224" /></p>
<p>Remember that the LAN Cable goes in the port <strong><span style="text-decoration: underline">closest to the Power</span></strong> if you have more than one.</p>
<p>Plug in the power and let it boot! Success!</p>
<p><img class="alignnone size-full wp-image-227" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/18-lan-port-2.jpg" alt="Alix LAN Port eth0" width="562" height="369" /></p>
<address><strong>Note</strong>: It could take 3-4 minutes for it to power up, so if it doesn&#8217;t start up immediately then just be patient. I statically assigned mine an address via DHCP on my Tomato Router so I knew what IP it was going to get. I suggest you do likewise if possible, or use the Advanced LAN Scanner from radmin.com to scan your LAN for new machines. That, or check your router logs.</address>
<p>You should be all finished with a fully functional embedded system that boots from CompactFlash with no display. You can ssh in, boot into the WebGUI, anything you like!</p>
<p><img class="alignnone size-full wp-image-219" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/19-webgui.jpg" alt="Elastix WebGUI on Alix Hardware with Geode CPU" width="590" height="470" /></p>
<p><img class="alignnone size-full wp-image-221" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/20-ssh-hardware.jpg" alt="Elastix via SSH - Hardware details" width="590" height="636" /></p>
<p>Now if you run:</p>
<pre style="padding-left: 30px">asterisk -r</pre>
<p>Then type:</p>
<pre style="padding-left: 30px">core show translation recalc 10</pre>
<p>You should see a terribly slow system like mine:</p>
<pre style="padding-left: 30px">*CLI&gt; core show translation recalc 10
         Recalculating Codec Translation (number of sample seconds: 10)

         Translation times between formats (in milliseconds) for one second of data
          Source Format (Rows) Destination Format (Columns)

          g723 gsm ulaw alaw g726aal2 adpcm slin lpc10 g729 speex ilbc g726 g722
     g723    -   -    -    -        -     -    -     -    -     -    -    -    -
      gsm    -   -   13   13       29    14   12    46  150   255  214   29    -
     ulaw    -  41    -    1       18     3    1    35  139   244  203   18    -
     alaw    -  41    1    -       18     3    1    35  139   244  203   18    -
 g726aal2    -  56   17   17        -    18   16    50  154   259  218    1    -
    adpcm    -  41    2    2       18     -    1    35  139   244  203   18    -
     slin    -  40    1    1       17     2    -    34  138   243  202   17    -
    lpc10    -  62   23   23       39    24   22     -  160   265  224   39    -
     g729    -  74   35   35       51    36   34    68    -   277  236   51    -
    speex    -  71   32   32       48    33   31    65  169     -  233   48    -
     ilbc    -  78   39   39       55    40   38    72  176   281    -   55    -
     g726    -  56   17   17        1    18   16    50  154   259  218    -    -
     g722    -   -    -    -        -     -    -     -    -     -    -    -    -</pre>
<p>As you can see there&#8217;s not much room for anything to be done in terms of transcoding. My LX800 (500Mhz) won&#8217;t handle much but I&#8217;ll run a few tests over the coming week and see how many calls I can squeeze out of the little sucker. Opening up the WebGUI immediately shoots the CPU up to 50% as it generates the graphs and things, so it&#8217;s probably not a good idea to be always on the WebGUI when you put it in to production, even just for a small home-office scenario or call quality may quickly deteriorate.</p>
<p>I&#8217;d love to hear any feedback you have, how it went for you, and what use you&#8217;ve found for Elastix on the hardware. So please, post your comments!</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.elastix.org%2Fen%2F2009%2F11%2Finstalling-elastix-on-embedded-alix-hardware%2F&amp;linkname=Installing%20Elastix%20on%20Embedded%20%28Alix%29%20hardware"><img src="http://blogs.elastix.org/en/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blogs.elastix.org/en/2009/11/installing-elastix-on-embedded-alix-hardware/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>SSH Tunnelling Part 2</title>
		<link>http://blogs.elastix.org/en/2009/11/ssh-tunnelling-part-2/</link>
		<comments>http://blogs.elastix.org/en/2009/11/ssh-tunnelling-part-2/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 21:46:32 +0000</pubDate>
		<dc:creator>Mark Brooker</dc:creator>
				<category><![CDATA[Elastix]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[SSH Tunnelling]]></category>

		<guid isPermaLink="false">http://blogs.elastix.org/en/?p=155</guid>
		<description><![CDATA[Extras



Tunnelling to the Elastix Web interface

One of the other great things you can do with SSH tunnelling is tunnelling to the Elastix web interface. When you are using putty to login to your machine use this tunnelling rule.



Elastix uses https for its web interface. Https runs on port 443. So our source port will be 443 and the destination is going to the local loopback on the Elastix machine and port 443. 127.0.0.1 basically means just access itself on 443. Once this is added into your tunnelling rules then open the putty console and login to your machine.
]]></description>
			<content:encoded><![CDATA[<h2>Extras</h2>
<h3>Tunnelling to the Elastix Web interface</h3>
<p>One of the other great things you can do with SSH tunnelling is tunnelling to the Elastix web interface. When you are using putty to login to your machine use this tunnelling rule.</p>
<p><img class="alignnone size-full wp-image-156" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/7.jpg" alt="7" width="357" height="332" /></p>
<p><span id="more-155"></span>Elastix uses https for its web interface. Https runs on port 443. So our source port will be 443 and the destination is going to the local loopback on the Elastix machine and port 443. 127.0.0.1 basically means just access itself on 443. Once this is added into your tunnelling rules then open the putty console and login to your machine.</p>
<p>Now go <a href="https://localhost">https://localhost</a></p>
<p>This should bring up the Elastix web interface.</p>
<h3>Finding Phone IP Addresses</h3>
<p>Another great feature is to login to your machine then find all the IP addresses of your phones. This can be done by using the following steps.</p>
<p>Once you are logged in type the command</p>
<p style="padding-left: 30px;">asterisk -rvvvvvvvvvvvvvvv</p>
<p>This command takes you into the asterisk console. From here you can type &#8220;help&#8221; and it will show you all the commands. Make sure you type it without the &#8220;&#8221;.</p>
<p>To find the phone devices type</p>
<p style="padding-left: 30px;">sip show peers</p>
<p>This will show you all the ip phones that are logged in. You can find out all the ip addresses and use what you have learnt in part 1 to access all your phones. You can also use the asterisk cli module in the Elastix web interface to do this. This is under PBX then go to tools. Once you are in the asterisk cli type</p>
<p style="padding-left: 30px;">sip show peers</p>
<h2>Conclusion</h2>
<p>Now you have mastered SSH tunnelling you should be able to access all your devices in a much easier way.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.elastix.org%2Fen%2F2009%2F11%2Fssh-tunnelling-part-2%2F&amp;linkname=SSH%20Tunnelling%20Part%202"><img src="http://blogs.elastix.org/en/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blogs.elastix.org/en/2009/11/ssh-tunnelling-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SSH Tunnelling</title>
		<link>http://blogs.elastix.org/en/2009/11/ssh-tunnelling/</link>
		<comments>http://blogs.elastix.org/en/2009/11/ssh-tunnelling/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 10:07:34 +0000</pubDate>
		<dc:creator>Mark Brooker</dc:creator>
				<category><![CDATA[Elastix]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[SSH Tunnelling]]></category>

		<guid isPermaLink="false">http://blogs.elastix.org/en/?p=137</guid>
		<description><![CDATA[SSH Tunnelling, great tool for managing your Elastix devices.]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>Sometimes the best tools we can use are the simple ones. I have been an asterisk tech for over 4 years now and this is one of the tools I couldn&#8217;t have been able to live without. On most IP networks customers are splitting their voice and data networks. The phones are on a completely different network to the computers and the Elastix box will be the only device which connects to both networks. SSH tunnelling allows you to connect to the phones when you are on the data network. Another situation where tunnelling is great is when you have remote access to your Elastix machine but you only have access to port 22. SSH tunnelling allows you to connect to the Elastix machine then tunnel to any device on the Elastix network. SSH tunnelling is done through putty. Putty is a program that allows you to load the linux shell through your windows machine. You can grab putty from <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">http://www.chiark.greenend.org.uk/~sgtatham/putty/</a>.</p>
<h2>Configuration</h2>
<p>In this example I will connect to an Elastix box then I will tunnel to an IP phone on the network. Open putty and put in the ip address of the Elastix machine you want to connect to.</p>
<p><img class="alignnone size-full wp-image-138" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/1.jpg" alt="1" width="418" height="332" /></p>
<p><span id="more-137"></span>Now we need to add in our tunnel locations</p>
<p><img class="alignnone size-full wp-image-139" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/2.jpg" alt="2" width="414" height="314" /></p>
<p>First add in your source port. This will be the port that you use on your local machine to connect to the remote device. I am connecting to a linksys 942 which uses http. Http uses port 80. Next we will add in our destination. The ip of the phone is 192.168.1.101 and it is http so go to port 80. Once this is in add the tunnel to your list.</p>
<p><img class="alignnone size-full wp-image-140" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/3.jpg" alt="3" width="417" height="332" /></p>
<p>Once you have added it should show the tunnel in the list and now hit open to connect to the box. Plug in your credentials to authenticate yourself to the machine.</p>
<p><img class="alignnone size-full wp-image-141" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/4.jpg" alt="4" width="421" height="166" /></p>
<p>Now we are ready to open up the web interface on the linksys phone. Open up internet explorer and plug in the address <a href="http://localhost:80">http://localhost:80</a>. This means connecting to your tunnel on local source port 80. This will push through to destination of 192.168.1.101:80.</p>
<p><img class="alignnone size-medium wp-image-144" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/51-300x125.jpg" alt="5" width="300" height="125" /></p>
<p>Above you will see the interface for the Linksys 941 which I have SSH tunnelled through to. Here is an example where you have SSHed into your Elastix machine and you want to tunnel through to 10 of the phones on the network.</p>
<h2>Example</h2>
<p>Phones sit on ip addresses 192.168.1.101-110. They are all configurable by http which is port 80. The Elastix machine is on 110.110.110.110. Bring up putty and plug in the server address of 110.110.110.110. Then go to the tunnels section and add the following entries</p>
<p>Source 81 Destination 192.168.1.101:80         -    You can connect to this through internet explorer on <a href="http://localhost:81">http://localhost:81</a></p>
<p>Source 82 Destination 192.168.1.102:80         -    You can connect to this through internet explorer on <a href="http://localhost:82">http://localhost:82</a></p>
<p>Source 83 Destination 192.168.1.103:80         -    You can connect to this through internet explorer on <a href="http://localhost:83">http://localhost:83</a></p>
<p>Source 84 Destination 192.168.1.104:80         -    You can connect to this through internet explorer on <a href="http://localhost:84">http://localhost:84</a></p>
<p>Source 85 Destination 192.168.1.105:80         -    You can connect to this through internet explorer on <a href="http://localhost:85">http://localhost:85</a></p>
<p>Source 86 Destination 192.168.1.106:80         -    You can connect to this through internet explorer on <a href="http://localhost:86">http://localhost:86</a></p>
<p>Source 87 Destination 192.168.1.107:80         -    You can connect to this through internet explorer on <a href="http://localhost:87">http://localhost:87</a></p>
<p>Source 88 Destination 192.168.1.108:80         -    You can connect to this through internet explorer on <a href="http://localhost:88">http://localhost:88</a></p>
<p>Source 89 Destination 192.168.1.109:80         -    You can connect to this through internet explorer on <a href="http://localhost:89">http://localhost:89</a></p>
<p>Source 90 Destination 192.168.1.110:80         -    You can connect to this through internet explorer on <a href="http://localhost:90">http://localhost:90</a></p>
<h3>Conclusion</h3>
<p>SSH tunnelling is a great way to easily access your phones from outside the network. You only need one port forwarded on your router to get access to everything you need. Another way to access everything you need is through VPN. In my next article I will show you a very simple way of turning your Elastix box into a PPTP VPN server.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.elastix.org%2Fen%2F2009%2F11%2Fssh-tunnelling%2F&amp;linkname=SSH%20Tunnelling"><img src="http://blogs.elastix.org/en/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blogs.elastix.org/en/2009/11/ssh-tunnelling/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>iLBC vs g729 &#8212; The quick guide to using compressed codecs in Elastix</title>
		<link>http://blogs.elastix.org/en/2009/11/ilbc-vs-g729-the-quick-guide-to-using-compressed-codecs-in-elastix/</link>
		<comments>http://blogs.elastix.org/en/2009/11/ilbc-vs-g729-the-quick-guide-to-using-compressed-codecs-in-elastix/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 09:02:24 +0000</pubDate>
		<dc:creator>Josiah Spackman</dc:creator>
				<category><![CDATA[Elastix]]></category>
		<category><![CDATA[VOIP]]></category>
		<category><![CDATA[ADSL]]></category>
		<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[codecs]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[g729]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[ilbc]]></category>
		<category><![CDATA[intraoffice]]></category>
		<category><![CDATA[sip bandwidth]]></category>
		<category><![CDATA[voip bandwidth]]></category>

		<guid isPermaLink="false">http://blogs.elastix.org/en/?p=102</guid>
		<description><![CDATA[We all know that g711 (alaw / ulaw) is meant to sound the best. It&#8217;s uncompressed and equivalent quality to ISDN, which most businesses are used to with their traditional PABX System.
However, it comes at a price, 64kbps + overheads means around 111kbps when you factor in everything else over an ADSL PPPoA / PPPoE [...]]]></description>
			<content:encoded><![CDATA[<p>We all know that g711 (alaw / ulaw) is meant to sound the best. It&#8217;s uncompressed and equivalent quality to ISDN, which most businesses are used to with their traditional PABX System.</p>
<p>However, it comes at a price, 64kbps + overheads means around <a title="Asterisk Bandwidth Calc" href="http://site.asteriskguide.com/bandcalc/bandcalc.php" target="_blank">111kbps</a> when you factor in everything else over an ADSL PPPoA / PPPoE connection.</p>
<p>Now that&#8217;s a LOT when you think about it, considering on a standard ADSL2+ line you&#8217;re going to max out at around 5-7 SIP lines, especially if it&#8217;s a shared connection. This is where a compressed codec such as (My personal favorite) iLBC, or g729, can be incredibly cost effective, as you can load up around 15-20 on the same sort of bandwidth. When you&#8217;re a small business, that means with the right kind of QoS, you can share your ADSL Broadband connection and still have 5-10 concurrent phone calls, all happily living together.</p>
<p>So do away with expensive BRI interfaces and monthly charges, and go SIP!</p>
<p>We&#8217;re going to look at a few things very briefly:</p>
<p>1) MOS &#8211; What is it and why do I care?</p>
<p>2) Which codec is right for me?</p>
<p>3) g729 &#8211; Installation</p>
<p>4) iLBC &#8211; Installation</p>
<p>5) Trunk and Extension setup</p>
<p>6) Testing the codecs</p>
<p><span id="more-102"></span></p>
<p style="text-align: center"><strong>1) MOS &#8211; What is it and why do I care?</strong></p>
<p style="text-align: left">MOS stands for &#8220;<a title="Wikipedia MOS article" href="http://en.wikipedia.org/wiki/Mean_Opinion_Score" target="_blank">Mean Opinion Score</a>&#8220;, and in a nutshell it&#8217;s a way of determining out of 5 how good a particular codec (Read: Phone call) will sound. The Wikipedia article is a good overview of MOS, each codecs ratings, and some phrases you can use to test the compression yourself and see if words become difficult to understand.</p>
<p style="text-align: left">Now, we all want a nice good MOS, because at the end of the day if you&#8217;re using a PBX system, there&#8217;s nothing worse than it sounding like a VoIPBuster call to some exotic island. Personally I aim for higher quality, this is why iLBC stands out well for me. That said, the choice is yours, try a few out and see what sound you personally (And quite possibly the person who writes your paycheck) are happy with.</p>
<p style="text-align: left">
<p style="text-align: left">
<p style="text-align: center"><strong>2) Which codec is right for me?</strong></p>
<p style="text-align: left">Well that is a very good question, and that&#8217;s something that you&#8217;re going to have to answer for yourself. Lets look at some of the benefits of each:</p>
<table style="text-align: center" border="1" cellspacing="1" cellpadding="2" width="600">
<tbody>
<tr>
<th scope="row">iLBC Pros</th>
<th scope="row">iLBC Cons</th>
<th scope="row">g729 Pros</th>
<th scope="row">g729 Cons</th>
</tr>
<tr>
<td>Free!</td>
<td>Generally installed from Source code</td>
<td>Most physical devices support it</td>
<td>Costs $ per-channel</td>
</tr>
<tr>
<td>Better MOS than g729</td>
<td>&#8220;Interesting&#8221; license</td>
<td>Requires less CPU than iLBC for encoding / decoding<br />
(Good for low-powered or highly loaded PBXs)</td>
<td>Not many free Softphones support g729</td>
</tr>
<tr>
<td>Handles packet loss better than g729 &amp; g711</td>
<td>Less physical devices support it than g729</td>
<td>More common than iLBC</td>
<td>Easier to pick up the compression vs iLBC</td>
</tr>
<tr>
<td>Many open-source softphones support it</td>
<td></td>
<td></td>
<td>Many different version</td>
</tr>
</tbody>
</table>
<p style="text-align: left">It&#8217;s not difficult to see there could be benefits for either. If you&#8217;re looking for low-cost deployment, or over a shaky ADSL connection you can&#8217;t seem to QoS well (Or perhaps Wireless?) then iLBC is probably the way to go. If you&#8217;re doing a larger installation, or an installation for a customer then it&#8217;s worth investigating g729, especially if you&#8217;re running underpowered hardware or have a large number of Exts or lots of expected concurrent calls.</p>
<p style="text-align: left">Please keep in mind that you do not have to stick with just one codec, feel free to mix and match box on a per-customer level, or on a per-machine level also.</p>
<p style="text-align: left">
<p style="text-align: center">
<p style="text-align: center"><strong>3) g729 &#8211; Installation</strong></p>
<p style="text-align: left">OK so I&#8217;m going to cheat here and direct you to Digium. Yes, there are &#8220;free&#8221; binaries out there, but at the price of $10 per-channel surely it&#8217;s not that expensive if you&#8217;re going to add it to your PBX&#8217;s you deploy.</p>
<p style="text-align: left">Anyway if you&#8217;re downloading a &#8220;free&#8221; version, simply pop it in /usr/lib/asterisk/modules and chmod 755 the file. 64-bit versions go in /usr/lib64/asterisk/modules</p>
<p style="text-align: left">Other than that, follow Digiums excellent instructions here, it should take you less than 5 minutes: <a href="http://kb.digium.com/entry/5/">http://kb.digium.com/entry/5/</a></p>
<p style="text-align: left">
<p style="text-align: center">
<p style="text-align: center"><strong>4) iLBC &#8211; Installation</strong></p>
<p style="text-align: left">We&#8217;re going to be compiling this from source. Lucky for us Elastix makes this nice and easy! We won&#8217;t be installing a complete asterisk system, we don&#8217;t want to break the RPM&#8217;s because, let&#8217;s face it, it&#8217;s the easiest way to keep a system updated / secure.</p>
<p style="text-align: left">First off, download Asterisk from here: <a href="http://www.asterisk.org/downloads">http://www.asterisk.org/downloads</a></p>
<p style="text-align: left">Get it to your elastix box any way you want (SCP / SSH / local terminal) and pop it in /usr/src</p>
<p style="text-align: left">Now, run:</p>
<p style="text-align: left; padding-left: 30px;">tar xvzf asterisk-1.4.*.tar.gz</p>
<p style="text-align: left">change in to the newly created &#8220;asterisk&#8221; directory and run:</p>
<p style="text-align: left; padding-left: 30px;">./contrib/scripts/get_ilbc_source.sh</p>
<p style="text-align: left">Press &#8220;Enter&#8221; after it displays the warning presuming you&#8217;ve read the documentation (Which I&#8217;m also going to assume you&#8217;ve done) and shortly after you&#8217;ll get a lovely message telling you &#8220;The iLBC source code download is complete.&#8221;</p>
<p style="text-align: left">Now, run:</p>
<p style="text-align: left; padding-left: 30px;">./configure</p>
<p style="text-align: left">That should run through without any issues, so now we&#8217;re going to tell Asterisk that we only want to build a very basic system (for the sake of time) and we want the iLBC codec. To enable the iLBC Codec you need to ensure in &#8220;4. Codec Translators&#8221; that &#8220;codec_ilbc&#8221; is checked.</p>
<p style="text-align: left"><strong>Note:</strong> When you press &#8220;Esc&#8221; to quit &#8220;make menuconfig&#8221;, make sure you press <strong><span style="text-decoration: underline;">S</span></strong> to save changes.</p>
<p style="text-align: left">Now, just type &#8220;make&#8221; and watch the system build! As soon as you see codec_ilbc you can press Ctrl + C to stop it building. You&#8217;ll notice codec_ilbc being built just after all the app_ files, so it&#8217;s safest to stop the build process when you see the format_ files being built. Either that or let it run right the way through.</p>
<p style="text-align: left">Almost done now, you just need to copy ./codecs/codec_ilbc.so to /usr/lib/asterisk/modules (or /usr/lib64/asterisk/modules on a 64-bit system) and chmod 755 <span style="background-color: #ffffff">/usr/lib/asterisk/modules/codec_ilbc.so</span></p>
<p style="text-align: left"><span style="background-color: #ffffff"> </span></p>
<p style="text-align: left">
<p style="text-align: center"><strong>5) Trunk and Extension setup</strong></p>
<p style="text-align: left">Now depending on if you want your Ext or SIP Trunk to use the codec, it may be desirable to &#8220;force&#8221; the system to only use that codec.</p>
<p style="text-align: left"><strong>To setup a Trunk:</strong> Open the SIP / IAX2 Trunk that you wish to limit in Elastix to the particular codec. In the PEER Details add an additional two lines:</p>
<p style="text-align: left; padding-left: 30px;">disallow=all<br />
<span style="background-color: #ffffff">allow=g729&amp;ilbc</span></p>
<p style="text-align: left;"><span style="background-color: #ffffff">You may want to opt for something such as &#8220;allow=g729&amp;g711&#8243; or perhaps &#8220;allow=ilbc&amp;alaw&#8221; for example. Review your needs and act appropriately. Save and submit the changes.</span></p>
<p style="text-align: left"><span style="background-color: #ffffff"><strong>To setup an Ext:</strong> Open the Ext that you wish to limit the particular codec on. Scroll down to &#8220;disallow&#8221; and enter in &#8220;all&#8221;. Next in the &#8220;allow&#8221; field enter in something such as &#8220;g729&#8243; or &#8220;ilbc&#8221;, or perhaps &#8220;ilbc&amp;alaw&#8221; as above with the Trunk. Save and submit the changes when done.</span></p>
<p style="text-align: left"><span style="background-color: #ffffff"><strong>Notes:</strong> Try and avoid transcoding where possible. It&#8217;s nice that asterisk does it so well, however it does add marginal delay to your calls, not to mention CPU overheads etc.</span></p>
<p style="text-align: left"><span style="background-color: #ffffff">Also keep in mind that if you limit the codecs, say to just g729, and a particular device is unable to use g729, the call will simply fail.</span></p>
<p style="text-align: left"><span style="background-color: #ffffff"> </span></p>
<p style="text-align: center"><strong>6) Testing the codecs</strong></p>
<p style="text-align: left">The best part, testing! Hopefully everything has gone according to plan thus far. You&#8217;ve got one or two new codecs setup and you&#8217;re dying to test them out (In a development / testing environment naturally and not on your companies production PBX). Now you need to ssh in to your asterisk system and run:</p>
<p style="text-align: left; padding-left: 30px;">asterisk -r</p>
<p style="text-align: left">This brings up the asterisk console. Now, make a call on one of your new Ext&#8217;s that should be using iLBC / g729, or over the trunk that should be compressed.</p>
<p style="text-align: left">While that call is active, rush back over to your ssh session and in the asterisk console type:</p>
<p style="text-align: left; padding-left: 30px;">sip show channels</p>
<p style="text-align: left">You should see something like this:</p>
<pre style="padding-left: 30px;">x.x.x.x   09xxxxxxx   2408517b625  00101/00102  0x400 (ilbc)     No       Rx: ACK</pre>
<p style="text-align: left">If you&#8217;re making a pure SIP call, you&#8217;ll see one line for the Ext -&gt; Asterisk, and one line from Asterisk -&gt; your SIP Provider.</p>
<p style="text-align: left">Success!</p>
<p style="text-align: left">Thanks for reading, and if you have any questions please feel free to leave comments or post in the Elastix forums.</p>
<p style="text-align: left">Please also keep in mind that whilst g729 / iLBC are not the only codecs, almost every device that supports compression is likely to support one of them, or if not it will support GSM.</p>
<p style="text-align: left">Hopefully as you&#8217;re reading this you&#8217;re happily making calls via iLBC or g729. Enjoy!</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.elastix.org%2Fen%2F2009%2F11%2Filbc-vs-g729-the-quick-guide-to-using-compressed-codecs-in-elastix%2F&amp;linkname=iLBC%20vs%20g729%20%26%238212%3B%20The%20quick%20guide%20to%20using%20compressed%20codecs%20in%20Elastix"><img src="http://blogs.elastix.org/en/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blogs.elastix.org/en/2009/11/ilbc-vs-g729-the-quick-guide-to-using-compressed-codecs-in-elastix/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Interoffice Trunking with Elastix &amp; IAX Part 2</title>
		<link>http://blogs.elastix.org/en/2009/11/interoffice-trunking-with-elastix-iax-part-2/</link>
		<comments>http://blogs.elastix.org/en/2009/11/interoffice-trunking-with-elastix-iax-part-2/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 20:21:36 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[Elastix]]></category>
		<category><![CDATA[VOIP]]></category>
		<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[elastix to elastix]]></category>
		<category><![CDATA[iax]]></category>
		<category><![CDATA[iax trunks]]></category>
		<category><![CDATA[intraoffice]]></category>
		<category><![CDATA[routed calls]]></category>
		<category><![CDATA[routing calls via Elastix]]></category>

		<guid isPermaLink="false">http://blogs.elastix.org/en/?p=106</guid>
		<description><![CDATA[Thanks to a comment from Alonso Gordillo on Inter-Office Trunking using Elastix, I have decided that it warranted a second part describing how to use your new Inter-Office trunk to have calls routed through the other office&#8217;s Elastix PBX. If you havent already, first please read Interoffice Trunking with Elastix &#38; IAX Part 1
Lets start [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to a comment from Alonso Gordillo on Inter-Office Trunking using Elastix, I have decided that it warranted a second part describing how to use your new Inter-Office trunk to have calls routed through the other office&#8217;s Elastix PBX. If you havent already, first please read <a href="http://blogs.elastix.org/en/2009/11/interoffice-trunking-with-elastix-iax/" target="_blank">Interoffice Trunking with Elastix &amp; IAX Part 1</a></p>
<p>Lets start with the original diagram</p>
<p><img class="alignnone size-full wp-image-35" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/MelSydOfficeVisio2.png" alt="MelSydOfficeVisio" width="599" height="250" /></p>
<p>Now as you will note, I have used two Australian Cities called Sydney and Melbourne, but this could just as easily been Australia and New Zealand, or Australia and U.S.<span id="more-106"></span></p>
<p>In Sydney, they have an area code of 02 that prefixes the numbers, and in Melbourne they have 03 prefix.</p>
<p>To save further costs, instead of just using the trunk for internal calls, you want to route any calls made to landlines from either PBX to originate from the PBX that is closest to that charging district and naturally lower the cost.</p>
<p>So the example is, Jenny resides in the Sydney Office. She dials a Melbourne number say (03)55544555. What we want is the Elastix system in Sydney to recognise that this is a Melbourne number and automatically route this call via the Melbourne Elastix box and out through either their standard carrier lines (E1 or PSTN) or via their VoIP Service provider.</p>
<p>So before you do anything else, make sure that you have successfully completed Inter Office Trunking Part 1. It is crucial that this is in place and working. Like all well implemented systems, break it down and build and test each part or build on and test each stage as you finish.</p>
<p>In reality to complete this next stage it is actually quite simple.</p>
<p>In the Elastix PBX GUI or via the Freepbx GUI on the Sydney Elastix system add the following outbound route</p>
<p><img class="alignnone size-full wp-image-107" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/melbviamelbpbx.png" alt="melbviamelbpbx" width="600" height="505" /></p>
<p>So to make this clear again, this diagram above shows the Outbound route on the Sydney Elastix system. You will note that we have ticked the Intra Company Route hopefully preserving the Caller ID information between the two systems.</p>
<p>In the Dial Patterns, you will note that I have told it to match any Melbourne Number being dialled on the Sydney system and send it to the trunk sequence listed below. All Melbourne&#8217;s numbers start with 03 and always have 8 digits after the prefix. In this example the dial pattern is easy, but you can continue to add dial patterns to match. For instance, say Adelaide is closer to Melbourne and a lower cost from the Melbourne system, I would add 08XXXXXXXX to the GUI above as well forcing any number with 08 to go out via the Melbourne system.</p>
<p>In the trunk sequence, you will note that the primary trunk is the Inter office Trunk, but I still have set an alternative trunk in the event that the call fails on the Inter Office Trunk. In this case it goes out via the standard carrier lines if the Interoffice Trunk fails due to Internet line failure or the Melbourne PBX system is offline. If this eventuates, then the call will drop down and dial out the PSTN/E1/ISDN just like a normal call.</p>
<p>Finally you will note that on the right hand side, I have moved it up the &#8220;ladder&#8221;. The reason for this is that the LocalSTD route that is standard on all our Australian systems, contains a dial pattern for 03XXXXXXXX as well. I could just remove the dial pattern from the LocalSTD, but I leave it there, so if I ever delete the MelbviaMelbPBX route (e.g. office closes down, major internet issues), It will automatically be handled by the LocalSTD route like a normal call.</p>
<p>and on the Melbourne Elastix system do likewise</p>
<p><img class="alignnone size-full wp-image-108" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/sydviasydpbx.png" alt="sydviasydpbx" width="600" height="514" /></p>
<p>That is about it&#8230;nothing else&#8230;.start testing.</p>
<p>Now, as mentioned, the example was very easy to work with. Sometimes there are advantages even to route calls between two Elastix boxes in the same city. We have several of these, where the main office actually has an E1 that provides lower call costs on Mobiles than the warehouse office which has PSTN. So we have a dial pattern on the Warehouse Elastix system that matches all mobile calls and sends them out via the main office E1 connection.</p>
<p>To make sure things in simpler for the business, we make those warehouse originated calls go out with a particular CID (Caller ID). So if the callee misses the call, and like most Mobile phone users, they just dial the number of the call that they missed, we have set an incoming route on the main office Elastix box for any calls coming in on that DID, we route them back to the warehouse via the IAX Trunk. This way the main office doesn&#8217;t end up with callers saying that they just had a call from their office and the main office asking everyone in the office whether they made a call, or worst still, guessing and telling the caller that it might have been the warehouse. Sure you can transfer them, but it doesn&#8217;t look professional.</p>
<p>The same can be done for standard calls that we send out via Melbourne in the example. Have  the CID set to one particular number in the Melbourne (ISDN), and when the calls are returned back to the Melbourne office, they automatically go straight back to Sydney.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.elastix.org%2Fen%2F2009%2F11%2Finteroffice-trunking-with-elastix-iax-part-2%2F&amp;linkname=Interoffice%20Trunking%20with%20Elastix%20%26amp%3B%20IAX%20Part%202"><img src="http://blogs.elastix.org/en/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blogs.elastix.org/en/2009/11/interoffice-trunking-with-elastix-iax-part-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Skype for Elastix (Asterisk)</title>
		<link>http://blogs.elastix.org/en/2009/11/skype-for-elastix-asterisk/</link>
		<comments>http://blogs.elastix.org/en/2009/11/skype-for-elastix-asterisk/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 03:45:26 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[Elastix]]></category>
		<category><![CDATA[VOIP]]></category>
		<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[freepbx]]></category>
		<category><![CDATA[skype]]></category>

		<guid isPermaLink="false">http://blogs.elastix.org/en/?p=87</guid>
		<description><![CDATA[Introduction
===========
Previous to the release of Skype for Asterisk, many users have implemented a range of Third Party products and tools that required usually a separate machine as a Skype Gateway. It was a messy way of implementing it as the Skype API was more of a high level API and it was the only way [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction<br />
===========</strong></p>
<p>Previous to the release of Skype for Asterisk, many users have implemented a range of Third Party products and tools that required usually a separate machine as a Skype Gateway. It was a messy way of implementing it as the Skype API was more of a high level API and it was the only way of implementing it. Whilst commercially these gateways were used, they were not an ideal commercial solution with increased points of failure and complexity.</p>
<p>Recently Skype had a change of mindset and started working with a few interested parties to implement a more integrated approach  with a lower level API, which means a cleaner integration. Asterisk was one of these parties and  have worked together with Skype to produce a product call Skype for Asterisk.</p>
<p>It does have a cost, but to be fair, it is quite a reasonable one for the functionality, and there is licenced proprietary code which needs to be paid for. Now there have been a few people saying that $US66 is expensive to pay per channel, many of them who run an Asterisk based systems at home. Most businesses who recognise the value and want this functionality, will dismiss the cost immediately. With 405 million registered Skype users world wide, and based on the fact that 30% of these users are business users, leaves you with 121 million potential people who can call your business directly for free (especially if your product is an international product), whether it is for support, ordering a product or your own remote offices that already have Skype installed on their desktop, it is a very small cost to pay.</p>
<p>Now before you get started. There is one very important concept that is important and something that you may not have come across before. The Skype account must be a Skype Business Account <a href="http://www.skype.com/business/products/business-control-panel/" target="_blank">http://www.skype.com/business/products/business-control-panel/</a> . Now don&#8217;t panic as you see all the monetary values on the Skype page. The business control panel was not purely setup for Skype for Asterisk. This business control panel was originally setup to allow businesses to control and monetarily monitor their employees Skype usage. This mechanism however is the only way that it can be implemented. It is not a big deal, just a matter of registering, and once completed, create a username under that account that will be used for your Skype for Asterisk.</p>
<p>Now before you start, I recommend have a brief read through the document on the Digium website as it does contain some additional information that doesn&#8217;t required repeating here. <a href="https://www.digium.com/en/supportcenter/documentation/viewdocs/SFA" target="_blank">https://www.digium.com/en/supportcenter/documentation/viewdocs/SFA</a></p>
<p>Now the other reason to go to that website is to confirm the latest versions of software and their links. Likewise you may need to replace the links in this tutorial with ones more suited to your setup (e.g. you might need the x64 versions). The tutorial below is based on the Elastix 1.6 on a 32bit platform (previous to this it worked fine on a 1.5 &#8211; possibly with yum updates which brought the Asterisk version up to the required level).<span id="more-87"></span></p>
<p><strong>Installing the Asterisk files<br />
=======================</strong></p>
<p>The first part is to purchase at least a licence for Skype for Asterisk from the store. You just need one channel to allow a single Skype for Asterisk call. <a href="http://store.digium.com/productview.php?product_code=1SFA0001" target="_blank">http://store.digium.com/productview.php?product_code=1SFA0001</a></p>
<p>As soon as your email with your Skype for Asterisk licence code arrives, move onto the next part</p>
<p>This part installs the registration component</p>
<p><strong>cd /usr/src<br />
wget http://downloads.digium.com/pub/register/x86-32/register<br />
chmod 500 register<br />
./register</strong></p>
<p>follow the rest of the prompts which will include  the area to enter your code that you receive from Digium</p>
<p><strong>cd /usr/src<br />
wget http://downloads.digium.com/pub/telephony/skypeforasterisk/asterisk-1.4/x86-32/skypeforasterisk-1.4_1.0.6-x86_32.tar.gz</strong></p>
<p><strong>tar -xvzf skypeforasterisk-1.4_1.0.6-x86_32.tar.gz<br />
cd skypeforasterisk-1.4_1.0.6-x86_32<br />
make<br />
make install<br />
make samples<br />
</strong></p>
<p>Now we need to make changes to the config file directly. Leave the rest as default (for the moment) and make only the changes I have done in bold below. I have placed some comments in curly brackets, these curly brackets and info between them should not be typed in.</p>
<p><strong>nano /etc/asterisk/chan_skype.conf </strong> (remember nano is an editor that I prefer &#8211; you can install it by <strong>yum install nano</strong>)</p>
<p>; The username that will be used for outgoing calls and<br />
; presence requests if no explicit username is specified<br />
;<br />
; default value: none</p>
<p><strong>default_user=voiceintegrity<br />
</strong><em>{what your outbound calls will go out as &#8211; replace with your Skype Business user name}</em></p>
<p>; *************<br />
; USER SECTIONS<br />
; *************</p>
<p>; Each section identifies a Skype user (by Skypename) that the<br />
; channel driver should log in to the Skype network<br />
<strong>[voiceintegrity]</strong><br />
<em>{this is the Skype User you created &#8211; replace with your Skype Business user name}</em></p>
<p>; The user&#8217;s password<br />
;<br />
; default value: none</p>
<p><strong>secret=somepassword<br />
</strong><em>{the password you set for the Skype Business User Name}</em></p>
<p>; The dialplan context that incoming calls for this user<br />
; should be directed to<br />
;<br />
; default value: default</p>
<p><strong>context=from-pstn<br />
</strong><em>{default context that will be matched for the incoming call from Skype}</em></p>
<p>; The extension in the target context that incoming calls for this<br />
; user should be directed to<br />
;<br />
; default value: (the user&#8217;s name)</p>
<p><strong>exten=voiceintegrity</strong><br />
<em>{we are not using an extension, we are setting a inbound route with a DID of your skype user name}</em></p>
<p>; The codecs that should be allowed for calls to/from this<br />
; user; use &#8216;disallow&#8217; to remove codecs from the list, &#8216;allow&#8217; to<br />
; add them<br />
;<br />
; default value: ulaw, alaw and g729</p>
<p>;disallow=all<br />
;allow=ulaw<br />
<em>{for the moment, at least until you have the basics working, leave as default, works fine}</em></p>
<p>Save it  and that&#8217;s done&#8230;..</p>
<p>Now for Freepbx</p>
<p><strong>Freepbx Setup &#8211; Incoming Call Functionality<br />
===================================</strong></p>
<p>Now that we have configured Skype, we need to tell Elastix what to do with the calls that come in from Skype&#8230;..</p>
<p>So in the Elastix PBX GUI or via unembedded Freepbx, setup a new  inbound route. You might ask, where is the trunk setup. This is already done by chan_skype and the config that we have already filled out. You will note above that we have already provided it with a context (from_pstn), the codec selection, username, password, the same information that you would normally add to a trunk.</p>
<p>Anyhow onto the inbound route setup</p>
<p><img class="alignnone size-full wp-image-88" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/SkypeInboundRoute.png" alt="SkypeInboundRoute" width="461" height="780" /></p>
<p>Now this inbound route is no different from the normal inbound routes that you setup&#8230;.</p>
<p>You will note the main items that have been added and the reasons why&#8230;..</p>
<p><strong>1) Description : Skype</strong><br />
This is just a description. This is for you to identify the route&#8230;.important if you want to setup a couple of different skype users and have them go to different areas. This name is not critical in what you name it.</p>
<p><strong>2) DID number : voiceintegrity<br />
</strong>Note this is going to be the username that you have setup under skype and also what you have entered into the previous config. Naturally, like the chan_skype config  you are not going enter voiceintegrity as the username, it will be whatever account that you setup under Skype.</p>
<p><strong>3) CID name Prefix : Skype</strong><br />
This again can be anything you like. As these calls will be coming into your PBX, just like normal calls, it is nice to identify to the personal about to pickup the phone that this call is coming through Skype<strong> </strong></p>
<p><strong>4) Destination : YourIVR/ringgroup</strong><br />
Finally the last piece of the freepbx setup for inbound is to point it somewhere. In this case we have it pointing to our IVR, but like all inbound routes, it can point to a ring group, queue, announcement, voicemail etc&#8230;</p>
<p>Reboot your system. Once the reboot has completed just run this following test to make sure that your chan_skype is running.</p>
<p>Under the Asterisk CLI (type <strong>asterisk -r -vvvvvvvvvv</strong> at the linux prompt)</p>
<p><strong>skype show</strong></p>
<p><img class="alignnone size-full wp-image-92" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/skypeshowusers.png" alt="skypeshowusers" width="334" height="65" /></p>
<p>This should show your Skype user logged in.</p>
<p><strong>skype show licences</strong></p>
<p><img class="alignnone size-full wp-image-91" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/skypeshowlicences.png" alt="skypeshowlicences" width="587" height="115" /></p>
<p>If your tests appear to be successful then you can now test with a real skype call. Naturally you should have a separate skype account to call into your system, but this is most likely the case since you probably had to setup a separate Skype Business account for your Elastix Skype.</p>
<p><strong>Freepbx Setup &#8211; Outgoing Call Functionality<br />
===================================</strong></p>
<p>Now you have tested the basic incoming functionality&#8230;..you may be wondering how to make outgoing calls on Skype. I have to admit, I have not spent too much time on this particular area as I only require incoming functionality and only call a few Skype Users.</p>
<p>As there is no special way of being able to type someone&#8217;s name from the telephone (not supported by the Freepbx), you can&#8217;t just type a name and have it dial out via your telephone (not yet anyhow). But what you can do is add these common ones that you dial (e.g. well known contacts and possibly remote workers running Skype) as custom extensions in Freepbx. So as you add more, you can enter them in the Freepbx or Elastix GUI.</p>
<p>For instance I chose the extension range of 900-999 for all called Skype Users. This does not mean that it is limited to holding 99 Skype users, just change the range that you want to call e.g. 1000-1999 &#8211; now you are ready for 1000 Skype Users.</p>
<p>So this is how you setup a Custom Extension in Freepbx for the Skype Users. Add an extension and in the drop down box select Other (Custom) Extension.</p>
<p><img class="alignnone size-full wp-image-89" src="http://blogs.elastix.org/en/wp-content/uploads/2009/11/customextensionskype.png" alt="customextensionskype" width="537" height="694" /></p>
<p>So for this one, I am setting extension 901 as John Smith. his Skype name is johnsmith and you will note that the important part that actually makes this all happen is the entry in the dial entry which is Skype/johnsmith. That is it&#8230;..Now to call your client or user that uses Skype, just dial extension 901 and the call will be connected.</p>
<p>As this is setup this way, especially if they are remote staff in your organisation, they can have voicemail, they can be selected as IVR endpoints. As they are part of the Freepbx fabric, many of the options that apply to normal extensions should work, but be aware, I have not tested it against Ring Groups or other components that rely on round robin style calling of extensions.</p>
<p>There is a lot more that can be done with Skype for Asterisk. What I have provided is the basic in/out functionality and how to get it working in Elastix. The next part is to have a read of the extensive documentation from Digium and look if you can work out other ways to perform functions that you may want. Enjoy!!</p>
<p><strong>Troubleshooting: </strong><br />
<strong>==============</strong><br />
<strong>skype show did not show my user logged in</strong><br />
Check that you have the user correctly setup and that you have setup a Skype for Business Account (this is imperative).</p>
<p><strong>Skype show users comes back no such command</strong><br />
This sounds like chan_skype is not actually running. This can be the result of a few things such as configuration file incorrect. Go back and check your configuration file. It could also be that you need to be running Asterisk 1.4.25 at least. Check this by logging into your asterisk cli and it will tell you in the first couple of lines what Asterisk you are running. The other possibility is that you have not completed the install correctly.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.elastix.org%2Fen%2F2009%2F11%2Fskype-for-elastix-asterisk%2F&amp;linkname=Skype%20for%20Elastix%20%28Asterisk%29"><img src="http://blogs.elastix.org/en/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blogs.elastix.org/en/2009/11/skype-for-elastix-asterisk/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Welcome to the Elastix Blogs</title>
		<link>http://blogs.elastix.org/en/2009/11/welcome-to-the-elastix-blogs/</link>
		<comments>http://blogs.elastix.org/en/2009/11/welcome-to-the-elastix-blogs/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 15:54:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Elastix]]></category>
		<category><![CDATA[VOIP]]></category>

		<guid isPermaLink="false">http://blogs.elastix.org/en/?p=70</guid>
		<description><![CDATA[In this blog you would find information related to events, technical documentation, and everything related to Elastix. People who write in this blog are well known members of our community that are willing to share their knowledge with the rest of us. Nevertheless, anyone who wishes to submit an article can do it.
If you have [...]]]></description>
			<content:encoded><![CDATA[<p>In this blog you would find information related to events, technical documentation, and everything related to Elastix. People who write in this blog are well known members of our community that are willing to share their knowledge with the rest of us. Nevertheless, anyone who wishes to submit an article can do it.</p>
<p>If you have a tip or an experience you want to share with the community about Elastix in this blog, please submit your article to rbonifaz[at]elastix.org. <a href="http://www.palosanto.com/">Palosanto Solutions</a> will analyze the articles and define which ones will be published. All articles must be released with the GNU/FDL license.</p>
<p>To begin, we have the following two articles:</p>
<ul>
<li> The first article is about a cheap, fast and efficient way to<a href="http://blogs.elastix.org/en/2009/11/quick-and-easy-qos-with-tomato-2/"> implement QoS with Elastix</a>. This article is written by Josiah Spackman (chilling_silence) from New Zeland.</li>
<li>The second article is about <a href="http://blogs.elastix.org/en/2009/11/interoffice-trunking-with-elastix-iax/">interoffice trunking with IAX</a>. Thanks to Bob Fryer, learn how to connect two offices together using Elastix.</li>
</ul>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.elastix.org%2Fen%2F2009%2F11%2Fwelcome-to-the-elastix-blogs%2F&amp;linkname=Welcome%20to%20the%20Elastix%20Blogs"><img src="http://blogs.elastix.org/en/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blogs.elastix.org/en/2009/11/welcome-to-the-elastix-blogs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
