Monday, September 10, 2012

VO3G - Voice Over 3G

[update 03/19/2014] This article is obsolete, for the latest VO3G technology, please visit: http://kot.voip.com

Now you have a smartphone with a 3G connection. Would it be nice to make and receive free calls over 3G?

Or, you have a fantastic 7" 3G tab, but stupid carriers crippled its voice function.

Get a Google Voice account

This is a must, even if you are not interested in VO3G. Everyone, repeat, everyone, needs a GV #, period.

It is free and you get a local phone #. No need for me to repeat all the details and benefits, only three things I should point out here:

1) Always use a new gmail account for your GV account, never use your primary email address for it. Because, soon or later, you'll need to give out these credentials to some third parties.
2) Add your cell phone # to your GV forward phone list. Then when someone calls your GV #, your cellphone will ring.
3) From now on, never give your cellphone # to anyone; instead, always and feel free to give out your GV #. With GV, you have full control on your #, spam and telemarketing is a thing of past.

Get a CallCentric free DID

Set up a new CallCentric account, the free one. Then log into your account and add a free DID, assuming it's 516-926-1234. Actually, you can add more DIDs if you need. Then go to preferences, DID forwarding, make sure it's set to SIP device (default).


When you apply for the DID, don't say you'll use it within USA, or you'll be charged for the non-sense 911 fee.

Set up pbxes.org

Go to pbxes.org and open a new free account.

Click Extensions, Add Extension, SIP. Assume you give this extension a number as 200 and password as 12345. Other fields can be anything, but make sure audio bypass is yes. Then click Submit. The username for this extension will be your_pbxes_username-200, e.g., johnsmith-200. Your devices (Acrobits in this case) connect to these extensions.


Click Trunks, Add a Trunk, Add SIP Trunk, Trunk Name: CC, audio bypass: yes, sendrpid: yes, username: 1777xxxxxxx (found in your CC dashboard as "Callcentric #", see photo below), password: your CC password, SIP server or proxy: callcentric.com, register: yes. Then click Submit Changes. These trunks connect to SIP providers, CC in this case.


Click Incoming Route, Add incoming Route, Trunk: CC (the same name you gave above), select Extension: 200 for both regular and after hours. Submit. Obviously, these route rules tell pbxes how to handle an incoming call from a trunk. In this case we let a CC call to ring a single extension.


Now, time to click on the red bar "You have made changes - when finished, click here to APPLY them". If you have done everything right, click on Status and you should see a green balloon before trunk CC. If you check your CC dashboard, it should say "Your phone is registered".



Get Acrobits 1.94 with G.729

Don't waste your time and money to buy Acrobits 3, because it keeps your phone awake - drain battery fast. Other such apps such as CSipSimple and Bria do not offer good enough call quality.

Click Settings, SIP accounts, Add new provider, Title: pbxes, username: johnsmith-200, password: 12345 (the one for the extension), domain: pbxes.org, incoming calls: On. This tells Acrobits to register to the pbxes extension you created earlier.


Advanced Settings, Codecs for WiFi, Enabled Codecs: GSM, G.729a, all others are disabled, Packet Time: 30ms, Force Packet Time: unchecked, Honor Remote Codecs: unchecked, OK. Do the same for Codecs For 3G.


STUN Server: stun.pbxes.org, Transport Protocol: tcp, Expires: 1600 (default 600), Send keepalives: unchecked, OK. OK.


If you did everything correctly, the Acrobits icon, see above photos at the top left corner, should turn into green and Acrobits is ready for incoming calls.

Receive a test call

Use any phone to call 516-926-1234 (the CC DID), Acrobits should ring. Congratulations, you've done the most difficult part and now you can receive calls!

Add CC CID to GV

Log into you GV account, click Settings, Phones, Add another phone. Name: CC, Number: 5169261234 (the CC DID), Phone Type: Work or Home. Save. Then it'll ask for verification; let it call, Acrobits should ring, pick up the call and press the verification code.

Now you can receive calls from GV!


Place a test call from GV

Now log into your GV account: http://www.google.com/voice/m, either on your phone or on your computer. Click on Settings, My Mobile Number, select 516-926-1234 (the CC DID).


Then put a #, say, 800-847-8929 (NY traffic line), into the box and click Call. Acrobits should ring, pick it up and you should hear a female voice from NY!

Finally, we can receive and make calls, all free.

Install a GV dialer

You may just use above method to initiate a call, but not so convenient. So install an app:
Voice+ (Google Voice callback) by Szilárd Kovács. Google account: your GV account, Calback numbers: 516-926-1234 (the CC DID).


That's it. Now make phone calls just like you do normally, but you'll be prompted to use "CC callback: +15169261234". Select it, and Acrobits will ring. Pick it up and call is connected.


Some additional notes

Some of above steps might sound redundant; no, all necessary, but you can use alternative routes to fit your situation.

Grove IP cannot use low-bandwidth codecs, therefore it is not for VO3G. CallCentric does not support TCP, so we have to use pbxes.org to use TCP for the sake of battery life and reliable receiving calls. If you are OK with UDP, then you can bypass pbxes entirely and let Acrobits register directly to CC.


Of course pbxes.org offers much more features, for example, you can add voipdiscount as a trunk and make cheap international calls. You may add more extensions for your friends and relatives so they can call each other for free. You may add more trunks for more DIDs. You can add ring groups to ring all selected phones. The possibilities are seamless.

SipSorcery is better than pbxes.org for this purpose, but it is no longer free and its dialplan scripting scares most people away. The downside is pbxes does not support G.729 for the free account (iLABC is available!), so we force it to use GSM without transcoding by selecting "audio bypass" and "sendrpid". Transcoding is always a very bad thing.

Nimbuzz uses socket instead of push, so it still drains more battery than I like. The good part is it supports both G.729 and iLBC. So, if you can sacrifice battery life a little bit, you can use Nimbuzz instead of Acrobits and enjoy the great voice quality that iLBC offers. Somehow Nimbuzz cannot connect to CC directly, so you still need pbxes.

If Acrobits can fix the keep-phone-awake problem, then V3 is the ideal one. V3 can turn off the screen automatically during a call, very nice and the latest versions support iLBC. With V1.94, you have to go to the Main page, then you can turn the screen off manually. BTW, if you're tired of the HTC power button like I am, the Tap Tap App (Screen On-Off ) by Pedro Maicasby is the solution. With this great app, you can slide down to turn the screen off and use volume keys to turn screen on, ideal for this purpose.

Now you have free voice, what about free SMS? Easy and simple, just install the Google Voice app by Google.

21 comments:

  1. Wonderful guide! I am in the same boat. I do have some quick questions and would like to know what you think.

    1. What are the beneifts of Acrobits over the stock Android dialer with native SIP? I am a minimalist and would like to use stock stuff if possible.

    2. I registered Callcentric to the native SIP account to receive incoming calls (forwarded by GV). Quality seems to be fine. But like you said, it is UDP so battery life is bad.

    3. To make outbound calls directly with the stock dialer, I registered a PBXES account, added a 200 extension for GV. Added the PBXES account to the native SIP account. Chose to be the primary account for outgoing. Worked fine.

    The issue is that I have to register two SIP accounts in the stock dialer. Since PBXES is quite a capable service, I am wondering whether it is possible to add both GV and CC as trunks, then configure GV as outgoing and CC as incoming only. I am not familiar with PBXES parameters so I cannot tell whether this is a feasible idea. Of course there will be some codec tweaking stuff. What do you think?

    ReplyDelete
    Replies
    1. All my phones do not have a built-in SIP dialer. I think it does not support G729 which charges for a license fee.

      UDP does not necessarily mean bad battery life. If you want to receive calls reliably, then you have to use keep alive, then battery life suffers. If you use 3G instead of WiFi, don't use G711 codec.

      In your case, you need only one extension (200) and one trunk (for CC). Because PBXES does not support direct GV dialing, you have to use the Voice+ app, regardless you use the stock dialer or Acrobits. SipSorcery allows direct GV dialing and all codecs, but the $35 yearly fee is too much.

      GV dialing out is not calling out; it is actually receiving a call placed via web. Traditional PBX does not support this; SipSorcery is not a traditional PBX but the best SIP switch. You can add this feature to some PBX such as freeSWITCH if you run your own PBX.

      If you need to use, say, VoipDsicount for international calls, then you add it to PBXES as a trunk. Then you configure outbound rules and dialplan for it.

      Delete
    2. I see. Thanks for the information. Used some of your suggestions and did the following, thought to share it with you.

      ICS for phone comes with native SIP support, although primitive.

      PBXES can support GV, but there is a 15-seconds-goes-into-voicemail issue for inbound calls. So I used a Callcentric number for inbound call, GV is only for outbound calls.

      I used Sipdroid to create a PBXES account for GV (Sipdroid is then useless unless the phone/tablet does not have native SIP support). Then I went to PBXES, logged into the account, did some logistic things such as changed passwords. Then I added a Callcentric trunk (the CC account is only for receiving calls, cannot call out). For outbound calls, only GV is used.

      Then I went to Google Voice website, configured GV to forward calls to Callcentric #, but unchecked Google Chat (so no inbound calls through Google Talk).

      On the phone, added a SIP account to the native dialer, user name is the PBXES way of xxxxxx-200. Used TCP/5060. Also checked always send keep-live. It works! Calls to my GV number are received fine and outbound calls show my GV number. Battery life is not too bad (Google Galaxy Nexus).

      I wanted the same on my 7-inch ICS Tablet (unlocked T-mobile Springboard). But it does not have SIP support in the native dialer. So I used Sipdroid. Working fine.

      The issue - only the one that registered to PBXES the latest will receive calls. I do not know how frequently the native SIP dialer/Sipdroid refresh the registration.

      Delete
    3. The stock SIP client might not support G729, neither do the free PBXES account. The last time I checked the free account, it did not support GV dialing. I'll have to check it again.

      If you want both your devices to receive calls, you have to use two separate extensions for them, such as 200 and 201. Then you create a ring group to include these two extensions. Then you configure the inbound route to ring this ring group.

      In addition to simultaneous ringing, PBXES also allows hunting. For example, you can let it to ring 200 first and, if no answer for 15 seconds or so, then ring 201.

      Such stuff is fun, useful and saves money.

      Delete
    4. your android device also MUST have "low latency audio" or there will be much suffering

      better maintained/developed SIP client either

      nightlies CSipSimple : http://nightlies.csipsimple.com/trunk/CSipSimple-latest-trunk.apk
      or
      OSTN nightlies CSipSimple : https://ostel.me

      Delete
  2. SIP Providers reduce the connectivity charges, simplifies the network and reduce its cost also improves the communication level.

    ReplyDelete
    Replies
    1. SPAM

      site setup to collect contact information only

      NO way to signup for alleged services

      Delete
  3. You need a VOIP provider, then you can make international calls over any kind internet connection. I use voipdiscount, for more than 5 years now, cheap and good, less than 1 cent per minute to most countries.

    ReplyDelete
  4. blech! "your" [plagiarized] guide has some issues

    no one needs a GV. I prefer to pay for my G.711 voip to PSTN (vitelity.com/voip.ms) as MY privacy is NOT a commodity

    These two VSP provide all the hosted PBX functionality replacing also CallCentric.

    remove all the hops with SIP TCP: anveo.com

    Consider linking to alternate pro-3G instructions for those who value their privacy!

    ReplyDelete
    Replies
    1. lower bandwidth 3g friendly codecs like G.729 (assuming you've purchased the correct licenses) are available, too

      Delete
  5. "reliable" and "cheap" are antithetical

    ReplyDelete
  6. So true about Voice Overs,and what’s perhaps even more devastating is that there’s been so little support to help the community rebuild.

    ReplyDelete
  7. This all worked, once... after I received an incoming call, the icon went from green to red for Acrobits.. nothing I do lets it go green again. I tried redoing the whole Acrobits setup, nadda.

    ReplyDelete
    Replies
    1. Use a full domain name, such as sip.sipsorcery.com instead of sipsorcery.com. Acrobits seems have trouble with SRV records during reconnecting.

      Delete
  8. Wow, sounds like you've some wonderful ideas and plans On Corporate Voiceovers, sounds like the end result will look very nice! Best of luck with the changes

    ReplyDelete
  9. This is a wonderful post On Corporate Voice Overs! Thanks for sharing your knowledge with us! I hope to read more of your post which is very informative and useful to all the readers. I salute writers like you for doing a great job!

    ReplyDelete
  10. Thank you so very much!! I wish I would have found this first. It would have saved me several hours of frustration.

    ReplyDelete
  11. Very Nice website. I just finished mine and i was looking for some ideas On Corporate Voice Overs and your website gave me some.

    ReplyDelete
  12. Wow, sounds like you've some wonderful ideas and plans On Corporate Voice Overs, sounds like the end result will look very nice! Best of luck with the changes

    ReplyDelete
  13. This particular weblog is seriously interesting, keep blogging good info On Voice Overs.

    ReplyDelete