How To: Setup a Private VOIP Phone System for Android

MAY 2011: Learn more about our new efforts on the Open Secure Telephony Network at https://guardianproject.info/wiki/OSTN – we currently recommend the CSipSimple Android app instead of SIPDroid, for secure voice calls.
Near the very top of Guardian’s open-source application suite wish list is something that might seem like a no-brainer for a secure mobile device: voice. When we take into account network performance and audio fidelity requirements, as well as the International nature of Guardian’s target users (everything from average citizens to multi-national journalists or humanitarian organizations), the prospect of a truly real-time secure VOIP solution starts to reveal itself as quite the challenge. Fortunately, a number of efforts have been underway for some time on the Android platform. The following is an introduction to one such effort, and this post provides a very easy step-by-step how to enable your very own private mobile phone system.

Sipdroid is an open-source SIP client that adds native SIP/VOIP to Android’s default dialer / contacts applications. You can find Sipdroid in the Android Market or alternatively can download it here. SIP (Session Initiation Protocol) is the Internet standard for real-time voice and video communications. It’s a fundamental building block for many popular consumer VOIP products that you may have used – Vonage or MagicJack are two examples. Once installed and configured properly, sipdroid allows you to make & receive calls over Wifi and 3G / EDGE data connections – which is a really powerful thing! A similar solution from Gizmo5 allowed many Android users to completely untangle themselves from mobile minutes and rely on a purely VOIP solution. Alas, new Gizmo signups were suspended after Google announced their acquisition – but we should all be excited to see what they can cook up as part of the official Google Voice team.

While it’s expected that SIP providers will become more interoperable, the simplest and most powerful solution currently available to get sipdroid running involves registering to the virtual PBX service from PBXes.com. For the uninitiated, a PBX (Private Branch Exchange) is what establishes and manages the connections between the telephony products of a private organization (telephones, fax machines, etc.) – each of which is labeled with an ‘extension’. It also is the system through which these extensions are able to access the public telephone network (PSTN). Since the 1990s, traditional PBX solutions – usually out of reach for small businesses or individuals due to cost and complexity – have evolved to IP-based and virtual or hosted PBXes, which greatly simplify the processes of building and scaling telephony services. PBXes.com is one such ‘virtual PBX.’ Once a PBXes account is established, the account owner can create multiple extensions beneath it and easily dial between those extensions. You get 5 extensions for a free account, more for paid account types.

Why is this solution so interesting? If you have a relatively small group of colleagues (NGO, humanitarian workers, activists, journalists, etc.), it allows you to easily establish a private internal phone system that can be used over a data connection in lieu of the regular phone system. In our experience, the call quality is also quite good. And while the following step-by-step guide will lead you through the process of setting up this simple solution, first a word of caution: this is not a secure solution yet. It is a first step, however, down that road. To achieve a more secure solution, we need to enable more features, include tunneling and encrypting traffic through a Virtual Private Network (VPN) as well as integrating to a privately maintained Asterisk phone server running with custom security settings.

We are also investigating solutions that uses a public key exchange model, such as Philip Zimmermann’s ZFone, such as the new RedPhone app just announced by WhisperSystems.

1. Configure extensions to a PBXes.com account

If you don’t already have a PBXes.com account, head over to http://www.pbxes.com and fill out the straightforward account registration form for a free account.

 

Next, select ‘Extensions’ from the left-hand navigation menu, then choose ‘SIP’ under ‘Add an Extension.’

Last, configure your new extension with a few critical elements. Make sure you fill out the following fields, at a minimum:

    • Extension number (e.g. 100, 101, 402, etc.)
    • Display name (e.g. johndoe-100)
    • Password

After clicking ‘Submit,’ go ahead and repeat the process for as many extensions as  you’d like to set up. Each of these will be specific for a unique Android device. Don’t forget to APPLY your changes when finished by clicking the bright red bar – this ensures your changes take effect.

2. Configure extensions on sipdroid

If you don’t already have sipdroid, you can find the latest version here, or point your barcode scanner to the following QR code:

Within the Account Settings section of sipdroid, set up one of your extensions from step 1:

· Authorization Username and Password

· Server: pbxes.com

· Port: 5060

· Protocol: TCP

You should see a green dot appear in your notifications tray on successful registration like so:

 

3. Trial Run – dial between extensions

Once you’ve set up a number of extensions within your PBX, you can easily dial between them. Simply input their extension number (e.g. 100).

 

4. (Optional) Configure VPN

As mentioned above, the solution so far isn’t a secure one. A first step in the right direction is connecting to PBXesPPTP VPN. For those quicker on their feet, configuration instructions can be found here. If you’d prefer to stick with us, follow these steps:

4a. On your Android phone, access the ‘VPN settings’ section of Wireless & network settings.

4b. Select ‘Add VPN,’ then ‘Add PPTP VPN’




4c. On your Android phone, access the ‘VPN settings’ section of Wireless & network settings.

  • VPN Name – your choice
  • VPN server – www#.pbxes.com [for # see URL line after logging into PBXes on your browser]
  • Enable encryption – We haven’t had success with enabling encryption on PBXes yet. This might be due to a sipdroid issue or it might not. If you have success on Android 2.0 / Éclair please let us know in the comments! Nathan reported issues with encryption using PBXes PPTP VPN as well.  -Derek Halliday 5/12/10 4:33 PM
  • DNS search domain – leave empty
  • Username – <account name>-<extension no.> (e.g. guardianproj-401)
  • Password – <extension password>

 

That’s it! If you come across any issues or have any questions along the way, please let us know in the “Comments” below and we’ll do our best to help you out or clarify. And if you’re itching for more, here are a couple next steps. We’re not presenting a deep tutorial on these (yet), so we’d love to hear from you if you have pursued either – or even better – if you’ve used sipdroid and/or PBXes in any other creative ways!

  1. Hook your PBXes account into an external DID / VOIP number to dial out to standard phone. Think of it as the equivalent of ‘Skype Out’ for sipdroid. You can use a service such as CallCentric (http://www.callcentric.com/) for this.
  2. You can also integrate desktop VOIP programs or other mobile device client into the same PBXes accounts. Here’s a great list of free, open-source SIP clients. We personally like Blink for Mac OS.
  3. If you have a privately maintained Asterisk or other SIP compatible-server, you can use this same approach with that box, and integrate with your own VPN server. We will be covering this in more detail with a future post, as this is a more secure solution that using a provide such as PBXes.

 

42 comments for “How To: Setup a Private VOIP Phone System for Android

  1. Ricardo
    2010/06/21 at 4:53 am

    Thank you for you article. It helped me set this up. I suggest you add one little detail.

    Leave the username/caller id box empty in Sipdroid or you wont be able to connect to pbxes.

  2. shane castro
    2010/07/19 at 5:09 am

    I can’t figure how to get a hold of a person on there lap top. They have a Skype account. I want to see each other on video. Please help me. Thank you.

  3. 2010/07/23 at 7:31 am

    Hi,

    I follow your instructions but i cant connect to vpn….

    thanks

  4. Ken
    2010/07/26 at 4:03 am

    Hello, I hope that I can get some help on the call dropping after only one ring. A church member and I followed your directions to the T. We set up our pbxes.com accounts by setting username, password and extensions. The account said that I could be reached at kenswygert-700@pbxes.com and that she could be reached at kishadonley-703@pbxes.com. We tried dialing those first, but those calls dropped after a second. Then, we tried what you said, dialing just the extensions. I dialed 703, but it came up as 703p and would hangup after about a second. I do not know why it was pulling the p from the @pbxes.com sipdroid app. In the extension box I noticed that the dialer said that we could dial SIP/kenswygert-700. We tried that and it did not work. We tested the *43 and it worked. I noticed on sipdroid video that Pascal dialed standard mobile numbers and that worked. Can you help? Thanks

  5. 2010/09/01 at 8:37 am

    Hello,is there a way to get pbxes to set up my pbxes account for me? I am not really a tech savvy user and would just like to get setup so that friends from over seas can call me and i them using voice and video.

  6. 2010/09/02 at 9:27 pm

    ZRTP/Zfone secure VOIP is requested in sipdroid in the following issue:
    http://code.google.com/p/sipdroid/issues/detail?id=63

  7. 2010/11/03 at 5:25 pm

    Nice post. I appreciate, as I’m sure does everyone else, the level of detail here. VoIP isn’t new by any means but not everyone gets all the pieces.

  8. Boubou
    2011/01/20 at 9:03 pm

    Thanks for this very interesting Post !
    I landed on this article while searching about potential security breach with the application sipdroid. I surfed your site and felt particularly concerned because I’m working in humanitary.
    I have a very general question regarding all Android OS’s versions or mod’s :
    How can I know what the applications are doing with my datas ? For example, I can see that sipdroid needs access to contacts, SD card, etc… So the application can take all my datas and send it forward for any usage ? Or do I misunderstood the Warnings at installation stage of all Applications ?

    Thank you for your great posts

  9. David
    2011/01/24 at 5:03 pm

    Hi!

    I have a Samsung Galaxy S and SIPdroid, I can receive calls but I can not make call, it rings four time and then ends! Before I had an error message ‘Incopatible codecs’ now this problem don’t accour any more it just hang up and the other side doe not have any unanswered call!?

    What should i change, my mobile provider has VOIP because I was using this nromal on my Nokia but here does not work!

    Thank you for your help!

    With best regards!

    David

  10. Hussain
    2011/01/25 at 11:21 am

    Using Nexus with Android 2.2.2.
    I get an error if I enable encryption. If I disable it, I can connect easily.

    Note for the newbie: You have to connect/disconnect VPN from the phone’s setup -> wireless & networks -> VPN menu

  11. Rithy
    2011/02/07 at 7:06 am

    hi,

    I have followed the above step-by-step instruction and managed to get my own vpn connected. But I really don’t know how to use the SIPdroid on my phone. And what is my PBXes account for? please explain how it work. I’m so confused. I want to do exactly like the video in this link: http://code.google.com/p/sipdroid/

    Thank you very much.

  12. bill tham
    2011/02/13 at 7:15 pm

    hi, am having this problem. i have set up everything correctly. but i cant call any phone numbers, they just drop the call. and i need help by the web page, i done everything correctly, i can see the green dot but still cant call.

    thanks

  13. anonymous
    2011/03/01 at 2:04 am

    I don’t think this is going to work out well unless we can make android support some kind of vrf a.k.a. network “containers” or multiple IP stacks, because your example shows right away that you’ll not want to have all apps within the same VPN.

    Ideally I’d want only Orbot and the VPN client(s) to be in the “internet” VPN, and everything else—market, the various phonehome updaters, “push” apps, and anything else that could leak information and tie your device to a google account, a blog commenter identity, or a search engine query, should be forced through the VPN. Privacy is about the communication your device silently does on your behalf as well as what you do deliberately. I want to be able to move from one country to another without minor web sites knowing I’ve left through my IP address. This is a weakness of Tor everywhere—all kinds of garbage spews out of a tor-ified computer like Bonjour and NTP and GUID-laden IPv6 crap and uuid-laden updater queries.

    • guardian
      2011/03/01 at 12:09 pm

      We do have the “per app” Tor support in Orbot, and have been thinking about being able to blackhole/block any app which is not going through Tor.

      Otherwise, seems like with iptables you could achieve quite a bit of what you are talking about.

  14. Dwiti
    2011/05/02 at 6:09 am

    Hi!!! how to create account on pbxes? it does not show the captcha and then on submitting the form shows invalid captcha…

    • Nathan
      2011/05/07 at 1:01 pm

      Sorry we can’t handle Pbxes support requests, however we are sure there is a way to create new accounts there.

  15. Mandee
    2011/05/08 at 4:56 am

    Ive been trying to create an account on pbxes.com for the past half hour… No matter what username/password i try, i still get the “Invalid username/password” and it automatically sends me back to the sign up page, saying “Invalid capcha” when there is no capcha on the page… ?? Help?

    • derek
      2011/05/09 at 9:24 pm

      Hi Mandee – unfortunately we can’t assist with issues on pbxes.org – however we’ve been seeing from other comments that they may be experiencing captcha issues. This blog posting also needs a big revision – which we’re planning on doing shortly – as the tools we recommend have already changed! You should check out the CSipSimple android application, which can be used with nearly any SIP account. Check out the project here.

    • doug
      2011/05/11 at 4:25 am

      You have to use Internet explorer and when you go to that page you will see that internet explorer is blocking a pop up. It show this in a bar at the top of the page. Click to allow the pop up and you will get the capcha thing.

  16. nilsja
    2011/05/17 at 1:23 pm

    fyi, the csipsimple-tls nightlies support zrtp on android.

    best,

    nils

  17. 2011/06/25 at 4:23 am

    get me full vpn setting in samsung pop android mobole please help meeeee

  18. b3q
    2011/09/13 at 12:28 pm

    I always hang up upon connected

  19. Maria
    2011/12/21 at 5:08 pm

    I’ve been trying to set this up for about an hour. I’ve done the step-by-step instructions exactly as shown above, but I only get a yellow dot and/or a red dot. What do these dots mean? What am I doing wrong?

    • n8fr8
      2011/12/22 at 4:36 pm

      Sipdroid has changed quite a bit since we wrote this post. You may want to check out http://sipdroid.org/ for some updated guides and information.

    • KC
      2012/01/06 at 3:26 pm

      @Maria – for me, a yellow dot for me meant I was not connected to an appropriate network (e.g. wifi, since that’s all I’d allowed in the settings). If all you’ve allowed is wifi, and you’re not connected, you’ll get a yellow dot.

  20. alan
    2011/12/28 at 1:09 pm

    I’m having a problem getting sipdroid to give me a ph number, here in mo. there don’t seem to even be the option of using one of the 27 other state numbers here. help ??

    • n8fr8
      2012/01/04 at 2:13 am

      Sorry we cannot support issues with pbxes and phone numbers.

  21. KC
    2012/01/06 at 3:24 pm

    This is strange. I was able to make a call to a PNTS line, but can not connect to any “extensions” I set up. It’s unclear what these extensions should connect to, anyway, given the setup info you suggested. I set up an extension 100 as per your instructions. But when I dial it, it just hangs up. Any clue why anyone?

  22. 2012/01/08 at 10:54 pm

    Hey!
    Thank you for the info, I just followed all the steps and it works perfectly! I was able to use my SIP account from my local company and call to Bolivia, using my virtual phone there…
    Amazing! Using right codecs the quality is quite good! Keep it up, you are doing a great job!
    Jaime

  23. Shreela
    2012/04/16 at 5:17 pm

    I too had issues logging into the pbxes website after sipdroid made my account. But after looking/comparing my SipDroid user/pass to my acceptance email, my user name was different than what it is on my android/sipdroid. Instead of USERNAME-100 like on the SipDroid/phone, it was plain USERNAME when logging in on the website.

    So watch for that email for your username, and see if it helps you login into the website via browser.

  24. DaiAnhTai
    2012/06/16 at 7:38 pm

    Hi.
    Can you help me,how to call video from Android phone by Sipdroid to pbxes.org/????? on PC ?
    Thanks.

    • n8fr8
      2012/06/19 at 11:30 pm

      Sorry we cannot help with Sipdroid or Pbxes.org. We now only work with CSipSimple which is available in Google Play, and instead of Pbxes please visit https://OStel.me for our new secure open voip service.

  25. Daianhtai
    2012/06/19 at 12:53 am

    That’s great.
    But can not use.
    Can you help again with the newest version Sipdroid 2.7

    Can you introduce again :
    – How to call video from mobile to Laptop by Sipdroid and pbxes.org.
    – How to call video from mobile to mobile by Sipdroid + pbxes.org +GTalk ?

    Thanks

  26. Nils
    2012/06/19 at 10:38 pm

    Call me stupid but this is all way too over my head. Really bums me out. I cant figure out my authorization user name is. Or what password they want. I set up my pbxes.com account. Under user name do the want the Account Name: from the pbxes.com web site? And use that password? Or do they want the user name and password you used to create your account at pbxes.com? I don’t see any where on the pbxes.com web site that says: “authorization user name” I downloaded the ap on my phone and I cant find any instructions anywhere. Plus the ap already has some stuff filled in on the settings and they don’t agree with what is in the instructions above. Sorry but just some simple instructions and a better GUI would go a long way with me. Any help would be appreciated.

    • n8fr8
      2012/06/19 at 11:31 pm

      Instead of trying this outdated approach, please visit https://OStel.me for our new secure VoIP system.

      • Nils
        2012/06/20 at 6:14 pm

        Thank you so much!

  27. Anonymous
    2012/07/12 at 2:57 am

    hi thanks for your information
    Can i use single VPN account in multiple devices?

  28. Chathura Wijesinghe
    2012/08/15 at 9:03 am

    How may I apply SRTP to Sipdroid ?

  29. keith
    2012/10/05 at 4:55 pm

    under authorization user name, what do i put and server [proxy.
    cant get any farther,
    help

  30. Peter
    2013/09/10 at 7:31 am

    Thank you for bringing up Ostel, great work!

Leave a Reply

Your email address will not be published. Required fields are marked *