secret society of super sydney sysadmins

mibus.org

last update:

Just got this email…: We're pleased to announce that your proposal(s) has/have been ACCEPTED for LCA2012. <SNIP> --- IPv6 Dynamic Reverse Mapping - the magic, misery and mayhem --- So – wow! I’ll see you there :)

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 from the beginning was an assumption that you’d have multiple nameservers for a given zone. So… have them!

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 either 0855501234 or 55501234 - the “08” prefix is optional, since it merely clarifies the area code.

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 when they come in to Asterisk from a SIP provider) and outgoing (which allows outbound calls from internal phones).

SAGE-AU Presentation

I did a presentation to the SA chapter of SAGE-AU last night – the first presentation I’ve given in a very long time!

[Download the slides here] [1]

We interrupt your regularly scheduled broadcast of quality sysadmin programming to bring you a brief announcement on using SSH and hacky port forwards to access something via a LAN IP over the Internet. If I have a server at home that can only be accessed via 192.168.1.12 (say) - perhaps because it is a web application that rewrites all internal URLs to always go to that IP - how do I get access?

IPv6 is BORING!

Please note that this is all personal opinion, and is not a reflection on the opinion, or policies, of any employer, past, present, future, or comma-less. What is IPv6? IPv6 is the next step after our current IPv4 addressing scheme – and not a lot more. Instead of the we-thought-it’d-be-ample 2^32ish addresses, we get the it’ll-be-enough-this-time-for-sure 2^128ish addresses. If nothing else, it’ll take us a long time to run out again!

There are so many ways to monitor whether a particular application is working properly or not. For the average website – Is the server pingable? Can you open a socket to port 80? Can you do a GET request and get a “200 OK” response? Some checks are more complicated again – “Does the page ‘/index.php’ include the text ‘Blog’?”. A few even go so far as to simulate multiple page-loads, “clicking” along a path to ensure functionality.

…or at least a little savings. You’re in a quandry. You’ve found VSP1, with brilliant general rates. VSP2 has fantastic rates for mobile calls. VSP3 has the cheapest calls of all to England, where you have family. You can’t use just the best bits of each… can you? With Asterisk, yes you can! The extension configs here assume that you’ve set up your VSP peers already as vsp1, vsp2, and vsp3.

One of the things I like about Asterisk, is its ability to send email notifications to me if certain things happen. There’s no built-in ability to send emails by itself, so we’ll use its integration with the underlying server to do it. Let’s start by sending me an email if someone uses my VoIP line to make an international call. In Australia, all international calls are prefixed with “0011″… [regular_outbound] ; Email me for international calls exten => _0011.,1,System(mail -s "International Call to ${EXTEN}" example@mibus.org &lt; /home/mibus/Documents/international-call.msg) exten => _0011.,n,Dial(SIP/${EXTEN}@nodephone,,) ; Handle other calls out exten => _XX.,1,Dial(SIP/${EXTEN}@nodephone,,) ; Note that the subject is InternationalCall, the destination email address is example@mibus.org, and the body of the email comes from a file I’ve already saved to /home/mibus/Documents/international-call.msg.