<?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>mibus.org</title>
	<atom:link href="http://www.mibus.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mibus.org</link>
	<description>geek refuge</description>
	<lastBuildDate>Sat, 12 May 2012 04:33:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ATtiny85 flasher for Mother&#8217;s Day</title>
		<link>http://www.mibus.org/2012/05/12/attiny85-flasher-for-mothers-day/</link>
		<comments>http://www.mibus.org/2012/05/12/attiny85-flasher-for-mothers-day/#comments</comments>
		<pubDate>Sat, 12 May 2012 04:31:39 +0000</pubDate>
		<dc:creator>mibus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[electronics]]></category>

		<guid isPermaLink="false">http://www.mibus.org/?p=1487</guid>
		<description><![CDATA[To help my kids celebrate Mother's Day this year, I wanted to do something a little different. Instead of just a present, I wanted the kids to be able to give her something a bit more one-of-a-kind. I'd bought an ATtiny85 to play with some of the ATtiny Arduino support (or failing that, work out [...]]]></description>
			<content:encoded><![CDATA[<p>To help my kids celebrate Mother's Day this year, I wanted to do something a little different. Instead of <em>just</em> a present, I wanted the kids to be able to give her something a bit more one-of-a-kind.</p>
<p>I'd bought an ATtiny85 to play with some of the <a href="https://github.com/damellis/attiny">ATtiny Arduino support</a> (or failing that, work out how to use avr-gcc directly). I also had a bunch of very bright LEDs and some cheapy cell batteries sitting around doing nothing.</p>
<p>First, I took one of the spiffy cases from when we bought some kids' earrings recently, and drilled holes to shape out a heart.</p>
<p><a href="http://www.mibus.org/wp-uploads/2012/05/IMG_1937.jpg"><img title="Earring case, or at least it used to be." class="aligncenter size-medium wp-image-1507" src="http://www.mibus.org/wp-uploads/2012/05/IMG_1937-e1336796729420-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Poking the LEDs through, I kept the cathodes all in the centre, so I could bend them all inwards and haphazardly solder them all together. I also used wire to bridge each LED with its opposite, so I'm driving a ring of ten LEDs with five pins.</p>
<p><a href="http://www.mibus.org/wp-uploads/2012/05/IMG_1939-e1336795341551.jpg"><img class="aligncenter size-medium wp-image-1506" title="Wiring inside..." src="http://www.mibus.org/wp-uploads/2012/05/IMG_1939-e1336795341551-300x225.jpg" alt="" width="300" height="225" /></a>Finally, I soldered the pre-programmed ATtiny85 to the LED anodes, using a small piece of electrical tape to ensure it isn't going to inadvertently touch any of the mess below it. The cells (wrapped in electrical tape) go directly to the power &amp; ground pins on the chip, and a resistor feeds the ground to the LED cathodes.</p>
<p><a href="http://www.mibus.org/wp-uploads/2012/05/IMG_1942.jpg"><img class="aligncenter size-medium wp-image-1507" title="ATtiny-powered!" src="http://www.mibus.org/wp-uploads/2012/05/IMG_1942-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Brilliant.</p>
<p>Except I made an off-by-one error in my sketch that I didn't notice during testing (c % 6, instead of c % 5). Thankfully, I was able to fairly easily solder on wires to a 6-pin ISP header and flash a new program.</p>
<p>Final result:</p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/YXHQr8U3EQI" frameborder="0" allowfullscreen></iframe></p>
<p>The source code is available here: <a href="https://github.com/mibus/MibusArduino/tree/master/MothersDayFlasher">https://github.com/mibus/MibusArduino/tree/master/MothersDayFlasher</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mibus.org/2012/05/12/attiny85-flasher-for-mothers-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoDaddy &#8211; mixed-case DNS WTFery.</title>
		<link>http://www.mibus.org/2012/02/24/godaddy-mixed-case-dns-wtfery/</link>
		<comments>http://www.mibus.org/2012/02/24/godaddy-mixed-case-dns-wtfery/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 22:24:34 +0000</pubDate>
		<dc:creator>mibus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.mibus.org/?p=1478</guid>
		<description><![CDATA[A friend passed me a bounce of mail to my domain; DNS-related it said. Dutifully, I checked the record: $ dig @ns43.domaincontrol.com mibus.org mx ; DiG 9.7.3 @ns43.domaincontrol.com mibus.org mx ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER]]></description>
			<content:encoded><![CDATA[<p>A friend passed me a bounce of mail to my domain; DNS-related it said.</p>
<p>Dutifully, I checked the record:</p>
<p><code>$ dig @ns43.domaincontrol.com mibus.org mx</p>
<p>; <<>> DiG 9.7.3 <<>> @ns43.domaincontrol.com mibus.org mx<br />
; (2 servers found)<br />
;; global options: +cmd<br />
;; Got answer:<br />
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 541<br />
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 0<br />
;; WARNING: recursion requested but not available</p>
<p>;; QUESTION SECTION:<br />
;MibUs.OrG.			IN	MX</p>
<p>;; ANSWER SECTION:<br />
MibUs.OrG.		3600	IN	MX	10 aspmx.l.google.com.<br />
MibUs.OrG.		3600	IN	MX	20 alt2.aspmx.l.google.com.<br />
MibUs.OrG.		3600	IN	MX	20 alt1.aspmx.l.google.com.</p>
<p>;; AUTHORITY SECTION:<br />
MibUs.OrG.		3600	IN	NS	ns43.domaincontrol.com.<br />
MibUs.OrG.		3600	IN	NS	ns44.domaincontrol.com.</p>
<p>;; Query time: 89 msec<br />
;; SERVER: 216.69.185.22#53(216.69.185.22)<br />
;; WHEN: Fri Feb 24 08:42:50 2012<br />
;; MSG SIZE  rcvd: 155<br />
</code></p>
<p>Yep, there it is.</p>
<p>(...and yes, I'm with GoDaddy. I'm horribly likely to shift at my next renewal - if not before. But anyway).</p>
<p>Wait. "MibUs.OrG."?</p>
<p>It's repeatable, on that _one_ NS, from both the US and here in Australia. The other NS, is fine. Non-MX queries... are also fine. Mixed-case queries for the MX, all come back in that one same (different) case.</p>
<p>What. The. Hell.</p>
<p>I made a change to my zone data with their pretty web-based console. Re-ran the query... and it was fine. Except, all the mixed-case queries all came back lowercase.</p>
<p>Hmm. I wonder.</p>
<p>I made another change.</p>
<p><code>$ dig @ns43.domaincontrol.com Mibus.Org mx</p>
<p>; <<>> DiG 9.7.3 <<>> @ns43.domaincontrol.com Mibus.Org mx<br />
; (2 servers found)<br />
;; global options: +cmd<br />
;; Got answer:<br />
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57417<br />
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 0<br />
;; WARNING: recursion requested but not available</p>
<p>;; QUESTION SECTION:<br />
;Mibus.Org.			IN	MX</p>
<p>;; ANSWER SECTION:<br />
Mibus.Org.		3600	IN	MX	10 aspmx.l.google.com.<br />
Mibus.Org.		3600	IN	MX	20 alt2.aspmx.l.google.com.<br />
Mibus.Org.		3600	IN	MX	20 alt1.aspmx.l.google.com.</p>
<p>;; AUTHORITY SECTION:<br />
Mibus.Org.		3600	IN	NS	ns43.domaincontrol.com.<br />
Mibus.Org.		3600	IN	NS	ns44.domaincontrol.com.</p>
<p>;; Query time: 86 msec<br />
;; SERVER: 216.69.185.22#53(216.69.185.22)<br />
;; WHEN: Fri Feb 24 08:47:52 2012<br />
;; MSG SIZE  rcvd: 155<br />
</code></p>
<p>...and now, all DNS queries come back with this "proper case" version.</p>
<p>It's my humble opinion as a DNS administrator elsewhere, that they're running some sort of fancy reverse-caching DNS server in front of their "real" DNS servers; one that fakes the "AA" flag on responses, doesn't drop the TTL, and is cleared by their software on updates.</p>
<p>Oh, and one that preserves the case of the first query it sees in its cache, and keeps it around.</p>
<p>Why is this important? Well, for starters it's <i>just stupid</i>. For seconds, people are starting to use bit 0x20 (ie., the "shift" bit) for <a href="http://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00">adding extra entropy in to DNS queries</a>. GoDaddy's DNS servers go well beyond breaking it and in to the territory of royally messing it up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mibus.org/2012/02/24/godaddy-mixed-case-dns-wtfery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desktop SCRAM</title>
		<link>http://www.mibus.org/2012/02/22/desktop-scram/</link>
		<comments>http://www.mibus.org/2012/02/22/desktop-scram/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 05:49:05 +0000</pubDate>
		<dc:creator>mibus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.mibus.org/?p=1473</guid>
		<description><![CDATA[So the problem goes like this: A coworker asks if I want to join them for a coffee. (This happens multiple times per day, FWIW). I say "Yes!" and jump up... ...then sit back down to lock my computer screen, and hop back up... ...only to realise I've left my music playing - so I [...]]]></description>
			<content:encoded><![CDATA[<p>So the problem goes like this:</p>
<p>
<ul>
<li>A coworker asks if I want to join them for a coffee. (This happens multiple times per day, FWIW). I say "Yes!" and jump up...</li>
<li>...then sit back down to lock my computer screen, and hop back up...</li>
<li>...only to realise I've left my music playing - so I sit down, unlock my screen, pause my music, and re-lock my screen...</li>
<li>...at which point, my coworkers have already long since disappeared.</li>
</ul>
<p><a href="http://www.mibus.org/wp-uploads/2012/02/button.jpg"><img align="center" src="http://www.mibus.org/wp-uploads/2012/02/button-300x225.jpg" width="300" height="225"></a></p>
<p>My solution? A Desktop SCRAM button, where I can just go <i>whack</i> and walk away with impunity.</p>
<p>It's made up of a USB-serial cable, and a ~$10 button. The button's two contacts are wired to the DSR and Ground lines respectively.</p>
<p>The code is available (GPLv3) at: <a href="http://github.com/mibus/DesktopScram/">http://github.com/mibus/DesktopScram/</a></p>
<p><a href="http://www.mibus.org/wp-uploads/2012/02/button-action-shot.jpg"><img align="center" src="http://www.mibus.org/wp-uploads/2012/02/button-action-shot-225x300.jpg" width="225" height="300"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mibus.org/2012/02/22/desktop-scram/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino &#8211; neat stuff, &#8220;Raining&#8221; demo</title>
		<link>http://www.mibus.org/2012/02/21/arduino-neat-stuff-raining-demo/</link>
		<comments>http://www.mibus.org/2012/02/21/arduino-neat-stuff-raining-demo/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 01:06:30 +0000</pubDate>
		<dc:creator>mibus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[electronics]]></category>

		<guid isPermaLink="false">http://www.mibus.org/?p=1467</guid>
		<description><![CDATA[At LCA2012, I spent some time learning about the poster child of the Open Hardware world, Arduino. I bought the Pebble v2 demo kit and attended the "Arduino miniconf", and the "bag schwag" included the Freetronics LeoStick. Here's a demo video I made of a Raining display on the LCD. It uses the Pebble v2's [...]]]></description>
			<content:encoded><![CDATA[<p>At LCA2012, I spent some time learning about the poster child of the Open Hardware world, Arduino.</p>
<p>I bought the <a href="http://www.freetronics.com/pages/pebble-v2">Pebble v2</a> demo kit and attended the "Arduino miniconf", and the "bag schwag" included the <a href="http://www.freetronics.com/products/leostick">Freetronics LeoStick</a>.</p>
<p>Here's a demo video I made of a Raining display on the LCD.</p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/C8twFFL32Zs" frameborder="0" allowfullscreen></iframe></p>
<p>It uses the Pebble v2's 20x4 LCD display and custom characters to display a "rain" effect (the LCD needs to be mounted sideways, as shown in the video). It could readily be extended to have different levels of rain based on CPU load or net traffic, or some other monitorable metric.</p>
<p><a href="https://github.com/mibus/MibusArduino">The code is available for download, along with a lot of other mini-projects I've hacked up in the last month.</a></p>
<p>I have a new hobby!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mibus.org/2012/02/21/arduino-neat-stuff-raining-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux.Conf.Au &#8211; IPv6 &amp; automatic reverse DNS mappings</title>
		<link>http://www.mibus.org/2012/01/17/linux-conf-au-ipv6-automatic-reverse-dns-mappings/</link>
		<comments>http://www.mibus.org/2012/01/17/linux-conf-au-ipv6-automatic-reverse-dns-mappings/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 04:20:39 +0000</pubDate>
		<dc:creator>mibus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[lca2012]]></category>
		<category><![CDATA[pymds]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.mibus.org/?p=1462</guid>
		<description><![CDATA[Today is the day for my IPv6/Automatic reverse DNS mappings presentation at LCA2012. Get the custom pymds fork here; it'll be merged upstream shortly-ish.]]></description>
			<content:encoded><![CDATA[<p>Today is the day for my IPv6/Automatic reverse DNS mappings presentation at LCA2012.</p>
<p>Get the <a href="http://users.on.net/~rmibus/pymds/">custom pymds fork</a> here; it'll be merged upstream shortly-ish.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mibus.org/2012/01/17/linux-conf-au-ipv6-automatic-reverse-dns-mappings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Java 6 &amp; Ubuntu</title>
		<link>http://www.mibus.org/2011/12/31/oracle-java-6-ubuntu/</link>
		<comments>http://www.mibus.org/2011/12/31/oracle-java-6-ubuntu/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 02:31:08 +0000</pubDate>
		<dc:creator>mibus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.mibus.org/?p=1449</guid>
		<description><![CDATA[This is semi-draft, as I haven't gotten around to testing the packages I build... Caught out needing new "Sun" Java packages for Ubuntu, by the DLJ revocation? Grab a usable set of build source packages from http://archive.canonical.com/ubuntu/pool/partner/s/sun-java6/ - you'll need an *.orig.tar.gz, a *.dsc, and a *.debian.tar.gz file for the version you've picked. I used [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is semi-draft, as I haven't gotten around to testing the packages I build...</em></p>
<p>Caught out needing new "Sun" Java packages for Ubuntu, by the DLJ revocation?</p>
<p>Grab a usable set of build source packages from <em>http://archive.canonical.com/ubuntu/pool/partner/s/sun-java6/</em> - you'll need an <em>*.orig.tar.gz</em>, a <em>*.dsc</em>, and a <em>*.debian.tar.gz</em> file for the version you've picked. I used a 6.26 version from Natty.</p>
<p>Grab a latest (currently 6u30) "bin" Linux packages for each architecture from http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html (Note: needs Javascript!).</p>
<p><code>dpkg-source -x *.dsc<br />
cd sun-java6-6.26/<br />
rm *bin<br />
mv ~/Downloads/jdk-6u30-linux-i586.bin jdk-6u30-dlj-linux-i586.bin<br />
mv ~/Downloads/jdk-6u30-linux-x64.bin jdk-6u30-dlj-linux-amd64.bin<br />
</code></p>
<p>Edit debian/rules, comment out the section following the comment '<em>check if the sources are the "same"</em>'.<br />
<code><br />
dch -v 6.30<br />
</code><br />
(add in a stub changelog entry - this is just so it realises what version it's building)</p>
<p><code><br />
cd ../sun-java6-6.30<br />
dpkg-buildpackage -b -uc<br />
</code></p>
<p>Then you should be left with workable packages matching the last Ubuntu-released ones, but with a newer JRE/JDK.</p>
<p><b>Note #1:</b> I haven't so much as installed these packages, it's just theory. It built, it ships - I mean, hey, it's New Year's Eve! ;-)<br />
<b>Note #2:</b> This won't include a working web plugin - I pulled the build packages from after 6.26-1natty1, which was the last release with a working web plugin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mibus.org/2011/12/31/oracle-java-6-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux.Conf.Au &#8211; +1!</title>
		<link>http://www.mibus.org/2011/09/09/linux-conf-au-1/</link>
		<comments>http://www.mibus.org/2011/09/09/linux-conf-au-1/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 02:40:23 +0000</pubDate>
		<dc:creator>mibus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.mibus.org/?p=1441</guid>
		<description><![CDATA[Just got this email...: We're pleased to announce that your proposal(s) has/have been ACCEPTED for LCA2012. &#60;SNIP&#62; --- IPv6 Dynamic Reverse Mapping - the magic, misery and mayhem --- So - wow! I'll see you there :)]]></description>
			<content:encoded><![CDATA[<p>Just got this email...:</p>
<pre>We're pleased to announce that your proposal(s) has/have been ACCEPTED for LCA2012.

&lt;SNIP&gt;

---
 IPv6 Dynamic Reverse Mapping - the magic, misery and mayhem
---
</pre>
<p>So - wow! I'll see you there :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mibus.org/2011/09/09/linux-conf-au-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How not to screw up DNS</title>
		<link>http://www.mibus.org/2011/01/04/how-not-to-screw-up-dns/</link>
		<comments>http://www.mibus.org/2011/01/04/how-not-to-screw-up-dns/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 10:46:09 +0000</pubDate>
		<dc:creator>mibus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.mibus.org/?p=1420</guid>
		<description><![CDATA[DNS is a wonderful distributed system, with plenty of safeguards and fallbacks to ensure continuous operation. But still, screwups happen. Here's some tips on what to do to try to ensure you aren't caught out in the cold. Tip 1: Have multiple servers. Without a doubt, this is the biggest tip about DNS. Designed in [...]]]></description>
			<content:encoded><![CDATA[<p>DNS is a wonderful distributed system, with plenty of safeguards and fallbacks to ensure continuous operation.</p>
<p>But still, screwups happen. Here's some tips on what to do to try to ensure you aren't caught out in the cold.</p>
<p><b>Tip 1:</b> Have multiple servers.</p>
<p>Without a doubt, this is the biggest tip about DNS. Designed in from the beginning was an assumption that you'd have multiple nameservers for a given zone. So... have them!</p>
<p>Put them as far apart as you reasonably can - different hosts, different networks, different power. The more they share, the more risk you're in.</p>
<p><i>Countertip: Hosting your DNS server only over your ADSL link.</i></p>
<p><b>Tip 2:</b> Do backups.</p>
<p>Pretty standard sysadmin fare. RAID isn't a backup, and neither is a slaved nameserver.</p>
<p><b>Tip 3:</b> Nameservers must all agree.</p>
<p>You know how kids will sometimes ask their parents the same question independently, hoping for a different answer? It's important that the parents always give the same answer, and it's downright vital that your nameservers do too. Don't let them get out of sync!</p>
<p>Typically, zone transfers fix all your woes here, but do make sure they're working.</p>
<p><b>Tip 4:</b> Test your changes directly against all nameservers.</p>
<p>It's just a small change, right? What could go wrong? Lots! So test each server individually. If one doesn't update, maybe you have a problem that you need to fix. (Or maybe it's just a bit laggy - it happens). "dig" is your friend.</p>
<p><i>Countertip: Not realising until too late that you're breaking Tip 3</i></p>
<p><b>Tip 5:</b> Make your NS records match your glue.</p>
<p>If you've told your domain registrar that your nameservers are ns1.example.org and ns2.example.org, then make sure you put that in your zone file too - all sorts of wacky caching issues can ensue when you don't.</p>
<p><b>Tip 6:</b> If you use a CNAME record, don't use anything else.</p>
<p>CNAMEs are a really convenient way of saying "www.example.org is really webserver.example.org". You can't then say "But www has an MX of foo.example.org" or "www is also a subdomain with nameservers at ...".</p>
<p>That'd be contradictory, because you've already said with the CNAME that it's really webserver.example.org. It can't be both, if it's both then it's actually something different altogether and needs its own records.</p>
<p>Relatedly, don't point a CNAME at anything other than a plain hostname - Don't try to CNAME www.example.org to example.org, it'll just break stuff.</p>
<p><b>Tip 7:</b> Don't firewall out DNS queries to your nameserver.</p>
<p>No, really. The whole internet needs to be able to look up domain names, not just some of it, not just most of it. (You're excused if it's a private nameserver, of course!).</p>
<p><i>Counterpoint: Using bogon filters on nameservers and ignoring genuine queries.</i></p>
<p><b>Bonus Tip:</b> Monitor your servers.</p>
<p>If you're running DNS servers in production, monitor them so you know that you haven't lost one. Once it's all set up right, you really can lose one without noticing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mibus.org/2011/01/04/how-not-to-screw-up-dns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recording Accurate CDRs</title>
		<link>http://www.mibus.org/2010/09/27/recording-accurate-cdrs/</link>
		<comments>http://www.mibus.org/2010/09/27/recording-accurate-cdrs/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 23:30:22 +0000</pubDate>
		<dc:creator>mibus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://www.mibus.org/?p=1416</guid>
		<description><![CDATA[If you're serious about your call data records - because you're billing customers, or because you want to automatically reconcile calls against your invoice - then they'd better be accurate. An easy win here is to normalise the numbers you call. In South Australia, a number listed as "(08) 5550 1234" can be dialled as [...]]]></description>
			<content:encoded><![CDATA[<p>If you're serious about your call data records - because you're billing customers, or because you want to automatically reconcile calls against your invoice - then they'd better be accurate.</p>
<p>An easy win here is to normalise the numbers you call. In South Australia, a number listed as "(08) 5550 1234" can be dialled as either 0855501234 or 55501234 - the "08" prefix is optional, since it merely clarifies the area code.</p>
<p>Since you don't want to have to reconcile against both forms (that just <a href="http://www.mibus.org/2010/03/15/asterisk-database-driven-callerid/">makes things messy</a>), let's clean it up so it always appears with the leading '08':</p>
<p><code>;; Handle 08XXXXXXXX calls by default, as this is our "native" area code here in SA.<br />
exten =&gt; _XXXXXXXX,1,Goto(08${EXTEN},1)<br />
</code></p>
<p>Easily done.</p>
<p>Another common issue is to 'answer' an outbound call (either explictly with <code>Answer()</code> or implicitly with something like <code>Playback()</code>) before actually dialling. Answering the call too early means your <code>billsec</code> - which you're potentially basing your customer billing on - is higher than it should be!</p>
<p>If you want to play a message back to the caller before the call itself is made, use <code>Progress()</code> to indicate that you're doing it as the call progresses, and that the call isn't actually connected yet.</p>
<p>A final example is much less common - when dialling one number actually calls another; you have several options available with different tradeoffs. For this example, pretend that the PSTN-looking number 0855501234 should actually be delivered to the VoIP-looking number 0870101234. (Maybe it's a cheaper internal-use-only equivalent number, and people forget to use it?)</p>
<p>This example will have your CDR showing the original number (the PSTN number that was dialled, rather than the number that was actually called). It assumes your upstream SIP provider is named <code>vsp1</code></p>
<p><code><br />
exten => 0855501234,1,Dial(SIP/0870101234@vsp1)<br />
</code></p>
<p>This example will have your CDR showing the number that was really called, not the number dialled:</p>
<p><code><br />
exten => 0855501234,1,Goto(0870101234,1)<br />
</code></p>
<p>The following will have a mix of the two - a CDR for 0870101234 for the ringing, and a CDR for 0855501234 covering the ringing and the billable call. This assumes <code>regular_outbound</code> is your context for outbound calls.<br />
<code><br />
exten => 0855501234,n,Dial(LOCAL/0870101234@regular_outbound)<br />
</code></p>
<p>So, that's a few easy ways to make sure that your CDRs are actually worth the bits they're saved with. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mibus.org/2010/09/27/recording-accurate-cdrs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asterisk &#8211; Using CallerID to make decisions</title>
		<link>http://www.mibus.org/2010/08/16/asterisk-using-callerid-to-make-decisions/</link>
		<comments>http://www.mibus.org/2010/08/16/asterisk-using-callerid-to-make-decisions/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 23:30:42 +0000</pubDate>
		<dc:creator>mibus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://www.mibus.org/?p=1285</guid>
		<description><![CDATA[CallerID information is carried along quite readily within the SIP protocol; most SIP providers pass that along to their customers for free. Other than just showing it as "This is the number the call is coming from", can we do something more useful? Absolutely! As an example, imagine the contexts incoming (where calls go to [...]]]></description>
			<content:encoded><![CDATA[<p>CallerID information is carried along quite readily within the SIP protocol; most SIP providers pass that along to their customers for free. Other than just showing it as "This is the number the call is coming from", can we do something more useful?</p>
<p>Absolutely!</p>
<p>As an example, imagine the contexts <code>incoming</code> (where calls go to when they come in to Asterisk from a SIP provider) and <code>outgoing</code> (which allows outbound calls from internal phones). There's also an <code>internal</code> context to allow calls between internal phones.</p>
<pre>
[internal]
exten => s,1,WaitForExten

;Internal extensions
exten => 1000,1,Dial(SIP/alice)
exten => 1001,1,Dial(SIP/bob)
exten => 1002,1,Dial(SIP/charlie)
exten => 1003,1,Dial(SIP/jack)

[outgoing]
include => internal
;External calls
exten => _XX.,1,Dial(SIP/${EXTEN}@voipprovider)

[incoming]
; Incoming calls go to Alice, our receptionist
exten => s,1,Dial(SIP/alice)
</pre>
<p>Let's add in an override for when an employee rings in from their mobile phone - instead of having to talk to Alice, they get put back into the <code>internal</code> context, so they get to directly dial an extension.</p>
<p>Within the <code>incoming</code> context, add:</p>
<pre>
exten => s/0491570156,1,Playback(please-enter-the)
exten => s/0491570156,n,Playback(number)
exten => s/0491570156,n,Goto(internal)
</pre>
<p>We can make it a bit better yet. Let's allow another employee's mobile phone in, and let's share the config by moving them to a different context. We can also reuse parts of the dialplan in the new context by only using the CallerID information to override the first part of the sequence.</p>
<pre>
[incoming]
exten => s/0491570156,1,Goto(employeemobiles)
exten => s/0491570157,1,Goto(employeemobiles)
exten => s/0491570158,1,Goto(employeemobiles)
[employeemobiles]
exten => s/0491570156,1,Set(CDR(accountcode)=alice)
exten => s/0491570157,1,Set(CDR(accountcode)=bob)
exten => s/0491570158,1,Set(CDR(accountcode)=charlie)
exten => s,2,Background(please-enter-the)
exten => s,3,Background(number)
exten => s,4,WaitForExten
include => internal
</pre>
<p>Note the <code>accountcode</code> being set - this way, you can readily choose to allow outgoing calls from your PABX for remote employees - and it all gets tracked separately (per employee) in your call data records.</p>
<p>You can also just as easily use <code>include =&gt; outgoing</code> so that calls in from the mobiles can make calls back out to any other number (eg. if you have great international rates from your PABX, or free calls to certain numbers).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mibus.org/2010/08/16/asterisk-using-callerid-to-make-decisions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.424 seconds -->

