In Part 1 of this article, I went over how to purchase a DID number with VoIP.MS. In this part of the article, we’ll be setting up a SIP client on an Android phone.
Setting up a SIP client is pretty straight-forward, but tweaking it to run smoothly may require a little bit of homework on your part. Before you do anything, I recommend familiarizing yourself with SIP, as well as the different codecs used. Once your head hurts from information overload, login to the VoIP.MS portal and head to Main Menu–>Account Settings–>Advanced. Check what codecs you’re supporting (I recommend G.711 or G.729), as you’ll need to make sure your SIP client uses one of these codecs.
VoIP.MS provides instructions on how to setup many different client applications know as softphones. These include the native Android dialer, as well as third-party applications. Remember, since SIP is a protocol, any client that is compliant with SIP will work as well. Two of the more popular apps are CSipSimple (source) and Linphone (source), which are both open source. While the native Android dialer offers seamless integration into Android, it doesn’t offer the level of customization that CSipSimple or Linphone do. For this tutorial, I’m going to be using CSipSimple.
Once you have the app installed, launch it and click Add account. Expand World wide providers, then select VoIP.MS from the wizard.
Fill in the fields and click Save when you are completed.
- Account name, which is something to identify the account (e.g., VoIP.MS)
- User, which is your VoIP.MS SIP username (e.g., 123456)
- Password, which is your account password
- Server, which is the server you chose with the lowest latency (e.g., washington.voip.ms)
If you’re successful, you’ll see that your SIP is registered. This basically means that up until this point, if someone dialed your VoIP number, the call wouldn’t be routed anywhere, since you didn’t have a client setup. Now that you’re registered, the call will actually route somewhere.
You can also check your registration status by logging into the VoIP.MS portal, then heading to Main Menu–>Portal Home–>Get Registration status.
Technically, you could make a call now and it should go through. However, I recommend changing a few settings first to optimize quality. Go to the Action Bar, and select Settings.
Select Easy configuration, and choose the appropriate options for you. I recommend selecting Integrate with Android to make the calling process almost seamless. This will give you the option to choose what app to use (native dialer or CSipSimple) when you press on a number in a webpage or in a contact. I’m also going to choose to only use this over WiFi, but that’s just for my particular use case. Change your options as needed. Press Save when you’re ready.
From the menu, Select Media. I recommend checking Echo cancellation, as well as Voice audio detection. Voice audio detection tries to drop packets of silence, saving you bandwidth.
Next, scroll down to the Codecs section. Remember that homework you were supposed to do? This is where the CSipSimple app has Android’s native dialer beat. The native Android dialer only supports a few codecs that the user can’t adjust or prioritize. However, CSipSimple supports many codecs. In fact, the developer has a free codec pack published that adds support for a few popular codecs. The G.729 codec add-in is also available for a one-time price.
From this screen, you can select the codecs you want to use for both high and low bandwidth networks. You may have to play around with this before you find a combination that works well for you. See the table at the bottom of this page for a comparison.
Back at the menu, I didn’t change anything under User Interface or Filters. However, under Call Options, I set a Caller ID, and I made sure to check the box next to Support multiple calls to enable conference calling.
Finally, the moment of truth. From another phone (you’ll need a buddy for this), dial your VoIP number. If successful, you should see the CSipSimple app open up and prompt you to answer the call.
After you’ve tested that, go the the native Android dialer, dial the number that just called you, and you should see the option to use your VoIP.MS service, or your cellular service. Select VoIP.MS and verify the call goes through.
A note on codecs
I’m not an audio engineer, but what I’ve managed to scrape together about the audio codecs supported by VoIP.MS is below.
|G.711U (around 64kbps)||G.729 (around 8kbps)||GSM (around 13kbps)|
|Also known as||
Also, I can’t say enough good things about this site. All sorts of good techie information there. Read up!
All-in-all, I’m very pleased with this setup and VoIP.MS in general. I mainly use my VoIP number when I’m at home, since my cellular coverage is pretty poor. I plan on setting up some advanced routing options, such as IVR, in the future.
If you setup a VoIP.MS number, let me know what you think!