Google Voice App Tutorial

Updated 25 Jan 2010: Adjusted for the new parameters required when using the sys.GoogleVoiceCall method in the sipsorcery dialplan.

The “hacked” up Google Voice App on sipsorcery appears to have attracted some new people to the site. To help them I’m writing a quick tutorial about how they can quickly get up and running to place a call with the Google Voice app.

Warning: People new to sipsorcery will probably be fine until they get to the dialplan configuration and will then start cursing in frustration: “why is this thing so *#!@ hard all I want to do is make a telephone call!”. The reason is that sipsorcery and mysipswitch before it were designed for people to be able to experiment with SIP stuff and try weird and wonderful things. The price for that power and flexibility has so far been ease of use. One day the plan is to re-create something like the dialplan wizard to make it simpler but so far it just hasn’t made it to the top of the list.

Back to the promised tutorial.

Following are the minimum steps you need to take to be able to place a call from sipsorcery to terminate with Google Voice.

  • 1. Login to the Google Voice site click Settings (in the top left) and then Phones on the main menu. On the Phones screen you must have a Gizmo number configured as shown below (note it doesn’t matter whether it’s ticked or not).

    Goog Voice - Phone

    Goog Voice - Phone

  • 2. The Gizmo number you have used in Google Voice MUST then be configured to forward calls to your sipsorcery account. You can do this by setting a forward at the Gizmo SIP Provider end or by registering the account from the sipsorcery end. The result in both cases is the same and it doesn’t matter which one you use. To register your Gizmo SIP Provider account from sipsorcery you need to create a new SIP Provider entry as shown below (use appropriate values for your account where I’ve blurred my own settings out).

    Important: As part of some updates made to sipsorcery for enhanced redundancy the contact registered or used with the callback SIP Provider MUST be username@sipsorcery.com where username is the same as the one used to login to the sipsorcery web site. If it’s not the same then there is around a 50% chance the Google Voice callback WILL NOT be matched up to the waiting SIP call that initiated it on the sipsorcery end.

    SIP Provider Details - Gizmo

    SIP Provider Details - Gizmo

  • 3. Now we’re ready to place a call. To do that you need to click on the Dial Plans menu in your sipsorcery account. I will assume that you are creating a new dialplan and will be overwriting the default one created for you.
    Google Voice - Minimal Dial Plan

    Google Voice - Minimal Dial Plan

    And so you can actually read it:

    sys.Log("starting dialplan...")
    sys.GoogleVoiceCall("emailaddress@gmail.com", "password", "1747612xxxx", "1132701859", ".*", 7)
    sys.Log("Sorry, Google Voice Call failed.")
    

    Here’s what each of the parameters mean:

    • emailaddress@gmail.com MUST be the email address you use to login to your Google Voice account.
    • password MUST be the password for the email address.
    • 1747612xxxx MUST be your Gizmo a number that has been registered on your Google Voice account and be the same as the one shown showing on your Google Voice Phones page in step 1. This is the number that Google Voice will place the callback on so calls to it must somehow be configured to arrive back to the sipsorcery servers typically this would be by registering a sipsorcery provider binding with the SIP provider that supplies the number.
    • 1132701859 this is the destination number you wish to call and can be ANY US landline number (I don’t know whether mobiles or any others will work).
    • .* this is a regular expression pattern that will be applied to any incoming calls that arrive on your sipsorcery account for 30 seconds after a sys.GoogleVoiceCall method has been used in your dialplan. The pattern is used to decide whether the incoming call is the callback from Google Voice and to bridge it with waiting SIP call. A pattern of .* means the very next incoming call will be matched, it’s the safest option for anyone unsure about regular expressions or confused about what this parameter means.
    • 7 this is the type of phone being used for the callback from Google Voice, The Google Voice web request requires that it be specified. The range of this option seems to be 1 to 7. To date it doesn’t seem to make any difference what number is used EXCEPT that if Gizmo is the callback provider 7 must be used. If it’s not Gizmo the safest bet is to use a value of 1.

Once you have taken those 4 steps you need to configure your ATA, IP Phone or soft phone to use the sipsorcery SIP account and then place a call. If all goes according to plan you will get the following:

  • A ring tone on your phone almost straight away. This is generated by the sipsorcery server to let you know it’s started working.
  • Somewhere between 1 and 10 30 seconds later the phone will get answered and you will have a brief pause of silence followed by another ring tone. This time the ring tone is being generated by the Google Voice server and indicates the destination number you specified is ringing.

That’s it, Easy 🙂.

Caveats. Google obviously didn’t intend for people to be able to hook up their SIP devices to make free calls. I assume free calls via the Callback mechanism on the Google Voice web site pays off by driving web traffic to the site. With a SIP call there is no such pay off. As such the sipsorcery solution and other solutions around the web are hacks. That means they are susceptible to breaking or being blocked it Google get annoyed with the SIP calls. On the mysipswitch Forums there are already reports of the occassional call failing with a HTTP 500 Server Error. Watching the sipsorcery logs I have seen a few calls getting the same. That error maybe because there was something about the call request Google didn’t like, you can test that by using the same values in a Callback from the Google Voice page, or it may be that the HTTP requests that are sent from sipsorcery to Google are occassionally going to get rejected for some reason (the 500 Server Error was caused by a bug in the sipsorcery code). The point is if you want to use this sort of solution on sipsorcery or elsewhere you will probably need to accept that not every call is going to work (that being said none of my own test calls have failed yet).

Finally if you would like to get a little bit more adventurous with your dialplan and have it send the number you called in on as the destination for your Google Voice call you can use the one shown below.

Google Voice Call - Advanced Dial Plan

Google Voice Call - Advanced Dial Plan

sys.Log("starting dialplan...")
sys.GoogleVoiceCall("emailaddress@gmail.com", "password", "1747612xxxx", "#{req.URI.user}", ".*", 7)
sys.Log("Sorry, Google Voice Call failed.")
  1. RonL’s avatar

    The GoogleVoice email address login does not have to be a gmail address.

    It might not be clearly shown on the graphic, but newbies should be aware that the last parameter in GoogleVoiceCall() should be
    “#{req.URI.User}” (including double-quotes).

    Reply

  2. fixup’s avatar

    I don’t think google will block such SIP calls, because it has made its own dialers for mobile phones. I think I read somewhere that google even published such an API.

    Even if google blocks SipSorcery.com, we can still run SS on our own servers.

    As long as google will not shut down web placed calls, there is no way to block such a dialer.

    Goolge will keep USA calling free, because it expects people will also do International calls via GV. USA is an emigrants country and many its business have moved to overseas. I.e., google will get lots of money from GV on International calls. Stupid Gizmo5 dropped this ball, too greedy, who’d pay them $0.02/min for USA calls?

    Reply

  3. adamg’s avatar

    Would you please post an example of a working inbound dial plan? Thanks.

    Reply

    1. sipsorcery’s avatar

      Take a look at this post Incoming Call Processing.

      Reply

    2. zcharming’s avatar

      very nice job!

      Reply

    3. Dre’s avatar

      Can someone provide details on how to setup the Sipsorcery dial plan so that GV voicemail can be checked directly from the phone. I have the GV / Gizmo / Sipsorcery Deal running great on an ATA, but can’t get into the voicemail when I dial my own GV number?

      Reply

      1. sipsorcery’s avatar

        The only free, and very clunky, way I know how to do it for free is to dial your Google Voice number through Gizmo. You can then press * to break into your voicemail when the prompt starts as per http://www.google.com/support/voice/bin/answer.py?hl=en&answer=115093.

        Reply

      2. Dre’s avatar

        I tried doing just that by adding the following dialplan line but it does not go to my voicemail greeting….call just drops.

        when /^14445551212/ then sys.Dial(“Gizmo”)

        Note: 14445551212 = GV Number

        Reply

      3. Kipperman’s avatar

        What modifications do i need to make in order to use sipgate instead of Gizmo?
        Thanks ,

        Reply

        1. sipsorcery’s avatar

          It’s described on the forums.

          Reply

        2. G4nz0’s avatar

          How secure are the sipsorcery servers? Are you encrypting the GV logins and passwords?

          Reply

          1. sipsorcery’s avatar

            Data stored in the sipsorcery database is NOT encrypted. Data transmitted between sipsorcery.com and the Silverlight client IS sent over an enrcypted SSL connection.

            See here for the latest discussion http://www.mysipswitch.com/forum/viewtopic.php?t=1628&postdays=0&postorder=asc&highlight=encryption&start=30.

            Reply

          2. Deg’s avatar

            I really would like this to be a complete dialing plan.

            I don’t get . Been trying for last 6 hours and nothing.
            what is this? … dot dot dot huh? What is regURI.user and how do we modify it?
            Is this a complete plan I can paste? I use sipgate. But nothing is working. I get a busy dialtone, but no call back.

            sys.Log(“starting dialplan…”)
            sys.GoogleVoiceCall(“emailaddress@gmail.com”, “password”, “1747612xxxx”, “#{req.URI.user}”)
            sys.Log(“Sorry, Google Voice Call failed.”)

            Reply

          3. Mame4iphone’s avatar

            Aaron,

            Any chance this could be done with the iPhone using the Siphon app?

            Reply

            1. sipsorcery’s avatar

              Yes it should do. From what I can see of the Siphon app it’s just a straight forward SIP softphone and connecting it to sipsorcery.com should allow it to use the GoogleVoiceApp.

              Regards,

              Aaron

              Reply

            2. Mame4iphone’s avatar

              Aaron,

              Thank you for your ultra fast reply, I was pleasantly surprised:)

              I loved your tutorial with screenshots and all. At 1st, I got past the 2nd step and just when I was about to do the Dial Plan, I googled GV + G5. The results came back as GV + G5 now with a 3minute outgoing call restriction.

              To me it became a moot point to go with G5 for that reason. So I googled more.

              The result I got was Sipgate would work better and no time restriction. However, I have spent countless hours and now I’m stuck on step 2 and can’t imagine how I could come up with a dial plan.

              On my JB’en 3GS iphone I have the following softphones : iSip, Siphon, Nimbuzz and Fring.

              When I tried to get verification for GV my cell rings and I answer but when I reply with the 2 digit key on pad it says back to me “I’m sorry I didn’t recognize your entry”. I have tried for over 8 hours. I surrender for now.

              Is there a way you could post and idiot proof tutorial for us iPhone users, that are not going to use G5?

              Also, I have been looking for your PayPal donate button but I don’t see one.

              Could you add one and I will be the 1st to use it. For I read that you work on this SS project on average of 50 hours a week. And, after seeing GeoHot from at twitter debut a few days ago with his brilliant super easy Blackra1n JB. His donate button was ringing of the hook. And, rightfully so.

              I want to say thank you not just in form of verbal gratuity, but via the pocketbook.
              TIA:)

              Reply

              1. sipsorcery’s avatar

                There are a few little hoops involved in getting the Google Voice calls working with SIP unfortunately, maybe at some stage Google will just turn back on the SIP gateway which would be nice. At this stage your issue sounds like it’s confined directly to Google Voice. I’m no expert on Google Voice but if you ask on the sipsorcery (previously known as mysipswitch) forums at http://www.mysipswitch.com/forum/index.php there are people that are knowledgable.

                While I appreciate the offer there’s no donate button for sipsorcery as monetary reward is not the motivation for me to work on it, maybe down the track depending on how things evolve, maybe not.

                Regards,

                Aaron

                Reply

              2. Mame4iphone’s avatar

                Wow!

                Your non-monetary reply is very noble and should be admired. I have even greater respect for you now.

                I have made some progress. I added sipsorcery under contact in the Siphon app and it finally says “sipsorcery.com” “Connected”. However, I still can’t get the GV to verify:( It rings on my iPhone but says i’m putting in the wrong code. Or is it supposed to ring on the softphone app?

                Nevertheless, I will heed your advise and ask over at MySIPSwitch.com, the reason I asked here was because it states that the site will close down by October 31st and that we should head over here.

                However, please entertain the idea of a tutorial just like the one you did here but in lieu of G5 instead Sipgate.

                Reply

              3. Mame4iphone’s avatar

                Lol,

                I finally got it! That is, to get GV verify on Sipgate # with info on SS. I got lucky.
                Now time for the dial plan.

                I just wonder if I could use the one you have posted here for G5?

                Reply

              4. Sand’s avatar

                Can somebody help me with the “The remote server returned an error: 500- Internal Server error”.

                I was trying to login to google voice and make calls using c# console app. I was able to get the GALX value and also able to login to google voice using that and got the “_rnr_se” VALUE. But when I try to make the calls it says, “The remote server returned an error: 500- Internal Server error”. I am also uri encoding the values like( email address, password, _rnr_se before posting to the server), but still getting the error.

                Could somebody please help me with it.

                Reply

                1. sipsorcery’s avatar

                  Your codeplex post has been replied to. That is a better place than here for technical discussions.

                  Reply

                2. happyface’s avatar

                  hi
                  i configured google voice with gizmo and ata. This works fine for incoming calls but im unable to outgoing calls. from above things i think using sipsorcery we can make outgoing calls as well. Can u post the link where i can register for sipsorcery. Im unable to find it

                  Reply

                  1. sipsorcery’s avatar

                    The forums http://www.mysipswitch.com/forum/index.php is the best place to ask for configuration help. This blog is more for announcements and my ramblings.

                    Reply

                  2. Gingi’s avatar

                    I’m having call quality issues with SipSorcery/GoogleVoice.

                    On outgoing calls placed from my phone/ata-adapter/sipsorcery/googlevoice often the audio breaks up in one direction or both.

                    When I use the same setup, but rather than dial from my phone, go onto the GoogleVoice website and initiate a call from there to one of my contacts (telling it to ring my Gizmo device – which routes to Sipsorcery) I have no audio issues.

                    What could be the problem and how to correct.

                    Reply

                  3. Moorthy’s avatar

                    Guys!!

                    I am a newbie to Voip and with the help of these tutorials, I have successfully setup my sipsorcery account to bind with the linksys SPA 3102 adapter. A million thanks to Sipsorcery team!!

                    Both my inbound and outbound calls are working fine, however there is one small problem which I am struggling to sort out for the last few days.. The problem is when I place outbound calls from my GV account. The line is getting connected and no audio problems but after the call is complete, I can see the internet line (in spa 3102) and the modem blinks continuously (data is getting transmitted on the line) which eats up my limited bandwidth internet plan.

                    This happens only when I use my GV to call an US number. This doesnt happen when I use my voipstunt account for outbound calling (internet line blinking stops soon after I end the call).

                    Thanks in advance!!

                    Regards
                    Moorthy

                    Reply

                    1. sipsorcery’s avatar

                      Please use the forums at http://www.mysipswitch.com/forum/index.php for technical issues and help.

                      Reply

                    2. Abdul’s avatar

                      Hello

                      Did anyone try to configure SIP settings on E71 to register Sipsorcery account. Please share your knowledge if you have it working

                      Regards & Thanks

                      Reply

                    3. Abdul’s avatar

                      Just an update to my previous request.
                      Got the service registered through my phone(e71).Thank God!
                      But now there is a message saying..”Address not in use” when I try to dial a number ex : 1747XXXXX

                      Any comments?

                      Reply

                      1. sipsorcery’s avatar

                        Please use the forums for technical questions http://www.mysipswitch.com/forum/index.php. There are lots of posts there dealing with Nokia phones and everything else.

                        Reply

                      2. Sakthi’s avatar

                        Thanks for the tutorial and it works great!
                        If I call any direct numbers it works great. But Sometime when i tried to dial to an extension, its not getting thru properly. For Few it goes but not for the most of such calls. Say if i dial a number and it needs to enter any other extension say like 234# i get the message like you entered 2 2 3 3 4 4. Some time if i dial any big number with #, some of the digits gets lost.
                        Could some one please tell me is it possible to overcome this situation.
                        I am using SPA-3000 ATA adapter.
                        Thanks in Advance and appreciate your Help!

                        Reply

                        1. sipsorcery’s avatar

                          The forums is the best place for help, http://forum.sipsorcery.com/index.php. Search on DTMF and Google Voice, there are other people with the same issue.

                          Reply

                        2. Sakthi’s avatar

                          Google is shutting down Gizmo5 on April 3rd 2011. So the above Procedure to receive Calls will no longer work. Is there any other alternative we can use?

                          Reply

                          1. Casey Vockrodt (@cvockrodt)’s avatar

                            I currently use the Tropo service (http://www.tropo.com), which allows me to setup a phone number (which google voice can call) that simply forwards to my sipsorcery sip address (which I log into on all of my phones). Tropo is a really great (free for development) service that you can actually do much more with than this.

                            I also have my nexus one’s gingerbread sip stack connected to my sipsorcery account, and can send/receive calls and text messages over wifi FOR FREE(I don’t pay for cell service, as I live by a university where wifi is pretty abundant)

                            Reply

                            1. sipsorcery’s avatar

                              Tropo is a nice service. I’ve posted a few times on this blog about various integrations I’ve played around with between Tropo and SIP Sorcery.

                              I’m thinking about purchasing a new mobile; the last time I forked out big bikkies for a phone was in 2005 for the Nokia N95. It’s funny that that series of Nokia’s were one of the first to introduce a native SIP stack and it’s not until Android 2.3 that a native SIP stack is looking serious again. And coincidentally I’m interested in purchasing a new phone again after 6 years :).

                              Reply

Reply

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