<?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>Village Telco &#187; VoIP</title>
	<atom:link href="http://villagetelco.org/tag/voip/feed/" rel="self" type="application/rss+xml" />
	<link>http://villagetelco.org</link>
	<description>an easy-to-use, scalable, standards-based, wireless, local, do-it-yourself, telephone company toolkit</description>
	<lastBuildDate>Sun, 20 May 2012 19:20:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Mesh Potato Tests</title>
		<link>http://villagetelco.org/2009/07/mesh-potato-tests/</link>
		<comments>http://villagetelco.org/2009/07/mesh-potato-tests/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 12:02:14 +0000</pubDate>
		<dc:creator>drowe</dc:creator>
				<category><![CDATA[Mesh Potato]]></category>
		<category><![CDATA[AR2317]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[WiFi]]></category>

		<guid isPermaLink="false">http://villagetelco.org/?p=235</guid>
		<description><![CDATA[We have made good progress on the Mesh Potato (MP) so far. The basic functionality (making phone calls over a Wifi Mesh network) is working OK. Over the past few&#8230;]]></description>
			<content:encoded><![CDATA[<p>We have made good progress on the Mesh Potato (MP) so far.  The basic functionality (making phone calls over a Wifi Mesh network) is working OK.  Over the past few weeks Elektra and I have been concentrating on several specific areas of the MP and testing them in more depth.  This posts focuses on some of the tests I have performed, the bugs found, and the final results.</p><p><strong>Stability</strong></p><p>One simple stability test is uptime.  I have left both my MP prototypes running for up to 5 days at a time with good results &#8211; Linux and Wifi stayed up, and we still had dial tone from the FXS port.  This simple test says a lot: e.g no memory leaks, CPU instability, drastic over temperature problems.</p><p>Another test I like to do to all my telephony devices is hammer them with phone calls for 24 hours.  Here is the test set-up:</p><div id="attachment_236" class="wp-caption aligncenter" style="width: 412px"><img class="size-full wp-image-236" title="mp01_stability_test" src="http://villagetelco.org/wp-content/uploads/2009/07/mp01_stability_test.png" alt="Stability Test" width="402" height="282" /><p class="wp-caption-text">Stability Test</p></div><p>An x86 Asterisk box acts as the call generator.  It starts a new call to the MP.  When the MP receives the call it starts the FXS port ringing.  Another Asterisk box (an IP04 with an FXO port) answers the call, plays a prompt for a few seconds, then hangs up.  The entire sequence is then repeated &#8211; make thousands of calls over a 24 hour period. The SIP call is placed over Mesh Wifi to make sure all parts of the MP system are being exercised.</p><p>This test gives the MP quite a hard time as much of the call processing load is involved in set up and tear down of calls, and unless you are my teenage daughter you can&#8217;t really make 3500 calls in 24 hours.</p><p>When I started the tests it threw up problems nearly immediately &#8211; Asterisk was <a title="Wikipedia entry for Segmentation Fault" href="http://en.wikipedia.org/wiki/Segmentation_fault" target="_blank" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Segmentation_fault?referer=');">seg faulting</a> with no feedback as to why it was crashing.  This led to a week of fun and games where the problem was eventually traced to thread problems in the Asterisk channel driver I had written (chan_mp).  This channel driver has been a painful experience for me (even though I have written a few before), and has taken perhaps 3 weeks of part time work to write and debug.  Lots of fun with threads and null pointers. Even now I still don&#8217;t quite understand all the issues around Asterisk channel drivers.  I would appreciate a code review of the driver if there are any Asterisk channel driver experts out there.</p><p>Anyway I finally tracked down the source of the problem and modified the channel driver.  It passed the 24 hour stability tests and made 3500 calls.</p><p><strong>Mesh Load Test</strong></p><p>This is a repeat of the load test from Phase 1 of the Mesh Potato Project, but this time on the actual MP hardware with the FXS driver running:</p><div id="attachment_237" class="wp-caption aligncenter" style="width: 512px"><img class="size-full wp-image-237" title="mp_load_test" src="http://villagetelco.org/wp-content/uploads/2009/07/mp_load_test.png" alt="Mesh Load Test" width="502" height="522" /><p class="wp-caption-text">Mesh Load Test</p></div><p>A big difference between the Village Telco and Cell Phone network is no base stations (Cell Phone Towers).  Instead, the calls are routed via the client nodes.  It&#8217;s a peer-peer network rather than a client-server architecture.</p><p>The idea of this test is to make sure that a given mesh potato node can relay 15 phone calls for other people while simultaneously making a phone call of it&#8217;s own.  This scenario places significant CPU load on the router due to the number of Wifi packets that must be processed at the same time as DSP intensive code like echo cancellation and speech compression.</p><p>The set up details of this test are on the wiki and have been blogged about earlier.  Speech quality was fine, and <a title="Wikipedia entry for Load Average" href="http://en.wikipedia.org/wiki/Load_average" target="_blank" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Load_average?referer=');">loadav</a> about 0.71, similar to the Phase 1 results.  Occasionally I could hear some packet loss but overall the call was fine.  A good result considering all that processing (Linux, Wifi, mesh, Asterisk, echo cancelling, GSM speech compression, FXS driver) on that little router chip!</p><p>One interesting fact is that even with a total of 16 calls the bit rate is only  around 500 kbit/s, so the bandwidth of the mesh is quite lightly loaded.  However speech packets are rather short, so raising the number of phone calls would likely run into CPU load (rather than Wifi bandwidth) issues due to the per-packet processing load.</p><p><strong>Wifi Range Test</strong></p><p>Wifi is mainly the domain of Elektra and Jeff on this project but I was keen to get some rough idea of how well the radio was working.  I had made a few calls around the house OK but noticed that the received signal level was quite low.  A bit of thought led us to a static protection diode we had placed across the antenna circuit.  Although a good idea for the RX side it was conducting when transmit signal was present.  After removing this diode the TX level jumped right up to roughly comparable levels to a DIR-300 router that uses the same Atheros AR2317 SoC.</p><p>However using radiated signal levels it is hard to get consistent results, they bounce around all over the place.  Jeff suggested connecting a combination of DIR-300 and Mesh Potatoes in A-B tests via cables and calibrated attenuators to obtain consistent measurements.</p><p>Over a few days I made several attempts at range tests.  However where I live is quite flat so it&#8217;s difficult to get a good <a title="Wikipedia entry for Line of Sight" href="http://en.wikipedia.org/wiki/Line-of-sight_propagation" target="_blank" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Line-of-sight_propagation?referer=');">Line-Of-Sight</a> (LOS).  I did manage to make phone calls over about 250m which is pretty much what we need for a Village Telco Network.</p><p>Elektra and I feel the radio performance could probably be improved with some adjustment of the RF circuit components and possibly PCB layout.  Elektra has access to a RF test lab later this week so we will get some more concrete information of Wifi performance.</p><p>One area we really need more information on is radio calibration data and the Hardware Design Guide document for the AR2317, however we have been unable to obtain this important information from Atheros.</p><p>More blogging to come from Elektra on Wifi radio and power supply performance.</p>]]></content:encoded>
			<wfw:commentRss>http://villagetelco.org/2009/07/mesh-potato-tests/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Voice Over B.A.T.M.A.N.</title>
		<link>http://villagetelco.org/2009/06/voice-over-b-a-t-m-a-n/</link>
		<comments>http://villagetelco.org/2009/06/voice-over-b-a-t-m-a-n/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 02:13:59 +0000</pubDate>
		<dc:creator>drowe</dc:creator>
				<category><![CDATA[Mesh Potato]]></category>
		<category><![CDATA[Village Telco]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[WiFi]]></category>

		<guid isPermaLink="false">http://villagetelco.org/?p=213</guid>
		<description><![CDATA[Bringing up WifiOn Friday I set about testing Wifi on the two Mesh Potato prototypes. The N-type antenna connectors attach to the MP PCB via a pigtail with a tiny&#8230;]]></description>
			<content:encoded><![CDATA[<p><strong>Bringing up Wifi</strong></p><p>On Friday I set about testing Wifi on the two Mesh Potato prototypes.  The N-type antenna connectors attach to the MP PCB via a pigtail with a tiny Hi-rose style connector.  This looks a bit fragile so I decided to mount the two MPs in some weatherproof boxes so I had a firm mounting for the antenna pig tail.  I chose one metal and one plastic, to see if the case material makes any difference to the Wifi performance.  They wont be completely weatherproof (I&#8217;ll just run the phone power, and Ethernet cables through holes), but enough to take outside for some tests and withstand some handling.</p><p>I mounted both the PCB and the antenna connector in the lid, so the whole assembly can be removed without putting any strain on that tiny PCB antenna connector.  Only problem is I can&#8217;t see the LEDs &#8211; will need to make a little window on the bottom of the box.</p><div id="attachment_214" class="wp-caption aligncenter" style="width: 460px"><img src="http://villagetelco.org/wp-content/uploads/2009/06/mp_box_lid.jpg" alt="Mesh Potatoes mounted on box lids" title="mp_box_lid" width="450" height="338" class="size-full wp-image-214" /><p class="wp-caption-text">Mesh Potatoes mounted on box lids</p></div><p>Having secured the antenna connector I brought Wifi up.  I thought I would take the small, sensible step of trying to associate with my home Wifi network first.  It was all looking good until my MP seemed to slow down then stop responding entirely.  Then my laptop (also connected via Wifi) started to slow down and lost Internet connectivity.  Oops, routing loop between Ethernet and Wifi on the Mesh Potato!  Didn&#8217;t know you could bring down a whole network that way.</p><p>As Wifi was coming up automatically on boot it was hard to stop, so I ended up re-flashing the router and going straight to <a href="http://www.open-mesh.org/" onclick="urchinTracker('/outgoing/www.open-mesh.org/?referer=');">Batman</a>.  This came up straight away and I had two MPs and a Nanostation happily meshing with each other.</p><p>The blinking of the two Wifi lights as batman sends out messages every second is mesmerising <img src='http://villagetelco.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p><p><strong>Voice Over B.A.T.M.A.N.</strong></p><p>After a bit of messing around with Asterisk conf files I made a MP-MP phone call over Batman and the Mesh Network.  The audio in one direction was fine but a little distorted in the other direction.  After a break of a few days I took a look at this bug.  The problem ended up being the Asterisk channel driver, it was accidentally sending both RTP audio and ring tone to the FXS driver during a call, i.e. ring tone wasn&#8217;t being switched off when the call was answered.  This was overloading the FXS driver FIFO and causing distorted audio.  Curiously, it worked OK until I tried a call over Wifi.  </p><p>Anyway I have fixed this bug now and tested a few different codec configurations over the mesh including ulaw, gsm with 20ms frames, and GSM with 80ms frames.  We can also make calls between a MP and a SIP phone connected to the Ethernet port of the MP.  The load av is around 0.5 during a call (using the GSM codec). </p><p>Here is a block diagram of the test setup.  The Laptop is used for monitoring.  It&#8217;s cool that I can ssh to the remote MP over the mesh network and mess with Asterisk conf files, run top etc.</p><div id="attachment_216" class="wp-caption aligncenter" style="width: 436px"><img src="http://villagetelco.org/wp-content/uploads/2009/06/mp_first_mesh_calls.png" alt="MP tests for first calls over the mesh" title="mp_first_mesh_calls" width="426" height="422" class="size-full wp-image-216" /><p class="wp-caption-text">MP tests for first calls over the mesh</p></div><p>The audio sounds great.  We can&#8217;t hear any echo, thanks to the <a href="http://rowetel.com/ucasterisk/oslec.html" onclick="urchinTracker('/outgoing/rowetel.com/ucasterisk/oslec.html?referer=');">Oslec</a> echo canceller which seems to run fine on this platform.  To stress the system a bit I tried ping flooding from my laptop.  This affected the audio quality but the call was still very intelligible.  Like driving under a bridge with a cell phone.  This is interesting &#8211; perhaps a mesh potato network will have a &#8220;soft&#8221; degradation of quality as network traffic increases.  Call quality will drop a little, but the network may not fall over.</p><p>The reliability of the Mesh Potato hardware has been remarkably good so far.  I left the prototypes running for about 5 days, and when I came back the mesh was still running, and picking up a phone gave me dial tone.  Can&#8217;t complain about that on hardware where the solder has barely cooled!</p>]]></content:encoded>
			<wfw:commentRss>http://villagetelco.org/2009/06/voice-over-b-a-t-m-a-n/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>First Mesh Potato Phone Call</title>
		<link>http://villagetelco.org/2009/06/first-mesh-potato-phone-call/</link>
		<comments>http://villagetelco.org/2009/06/first-mesh-potato-phone-call/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 06:50:26 +0000</pubDate>
		<dc:creator>drowe</dc:creator>
				<category><![CDATA[Mesh Potato]]></category>
		<category><![CDATA[ATA]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[WiFi]]></category>

		<guid isPermaLink="false">http://villagetelco.org/?p=201</guid>
		<description><![CDATA[Since the boot loader bugs have been tamed we have been making steady progress. Today I brought the FXS module drivers up, closely followed by Asterisk and the first Mesh&#8230;]]></description>
			<content:encoded><![CDATA[<p>Since the boot loader bugs have been tamed we have been making steady progress.  Today I brought the FXS module drivers up, closely followed by Asterisk and the first Mesh Potato phone call at 3:43pm today.</p><p><object width="425" height="344" data="http://www.youtube.com/v/bwn8RgKKbxk&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/bwn8RgKKbxk&amp;hl=en&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /></object></p><p>Almost exactly 1 year since the Mesh Potato project was kicked off at the first Village Telco workshop in June 2008.</p><p>Alen from Atcom has been closely following our steps, which has encouraged Elektra and I to write a <a href="http://wiki.villagetelco.org/index.php/Mesh_Potato_Firmware_How_To" onclick="urchinTracker('/outgoing/wiki.villagetelco.org/index.php/Mesh_Potato_Firmware_How_To?referer=');">Mesh Potato How To</a> on the <a href="http://wiki.villagetelco.org" onclick="urchinTracker('/outgoing/wiki.villagetelco.org?referer=');">Village Telco Wiki</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://villagetelco.org/2009/06/first-mesh-potato-phone-call/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://rowetel.com/images/mp/mp_first_call.avi" length="3612184" type="video/x-msvideo" />
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic
Object Caching 635/654 objects using disk: basic

Served from: villagetelco.org @ 2012-05-22 03:13:05 -->
