663 Commits

Author SHA1 Message Date
Anthony Minessale
9ab2b1db57 Media Management (Sponsored By Front Logic)
This modification makes it possible to change the media path of session in the switch on-the-fly and from the dialplan.
It adds some API interface calls usable from a remote client such as mod_event_socket or the test console.

1) media [off] <uuid>

   Turns on/off the media on the call described by <uuid>
   The media will be redirected as desiered either into the switch or point to point.

2) hold [off] <uuid>

   Turns on/off endpoint specific hold state on the session described by <uuid>

3) broadcast <uuid> "<path>[ <timer_name>]" or "speak:<tts_engine>|<tts_voice>|<text>[|<timer_name>]" [both]

   A message will be sent to the call described by uuid instructing it to play the file or speak the text indicated.

   If the 'both' option is specified both ends of the call will hear the message otherwise just the uuid specified
   will hear the message.

   During playback when only one side is hearing the message the other end will hear silence.

   If media is not flowing across the switch when the message is broadcasted, the media will be directed to the
   switch for the duration of the call and then returned to it's previous state.


Also the no_media=true option in the dialplan before a bridge makes it possible to place a call while proxying the session
description from one endpoint to the other and establishing an immidiate point-to-point media connection with no media
on the switch.

<action application="set" data="no_media=true"/>
<action application="bridge" data="sofia/mydomain.com/myid@myhost.com"/>


*NOTE* when connecting two outbound legs by using the "originate" api command with an extension that has no_media=true enabled,
the media for the first leg will be engaged with the switch until the second leg has answered and the other session description
is available to establish a point to point connection at which time point-to-point mode will be enabled.

*NOTE* it is reccommended you rebuild FreeSWITCH with "make sure" as there have been some changes to the core.



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3245 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-31 21:38:06 +00:00
Michael Jerris
1e4ad3c5ae Update to newest sofia snapshot. This includes many fixes mostly for sdp negotiation.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3244 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-31 20:48:16 +00:00
Michael Jerris
7a36a5d969 Update to new sofia tarball to tweak sdp behavior to use the correct c line on re-invite.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3241 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-31 05:43:53 +00:00
Michael Jerris
3146d99422 use switch_payload_t for the rtp payload numbers.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3240 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-31 05:42:40 +00:00
Anthony Minessale
d1fe31d8c3 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3237 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-30 20:54:24 +00:00
Anthony Minessale
a4a79bcff1 let sofia have here way
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3236 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-30 15:27:05 +00:00
Anthony Minessale
718ace8b83 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3227 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-29 17:57:55 +00:00
Anthony Minessale
082a5a03c0 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3226 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-29 15:36:23 +00:00
Michael Jerris
18f51bee7b update to new sofia snapshot. This fixes several race conditions, ref count problems, and double frees that were happening in the sofia library and fixes segfaults under heavy load and a segfault on cancel when using 100rel while awaiting a prack. Sofia should be much more stable now, please beat it up and let us know.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3220 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-27 23:20:10 +00:00
Anthony Minessale
0532a56c7e sigh
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3218 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-27 15:20:14 +00:00
Michael Jerris
a203d22fe2 wrong version, can't make up my mind.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3217 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-27 15:05:41 +00:00
Michael Jerris
5432fbab75 wrong version
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3216 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-27 14:51:47 +00:00
Anthony Minessale
cbdcbcf87a update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3214 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-26 20:02:57 +00:00
Anthony Minessale
da76d9327b update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3212 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-26 16:13:48 +00:00
Anthony Minessale
a3839376f7 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3210 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-26 15:00:46 +00:00
Michael Jerris
08b2207573 make sofia a bit more stable after an outbound register. Please note, we are working on some issues in sofia, revisions after last weekend are currently not considered stable under some conditions.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3208 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-26 11:47:22 +00:00
Anthony Minessale
6a6c57f0f6 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3205 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-25 18:49:34 +00:00
Michael Jerris
ee086006d5 why malloc?
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3204 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-25 18:00:14 +00:00
Anthony Minessale
d58c1d05b9 fix
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3203 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-25 17:59:50 +00:00
Michael Jerris
ac6f80b95d only need realm on auth
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3200 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-25 17:00:57 +00:00
Anthony Minessale
305bc19458 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3199 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-25 17:00:23 +00:00
Anthony Minessale
a592674795 sip signalling
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3197 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-25 15:46:42 +00:00
Anthony Minessale
61f7148941 tidy up
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3196 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-25 14:01:03 +00:00
Anthony Minessale
08442ff2c4 signalling refactoring for media etc
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3192 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-25 04:28:49 +00:00
Michael Jerris
1f2d19e28e update more sip cause code to qsig cause code mappings from rfc 4497 sections 8.4.1 and 8.4.4
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3190 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-25 03:45:20 +00:00
Michael Jerris
0fb5729590 add the start of DTMF INFO support from Paul Tinsley. thanks.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3186 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-24 22:11:25 +00:00
Anthony Minessale
521e3b0a55 figure out when we are on hold
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3185 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-24 21:31:39 +00:00
Anthony Minessale
10ead46ffd update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3181 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-24 18:50:52 +00:00
Anthony Minessale
bfab0a6efc minor tweak
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3180 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-24 18:23:23 +00:00
Anthony Minessale
04546b6b93 fix sillyness
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3171 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-24 01:29:04 +00:00
Michael Jerris
39df1481c2 move to new sofia tarball for windows build, this new tarball includes fix for build w/o glib on *nix, fix for segfault on cancel during early media, and proper implementation of handing subscribe and publish requests up to the application (removes our private hacks to enable this behavior).
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3167 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-23 20:39:48 +00:00
Anthony Minessale
b30eb82b84 new sofia rollout
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3166 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-23 20:28:55 +00:00
Anthony Minessale
776919d5fd tweeks
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3164 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-23 17:34:03 +00:00
Michael Jerris
90fe19867c initialize to null so we can check for null before we free.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3156 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-22 15:46:23 +00:00
Michael Jerris
49a130962c code before declaration
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3155 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-22 15:46:01 +00:00
Anthony Minessale
aba9c77c35 your run-of-the mill nightmarish attempt at normalizing not one crazy protocol but many....
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3151 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-22 04:37:19 +00:00
Anthony Minessale
f4b25c70b4 add viles patch
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3140 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-21 22:54:55 +00:00
Anthony Minessale
59f3204d61 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3130 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-21 01:20:46 +00:00
Anthony Minessale
a67dc0aab6 fix
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3126 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 22:26:06 +00:00
Anthony Minessale
343fd5cea5 refactor the presence stuff and add it to mod_conference
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3124 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 22:11:26 +00:00
Anthony Minessale
db2753b78a this ascii 20 ' ' sponsored by Matt Klein aka Vile
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3122 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 13:32:44 +00:00
Anthony Minessale
747ab41f78 bs
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3118 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 06:44:58 +00:00
Anthony Minessale
3a32d9e53c Presence and Chat Gateway Code
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
2006-10-20 06:17:00 +00:00
Michael Jerris
e70a025a88 fix segfault?
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3114 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 05:45:52 +00:00
Paul Tinsley
eaf4409b45 Fix for broken trunk commit, setting contact_str size to the size of sql variable it's stored in [contact VARCHAR(1024)] + 1 for the null.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3113 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 03:33:49 +00:00
Anthony Minessale
b9a215313d update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3112 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-19 19:39:18 +00:00
Michael Jerris
e6b81ff14a remove useless comment.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3109 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-19 17:09:48 +00:00
Michael Jerris
87aaab80d5 Get Alert-Info from inbound invite and set to the channel variable so that it can be passed through to the other end of the call if it is a sip call.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3108 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-19 17:04:58 +00:00
Michael Jerris
c1f346b99e change to switch_mprintf
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3107 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-19 16:42:41 +00:00
Anthony Minessale
12243c194e tidy up, note yesterday's propagate_vars was changed to export_vars
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3106 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-19 16:33:54 +00:00