I've had my Asterisk PBX offline for a while now for no good reason, so I decided I'd upgrade and put the latest Asterisk on my new machine. I wrote about the last time I installed, that was on an older AMD Athlon 1200MHz Thunderbird. It worked fine but I got a Linksys PAP2T-NA ATA and became very lazy. The ATA just registers with Les.net and I plug a phone in to it, so there's no need for Asterisk for just basic VOIP phone service.
I decided that I'd just use the ATA for a while then I got into some sound quality problems. I switched out many parts of the system trying to determine where the problem was but the best lead that I have so far is that my modem has issues. I'm not sure that the entire problem is with the modem but I do know that my Internet connection overall gets faster if I reboot it and that shouldn't be necessary.
Anyhow, voice quality issues apparently are common with VOIP and more people are using it anyway - the balance of features and cost is still in favour of VOIP. So I figure that if I get used to my system I can work the kinks out of it later. As time goes on and there are more users it should be easier to find help on my specifics too.
Today I want to revisit some of the work I did getting Asterisk 1.2 working and see what I have to do to get Asterisk 1.4 running. It's apparently not that different.
I've been using a Lynksys PAP2T-NA ATA off and on for at least a few months now. I get my VoIP service from Les.net and I'm pretty happy with it. Les has been making some improvements even over the short time I've been using the service and just today the servers started checking for some common device configuration problems on the customer side that cause network issues. Well, I was an offender. My problem was that the PAP2 was set up to send NAT Keep Alive messages every 15 seconds. I'm pretty sure this was the default setting out of the box, but apparently it's overkill. The recommendation was to set the time up to between 60 seconds and 120 seconds. I don't think it was a major issue and it was easy for me to fix, so I thought I'd write down all the details of it.
[default]
77 => 71284,Rob's Mailbox,rob@example.com
63 => 71284,Alex' Mailbox,alex@example.com
71 => 71284,Candace's Mailbox,candace@example.com
72 => 71284,Jeff's Mailbox,jeff@example.com
I've started them all off with the same password but apparently the voicemail module can rewrite voicemail.conf to change passwords. The email addresses don't do anything here yet. Apparently there's a simple configuartion change you can make to enable email notifications or even enable sending the entire voicemail over email but I have yet to try that out.
Here's the entirety of my meetme.conf file.
;
; Configuration file for MeetMe simple conference rooms for Asterisk of course.
;
; This configuration file is read every time you call app meetme()
[general]
;audiobuffers=32
[rooms]
;
; Usage is conf => confno[,pin][,adminpin]
conf => 101
Remember that in order MeetMe to work, you need a timer source, either a hardware solution or the ztdummy software timer module. I think this set up for MeetMe could be useful for people with a scheduled conference call but could also be useful to connect with over a softphone. Then people could hang out in the conference room and possibly use it as a substitute for Ventrillo or TeamSpeak.
My sip.conf file is pretty much the standard sample sip.conf for now as well. The one change I made is the one that Les.net tells you to make in their sample code for peering with Asterisk. It looks something like this
[general]
... some stuff ...
register => <some code>:@did.voip.les.net/<special code>
... some stuff ...
[lesnet_peer]
type=friend
host=did.voip.les.net
dtmfmode=rfc2833
insecure=very
disallow=all
allow=ulaw
context=lesnet-incoming ; incoming DID calls will arrive in the lesnet-incoming context
Of course this is censored but you get the idea - if you use Les.net then you can look up the exact code for your [general] context and if you don't use Les.net then it's going to be specific to your service provider. This does tie back in to a section in my extensions.conf from yesterday though. The context=lesnet-incoming line brings incoming SIP calls from the DID to the [lesnet-incoming] context in my extensions.conf. From there I send the calls to [incoming] with a Goto() like this.
[lesnet-incoming]
exten => _X.,1,Answer
exten => _X.,n,Goto(incoming,s,1)
I didn't mention it yesterday because it ties back to sip.conf. This kind of separation lets me have a different context to answer calls from each different source. Once anything unique to that source is taken care of, I can route the call in to the [incoming] context so that everything is handled the same after that point.
I think I've had enough messing with Asterisk for a little while. Though my I finally got my dialplan configured to some satisfaction. I'm not so sure I want it to work the way I described any more, but I've built pretty much what I said I would. I'll explain here how to do what I did and walk through all the configuration that I did for Asterisk. Remember though that I'm a beginner at this stuff and this is my first dialplan. There could be massive holes in it that I don't know about yet (if you see one, do let me know :) ). The examples that I'll go through give away details of my internal menus, but I'll be changing the structure for my own use (as far as extension numbers & whatnot) so don't expect to just call up & start calling long distance on my dime :P.
I started from the sample extensions.conf to try things out. First I added the features I wanted then I deleted pretty much everything but those new parts I had added. The biggest piece that I kept was most of the standard extension macro. The term 'extension' is overextended. The standard extension macro acts like an extension that you'd typically think of when you think of a phone extension. It calls a user and routes to voicemail if the user is on the phone, busy or otherwise unavailable. I'll go through the interesing parts of my exensions.conf then include a link to the entire file down below.