VoiP Phone Service (trixbox, Asterisk, CallWithUs)
I recently switched from Verizon Wireless to the VoIP service CallWithUs. I realized that I didn’t use my phone enough to justify paying $50/month. CallWithUs costs me $6/month to get a phone number which includes 2000 incoming minutes (33.33 hours) per month. You put money on your account with your credit/debit card or you can use Google Checkout or Paypal. Outgoing calls cost me $0.011/minute or $0.66/hour anywhere, anytime. The nice thing about CallWithUs is that if I put $50 on the account this month and I only make 4 hours of outgoing calls over the next year then I will still have $47.36 in my account. There is no monthly fee unless of course you get a DID number from them which as I stated is $6/month. It is possible to get free DID numbers, but I wanted to make sure that my number was reliable so I went through CallWithUs even though they will support a DID number from anywhere. One thing worth looking into is GrandCentral which was taken over by Google and promises, “One number for life.” I am currently signed up but have not had a response. GrandCentral comes with many great features like call screening, call blocking, call forwarding, etc. Since I don’t have a GrandCentral account yet and I would still like to use all of these features I setup an Asterisk server.
Asterisk is an open source PBX and it lets you do whatever you want with your phone lines. There are many different ways you can install Asterisk. You can install it on your computer or on a router that supports OpenWRT firmware. Initially I set it up on a WRT54GL router but the router didn’t have enough system resources to run all the applications that I needed. The next thing I did was install trixbox which is a package of Asterisk running on CentOS on an old computer (PIII 500MHz, 256MB RAM) that I bought for $20. There are a few other options like AsteriskNOW and Elastix, but I tried trixbox first and it worked. Here is how I setup trixbox to work with CallWithUs.
Step 1 :Â Setup Extensions
Choose the protocol of your device, usually it will be SIP or IAX2. I have an analog phone connected to a Cisco 186 ATA which uses the SIP protocol.
User Extension – 200, I used 3 digit extension codes. Later I setup another extension for a softphone on my computer as 201.
Display Name – cisco1, A name to help remind me that it is line 1 of my Cisco 186 ATA.
Outbound Caller ID – “Tony the Great” <##########>, This is what will be displayed on other people’s caller IDs when making a call from this extension.
Secret – ****, The password used to authenticate the device. Make sure you setup a strong password (12+ characters with symbols).
Voicemail Password – 1234, When you dial *97 it will take you to your voicemail recordings and you should have a PIN set.
Step 2 : Setup Ring Group
Group Description - RingAll
Extension List -Â Enter each extension that you want to ring on a new line.
Ring Time – I have an answering machine that I prefer to pick up the calls so to avoid having it go to voicemail when there is no answer then I need to set this to be longer than the time it takes for my answering machine to pick up.
Destination if no answer – I set this to <200> cisco1 (busy). The reason I did this is because I have voicemail setup through CallWithUs so that if my trixbox computer ever goes down then the CallWithUs voicemail will take over until I can get the box back online. I have a message setup on it that basically says that the system is down and to please leave a message so that I will be notified via email about the problem. There is a problem though because the only time I want to use the CallWithUs voicemail is if the system is down, but if trixbox doesn’t answer on a busy call then the call will still be sent to CallWithUs voicemail and I don’t want them to hear my system down message. This setting will answer the call, tell them the line is busy, and send them to trixbox voicemail. If you have an answering machine and want the same setup just remember that your CallWithUs voicemail must also be set to a longer time than it takes for your answering machine to pick up and this is done under Wait Time in DID destination settings.
Step 3 : Inbound Routes
Set Destination – Choose the RingAll Ring Group.
Step 4 : Trunks
I used the SIP protocol to connect with CallWithUs so I added a SIP trunk.
Dial Rules – 1555+NXXXXXX and 1+NXXNXXXXXX on seperate lines. 555 is your area code. When a number goes to CallWithUs it has to be the full 11 digit number. So if you only dial a 7 digit number then this will prepend the country code and area code before making the call through CallWithUs.
Trunk Name – callwithus
PEER Details - Use the settings found on the CallWithUs configuration page.
User Context – Your CallWithUs username.
User Details – Use the same thing as used in PEER Details.
Step 5 : Outbound Routes
Route Name – sipout
Dial Pattern – I used the following:
NXXXXXX
NXXNXXXXXX
1800NXXXXXX
1888NXXXXXX
1877NXXXXXX
1866NXXXXXX
1NXXNXXXXXX
011.
411
311
911
098
Trunk Sequence - SIP/callwithus
Step 8 : Other Settings
General Settings - Allow Anonymous Inbound SIP Calls = no
If you want to turn on OnDemand Call Monitoring in trixbox then you must set Asterisk Dial command options = trwW in General Settings. You must also edit globals_custom.conf and add DYNAMIC_FEATURES=>automon.
how do you configure asterisk as a SIP client?
I have callwith us and want to use the DID number provided to that calls enter my asterisk and then get routeed.
The following settings for the trunk and the rest of the article is all you need to get asterisk to work with CallWithUs. If you have a DID through a different carrier then you will have to add that to CallWithUs by logging into your account and going to the DID page. For assistance with that contact CallWithUs, they have fast technical support.
Peer Details:
type=friend
host=sip.callwithus.com
username=callwithus-username
secret=callwithus-password
qualify=no
User Context should be callwithus-username
User Details:
type=friend
host=sip.callwithus.com
username=callwithus-username
secret=callwithus-password
context=from-trunk
Register string should be username:password@sip.callwithus.com
These configurations can be found on the CallWithUs configuration page linked in the article.
Wow, great blog. I love reading blogs about Voice over IP! It’s such an exciting technology. I have learned a lot in implementing a small VoIP network at home, and am thinking of starting VoIP business in my area. There are a number of small businesses in my region that would benefit from it greatly. Thanks again for this blog – it is really great.