Tuesday, December 1, 2009

Love and Hate with Asterisk

For a year or two I have been running an Asterisk server. It has been wonderful. Recently, I wanted to add the new Skype functionality to Asterisk, so it required that I move from an old Apple X Serve to an x86 based machine. In the process, I figured I would upgrade from Asterisk 1.4, to 1.6. It should be simple, right?


Umm.. Yeah... Something like that. My configuration consists of a Sipura/Linksys/Cisco SPA-3102, the Asterisk server, and a collection of random VoIP phones around the house. By just moving the configurations from the old server to the new one, I was able to get the VoIP phones to talk to each other, along with being able to make outbound PSTN calls. This left me with three major headaches for the migration.

1. Calls from VoIP phones to the analog port on the SPA failed.
2. Inbound calls from PSTN->Asterisk weren't routed to the phones.
3. My custom AEL scripts to stop annoying people were broken.


Fixing #1 was pretty easy. The failure was coming from the fact that I had some events in the extension that couldn't be executed, so Asterisk would stop working through the list. (Or, in a nutshell, #3 was the cause of #1.) By changing the events back to a basic "ring the phone" list, this problem was solved.

#2 was a real pain. The solution was ultimately stupid/annoying. (Isn't it always!?) In the sip.conf file, I had "insecure=very" set in the [spa3k-pstn] configuration. It would seem this doesn't mean the same thing in 1.6 that it did in 1.4. Changing the line to "insecure=invite" resolved that problem, and allowed inbound calls to work once again.

#3 is an adventure I have not yet undertaken. Stay tuned...