130 Commits

Author SHA1 Message Date
Anthony Minessale
4f17ab7714 bunch of tweaks to make ivr more fun
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2350 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-21 19:14:51 +00:00
Brian West
9bf84fd913 update this to include my name :P /b
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2341 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-20 04:36:28 +00:00
Michael Jerris
1003a4d404 Cleanups from update to new build system for windows.
More to come.


git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2325 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-18 07:22:18 +00:00
Michael Jerris
ae380d58ec Update to new build system for windows.
This fixes several issues when debugging code in the ide, and does better dependency tracking.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2317 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-17 19:58:55 +00:00
Anthony Minessale
78d060c6a7 *deep breath*
Ok,

This one adds a bunch of stuff on top of the framework restructuring from yesterday.

1) originate api function:
Usage: originate <call url> <exten> [<dialplan>] [<context>] [<cid_name>] [<cid_num>] [<timeout_sec>]

This will call the specified url then transfer the call to the specified extension

example: originate exosip/1000@somehost 1000 XML default

2) mutiple destinations in outbound calls:

This means any dialstring may contain an '&' separated list of call urls
When using mutiple urls in this manner it is possible to map a certian key as required
indication of an accepted call.  You may also supply a filename to play possibly instructing the 
call recipiant to press the desired key etc...

The example below will call 2 locations playing prompt.wav to any who answer and
completing the call to the first offhook recipiant to dial "4"



      <extension name="3002">
        <condition field="destination_number" expression="^3002$">
          <action application="set" data="call_timeout=60"/>
          <action application="set" data="group_confirm_file=/path/to/prompt.wav"/>
          <action application="set" data="group_confirm_key=4"/>
          <action application="bridge" data="iax/guest@somebox/1234&exosip/1000@somehost"/>
        </condition>
      </extension>

The following is the equivilant but the confirm data is passed vial the bridge parameters
(This is for situations where there is no originating channel to set variables to)

      <extension name="3002">
        <condition field="destination_number" expression="^3002$">
          <action application="bridge" data=/path/to/prompt.wav:4"confirm=iax/guest@somebox/1234&exosip/1000@somehost"/>
        </condition>
      </extension>

Omitting the file and key stuff will simply comeplete the call to whoever answers first. 
(this is similar to how other less fortunate software handles the situation with thier best effort.)

This logic should be permitted in anything that establishes an outgoing call with
switch_ivr_originate()

Yes! That means even in this new originate api command you can call mutiple targets and send
whoever answers first to an extension that calls more mutiple targets.  (better test it though!)


Oh, and you should be able to do the same in the mod_conference dial and dynamic conference features

please report any behaviour contrary to this account to me ASAP cos i would not be terribly
suprised if I forgot some scenerio that causes an explosion I did all this in 1 afternoon so it probably needs tuning still.





git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2311 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-17 00:53:09 +00:00
Anthony Minessale
6175062b27 consolidate code in conference into todays changes
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2303 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-16 00:35:02 +00:00
Anthony Minessale
0562e38a51 add proper shutdown to mod_conference
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2302 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-15 22:19:38 +00:00
Anthony Minessale
5782555e70 redecorating
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2301 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-15 21:38:24 +00:00
Anthony Minessale
e54c549840 add bridge indication to conferences so sip disables the async rtp since we already have dual threaded i/o
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2293 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-14 21:16:17 +00:00
Michael Jerris
f1e3aa5a96 time_t cast.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2256 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-11 15:01:48 +00:00
Anthony Minessale
3a5af506b3 remove naughty operation that makes things not work
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2253 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-11 01:11:16 +00:00
Anthony Minessale
c4d890e0a4 Modify XML Dialplan
BTW, forget what I said yesterday RE: the strftime app I was at McDonalds, how can I concentrate there eh? 
see below....


The Definitive Guide To XML Dialplan:

The "dialplan" section of the freeswitch.xml meta document may contain several contexts

<?xml version="1.0"?>
<document type="freeswitch/xml">
  <section name="dialplan" description="Regex/XML Dialplan">
    <!-- the default context is a safe start -->
    <context name="default">

    <!-- one or more extension tags -->

    </context>
    
    <!-- more optional contexts -->
  </section>
</document>

The important thing to remember is that the dialplan is parsed once when the call
hits the dialplan parser in the RING state.  With one pass across the XML the result
will be a complete list of instructions installed into the channel based on
 parsed <action> or <anti-action> tags.

Those accustomed to Asterisk may expect the call to follow the dialplan by executing the 
applications as it parses them allowing data obtained from one action to influence the next action.
This not the case with the exception being the %{api func} {api arg} field type where an pluggable api call from
a module may be executed as the parsing occurs but this is meant to be used to draw realtime info such as
date and time or other quickly accessible information and shold *not* be abused.


The anatomy of an <extension> tag.

Legend: 
Text wrapped in [] indicates optional and is not part of the actual code.
a '|' inside [] indicates mutiple possible values and also is not part of the code.
Text wrapped in {} indicates it's a description of the parameter in place of the param itself.

<extension name="{exten_name}" [continue="[true|false]"]> 

continue=true means even if an extension executes to continue
parsing the next extension too

The {exten_name} above may anything but if it's 
an exact match with the destination number the parser will leap to this extension
to begin the searching that does not mean it will execute the extension.

Searching will either begin at the first extension in the context or at the point
the the parser has jumped to in the case described above.

Each condition is parsed in turn first taking the 'field' param.
The parser will apply the perl regular expression to each 'field' param encountered.

If the expression matches, it will parse each existing <action> tag in turn and add 
the data from the <application> tags to the channels todo list.	

If a matched expression contains any data wrapped in () the variables
$1,$2..$N will be valid and expanded in any of 'data' params from the subsequent action tags.

If the expression does NOT match, it will parse each <anti-action> tag in turn and add 
the data from the <application> tags to the channels todo list.
*NOTE* since there was no match the () feature is not availabe in anti-actions

The 'break' param indicates how to behave in relation to matching:
*) 'on-true'  - stop searching conditions after the first successful match.
*) 'on-false' - stop searching after the first unsuccessful match.
*) 'always'   - stop at this conditon regardless of a match or non-match.
*) 'never'    - continue searching regardless of a match or non-match.

<condition field="[{field name}|${variable name}|%{api func} {api arg}]" expression="{expression}" break="[on-true|on-false|always|never]">
  <action application="{app name}" data="{app arg}"/>
  <anti-action application="{app name}" data="{app arg}"/>
</condition>

  <!-- any number of condition tags may follow where the same rules apply -->
</extension>




git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2167 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-26 20:12:49 +00:00
Anthony Minessale
c48208e578 Add strftime app to the dp_tools
Use in the dialplan like so:

<!-- continue="true" means keep searching even when you have a match -->
<extension name="set-date" continue="true">
  <condition>
    <action application="strftime" data="NOW=%H:%M"/>
  </condition>
</extension>

<extension name="route-date">
  <condition field="$NOW" expression="^0[34].*">
    <action application="playback" data="/tmp/cluecon1.wav"/>
  </condition>
</extension>





git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2144 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-25 23:51:38 +00:00
Anthony Minessale
da67398911 add stricter checking
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2082 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-24 18:56:20 +00:00
Anthony Minessale
ca98141ed7 enhance the show command
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2011 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-20 03:55:07 +00:00
Anthony Minessale
031af56d99 add a count to show
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1992 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-19 19:16:42 +00:00
Anthony Minessale
7712c6637c messaging stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1902 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-17 14:12:07 +00:00
Anthony Minessale
c7a4c4a1dc fix printf args
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1886 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-14 21:16:01 +00:00
Anthony Minessale
f45ecee214 fix command parser
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1885 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-14 21:15:26 +00:00
Michael Jerris
0d82c97797 Fix win32 Build
Update win32 Setup
add show calls and show channels


git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1884 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-14 19:55:55 +00:00
Anthony Minessale
4aab8842cd tweaks for wideband tests
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1883 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-14 19:42:09 +00:00
Anthony Minessale
e73ee221d2 add mod_dptools, for set variable and sleep from the dialplan
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1864 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-13 13:20:20 +00:00
Anthony Minessale
6414ff552b rss string tweaks
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1853 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-12 22:03:00 +00:00
Anthony Minessale
d77e574d4e rearrange the furnature
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1846 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-12 18:39:19 +00:00
Michael Jerris
03ac8289e8 fix windows build
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1833 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-11 20:59:07 +00:00
Brian West
e9fc56225f tweak (work in progress)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1816 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-10 20:28:22 +00:00
Anthony Minessale
b9195e2db9 add ability to set mute and deaf flag from the dialplan +flags{<mute>|<deaf>}
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1811 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-10 16:28:54 +00:00
Anthony Minessale
4b4cca9c56 forgot a few stupid things, here they are
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1795 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-08 19:11:09 +00:00
Anthony Minessale
47b3010ce7 fix param names
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1789 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-07 19:07:07 +00:00
Anthony Minessale
ecb7c08923 Add volume, gain and energy controls.
DTMF:
1 = volume down
2 = volume default
3 = volume up
4 = gain down
5 = gain default
6 = gain up
7 = energy level down
8 = energy level default
9 = energy level up
* = toggle mute + deaf
0 = toggle mute
# = quit 

new api commands to adj volume, gain and energy



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1787 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-07 16:47:20 +00:00
Anthony Minessale
d3509c6b98 small change for energy detection stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1783 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-07 13:38:14 +00:00
Anthony Minessale
3837f5d242 fix segfault
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1773 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-06 22:12:15 +00:00
Anthony Minessale
ee5e2e0994 add a new software conference module (mod_conference)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1770 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-06 20:12:53 +00:00
Anthony Minessale
3ba26db705 move iana codes to the implementations.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1666 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-23 20:14:29 +00:00
Michael Jerris
76f98bd034 add options to show api command to show applications, codecs, file formats, ect. and cleanup the output format of this command. Thanks jkr888 (Johny Kadarisman) for the contribution.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1630 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-15 06:02:08 +00:00
Michael Jerris
50012d6124 wording change
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1625 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-14 18:03:33 +00:00
Michael Jerris
d712f2e69a change wording
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1624 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-14 16:54:55 +00:00
Michael Jerris
c57a735ac3 enable match_count by default
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1623 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-14 16:52:24 +00:00
Anthony Minessale
6f1f9190bd wordbreaks
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1622 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-14 15:56:11 +00:00
Michael Jerris
838f9518c9 simplify some wording.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1621 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-14 14:54:43 +00:00
Michael Jerris
72183965af tweak mod_rss
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1609 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-12 17:57:26 +00:00
Michael Jerris
261e9c01c2 fix instructions for speed change.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1608 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-12 17:27:22 +00:00
Anthony Minessale
64c45ad16e formatting
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1598 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-11 03:21:00 +00:00
Anthony Minessale
68898a6cb4 fix rss small issue
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1597 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-11 03:11:04 +00:00
Anthony Minessale
2191312114 rss minor mods
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1594 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-10 20:57:15 +00:00
Anthony Minessale
fe32a839df use channel flag to tell when to read from channel during some stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1590 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-09 22:59:13 +00:00
Anthony Minessale
1212c95e55 tweak ivr
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1589 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-09 19:54:53 +00:00
Anthony Minessale
f7e6e52855 add speak application
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1583 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-09 15:15:58 +00:00
Anthony Minessale
b3e047f386 merge
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1579 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-08 22:03:23 +00:00
Michael Jerris
21f0c64dc3 mod_rss msvc build
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1577 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-08 19:44:43 +00:00