[Freeswitch-users] Google voice call fails
Terry Barnum
terry at digital-outpost.com
Mon Sep 2 10:29:44 MSD 2013
Thanks for the encouraging words Jay. I also spent a little time deciding which telephony package to try although it didn't take too long to decide on FS. I have been scouring the wiki, JIRA and the Freeswitch book but it's slow going because I'm not exactly sure what the underlying issue is with my broken outbound google voice. It will likely turn out to be a stupid configuration error but deciphering what's relevant/important in debug output has been a slow process since everything is so unfamiliar.
If it ends up being a doofus syntax error I'll have to get this T-shirt I saw recently:
Let's eat grandma!
Let's eat, grandma!
Punctuation save lives!
-Terry
On Sep 1, 2013, at 11:00 PM, Jayanth Acharya wrote:
> Terry,
>
> Unable to contribute to this discussion, just wanted to thank you for taking time to share your learning. I'm pretty new to FS, but what I've been enjoying about FS is that, usually Wiki's contain (almost) everything needed to get something going, or searching this list (thanks to threads like this one) or the JIRA comments helps a lot. Of course, this self-learning the hard-way takes time, but for me helps remember and understand things better.
>
> I've to admit that I'm flirting a bit on the sidelines with Asterisks, especially as I keep getting blocked and feel that I am not making much progress with FS, but keep coming back.
>
> Not sure, but probably the list is a bit silent on features that are niche, and not used by mainstream users. That's precisely what I've found. Pretty usual for any FOSS project. Please do keep sharing your learning here.
>
> Jay.
>
>
> On Mon, Sep 2, 2013 at 6:55 AM, Terry Barnum <terry at digital-outpost.com> wrote:
> Since I'm sure everyone is anxiously awaiting the next installment of my google voice monologue... ;)
>
> So for google inbound calls I somehow overlooked that call screening needed to be enabled ("execute_on_answer=send_dtmf 1") so I added it and now inbound google voice calls work properly. Does this imply that NAT is being successfully traversed and this is not the reason for the google outbound problem?
>
> Looking further at the dingaling debug output for google outbound, there's an empty decline tag and also a "Caller disconnected." As an inexperienced dingaling(!) user I'm not sure how to interpret this--the caller *has been* disconnected? Meaning google terminated the call? Or the caller *has* disconnected? Meaning freeswitch terminated the call? Any ideas why this is failing?
>
> 2013-09-01 17:44:27.625074 [DEBUG] mod_dingaling.c:3577 3 rtp candidates
> 2013-09-01 17:44:27.625074 [DEBUG] mod_dingaling.c:3597 candidate 173.194.79.127:19305 PASS ACL wan.auto
> 2013-09-01 17:44:27.625074 [DEBUG] mod_dingaling.c:3651 Acceptable rtp Candidate 173.194.79.127:19305
> 2013-09-01 17:44:27.625074 [DEBUG] mod_dingaling.c:3577 0 video_rtp candidates
> 2013-09-01 17:44:27.625074 [DEBUG] mod_dingaling.c:3577 0 rtcp candidates
> 2013-09-01 17:44:27.625074 [DEBUG] mod_dingaling.c:3577 0 video_rtcp candidates
> 2013-09-01 17:44:27.625074 [NOTICE] libdingaling.c:1749 SecSEND:
> -------------------------------------------------------------------------------
> <iq type="result" to="+760XXXXXXX at voice.google.com/srvenc-y7H55UzKUf9oV+YD+bPou9s/IeoQd1fm" from="USER at gmail.com/talkEAB90707" id="jingle:10.76.86.101-7841406:1:C7EE502F">
> <query></query>
> </iq>
>
> 2013-09-01 17:44:28.084920 [INFO] libdingaling.c:1747 SecRECV:
> -------------------------------------------------------------------------------
> <iq from="+760XXXXXXX at voice.google.com/srvenc-y7H55UzKUf9oV+YD+bPou9s/IeoQd1fm" to="USER at gmail.com/talkEAB90707" id="jingle:10.76.86.101-7841406:1:C7EE5032" type="set">
> <ses:session type="terminate" id="6914264867" initiator="USER at gmail.com/talkEAB90707" xmlns:ses="http://www.google.com/session">
> <ses:reason>
> <ses:decline></ses:decline>
> <ses:text>Caller disconnected</ses:text>
> </ses:reason>
> <pho:call-ended xmlns:pho="http://www.google.com/session/phone"></pho:call-ended>
> </ses:session>
> </iq>
>
> 2013-09-01 17:44:28.084920 [CRIT] libdingaling.c:391 Message for Session 6914264867
> 2013-09-01 17:44:28.084920 [DEBUG] mod_dingaling.c:4114 using Existing session for 6914264867
> 2013-09-01 17:44:28.084920 [DEBUG] mod_dingaling.c:4434 hungup dingaling/gtalk/+760XXXXXXX at voice.google.com
>
> Thanks,
> -Terry
>
> On Sep 1, 2013, at 10:45 AM, Terry Barnum wrote:
>
> > I stopped fs, did a fresh git clone git://git.freeswitch.org/freeswitch.git, edited modules.conf and did a make && make install but still no joy making a call via google voice. dingaling status shows AUTHORIZED. FreeSWITCH (Version 1.5.6b git dd6b8a8 2013-08-31 03:41:31Z)
> >
> > I set dingaling_conf.xml to debug and it reports an error 302 when attempting a call. I see others have had this error in the past but I couldn't find a definitive answer. Can anyone shed light on this? Thanks for any pointers. Here's a snippet of the dingaling debug output:
> >
> > 2013-09-01 08:48:24.504839 [NOTICE] libdingaling.c:1749 SecSEND:
> > -------------------------------------------------------------------------------
> > <iq xmlns="jabber:client" from="USER at gmail.com/talk5CB5BB1C" to="+760XXXXXXX at voice.google.com" type="set" id="300">
> > <ses:session xmlns:ses="http://www.google.com/session" type="initiate" id="2395886559" initiator="USER at gmail.com/talk5CB5BB1C">
> > <pho:description xmlns:pho="http://www.google.com/session/phone">
> > <pho:payload-type id="0" name="PCMU" clockrate="8000" bitrate="64000" xmlns:pho="http://www.google.com/session/phone"></pho:payload-type>
> > </pho:description>
> > </ses:session>
> > </iq>
> >
> > 2013-09-01 08:48:24.604828 [INFO] libdingaling.c:1747 SecRECV:
> > -------------------------------------------------------------------------------
> > <iq from="+760XXXXXXX at voice.google.com" to="USER at gmail.com/talk5CB5BB1C" type="error" id="300">
> > <ses:session type="initiate" id="2395886559" initiator="USER at gmail.com/talk5CB5BB1C" xmlns:ses="http://www.google.com/session">
> > <pho:description xmlns:pho="http://www.google.com/session/phone">
> > <pho:payload-type id="0" name="PCMU" clockrate="8000" bitrate="64000"></pho:payload-type>
> > </pho:description>
> > </ses:session>
> > <error code="302" type="modify">
> > <redirect xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">xmpp:+760XXXXXXX at voice.google.com/srvenc-w8W24IH4ZBGhR6mQVmzatQ==</redirect>
> > <ses:redirect xmlns:ses="http://www.google.com/session">xmpp:+760XXXXXXX at voice.google.com/srvenc-w8W24IH4ZBGhR6mQVmzatQ==</ses:redirect>
> > </error>
> > </iq>
> >
> > -Terry
> >
> > On Aug 29, 2013, at 8:43 PM, Terry Barnum wrote:
> >
> >> Hi FS gurus,
> >>
> >> Would someone be so kind as to post an example that shows what Jeff is describing about IP address settings in the dingaling profile for a machine with a private IP? Are we talking about the profile in conf/jingle_profiles? The rtp-ip and ext-rtp-ip settings?
> >>
> >> Here's an excerpt of the log. As a freeswitch noob I'm unclear about what exactly is failing.
> >> ...
> >> Dialplan: sofia/internal/102 at 172.16.1.199 parsing [default->gvoice_out] continue=false
> >> Dialplan: sofia/internal/102 at 172.16.1.199 Regex (PASS) [gvoice_out] destination_number(18581234567) =~ /^1(\d{10})$/ break=on-false
> >> Dialplan: sofia/internal/102 at 172.16.1.199 Action set(call_direction=outbound)
> >> Dialplan: sofia/internal/102 at 172.16.1.199 Action set(hangup_after_bridge=true)
> >> Dialplan: sofia/internal/102 at 172.16.1.199 Action set(effective_caller_id_name=${outbound_caller_id_name})
> >> Dialplan: sofia/internal/102 at 172.16.1.199 Action set(effective_caller_id_number=${outbound_caller_id_number})
> >> Dialplan: sofia/internal/102 at 172.16.1.199 Action set(inherit_codec=true)
> >> Dialplan: sofia/internal/102 at 172.16.1.199 Action bridge(dingaling/gtalk/+7609876543 at voice.google.com)
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_core_state_machine.c:167 (sofia/internal/102 at 172.16.1.199) State Change CS_ROUTING -> CS_EXECUTE
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_core_session.c:1341 Send signal sofia/internal/102 at 172.16.1.199 [BREAK]
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_core_state_machine.c:471 (sofia/internal/102 at 172.16.1.199) State ROUTING going to sleep
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_core_state_machine.c:416 (sofia/internal/102 at 172.16.1.199) Running State Change CS_EXECUTE
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_core_state_machine.c:478 (sofia/internal/102 at 172.16.1.199) State EXECUTE
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_sofia.c:230 sofia/internal/102 at 172.16.1.199 SOFIA EXECUTE
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_core_state_machine.c:209 sofia/internal/102 at 172.16.1.199 Standard EXECUTE
> >> EXECUTE sofia/internal/102 at 172.16.1.199 hash(insert/172.16.1.199-spymap/102/1ffd9854-0ecb-11e3-bfcb-8d6f93e4c391)
> >> EXECUTE sofia/internal/102 at 172.16.1.199 hash(insert/172.16.1.199-last_dial/102/18581234567)
> >> EXECUTE sofia/internal/102 at 172.16.1.199 hash(insert/172.16.1.199-last_dial/global/1ffd9854-0ecb-11e3-bfcb-8d6f93e4c391)
> >> EXECUTE sofia/internal/102 at 172.16.1.199 export(RFC2822_DATE=Mon, 26 Aug 2013 20:45:32 -0700)
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_channel.c:1222 EXPORT (export_vars) [RFC2822_DATE]=[Mon, 26 Aug 2013 20:45:32 -0700]
> >> EXECUTE sofia/internal/102 at 172.16.1.199 set(call_direction=outbound)
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_dptools.c:1393 sofia/internal/102 at 172.16.1.199 SET [call_direction]=[outbound]
> >> EXECUTE sofia/internal/102 at 172.16.1.199 set(hangup_after_bridge=true)
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_dptools.c:1393 sofia/internal/102 at 172.16.1.199 SET [hangup_after_bridge]=[true]
> >> EXECUTE sofia/internal/102 at 172.16.1.199 set(effective_caller_id_name=Terry)
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_dptools.c:1393 sofia/internal/102 at 172.16.1.199 SET [effective_caller_id_name]=[Terry]
> >> EXECUTE sofia/internal/102 at 172.16.1.199 set(effective_caller_id_number=760-999-9999)
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_dptools.c:1393 sofia/internal/102 at 172.16.1.199 SET [effective_caller_id_number]=[760-999-9999]
> >> EXECUTE sofia/internal/102 at 172.16.1.199 set(inherit_codec=true)
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_dptools.c:1393 sofia/internal/102 at 172.16.1.199 SET [inherit_codec]=[true]
> >> EXECUTE sofia/internal/102 at 172.16.1.199 bridge(dingaling/gtalk/+7609876543 at voice.google.com)
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_channel.c:1176 sofia/internal/102 at 172.16.1.199 EXPORTING[export_vars] [domain_name]=[172.16.1.199] to event
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_channel.c:1176 sofia/internal/102 at 172.16.1.199 EXPORTING[export_vars] [RFC2822_DATE]=[Mon, 26 Aug 2013 20:45:32-0700] to event
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_ivr_originate.c:2060 Parsing global variables
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_dingaling.c:1028 Set Local Key [1 AES_CM_128_HMAC_SHA1_80 inline:7FJY7u0J8fngzGK3msd2SKzr/LMLZTkJ+QRamvwG]
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_dingaling.c:1028 Set Local Key [1 AES_CM_128_HMAC_SHA1_80 inline:dP4OPlIvkj7VWF0evrM1gjHC1nBS1Y/YKMfrfa7N]
> >> 2013-08-26 20:45:32.847979 [NOTICE] switch_channel.c:1030 New Channel dingaling/gtalk/+7609876543 at voice.google.com [200e0388-0ecb-11e3-bfdb-8d6f93e4c391]
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_dingaling.c:2665 (dingaling/gtalk/+7609876543 at voice.google.com) State Change CS_NEW -> CS_INIT
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_core_session.c:1341 Send signal dingaling/gtalk/+7609876543 at voice.google.com [BREAK]
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_dingaling.c:2095 dingaling/gtalk/+7609876543 at voice.google.com CHANNEL KILL
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_core_state_machine.c:416 (dingaling/gtalk/+7609876543 at voice.google.com) Running State Change CS_INIT
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_core_state_machine.c:455 (dingaling/gtalk/+7609876543 at voice.google.com) State INIT
> >> 2013-08-26 20:45:32.847979 [NOTICE] mod_dingaling.c:1816 Ring-Ready dingaling/gtalk/+7609876543 at voice.google.com!
> >> 2013-08-26 20:45:32.847979 [DEBUG] switch_channel.c:3180 (dingaling/gtalk/+7609876543 at voice.google.com) Callstate Change DOWN -> RINGING
> >> 2013-08-26 20:45:32.847979 [DEBUG] mod_dingaling.c:1692 Don't have my audio codec yet here's one
> >> 2013-08-26 20:45:32.867959 [DEBUG] mod_dingaling.c:1738 Don't have video codec.
> >> 2013-08-26 20:45:32.867959 [DEBUG] mod_dingaling.c:1749 Send Describe [PCMU at 8000]
> >> 2013-08-26 20:45:33.288612 [DEBUG] mod_dingaling.c:4114 using Existing session for 2155444888
> >> 2013-08-26 20:45:33.288612 [DEBUG] mod_dingaling.c:1738 Don't have video codec.
> >> 2013-08-26 20:45:33.288612 [DEBUG] mod_dingaling.c:1749 Send Describe [PCMU at 8000]
> >> 2013-08-26 20:45:33.288612 [DEBUG] mod_dingaling.c:1560 Stun Lookup Local 172.16.1.199:32116
> >> 2013-08-26 20:45:33.408000 [INFO] mod_dingaling.c:1570 Stun Success 72.197.53.144:33430
> >> 2013-08-26 20:45:33.408000 [DEBUG] mod_dingaling.c:1584 Send rtp Candidate 72.197.53.144:33430 [3ToneGgvu6KLidpo]
> >> 2013-08-26 20:45:33.408000 [DEBUG] mod_dingaling.c:1560 Stun Lookup Local 172.16.1.199:32117
> >> 2013-08-26 20:45:33.568012 [INFO] mod_dingaling.c:1570 Stun Success 72.197.53.144:39390
> >> 2013-08-26 20:45:33.568012 [DEBUG] mod_dingaling.c:1584 Send rtcp Candidate 72.197.53.144:39390 [IYN0LV3N3sDDCJws]
> >> 2013-08-26 20:45:33.568012 [DEBUG] mod_dingaling.c:1627 Accepted 0 of 0 rtp candidates.
> >> 2013-08-26 20:45:33.568012 [DEBUG] mod_dingaling.c:1629 Accepted 0 of 0 rtcp candidates.
> >> 2013-08-26 20:45:33.568012 [DEBUG] mod_dingaling.c:1632 Accepted 0 of 0 video_rtp candidates
> >> 2013-08-26 20:45:33.568012 [DEBUG] mod_dingaling.c:1635 Accepted 0 of 0 video_rctp candidates
> >> 2013-08-26 20:45:34.427964 [DEBUG] sofia_reg.c:2232 Changing expire time to 90 by request of proxy sip:callcentric.com
> >> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:4114 using Existing session for 2155444888
> >> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3577 3 rtp candidates
> >> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3597 candidate 74.125.141.127:19305 PASS ACL wan.auto
> >> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3651 Acceptable rtp Candidate 74.125.141.127:19305
> >> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3577 0 video_rtp candidates
> >> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3577 0 rtcp candidates
> >> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3577 0 video_rtcp candidates
> >> 2013-08-26 20:45:35.208090 [DEBUG] mod_dingaling.c:4114 using Existing session for 2155444888
> >> 2013-08-26 20:45:35.208090 [DEBUG] mod_dingaling.c:4434 hungup dingaling/gtalk/+7609876543 at voice.google.com
> >> ...
> >>
> >> Thanks for any help,
> >> -Terry
> >>
> >> On Aug 28, 2013, at 6:03 PM, Terry Barnum wrote:
> >>
> >>> Sorry, I don't know what's considered "set correctly" in the dingaling profile. Here's what's in jingle_profiles/v_172.16.1.199_gtalk.xml. I've also tried setting ext-rtp-ip to $${external_rtp_ip}.
> >>>
> >>> <include>
> >>> <profile type="client">
> >>> <param name="name" value="gtalk"/>
> >>> <param name="login" value="USER at gmail.com/talk"/>
> >>> <param name="password" value="MYPASS"/>
> >>> <param name="dialplan" value="XML"/>
> >>> <param name="context" value="public"/>
> >>> <param name="message" value="Jingle all the way"/>
> >>> <param name="rtp-ip" value="auto"/>
> >>> <param name="ext-rtp-ip" value="auto-nat"/>
> >>> <param name="auto-login" value="true"/>
> >>> <param name="sasl" value="plain"/>
> >>> <param name="server" value="talk.google.com"/>
> >>> <param name="tls" value="true"/>
> >>> <param name="use-rtp-timer" value="true"/>
> >>> <param name="exten" value="102"/>
> >>> <param name="vad" value="both"/>
> >>> <param name="candidate-acl" value="wan.auto"/>
> >>> <param name="local-network-acl" value="localnet.auto"/>
> >>> </profile>
> >>> </include>
> >>>
> >>> Thanks for any pointers.
> >>>
> >>> -Terry
> >>>
> >>> On Aug 26, 2013, at 9:44 PM, Jeff Leung wrote:
> >>>
> >>>> Check to see if your IP addressing settings are set correctly within the
> >>>> dingaling profile.
> >>>>
> >>>> Most of the times you'll need to have the profile to listen internally but
> >>>> have dingaling to specify an external IP address when it talks to the
> >>>> outside world.
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: freeswitch-users-bounces at lists.freeswitch.org [mailto:freeswitch-
> >>>>> users-bounces at lists.freeswitch.org] On Behalf Of Terry Barnum
> >>>>> Sent: Monday, August 26, 2013 9:33 PM
> >>>>> To: FreeSWITCH Users Help
> >>>>> Subject: [Freeswitch-users] Google voice call fails
> >>>>>
> >>>>> I've been reading the freeswitch book (great read!) and playing with my
> >>>> first
> >>>>> freeswitch install on a Mac mini host with freeswitch installed via git
> >>>> into a
> >>>>> Virtualbox guest CentOS 6.4. It's working with a couple X-Lite softphones
> >>>> and
> >>>>> a Yealink T32G, internally between extensions, using a free DID to test
> >>>>> incoming calls and a free but limited iptel account to test outbound.
> >>>>>
> >>>>> My next step was to try and play with real outbound calls so I followed
> >>>> these
> >>>>> instructions for Google voice:
> >>>>> <http://wiki.freeswitch.org/wiki/Google_Voice> but outbound calls fail and
> >>>>> are hung up. I disabled the h264 codec in dingaling.conf.xml leaving just
> >>>>> PCMU but no change. xmpp appears to be connecting and authenticating to
> >>>>> google correctly.
> >>>>>
> >>>>> The log of an attempted call (edited for privacy) is at
> >>>>> <http://pastebin.freeswitch.org/21338>
> >>>>>
> >>>>> Snippets of the log that looks suspicious to a freeswitch noob:
> >>>>>
> >>>>> 2013-08-26 20:45:33.568012 [DEBUG] mod_dingaling.c:1627 Accepted 0 of 0
> >>>>> rtp candidates.
> >>>>> 2013-08-26 20:45:33.568012 [DEBUG] mod_dingaling.c:1629 Accepted 0 of 0
> >>>>> rtcp candidates.
> >>>>> 2013-08-26 20:45:33.568012 [DEBUG] mod_dingaling.c:1632 Accepted 0 of 0
> >>>>> video_rtp candidates
> >>>>> 2013-08-26 20:45:33.568012 [DEBUG] mod_dingaling.c:1635 Accepted 0 of 0
> >>>>> video_rctp candidates
> >>>>> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:4114 using Existing
> >>>>> session for 2155444888
> >>>>> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3577 3 rtp candidates
> >>>>> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3597 candidate
> >>>>> 74.125.141.127:19305 PASS ACL wan.auto
> >>>>> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3651 Acceptable rtp
> >>>>> Candidate 74.125.141.127:19305
> >>>>> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3577 0 video_rtp
> >>>>> candidates
> >>>>> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3577 0 rtcp candidates
> >>>>> 2013-08-26 20:45:34.649239 [DEBUG] mod_dingaling.c:3577 0 video_rtcp
> >>>>> candidates
> >>>>> 2013-08-26 20:45:35.208090 [DEBUG] mod_dingaling.c:4114 using Existing
> >>>>> session for 2155444888
> >>>>> 2013-08-26 20:45:35.208090 [DEBUG] mod_dingaling.c:4434 hungup
> >>>>> dingaling/gtalk/+7609876543 at voice.google.com
> >>>>>
> >>>>> Where should I be looking to try and fix? Freeswitch is behind the
> >>>> firewall
> >>>>> with a private IP but STUN says it's working (or at least it looks that
> >>>> way to
> >>>>> me).
> >>
> >>
> >> _________________________________________________________________________
> >> Professional FreeSWITCH Consulting Services:
> >> consulting at freeswitch.org
> >> http://www.freeswitchsolutions.com
> >>
> >>
> >>
> >>
> >> Official FreeSWITCH Sites
> >> http://www.freeswitch.org
> >> http://wiki.freeswitch.org
> >> http://www.cluecon.com
> >>
> >> FreeSWITCH-users mailing list
> >> FreeSWITCH-users at lists.freeswitch.org
> >> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> http://www.freeswitch.org
> >>
> >
> >
> > _________________________________________________________________________
> > Professional FreeSWITCH Consulting Services:
> > consulting at freeswitch.org
> > http://www.freeswitchsolutions.com
> >
> >
> >
> >
> > Official FreeSWITCH Sites
> > http://www.freeswitch.org
> > http://wiki.freeswitch.org
> > http://www.cluecon.com
> >
> > FreeSWITCH-users mailing list
> > FreeSWITCH-users at lists.freeswitch.org
> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> > http://www.freeswitch.org
> >
>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
>
>
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
>
>
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
Join us at ClueCon 2013 Aug 6-8, 2013
More information about the FreeSWITCH-users
mailing list