Commit Graph

128 Commits

Author SHA1 Message Date
Michael Jerris ac065100b6 fix build on msvc.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5037 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-04-29 01:51:32 +00:00
Anthony Minessale 6a392d2577 add locking to vars
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5035 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-04-28 21:48:03 +00:00
Anthony Minessale 8755dea7b8 add backslash to escape the backslash escape char in channel variable expansion
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4996 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-04-21 14:23:12 +00:00
Anthony Minessale d73dc724ef add backslash escape char in channel variable expansion
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4995 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-04-21 14:17:43 +00:00
Anthony Minessale f40f87ebca <refactor>
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4944 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-04-16 16:53:30 +00:00
Anthony Minessale eb2124ae32 refactor to avoid some potential issues with channels that are hungup instantly after being answered
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4926 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-04-13 22:15:58 +00:00
Anthony Minessale ad7a1b2e67 hold stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4816 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-03-30 22:13:19 +00:00
Anthony Minessale c15d7892c0 indent again
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4799 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-03-30 00:15:25 +00:00
Anthony Minessale debdfb1aab indent
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4798 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-03-30 00:13:31 +00:00
Anthony Minessale 3a54126261 spring cleaning
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4795 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-03-29 22:31:56 +00:00
Anthony Minessale 8a4406ece2 Addition of scheduler engine and a few applications to use it.
This patch adds a scheduler thread to the core and moves the heartbeat
event to use the new scheduler as an example.

Also The following features are implemented that use this scheduler:

sched_hangup dialplan application:

<action application="sched_hangup" data="+10 normal_clearing bleg"/>

** The cause code is optional and the optional bleg keyword will only hangup the
   channel the current channel is bridged to if the call is in a bridge.

sched_transfer dialplan application:

<action application="sched_transfer" data="+10 1000 XML default"/>

** The last 2 args (dialplan and context) are optional

sched_broadcast dialplan application:

<action application="sched_broadcast" data="+10 playback:/tmp/foo.wav"/>
<action application="sched_broadcast" data="+10 playback!normal_clearing:/tmp/foo.wav"/>

** The optional !<cause_code> can be added to make the channel hangup after broadcasting the file.


sched_hangup api function:

sched_hangup +10 <uuid_string> normal_clearing

** The cause code is optional

sched_transfer api function:

sched_transfer +10 <uuid_string> 1000 XML default

** The last 2 args (dialplan and context) are optional

sched_broadcast api function:

sched_broadcast +10 <uuid_str> playback:/tmp/foo.wav
sched_broadcast +10 <uuid_str> playback!normal_clearing:/tmp/foo.wav

** The optional !<cause_code> can be added to make the channel hangup after broadcasting the file.

The new C functions in the core are documented in the doxeygen.

*NOTE* This commit should satisfy at least 2 bounties on the wiki



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4785 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-03-28 23:37:12 +00:00
Michael Jerris 34359cb61c fix seg.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4777 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-03-28 12:30:20 +00:00
Anthony Minessale 9bacb04df9 cleanup
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4720 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-03-21 21:23:40 +00:00
Anthony Minessale 78c058423b tweaks to file buffering
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4575 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-03-12 20:17:34 +00:00
Brian West fdd5d2d822 fix comments
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4440 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-03-04 01:46:08 +00:00
Michael Jerris bbbd010b94 don't strchr on NULL, second resolution to MODAPP-2
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4393 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-25 22:44:36 +00:00
Anthony Minessale 119c10f872 naggy compiler
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4374 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-23 20:02:41 +00:00
Michael Jerris 6b46843c57 try a bit harder to make sure we don't do printf like functions on null.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4369 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-23 17:28:41 +00:00
Michael Jerris 58705374f4 switch_channel_set_variable_nodup which does not dup the value from the session pool. The value MUST already be allocated from the pool for that session, or very bad things could happen. Use with caution.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4329 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-19 22:57:27 +00:00
Michael Jerris 3f72839a65 constify switch_channel_set_variable and remove some incorrect casts in it's consumers.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4306 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-17 00:56:16 +00:00
Michael Jerris ceafc84ca0 constify some arguments to switch_console_printf and switch_cut_path and remove improper casts for the consumers of those functions.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4241 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-13 21:03:06 +00:00
Anthony Minessale 9a870c5fb6 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4229 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-13 14:58:06 +00:00
Michael Jerris 07d6f12018 use "%s" format specifier for uses of switch_event_add_header that just pass a string to avoid potential issues/exploits"
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4226 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-13 04:43:49 +00:00
Anthony Minessale 07efd559d2 add ring ready flag to core
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4221 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-13 02:32:10 +00:00
Michael Jerris f359f847f7 fix magic emacs and vi formatting comments in the bottom of our source files to use tabs instead of spaces
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4176 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-09 02:36:03 +00:00
Anthony Minessale ed41805c17 improve core and basic flow
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4174 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-09 01:34:01 +00:00
Anthony Minessale 068ced69c9 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4147 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-07 17:19:06 +00:00
Anthony Minessale c6d0188af0 get rid of _ char in special vars and add an unset dialplan app for clarity sake
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4124 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-02-05 19:35:31 +00:00
Anthony Minessale 9b474d2576 add success cause for originate
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4091 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-01-30 03:17:10 +00:00
Anthony Minessale 00d7e70e2d fix cause code passthrough
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4061 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-01-26 20:39:45 +00:00
Anthony Minessale a5bec02bea modest rearranging
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4057 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-01-26 15:42:38 +00:00
Anthony Minessale d7400bf319 build changed
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3690 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-12-18 00:48:34 +00:00
Anthony Minessale 44cc7d5cfe build progress break everything
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3682 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-12-17 01:01:09 +00:00
Anthony Minessale 20bc2fde18 come down from the acid trip from the last commit
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3561 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-12-07 00:36:00 +00:00
Anthony Minessale 9914dd71f5 tweak
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3558 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-12-06 17:19:07 +00:00
Anthony Minessale efa104e868 answer tweak
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3549 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-12-05 23:08:14 +00:00
Anthony Minessale d138ed71b7 adjustments to the core do a make sure
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3504 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-12-01 15:26:37 +00:00
Anthony Minessale d20870e121 fix obscure bs, remove CR from dptools, add info app
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3463 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-11-28 02:23:26 +00:00
Michael Jerris 44649c70b4 Add magic comments for emacs and vi in source and header files to properly format and display tabs vs. spaces in those editors:
/* For Emacs:
 * Local Variables:
 * mode:c
 * indent-tabs-mode:nil
 * tab-width:4
 * c-basic-offset:4
 * End:
 * For VIM:
 * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
 */


git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3462 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-11-27 22:30:48 +00:00
Anthony Minessale dd1f941744 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3458 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-11-26 20:06:04 +00:00
Anthony Minessale 32e293d67f ampersand was being used to indicate a function and a double call change it to carrot ^ for functions
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3418 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-11-20 02:01:21 +00:00
Anthony Minessale d7baa16132 Ringback (sponsored by Front Logic)
This addition lets you set artifical ringback on a channel
that is waiting for an originated call to be answered.

the syntax is 

<action application="set" data="ringback=[data]"/>

where data is either the full path to an audio file
or a teletone generation script..


syntax of teletone scripts

LEGEND:

0-9,a-d,*,# (standard dtmf tones)

variables: c,r,d,v,>,<,+,w,l,L,%

c (channels)        - Sets the number of channels.
r (rate)            - Sets the sample rate.
d (duration)        - Sets the default tone duration.
v (volume)          - Sets the default volume.
> (decrease vol)    - factor to decrease volume by per frame (0 for even decrease across duration).
< (increase vol)    - factor to increase volume by per frame (0 for even increase across duration).
+ (step)            - factor to step by used by < and >.
w (wait)            - default silence after each tone.
l (loops)           - number of times to repeat each tone in the script.
L (LOOPS)           - number of times to repeat the the whole script.
% (manual tone)     - a generic tone specified by a duration, a wait and a list of frequencies.

standard tones can have custom duration per use with the () modifier
7(1000, 500) to generate DTMF 7 for 1 second then pause .5 seconds

EXAMPLES

UK Ring Tone [400+450 hz on for 400ms off for 200ms then 400+450 hz on for 400ms off for 2200ms]
%(400,200,400,450);%(400,2200,400,450)

US Ring Tone [440+480 hz on for 2000ms off for 4000ms]
%(2000,4000,440,480)

ATT BONG [volume level 4000, even decay, step by 2, # key for 60ms with no wait, volume level 2000, 350+440hz {us dialtone} for 940ms
v=4000;>=0;+=2;#(60,0);v=2000;%(940,0,350,440)

SIT Tone 913.8 hz for 274 ms with no wait, 1370.6 hz for 274 ms with no wait, 1776.7 hz for 380ms with no wait
%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)

ATTN TONE (phone's off the hook!) 1400+2060+2450+2600 hz for 100ms with 100ms wait
%(100,100,1400,2060,2450,2600)



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3408 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-11-19 01:05:06 +00:00
Anthony Minessale 44fc26f7d4 Finalization of speech detect interface and API
This changes the core to have the necessary tools to create
a speech detection interface.

It also changes the code in javascript (mod_spidermonkey)
there are a few api changes in how it handles callbacks

It also adds grammars as a system dir to store asr grammars




git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3291 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-11-09 05:39:04 +00:00
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
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
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
Anthony Minessale 1f29ce2749 add some more nifty stuff and fix a bug or 2
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3134 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-21 04:58:15 +00:00
Anthony Minessale 4943c5939f another step closer
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3119 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 06:55:30 +00:00
Anthony Minessale d44c204f5b fix goofy 183 madness
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3004 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-08 15:51:10 +00:00