Back when I was a bit newer with Asterisk, I was setting up a rather large office and had a number of issues getting things going. To make a long story short, I learned that Asterisk is a terrible SIP router. Many of you probably already know this – if you have an Asterisk server that only hands off calls to other servers based on dialplan rules, you will eventually choke the server as if it was processing all the calls itself since it won’t route the SIP traffic without also processing the audio stream, which is taxing even when it’s just passthru. How I wish for an option in SIP.CONF like “siprouter=yes” where you can use it as a SIP router. This would save a lot of time – there is already code for dealing with a database, extensions.conf is creating in a language I know, and I would only be dealing with one piece of software. How nice. Anyone want to set that up for me?
More fancy queues
As mentioned in my previous post about queueing, I wanted to add some code that automatically adds an extension into the queue database table the first time they log in. I finally got around to adding the three lines in extensions.conf as well as creating the extra func_odbc.conf entries. Total time for the addition was only a few minutes.
Fancy Queues
I always wonder if I’m missing some basic features of Asterisk that would allow me to do things in an easier way, but often I find it difficult or impossible to find good solutions online, meaning I end up creating my own solutions.
My office has a rather convoluted queue setup that was initially configured on a Cisco CallManager system. I had to find a smooth way of replicating this on Asterisk. The basic setup is we have about 12 different queues. Users need a simple way to login/logout of a queue (only one at a time). That is the easy part. The extra catch is each phone can be reached directly from the outside, and if they don’t answer the call should roll into their queue, as extensions do not have their own voicemail. We frequently have new hires and people moved to different groups, so this saves me a lot of trouble with manual queue changes for each phone.
Asterisk upgrade pains
We recently updated one of our sites to the newest 1.4 Asterisk release (1.4.29 as of the time of the upgrade). So far things have been working fairly well. We had a convoluted queues.conf setup in the past with all of the queue members (incorrectly) entered in that file. Calls would ring to the correct phones, but there was no way for an unused phone to be logged out. It also made management cumbersome. With the new upgrade, calls would still route the same but users could not answer the call. If they picked up the call they ended up with a “dead air” connection to nothing while on the caller side it continued acting like nobody picked up, and eventually the call would timeout and go to voicemail. Very strange. We switched to having an easier to manage dynamic setup where phones can log in and out to different call queues and I added some fancy (I think) features that I’ll outline in my next post, which handles our specific call routing needs.
Aside from that, we seem to be having mystery problems of voicemails suddenly not always saving. Debugging is now activated and I hope I can track down the problem quickly.
Mystery T1 issues
As usual, a substantial amount of my work time is being taken up with Asterisk programming and issues. There was a T1 attached to one of the servers that had a channel a bit out of whack. Any call coming into the 5th channel would ring in and “hang”. From the calling side, it was dead silence. From the servers point of view, a call came in without DNIS or CID. It tried to play the “ss-noservice” message, but the audio would not be heard. The carried claimed it was an “equipment issue” on our side (that restarts never solved), but after some testing (and a reset by Qwest), the problem suspiciously disappeared and has not returned. Now, back to creating more custom IVR menus.

