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.
More homework
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.
Client setup
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.
SIP settings
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.
Back at the menu, select Network. I didn’t change anything under here, but if you’re having issues where the other party can’t hear you, you may want to enable ICE or STUN here. If not, go back.
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.
Test call
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) | |
---|---|---|---|
Pro |
|
|
|
Con |
|
|
|
Also known as |
|
|
*Sources: here, here, here, here, here, here, here, here, here, here, here, here, and here
Also, I can’t say enough good things about this site. All sorts of good techie information there. Read up!
Overall experience
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!
-Logan
Hi,
Thanks for the article. Been w Voip.ms for 4 yrs. Finally got a smart phone so the natural thing to do was to voip it. I got along fine via your article up to the point of whether or not I can get it to ring my voip.ms number rather than my cell number. Did I miss something?
Thanks
Dave
Did you setup CSipSimple on your phone? If so, are you getting the message that your client is “registered”? If it is not registered, I think something is wrong with your settings. If it is registered, can you open the CSipSimple app and dial the echo test at 4443?
4443 works though I hear nothing.
4747 also works but hear nothing.
The problem I am wondering about is when someone calls my voip number my desk phone rings as normal but the cell phone does not. Thought it would.
Ohhh I see. You want a ring group? That is something I haven’t setup myself yet.
ahhh, ok. I will study up on that.
Get this. Csip kills my duplex sound. No talking, no hearing.
Uninstall and it works again.
Install and no sound.
Anyone got an idea about this issue?
Hmmm weird. What device are you using? Did you try this? Maybe try a nightly version?
Running out of space here. Tell what to do with that nightly version. Which folder to go to and download.
Thanks
Tried both suggestions. No joy.
Tried the Audio Test. I really have to scream to get the little bars to budge much.
Master volume is at full setting.
Forgot. PHone is a new Boost Mobile > Sharp Aquos Chrystal.
Another clue. The numerical pad on the built in phone is way louder than Csip. The Csip is airplane quiet.
Sorry Dave, sounds like it may be a bug with your hardware. Try submitting an issue to the developer, here.
I’ve had success using voip.ms on my deskyop, ipod, ipad. I use Bria on iOS and have had no troubles. I just got a LG Gpad 7 and installed CSipSimple. I can call out but when people call they get a message that I am unavailable and it goes to voicemail. Any ideas how to fix this?
Also there is a voip.ms specific SMS app called VOIP.ms SMS. It works great if you don’t mind you messages going through the Dev’s server.
I figured it out. Turns out the subaccount wasn’t being routed to in the ring group.
Glad you figured it out! And is this what you were referring to? I’ve never heard of it until now, thanks for sharing!
I’ve been live for 4 or 5 days on a personal phone. (Honor 8). Excluded the client from power saving. Found that csipclient occasionally deregistered so my phone won’t receive calls. Have you found that the default keep alive times were adequate? Also, when it’s deregistered the call just drops when I’ve set it to failover to voicemail. Ideas?
Michael,
Unfortunately, I don’t use VoIP.MS or CSipSimple anymore, so I won’t be much help you to. However, when I did use it, I never had any issues with it deregistering. I would talk to the support at VoIP.MS and see if they have any logs as to why it’s doing that.