294 Commits

Author SHA1 Message Date
Michael Jerris
c15da98579 Add switch_core_init_and_modload to core, from switch.c. Add additional shutdown functionality to switch_core_destroy. move around more code in switch.c and fix freeswitch -stop on windows.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2336 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-19 18:51:22 +00:00
Anthony Minessale
47192db741 Upgrade Dingaling to meet new googletalk spec upgrade your client if you have issues.
codecs need more work...

Expose events into javascript so you can create and fire events and 
and pick up chat events with chat-enabled clients like googletalk
EXAMPLE:

session.answer();

e = new Event("custom", "JS::Custom");
e.addHeader("subject", "cool");
e.addBody("hello this is a test");
e.fire;

while(session.ready()) {
    session.execute("sleep", "1000");
    event = session.getEvent();
    if (event) {
      str = event.serialize(); // or ("xml")
      console_log("debug", "Dump Event:\n" + str + "\n");


        e = new Event("custom", "JS::Chat");
        e.addHeader("works", "yes");
        e.addBody("you said: " + event.getBody());
        session.sendEvent(e);
      event.destroy();
    }
}





git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2323 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-18 01:28:50 +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
a29d426c8c setting waypoint
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2300 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-15 19:38:14 +00:00
Anthony Minessale
a675393bb7 performance tweaks
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2298 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-15 17:52:12 +00:00
Michael Jerris
2bec16256a fix typo.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2267 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-12 00:38:51 +00:00
Anthony Minessale
7ccdd37a71 socket code
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2257 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-11 15:25:49 +00:00
Anthony Minessale
9fedc12934 move pcre into core do a ./configure again (part 2)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2212 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-31 23:56:27 +00:00
Anthony Minessale
4395e55493 typo
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2185 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-27 15:45:19 +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
da4ae7be4c add metadata functions to sound file api
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2139 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-25 22:37:52 +00:00
Anthony Minessale
da8484382c move unix builds to apr 1.2.7, sqlite 3.3.6 and libsndfile 1.0.16
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2112 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-25 15:11:15 +00:00
Anthony Minessale
9727efd842 Change the socket protocol and the sample client to use multiline input
valid input:

-------------------------
<command>[ <args>]

-------------------------
or
-------------------------
<command>[ <args>]
Header1: Val
HeaderN: Val

-------------------------





git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2109 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-25 14:14:07 +00:00
Michael Jerris
e80c5808fb fix windows issue when building with C++.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2074 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-24 06:48:01 +00:00
Michael Jerris
85d442615e fix C linkage when using templates issue when building C++ modules in msvc that stems from including some windows header files inside of an extern C block, when building with C++.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2070 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-24 04:31:28 +00:00
Anthony Minessale
9ef48b6e1f dox
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2048 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-22 21:52:53 +00:00
Anthony Minessale
9c79c2a3fb Add mod_event_socket remote client module and sample client.
To Test:

uncomment or add from modules.conf
make installall again to compile it
uncomment the load line from freeswitch.xml

the default values are to bind to 127.0.0.1 port 8021

telnet to port 8021
enter "auth ClueCon" to authenticate

from here you can do the following:
*) events [xml|plain] <list of events to log or all for all>
*) noevents 
*) log <level> // same as the console.conf values
*) nolog
*) api <command> <arg>
*) exit

there is a perl client in scripts/socket called fs.pl

with the module up and loaded:
cd scripts/socket
perl fs.pl <optional log level>

you can enter a few api commands like "show or status"




git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2047 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-22 21:49:52 +00:00
Anthony Minessale
72d0128f95 name change for c++ compate
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1988 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-19 18:34:28 +00:00
Anthony Minessale
8c51cc2934 small fix to sql shipping stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1963 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-19 01:19:46 +00:00
Anthony Minessale
541a27bf1b dox
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1876 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-14 12:17:01 +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
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
Anthony Minessale
2838ad4a9b restructure codec code
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1818 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-10 22:08:02 +00:00
Anthony Minessale
b5a19020f7 add session counter and make all sessions hang up elegantly on shutdown
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1788 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-07 18:59:14 +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
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
Anthony Minessale
f56e07842f add set/clear flag locked macros
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1661 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-22 23:38:44 +00:00
Michael Jerris
76dfa310c0 add access or function for channel variable iterator
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1612 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-13 01:49:18 +00:00
Anthony Minessale
40e7848917 dox
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1596 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-11 01:55:50 +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
d607494ac0 add mlockall
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1584 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-09 15:39:12 +00:00
Anthony Minessale
5c57580955 ivr stuff (part 1)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1573 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-08 19:22:54 +00:00
Anthony Minessale
7b4cc868e4 ivr stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1569 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-08 01:58:37 +00:00
Michael Jerris
9c2442886d merge anthm fix for atoi(NULL) segfault. Thanks jart for identifying the problem.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1560 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-07 21:55:17 +00:00
Anthony Minessale
9a43ccab24 add mod_rss
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1551 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-06 23:07:37 +00:00
Anthony Minessale
5337872ce8 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1545 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-05 18:36:02 +00:00
Anthony Minessale
7c7c42a6bf update queue len
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1542 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-05 17:37:24 +00:00
Anthony Minessale
ebd871ff10 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1538 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-03 17:06:39 +00:00
Anthony Minessale
15b99a3bbf make extensions linkable (thanks mishehu)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1537 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-06-03 17:06:06 +00:00
Anthony Minessale
cfae7d1581 fix sample goodies
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1525 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-30 17:19:01 +00:00
Anthony Minessale
baa257f2fe update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1513 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-27 00:24:32 +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
Anthony Minessale
9d68a23929 update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1467 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-15 18:16:43 +00:00
Michael Jerris
73ff3c89a6 move switch_version.h to be a private header.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1463 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-15 15:00:10 +00:00
Anthony Minessale
6bf06c5227 sox
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1448 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-12 19:38:02 +00:00
Anthony Minessale
d53d9d3997 rearrange some things please see conf/freeswitch.xml as there is a significant change to the conf that will break your stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1446 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-12 19:28:21 +00:00
Anthony Minessale
d314140374 cleanup
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1445 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-05-12 15:33:49 +00:00