HowTo: Getting Jabber/XMPP notifications from your PBX

I just have to write up a quick post to show you JUST HOW SIMPLE it is to get interesting events from your PBX via Jabber. Right now I’m using it to notify me of anyone trying out my test ISN number, or whenever they join my conference bridge (good reminder if I lose track of time and forget that I scheduled some people to join my conference room). Read On →

Telemarketer Torture

A funny thing happened today. Fred Posner posted an article about telemarketer torture (here). He has some examples that his script created. It was funny because today I worked on almost the exact same thing. My implementation was a bit different, but I really like the approach he took too. We both ended up using the WaitForSilence() application. Mine should be available via ISN 666*460 if you wanna try it out. Read On →

HowTo: Read a value from a file, and say it back

Preamble Today on the VoIP Users Conference we discussed my request for recipe ideas in order to start developing some additional documentation. Specifically, I’m looking for problems that are simple, common problems that can be solved in the dialplan, and which are good examples of the dialplan language (markup, script, yadda yadda). One of the suggestions was something posted to the Asterisk mailing list which was pretty straight forward: to read in the contents of a file, where the file contained a number which was the current temperature. Read On →

Migrating from AgentCallbackLogin() to Standard Dialplan Methods (part 1)

The purpose of this article is to ease the migration from AgentCallbackLogin() to using standard dialplan applications to solve the problem of calling back queue members (agents) who are logged into a queue. We will look at some of the common uses of AgentCallbackLogin(), and explore how to perform the same functionality using the commonly available dialplan applications in Asterisk. The version of Asterisk used in the following examples is based on a recent version of Asterisk 1. Read On →

HowTo: Page() all users, other than current channel

I was asked on IRC by bhodder how to Page() all users, other than the current channel (i.e. he had a list of people to call, but one of the channels listed could be the person paging, and he didn’t want them paged). So I wrote up the following little dialplan script which takes the list of users, and compares it against the current channel, and simply rebuilds the list without the current channel in it prior to calling the Page() application. Read On →

Back from Vacation!

Just a quick note letting you know I’m back from vacation! Just been working on catching up on a few things, and have started working on a new article. It will be focusing on how to convert from using AgentCallbackLogin() to using the AddQueueMember() method of dynamically adding members to queues. Since AgentCallbackLogin() has been removed from Asterisk 1.6.0 and beyond, you’ll need to use the AddQueueMember() method. Luckily, all the tools we need to use it on Asterisk 1. Read On →


Well it’s finally happened; I’m going on vacation! I will be out of the office from July 3rd through the 12th. I will be working on those articles I promised last week once I return. Unfortunately I had some big projects I had to get completed before I left, which ended up leaving zero time for writing. Hopefully once I return though everything won’t be backed up so much that I have to wait another week to write something. Read On →

Manually mixing files created by MixMonitor()

So last night I did a system update between 11:30pm and 5:00am. One of the things I forgot to do when I was moving to the new system was to install sox so that MixMonitor() could mix the -in and -out files automatically for me. I still had the recordings, but I needed to get them mixed. I first installed sox so that all new recorded files would be mixed for me. Read On →

New website!

So I finally got around to converting my very old, very outdated, and very difficult to update website to Drupal from standard HTML. You can check it out at – I’ll probably be adding some additional content over the coming weeks, but for now, it’s basically just a straight up conversion from the old site with the existing information.

New articles coming soon!

I have vowed to try and write at least ONE article per week on my blog, even if it is quite short. I’m not sure I will be able to get to write an article this week due to some pressing consulting issues, but I’m still gonna try. If anything, I’m going to cheat and say this is my post for this week. How about I make a rule that says I can only cheat once per month? Read On →