Commit Graph

41 Commits

Author SHA1 Message Date
Michael Jerris 2b53e80e34 add syntax field to the api interface struct.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3000 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-08 05:04:34 +00:00
Anthony Minessale 5c5bd833d7 fix potential crash
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2235 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-07 20:04:12 +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 7bcecfb149 add header to portaudio
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1705 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-29 13:48:52 +00:00
Anthony Minessale ce2a9d2636 add more mutexed flag ops
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1664 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-23 16:59:47 +00:00
Michael Jerris 0ae3b344dc make sure to use switch namespace on apr functions in modules.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1601 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-12 02:39:05 +00:00
Michael Jerris 7ac4e54ef9 add early audio message hook.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1572 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-08 15:28:42 +00:00
Anthony Minessale 425c5f282b yep
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1571 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-08 15:20:46 +00:00
Anthony Minessale ab3f42c9c4 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1508 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-26 16:00:08 +00:00
Anthony Minessale 21c2b5812e update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1476 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-17 00:58:21 +00:00
Michael Jerris 31ee0d59fc normalize configuration parameters to use - instead of _.
Break everybody's configuration.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1475 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-16 17:08:21 +00:00
Anthony Minessale c1d0488201 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1413 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-10 15:53:10 +00:00
Anthony Minessale f09491a69b XMLification (wave 4)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1412 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-10 15:47:54 +00:00
Anthony Minessale 646f764ae4 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1404 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-10 03:40:52 +00:00
Anthony Minessale 93666f6dd7 XMLification (wave 1)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1401 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-10 03:23:05 +00:00
Anthony Minessale 913104b50c portaudio tweaks
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1311 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-01 17:20:30 +00:00
Anthony Minessale cc1c2a06e9 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1308 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-01 01:35:01 +00:00
Michael Jerris c904577269 C++ says we can't use "interface" as a variable name.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1305 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-04-30 18:24:24 +00:00
Michael Jerris 14fee78470 part 3 of 3 standardizing typedefed types to end in _t.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1300 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-04-29 23:43:28 +00:00
Michael Jerris 73a3adac8f part 2 of many standardizing typedefed types to end in _t
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1294 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-04-29 06:05:03 +00:00
Michael Jerris d0347b2a95 part 1 of many standardizing typedefed types to end in _t
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1292 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-04-29 01:00:52 +00:00
Anthony Minessale 35dc32018c add transfer capability and small ways to test it
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1290 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-04-28 19:46:57 +00:00
Anthony Minessale 1eb4d491a5 causes part 2
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1226 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-04-22 03:05:25 +00:00
Anthony Minessale a9f86cb58a add VAD
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1222 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-04-21 22:31:08 +00:00
Michael Jerris 026e8d39ca Set log levels on many existing log messages. A huge thanks to James Martelletti for going through all the log calls to do this.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1173 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-04-16 06:05:53 +00:00
Brian West 559b8ab26c Gut Logger and put it back modular style
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1117 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-04-11 21:13:44 +00:00
Anthony Minessale fac7b4a64e optimize
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@960 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-03-29 19:11:20 +00:00
Anthony Minessale e9ba607a6c add optional pool arguement to outgoing channel to allow pre-created pools to be donated to the new session
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@726 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-03-02 14:49:23 +00:00
Anthony Minessale 4799ec8b8a break everything
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@720 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-03-01 22:55:28 +00:00
Anthony Minessale c94e328db7 1 of many PRI/SIP gateway related updates
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@648 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-02-22 15:23:10 +00:00
Anthony Minessale fe3e994237 adding some inter channel communication and other code for real-world usage (not totally done)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@646 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-02-22 02:50:33 +00:00
Michael Jerris 241903ba4e fix more msvc warnings.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@636 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-02-20 06:13:56 +00:00
Michael Jerris ed310c8d33 switch_state_handler_table renames and msvc build fix.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@557 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-02-07 22:58:56 +00:00
Michael Jerris 92628433da fix oops (svn merge -r 418:417 http://svn.freeswitch.org/svn/freeswitch/trunk)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@419 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-01-20 15:05:05 +00:00
Anthony Minessale 0ea203849f update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@418 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-01-20 02:02:03 +00:00
Anthony Minessale 1e04eb13b5 indent
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@417 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-01-20 00:41:30 +00:00
Anthony Minessale 2a329aa5e7 make all buffers the same size
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@384 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-01-14 16:44:52 +00:00
Anthony Minessale 980a1ec470 grr
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@338 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-01-13 02:05:39 +00:00
Anthony Minessale 5aaef9efdd git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@331 d0543943-73ff-0310-b7d9-9358b9ac24b2 2006-01-12 21:01:57 +00:00
Anthony Minessale 208ec3ff7a stream id stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@307 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-01-09 18:40:56 +00:00
Anthony Minessale 6668d0282f update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@263 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-01-03 22:13:59 +00:00