Using Freeswitch with Gizmo and Google Voice

Gizmo now has support for Google Voice, which means you don't need to use GV's web interface anymore to make outgoing calls. You can configure your SIP softphone or ATA to dial using Gizmo to have free long distance calling within the U.S. Alternatively, you can use Freeswitch to treat Gizmo as a trunk through which you can route outgoing calls.

First, setup the profile as follows:

<gateway name="gizmo5">
<param name="realm" value="proxy01.sipphone.com"/>
<param name="from-user" value="174712345"/>
<param name="from-domain" value="proxy01.sipphone.com"/>
<param name="caller-id-in-from" value="false"/>
<param name="proxy" value="proxy01.sipphone.com"/>
<param name="username" value="174712345"/>
<param name="password" value="apple"/>
<param name="expire-seconds" value="3600"/>
<param name="register" value="true"/>
<param name="register-transport" value="udp"/>
<param name="retry_seconds" value="30"/>
<param name="extension" value="174712345"/>
<param name="codec-prefs" value="$${global_codec_prefs}"/>
</gateway>

Second, add the outgoing dialplan so outbound calls go through the gateway:


<extension name="gizmo">
<condition field="destination_number" expression="^(1{0,1}\d{10})$">
<action application="bridge" data="sofia/gateway/gizmo5/$1"/>
</condition>
</extension>


Now to handle incoming calls from Gizmo.. let's say you want to route incoming gizmo calls to extension "1000"


<extension name="Inbound-174712345">
<condition field="destination_number" expression="^174712345$">
<action application="bridge" data="user/1000@$${domain}"/>
</condition>
</extension>

That's it for freeswitch, now you just need to enter your Google Voice account in Gizmo:



Happy calling. :)

2 comments :: Using Freeswitch with Gizmo and Google Voice

  1. I set this up but am unable to get incoming calls. I always see this in the FreeSWITCH logs:

    2009-12-28 16:19:39.663927 [NOTICE] switch_channel.c:602 New Channel sofia/external/+12064194005@192.168.99.118:5062 [c6fb95da-0ff4-de11-9ae2-0015179fbfe4]
    2009-12-28 16:19:39.663927 [DEBUG] sofia.c:3289 Channel sofia/external/+12064194005@192.168.99.118:5062 entering state [received][100]
    2009-12-28 16:19:39.663927 [DEBUG] sofia.c:3296 Remote SDP:
    v=0^M
    o=- 1837019812 1837019812 IN IP4 206.81.178.66^M
    s=-^M
    t=0 0^M
    m=audio 6558 RTP/AVP 0^M
    c=IN IP4 206.81.178.66^M
    a=rtpmap:0 PCMU/8000^M
    m=audio 3018 RTP/AVP 96^M
    c=IN IP4 64.211.149.112^M
    a=rtpmap:96 iLBC/8000^M
    a=fmtp:96 mode=30^M

    2009-12-28 16:19:39.663927 [DEBUG] switch_core_state_machine.c:398 (sofia/external/+12064194005@192.168.99.118:5062) Running State Change CS_NEW
    2009-12-28 16:19:39.663927 [DEBUG] sofia_glue.c:3071 Audio Codec Compare [PCMU:0:8000:0]/[PCMU:0:8000:20]
    2009-12-28 16:19:39.663927 [DEBUG] switch_core_state_machine.c:404 (sofia/external/+12064194005@192.168.99.118:5062) State NEW
    2009-12-28 16:19:39.663927 [DEBUG] sofia_glue.c:2029 Set Codec sofia/external/+12064194005@192.168.99.118:5062 PCMU/8000 20 ms 160 samples
    2009-12-28 16:19:39.663927 [DEBUG] sofia_glue.c:3071 Audio Codec Compare [iLBC:96:8000:0]/[PCMU:0:8000:20]
    2009-12-28 16:19:39.663927 [DEBUG] sofia_glue.c:3071 Audio Codec Compare [iLBC:96:8000:0]/[PCMA:8:8000:20]
    2009-12-28 16:19:39.663927 [DEBUG] sofia_glue.c:3071 Audio Codec Compare [iLBC:96:8000:0]/[GSM:3:8000:20]
    2009-12-28 16:19:39.663927 [NOTICE] sofia.c:3498 Hangup sofia/external/+12064194005@192.168.99.118:5062 [CS_NEW] [INCOMPATIBLE_DESTINATION]

    Any ideas?

  2. for new freeswitch users, could you identify where these configuration files are placed and the version of freeswitch you are using?

    are these configs still relevant (working) for the current state of google voice / gizmo (post acquisition)?