Commit Graph

626 Commits

Author SHA1 Message Date
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 a15bc52f0e cast for possible loss of data.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2324 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-18 02:21:26 +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 099a771ddf fix segfault when there is a malformed registration in the db.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2322 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-18 01:23:18 +00:00
Michael Jerris 72dcc8a515 fix mod_event_socket destination
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2321 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-17 23:47:24 +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
Anthony Minessale f03adcabed twiax (tweek-iax get it twiax... lol)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2291 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-14 19:03:36 +00:00
Michael Jerris a90b88d201 revert static runtime change for msvc. Bad idea...
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2290 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-14 17:44:38 +00:00
Michael Jerris fea5980a12 Change windows build to use static runtime to make it more easily portable to older windows, and to decrease startup time on windows.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2289 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-14 16:11:08 +00:00
Michael Jerris 3f3a6ad40f tweak
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2288 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-14 14:45:35 +00:00
Michael Jerris c0be28d911 make mod cdr work on windows, and make it segfault less.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2279 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-13 04:41:40 +00:00
Anthony Minessale 54ec8c1dd4 rtp fix and some other misc stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2266 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-11 23:27:08 +00:00
Anthony Minessale 3b09338cee more socket stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2263 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-11 18:59:25 +00:00
Anthony Minessale 44095d48ef socket tweak
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2260 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-11 18:20:04 +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
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 07a7b6e54a update dingaling to be able to use TLS jabber servers such as googletalk
see sample config for new options.

the dingaling library has changed so you must rebuild it 
rm libs/libdingaling/.complete
make installall



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2251 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-11 00:24:38 +00:00
Anthony Minessale 010e85da14 temp fix socket issue on win
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2236 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-07 21:16:54 +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 2b320e25a1 iax tweak
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2234 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-07 19:45:52 +00:00
Anthony Minessale 504beaa5c2 code before declaration as usual fixed for win32's sake
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2214 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-01 04:45:22 +00:00
Anthony Minessale cfec307cb9 sillyness
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2213 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-08-01 00:46:27 +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 3a5caeddae move pcre into core do a ./configure again
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2211 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-31 23:46:37 +00:00
Anthony Minessale 272c6c9f4f fix ambigious time_t crap
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2204 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-29 00:02:05 +00:00
Anthony Minessale db10a61d5c tweak js
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2194 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-27 21:39:50 +00:00
Michael Jerris 8246f730fc merge mod_cdr changes to trunk
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2188 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-27 17:05: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
Brian West 6f44fc9e1c Small name changes to reflect the actual module name.
/b


git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2171 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-26 21:43:53 +00:00
Anthony Minessale 3481f29c62 dox
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2169 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-26 20:20:13 +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 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 ae4ff80250 Add MysqlCDR to mod_cdr build on windows.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2085 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-24 20:10:12 +00:00
Brian West 8d45333627 fix for mac
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2083 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-24 19:16:58 +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
Michael Jerris e9a3ad4877 Start getting mod_cdr w/ mysql to build on windows. Still more to do on this.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2080 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-24 18:30:41 +00:00
Anthony Minessale 3bc5fd502b fixup custom event stuff
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2078 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-24 15:45:36 +00:00
Michael Jerris f723e57b61 Initial merge of mod_cdr. Big thanks to Yossi Neiman for this huge contribution. Please note that this is still somewhat a work in progress, but it works.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2077 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-24 15:19:05 +00:00
Michael Jerris 5378e48454 add mod_event_socket to windows build.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2049 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-07-22 22:16:06 +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 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