This is some brand new stuff to gateway chat/presence/audio from one protocol to another
So far it only works between google/jingle and SIP
All I had to test the SIP end was X-Lite and Eyebeam and GoogleTalk on the jingle end.
With this setup registered X-Lite's can chat with each other and call each other
as well as X-Lite to GoogleTalk and GoogleTalk to X-Lite audio calls.
Chat May also be done between X-Lite and jabber
You'll also need a jabber server configured for component login so you can interface.
We have only tested with jabberd2 so far.
Configure DNS so srv records for jabber for your subdomain (fs.mydomain.com in the example)
so the jabber records are pointed at your jabber server.
RELEVANT CONFIGS
<!-- Brian has no jingle support so send calls to him over to his iax url -->
<extension name="bkw">
<condition field="destination_number" expression="^jingle\+brian@agents.cylynx.com$">
<action application="bridge" data="iax/guest@brianwest.homeunix.org/9184290404"/>
</condition>
</extension>
<!-- Assumption is made here that both sip and jingle have the same profile/domain name as documented below -->
<extension name="jingle2sip">
<condition field="source" expression="mod_dingaling"/>
<condition field="destination_number" expression="^sip\+([^\@]+)\@(.*)$">
<action application="bridge" data="sofia/$2/$1%$2"/>
</condition>
</extension>
<extension name="sip2jingle">
<condition field="source" expression="mod_sofia"/>
<condition field="destination_number" expression="^jingle\+([^\@]+)\@(.*)$">
<action application="bridge" data="dingaling/sip+${sip_fromuser}@${sip_fromhost}/$1@$2"/>
</condition>
</extension>
<configuration name="sofia.conf" description="sofia Endpoint">
<global_settings>
<param name="log-level" value="0"/>
</global_settings>
<profiles>
<profile name="fs.mydomain.com">
<registrations/>
<settings>
<param name="debug" value="1"/>
<param name="rfc2833-pt" value="101"/>
<param name="sip-port" value="5060"/>
<param name="dialplan" value="XML"/>
<param name="dtmf-duration" value="100"/>
<param name="codec-prefs" value="PCMU"/>
<param name="codec-ms" value="20"/>
<param name="accept-blind-reg" value="true"/>
<param name="manage-presence" value="true"/>
<!--<param name="full-id-in-dialplan" value="true"/>-->
<!--<param name="auth-calls" value="true"/>-->
<!--<param name="auth-all-packets" value="true"/>-->
<param name="use-rtp-timer" value="true"/>
<param name="rtp-timer-name" value="soft"/>
<param name="rtp-ip" value="100.200.100.200"/>
<param name="sip-ip" value="fs.mydomain.com"/>
</settings>
</profile>
</profiles>
</configuration>
<configuration name="dingaling.conf" description="XMPP Jingle Endpoint">
<settings>
<param name="debug" value="0"/>
<param name="codec-prefs" value="PCMU"/>
</settings>
<profile type="component">
<param name="name" value="fs.mydomain.com"/>
<param name="password" value="secret"/>
<param name="dialplan" value="XML"/>
<param name="rtp-ip" value="208.64.200.42"/>
<param name="server" value="jabber.freeswitch.org:5347"/>
<!-- disable to trade async for more calls -->
<param name="use-rtp-timer" value="true"/>
<param name="exten" value="_auto_"/>
<!--<param name="vad" value="both"/>-->
</profile>
</configuration>
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3115 d0543943-73ff-0310-b7d9-9358b9ac24b2
set this sometime before an origination (bridge etc).
<action application="set" data="propagate_vars=my_cool_var1,my_cool_var2,foo,bar"/>
and they should be cloned over to the new channel when it's substantiated
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3101 d0543943-73ff-0310-b7d9-9358b9ac24b2
This adds the | to the originate syntax
making it possible to put a list of urls to call and attempt
to call them one at a time until one of them is successful or there
are none of them left
The original & delimited list is valid for each step in the | separated
list
Example
sofia/test-int/3920@10.3.3.104|sofia/test-int/3910@10.3.3.104&sofia/test-int/3920@10.3.3.104
first call 1 location and if that results in a failure, try 2 at once on the next go
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2996 d0543943-73ff-0310-b7d9-9358b9ac24b2
Transfers work better when both legs of the call live in thier own channel eg bridged calls
A -> B where you want a to make B -> C
when you route a call to an IVR or playback app you are not really bridging you have
A all alone executing the script so it's hard to transfer that.
I do have it aparently working but it's goofy and you are better off
putting your IVR on it's own switch so they are all inbound calls
then you have A -> B -> IVR
now A can happily transfer B who can stay on line with IVR without stopping
the execution. You can also accomplish this by calling in a loop back to the same box
if you dont want to have 2 boxes.
Also the beginning effort at bridging calls with no media is here
set this magic variable in your dialplan to convince mod_sofia
to pass A's sdp as it's own to B and return B's sdp back to A on 200 or 183
<action application="set" data="no_media=true"/>
<action application="bridge" data="sofia/id@host.com"/>
You will need a new sofia tarball for this version
There is a bunch of other odds and ends added like a function or 2 etc
Oh,
And don't be suprised if it introduces all kinds of bugs!
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2992 d0543943-73ff-0310-b7d9-9358b9ac24b2