<?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>The Fruits of my Labour</title>
	<atom:link href="http://www.toao.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.toao.net</link>
	<description>by Mango</description>
	<lastBuildDate>Tue, 09 Mar 2010 12:36:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>No, Really, I Don&#039;t Need a Bag!</title>
		<link>http://www.toao.net/437-no-really-i-dont-need-a-bag</link>
		<comments>http://www.toao.net/437-no-really-i-dont-need-a-bag#comments</comments>
		<pubDate>Fri, 05 Mar 2010 16:11:50 +0000</pubDate>
		<dc:creator>Mango</dc:creator>
				<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://www.toao.net/?p=437</guid>
		<description><![CDATA[I hear that some places around the world have banned plastic bags. Vancouver is not included in this, however some stores such as Whole Foods have voluntarily quit giving them out. Others charge for bags to encourage customers to bring their own. And when you think about how many plastic bags probably end up in [...]]]></description>
			<content:encoded><![CDATA[<br />I hear that some places around the world have banned plastic bags. Vancouver is not included in this, however some stores such as Whole Foods have voluntarily quit giving them out. Others charge for bags to encourage customers to bring their own. And when you think about how many plastic bags probably end up in the trash, I think it's a great idea! So I, being relatively environmentally conscious, bring a reusable bag for my shopping as much as possible.<br /><br />Of course, me being Mango, and thus more than relatively eccentric, I take things a bit farther than that.<br />
<span id="more-437"></span><br /><br />I never use disposable products unless I think it's absolutely necessary. For example, if I decide I want to eat lunch from a takeout place, I bring a plate, much to my co-workers' amusement.<br /><br />I have discovered that the practice of not wanting to use disposable products is confusing. In fact, at times I get reactions similar to what I would expect if I asked, "Hi, I'd like a veggie stir-fry on brown rice, and for a 20% tip, you'll need to solve a Sudoku puzzle in under three minutes!"<br /><br />
<strong><u>Case in point:</u></strong><br /><br />Cashier: "Paper or plastic?"<br />Me: "I don't need a bag. Thanks though!"<br />Cashier: "Okay, great!" <em>[starts putting my things in a plastic bag]</em><br />Me: "I actually don't need a bag. Thanks though!"<br />Cashier: <em>[big smile]</em> "Okay, great!" <em>[continues putting my things in the bag]</em><br />Me: <em>[Pays, takes my things out of the bag, and walks out of the store]</em><br />Cashier: "WELL YOU COULD HAVE TOLD ME YOU DIDN'T WANT A BAG!"<br /><br />
<strong><u>I decided to start saying something I thought was funny to see if they noticed.</u></strong><br /><br />Cashier: "Paper or plastic?"<br />Me: "No bag, thanks. Just trying to save whatever kind of tree plastic comes from!"<br /><br />This worked, but a few weeks later I saw written on an internet forum "<img src='http://travelblog.toao.net/pub/hawaii/censored.gif' style='width:34px;height:15px;' alt='#@$%' />!!!! If one more customer uses that <img src='http://travelblog.toao.net/pub/hawaii/censored.gif' style='width:34px;height:15px;' alt='#@$%' />ing 'save a plastic tree' line I'm gonna <img src='http://travelblog.toao.net/pub/hawaii/censored.gif' style='width:34px;height:15px;' alt='#@$%' /> him up real good!"<br /><br />So I decided to stop using that line. Apparently, other customers have the same sense of humor as me, and it got annoying.<br /><br />
<strong><u>Wherein I am responsible for an entire fast-food restaurant grinding to a halt.</u></strong><br /><br />Once, I was at a food court getting lunch. I note I did not have my plate with me this time, which was a good thing, because I don't think they'd have been able to handle it. They were giving out trays with things like lots of plastic cutlery, condiments, an empty drink container with lid and straw, a handful of napkins, and a paper place mat, most of which I didn't need.<br /><br />Cashier: "Take tray!"<br />Me: "No, I don't need one, thanks though!"<br />Cashier: "Not want tray?"<br />Me: "No, thank you!"<br />Chef: "Take tray!"<br />Me: "No thanks - just my lunch please!"<br />Chef: <span style='font-size:25pt;font-weight:bold;line-height:normal;'>"TAKE TRAY."</span><br /><br />By this point I realize I'm causing a minor scene, but those of you who know me know I enjoy a nice fuss from time to time. And, at least I was doing it with no effort whatsoever while being perfectly polite. As I left, (fortunately with my food), I noticed that the entire staff of the restaurant had stopped whatever they were doing to stare at me. As I walked away, I heard the chef explain to the cashier, "He no <em>want </em>tray."<br /><br />
<strong><u>This guy may have had a point, but I don't know what it was.</u></strong><br /><br />I was at a store buying something. I didn't have far to go, and of course, I'm the Eccentric Environmentalist, so I told the guy at the desk I didn't need a bag. He stops and thinks about that for a second, but puts it in the bag anyway. Then he comes right around to my side of the counter to hand it to me. And he leans down (I'm short) to whisper in my ear, as if it's all some big secret.<br /><br />I admit, I'm intrigued. By crackey, if there is a plastic bag secret, you can bet I want to hear it.<br /><br />"Take bag!" he whispers. "In case..." <em>[he pauses for emphasis] </em>"...of <em>security</em>!"<br /><br />Okay, I'll take the bag if you really want me to that much. But...wait, what?? In case of...security!? At first I thought this was one of those stores where the guards assume you're shoplifting if you don't have your item in a bag. (THAT's another story.) But I look around and it's only me and him in this tiny little store. Besides, I'm three feet from the door. I still don't <em>really </em>know what he meant.<br /><br />
<strong><u>Weary, I considered myself beaten.</u></strong><br /><br />I went to a bakery for a snack. True to form, I had a plate in my pocket.<br /><br />Me: "May I please have a raisin muffin? And, er, I know it might be a bit strange, but could you put it on this plate please?"<br />Baker: "Of course!" <em>[gets a raisin muffin, gets out a bag...]</em><br />Me: "You know what, I don't even need the bag! <img src='http://www.toao.net/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Just on the plate is fine!" (Yes, I even vocalized the smiley.)<br />Baker: "Oh, sure! <img src='http://www.toao.net/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> " <em>[puts away the bag, gets out a piece of parchment and puts it on the plate...]</em><br />Me: "Actually, I'm fine with the muffin just on the plate. I like to <img src='http://www.toao.net/wordpress/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> recycle and stuff," I explain.<br />Baker: "All right!"<em> [puts away the parchment, gets out a damn <strong>paper napkin</strong>, puts it on the plate, puts the raisin muffin on top, and triumphantly presents it to me.]</em><br /><br />Weary, and wanting my raisin muffin, I considered myself beaten.<br /><br />I saved the napkin.]]></content:encoded>
			<wfw:commentRss>http://www.toao.net/437-no-really-i-dont-need-a-bag/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Making the Simply Accounting Session Date default to today</title>
		<link>http://www.toao.net/38-making-the-simply-accounting-session-date-default-to-today</link>
		<comments>http://www.toao.net/38-making-the-simply-accounting-session-date-default-to-today#comments</comments>
		<pubDate>Thu, 04 Mar 2010 11:01:52 +0000</pubDate>
		<dc:creator>Mango</dc:creator>
				<category><![CDATA[Simply Accounting]]></category>

		<guid isPermaLink="false">http://www.toao.net/38/making-the-simply-accounting-session-date-default-to-today/</guid>
		<description><![CDATA[In Simply Accounting, the Session Date is used for default dates of transactions.&#160; When one creates, for example, an invoice, the date is automatically assumed to be whatever the Session Date is.&#160; We've found no way to change the default of the Session Date from within Simply, but this can be accomplished by this handy [...]]]></description>
			<content:encoded><![CDATA[<br />In Simply Accounting, the Session Date is used for default dates of transactions.&nbsp; When one creates, for example, an invoice, the date is automatically assumed to be whatever the Session Date is.&nbsp; We've found no way to change the default of the Session Date from within Simply, but this can be accomplished by this handy script.<br />
<span id="more-38"></span><br /><br />We are updating this post from two years ago.&nbsp; For some reason, the VBScript we wrote before quit working, due to something about the focus on the Session Date window.&nbsp; We couldn't make it work and decided it was less trouble to rewrite the script with <a href="http://www.autohotkey.com/" target="_blank">AutoHotkey</a>.<br /><br />Here is the compiled version: <a href='/pub/SetSimplySessionDate.exe'>SetSimplySessionDate.exe</a>.&nbsp; Use it by creating a shortcut to <b>SetSimplySessionDate.exe c:\path\to\your\datafile.sai</b>.&nbsp; For any programmers here, we include the source code below:<br />

<div class="wp_syntax"><div class="code"><pre class="autoit" style="font-family:monospace;"><span style="font-style: italic; color: #009933;">; SetSimplySessionDate - Automatically set the session date when opening Simply Accounting.</span>
<span style="font-style: italic; color: #009933;">; by Mango - http://www.toao.net/</span>
&nbsp;
<span style="font-style: italic; color: #009933;">; No point in this running more than once.</span>
#SingleInstance force
&nbsp;
<span style="font-style: italic; color: #009933;">; Find out if the user has specified a data file</span>
<span style="color: #0000FF; font-weight: bold;">If</span> <span style="color: #FF0000; font-weight: bold;">&#40;</span>%0% <span style="color: #FF0000; font-weight: bold;">==</span> <span style="color: #AC00A9; font-style: italic; font-weight: bold;">0</span><span style="color: #FF0000; font-weight: bold;">&#41;</span> <span style="color: #FF0000; font-weight: bold;">&#123;</span>
 <span style="color: #000080; font-style: italic; font-weight: bold;">MsgBox</span> % <span style="font-weight: bold; color: #008080;">&quot;You must specify the path and file name of a data file.  Example: SetSimplySessionDate.exe &quot;</span><span style="font-weight: bold; color: #008080;">&quot;c:\accounting\company.sai&quot;</span><span style="font-weight: bold; color: #008080;">&quot;&quot;</span>
 <span style="color: #0000FF; font-weight: bold;">Exit</span>
 <span style="color: #FF0000; font-weight: bold;">&#125;</span>
DataFile <span style="color: #FF0000; font-weight: bold;">=</span> %1%
&nbsp;
<span style="font-style: italic; color: #009933;">; Run Simply Accounting</span>
<span style="color: #000080; font-style: italic; font-weight: bold;">Run</span><span style="color: #FF0000; font-weight: bold;">,</span> <span style="font-weight: bold; color: #AA0000;">%DataFile</span>%<span style="color: #FF0000; font-weight: bold;">,</span> <span style="color: #FF0000; font-weight: bold;">,</span> UseErrorLevel
<span style="color: #0000FF; font-weight: bold;">If</span> <span style="color: #FF0000; font-weight: bold;">&#40;</span><span style="font-weight: bold; color: #AA0000;">%ErrorLevel</span>% <span style="color: #FF0000; font-weight: bold;">==</span> ERROR<span style="color: #FF0000; font-weight: bold;">&#41;</span> <span style="color: #FF0000; font-weight: bold;">&#123;</span>
 <span style="color: #000080; font-style: italic; font-weight: bold;">MsgBox</span> % DataFile <span style="color: #FF0000; font-weight: bold;">.</span> <span style="font-weight: bold; color: #008080;">&quot; could not be loaded.  Be sure that the path to the file is correct.&quot;</span>
 <span style="color: #0000FF; font-weight: bold;">Exit</span>
 <span style="color: #FF0000; font-weight: bold;">&#125;</span>
&nbsp;
<span style="font-style: italic; color: #009933;">; Wait until it's active, or time out if it never becomes active</span>
<span style="color: #000080; font-style: italic; font-weight: bold;">WinWait</span><span style="color: #FF0000; font-weight: bold;">,</span> Simply Accounting <span style="color: #FF0000; font-weight: bold;">-</span> Session Date<span style="color: #FF0000; font-weight: bold;">,</span> <span style="color: #FF0000; font-weight: bold;">,</span> <span style="color: #AC00A9; font-style: italic; font-weight: bold;">60</span>
<span style="color: #000080; font-style: italic; font-weight: bold;">WinActivate</span><span style="color: #FF0000; font-weight: bold;">,</span> Simply Accounting <span style="color: #FF0000; font-weight: bold;">-</span> Session Date
&nbsp;
<span style="font-style: italic; color: #009933;">; Type in today's date.</span>
FormatTime<span style="color: #FF0000; font-weight: bold;">,</span> TimeString<span style="color: #FF0000; font-weight: bold;">,</span> <span style="color: #FF0000; font-weight: bold;">,</span> ShortDate
<span style="color: #000080; font-style: italic; font-weight: bold;">ControlSetText</span><span style="color: #FF0000; font-weight: bold;">,</span> Edit1<span style="color: #FF0000; font-weight: bold;">,</span> <span style="font-weight: bold; color: #AA0000;">%TimeString</span>%
<span style="color: #000080; font-style: italic; font-weight: bold;">Send</span> <span style="color: #FF0000; font-weight: bold;">&#123;</span>Enter<span style="color: #FF0000; font-weight: bold;">&#125;</span></pre></div></div>
Note: This requires the "Show Change Session Date at Startup" option to be enabled.&nbsp; To do this, load Simply Accounting normally. From the Setup menu, select User Preferences. In the left column, select View. Place a check in “Show Change Session Date at Startup”.<br /><br /><br />We include the old VBScript below, however we recommend using the new version instead.<br />

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #008000;">' Script to automatically set the Simply Accounting session date
</span><span style="color: #008000;">' By Mango - March 17, 2008
</span>
<span style="color: #008000;">' Find out if the user has specified a data file
</span><span style="color: #000080;">If</span> WScript.Arguments.Count = 0 <span style="color: #000080;">Then</span>
 MsgBox <span style="color: #800000;">&quot;No data file specified!&quot;</span>
 wscript.quit
 <span style="color: #000080;">End</span> <span style="color: #000080;">If</span>
&nbsp;
<span style="color: #008000;">' Set datafile
</span>datafile = WScript.Arguments(0)
&nbsp;
<span style="color: #008000;">' Create the Wscript.Shell object.
</span><span style="color: #000080;">Set</span> shell = CreateObject(<span style="color: #800000;">&quot;Wscript.Shell&quot;</span>)
&nbsp;
<span style="color: #008000;">' Run Simply Accounting
</span>shell.run <span style="color: #800000;">&quot;&quot;</span><span style="color: #800000;">&quot;&quot;</span> &amp; datafile &amp; <span style="color: #800000;">&quot;&quot;</span><span style="color: #800000;">&quot;&quot;</span>
&nbsp;
<span style="color: #008000;">' Wait until it's active, or time out if it never becomes active
</span><span style="color: #000080;">Do</span> <span style="color: #000080;">Until</span> shell.AppActivate(<span style="color: #800000;">&quot;Simply Accounting - Session Date&quot;</span>)
 Wscript.Sleep 250
 Tries = Tries + 1
 <span style="color: #000080;">If</span> Tries &gt; 200 <span style="color: #000080;">Then</span> wscript.quit
<span style="color: #000080;">Loop</span>
&nbsp;
<span style="color: #008000;">' Type in today's date
</span>shell.SendKeys <span style="color: #000080;">date</span> &amp; <span style="color: #800000;">&quot;{ENTER}&quot;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.toao.net/38-making-the-simply-accounting-session-date-default-to-today/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change Back/Forward buttons to Previous/Next</title>
		<link>http://www.toao.net/433-change-backforward-buttons-to-previousnext</link>
		<comments>http://www.toao.net/433-change-backforward-buttons-to-previousnext#comments</comments>
		<pubDate>Tue, 23 Feb 2010 03:06:02 +0000</pubDate>
		<dc:creator>Mango</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.toao.net/?p=433</guid>
		<description><![CDATA[Over the past few weeks we've been testing the Microsoft ComfortCurve Keyboard 2000 and we love it!&#160; Its keys are nice and responsive, it's comfortable to use, and its buttons are in very intuitive places.&#160; The best part is it's practically a steal - we've seen it for as low as $15.&#160; It has only [...]]]></description>
			<content:encoded><![CDATA[<br />Over the past few weeks we've been testing the Microsoft ComfortCurve Keyboard 2000 and we love it!&nbsp; Its keys are nice and responsive, it's comfortable to use, and its buttons are in very intuitive places.&nbsp; The best part is it's practically a steal - we've seen it for as low as $15.&nbsp; It has only one minor flaw which is that there are very few multimedia buttons.&nbsp; There are play/pause, volume up/down, and mute.&nbsp; But there are no buttons for stop, previous, or next.<br /><br />There were however browser Back/Forward buttons.&nbsp; And we never use the mute button.&nbsp; For some reason, SharpKeys, which we've used in the past wouldn't do the job.&nbsp; The keyboard came with software called IntelliType but it used a great deal of RAM and, oddly, slowed down our cursor a great deal.&nbsp; No matter.&nbsp; This is an excellent excuse to point out again just how much we like <a href="http://www.autohotkey.com/" target="_blank">AutoHotkey</a>.<br />

<div class="wp_syntax"><div class="code"><pre class="autoit" style="font-family:monospace;"><span style="color: #F000FF; font-style: italic;">#NoTrayIcon</span>
#SingleInstance force
Browser_Back::Media_Prev
Browser_Forward::Media_Next
Volume_Mute::Media_Stop</pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.toao.net/433-change-backforward-buttons-to-previousnext/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disable Targus PowerPoint Remote Buttons</title>
		<link>http://www.toao.net/432-disable-targus-powerpoint-remote-buttons</link>
		<comments>http://www.toao.net/432-disable-targus-powerpoint-remote-buttons#comments</comments>
		<pubDate>Tue, 16 Feb 2010 21:43:03 +0000</pubDate>
		<dc:creator>Mango</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.toao.net/?p=432</guid>
		<description><![CDATA[A company called Targus makes remote controls designed for use with PowerPoint presentations.&#160; They allow you to control your presentation from some distance away from the actual computer running the show.While this sounds like a great idea in theory, in practice these remotes are BEYOND frustrating.&#160; The reason is that there are too many buttons, [...]]]></description>
			<content:encoded><![CDATA[<br />A company called Targus makes remote controls designed for use with PowerPoint presentations.&nbsp; They allow you to control your presentation from some distance away from the actual computer running the show.<br /><br />While this sounds like a great idea in theory, in practice these remotes are BEYOND frustrating.&nbsp; The reason is that there are too many buttons, and pressing the wrong button at the wrong time will make the presentation quit working.&nbsp; And no matter how carefully we instruct the presenter to recover from such incidents, ("If everything stops working press this button labeled Magic Fix-It Button!") ostensibly they will forget.&nbsp; Every.&nbsp; Single.&nbsp; Time.<br /><br />These buttons, they must be disabled.<br />
<span id="more-432"></span><br /><br />We wanted to solve two problems.&nbsp; The first was the button designed to switch applications.&nbsp; It's an excellent idea, but for some reason it doesn't work properly.&nbsp; You can switch out of your presentation, but you can't switch back.&nbsp; The second was the button that suddenly blanks the screen.&nbsp; We are told that this button is coronary-inducing.<br /><br />We wrote the following script using the excellent and free <a href="http://www.autohotkey.com/" target='_blank'>AutoHotkey</a> program.&nbsp; It works like a charm, in both PowerPoint and OpenOffice.org Impress.&nbsp; If you don't have AutoHotkey, we used its compiler to make an EXE file.&nbsp; You may simply download the file to <a href='/pub/Disable_Targus_Buttons.exe'>disable Targus PowerPoint Remote buttons</a>.<br />

<div class="wp_syntax"><div class="code"><pre class="autoit" style="font-family:monospace;"><span style="font-style: italic; color: #009933;">; Disable Targus Remote Buttons - by Mango - http://www.toao.net/</span>
#SingleInstance force
&nbsp;
<span style="font-style: italic; color: #009933;">; First, disable Alt+Shift+Tab.</span>
!<span style="color: #FF0000; font-weight: bold;">+</span>Tab::<span style="color: #0000FF; font-weight: bold;">Return</span>
&nbsp;
<span style="font-style: italic; color: #009933;">; Next, disable Shift+Alt, a byproduct of disabling Alt+Shift+Tab.</span>
<span style="color: #FF0000; font-weight: bold;">+</span>Alt::
&nbsp;
<span style="font-style: italic; color: #009933;">; If a window is active named &quot;PowerPoint Slide Show&quot;, disable the 'b' key as it will blank the screen.</span>
#IfWinActive<span style="color: #FF0000; font-weight: bold;">,</span> PowerPoint Slide Show
 <span style="color: #FF0000; font-weight: bold;">&#123;</span>
 b::<span style="color: #0000FF; font-weight: bold;">Return</span>
 <span style="color: #FF0000; font-weight: bold;">&#125;</span>
&nbsp;
<span style="font-style: italic; color: #009933;">; Disable the 'b' key in OpenOffice.org Impress.</span>
#IfWinActive<span style="color: #FF0000; font-weight: bold;">,</span> ahk_class SALTMPSUBFRAME
 <span style="color: #FF0000; font-weight: bold;">&#123;</span>
 b::<span style="color: #0000FF; font-weight: bold;">Return</span>
 <span style="color: #FF0000; font-weight: bold;">&#125;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.toao.net/432-disable-targus-powerpoint-remote-buttons/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Which Email Providers are the Most Popular?</title>
		<link>http://www.toao.net/431-most-popular-email-providers</link>
		<comments>http://www.toao.net/431-most-popular-email-providers#comments</comments>
		<pubDate>Wed, 10 Feb 2010 01:37:02 +0000</pubDate>
		<dc:creator>Mango</dc:creator>
				<category><![CDATA[Web Programming]]></category>

		<guid isPermaLink="false">http://www.toao.net/?p=431</guid>
		<description><![CDATA[At Mango's day job, he operates a mailing list for his customers.&#160; Approximately 2,000 customers have subscribed to it.&#160; He wanted to set up test email accounts with various webmail providers to be sure his emails arrived as intended.&#160; But which webmail providers should he choose?&#160; The most popular email providers were easily found with [...]]]></description>
			<content:encoded><![CDATA[<br />At Mango's day job, he operates a mailing list for his customers.&nbsp; Approximately 2,000 customers have subscribed to it.&nbsp; He wanted to set up test email accounts with various webmail providers to be sure his emails arrived as intended.&nbsp; But which webmail providers should he choose?&nbsp; The most popular email providers were easily found with this MySQL query:<br />

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span>
<span style="color: #000099;">SUBSTRING</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`email`</span><span style="color: #000033;">,</span> <span style="color: #000099;">LOCATE</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'@'</span><span style="color: #000033;">,</span> <span style="color: #008000;">`email`</span><span style="color: #FF00FF;">&#41;</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">AS</span> <span style="color: #008000;">`domain`</span><span style="color: #000033;">,</span>
<span style="color: #000099;">COUNT</span><span style="color: #FF00FF;">&#40;</span><span style="color: #CC0099;">*</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">AS</span> <span style="color: #008000;">`count`</span>
<span style="color: #990099; font-weight: bold;">FROM</span> <span style="color: #008000;">`table`</span>
<span style="color: #990099; font-weight: bold;">GROUP BY</span> <span style="color: #008000;">`domain`</span>
<span style="color: #990099; font-weight: bold;">ORDER BY</span> <span style="color: #008000;">`count`</span> <span style="color: #990099; font-weight: bold;">DESC</span></pre></div></div>
For our list, the results were:<br /><br />Major regional ISPs - 39%<br />Hotmail - 14%<br />Yahoo - 9%<br />Gmail - 8%<br />AOL - 1%<br /><br />The remaining 29% consisted of small ISPs and insignificant webmail providers, each less than 1% of the total.]]></content:encoded>
			<wfw:commentRss>http://www.toao.net/431-most-popular-email-providers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Tools for Windows</title>
		<link>http://www.toao.net/430-free-tools-for-windows</link>
		<comments>http://www.toao.net/430-free-tools-for-windows#comments</comments>
		<pubDate>Wed, 10 Feb 2010 01:13:08 +0000</pubDate>
		<dc:creator>Mango</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.toao.net/?p=430</guid>
		<description><![CDATA[Everyone seems to have their list of free Windows applications they can't do without, and here's ours.&#160; All of these are free for the download and their authors deserve a serious hat tip for all of their excellent work.&#160; We list them in alphabetical order:
AutoHotkeyAutoHotkey is the quintessential keystroke and mouse automator that you really [...]]]></description>
			<content:encoded><![CDATA[<br />Everyone seems to have their list of free Windows applications they can't do without, and here's ours.&nbsp; All of these are free for the download and their authors deserve a serious hat tip for all of their excellent work.&nbsp; We list them in alphabetical order:<br /><br />
<b><a href='http://www.autohotkey.com/' target='_blank'>AutoHotkey</a></b><br />AutoHotkey is the quintessential keystroke and mouse automator that you really must try to see just how powerful it is.&nbsp; You can automate almost any program by sending it keystrokes and mouse clicks.&nbsp; You can remap keys on your keyboard or mouse.&nbsp; One of our favourite features is that you may compile your finished script into a single EXE that may be run on any Windows computer.<br />
<span id="more-430"></span><br />
<b><a href='http://id3-tagit.pluemper.name/' target='_blank'>ID3-TagIT 3</a></b><br />ID3-TagIT 3 is excellent software for bulk editing of ID3 tags in MP3 files.<br /><br />
<b><a href='http://mpc-hc.sourceforge.net/' target='_blank'>Media Player Classic Home Cinema</a></b><br />This is our favourite media player.&nbsp; It plays a wide variety of media formats, is simple to use, and best of all, it uses just a few megabytes of RAM.<br /><br />
<b><a href='http://notepad-plus.sourceforge.net/' target='_blank'>Notepad++</a></b><br />Notepad++ is our favourite text editor.&nbsp; It's fast, colour-codes many languages, supports collapsing of code, and has plenty of other very useful features.&nbsp; Be sure to get the NppAutoIndent plugin.<br /><br />
<b><a href='http://www.chiark.greenend.org.uk/~sgtatham/putty/' target='_blank'>PuTTY</a></b><br />PuTTY is an excellent Telnet/SSH client.&nbsp; If you currently use the Windows Telnet program, you will no doubt consider PuTTY a breath of fresh air.<br /><br />
<b><a href='http://www.erightsoft.com/SUPER.html' target='_blank'>SUPER</a></b><br />SUPER provides an excellent user interface for popular audo/video converters.&nbsp; Their developers state, "SUPER does for FREE what other encoders CAN'T do for money!"&nbsp; This is absolutely correct.&nbsp; There are no codecs to install because everything you need comes in a single EXE file.&nbsp; Their website is very difficult to navigate, so here is a <a href='http://www.erightsoft.org/GetFile.php?SUPERsetup.exe' target='_blank'>link to download the setup file</a>.<br /><br />
<b>SmartRipper</b><br />SmartRipper is an excellent tool for ripping MPEG video from DVDs.&nbsp; We found it difficult to find a free program that would rip the original MPEG video into a single file without transcoding.&nbsp; SmartRipper does.&nbsp; Unfortunately, its author no longer offers it for download but it is easy to find with Google.<br /><br />
<b><a href='http://www.faxback.com/msfaxplugin/' target='_blank'>T.38 Plug-In for Microsoft Fax</a></b><br />Without a fax machine, and a phone line, and need to send a fax?&nbsp; This plug-in is for you.&nbsp; Get a Pay Per Call account from Callcentric and send faxes with the Microsoft Fax printer driver for just pennies per page.&nbsp; (To clarify, the software is free; Callcentric charges a few cents per minute in termination fees.)<br /><br />
<b><a href='http://www.wingrep.com/' target='_blank'>Windows Grep</a></b><br />Ever need to search through a large number of files for some specific text?&nbsp; Windows has a built-in tool to do this...but it doesn't always work.&nbsp; Enter Windows Grep, the Windows version of the popular Grep tool.&nbsp; It even supports regular expressions.<br /><br />
<b><a href='http://winscp.net/eng/index.php' target='_blank'>WinSCP</a></b><br />WinSCP is a great companion to PuTTY and is the best FTP/SFTP client we've ever found.<br /><br />
<b><a href='http://www.codeproject.com/KB/system/xyntservice.aspx' target='_blank'>XYNTService Project</a></b><br />With the XYNTService Project, you may start any program (including PHP or AutoHotkey scripts) as a Windows Service.&nbsp; It has more features and is easier to use than srvany.exe!<br /><br />
<b><a href='http://www.zoiper.com/' target='_blank'>Zoiper</a></b><br />The free version of this excellent softphone supports up to three SIP accounts.<br /><br /><br />]]></content:encoded>
			<wfw:commentRss>http://www.toao.net/430-free-tools-for-windows/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatic Read More in Joomla</title>
		<link>http://www.toao.net/182-automatic-read-more-in-joomla</link>
		<comments>http://www.toao.net/182-automatic-read-more-in-joomla#comments</comments>
		<pubDate>Sun, 07 Feb 2010 15:40:22 +0000</pubDate>
		<dc:creator>Mango</dc:creator>
				<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://www.toao.net/?p=182</guid>
		<description><![CDATA[We've always wanted to be able to set up Joomla to automatically add a "Read More" link for articles in Category Blog or Section Blog Layouts so that the articles would all be the same length and they would line up just as pretty as you please.&#160; Google revealed a handful of other people attempting [...]]]></description>
			<content:encoded><![CDATA[<br />We've always wanted to be able to set up Joomla to automatically add a "Read More" link for articles in Category Blog or Section Blog Layouts so that the articles would all be the same length and they would line up just as pretty as you please.&nbsp; Google revealed a handful of other people attempting the same thing, but having no solution.&nbsp; So Mango wrote a plugin for it.<br />
<span id="more-182"></span><br />
<b>By popular request, we have added the following new features in the new <a href='/pub/plg_AutoReadMore.zip'>Version 1.1 Beta 3</a>:</b><br />
<ul>
<li>Thumbnails are linked to the full version of the article.</li>
<li>Portuguese and Spanish language files are included.&nbsp; Thanks to the volunteers who translated these!</li>
<li>FJ Related Articles is tentatively supported.</li>
<li>"Developer mode" feature to assist PHP coders in making Auto Read More compatible with other modules.</li>
<li>Bug where special characters were not displayed correctly has been fixed.</li>
<li>Bug where multiple thumbnails were sometimes not displayed correctly has been fixed.</li></ul><br />
<strong>Features:</strong><br />
<ul>
<li>Automatically adds "Read more..." link after a configurable number of characters.</li>
<li>Articles with shorter intro text display their intro text only.</li>
<li>Works on the Front Page, Category Blog, or Section Blog.</li>
<li>Will not break HTML or break the article in the middle of a word.</li>
<li>Configurable to ignore specific categories, sections, articles, or the Front Page.</li>
<li>Commented so that you may read through the code and add your own features if you like.</li>
</ul>Latest version (1.1 Beta 3): <a href='/pub/plg_AutoReadMore.zip'>Download Plugin to insert Read More links automatically in Joomla articles</a><br /><br />
<b>Note:</b> If you already use a different version of Auto Read More, <b>you must uninstall it first.</b><br /><br />Old versions: <a href='/pub/plg_AutoReadMore1.0.zip'>1.0</a>, <a href='/pub/plg_AutoReadMore1.1Beta.zip'>1.1 Beta</a>, <a href='/pub/plg_AutoReadMore1.1Beta2.zip'>1.1 Beta 2</a><br /><br />Feature requests, bug reports, and general comments welcome!]]></content:encoded>
			<wfw:commentRss>http://www.toao.net/182-automatic-read-more-in-joomla/feed</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Shaw Digital Phone Review</title>
		<link>http://www.toao.net/428-shaw-digital-phone-review</link>
		<comments>http://www.toao.net/428-shaw-digital-phone-review#comments</comments>
		<pubDate>Sun, 07 Feb 2010 04:37:27 +0000</pubDate>
		<dc:creator>Mango</dc:creator>
				<category><![CDATA[VoIP]]></category>

		<guid isPermaLink="false">http://www.toao.net/?p=428</guid>
		<description><![CDATA[We like Shaw Digital Phone a lot. Shaw Digital Phone is an implementation of VoIP that is run over Shaw's private network, separate from the Internet.&#160; Shaw's reps actively deny that their service is VoIP - we suspect they want to differentiate themselves from providers of broadband VoIP.&#160; This is perhaps with good reason. Because [...]]]></description>
			<content:encoded><![CDATA[<br />We like Shaw Digital Phone a lot. Shaw Digital Phone is an implementation of VoIP that is run over Shaw's private network, separate from the Internet.&nbsp; Shaw's reps actively deny that their service is VoIP - we suspect they want to differentiate themselves from providers of broadband VoIP.&nbsp; This is perhaps with good reason. Because Shaw Digital Phone doesn't run over the Internet, typical VoIP issues caused by latency, bandwidth sharing, and internet outages are entirely eliminated.<br />
<span id="more-428"></span><br /><br />As far as calling features go, Shaw provides basic features, but have been taking their time on implementing the more exotic ones.&nbsp; In August 2009 we were finally able to order multi-line hunting.&nbsp; We were the first customers in British Columbia to use this. We were excited to discover (because they oddly don't advertise this) that we not only have multi-line hunting but call queuing!&nbsp; This is a clear advantage over Telus that we think they should publicize. Some of their techs still do not know about the new features.&nbsp; Mango has spoken with techs who firmly deny that we have multi-line hunting because "Shaw does not yet offer it".&nbsp; We can assure you that they do.<br /><br />Shaw installed an Arris modem at our premises.&nbsp; We read reviews saying that these modems perform fantastically well, and we agree.&nbsp; When Shaw first rolled out their phone service, they deployed Motorola modems.&nbsp; Unfortunately, the performance of these were apparently less than stellar and caused a rocky start and bad PR for Shaw.&nbsp; But the good news is that if you've been trying to decide whether or not to switch to Shaw Digital Phone, now's the time.<br />
<h2>If you have a PBX, lie about it.</h2><br />Much to our amusement (or perhaps amazement) installation required two techs - one to connect the phone line and one to connect the cable line.&nbsp; Mango states that he was not impressed with the phone tech.&nbsp; At first he insisted on disconnecting the Telus line in the basement. When Mango flatly refused to unlock the wiring closet, (at this point we had no idea how well we'd like SDP and wanted the Telus line available if we decided to switch back) he then said he was going to "cut the line in the suite back so far no one will ever be able to reattach it."&nbsp; The line was already disconnected, but he wanted to make it impossible for Telus to reconnect it.&nbsp; <strong>Not happening.</strong>  After installation, the line wouldn't ring, which the tech immediately blamed on our PBX.&nbsp; <strong>He actually tried to convince Mango that perhaps our PBX was not supposed to ring.</strong>  We told him he should plug in his line tester and see if it would ring.&nbsp; He apparently decided our PBX was not the problem after all because he didn't even try his line tester; he made a call to someone at Shaw who solved the problem.<br /><br />When we decided to order three more lines, the installation was even more eventful.&nbsp; Mango received three separate calls from three different people at Shaw asking 1) if Mango was a PBX tech, which they asked already, 2) if Mango was over 18, which they also asked already, and 3) if Mango remembered about our appointment, which he did, because we had been called two other times about it.<br />
<h2>Union rules apply.</h2><br />The installation of the additional three lines required <strong>five</strong> technicians which in our opinion was four technicians too many.&nbsp; We find this humorous because Mango actually offered to do it himself to save them rolling a truck.&nbsp; The first two arrived the day after we placed our order and dropped off the modem.&nbsp; We asked them what they were going to do, because the number port had not yet been completed.&nbsp; They said they didn't know and left the modem sitting on a nearby table.&nbsp; Two techs arrived two days later, on Mango's day off, and without making an appointment.&nbsp; They patiently waited while we located him.&nbsp; They installed the new 4-port modem that the previous techs had dropped off.&nbsp; Finally, a single (!!) tech arrived on the actual installation date to plug in the three necessary cables, and call in the number port.&nbsp; We sincerely hope after watching this display of convoluted miscoordination that Shaw is actually making money.<br />
<h2>Nothing is simple with Shaw.</h2><br />We decided to downgrade one of our lines to a cheaper package. This is easier said than done. For reasons known only to Shaw, the modem must be provisioned<strong> in order of the price of the line</strong>. Unfortunately, the line we wanted to downgrade was Line 1. So they had to reprovision our modem so that Line 2 was moved to Line 1, Line 3 to Line 2, Line 4 to Line 3, and Line 1 to Line 4. We are not making this up. They told us this would take two hours.&nbsp; We scheduled the appointment for 8AM because we open at 10.&nbsp; At 1PM, our phone lines stopped dropping more calls than a bad cell.&nbsp; For some reason this procedure made a strange number appear as our outgoing Caller ID.&nbsp; They stated that fixing this will involve another "two hours" of downtime and scheduled it for sometime within the next 48 hours.&nbsp; A kid in his parents' basement with an Asterisk box could properly configure outgoing Caller ID in about 45 seconds.&nbsp; Why not Shaw?<br />
<h2>On the topic of Caller ID...</h2><br />Incoming Caller ID does not display 7% of names.&nbsp; (We counted.)  We do not know the reason why.&nbsp; Shaw states that if it does not appear it's the fault of the originating carrier.&nbsp; We do not believe this to be the case because Telus, cell, or broadband VoIP phones display names for these same numbers.&nbsp; (We looked up these numbers with CNAM.info and Bulkcnam.com to be sure.)  Hopefully this is something that will be fixed.<br />
<h2>Just the Fax, sir.</h2><br />Faxing works with our Arris modem, and it works well.&nbsp; However, Shaw oddly gives bad advice regarding faxing.&nbsp; They state that one should lower their fax speed to 9600bps and disable Error Correction Mode/ECM.&nbsp; <strong>This is wrong.</strong>  Our fax works perfectly well at 14400 or faster.&nbsp; Disabling ECM is a bad idea because if there is an error while sending the fax, your fax machine may report success.&nbsp; The recipient may have no idea you attempted to send a fax, and you will have no idea that the fax failed.&nbsp; If you have problems sending faxes, disabling ECM is NOT a good solution though it can occasionally mask the issue.<br /><br />We also note that for some reason, faxes always fail on Line 3 of our 4-port Arris modem.&nbsp; Lines 1, 2, and 4 always work.&nbsp; We have absolutely no idea why and would be delighted to hear from anyone else who experiences this issue.<br /><br />For a less expensive, very reliable, Canadian, web-based faxing solution, consider <a href="/422-low-cost-internet-faxing-for-canada">MyFax</a>.<br />
<h2>Conclusion: Decent, with room for improvement.</h2><br />It is frustrating dealing with Shaw, no question about that.&nbsp; But, it's less frustrating than dealing with Telus.&nbsp; It's common knowledge that Shaw's techs and CSRs have a much better command of the English language, perhaps due to the fact that Telus outsources to Asia.&nbsp; At this time we consider Shaw to be the lesser of two evils.<br /><br />At the time of this writing, our primary telecom services are from the following vendors:<br /><br />Office voice: Shaw Digital Phone<br />Office outgoing fax: Shaw Digital Phone<br />Office incoming fax: MyFax<br />Home voice: VoIP.ms<br />Home outgoing fax: Callcentric<br /><br />For home use, we find better pricing and more features with VoIP.ms and Callcentric.&nbsp; But if someone doesn't want to take the time to learn how to install and manage a broadband VoIP system, Shaw Digital Phone is an excellent and very cost-effective alternative.&nbsp; Mango's parents have Shaw Internet and if they switch to Shaw Digital Phone (Ed: and I think they should) it will add exactly $12 to their monthly bill due to bundling. At these prices, Shaw is competing with broadband VoIP.<br /><br />Fortunately, other than the above-mentioned incoming Caller ID issue, Shaw Digital Phone has performed wonderfully.&nbsp; We've had no downtime at all, other than the Shaw-induced downtime that occurred when they were sorting problems or reprovisioning our modem.&nbsp; After a few calls, we found ourselves thinking that the audio quality was better.&nbsp; We made a recording comparing <a href="/64-shaw-vs-telus-sound-quality-samples">Shaw Digital Phone and Telus audio quality</a> and Shaw easily beat Telus.<br /><br />If you can deal with random acts of frustration when dealing with Shaw's staff in exchange for a cheap phone line, Shaw Digital Phone is a good choice for you. ]]></content:encoded>
			<wfw:commentRss>http://www.toao.net/428-shaw-digital-phone-review/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert to and from ulaw files</title>
		<link>http://www.toao.net/427-convert-to-and-from-ulaw-files</link>
		<comments>http://www.toao.net/427-convert-to-and-from-ulaw-files#comments</comments>
		<pubDate>Mon, 01 Feb 2010 06:20:40 +0000</pubDate>
		<dc:creator>Mango</dc:creator>
				<category><![CDATA[VoIP]]></category>

		<guid isPermaLink="false">http://www.toao.net/?p=427</guid>
		<description><![CDATA[In a previous article, we wrote about how to build a call recorder out of Asterisk.&#160; Simply conference in the call recorder's extension and Asterisk will record your conversation to a ulaw file.&#160; It is possible for Asterisk to record in wav format but that requires more system resources.&#160; Fortunately, there's a very easy way [...]]]></description>
			<content:encoded><![CDATA[<br />In a previous article, we wrote about <a href='http://www.toao.net/426-configure-asterisk-for-a-home-pbx'>how to build a call recorder out of Asterisk</a>.&nbsp; Simply conference in the call recorder's extension and Asterisk will record your conversation to a ulaw file.&nbsp; It is possible for Asterisk to record in wav format but that requires more system resources.&nbsp; Fortunately, there's a very easy way to convert ulaw files to wav format.&nbsp; That is by using a program called SoX.&nbsp; SoX is an <a href='http://sox.sourceforge.net/' target='_blank'>open source command line utility for converting many types of audio formats</a>.<br />
<span id="more-427"></span><br /><br />The way we set SoX up was by a Windows XP file type.&nbsp; (No doubt the techniques for other versions of Windows would be similar.)  Open Windows Explorer.&nbsp; From the <strong>Tools</strong> menu, select <strong>Folder Options</strong>.&nbsp; Navigate to the <strong>File Types</strong> tab.&nbsp; Create a <strong>new</strong> file type with the extension ulaw.&nbsp; Now select the extension you just created and press the <strong>Advanced</strong> button.&nbsp; Create a <strong>new action</strong> and label it <strong>Convert to WAV</strong>.&nbsp; The application used to perform the action is the following:<br /><br />
<b>"C:\path\to\sox.exe" --no-clobber -t ul "%1" "%1.wav"</b><br /><br />Wav files may be converted to ulaw using a similar technique.&nbsp; The command is as follows:<br /><br />
<b>"c:\path\to\sox.exe" --no-clobber "%1" -r 8000 -c 1 -t ul "%1.ulaw"</b><br /><br />Bonus tip: if it's legal in your region, you may wish to disable the "beep beep" tone that's played when you conference an extension in.&nbsp; To do this with a Linksys/Cisco VoIP device, set Conference Tone on the Regional tab to 0@-20.]]></content:encoded>
			<wfw:commentRss>http://www.toao.net/427-convert-to-and-from-ulaw-files/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configure Asterisk for a Home PBX</title>
		<link>http://www.toao.net/426-configure-asterisk-for-a-home-pbx</link>
		<comments>http://www.toao.net/426-configure-asterisk-for-a-home-pbx#comments</comments>
		<pubDate>Wed, 20 Jan 2010 01:01:33 +0000</pubDate>
		<dc:creator>Mango</dc:creator>
				<category><![CDATA[VoIP]]></category>

		<guid isPermaLink="false">http://www.toao.net/?p=426</guid>
		<description><![CDATA[We have a PBX for home use because we want our telephones to have features that are not common or simply not available from any phone provider.&#160; Some of these features include termination failover, custom incoming Caller ID, and call recording.&#160; In this guide we will show you how to configure Asterisk for use as [...]]]></description>
			<content:encoded><![CDATA[<br />We have a PBX for home use because we want our telephones to have features that are not common or simply not available from any phone provider.&nbsp; Some of these features include termination failover, custom incoming Caller ID, and call recording.&nbsp; In this guide we will show you how to configure Asterisk for use as a home PBX.&nbsp; If you are building a PBX for a small or home office you will likely use many of the same techniques.<br /><br />If you do not yet own an Asterisk PBX, there are several ways you may get one.&nbsp; You can build one out of an old PC you have lying around, or if you'd prefer a low-cost, low-power Asterisk server that is also a 4-port router, read our other article about <a href="http://www.toao.net/425-asterisk-on-a-router ">How to Install Asterisk on an Asus WL-520GU Router.</a><br /><br />Once you have Asterisk installed on your hardware of choice, read on to find out how we configured ours.<br />
<span id="more-426"></span><br />
<h2>Configure peers</h2><br />The first thing you will likely want to do is configure peers - that is, IP phones, ATAs, and VoIP providers.&nbsp; We'll start with the [general] context of sip.conf:<br />

<div class="wp_syntax"><div class="code"><pre class="asterisk" style="font-family:monospace;"><span style="color: #00008f; font-weight: bold;"><span class="br0">&#91;</span>general<span class="br0">&#93;</span></span>
<span style="color: #ff6300; font-weight: bold;">context</span><span style="color: #8000ff;">=</span>incoming       <span style="color: #009926; font-weight: bold;">; Default context for incoming calls.</span>
<span style="color: #ff6300; font-weight: bold;">allowguest</span><span style="color: #8000ff;">=</span>no          <span style="color: #009926; font-weight: bold;">; Allow or reject guest calls (default is yes).</span>
<span style="color: #ff6300; font-weight: bold;">allowoverlap</span><span style="color: #8000ff;">=</span>no        <span style="color: #009926; font-weight: bold;">; Disable overlap dialing support (default is yes).</span>
<span style="color: #ff6300; font-weight: bold;">bindport</span><span style="color: #8000ff;">=</span><span style="">5060</span>          <span style="color: #009926; font-weight: bold;">; UDP Port to bind to (SIP standard port is 5060).  Bindport is the local UDP port that Asterisk will listen on.</span>
<span style="color: #ff6300; font-weight: bold;">bindaddr</span><span style="color: #8000ff;">=</span>0.0.0.0       <span style="color: #009926; font-weight: bold;">; IP address to bind to (0.0.0.0 binds to all).</span>
<span style="color: #ff6300; font-weight: bold;">srvlookup</span><span style="color: #8000ff;">=</span>yes          <span style="color: #009926; font-weight: bold;">; Enable DNS SRV lookups on outbound calls.</span>
<span style="color: #ff6300; font-weight: bold;">disallow</span><span style="color: #8000ff;">=</span>all           <span style="color: #009926; font-weight: bold;">; First disallow all codecs.</span>
<span style="color: #ff6300; font-weight: bold;">allow</span><span style="color: #8000ff;">=</span>ulaw             <span style="color: #009926; font-weight: bold;">; Allow codecs in order of preference.  We only use ulaw.</span>
<span style="color: #ff6300; font-weight: bold;">alwaysauthreject</span><span style="color: #8000ff;">=</span>yes   <span style="color: #009926; font-weight: bold;">; Reject calls with 401 instead of letting the caller know whether there was a matching user or peer for their request.</span>
<span style="color: #ff6300; font-weight: bold;">canreinvite</span><span style="color: #8000ff;">=</span>no         <span style="color: #009926; font-weight: bold;">; Whether or not peers may talk directly to each other without Asterisk in the middle.  Yes requres port forwarding.</span>
<span style="color: #ff6300; font-weight: bold;">nat</span><span style="color: #8000ff;">=</span>yes                <span style="color: #009926; font-weight: bold;">; Whether our devices are behind NAT or not.</span>
<span style="color: #ff6300; font-weight: bold;">session-timers</span><span style="color: #8000ff;">=</span>refuse</pre></div></div>
Let's take a short break from configuring Asterisk for a moment and we will describe how our devices are set up.&nbsp; This is largely personal preference and is what works quite well for us.<br /><br />Our VoIP devices register to our VoIP provider, not our Asterisk server.&nbsp; There are two reasons for this.&nbsp; The first is because we want to use our VoIP provider's voicemail so that it will work even if our internet is not working.&nbsp; So it is necessary for our VoIP devices to register to our VoIP provider in order for message waiting indicator to work.&nbsp; The other advantage to this technique is that our VoIP provider may be configured to route incoming calls first to our Asterisk server, and then directly to our device if Asterisk is not working for some reason.&nbsp; There is no need for our VoIP devices to register to our Asterisk server.&nbsp; Because we have full control of our LAN, they have a static IP.&nbsp; Outgoing calls are routed to the Asterisk server via the device's dial plan.&nbsp; When using a setup such as this it is useful to change the SIP Port of your devices to something unique.&nbsp; It is also useful for your RTP Port ranges to be unique.<br /><br />This is also a good time to mention 911.&nbsp; VoIP 911 services typically find your location by looking at a database of customers' Caller ID numbers.&nbsp; So, in order for this to work properly, your outgoing Caller ID must be correct.&nbsp; We do not route 911 through our Asterisk server because there is no reason to - our phone places calls to 911 directly through our VoIP provider.&nbsp; We have requested our VoIP provider to set the outgoing Caller ID number for all of our devices at the same address to the proper Caller ID number for 911.&nbsp; This way we do not need to pay 911 fees for every single DID.&nbsp; However, we have several DIDs, and some devices at the same address should have a special Caller ID for regular (non-911) calls.&nbsp; This may be done with Asterisk.&nbsp; Keep reading!<br /><br />One caveat to this technique is if the 911 operator needs to call you back, they will call you back at the Caller ID number.&nbsp; If that's not okay with you, you should pay 911 fees for each DID you own.<br /><br />Now, here is one way to configure a VoIP device with a static IP.&nbsp; You should have something like the following for each device.&nbsp; It may appear in sip.conf below the [general] context.<br />

<div class="wp_syntax"><div class="code"><pre class="asterisk" style="font-family:monospace;"><span style="color: #009926; font-weight: bold;">; The first line will be the name of this peer.  You may route calls to this device at SIP/pap2t</span>
<span style="color: #00008f; font-weight: bold;"><span class="br0">&#91;</span>pap2t<span class="br0">&#93;</span></span>
<span style="color: #ff6300; font-weight: bold;">defaultuser</span><span style="color: #8000ff;">=</span>mango    <span style="color: #009926; font-weight: bold;">; This is the user ID that is configured on the device.</span>
<span style="color: #ff6300; font-weight: bold;">type</span><span style="color: #8000ff;">=</span>friend          <span style="color: #009926; font-weight: bold;">; This device may both place and receive calls.</span>
<span style="color: #ff6300; font-weight: bold;">callerid</span><span style="color: #8000ff;">=</span><span style="">5555551234</span>  <span style="color: #009926; font-weight: bold;">; Outgoing Caller ID of the device.</span>
<span style="color: #ff6300; font-weight: bold;">context</span><span style="color: #8000ff;">=</span>devices      <span style="color: #009926; font-weight: bold;">; This is the context in extensions.conf that this device will use for outgoing calls.</span>
<span style="color: #ff6300; font-weight: bold;">host</span><span style="color: #8000ff;">=</span>192.168.1.8     <span style="color: #009926; font-weight: bold;">; This is the IP address of the device.</span>
<span style="color: #ff6300; font-weight: bold;">port</span><span style="color: #8000ff;">=</span><span style="">5068</span>            <span style="color: #009926; font-weight: bold;">; This is the SIP Port the device is listening on.</span></pre></div></div>
You will also need to define peers for your VoIP provider(s).&nbsp; Most VoIP providers will provide configuration samples that you may use.<br /><br />
<h2>Asterisk Dialplan</h2><br />The next thing that you must configure is the dialplan.&nbsp; The dialplan determines the behaviour of all incoming and outgoing calls.&nbsp; Because it is large, we shall link to it.&nbsp; Here's an <a href="http://www.toao.net/pub/VoIP/extensions.conf.php">Asterisk Dialplan for a Home PBX</a>.<br /><br />
<h2>You're done!</h2><br />At this point, you have a working Asterisk server, and if you've been following along, you've built it out of a $25 router that uses just a few watts of power.&nbsp; Congratulations and enjoy!]]></content:encoded>
			<wfw:commentRss>http://www.toao.net/426-configure-asterisk-for-a-home-pbx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
