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 →

Leif Madsen @ IT360, April 2009

Here are the 5 parts of my presentation at IT360 in Toronto, ON, Canada in April 2009. The focus of my presentation were to pick 5 features of Asterisk that are either new, or have been in Asterisk for a while, but without much fan-fare. I hope you enjoy! Leif Madsen @ IT360 (April 2009), Unusual Uses: What you didn’t know your Asterisk system could do (parts 1-5)

About the new Asterisk versioning method

Recently I have been seeing more and more questions about how Asterisk is being released now, and what the 1.6.x versions really mean. I’ll try and clear up some of your questions and make it more clear as to how Asterisk versions work. First, lets talk about the Asterisk 1.2 and 1.4 branches. Previous release methodology When we just had Asterisk 1.2 and 1.4, all new development was carried out in trunk (it still is) and only bug fixes went into the 1. Read On →