HOWTO : Voice over IP (VoIP) on Android (Asterisk Edition)

*** Last updated on August 28, 2010 (GMT +8) ***



UPDATED : CSipSimple just released 0.00-12-24 today (2010-AUG-28). A quick test is conducted and some bugs are fixed. This tutorial will be updated when I fully tested this new version.



Testing report





UPDATED : The current version is 0.00-12-36 as on today (2010-SEP-22). The app is much more stable.



This tutorial is show you how to setup your Android phone to communicate with another IP Phone or Android in no further investment. Meanwhile, this feature does not consume your mobile phone air time but consume the 3G data. If you have an unlimited 3G plan, you will be very happy with that. Make sure you are connected to the internet when using the VoIP. Wifi also works fine.



PART I - Select a SIP provider



The following SIP providers offer free account of SIP service for inbound and outbound. You can select one of them that suit you most. I prefer sip2sip.info. Make sure to register to the SIP provider and write down all the details that they give you for further setting.



sip.tpad.com

sip.12voip.com

sip.smartvoip.com

sip2sip.info

sip.actionvoip.com



For example, your login name (account name) of sip2sip.info is "Android".



PART II - Asterisk configuration



If you have an Asterisk server, you can set it yourself. The settings are similar to the below mentioned. If you do not have one, I suggest you to use PBXes.org (the same provider/developer of SIPDroid) which offers 2,000 minutes monthly free air time for 60 minutes per call. You will have 2 simultaneous calls, 5 trunks and 5 extensions per account.



The following is setting at the website of PBXes.org :



(A) Create a Trunk

"Trunks" -- "Add Trunk"



"Trunk Name" - any name you like, e.g. sip2sip

"username" - the username of sip2sip.info, e.g. 3344567890

"password" - the password of sip2sip.info

"SIP server" - "sip2sip.info"



"Outbound Caller ID" - any name you want to display on phone



(B) Create Outbound route

"Outbound Routing" -- "Add Route"



"Route Name" - any name you like, e.g. sip2sip

"Trunk Sequence" - select the above, such as SIP/sip2sip



Select "Valid for all numbers"



"Extension" - any number, e.g. 100



(C) Create Extension

"Extensions" -- "Add Extension"



"Display Name" - any name you like, e.g. Android



"username" - android-100

"password" - any password

"dial" - "SIP/android-100"



"Outbound CID" - any name you like, e.g. Android



(D) create Ring groups

"Ring Groups" -- "Add Ring Group"



"ring strategy" - ringall or hunt or memoryhunt

"ring time (max 60 sec)" - 60 or less



Select "Hangup"



(E) Create Inbound route

"Inbound Routing" -- "Add Incoming Route"



Regular Hours

Select "Extension" to "Android <100>"



After Hours

Select "Extension" to "Android <100>"



Select "No override (obey the above settings)"



PART III - SIP Client (Softphone) for Android



There are 2 great SIP clients for Android, they are SIPDroid and CSipSimple. You can download them in the Android Market.



The captioned clients are under development in beta and alpha stage respectively. The current version of SIPDroid is 1.5.5 while CSipSimple is 0.00-12-22. For the CSipSimple, I suggest you to download it at her official site.



You can download "Barcode scanner" from the Market to scan the QRCode on the site for installation. Make sure you have enabled the "Unknown sources" at "Applications" of "Settings" at your Android phone.



(1) CSipSimple configuration



(A) Account

"Add account" -- "Basic"



"Account name" - any name you like, e.g. pbxes.org

"User" - username-, e.g. android-100

"Server" - pbxes.org

"Password" - password



(B) Settings

(a) Easy Configuration

Nothing to set now.



(b) Network

Check all items.



(c) Media

Check "Echo cancellation"

Check "Voice audio detection"



(d) User interface

Check "Dialer integration"

Check "Text dialer"

Check "Integrate with Music application"

Check "Keep awake while on call"

Check "Use partial wake lock"



(2) SIPDroid configuration



The setting is similar to the CSipSimple. It also provides video streaming.



PART IV - Dial out



At the space provided at the CSipSimple, type the following to dial out :



For example, you dial to yourself from another softphone.



android@pbxes.org



or



android-100@pbxes.org



PART V - Linksys SPA IP Phone (SPA941) configuration



Open browser and go to the setup page of SPA941.



Ext 1



SIP Settings

SIP Proxy-Require - pbxes.org



Proxy and Registration

Proxy - pbxes.org

Outbound Proxy - no need to set

Use Outbound Proxy - no



Subscriber Information

Display Name - Office

User-ID - office-100

Password - your password

Use Auth ID - yes

Auth ID - office-100



e.g. you have create "office" with the extension "100" at PBXes.org



User



Speed Dial

Speed Dial 2 - android-100@pbxes.org

Speed Dial 3 - david-100@pbxes.org



Speed Dial Out



Pick up handset, press "2" (speed dial number) and then "#"



PART VI - Conclusion



Although SIPDroid is the first apps in the Market for VoIP and it also provides video streaming, the dial out procedure is not mature. The apps cannot running in the background for awaiting VoIP calls when you always dial out to PSTN (land lines). It is because it dial out VoIP calls only.



CSipSimple is still in alpha stage but it is quiet more stable as at 0.00-12-22. You can select if you want to dial out via SIP account or Mobile phone number. It is quiet mature. It will be prefect if it also provide video streaming and contact list for VoIP dial out.



CSipSimple and SIPDroid are working prefectly on Asterisk.



The current development version (CSipSimple 0.00-12.22) does not support bluetooth. When bluetooth is enabled, the incoming and outgoing call may caused your Android hang or power off is required.



This tutorial may also apply to other smartphones or desktops that have SIP Client. For Ubuntu or Linux, you can use Ekiga.



That's all! See you.