Freeswitch-svn
Threads by month
- ----- 2026 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
May 2008
- 10 participants
- 495 discussions
[commit] r8402 - in freeswitch/trunk/libs/sofia-sip: . libsofia-sip-ua/nua
by Freeswitch SVN 14 May '08
by Freeswitch SVN 14 May '08
14 May '08
Author: mikej
Date: Wed May 14 14:20:48 2008
New Revision: 8402
Modified:
freeswitch/trunk/libs/sofia-sip/.update
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.h
Log:
Tue May 13 16:47:50 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* nua_stack.h: removed unused typedef ull
Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update (original)
+++ freeswitch/trunk/libs/sofia-sip/.update Wed May 14 14:20:48 2008
@@ -1 +1 @@
-Wed May 14 14:19:52 EDT 2008
+Wed May 14 14:20:32 EDT 2008
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.h
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.h (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.h Wed May 14 14:20:48 2008
@@ -432,8 +432,6 @@
/* ---------------------------------------------------------------------- */
-typedef unsigned longlong ull;
-
#define SET_STATUS(_status, _phrase) status = _status, phrase = _phrase
#define SET_STATUS2(_status, _phrase) status = _status, phrase = _phrase
1
0
[commit] r8401 - in freeswitch/trunk/libs/sofia-sip: . libsofia-sip-ua/sresolv
by Freeswitch SVN 14 May '08
by Freeswitch SVN 14 May '08
14 May '08
Author: mikej
Date: Wed May 14 14:20:11 2008
New Revision: 8401
Modified:
freeswitch/trunk/libs/sofia-sip/.update
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/sresolv/sres.c
Log:
Tue May 13 16:45:09 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* sres.c: allow dns redirection with _sres_default_port
Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update (original)
+++ freeswitch/trunk/libs/sofia-sip/.update Wed May 14 14:20:11 2008
@@ -1 +1 @@
-Wed May 14 14:17:15 EDT 2008
+Wed May 14 14:19:52 EDT 2008
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/sresolv/sres.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/sresolv/sres.c (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/sresolv/sres.c Wed May 14 14:20:11 2008
@@ -2190,6 +2190,8 @@
return c;
}
+uint16_t _sres_default_port = 53;
+
/** Parse config file.
*
* @return Number of search domains, if successful.
@@ -2212,7 +2214,7 @@
c->c_opt.check_names = 1;
c->c_opt.timeout = SRES_RETRY_INTERVAL;
c->c_opt.attempts = SRES_MAX_RETRY_COUNT;
- c->c_port = 53;
+ c->c_port = _sres_default_port;
if (f != NULL) {
for (line = 1; fgets(buf, sizeof(buf), f); line++) {
1
0
[commit] r8400 - in freeswitch/trunk/libs/sofia-sip: . libsofia-sip-ua/nua tests
by Freeswitch SVN 14 May '08
by Freeswitch SVN 14 May '08
14 May '08
Author: mikej
Date: Wed May 14 14:19:34 2008
New Revision: 8400
Modified:
freeswitch/trunk/libs/sofia-sip/.update
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/Makefile.am
freeswitch/trunk/libs/sofia-sip/tests/Makefile.am
freeswitch/trunk/libs/sofia-sip/tests/suite_for_nua.c
Log:
Update sofia tests:
Tue May 6 13:53:21 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* tests: added 2nd check-based test suite for nua
Wed May 7 08:26:48 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* suite2_for_nua.c: more test cases
Wed May 7 13:40:05 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* suite2_for_nua.c, s2tester.[hc]: made it easier to refactor test cases
Wed May 7 14:34:54 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* test_nua: moved to tests subdirectory
Wed May 7 14:37:06 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* check_nua: moved to libsofia-sip-ua/nua
Mon May 12 19:00:26 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* check_nua: updated
Tue May 13 16:45:21 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* test_s2.h, test_s2.c: added internal DNS server
Tue May 13 16:46:08 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* check_register.c: added test case register_1_3_3_1 using tcp pingpong
Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update (original)
+++ freeswitch/trunk/libs/sofia-sip/.update Wed May 14 14:19:34 2008
@@ -1 +1 @@
-Wed May 14 14:16:11 EDT 2008
+Wed May 14 14:17:15 EDT 2008
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/Makefile.am
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/Makefile.am (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/Makefile.am Wed May 14 14:19:34 2008
@@ -13,13 +13,13 @@
noinst_LTLIBRARIES = libnua.la
-check_LTLIBRARIES = libtestnua.la libtestproxy.la libtestnat.la
+check_PROGRAMS =
+TESTS =
-check_PROGRAMS = test_nua
-
-TESTS = test_nua
-
-CLEANFILES = tmp_sippasswd.??????
+if HAVE_CHECK
+check_PROGRAMS += check_nua
+TESTS += check_nua
+endif
# ----------------------------------------------------------------------
# Rules for building the targets
@@ -43,6 +43,29 @@
COVERAGE_INPUT = $(libnua_la_SOURCES) $(include_sofia_HEADERS)
+check_nua_SOURCES = check_nua.c check_nua.h \
+ check_session.c check_register.c \
+ test_s2.h test_s2.c
+
+check_nua_LDADD = $(nua_libs) @CHECK_LIBS@
+
+nua_libs = libnua.la \
+ ../iptsec/libiptsec.la \
+ ../ipt/libipt.la \
+ ../nea/libnea.la \
+ ../nta/libnta.la \
+ ../sresolv/libsresolv.la \
+ ../tport/libtport.la \
+ ../stun/libstun.la \
+ ../soa/libsoa.la \
+ ../sdp/libsdp.la \
+ ../sip/libsip.la \
+ ../http/libhttp.la \
+ ../msg/libmsg.la \
+ ../url/liburl.la \
+ ../bnf/libbnf.la \
+ ../su/libsu.la
+
test_nua_LDFLAGS = -static
libtestnua_la_SOURCES = test_nua.h test_ops.c \
@@ -80,6 +103,7 @@
../bnf/libbnf.la \
../su/libsu.la
+^ ^ ^ ^ ^ ^ ^
# ----------------------------------------------------------------------
# Install and distribution rules
Modified: freeswitch/trunk/libs/sofia-sip/tests/Makefile.am
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/tests/Makefile.am (original)
+++ freeswitch/trunk/libs/sofia-sip/tests/Makefile.am Wed May 14 14:19:34 2008
@@ -1,35 +1,63 @@
#
-# Tests using check
+# Makefile.am for Sofia SIP tests
#
+# Copyright (C) 2007,2008 Nokia Corporation
+# Contact: Pekka Pessi <pekka.pessi(a)nokia.com>
+# Licensed under LGPL. See file COPYING.
+
+TESTS = test_nua
+check_PROGRAMS = test_nua
EXTRA_DIST = check_sofia.h check_sofia.c suite_for_nua.c
-TESTS =
-tests_PROGRAMS =
-testsdir := ${libdir}/tests/libsofia-sip-ua-tests
+test_nua_SOURCES = test_nua.c
-include $(top_srcdir)/rules/sofia.am
+test_nua_LDADD = $(check_LIBRARIES) \
+ ${sofiabuilddir}/libsofia-sip-ua.la
-INCLUDES = ${INTERNAL_INCLUDES}
+check_LIBRARIES = libtestnua.a libtestproxy.a libtestnat.a
-AM_CFLAGS += @CHECK_CFLAGS@
+libtestnua_a_SOURCES = test_nua.h test_ops.c \
+ test_init.c \
+ test_nua_api.c test_nua_params.c \
+ test_register.c test_basic_call.c \
+ test_offer_answer.c \
+ test_call_reject.c test_cancel_bye.c \
+ test_call_hold.c test_session_timer.c \
+ test_refer.c test_100rel.c \
+ test_simple.c test_sip_events.c \
+ test_extension.c
-if HAVE_CHECK
+libtestproxy_a_SOURCES = test_proxy.h test_proxy.c
+
+libtestnat_a_SOURCES = test_nat.h test_nat.c test_nat_tags.c
+#
+# Install in special test package
+#
+testsdir = ${libdir}/tests/libsofia-sip-ua-tests
+tests_PROGRAMS =
+
+if HAVE_CHECK
TESTS += check_sofia
tests_PROGRAMS += check_sofia
+endif
+
+check_sofia_CFLAGS = @CHECK_CFLAGS@
+
check_sofia_SOURCES = check_sofia.c check_sofia.h \
suite_for_nua.c
-CHECKLIBS = ${sofiabuilddir}/nua/libtestnua.la \
- ${sofiabuilddir}/nua/libtestproxy.la \
- ${sofiabuilddir}/nua/libtestnat.la
-
-$(CHECKLIBS):
- cd ${sofiabuilddir}/nua && make checklib
-
-check_sofia_LDADD = \
- $(CHECKLIBS) ${sofiabuilddir}/libsofia-sip-ua.la \
- @CHECK_LIBS@
-endif
+check_sofia_LDADD = $(check_LIBRARIES) \
+ ${sofiabuilddir}/libsofia-sip-ua.la \
+ @CHECK_LIBS@
+
+CLEANFILES = tmp_sippasswd.??????
+
+# ----------------------------------------------------------------------
+# Sofia specific rules
+
+include $(top_srcdir)/rules/sofia.am
+
+INCLUDES = ${INTERNAL_INCLUDES}
Modified: freeswitch/trunk/libs/sofia-sip/tests/suite_for_nua.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/tests/suite_for_nua.c (original)
+++ freeswitch/trunk/libs/sofia-sip/tests/suite_for_nua.c Wed May 14 14:19:34 2008
@@ -22,7 +22,7 @@
*
*/
-/**@CFILE check_sofia.c
+/**@CFILE suite_for_nua.c
*
* @brief Check-driven tester for Sofia SIP User Agent library
*
1
0
[commit] r8399 - in freeswitch/trunk/libs/sofia-sip: . libsofia-sip-ua/nta
by Freeswitch SVN 14 May '08
by Freeswitch SVN 14 May '08
14 May '08
Author: mikej
Date: Wed May 14 14:16:19 2008
New Revision: 8399
Modified:
freeswitch/trunk/libs/sofia-sip/.update
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c
Log:
Tue May 13 15:41:24 EDT 2008 Pekka Pessi <first.last(a)nokia.com>
* nta.c: fixed outgoing retry timer
Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update (original)
+++ freeswitch/trunk/libs/sofia-sip/.update Wed May 14 14:16:19 2008
@@ -1 +1 @@
-Tue May 13 15:08:49 EDT 2008
+Wed May 14 14:16:11 EDT 2008
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c Wed May 14 14:16:19 2008
@@ -8008,7 +8008,7 @@
outgoing_queue_init(sa->sa_out.free = rq, 0);
while ((orq = sa->sa_out.re_list)) {
- if ((int32_t)(orq->orq_retry) - now > 0)
+ if ((int32_t)(orq->orq_retry - now) > 0)
break;
if (retransmitted >= timer_max_retransmit)
break;
1
0
Author: mikej
Date: Wed May 14 12:54:54 2008
New Revision: 8398
Modified:
freeswitch/trunk/src/mod/endpoints/mod_iax/iax.c
Log:
type stupidity
Modified: freeswitch/trunk/src/mod/endpoints/mod_iax/iax.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_iax/iax.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_iax/iax.c Wed May 14 12:54:54 2008
@@ -2984,7 +2984,12 @@
static struct iax_event *iax_net_read(void)
{
unsigned char buf[65536];
- int res, sinlen;
+ int res;
+#ifdef WIN32
+ socklen_t sinlen;
+#else
+ unsigned int sinlen;
+#endif
struct sockaddr_in sin;
sinlen = sizeof(sin);
1
0
[commit] r8397 - in freeswitch/trunk/src/mod: endpoints/mod_sofia formats/mod_local_stream formats/mod_sndfile
by Freeswitch SVN 14 May '08
by Freeswitch SVN 14 May '08
14 May '08
Author: anthm
Date: Wed May 14 12:01:13 2008
New Revision: 8397
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c
freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c
freeswitch/trunk/src/mod/formats/mod_sndfile/mod_sndfile.c
Log:
silence some less important debug info
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c Wed May 14 12:01:13 2008
@@ -806,7 +806,7 @@
}
if (!(nh = nua_handle_by_call_id(profile->nua, call_id))) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot find handle for %s\n", call_id);
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Cannot find handle for %s\n", call_id);
return 0;
}
Modified: freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c
==============================================================================
--- freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c (original)
+++ freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c Wed May 14 12:01:13 2008
@@ -184,7 +184,7 @@
return NULL;
}
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Playing [%s] rate: %dhz\n", fname, source->rate);
+ //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Playing [%s] rate: %dhz\n", fname, source->rate);
while (RUNNING) {
switch_core_timer_next(&timer);
Modified: freeswitch/trunk/src/mod/formats/mod_sndfile/mod_sndfile.c
==============================================================================
--- freeswitch/trunk/src/mod/formats/mod_sndfile/mod_sndfile.c (original)
+++ freeswitch/trunk/src/mod/formats/mod_sndfile/mod_sndfile.c Wed May 14 12:01:13 2008
@@ -167,7 +167,7 @@
}
}
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Opening File [%s] rate %dhz\n", path, context->sfinfo.samplerate);
+ //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Opening File [%s] rate %dhz\n", path, context->sfinfo.samplerate);
handle->samples = (unsigned int) context->sfinfo.frames;
handle->samplerate = context->sfinfo.samplerate;
handle->channels = (uint8_t) context->sfinfo.channels;
1
0
[commit] r8396 - in freeswitch/trunk: conf/autoload_configs src/mod/endpoints/mod_sofia
by Freeswitch SVN 14 May '08
by Freeswitch SVN 14 May '08
14 May '08
Author: anthm
Date: Wed May 14 10:22:04 2008
New Revision: 8396
Modified:
freeswitch/trunk/conf/autoload_configs/conference.conf.xml
freeswitch/trunk/conf/autoload_configs/modules.conf.xml
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
Log:
musta took a wrong toin at albakoyke
Modified: freeswitch/trunk/conf/autoload_configs/conference.conf.xml
==============================================================================
--- freeswitch/trunk/conf/autoload_configs/conference.conf.xml (original)
+++ freeswitch/trunk/conf/autoload_configs/conference.conf.xml Wed May 14 10:22:04 2008
@@ -83,6 +83,7 @@
<param name="pin-sound" value="conference/conf-pin.wav"/>
<!-- File to play to when the pin is invalid -->
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
+ <param name="comfort-noise-level" value="1400"/>
<!-- Conference pin -->
<!--<param name="pin" value="12345"/>-->
<!-- Default Caller ID Name for outbound calls -->
Modified: freeswitch/trunk/conf/autoload_configs/modules.conf.xml
==============================================================================
--- freeswitch/trunk/conf/autoload_configs/modules.conf.xml (original)
+++ freeswitch/trunk/conf/autoload_configs/modules.conf.xml Wed May 14 10:22:04 2008
@@ -11,7 +11,7 @@
<load module="mod_enum"/>
<!-- XML Interfaces -->
- <!-- <load module="mod_xml_rpc"/> -->
+ <load module="mod_xml_rpc"/>
<!-- <load module="mod_xml_curl"/> -->
<!-- <load module="mod_xml_cdr"/> -->
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Wed May 14 10:22:04 2008
@@ -2726,6 +2726,8 @@
tech_pvt->remote_ip = switch_core_session_strdup(session, network_ip);
tech_pvt->remote_port = network_port;
+ channel = tech_pvt->channel = switch_core_session_get_channel(session);
+
if (sip->sip_contact && sip->sip_contact->m_url) {
char tmp[35] = "";
tech_pvt->record_route = switch_core_session_sprintf(session, "sip:%s@%s:%d",
@@ -2741,7 +2743,6 @@
tech_pvt->key = switch_core_session_strdup(session, key);
}
- channel = tech_pvt->channel = switch_core_session_get_channel(session);
if (is_auth) {
switch_channel_set_variable(channel, "sip_authorized", "true");
1
0
14 May '08
Author: anthm
Date: Wed May 14 10:13:40 2008
New Revision: 8395
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
Log:
clean up nat stuff more
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c Wed May 14 10:13:40 2008
@@ -411,7 +411,8 @@
(val = switch_channel_get_variable(channel, "sip-force-contact")) ||
((val = switch_channel_get_variable(channel, "sip_sticky_contact")) && switch_true(val))) {
sticky = tech_pvt->record_route;
- session_timeout = 20;
+ session_timeout = SOFIA_NAT_SESSION_TIMEOUT;
+ switch_channel_set_variable(channel, "sip_nat_detected", "true");
}
@@ -1107,6 +1108,7 @@
(val = switch_channel_get_variable(channel, "sip-force-contact")) ||
((val = switch_channel_get_variable(channel, "sip_sticky_contact")) && switch_true(val))) {
sticky = tech_pvt->record_route;
+ switch_channel_set_variable(channel, "sip_nat_detected", "true");
}
nua_respond(tech_pvt->nh,
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h Wed May 14 10:13:40 2008
@@ -45,7 +45,7 @@
#ifdef SWITCH_HAVE_ODBC
#include <switch_odbc.h>
#endif
-
+#define SOFIA_NAT_SESSION_TIMEOUT 20
#define SOFIA_MAX_ACL 100
#define MODNAME "mod_sofia"
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Wed May 14 10:13:40 2008
@@ -2727,10 +2727,14 @@
tech_pvt->remote_port = network_port;
if (sip->sip_contact && sip->sip_contact->m_url) {
+ char tmp[35] = "";
tech_pvt->record_route = switch_core_session_sprintf(session, "sip:%s@%s:%d",
sip->sip_contact->m_url->url_user,
tech_pvt->remote_ip,
tech_pvt->remote_port);
+ switch_channel_set_variable(channel, "sip_received_ip", tech_pvt->remote_ip);
+ snprintf(tmp, sizeof(tmp), "tech_pvt->remote_port");
+ switch_channel_set_variable(channel, "sip_received_port", tmp);
}
if (*key != '\0') {
@@ -3168,6 +3172,7 @@
if (ok) {
switch_set_flag(tech_pvt, TFLAG_NAT);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Setting NAT mode based on acl %s\n", last_acl);
+ switch_channel_set_variable(channel, "sip_nat_detected", "true");
}
}
}
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Wed May 14 10:13:40 2008
@@ -1007,7 +1007,8 @@
((val = switch_channel_get_variable(channel, "sip_sticky_contact")) && switch_true(val))) {
tech_pvt->record_route = switch_core_session_strdup(tech_pvt->session, url_str);
sticky = tech_pvt->record_route;
- session_timeout = 20;
+ session_timeout = SOFIA_NAT_SESSION_TIMEOUT;
+ switch_channel_set_variable(channel, "sip_nat_detected", "true");
}
@@ -1532,6 +1533,16 @@
if (tech_pvt->cng_pt) {
flags |= SWITCH_RTP_FLAG_AUTO_CNG;
}
+
+ if (tech_pvt->rtp_session && switch_test_flag(tech_pvt, TFLAG_REINVITE)) {
+ const char *ip = switch_channel_get_variable(tech_pvt->channel, SWITCH_LOCAL_MEDIA_IP_VARIABLE);
+ const char *port = switch_channel_get_variable(tech_pvt->channel, SWITCH_LOCAL_MEDIA_PORT_VARIABLE);
+
+ if (ip && port && !strcmp(ip, tech_pvt->adv_sdp_audio_ip) && atoi(port) == tech_pvt->remote_sdp_audio_port) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Audio params are unchanged.\n");
+ goto video;
+ }
+ }
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "AUDIO RTP [%s] %s:%d->%s:%d codec: %u ms: %d\n",
switch_channel_get_name(tech_pvt->channel),
@@ -1809,7 +1820,7 @@
}
if (((m = sdp->sdp_media)) && m->m_mode == sdp_sendonly) {
- sendonly = 1;
+ sendonly = 2; /* global sendonly always wins */
}
for (attr = sdp->sdp_attributes; attr; attr = attr->a_next) {
@@ -1819,7 +1830,7 @@
if ((!strcasecmp(attr->a_name, "sendonly")) || (!strcasecmp(attr->a_name, "inactive"))) {
sendonly = 1;
- } else if (!strcasecmp(attr->a_name, "sendrecv")) {
+ } else if (sendonly < 2 && !strcasecmp(attr->a_name, "sendrecv")) {
sendonly = 0;
} else if (!strcasecmp(attr->a_name, "ptime")) {
dptime = atoi(attr->a_value);
@@ -1840,7 +1851,7 @@
if (!(stream = switch_channel_get_variable(tech_pvt->channel, SWITCH_HOLD_MUSIC_VARIABLE))) {
stream = tech_pvt->profile->hold_music;
}
-
+
if (stream && strcasecmp(stream, "silence")) {
if (!strcasecmp(stream, "indicate_hold")) {
switch_channel_set_flag(tech_pvt->channel, CF_SUSPEND);
1
0
Author: lukedashjr
Date: Tue May 13 23:37:33 2008
New Revision: 8394
Added:
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/external/
- copied from r8393, /freeswitch/tags/1.0.rc5/conf/sip_profiles/external/
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/external.xml
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/conf/sip_profiles/external.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/external/example.xml
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/conf/sip_profiles/external/example.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/internal/
- copied from r8393, /freeswitch/tags/1.0.rc5/conf/sip_profiles/internal/
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/internal.xml
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/conf/sip_profiles/internal.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/internal/example.xml
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/conf/sip_profiles/internal/example.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch-lang-it.install
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/debian/freeswitch-lang-it.install
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch-lua.conffiles
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/debian/freeswitch-lua.conffiles
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch-lua.install
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/debian/freeswitch-lua.install
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch-perl.conffiles
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/debian/freeswitch-perl.conffiles
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch-perl.install
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/debian/freeswitch-perl.install
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/jpalley/
- copied from r8393, /freeswitch/tags/1.0.rc5/scripts/contrib/jpalley/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/DeflectCmd.cs
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/DeflectCmd.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/answer.h
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/answer.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/frame.h
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/frame.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/iax-client.h
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/iax-client.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/iax-mutex.c
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/iax-mutex.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/iax-mutex.h
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/iax-mutex.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/iax.c
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/iax.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/iax.h
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/iax.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/iax2-parser.c
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/iax2-parser.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/iax2-parser.h
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/iax2-parser.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/iax2.h
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/iax2.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/jitterbuf.c
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/jitterbuf.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/jitterbuf.h
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/jitterbuf.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/md5.c
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/md5.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/md5.h
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/md5.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/winpoop.h
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/endpoints/mod_iax/winpoop.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.cpp
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/src/mod/languages/mod_lua/mod_lua.cpp
freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/bit_operations.c
- copied unchanged from r8393, /freeswitch/tags/1.0.rc5/libs/voipcodecs/src/bit_operations.c
Removed:
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/default/
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/default.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/outbound/
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/outbound.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.c
freeswitch/branches/lukedashjr/syslibs/libs/apr-iconv-1.1.1/
freeswitch/branches/lukedashjr/syslibs/libs/iax/
freeswitch/branches/lukedashjr/syslibs/libs/win32/apr-iconv/
Modified:
freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.2008.sln
freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.sln
freeswitch/branches/lukedashjr/syslibs/freeswitch/Makefile.am
freeswitch/branches/lukedashjr/syslibs/freeswitch/build/config/ax_check_java.m4
freeswitch/branches/lukedashjr/syslibs/freeswitch/build/modmake.rules.in
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/ivr.conf.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/switch.conf.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/freeswitch.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/nat/example.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/configure.in
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/changelog
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/control
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/default/freeswitch
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/files
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch.conffiles
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch.install
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/rules
freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/ChangeLog
freeswitch/branches/lukedashjr/syslibs/freeswitch/freeswitch.spec
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/trixter/call-progress.pl
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/CallManager.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelHangup.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelInfo.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SendMsg.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/FreeSwitch.EventSocket.csproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresence.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/lua/mwi_event.lua
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/perl/mwi_event.pl
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/private/switch_core_pvt.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core_event_hook.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_cpp.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_event.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_ivr.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_module_interfaces.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_rtp.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_stun.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_types.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_conference/mod_conference.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_dptools/mod_dptools.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_esf/mod_esf.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_fifo/mod_fifo.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_fsv/mod_fsv.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_limit/mod_limit.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_rss/mod_rss.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_voicemail/mod_voicemail.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_alsa/mod_alsa.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_dingaling/mod_dingaling.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/Makefile
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.2008.vcproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.vcproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/mod_portaudio.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/pa_ringbuffer.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/pablio.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_reference/mod_reference.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_presence.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_reg.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/libsangoma/libsangoma.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/libsangoma/sangoma_pri.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_woomera/mod_woomera.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/event_handlers/mod_radius_cdr/mod_radius_cdr.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/formats/mod_local_stream/mod_local_stream.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/formats/mod_shout/layer3.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/CoreSession.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/switch_swig_wrap.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch_lua.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch_lua.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/hack.diff
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.2008.vcproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.vcproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua_wrap.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/Makefile
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch.pm
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch_perl.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch_perl.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/hack.diff
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl_wrap.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch.py
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python_wrap.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/switch_swig_wrap.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_ldap/Makefile
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_channel.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_event_hook.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_io.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_sqldb.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_state_machine.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_cpp.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_event.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_async.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_bridge.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_originate.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_play_say.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_loadable_module.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_rtp.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_stun.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_time.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Setup/Setup.2008.vdproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Setup/Setup.vdproj
freeswitch/branches/lukedashjr/syslibs/libs/apr-util/.update
freeswitch/branches/lukedashjr/syslibs/libs/apr-util/build-outputs.mk
freeswitch/branches/lukedashjr/syslibs/libs/apr-util/crypto/getuuid.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/.update
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/nta.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/nta_internal.h
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/nta.h
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_notifier.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.h
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_subnotref.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/sofia-sip/nua.h
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/test_simple.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/test_sip_events.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/soa/soa_static.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/soa/test_soa.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/su/su_log.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/tport/tport_tls.c
freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/Makefile.am
freeswitch/branches/lukedashjr/syslibs/libs/win32/apr-util/libaprutil.2008.vcproj
freeswitch/branches/lukedashjr/syslibs/libs/win32/apr-util/libaprutil.vcproj
Log:
MERGE to: http://svn.freeswitch.org/svn/freeswitch/tags/1.0.rc5
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.2008.sln
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.2008.sln (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.2008.sln Tue May 13 23:37:33 2008
@@ -125,9 +125,7 @@
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sip_profiles", "sip_profiles", "{8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26}"
ProjectSection(SolutionItems) = preProject
- conf\sip_profiles\default.xml = conf\sip_profiles\default.xml
conf\sip_profiles\nat.xml = conf\sip_profiles\nat.xml
- conf\sip_profiles\outbound.xml = conf\sip_profiles\outbound.xml
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lang", "lang", "{09455AA9-C243-4F16-A1A1-A016881A2765}"
@@ -390,7 +388,6 @@
{F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EEF031CB-FED8-451E-A471-91EC8D4F6750}
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}
EndProjectSection
EndProject
@@ -410,7 +407,6 @@
ProjectSection(ProjectDependencies) = postProject
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2008.vcproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
@@ -542,8 +538,6 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\codec\ilbc\libilbc.2008.vcproj", "{989BB874-7AF1-44CB-8E5C-CC8113D267E8}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiax2", "libs\iax\libiax2.2008.vcproj", "{5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}"
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdingaling", "libs\libdingaling\libdingaling.2008.vcproj", "{1906D736-08BD-4EE1-924F-B536249B9A54}"
ProjectSection(ProjectDependencies) = postProject
{F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
@@ -565,15 +559,9 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapr", "libs\win32\apr\libapr.2008.vcproj", "{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapriconv", "libs\win32\apr-iconv\libapriconv.2008.vcproj", "{101130D1-3EA6-4ED2-B65D-CEB5243A20ED}"
- ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- EndProjectSection
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaprutil", "libs\win32\apr-util\libaprutil.2008.vcproj", "{F057DA7F-79E5-4B00-845C-EF446EF055E3}"
ProjectSection(ProjectDependencies) = postProject
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeex", "libs\win32\speex\libspeex.2008.vcproj", "{1C469CDD-A3AF-4A94-A592-B2CF12F2D918}"
@@ -1043,12 +1031,6 @@
{989BB874-7AF1-44CB-8E5C-CC8113D267E8}.Release|Win32.ActiveCfg = Release|Win32
{989BB874-7AF1-44CB-8E5C-CC8113D267E8}.Release|Win32.Build.0 = Release|Win32
{989BB874-7AF1-44CB-8E5C-CC8113D267E8}.Release|x64.ActiveCfg = Release|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Debug|Win32.ActiveCfg = Debug|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Debug|Win32.Build.0 = Debug|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Debug|x64.ActiveCfg = Debug|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Release|Win32.ActiveCfg = Release|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Release|Win32.Build.0 = Release|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Release|x64.ActiveCfg = Release|Win32
{1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.ActiveCfg = Debug|Win32
{1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.Build.0 = Debug|Win32
{1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.ActiveCfg = Debug|Win32
@@ -1091,12 +1073,6 @@
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.ActiveCfg = Release|Win32
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.Build.0 = Release|Win32
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.ActiveCfg = Release|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Debug|Win32.ActiveCfg = Debug|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Debug|Win32.Build.0 = Debug|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Debug|x64.ActiveCfg = Debug|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Release|Win32.ActiveCfg = Release|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Release|Win32.Build.0 = Release|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Release|x64.ActiveCfg = Release|Win32
{F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.ActiveCfg = Debug|Win32
{F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.Build.0 = Debug|Win32
{F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.ActiveCfg = Debug|Win32
@@ -1515,7 +1491,6 @@
{ACFD96F2-58AA-491D-B4C0-33BD0BD57FDE} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{89385C74-5860-4174-9CAF-A39E7C48909C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{989BB874-7AF1-44CB-8E5C-CC8113D267E8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{1906D736-08BD-4EE1-924F-B536249B9A54} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
@@ -1523,7 +1498,6 @@
{1CED5987-A529-46DC-B30F-870D85FF9C94} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{50AD0E28-B8D7-4FCC-8FC3-599F6AC69761} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{F057DA7F-79E5-4B00-845C-EF446EF055E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{1C469CDD-A3AF-4A94-A592-B2CF12F2D918} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{E727E8F6-935D-46FE-8B0E-37834748A0E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.sln
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.sln (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.sln Tue May 13 23:37:33 2008
@@ -15,7 +15,6 @@
{F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EEF031CB-FED8-451E-A471-91EC8D4F6750}
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}
EndProjectSection
EndProject
@@ -35,7 +34,6 @@
ProjectSection(ProjectDependencies) = postProject
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.vcproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
@@ -193,8 +191,6 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\codec\ilbc\libilbc.vcproj", "{989BB874-7AF1-44CB-8E5C-CC8113D267E8}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiax2", "libs\iax\libiax2.vcproj", "{5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}"
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdingaling", "libs\libdingaling\libdingaling.vcproj", "{1906D736-08BD-4EE1-924F-B536249B9A54}"
ProjectSection(ProjectDependencies) = postProject
{F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
@@ -216,15 +212,9 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapr", "libs\win32\apr\libapr.vcproj", "{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapriconv", "libs\win32\apr-iconv\libapriconv.vcproj", "{101130D1-3EA6-4ED2-B65D-CEB5243A20ED}"
- ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- EndProjectSection
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaprutil", "libs\win32\apr-util\libaprutil.vcproj", "{F057DA7F-79E5-4B00-845C-EF446EF055E3}"
ProjectSection(ProjectDependencies) = postProject
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Downloads", "_Downloads", "{C120A020-773F-4EA3-923F-B67AF28B750D}"
@@ -1046,12 +1036,6 @@
{989BB874-7AF1-44CB-8E5C-CC8113D267E8}.Release|Win32.ActiveCfg = Release|Win32
{989BB874-7AF1-44CB-8E5C-CC8113D267E8}.Release|Win32.Build.0 = Release|Win32
{989BB874-7AF1-44CB-8E5C-CC8113D267E8}.Release|x64.ActiveCfg = Release|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Debug|Win32.ActiveCfg = Debug|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Debug|Win32.Build.0 = Debug|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Debug|x64.ActiveCfg = Debug|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Release|Win32.ActiveCfg = Release|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Release|Win32.Build.0 = Release|Win32
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Release|x64.ActiveCfg = Release|Win32
{1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.ActiveCfg = Debug|Win32
{1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.Build.0 = Debug|Win32
{1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.ActiveCfg = Debug|Win32
@@ -1094,12 +1078,6 @@
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.ActiveCfg = Release|Win32
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.Build.0 = Release|Win32
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.ActiveCfg = Release|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Debug|Win32.ActiveCfg = Debug|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Debug|Win32.Build.0 = Debug|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Debug|x64.ActiveCfg = Debug|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Release|Win32.ActiveCfg = Release|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Release|Win32.Build.0 = Release|Win32
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}.Release|x64.ActiveCfg = Release|Win32
{F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.ActiveCfg = Debug|Win32
{F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.Build.0 = Debug|Win32
{F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.ActiveCfg = Debug|Win32
@@ -1503,7 +1481,6 @@
{EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC}
{89385C74-5860-4174-9CAF-A39E7C48909C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{989BB874-7AF1-44CB-8E5C-CC8113D267E8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{1906D736-08BD-4EE1-924F-B536249B9A54} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
@@ -1511,7 +1488,6 @@
{1CED5987-A529-46DC-B30F-870D85FF9C94} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{50AD0E28-B8D7-4FCC-8FC3-599F6AC69761} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{F057DA7F-79E5-4B00-845C-EF446EF055E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{1C469CDD-A3AF-4A94-A592-B2CF12F2D918} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{E727E8F6-935D-46FE-8B0E-37834748A0E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/Makefile.am
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/Makefile.am (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/Makefile.am Tue May 13 23:37:33 2008
@@ -250,6 +250,10 @@
sync:
svn update
+ $(MAKE) install
+
+speedy-sync:
+ svn update
$(MAKE) -j install
update-clean: clean modwipe uninstall
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/build/config/ax_check_java.m4
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/build/config/ax_check_java.m4 (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/build/config/ax_check_java.m4 Tue May 13 23:37:33 2008
@@ -9,9 +9,9 @@
AC_DEFUN([AX_CHECK_JAVA],
[
AC_ARG_WITH([java],
- AC_HELP_STRING([ --with-java=PFX], [prefix where 'java' is installed.]),
- [with_java_prefix=$withval],
- [with_java_prefix=${JAVA_INSTALL_PATH:-/usr/java/j2sdk1.4.1_01}])
+ [AC_HELP_STRING([--with-java=PFX], [prefix where 'java' is installed.])],
+ [with_java_prefix="$withval"],
+ [with_java_prefix="${JAVA_INSTALL_PATH:-/usr/java/j2sdk1.4.1_01}"])
have_java='no'
LIB_JAVA=''
JAVA_FLAGS=''
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/build/modmake.rules.in
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/build/modmake.rules.in (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/build/modmake.rules.in Tue May 13 23:37:33 2008
@@ -87,7 +87,7 @@
@if test ! -f $@; then \
if ! pwd | grep $(switch_srcdir)/src/mod ; then rulesdir=$(switch_srcdir) ; else rulesdir=../../../.. ; fi ; \
echo BASE=$$rulesdir > Makefile ; \
- echo "include $(BASE)/build/modmake.rules" >> Makefile ; \
+ echo 'include $$(BASE)/build/modmake.rules' >> Makefile ; \
fi ;
LINK_OUTPUT_REDIR=> .libs/$(MODNAME).log || error="yes" ; \
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/ivr.conf.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/ivr.conf.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/ivr.conf.xml Tue May 13 23:37:33 2008
@@ -10,11 +10,7 @@
timeout ="10000"
inter-digit-timeout="2000"
max-failures="3"
- confirm-macro="demo_ivr_count"
- confirm-key="1"
- confirm-attempts="3"
- digit-len="4"
- >
+ digit-len="4">
<entry action="menu-exec-app" digits="1" param="bridge sofia/$${domain}/888(a)conference.freeswitch.org"/>
<entry action="menu-exec-app" digits="2" param="transfer 9996 XML default"/> <!-- FS echo -->
<entry action="menu-exec-app" digits="3" param="transfer 9999 XML default"/> <!-- MOH -->
@@ -28,7 +24,8 @@
greet-long="phrase:demo_ivr_sub_menu"
greet-short="phrase:demo_ivr_sub_menu_short"
invalid-sound="voicemail/vm-hello.wav"
- exit-sound="voicemail/vm-goodbye.wav" timeout="15"
+ exit-sound="voicemail/vm-goodbye.wav"
+ timeout="15000"
max-failures="3">
<entry action="menu-top" digits="*"/>
</menu>
@@ -45,7 +42,8 @@
greet-long="say:Press 1 to join the conference, Press 2 to join the other conference"
greet-short="say:Press 1 to join the conference, Press 2 to join the other conference"
invalid-sound="say:invalid extension"
- exit-sound="say:exit sound" timeout ="15"
+ exit-sound="say:exit sound"
+ timeout ="15000"
max-failures="3">
<entry action="menu-exit" digits="*"/>
<entry action="menu-playback" digits="1" param="say:You pressed 1"/>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/switch.conf.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/switch.conf.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/switch.conf.xml Tue May 13 23:37:33 2008
@@ -9,7 +9,7 @@
<key name="6" value="reloadxml"/>
<key name="7" value="console loglevel 0"/>
<key name="8" value="console loglevel 7"/>
- <key name="9" value="sofia status profile default"/>
+ <key name="9" value="sofia status profile internal"/>
<key name="10" value="fsctl pause"/>
<key name="11" value="fsctl resume"/>
<key name="12" value="version"/>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/freeswitch.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/freeswitch.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/freeswitch.xml Tue May 13 23:37:33 2008
@@ -37,7 +37,7 @@
<!-- phrases section (under development still) -->
<section name="phrases" description="Speech Phrase Management">
<macros>
- <X-PRE-PROCESS cmd="include" data="lang/*/*.xml"/>
+ <X-PRE-PROCESS cmd="include" data="lang/en/*.xml"/>
</macros>
</section>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/nat/example.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/nat/example.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/nat/example.xml Tue May 13 23:37:33 2008
@@ -10,8 +10,6 @@
<!--<param name="from-domain" value="asterlink.com"/>-->
<!--/// account password *required* ///-->
<!--<param name="password" value="2007"/>-->
- <!--/// replace the INVITE from user with the channel's caller-id ///-->
- <!--<param name="caller-id-in-from" value="false"/>-->
<!--/// extension for inbound calls: *optional* same as username, if blank ///-->
<!--<param name="extension" value="cluecon"/>-->
<!--/// proxy host: *optional* same as realm, if blank ///-->
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/configure.in
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/configure.in (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/configure.in Tue May 13 23:37:33 2008
@@ -3,11 +3,11 @@
# Must change all of the below together
# For a release, set revision for that tagged release as well and uncomment
-AC_INIT([freeswitch], [1.0.rc4], BUG-REPORT-ADDRESS)
+AC_INIT([freeswitch], [1.0.rc5], BUG-REPORT-ADDRESS)
AC_SUBST(SWITCH_VERSION_MAJOR, [1])
AC_SUBST(SWITCH_VERSION_MINOR, [0])
-AC_SUBST(SWITCH_VERSION_MICRO, [rc4])
-AC_SUBST(SWITCH_VERSION_REVISION, [8261])
+AC_SUBST(SWITCH_VERSION_MICRO, [rc5])
+AC_SUBST(SWITCH_VERSION_REVISION, [8381])
AC_CONFIG_FILES([src/include/switch_version.h.in:src/include/switch_version.h.template])
@@ -31,7 +31,8 @@
AC_SUBST(switch_builddir)
# Where to install the modules
-AC_ARG_WITH(modinstdir, [ --with-modinstdir (default=$prefix/mod)], modinstdir=$withval, modinstdir="${prefix}/mod")
+AC_ARG_WITH([modinstdir],
+ [AS_HELP_STRING([--with-modinstdir=DIR], [Install modules into this location (default: $prefix/mod)])], [modinstdir="$withval"], [modinstdir="${prefix}/mod"])
AC_SUBST(modinstdir)
AC_DEFINE_UNQUOTED([SWITCH_MOD_DIR],"${modinstdir}",[where to install the modules to])
@@ -64,12 +65,10 @@
fi
-AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"])
-
# Optional Features
AC_ARG_ENABLE(resample,
-[AC_HELP_STRING([--enable-resample],[build with embedded resampler])],[enable_resample="$enable_resample"],[enable_resample="yes"])
+[AC_HELP_STRING([--disable-resample],[build without embedded resampler])],[enable_resample="$enableval"],[enable_resample="yes"])
# We should add checking for out of tree libresample here
RESAMPLE_LIB=
@@ -142,9 +141,10 @@
APR_ADDTO(SWITCH_AM_CFLAGS, -Werror)
fi
-# Enable debugging
+# Enable debugging (default: on)
+# (rename option if the default is changed)
AC_ARG_ENABLE(debug,
-[AC_HELP_STRING([--enable-debug],[build with debug information])],[enable_debug="$enable_debug"],[enable_debug="yes"])
+[AC_HELP_STRING([--disable-debug],[build without debug information])],[enable_debug="$enableval"],[enable_debug="yes"])
if test "${enable_debug}" = "yes"; then
AC_DEFINE([DEBUG],[],[Enable extra debugging.])
@@ -157,6 +157,8 @@
fi
+AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"])
+
# tweak platform specific flags
case "$host" in
@@ -546,10 +548,10 @@
AC_ARG_ENABLE(core-odbc-support,
- [ --enable-core-odbc-support Compile with ODBC Support],,[enable_core_odbc_support="no"])
+ [AS_HELP_STRING([--enable-core-odbc-support], [Compile with ODBC Support])],,[enable_core_odbc_support="no"])
AC_ARG_ENABLE(core-libedit-support,
- [ --disable-core-libedit-support Compile without libedit Support],,[enable_core_libedit_support="yes"])
+ [AS_HELP_STRING([--disable-core-libedit-support], [Compile without libedit Support])], [enable_core_libedit_support="$enableval"], [enable_core_libedit_support="yes"])
if test "$enable_core_libedit_support" = "yes" ; then
AC_CHECK_LIB(ncurses, tgetent,,
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/changelog
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/changelog (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/changelog Tue May 13 23:37:33 2008
@@ -1,3 +1,45 @@
+freeswitch (1.0~rc5-1) unstable; urgency=low
+
+ * Changed internal state names to avoid confusion
+ Fixed video negotiation
+ Enhanced accuracy of windows timer
+ Fixed mod_ldap build
+ Added dialplan and context to sql table for channels
+ Multiple fixes to mod_lua and mod_perl
+ Fixed logic bug in fifo causing segfault
+ internal changes to sip stack so we can remove a hash redundant to the stack
+ Fixed multiple memory leaks in mod_sofia
+ Fixed event fetch segfault on sip subscribe
+ Fixed segfault on timer rollover in sofia on 64bit
+ Fixed audio timing issues in mod_portaudio
+ Changed names of sip profiles in default config to avoid confusion
+ Fixed memory usage leak-like behavior when playing files requiring resampling
+ Removed some unused api's
+ Fix rtp timeout when playing moh
+ Removed some un-needed libraries and files from tree
+ Fixed multiple issues in sip stack including multiple segfaults
+ Added support for sip transfers on bypass_media and proxy_media calls
+ Added say application
+ Fixed --disable-debug configure option
+ Enhanced switch_cpp wrapper (and perl, python, lua, java)
+ Fixed segfault on inavalid stun response
+ Fixed configure help output
+ Fixed segfault on mp3 playback
+ Fixed assert on invalid sdp (missing m= line)
+ Added configurable windows service name
+ Fixed proxy mode call transition to non proxy call
+ Fixed solaris build of voipcodecs
+ Fixed sofia seg when call failure edge case
+
+ -- Michael Jerris <mike(a)jerris.com> Tue, 13 May 2008 02:01:00 -0400
+
+freeswitch (1.0~8327) unstable; urgency=low
+
+ * Adding perl and lua separate packages
+ * Adding mod_voipcodecs
+
+ -- root <root(a)fs.navynet.it> Tue, 6 May 2008 09:46:26 +0000
+
freeswitch (1.0~rc4-1) unstable; urgency=low
* Add tab completion in cli
Add "inline" dialplan
@@ -31,6 +73,16 @@
Fixed MSVC build
Fixed segfault on sip SUBSCRIBE with Expires: 0
Added mod_say_zh
+ Added --with-pyton and --with-pyton-config configure options
+ Added mod_lua
+ Enhanced switch_cpp wrapper in core and normalized interfaces for perl, python, lua, and java
+ Fixed multiple issues in cpp wrapper and the languages perl, python, lua and java
+ Added back mod_perl
+ Added sofia gateway option ping to adjust options ping frequency
+ Added .net event socket lib to contrib
+ Fixed passing of exact response codes of sip across a bridge
+ Added mod_reference, reference endpoint module
+ Enhanced build so you can now make commented out modules using "make mod_name"
-- Michael Jerris <mike(a)jerris.com> Wed, 23 Apr 2008 12:58:00 -0400
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/control
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/control (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/control Tue May 13 23:37:33 2008
@@ -2,7 +2,7 @@
Maintainer: Michal Bielicki <michal.bielicki(a)voiceworks.pl>
Section: net
Priority: extra
-Build-Depends: debhelper (>= 5), automake1.9, autoconf, libtool, unixodbc-dev, libasound2-dev, libcurl3-dev, libssl-dev, ncurses-dev
+Build-Depends: debhelper (>= 5), automake1.9, autoconf, libtool, unixodbc-dev, libasound2-dev, libcurl3-dev|libcurl4-openssl-dev, libssl-dev, ncurses-dev, libogg-dev, libvorbis-dev, libperl-dev, libgdbm-dev, libdb4.4-dev, libgnutls-dev
Standards-Version: 3.7.2
Package: freeswitch
@@ -17,18 +17,34 @@
control the callflow.
Homepage: http://www.freeswitch.org/
+Package: freeswitch-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
+Description: Development Package for the FreeSwitch open source telephony platform
+Homepage: http://www.freeswitch.org/
+
+
Package: freeswitch-spidermonkey
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: A Javascript engine for freeswitch
Homepage: http://www.freeswitch.org/
-Package: freeswitch-dev
+Package: freeswitch-perl
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
-Description: Development Package for the FreeSwitch open source telephony platform
+Description: A perl engine for freeswitch
Homepage: http://www.freeswitch.org/
+Package: freeswitch-lua
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
+Description: A lua engine for freeswitch
+Homepage: http://www.freeswitch.org/
+
+
+
+
Package: freeswitch-codec-passthru-g7231
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
@@ -47,6 +63,9 @@
Description: Pass through g729 Codec support for the FreeSWITCH open source telephony platform
Homepage: http://www.freeswitch.org/
+
+
+
Package: freeswitch-lang-en
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
@@ -64,3 +83,9 @@
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: French language files for the FreeSWITCH open source telephony platform
Homepage: http://www.freeswitch.org/
+
+Package: freeswitch-lang-it
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
+Description: Italian language files for the FreeSWITCH open source telephony platform
+Homepage: http://www.freeswitch.org/
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/default/freeswitch
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/default/freeswitch (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/default/freeswitch Tue May 13 23:37:33 2008
@@ -3,4 +3,5 @@
# start and stop of freeswitch
# Enable initd (let init handle start and stop of freeswitch)
+
USE_INIT="false"
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/files
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/files (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/files Tue May 13 23:37:33 2008
@@ -1,9 +1,10 @@
-freeswitch_1.0~rc4-1_i386.deb net extra
-freeswitch-spidermonkey_1.0~rc4-1_i386.deb net extra
-freeswitch-dev_1.0~rc4-1_i386.deb net extra
-freeswitch-codec-passthru-g7231_1.0~rc4-1_i386.deb net extra
-freeswitch-codec-passthru-amr_1.0~rc4-1_i386.deb net extra
-freeswitch-codec-passthru-g729_1.0~rc4-1_i386.deb net extra
-freeswitch-lang-en_1.0~rc4-1_i386.deb net extra
-freeswitch-lang-de_1.0~rc4-1_i386.deb net extra
-freeswitch-lang-fr_1.0~rc4-1_i386.deb net extra
+freeswitch_1.0~rc5-1_i386.deb net extra
+freeswitch-spidermonkey_1.0~rc5-1_i386.deb net extra
+freeswitch-dev_1.0~rc5-1_i386.deb net extra
+freeswitch-codec-passthru-g7231_1.0~rc5-1_i386.deb net extra
+freeswitch-codec-passthru-amr_1.0~rc5-1_i386.deb net extra
+freeswitch-codec-passthru-g729_1.0~rc5-1_i386.deb net extra
+freeswitch-lang-en_1.0~rc5-1_i386.deb net extra
+freeswitch-lang-de_1.0~rc5-1_i386.deb net extra
+freeswitch-lang-fr_1.0~rc5-1_i386.deb net extra
+freeswitch-lang-it_1.0~rc5-1_i386.deb net extra
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch.conffiles
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch.conffiles (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch.conffiles Tue May 13 23:37:33 2008
@@ -1,15 +1,20 @@
-/opt/freeswitch/conf/dialplan/public.xml
-/opt/freeswitch/conf/dialplan/default.xml
/opt/freeswitch/conf/vars.xml
/opt/freeswitch/conf/mime.types
/opt/freeswitch/conf/web-vm.tpl
/opt/freeswitch/conf/tetris.ttml
-/opt/freeswitch/conf/sip_profiles/outbound.xml
+/opt/freeswitch/conf/fur_elise.ttml
+/opt/freeswitch/conf/voicemail.tpl
+/opt/freeswitch/conf/freeswitch.xml
+/opt/freeswitch/conf/extensions.conf
+/opt/freeswitch/conf/dialplan/public.xml
+/opt/freeswitch/conf/dialplan/default.xml
+/opt/freeswitch/conf/dialplan/features.xml
+/opt/freeswitch/conf/sip_profiles/external.xml
/opt/freeswitch/conf/sip_profiles/nat.xml
/opt/freeswitch/conf/sip_profiles/nat/example.xml
-/opt/freeswitch/conf/sip_profiles/default/example.xml
-/opt/freeswitch/conf/sip_profiles/default.xml
-/opt/freeswitch/conf/sip_profiles/outbound/example.xml
+/opt/freeswitch/conf/sip_profiles/internal/example.xml
+/opt/freeswitch/conf/sip_profiles/internal.xml
+/opt/freeswitch/conf/sip_profiles/external/example.xml
/opt/freeswitch/conf/directory/default/1007.xml
/opt/freeswitch/conf/directory/default/1001.xml
/opt/freeswitch/conf/directory/default/1008.xml
@@ -33,10 +38,6 @@
/opt/freeswitch/conf/directory/default/1016.xml
/opt/freeswitch/conf/directory/default/1012.xml
/opt/freeswitch/conf/directory/default.xml
-/opt/freeswitch/conf/fur_elise.ttml
-/opt/freeswitch/conf/voicemail.tpl
-/opt/freeswitch/conf/freeswitch.xml
-/opt/freeswitch/conf/extensions.conf
/opt/freeswitch/conf/autoload_configs/ivr.conf.xml
/opt/freeswitch/conf/autoload_configs/voicemail.conf.xml
/opt/freeswitch/conf/autoload_configs/switch.conf.xml
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch.install
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch.install (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/freeswitch.install Tue May 13 23:37:33 2008
@@ -2,6 +2,7 @@
opt/freeswitch/bin/freeswitch
opt/freeswitch/bin/scripts/*
opt/freeswitch/lib/libfreeswitch*.so*
+opt/freeswitch/mod/mod_shout*
opt/freeswitch/mod/mod_console.so*
opt/freeswitch/mod/mod_expr.so*
opt/freeswitch/mod/mod_rss.so*
@@ -35,19 +36,21 @@
opt/freeswitch/mod/mod_xml_*.so*
opt/freeswitch/mod/mod_fsv.so*
opt/freeswitch/mod/mod_tone_stream.so*
-opt/freeswitch/conf/dialplan/public.xml
-opt/freeswitch/conf/dialplan/default.xml
-opt/freeswitch/conf/dialplan/extensions
opt/freeswitch/conf/vars.xml
opt/freeswitch/conf/mime.types
opt/freeswitch/conf/web-vm.tpl
opt/freeswitch/conf/tetris.ttml
-opt/freeswitch/conf/sip_profiles/outbound.xml
+opt/freeswitch/conf/fur_elise.ttml
+opt/freeswitch/conf/dialplan/public.xml
+opt/freeswitch/conf/dialplan/default.xml
+opt/freeswitch/conf/dialplan/features.xml
+opt/freeswitch/conf/dialplan/extensions
+opt/freeswitch/conf/sip_profiles/external.xml
opt/freeswitch/conf/sip_profiles/nat.xml
opt/freeswitch/conf/sip_profiles/nat/example.xml
-opt/freeswitch/conf/sip_profiles/default/example.xml
-opt/freeswitch/conf/sip_profiles/default.xml
-opt/freeswitch/conf/sip_profiles/outbound/example.xml
+opt/freeswitch/conf/sip_profiles/internal/example.xml
+opt/freeswitch/conf/sip_profiles/internal.xml
+opt/freeswitch/conf/sip_profiles/external/example.xml
opt/freeswitch/conf/directory/default/1007.xml
opt/freeswitch/conf/directory/default/1001.xml
opt/freeswitch/conf/directory/default/1008.xml
@@ -71,7 +74,6 @@
opt/freeswitch/conf/directory/default/1016.xml
opt/freeswitch/conf/directory/default/1012.xml
opt/freeswitch/conf/directory/default.xml
-opt/freeswitch/conf/fur_elise.ttml
opt/freeswitch/conf/voicemail.tpl
opt/freeswitch/conf/freeswitch.xml
opt/freeswitch/conf/extensions.conf
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/rules
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/rules (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/rules Tue May 13 23:37:33 2008
@@ -9,20 +9,20 @@
export DEB_DH_INSTALL_SOURCEDIR=debian/tmp
export PASSTHRU_CODEC_MODULES=codecs/mod_g729 codecs/mod_g723_1 codecs/mod_amr
export SPIDERMONKEY_MODULES=languages/mod_spidermonkey languages/mod_spidermonkey_core_db languages/mod_spidermonkey_odbc languages/mod_spidermonkey_socket languages/mod_spidermonkey_teletone
-export APPLICATIONS_MODULES=applications/mod_commands applications/mod_conference applications/mod_dptools applications/mod_enum applications/mod_esf applications/mod_expr applications/mod_fifo applications/mod_limit applications/mod_rss applications/mod_voicemail applications/mod_fsv
+export APPLICATIONS_MODULES=applications/mod_commands applications/mod_conference applications/mod_dptools applications/mod_enum applications/mod_esf applications/mod_expr applications/mod_fifo applications/mod_limit applications/mod_rss applications/mod_voicemail applications/mod_fsv
export ASR_TTS_MODULES=asr_tts/mod_openmrcp
-export CODECS_MODULES=codecs/mod_ilbc codecs/mod_h26x codecs/mod_speex mod_voipcodecs
+export CODECS_MODULES=codecs/mod_ilbc codecs/mod_h26x codecs/mod_speex codecs/mod_voipcodecs
export DIALPLANS_MODULES=dialplans/mod_dialplan_asterisk dialplans/mod_dialplan_directory dialplans/mod_dialplan_xml
export DIRECTORIES_MODULES=
export DOTNET_MODULES=
export ENDPOINTS_MODULES=endpoints/mod_dingaling endpoints/mod_iax endpoints/mod_portaudio endpoints/mod_sofia endpoints/mod_woomera ../../libs/openzap/mod_openzap
export EVENT_HANDLERS_MODULES=event_handlers/mod_event_multicast event_handlers/mod_event_socket
-export FORMATS_MODULES=formats/mod_local_stream formats/mod_native_file formats/mod_sndfile formats/mod_tone_stream
-export LANGUAGES_MODULES=
+export FORMATS_MODULES=formats/mod_local_stream formats/mod_native_file formats/mod_sndfile formats/mod_tone_stream formats/mod_shout
+export LANGUAGES_MODULES=languages/mod_perl languages/mod_lua
export LOGGERS_MODULES=loggers/mod_console loggers/mod_logfile loggers/mod_syslog
-export SAY_MODULES=say/mod_say_de say/mod_say_en say/mod_say_fr
+export SAY_MODULES=say/mod_say_de say/mod_say_en say/mod_say_fr say/mod_say_it
export TIMERS_MODULES=
-export DISABLED_MODULES=applications/mod_soundtouch directories/mod_ldap languages/mod_java languages/mod_python languages/mod_spidermonkey_skel ast_tts/mod_cepstral asr_tts/mod_lumenvox endpoints/mod_wanpipe event_handlers/mod_event_test event_handlers/mod_radius_cdr event_handlers/mod_zeroconf formats/mod_shout say/mod_say_it say/mod_say_es say/mod_say_nl
+export DISABLED_MODULES=applications/mod_soundtouch directories/mod_ldap languages/mod_java languages/mod_python languages/mod_spidermonkey_skel ast_tts/mod_cepstral asr_tts/mod_lumenvox endpoints/mod_wanpipe event_handlers/mod_event_test event_handlers/mod_radius_cdr event_handlers/mod_zeroconf say/mod_say_es say/mod_say_nl
export XML_INT_MODULES=xml_int/mod_xml_rpc xml_int/mod_xml_curl xml_int/mod_xml_cdr
export MYMODULES=$(PASSTHRU_CODEC_MODULES) $(SPIDERMONKEY_MODULES) $(APPLICATIONS_MODULES) $(ASR_TTS_MODULES) $(CODECS_MODULES) $(DIALPLANS_MODULES) $(DIRECTORIES_MODULES) $(DOTNET_MODULES) $(ENDPOINTS_MODULES) $(EVENT_HANDLERS_MODULES) $(FORMATS_MODULES) $(LANGUAGES_MODULES) $(LOGGERS_MODULES) $(SAY_MODULES) $(TIMERS_MODULES) $(XML_INT_MODULES)
export MODULES=$(MYMODULES)
@@ -53,10 +53,7 @@
touch modules.conf
echo $(MODULES)
for i in $(MODULES); do echo $$i >> modules.conf; done
- ./configure --prefix=/opt/freeswitch \
- --host=$(DEB_HOST_GNU_TYPE) \
- --build=$(DEB_BUILD_GNU_TYPE) \
- CFLAGS="-D__VIA_HACK__" ${FEATURES}
+ ./configure --prefix=/opt/freeswitch --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) ${FEATURES}
configure: bootstrap.sh
AUTOCONF=${AUTOCONF} ./bootstrap.sh
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/ChangeLog
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/ChangeLog (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/ChangeLog Tue May 13 23:37:33 2008
@@ -1,3 +1,36 @@
+freeswitch (1.0.rc5)
+
+ Changed internal state names to avoid confusion
+ Fixed video negotiation
+ Enhanced accuracy of windows timer
+ Fixed mod_ldap build
+ Added dialplan and context to sql table for channels
+ Multiple fixes to mod_lua and mod_perl
+ Fixed logic bug in fifo causing segfault
+ internal changes to sip stack so we can remove a hash redundant to the stack
+ Fixed multiple memory leaks in mod_sofia
+ Fixed event fetch segfault on sip subscribe
+ Fixed segfault on timer rollover in sofia on 64bit
+ Fixed audio timing issues in mod_portaudio
+ Changed names of sip profiles in default config to avoid confusion
+ Fixed memory usage leak-like behavior when playing files requiring resampling
+ Removed some unused api's
+ Fix rtp timeout when playing moh
+ Removed some un-needed libraries and files from tree
+ Fixed multiple issues in sip stack including multiple segfaults
+ Added support for sip transfers on bypass_media and proxy_media calls
+ Added say application
+ Fixed --disable-debug configure option
+ Enhanced switch_cpp wrapper (and perl, python, lua, java)
+ Fixed segfault on inavalid stun response
+ Fixed configure help output
+ Fixed segfault on mp3 playback
+ Fixed assert on invalid sdp (missing m= line)
+ Added configurable windows service name
+ Fixed proxy mode call transition to non proxy call
+ Fixed solaris build of voipcodecs
+ Fixed sofia seg when call failure edge case
+
freeswitch (1.0.rc4)
Add tab completion in cli
@@ -32,6 +65,16 @@
Fixed MSVC build
Fixed segfault on sip SUBSCRIBE with Expires: 0
Added mod_say_zh
+ Added --with-pyton and --with-pyton-config configure options
+ Added mod_lua
+ Enhanced switch_cpp wrapper in core and normalized interfaces for perl, python, lua, and java
+ Fixed multiple issues in cpp wrapper and the languages perl, python, lua and java
+ Added back mod_perl
+ Added sofia gateway option ping to adjust options ping frequency
+ Added .net event socket lib to contrib
+ Fixed passing of exact response codes of sip across a bridge
+ Added mod_reference, reference endpoint module
+ Enhanced build so you can now make commented out modules using "make mod_name"
freeswitch (1.0.rc3)
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/freeswitch.spec
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/freeswitch.spec (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/freeswitch.spec Tue May 13 23:37:33 2008
@@ -5,7 +5,7 @@
Summary: FreeSWITCH open source telephony platform
License: MPL
Group: Productivity/Telephony/Servers
-Version: 1.0.rc4
+Version: 1.0.rc5
Release: 1
URL: http://www.freeswitch.org/
Packager: Michal Bielicki
@@ -250,7 +250,6 @@
%postun
%{?run_ldconfig:%run_ldconfig}
-%{__rm} -rf %{prefix}
userdel freeswitch
%clean
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/trixter/call-progress.pl
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/trixter/call-progress.pl (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/trixter/call-progress.pl Tue May 13 23:37:33 2008
@@ -138,7 +138,7 @@
} elsif (watchedChannel($myhash->{'channel-name'})) {
if ($myhash->{'event-name'} eq "CHANNEL_ANSWER") { ## deal with answers
do_answer($myhash);
- } elsif ($myhash->{'event-name'} eq "CHANNEL_STATE" && $myhash->{'channel-state'} eq "CS_RING") {
+ } elsif ($myhash->{'event-name'} eq "CHANNEL_STATE" && $myhash->{'channel-state'} eq "CS_ROUTING") {
do_ring($myhash);
} elsif ($myhash->{'event-name'} eq "CHANNEL_HANGUP") { ## last thing done on a channel
do_hangup($myhash);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/CallManager.cs
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/CallManager.cs (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/CallManager.cs Tue May 13 23:37:33 2008
@@ -60,7 +60,7 @@
if (theEvent is EventPresenceIn)
{
EventPresenceIn ep = (EventPresenceIn) theEvent;
- //Channel-State: CS_RING
+ //Channel-State: CS_ROUTING
//Channel-Name: sofia/default/jonas%40192.168.1.102%3A5070
//Unique-ID: 2f87ba27-2f71-d64d-8c64-9966ee894eac
//Call-Direction: inbound
@@ -68,7 +68,7 @@
//Event-Name: PRESENCE_IN
CallState state = CallState.Unknown;
string destination = string.Empty;
- if (ep.ChannelState.ChannelInfo.State == ChannelState.Ring)
+ if (ep.ChannelState.ChannelInfo.State == ChannelState.Routing)
{
if (IsInbound(ep))
{
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelHangup.cs
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelHangup.cs (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelHangup.cs Tue May 13 23:37:33 2008
@@ -1,77 +1,16 @@
using System;
-using System.Collections.Generic;
-using System.Text;
namespace FreeSwitch.EventSocket
{
public class EventChannelHangup : EventChannelState
{
- private Causes m_hangupCause;
+ private HangupCause _hangupCause;
- public enum Causes
- {
- Success,
- NoRouteTransitNet,
- NoRouteDestination,
- ChannelUnacceptable,
- CallAwardedDelivered,
- NormalClearing,
- UserBusy,
- NoUserResponse,
- NoAnswer,
- SubscriberAbsent,
- CallRejected,
- NumberChanged,
- RedirectionToNewDestination,
- ExchangeRoutingError,
- DestinationOutOfOrder,
- InvalidNumberFormat,
- FacilityRejected,
- ResponseToStatusEnquiry,
- NormalUnspecified,
- NormalCircuitCongestion,
- NetworkOutOfOrder,
- NormalTemporaryFailure,
- SwitchCongestion,
- AccessInfoDiscarded,
- RequestedChanUnavail,
- PreEmpted,
- FacilityNotSubscribed,
- OutgoingCallBarred,
- IncomingCallBarred,
- BearercapabilityNotauth,
- BearercapabilityNotavail,
- ServiceUnavailable,
- ChanNotImplemented,
- FacilityNotImplemented,
- ServiceNotImplemented,
- InvalidCallReference,
- IncompatibleDestination,
- InvalidMsgUnspecified,
- MandatoryIeMissing,
- MessageTypeNonexist,
- WrongMessage,
- IeNonexist,
- InvalidIeContents,
- WrongCallState,
- RecoveryOnTimerExpire,
- MandatoryIeLengthError,
- ProtocolError,
- Interworking,
- OriginatorCancel,
- Crash,
- SystemShutdown,
- LoseRace,
- ManagerRequest,
- BlindTransfer,
- AttendedTransfer,
- AllottedTimeout
- }
- public Causes Cause
+ public HangupCause Cause
{
- get { return m_hangupCause; }
- set { m_hangupCause = value; }
+ get { return _hangupCause; }
+ set { _hangupCause = value; }
}
public override bool ParseCommand(string name, string value)
@@ -79,7 +18,14 @@
if (name == "hangupcause" || name == "hangup-cause")
{
string cause = StringHelper.UpperCaseToCamelCase(value);
- m_hangupCause = (Causes)Enum.Parse(typeof(Causes), cause);
+ try
+ {
+ _hangupCause = (HangupCause)Enum.Parse(typeof(HangupCause), cause, true);
+ }
+ catch(ArgumentException)
+ {
+ _hangupCause = HangupCause.Unknown;
+ }
}
else
return base.ParseCommand(name, value);
@@ -88,4 +34,67 @@
}
}
+
+ public enum HangupCause
+ {
+ Success,
+ NoRouteTransitNet,
+ NoRouteDestination,
+ ChannelUnacceptable,
+ CallAwardedDelivered,
+ NormalClearing,
+ UserBusy,
+ NoUserResponse,
+ NoAnswer,
+ SubscriberAbsent,
+ CallRejected,
+ NumberChanged,
+ RedirectionToNewDestination,
+ ExchangeRoutingError,
+ DestinationOutOfOrder,
+ InvalidNumberFormat,
+ FacilityRejected,
+ ResponseToStatusEnquiry,
+ NormalUnspecified,
+ NormalCircuitCongestion,
+ NetworkOutOfOrder,
+ NormalTemporaryFailure,
+ SwitchCongestion,
+ AccessInfoDiscarded,
+ RequestedChanUnavail,
+ PreEmpted,
+ FacilityNotSubscribed,
+ OutgoingCallBarred,
+ IncomingCallBarred,
+ BearercapabilityNotauth,
+ BearercapabilityNotavail,
+ ServiceUnavailable,
+ ChanNotImplemented,
+ FacilityNotImplemented,
+ ServiceNotImplemented,
+ InvalidCallReference,
+ IncompatibleDestination,
+ InvalidMsgUnspecified,
+ MandatoryIeMissing,
+ MessageTypeNonexist,
+ WrongMessage,
+ IeNonexist,
+ InvalidIeContents,
+ WrongCallState,
+ RecoveryOnTimerExpire,
+ MandatoryIeLengthError,
+ ProtocolError,
+ Interworking,
+ OriginatorCancel,
+ Crash,
+ SystemShutdown,
+ LoseRace,
+ ManagerRequest,
+ BlindTransfer,
+ AttendedTransfer,
+ AllottedTimeout,
+ UnAllocated,
+ Unknown
+ }
+
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelInfo.cs
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelInfo.cs (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelInfo.cs Tue May 13 23:37:33 2008
@@ -3,32 +3,32 @@
#region enum ChannelState
public enum ChannelState
{
- New, // Channel is newly created
- Init, // Channel has been initilized
- Ring, // Channel is looking for a dialplan
- Transmit, // Channel is in a passive transmit state
- Execute, // Channel is executing it's dialplan
- Loopback, // Channel is in loopback
- Hold, // Channel is on hold
- Hibernate, // Channel is in a sleep state
- Hangup, // Channel is flagged for hangup and ready to end
- Done, // Channel is ready to be destroyed and out of the state machine
+ New, // Channel is newly created
+ Init, // Channel has been initilized
+ Routing, // Channel is looking for a dialplan
+ SoftExecute, // Channel is in a passive transmit state
+ Execute, // Channel is executing it's dialplan
+ ExchangeMedia, // Channel is exchanging media
+ ConsumeMedia, // Channel is consuming media
+ Hibernate, // Channel is in a sleep state
+ Hangup, // Channel is flagged for hangup and ready to end
+ Done, // Channel is ready to be destroyed and out of the state machine
Unknown
}
#endregion
public class ChannelInfo
{
- private ChannelState m_state;
- private int m_stateNumber;
+ private ChannelState _state;
+ private int _stateNumber;
private string _profile;
- private string m_address;
+ private string _address;
private string _hostName;
- private string m_protocol = string.Empty;
- private string m_readCodecName;
- private int m_readCodecRate;
- private string m_writeCodecName;
- private int m_writeCodecRate;
+ private string _protocol = string.Empty;
+ private string _readCodecName;
+ private int _readCodecRate;
+ private string _writeCodecName;
+ private int _writeCodecRate;
/// <summary>
/// Coded used to read information from the channel.
@@ -36,8 +36,8 @@
/// </summary>
public string ReadCodecName
{
- get { return m_readCodecName; }
- set { m_readCodecName = value; }
+ get { return _readCodecName; }
+ set { _readCodecName = value; }
}
/// <summary>
@@ -46,8 +46,8 @@
/// </summary>
public int ReadCodecRate
{
- get { return m_readCodecRate; }
- set { m_readCodecRate = value; }
+ get { return _readCodecRate; }
+ set { _readCodecRate = value; }
}
/// <summary>
@@ -56,8 +56,8 @@
/// </summary>
public string WriteCodecName
{
- get { return m_writeCodecName; }
- set { m_writeCodecName = value; }
+ get { return _writeCodecName; }
+ set { _writeCodecName = value; }
}
/// <summary>
@@ -66,8 +66,8 @@
/// </summary>
public int WriteCodecRate
{
- get { return m_writeCodecRate; }
- set { m_writeCodecRate = value; }
+ get { return _writeCodecRate; }
+ set { _writeCodecRate = value; }
}
/// <summary>
@@ -75,8 +75,8 @@
/// </summary>
public ChannelState State
{
- get { return m_state; }
- set { m_state = value; }
+ get { return _state; }
+ set { _state = value; }
}
/// <summary>
@@ -84,8 +84,8 @@
/// </summary>
public int StateNumber
{
- get { return m_stateNumber; }
- set { m_stateNumber = value; }
+ get { return _stateNumber; }
+ set { _stateNumber = value; }
}
/// <summary>
@@ -98,22 +98,22 @@
/// <seealso cref="HostName"/>
public string Name
{
- get { return m_protocol + "/" + _profile + "/" + m_address + "@" + _hostName; }
+ get { return _protocol + "/" + _profile + "/" + _address + "@" + _hostName; }
set
{
string[] bits = value.Split('/');
if (bits.Length == 3)
{
- m_protocol = bits[0];
+ _protocol = bits[0];
_profile = bits[1];
string[] userParts = bits[2].Split('@');
if (userParts.Length == 2)
{
- m_address = userParts[0];
+ _address = userParts[0];
HostName = userParts[1];
}
else
- m_address = bits[2];
+ _address = bits[2];
}
}
@@ -133,8 +133,8 @@
/// </summary>
public string Address
{
- get { return m_address; }
- set { m_address = value; }
+ get { return _address; }
+ set { _address = value; }
}
/// <summary>
@@ -165,7 +165,7 @@
/// </summary>
public string Protocol
{
- get { return m_protocol; }
+ get { return _protocol; }
}
public bool Parse(string name, string value)
@@ -173,25 +173,25 @@
switch (name)
{
case "channel-state":
- m_state = StateFromString(value);
+ _state = StateFromString(value);
break;
case "channel-state-number":
- int.TryParse(value, out m_stateNumber);
+ int.TryParse(value, out _stateNumber);
break;
case "channel-name":
Name = value;
break;
case "channel-read-codec-name":
- m_readCodecName = value;
+ _readCodecName = value;
break;
case "channel-read-codec-rate":
- int.TryParse(value, out m_readCodecRate);
+ int.TryParse(value, out _readCodecRate);
break;
case "channel-write-codec-name":
- m_writeCodecName = value;
+ _writeCodecName = value;
break;
case "channel-write-codec-rate":
- int.TryParse(value, out m_writeCodecRate);
+ int.TryParse(value, out _writeCodecRate);
break;
default:
return false;
@@ -205,11 +205,11 @@
{
case "CS_NEW": return ChannelState.New;
case "CS_INIT": return ChannelState.Init;
- case "CS_RING": return ChannelState.Ring;
- case "CS_TRANSMIT": return ChannelState.Transmit;
+ case "CS_ROUTING": return ChannelState.Routing;
+ case "CS_SOFT_EXECUTE": return ChannelState.SoftExecute;
case "CS_EXECUTE": return ChannelState.Execute;
- case "CS_LOOPBACK": return ChannelState.Loopback;
- case "CS_HOLD": return ChannelState.Hold;
+ case "CS_EXCHANGE_MEDIA": return ChannelState.ExchangeMedia;
+ case "CS_CONSUME_MEDIA": return ChannelState.ConsumeMedia;
case "CS_HIBERNATE": return ChannelState.Hibernate;
case "CS_HANGUP": return ChannelState.Hangup;
case "CS_DONE": return ChannelState.Done;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SendMsg.cs
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SendMsg.cs (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SendMsg.cs Tue May 13 23:37:33 2008
@@ -1,3 +1,5 @@
+using System;
+
namespace FreeSwitch.EventSocket.Commands
{
public abstract class SendMsg : CmdBase
@@ -7,11 +9,18 @@
public SendMsg(string uuid)
{
+ if (string.IsNullOrEmpty(uuid))
+ throw new ArgumentNullException("uuid");
_uuid = uuid;
}
public SendMsg(string uuid, string callCommand)
{
+ if (string.IsNullOrEmpty(uuid))
+ throw new ArgumentNullException("uuid");
+ if (string.IsNullOrEmpty(callCommand))
+ throw new ArgumentNullException("callCommand");
+
_callCommand = callCommand;
_uuid = uuid;
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/FreeSwitch.EventSocket.csproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/FreeSwitch.EventSocket.csproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/FreeSwitch.EventSocket.csproj Tue May 13 23:37:33 2008
@@ -54,6 +54,7 @@
<Compile Include="Commands\AuthCommand.cs" />
<Compile Include="Commands\CmdBase.cs" />
<Compile Include="Commands\CommandReply.cs" />
+ <Compile Include="Commands\DeflectCmd.cs" />
<Compile Include="Commands\ExecuteJavascript.cs" />
<Compile Include="Commands\GetVariable.cs" />
<Compile Include="Commands\HoldCmd.cs" />
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresence.cs
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresence.cs (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresence.cs Tue May 13 23:37:33 2008
@@ -34,7 +34,7 @@
}
/// <summary>
- /// Caller is only specified on state CS_RING
+ /// Caller is only specified on state CS_ROUTING
/// and not on CS_HANGUP
/// </summary>
public PartyInfo Caller
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/lua/mwi_event.lua
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/lua/mwi_event.lua (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/lua/mwi_event.lua Tue May 13 23:37:33 2008
@@ -5,4 +5,5 @@
local event = freeswitch.Event("message_waiting");
event:addHeader("MWI-Messages-Waiting", "no");
event:addHeader("MWI-Message-Account", "sip:1000@10.0.1.100");
+-- event:addHeader("Sofia-Profile", "internal");
event:fire();
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/perl/mwi_event.pl
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/perl/mwi_event.pl (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/perl/mwi_event.pl Tue May 13 23:37:33 2008
@@ -3,6 +3,9 @@
freeswitch::console_log("info", "Perl in da house!!!\n");
$event = new freeswitch::Event("message_waiting");
-$event->add_header("MWI-Messages-Waiting", "yes");
-$event->add_header("MWI-Message-Account", 'sip:1002@10.0.1.100');
+$event->addHeader("MWI-Messages-Waiting", "yes");
+$event->addHeader("MWI-Message-Account", 'sip:1002@10.0.1.100');
+
+#$event->addHeader("Sofia-Profile", 'internal');
+
$event->fire();
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/private/switch_core_pvt.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/private/switch_core_pvt.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/private/switch_core_pvt.h Tue May 13 23:37:33 2008
@@ -186,6 +186,8 @@
char *mailer_app_args;
uint32_t max_dtmf_duration;
uint32_t default_dtmf_duration;
+ switch_frame_t dummy_cng_frame;
+ char dummy_data[5];
};
extern struct switch_runtime runtime;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core.h Tue May 13 23:37:33 2008
@@ -809,10 +809,10 @@
\param stream_id which logical media channel to use
\return SWITCH_STATUS_SUCCESS a the frame was read
*/
-SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id);
+SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
-SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id);
-SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id);
+SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
+SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
/*!
\brief Reset the buffers and resampler on a session
@@ -828,7 +828,7 @@
\param stream_id which logical media channel to use
\return SWITCH_STATUS_SUCCESS a the frame was written
*/
-SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id);
+SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
SWITCH_DECLARE(switch_status_t) switch_core_session_perform_kill_channel(_In_ switch_core_session_t *session,
@@ -842,24 +842,6 @@
#define switch_core_session_kill_channel(session, sig) switch_core_session_perform_kill_channel(session, __FILE__, __SWITCH_FUNC__, __LINE__, sig)
/*!
- \brief Wait for a session to be ready for input
- \param session session to wait for
- \param timeout number of milliseconds to wait for data
- \param stream_id which logical media channel to use
- \return SWITCH_STATUS_SUCCESS if data is available for read within timeframe specified
-*/
-SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_read(_In_ switch_core_session_t *session, int timeout, int stream_id);
-
-/*!
- \brief Wait for a session to be ready for output
- \param session session to wait for
- \param timeout number of milliseconds to wait for data
- \param stream_id which logical media channel to use
- \return SWITCH_STATUS_SUCCESS if the session is available for write within timeframe specified
-*/
-SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_write(_In_ switch_core_session_t *session, int timeout, int stream_id);
-
-/*!
\brief Send DTMF to a session
\param session session to send DTMF to
\param dtmf string to send to the session
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core_event_hook.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core_event_hook.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core_event_hook.h Tue May 13 23:37:33 2008
@@ -43,8 +43,6 @@
typedef struct switch_io_event_hook_write_frame switch_io_event_hook_write_frame_t;
typedef struct switch_io_event_hook_video_write_frame switch_io_event_hook_video_write_frame_t;
typedef struct switch_io_event_hook_kill_channel switch_io_event_hook_kill_channel_t;
-typedef struct switch_io_event_hook_waitfor_read switch_io_event_hook_waitfor_read_t;
-typedef struct switch_io_event_hook_waitfor_write switch_io_event_hook_waitfor_write_t;
typedef struct switch_io_event_hook_send_dtmf switch_io_event_hook_send_dtmf_t;
typedef struct switch_io_event_hook_recv_dtmf switch_io_event_hook_recv_dtmf_t;
typedef struct switch_io_event_hook_state_change switch_io_event_hook_state_change_t;
@@ -53,13 +51,11 @@
(switch_core_session_t *, switch_caller_profile_t *, switch_core_session_t *, switch_originate_flag_t);
typedef switch_status_t (*switch_receive_message_hook_t) (switch_core_session_t *, switch_core_session_message_t *);
typedef switch_status_t (*switch_receive_event_hook_t) (switch_core_session_t *, switch_event_t *);
-typedef switch_status_t (*switch_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int);
-typedef switch_status_t (*switch_video_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int);
-typedef switch_status_t (*switch_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int);
-typedef switch_status_t (*switch_video_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int);
+typedef switch_status_t (*switch_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
+typedef switch_status_t (*switch_video_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
+typedef switch_status_t (*switch_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int);
+typedef switch_status_t (*switch_video_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int);
typedef switch_status_t (*switch_kill_channel_hook_t) (switch_core_session_t *, int);
-typedef switch_status_t (*switch_waitfor_read_hook_t) (switch_core_session_t *, int, int);
-typedef switch_status_t (*switch_waitfor_write_hook_t) (switch_core_session_t *, int, int);
typedef switch_status_t (*switch_send_dtmf_hook_t) (switch_core_session_t *, const switch_dtmf_t *);
typedef switch_status_t (*switch_recv_dtmf_hook_t) (switch_core_session_t *, const switch_dtmf_t *);
typedef switch_status_t (*switch_state_change_hook_t) (switch_core_session_t *);
@@ -120,20 +116,6 @@
struct switch_io_event_hook_kill_channel *next;
};
-/*! \brief Node in which to store custom waitfor read channel callback hooks */
-struct switch_io_event_hook_waitfor_read {
- /*! the waitfor read channel callback hook */
- switch_waitfor_read_hook_t waitfor_read;
- struct switch_io_event_hook_waitfor_read *next;
-};
-
-/*! \brief Node in which to store custom waitfor write channel callback hooks */
-struct switch_io_event_hook_waitfor_write {
- /*! the waitfor write channel callback hook */
- switch_waitfor_write_hook_t waitfor_write;
- struct switch_io_event_hook_waitfor_write *next;
-};
-
/*! \brief Node in which to store custom send dtmf channel callback hooks */
struct switch_io_event_hook_send_dtmf {
/*! the send dtmf channel callback hook */
@@ -179,10 +161,6 @@
switch_io_event_hook_video_write_frame_t *video_write_frame;
/*! a list of kill channel hooks */
switch_io_event_hook_kill_channel_t *kill_channel;
- /*! a list of wait for read hooks */
- switch_io_event_hook_waitfor_read_t *waitfor_read;
- /*! a list of wait for write hooks */
- switch_io_event_hook_waitfor_write_t *waitfor_write;
/*! a list of send dtmf hooks */
switch_io_event_hook_send_dtmf_t *send_dtmf;
/*! a list of recv dtmf hooks */
@@ -244,8 +222,6 @@
NEW_HOOK_DECL_ADD_P(video_read_frame);
NEW_HOOK_DECL_ADD_P(video_write_frame);
NEW_HOOK_DECL_ADD_P(kill_channel);
-NEW_HOOK_DECL_ADD_P(waitfor_read);
-NEW_HOOK_DECL_ADD_P(waitfor_write);
NEW_HOOK_DECL_ADD_P(send_dtmf);
NEW_HOOK_DECL_ADD_P(recv_dtmf);
NEW_HOOK_DECL_ADD_P(resurrect_session);
@@ -259,8 +235,6 @@
NEW_HOOK_DECL_REM_P(video_read_frame);
NEW_HOOK_DECL_REM_P(video_write_frame);
NEW_HOOK_DECL_REM_P(kill_channel);
-NEW_HOOK_DECL_REM_P(waitfor_read);
-NEW_HOOK_DECL_REM_P(waitfor_write);
NEW_HOOK_DECL_REM_P(send_dtmf);
NEW_HOOK_DECL_REM_P(recv_dtmf);
NEW_HOOK_DECL_REM_P(resurrect_session);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_cpp.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_cpp.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_cpp.h Tue May 13 23:37:33 2008
@@ -14,7 +14,7 @@
#define sanity_check(x) do { if (!(session && allocated)) { switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "session is not initalized\n"); return x;}} while(0)
#define sanity_check_noreturn do { if (!(session && allocated)) { switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "session is not initalized\n"); return;}} while(0)
-#define init_vars() do { session = NULL; channel = NULL; uuid = NULL; tts_name = NULL; voice_name = NULL; memset(&args, 0, sizeof(args)); ap = NULL; caller_profile.source = "mod_unknown"; caller_profile.dialplan = ""; caller_profile.context = ""; caller_profile.caller_id_name = ""; caller_profile.caller_id_number = ""; caller_profile.network_addr = ""; caller_profile.ani = ""; caller_profile.aniii = ""; caller_profile.rdnis = ""; caller_profile.username = ""; on_hangup = NULL; memset(&cb_state, 0, sizeof(cb_state)); hook_state = CS_NEW; } while(0)
+#define init_vars() do { session = NULL; channel = NULL; uuid = NULL; tts_name = NULL; voice_name = NULL; xml_cdr_text = NULL; memset(&args, 0, sizeof(args)); ap = NULL; caller_profile.source = "mod_unknown"; caller_profile.dialplan = ""; caller_profile.context = ""; caller_profile.caller_id_name = ""; caller_profile.caller_id_number = ""; caller_profile.network_addr = ""; caller_profile.ani = ""; caller_profile.aniii = ""; caller_profile.rdnis = ""; caller_profile.username = ""; on_hangup = NULL; memset(&cb_state, 0, sizeof(cb_state)); hook_state = CS_NEW; } while(0)
//
@@ -144,7 +144,7 @@
SWITCH_DECLARE(bool) setPriority(switch_priority_t priority = SWITCH_PRIORITY_NORMAL);
SWITCH_DECLARE(char *)getHeader(char *header_name);
SWITCH_DECLARE(char *)getBody(void);
- SWITCH_DECLARE(char *)getType(void);
+ SWITCH_DECLARE(const char *)getType(void);
SWITCH_DECLARE(bool) addBody(const char *value);
SWITCH_DECLARE(bool) addHeader(const char *header_name, const char *value);
SWITCH_DECLARE(bool) delHeader(const char *header_name);
@@ -160,6 +160,7 @@
switch_input_args_t *ap; // ptr to args .. (is this really needed?)
switch_caller_profile_t caller_profile; // avoid passing so many args to originate,
// instead set them here first
+ char *xml_cdr_text;
char *uuid;
char *tts_name;
char *voice_name;
@@ -168,12 +169,12 @@
switch_file_handle_t local_fh;
switch_file_handle_t *fhp;
char dtmf_buf[512];
- SWITCH_DECLARE(switch_status_t) process_callback_result(char *ret);
+
public:
SWITCH_DECLARE_CONSTRUCTOR CoreSession();
SWITCH_DECLARE_CONSTRUCTOR CoreSession(char *uuid);
SWITCH_DECLARE_CONSTRUCTOR CoreSession(switch_core_session_t *new_session);
- virtual SWITCH_DECLARE_CONSTRUCTOR ~CoreSession();
+ SWITCH_DECLARE_CONSTRUCTOR ~CoreSession();
switch_core_session_t *session;
switch_channel_t *channel;
unsigned int flags;
@@ -184,12 +185,12 @@
SWITCH_DECLARE(int) answer();
SWITCH_DECLARE(int) preAnswer();
- virtual SWITCH_DECLARE(void) hangup(char *cause = "normal_clearing");
+ SWITCH_DECLARE(void) hangup(char *cause = "normal_clearing");
SWITCH_DECLARE(void) setVariable(char *var, char *val);
SWITCH_DECLARE(void) setPrivate(char *var, void *val);
SWITCH_DECLARE(void *)getPrivate(char *var);
SWITCH_DECLARE(const char *)getVariable(char *var);
-
+ SWITCH_DECLARE(switch_status_t) process_callback_result(char *ret);
/** \brief Record to a file
* \param filename
@@ -309,6 +310,9 @@
SWITCH_DECLARE(void) sendEvent(Event *sendME);
+ SWITCH_DECLARE(void) setEventData(Event *e);
+ SWITCH_DECLARE(char *) getXMLCDR();
+
virtual bool begin_allow_threads() = 0;
virtual bool end_allow_threads() = 0;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_event.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_event.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_event.h Tue May 13 23:37:33 2008
@@ -158,6 +158,8 @@
*/
_Ret_opt_z_ SWITCH_DECLARE(char *) switch_event_get_header(switch_event_t *event, char *header_name);
+#define switch_event_get_header_nil(e, h) switch_str_nil(switch_event_get_header(e,h))
+
/*!
\brief Retrieve the body value from an event
\param event the event to read the body from
@@ -230,7 +232,7 @@
\param event the event id to render the name of
\return the rendered name
*/
-SWITCH_DECLARE(char *) switch_event_name(switch_event_types_t event);
+SWITCH_DECLARE(const char *) switch_event_name(switch_event_types_t event);
/*!
\brief return the event id that matches a given event name
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_ivr.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_ivr.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_ivr.h Tue May 13 23:37:33 2008
@@ -756,7 +756,10 @@
switch_bool_t dial_b, switch_bool_t exec_b, const char *app);
SWITCH_DECLARE(switch_status_t) switch_ivr_unbind_dtmf_meta_session(switch_core_session_t *session);
SWITCH_DECLARE(switch_status_t) switch_ivr_soft_hold(switch_core_session_t *session, const char *unhold_key, const char *moh_a, const char *moh_b);
+SWITCH_DECLARE(switch_status_t) switch_ivr_say(switch_core_session_t *session, const char *tosay, const char *module_name, const char *say_type, const char *say_method, switch_input_args_t *args);
+SWITCH_DECLARE(switch_say_method_t) switch_ivr_get_say_method_by_name(const char *name);
+SWITCH_DECLARE(switch_say_type_t) switch_ivr_get_say_type_by_name(const char *name);
/** @} */
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_module_interfaces.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_module_interfaces.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_module_interfaces.h Tue May 13 23:37:33 2008
@@ -48,12 +48,12 @@
typedef enum {
SWITCH_SHN_ON_INIT,
- SWITCH_SHN_ON_RING,
+ SWITCH_SHN_ON_ROUTING,
SWITCH_SHN_ON_EXECUTE,
SWITCH_SHN_ON_HANGUP,
- SWITCH_SHN_ON_LOOPBACK,
- SWITCH_SHN_ON_TRANSMIT,
- SWITCH_SHN_ON_HOLD,
+ SWITCH_SHN_ON_EXCHANGE_MEDIA,
+ SWITCH_SHN_ON_SOFT_EXECUTE,
+ SWITCH_SHN_ON_CONSUME_MEDIA,
SWITCH_SHN_ON_HIBERNATE,
SWITCH_SHN_ON_RESET,
SWITCH_SHN_ON_PARK
@@ -62,18 +62,18 @@
struct switch_state_handler_table {
/*! executed when the state changes to init */
switch_state_handler_t on_init;
- /*! executed when the state changes to ring */
- switch_state_handler_t on_ring;
+ /*! executed when the state changes to routing */
+ switch_state_handler_t on_routing;
/*! executed when the state changes to execute */
switch_state_handler_t on_execute;
/*! executed when the state changes to hangup */
switch_state_handler_t on_hangup;
- /*! executed when the state changes to loopback */
- switch_state_handler_t on_loopback;
- /*! executed when the state changes to transmit */
- switch_state_handler_t on_transmit;
- /*! executed when the state changes to hold */
- switch_state_handler_t on_hold;
+ /*! executed when the state changes to exchange_media */
+ switch_state_handler_t on_exchange_media;
+ /*! executed when the state changes to soft_execute */
+ switch_state_handler_t on_soft_execute;
+ /*! executed when the state changes to consume_media */
+ switch_state_handler_t on_consume_media;
/*! executed when the state changes to hibernate */
switch_state_handler_t on_hibernate;
/*! executed when the state changes to reset */
@@ -101,17 +101,15 @@
typedef switch_call_cause_t (*switch_io_outgoing_channel_t)
(switch_core_session_t *, switch_caller_profile_t *, switch_core_session_t **, switch_memory_pool_t **, switch_originate_flag_t);
-typedef switch_status_t (*switch_io_read_frame_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int);
-typedef switch_status_t (*switch_io_write_frame_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int);
+typedef switch_status_t (*switch_io_read_frame_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
+typedef switch_status_t (*switch_io_write_frame_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int);
typedef switch_status_t (*switch_io_kill_channel_t) (switch_core_session_t *, int);
-typedef switch_status_t (*switch_io_waitfor_read_t) (switch_core_session_t *, int, int);
-typedef switch_status_t (*switch_io_waitfor_write_t) (switch_core_session_t *, int, int);
typedef switch_status_t (*switch_io_send_dtmf_t) (switch_core_session_t *, const switch_dtmf_t *);
typedef switch_status_t (*switch_io_receive_message_t) (switch_core_session_t *, switch_core_session_message_t *);
typedef switch_status_t (*switch_io_receive_event_t) (switch_core_session_t *, switch_event_t *);
typedef switch_status_t (*switch_io_state_change_t) (switch_core_session_t *);
-typedef switch_status_t (*switch_io_read_video_frame_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int);
-typedef switch_status_t (*switch_io_write_video_frame_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int);
+typedef switch_status_t (*switch_io_read_video_frame_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
+typedef switch_status_t (*switch_io_write_video_frame_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int);
typedef switch_call_cause_t (*switch_io_resurrect_session_t)(switch_core_session_t **, switch_memory_pool_t **, void *);
typedef enum {
@@ -119,8 +117,6 @@
SWITCH_IO_READ_FRAME,
SWITCH_IO_WRITE_FRAME,
SWITCH_IO_KILL_CHANNEL,
- SWITCH_IO_WAITFOR_READ,
- SWITCH_IO_WAITFOR_WRITE,
SWITCH_IO_SEND_DTMF,
SWITCH_IO_RECEIVE_MESSAGE,
SWITCH_IO_RECEIVE_EVENT,
@@ -140,10 +136,6 @@
switch_io_write_frame_t write_frame;
/*! send a kill signal to the session's channel */
switch_io_kill_channel_t kill_channel;
- /*! wait for the session's channel to be ready to read audio */
- switch_io_waitfor_read_t waitfor_read;
- /*! wait for the session's channel to be ready to write audio */
- switch_io_waitfor_write_t waitfor_write;
/*! send a string of DTMF digits to a session's channel */
switch_io_send_dtmf_t send_dtmf;
/*! receive a message from another session */
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_rtp.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_rtp.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_rtp.h Tue May 13 23:37:33 2008
@@ -296,7 +296,7 @@
\return the number of bytes read
*/
SWITCH_DECLARE(switch_status_t) switch_rtp_read(switch_rtp_t *rtp_session, void *data, uint32_t * datalen,
- switch_payload_t *payload_type, switch_frame_flag_t *flags);
+ switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags);
/*!
\brief Queue RFC2833 DTMF data into an RTP Session
@@ -332,7 +332,7 @@
\return the number of bytes read
*/
SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read(switch_rtp_t *rtp_session,
- void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags);
+ void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags);
/*!
\brief Read data from a given RTP session without copying
@@ -340,7 +340,7 @@
\param frame a frame to populate with information
\return the number of bytes read
*/
-SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame);
+SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame, switch_io_flag_t io_flagsm);
/*!
\brief Enable VAD on an RTP Session
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_stun.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_stun.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_stun.h Tue May 13 23:37:33 2008
@@ -40,6 +40,7 @@
SWITCH_BEGIN_EXTERN_C
#define SWITCH_STUN_DEFAULT_PORT 3478
#define SWITCH_STUN_PACKET_MIN_LEN 20
+#define SWITCH_STUN_ATTRIBUTE_MIN_LEN 8
typedef enum {
SWITCH_STUN_BINDING_REQUEST = 0x0001,
SWITCH_STUN_BINDING_RESPONSE = 0x0101,
@@ -98,13 +99,13 @@
} switch_stun_type_t;
typedef struct {
- int16_t type;
- int16_t length;
+ uint16_t type;
+ uint16_t length;
char id[16];
} switch_stun_packet_header_t;
typedef struct {
- int16_t type;
+ uint16_t type;
uint16_t length;
char value[];
} switch_stun_packet_attribute_t;
@@ -115,10 +116,10 @@
} switch_stun_packet_t;
typedef struct {
- int8_t wasted;
- int8_t family;
- int16_t port;
- int32_t address;
+ uint8_t wasted;
+ uint8_t family;
+ uint16_t port;
+ uint32_t address;
} switch_stun_ip_t;
@@ -208,6 +209,12 @@
switch_port_t *port, char *stunip, switch_port_t stunport, char **err, switch_memory_pool_t *pool);
+/*!
+ \brief Obtain the padded length of an attribute's value
+ \param attribute the attribute
+ \return the padded size in bytes
+*/
+#define switch_stun_attribute_padded_length(attribute) ((uint16_t)(attribute->length + (sizeof(uint32_t)-1)) & ~sizeof(uint32_t))
/*!
\brief set a switch_stun_packet_attribute_t pointer to point at the first attribute in a packet
@@ -221,7 +228,7 @@
\param attribute the pointer to increment
\return true or false depending on if there are any more attributes
*/
-#define switch_stun_packet_next_attribute(attribute) (attribute = (switch_stun_packet_attribute_t *) (attribute->value + attribute->length)) && attribute->length
+#define switch_stun_packet_next_attribute(attribute, end) (attribute && (attribute = (switch_stun_packet_attribute_t *) (attribute->value + switch_stun_attribute_padded_length(attribute))) && ((void *)attribute < end) && attribute->length && ((void *)(attribute + switch_stun_attribute_padded_length(attribute)) < end))
/*!
\brief Obtain the correct length in bytes of a stun packet
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_types.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_types.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_types.h Tue May 13 23:37:33 2008
@@ -628,16 +628,16 @@
/*!
\enum switch_channel_state_t
- \brief Channel States
+ \brief Channel States (these are the defaults, CS_SOFT_EXECUTE, CS_EXCHANGE_MEDIA, and CS_CONSUME_MEDIA are often overridden by specific apps)
<pre>
CS_NEW - Channel is newly created
CS_INIT - Channel has been initilized
-CS_RING - Channel is looking for a dialplan
-CS_TRANSMIT - Channel is in a passive transmit state
+CS_ROUTING - Channel is looking for an extension to execute
+CS_SOFT_EXECUTE - Channel is ready to execute from 3rd party control
CS_EXECUTE - Channel is executing it's dialplan
-CS_LOOPBACK - Channel is in loopback
-CS_PARK - Channel is parked
-CS_HOLD - Channel is on hold
+CS_EXCHANGE_MEDIA - Channel is exchanging media with another channel.
+CS_PARK - Channel is accepting media awaiting commands.
+CS_CONSUME_MEDIA - Channel is consuming all media and dropping it.
CS_HIBERNATE - Channel is in a sleep state
CS_RESET - Channel is in a reset state
CS_HANGUP - Channel is flagged for hangup and ready to end
@@ -647,12 +647,12 @@
typedef enum {
CS_NEW,
CS_INIT,
- CS_RING,
- CS_TRANSMIT,
+ CS_ROUTING,
+ CS_SOFT_EXECUTE,
CS_EXECUTE,
- CS_LOOPBACK,
+ CS_EXCHANGE_MEDIA,
CS_PARK,
- CS_HOLD,
+ CS_CONSUME_MEDIA,
CS_HIBERNATE,
CS_RESET,
CS_HANGUP,
@@ -943,7 +943,8 @@
} switch_file_flag_t;
typedef enum {
- SWITCH_IO_FLAG_NOOP = 0
+ SWITCH_IO_FLAG_NONE = 0,
+ SWITCH_IO_FLAG_NOBLOCK = (1 << 0)
} switch_io_flag_t;
/* make sure this is synced with the EVENT_NAMES array in switch_event.c
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_conference/mod_conference.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_conference/mod_conference.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_conference/mod_conference.c Tue May 13 23:37:33 2008
@@ -302,6 +302,7 @@
uint32_t resample_out_len;
conference_file_node_t *fnode;
conference_relationship_t *relationships;
+ switch_ivr_digit_stream_parser_t *dtmf_parser;
switch_ivr_digit_stream_t *digit_stream;
switch_speech_handle_t lsh;
switch_speech_handle_t *sh;
@@ -348,7 +349,7 @@
static switch_status_t conference_say(conference_obj_t * conference, const char *text, uint32_t leadin);
static void conference_list(conference_obj_t * conference, switch_stream_handle_t *stream, char *delim);
SWITCH_STANDARD_API(conf_api_main);
-static switch_status_t audio_bridge_on_ring(switch_core_session_t *session);
+static switch_status_t audio_bridge_on_routing(switch_core_session_t *session);
static switch_status_t conference_outcall(conference_obj_t * conference,
char *conference_name,
switch_core_session_t *session,
@@ -581,7 +582,7 @@
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "unique-id", "%s", conference->name);
- switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_RING");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_ROUTING");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", conference->count == 1 ? "early" : "confirmed");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "call-direction", "%s", conference->count == 1 ? "outbound" : "inbound");
switch_event_fire(&event);
@@ -723,7 +724,7 @@
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "unique-id", "%s", conference->name);
- switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_RING");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_ROUTING");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", conference->count == 1 ? "early" : "confirmed");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "call-direction", "%s", conference->count == 1 ? "outbound" : "inbound");
switch_event_fire(&event);
@@ -783,7 +784,7 @@
}
if (switch_channel_test_flag(switch_core_session_get_channel(conference->floor_holder->session), CF_VIDEO)) {
- status = switch_core_session_read_video_frame(conference->floor_holder->session, &vid_frame, -1, 0);
+ status = switch_core_session_read_video_frame(conference->floor_holder->session, &vid_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
conference->floor_holder = NULL;
@@ -835,7 +836,7 @@
for (imember = conference->members; imember; imember = imember->next) {
if (switch_channel_test_flag(switch_core_session_get_channel(imember->session), CF_VIDEO)) {
has_vid++;
- switch_core_session_write_video_frame(imember->session, vid_frame, -1, 0);
+ switch_core_session_write_video_frame(imember->session, vid_frame, SWITCH_IO_FLAG_NONE, 0);
}
}
switch_mutex_unlock(conference->member_mutex);
@@ -1497,7 +1498,7 @@
while (switch_test_flag(member, MFLAG_RUNNING) && switch_channel_ready(channel)) {
/* Read a frame. */
- status = switch_core_session_read_frame(member->session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(member->session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
/* end the loop, if appropriate */
if (!SWITCH_READ_ACCEPTABLE(status) || !switch_test_flag(member, MFLAG_RUNNING)) {
@@ -1890,7 +1891,7 @@
switch_change_sln_volume(write_frame.data, write_frame.samples, member->volume_out_level);
}
write_frame.timestamp = timer.samplecount;
- switch_core_session_write_frame(member->session, &write_frame, -1, 0);
+ switch_core_session_write_frame(member->session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
switch_core_timer_next(&timer);
@@ -1933,7 +1934,7 @@
switch_change_sln_volume(write_frame.data, write_frame.samples, member->volume_out_level);
}
write_frame.timestamp = timer.samplecount;
- switch_core_session_write_frame(member->session, &write_frame, -1, 0);
+ switch_core_session_write_frame(member->session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
}
}
@@ -1948,7 +1949,7 @@
write_frame.datalen = bytes;
write_frame.samples = samples;
write_frame.timestamp = timer.samplecount;
- switch_core_session_write_frame(member->session, &write_frame, -1, 0);
+ switch_core_session_write_frame(member->session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
}
}
}
@@ -3726,27 +3727,27 @@
}
/* outbound call bridge progress call state callback handler */
-static switch_status_t audio_bridge_on_ring(switch_core_session_t *session)
+static switch_status_t audio_bridge_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = NULL;
channel = switch_core_session_get_channel(session);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CUSTOM RING\n");
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CUSTOM ROUTING\n");
/* put the channel in a passive state so we can loop audio to it */
- switch_channel_set_state(channel, CS_TRANSMIT);
+ switch_channel_set_state(channel, CS_SOFT_EXECUTE);
return SWITCH_STATUS_FALSE;
}
static switch_state_handler_table_t audio_bridge_peer_state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ audio_bridge_on_ring,
+ /*.on_routing */ audio_bridge_on_routing,
/*.on_execute */ NULL,
/*.on_hangup */ NULL,
- /*.on_loopback */ NULL,
- /*.on_transmit */ NULL,
- /*.on_hold */ NULL,
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ NULL,
+ /*.on_consume_media */ NULL,
};
@@ -3961,7 +3962,7 @@
/* generate some space infront of the file to be played */
for (x = 0; x < leadin; x++) {
switch_frame_t *read_frame;
- status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
@@ -4195,6 +4196,14 @@
profile_name = "default";
}
+#if 0
+ if (0) {
+ member.dtmf_parser = conference->dtmf_parser;
+ } else {
+
+ }
+#endif
+
switch_event_create(¶ms, SWITCH_EVENT_MESSAGE);
switch_assert(params);
switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "conf_name", conf_name);
@@ -4514,6 +4523,9 @@
switch_buffer_destroy(&member.resample_buffer);
switch_buffer_destroy(&member.audio_buffer);
switch_buffer_destroy(&member.mux_buffer);
+ if (conference && member.dtmf_parser != conference->dtmf_parser) {
+ switch_ivr_digit_stream_parser_destroy(member.dtmf_parser);
+ }
if (conference) {
switch_mutex_lock(conference->mutex);
@@ -5124,7 +5136,7 @@
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", EC++);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "unique-id", "%s", conf_name);
- switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_RING");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_ROUTING");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", conference->count == 1 ? "early" : "confirmed");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "call-direction", "%s", conference->count == 1 ? "outbound" : "inbound");
switch_event_fire(&event);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_dptools/mod_dptools.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_dptools/mod_dptools.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_dptools/mod_dptools.c Tue May 13 23:37:33 2008
@@ -128,6 +128,23 @@
}
}
+
+#define SAY_SYNTAX "<module_name> <say_type> <say_method> <text>"
+SWITCH_STANDARD_APP(say_function)
+{
+ char *argv[4] = { 0 };
+ int argc;
+ char *lbuf = NULL;
+
+ if (!switch_strlen_zero(data) && (lbuf = switch_core_session_strdup(session, data))
+ && (argc = switch_separate_string(lbuf, ' ', argv, (sizeof(argv) / sizeof(argv[0])))) == 4) {
+ switch_ivr_say(session, argv[3], argv[0], argv[1], argv[2], NULL);
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Usage: %s\n", SAY_SYNTAX);
+ }
+
+}
+
#define SOFT_HOLD_SYNTAX "<unhold key> [<moh_a>] [<moh_b>]"
SWITCH_STANDARD_APP(soft_hold_function)
{
@@ -1341,7 +1358,7 @@
switch_channel_state_t state = switch_channel_get_state(channel);
const char *id = NULL;
- if (state == CS_HANGUP || state == CS_RING) {
+ if (state == CS_HANGUP || state == CS_ROUTING) {
if ((id = switch_channel_get_variable(channel, "xfer_uuids"))) {
switch_stream_handle_t stream = { 0 };
SWITCH_STANDARD_STREAM(stream);
@@ -1671,8 +1688,13 @@
&& !switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA)) {
switch_channel_set_flag(caller_channel, CF_PROXY_MODE);
} else {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Channel is already up, delaying proxy mode 'till both legs are up.\n");
- no_media_bridge = 1;
+ if (switch_channel_test_flag(caller_channel, CF_PROXY_MODE)) {
+ switch_ivr_media(switch_core_session_get_uuid(session), SMF_REBRIDGE);
+ switch_channel_set_flag(caller_channel, CF_PROXY_MODE);
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Channel is already up, delaying proxy mode 'till both legs are up.\n");
+ no_media_bridge = 1;
+ }
}
}
@@ -1703,7 +1725,7 @@
}
}
- if (!switch_channel_test_flag(caller_channel, CF_TRANSFER) && switch_channel_get_state(caller_channel) != CS_RING) {
+ if (!switch_channel_test_flag(caller_channel, CF_TRANSFER) && switch_channel_get_state(caller_channel) != CS_ROUTING) {
switch_channel_hangup(caller_channel, cause);
}
return;
@@ -1714,11 +1736,11 @@
/* SIP won't let us redir media until the call has been answered #$^#%& so we will proxy any early media until they do */
while (switch_channel_ready(caller_channel) && switch_channel_ready(peer_channel)
&& !switch_channel_test_flag(peer_channel, CF_ANSWERED)) {
- switch_status_t status = switch_core_session_read_frame(peer_session, &read_frame, -1, 0);
+ switch_status_t status = switch_core_session_read_frame(peer_session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
uint8_t bad = 1;
if (SWITCH_READ_ACCEPTABLE(status)
- && switch_core_session_write_frame(session, read_frame, -1, 0) == SWITCH_STATUS_SUCCESS) {
+ && switch_core_session_write_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0) == SWITCH_STATUS_SUCCESS) {
bad = 0;
}
if (bad) {
@@ -2007,6 +2029,7 @@
SWITCH_ADD_APP(app_interface, "clear_speech_cache", "Clear Speech Handle Cache", "Clear Speech Handle Cache", clear_speech_cache_function, "", SAF_NONE);
SWITCH_ADD_APP(app_interface, "bridge", "Bridge Audio", "Bridge the audio between two sessions", audio_bridge_function, "<channel_url>", SAF_SUPPORT_NOMEDIA);
SWITCH_ADD_APP(app_interface, "system", "Execute a system command", "Execute a system command", system_session_function, "<command>", SAF_SUPPORT_NOMEDIA);
+ SWITCH_ADD_APP(app_interface, "say", "say", "say", say_function, SAY_SYNTAX, SAF_NONE);
SWITCH_ADD_DIALPLAN(dp_interface, "inline", inline_dialplan_hunt);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_esf/mod_esf.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_esf/mod_esf.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_esf/mod_esf.c Tue May 13 23:37:33 2008
@@ -130,7 +130,7 @@
while(!ready) {
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (read_frame && switch_test_flag(read_frame, SFF_CNG)) {
continue;
}
@@ -206,7 +206,7 @@
for(;;) {
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_fifo/mod_fifo.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_fifo/mod_fifo.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_fifo/mod_fifo.c Tue May 13 23:37:33 2008
@@ -294,7 +294,7 @@
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "alt_event_type", "dialog");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_count", "%d", 0);
- switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", wait_count > 0 ? "CS_RING" : "CS_HANGUP");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", wait_count > 0 ? "CS_ROUTING" : "CS_HANGUP");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "unique-id", "%s", node->name);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", wait_count > 0 ? "early" : "terminated");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "call-direction", "%s", "inbound");
@@ -452,7 +452,7 @@
if (!consumer && node) {
switch_core_session_t *other_session;
switch_channel_t *other_channel;
- const char *uuid = strdup(switch_core_session_get_uuid(session));
+ const char *uuid = switch_core_session_get_uuid(session);
const char *pri;
char tmp[25] = "";
int p = 0;
@@ -510,7 +510,7 @@
node->start_waiting = switch_timestamp_now();
}
- switch_queue_push(node->fifo_list[p], (void *)uuid);
+ switch_queue_push(node->fifo_list[p], (void *)strdup(uuid));
if (!pri) {
switch_snprintf(tmp, sizeof(tmp), "%d", p);
@@ -804,7 +804,7 @@
break;
}
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
@@ -854,7 +854,7 @@
switch_channel_set_flag(other_channel, CF_BREAK);
while (switch_channel_ready(channel) && switch_channel_ready(other_channel) && switch_channel_test_flag(other_channel, CF_TAGGED)) {
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_fsv/mod_fsv.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_fsv/mod_fsv.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_fsv/mod_fsv.c Tue May 13 23:37:33 2008
@@ -64,7 +64,7 @@
eh->up = 1;
while(switch_channel_ready(channel)) {
- status = switch_core_session_read_video_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_video_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
@@ -90,7 +90,7 @@
switch_mutex_unlock(eh->mutex);
- switch_core_session_write_video_frame(session, read_frame, -1, 0);
+ switch_core_session_write_video_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0);
}
eh->up = 0;
return NULL;
@@ -165,7 +165,7 @@
while(switch_channel_ready(channel)) {
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
@@ -315,7 +315,7 @@
hdr->pt = pt;
}
if (switch_channel_test_flag(channel, CF_VIDEO)) {
- switch_core_session_write_video_frame(session, &vid_frame, -1, 0);
+ switch_core_session_write_video_frame(session, &vid_frame, SWITCH_IO_FLAG_NONE, 0);
}
if (ts && last && last != ts) {
switch_yield(1000);
@@ -328,7 +328,7 @@
if ((write_frame.datalen = read(fd, write_frame.data, bytes)) <= 0) {
break;
}
- switch_core_session_write_frame(session, &write_frame, -1, 0);
+ switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
switch_core_timer_next(&timer);
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_limit/mod_limit.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_limit/mod_limit.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_limit/mod_limit.c Tue May 13 23:37:33 2008
@@ -281,7 +281,7 @@
const char *id = NULL;
char *sql = NULL;
- if (state == CS_HANGUP || state == CS_RING) {
+ if (state == CS_HANGUP || state == CS_ROUTING) {
id = switch_channel_get_variable(channel, "limit_id");
realm = switch_channel_get_variable(channel, "limit_realm");
sql = switch_mprintf("delete from limit_data where uuid='%q' and hostname='%q' and realm='%q'and id='%q';",
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_rss/mod_rss.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_rss/mod_rss.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_rss/mod_rss.c Tue May 13 23:37:33 2008
@@ -171,7 +171,6 @@
switch_speech_flag_t flags = SWITCH_SPEECH_FLAG_NONE;
switch_core_thread_session_t thread_session;
uint32_t rate, interval = 20;
- int stream_id = 0;
switch_timer_t timer = { 0 }, *timerp = NULL;
uint32_t last;
char *mydata = NULL;
@@ -292,9 +291,7 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "setup timer success %u bytes per %d ms!\n", (rate / 50) * 2, interval);
/* start a thread to absorb incoming audio */
- for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
- switch_core_service_session(session, &thread_session, stream_id);
- }
+ switch_core_service_session(session, &thread_session, 0);
timerp = &timer;
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_voicemail/mod_voicemail.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_voicemail/mod_voicemail.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_voicemail/mod_voicemail.c Tue May 13 23:37:33 2008
@@ -2156,7 +2156,7 @@
static void message_query_handler(switch_event_t *event)
{
char *account = switch_event_get_header(event, "message-account");
- int sent = 0;
+ int created = 0;
switch_event_t *new_event = NULL;
if (account) {
@@ -2194,8 +2194,7 @@
switch_event_add_header(new_event, SWITCH_STACK_BOTTOM, "MWI-Message-Account", account);
switch_event_add_header(new_event, SWITCH_STACK_BOTTOM, "MWI-Voice-Message", "%d/%d (%d/%d)",
total_new_messages, total_saved_messages, total_new_urgent_messages, total_saved_urgent_messages);
- switch_event_fire(&new_event);
- sent++;
+ created++;
}
}
}
@@ -2205,13 +2204,26 @@
}
- if (!sent) {
+ if (!created) {
if (switch_event_create(&new_event, SWITCH_EVENT_MESSAGE_WAITING) == SWITCH_STATUS_SUCCESS) {
switch_event_add_header(new_event, SWITCH_STACK_BOTTOM, "MWI-Messages-Waiting", "no");
switch_event_add_header(new_event, SWITCH_STACK_BOTTOM, "MWI-Message-Account", account);
- switch_event_fire(&new_event);
}
}
+
+ if (new_event) {
+ switch_event_header_t *hp;
+
+ for (hp = event->headers; hp; hp = hp->next) {
+ if (!strncasecmp(hp->name, "vm-", 3)) {
+ switch_event_add_header(new_event, SWITCH_STACK_BOTTOM, hp->name + 3, hp->value);
+ }
+ }
+
+ switch_event_fire(&new_event);
+ }
+
+
}
#define VOICEMAIL_SYNTAX "rss [<host> <port> <uri> <user> <domain>]"
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_alsa/mod_alsa.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_alsa/mod_alsa.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_alsa/mod_alsa.c Tue May 13 23:37:33 2008
@@ -143,14 +143,14 @@
static void remove_pvt(private_t * tech_pvt);
static switch_status_t channel_on_init(switch_core_session_t *session);
static switch_status_t channel_on_hangup(switch_core_session_t *session);
-static switch_status_t channel_on_ring(switch_core_session_t *session);
-static switch_status_t channel_on_loopback(switch_core_session_t *session);
-static switch_status_t channel_on_transmit(switch_core_session_t *session);
+static switch_status_t channel_on_routing(switch_core_session_t *session);
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session);
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
-static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
-static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
+static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
+static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
static switch_status_t engage_device(unsigned int samplerate, int codec_ms);
static switch_status_t load_config(void);
@@ -293,14 +293,14 @@
switch_set_flag_locked(tech_pvt, TFLAG_IO);
- /* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ /* Move channel's state machine to ROUTING */
+ switch_channel_set_state(channel, CS_ROUTING);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_ring(switch_core_session_t *session)
+static switch_status_t channel_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
@@ -311,7 +311,7 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL RING\n", switch_channel_get_name(channel));
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL ROUTING\n", switch_channel_get_name(channel));
return SWITCH_STATUS_SUCCESS;
}
@@ -478,13 +478,13 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_transmit(switch_core_session_t *session)
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_loopback(switch_core_session_t *session)
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
@@ -501,27 +501,6 @@
}
-static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
-{
- private_t *tech_pvt = NULL;
-
- tech_pvt = switch_core_session_get_private(session);
- assert(tech_pvt != NULL);
-
- return SWITCH_STATUS_SUCCESS;
-}
-
-static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
-{
- private_t *tech_pvt = NULL;
-
- tech_pvt = switch_core_session_get_private(session);
- assert(tech_pvt != NULL);
-
- return SWITCH_STATUS_SUCCESS;
-
-}
-
static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
{
private_t *tech_pvt = NULL;
@@ -534,7 +513,7 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
@@ -584,7 +563,7 @@
globals.read_codec.implementation->number_of_channels,
globals.read_codec.implementation->actual_samples_per_second,
SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT,
- switch_core_session_get_pool(tech_pvt->session)) != SWITCH_STATUS_SUCCESS) {
+ NULL) != SWITCH_STATUS_SUCCESS) {
switch_core_codec_destroy(&tech_pvt->write_codec);
tech_pvt->hold_file = NULL;
goto cng;
@@ -652,7 +631,7 @@
return status;
}
-static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
@@ -737,11 +716,11 @@
static switch_state_handler_table_t channel_event_handlers = {
/*.on_init */ channel_on_init,
- /*.on_ring */ channel_on_ring,
+ /*.on_routing */ channel_on_routing,
/*.on_execute */ channel_on_execute,
/*.on_hangup */ channel_on_hangup,
- /*.on_loopback */ channel_on_loopback,
- /*.on_transmit */ channel_on_transmit
+ /*.on_exchange_media */ channel_on_exchange_media,
+ /*.on_soft_execute */ channel_on_soft_execute
};
static switch_io_routines_t channel_io_routines = {
@@ -749,8 +728,6 @@
/*.read_frame */ channel_read_frame,
/*.write_frame */ channel_write_frame,
/*.kill_channel */ channel_kill_channel,
- /*.waitfor_read */ channel_waitfor_read,
- /*.waitfor_write */ channel_waitfor_write,
/*.send_dtmf */ channel_send_dtmf,
/*.receive_message */ channel_receive_message
};
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_dingaling/mod_dingaling.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_dingaling/mod_dingaling.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_dingaling/mod_dingaling.c Tue May 13 23:37:33 2008
@@ -205,14 +205,14 @@
SWITCH_STANDARD_API(dl_debug);
static switch_status_t channel_on_init(switch_core_session_t *session);
static switch_status_t channel_on_hangup(switch_core_session_t *session);
-static switch_status_t channel_on_ring(switch_core_session_t *session);
-static switch_status_t channel_on_loopback(switch_core_session_t *session);
-static switch_status_t channel_on_transmit(switch_core_session_t *session);
+static switch_status_t channel_on_routing(switch_core_session_t *session);
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session);
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
-static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
-static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
+static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
+static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
static ldl_status handle_signalling(ldl_handle_t * handle, ldl_session_t * dlsession, ldl_signal_t dl_signal,
@@ -1165,14 +1165,14 @@
switch_set_flag(tech_pvt, TFLAG_READY);
if (negotiate_media(session) == SWITCH_STATUS_SUCCESS) {
- /* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ /* Move channel's state machine to ROUTING */
+ switch_channel_set_state(channel, CS_ROUTING);
}
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_ring(switch_core_session_t *session)
+static switch_status_t channel_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
struct private_object *tech_pvt = NULL;
@@ -1180,7 +1180,7 @@
tech_pvt = switch_core_session_get_private(session);
switch_assert(tech_pvt != NULL);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL RING\n", switch_channel_get_name(channel));
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL ROUTING\n", switch_channel_get_name(channel));
return SWITCH_STATUS_SUCCESS;
}
@@ -1294,38 +1294,18 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_loopback(switch_core_session_t *session)
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_transmit(switch_core_session_t *session)
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
-{
- struct private_object *tech_pvt = NULL;
-
- tech_pvt = switch_core_session_get_private(session);
- switch_assert(tech_pvt != NULL);
-
- return SWITCH_STATUS_SUCCESS;
-}
-
-static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
-{
- struct private_object *tech_pvt = NULL;
-
- tech_pvt = switch_core_session_get_private(session);
- switch_assert(tech_pvt != NULL);
-
- return SWITCH_STATUS_SUCCESS;
-
-}
static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
{
@@ -1340,7 +1320,7 @@
}
-static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
{
struct private_object *tech_pvt = NULL;
switch_channel_t *channel = switch_core_session_get_channel(session);
@@ -1381,7 +1361,7 @@
while (switch_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->read_frame.datalen == 0) {
tech_pvt->read_frame.flags = SFF_NONE;
- status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame);
+ status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame, flags);
if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) {
return SWITCH_STATUS_FALSE;
}
@@ -1438,7 +1418,7 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
struct private_object *tech_pvt;
switch_channel_t *channel = switch_core_session_get_channel(session);
@@ -1564,11 +1544,11 @@
switch_state_handler_table_t dingaling_event_handlers = {
/*.on_init */ channel_on_init,
- /*.on_ring */ channel_on_ring,
+ /*.on_routing */ channel_on_routing,
/*.on_execute */ channel_on_execute,
/*.on_hangup */ channel_on_hangup,
- /*.on_loopback */ channel_on_loopback,
- /*.on_transmit */ channel_on_transmit
+ /*.on_exchange_media */ channel_on_exchange_media,
+ /*.on_soft_execute */ channel_on_soft_execute
};
switch_io_routines_t dingaling_io_routines = {
@@ -1576,8 +1556,6 @@
/*.read_frame */ channel_read_frame,
/*.write_frame */ channel_write_frame,
/*.kill_channel */ channel_kill_channel,
- /*.waitfor_read */ channel_waitfor_read,
- /*.waitfor_write */ channel_waitfor_write,
/*.send_dtmf */ channel_send_dtmf,
/*.receive_message */ channel_receive_message,
/*.receive_event */ channel_receive_event
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/Makefile
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/Makefile (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/Makefile Tue May 13 23:37:33 2008
@@ -1,3 +1,5 @@
-LOCAL_CFLAGS=$(libiax_CFLAGS)
-LOCAL_LDFLAGS=$(libiax_LIBS)
+BASE=../../../..
+LOCAL_CFLAGS=-I. -DNEWJB -DLIBIAX -DDEBUG_SUPPORT
+LOCAL_OBJS=iax2-parser.o iax.o md5.o jitterbuf.o iax-mutex.o
+
include $(BASE)/build/modmake.rules
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.2008.vcproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.2008.vcproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.2008.vcproj Tue May 13 23:37:33 2008
@@ -40,10 +40,10 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\iax\src""
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"
+ AdditionalIncludeDirectories="."
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;WIN32_TIME_GET_TIME;LIBIAX;NEWJB;_CRT_SECURE_NO_DEPRECATE;DEBUG_SUPPORT"
UsePrecompiledHeader="0"
- DisableSpecificWarnings="4201"
+ DisableSpecificWarnings="4201;4200;4100;4127;6246;6053;6031;6262;4706"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -105,9 +105,10 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\iax\src""
+ AdditionalIncludeDirectories="."
+ PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;MOD_EXPORTS;LIBIAX;WIN32_TIME_GET_TIME;DEBUG_SUPPORT;NEWJB;_CRT_SECURE_NO_DEPRECATE"
UsePrecompiledHeader="0"
- DisableSpecificWarnings="4201"
+ DisableSpecificWarnings="4201;4200;4100;4127;6246;6053;6031;6262;4706"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -151,6 +152,26 @@
</References>
<Files>
<File
+ RelativePath=".\iax-mutex.c"
+ >
+ </File>
+ <File
+ RelativePath=".\iax.c"
+ >
+ </File>
+ <File
+ RelativePath=".\iax2-parser.c"
+ >
+ </File>
+ <File
+ RelativePath=".\jitterbuf.c"
+ >
+ </File>
+ <File
+ RelativePath=".\md5.c"
+ >
+ </File>
+ <File
RelativePath=".\mod_iax.c"
>
</File>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.c Tue May 13 23:37:33 2008
@@ -416,14 +416,14 @@
static switch_status_t channel_on_init(switch_core_session_t *session);
static switch_status_t channel_on_hangup(switch_core_session_t *session);
-static switch_status_t channel_on_ring(switch_core_session_t *session);
-static switch_status_t channel_on_loopback(switch_core_session_t *session);
-static switch_status_t channel_on_transmit(switch_core_session_t *session);
+static switch_status_t channel_on_routing(switch_core_session_t *session);
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session);
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
-static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
-static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
+static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
+static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
@@ -467,8 +467,8 @@
switch_set_flag_locked(tech_pvt, TFLAG_IO);
- /* Move Channel's State Machine to RING */
- switch_channel_set_state(switch_core_session_get_channel(session), CS_RING);
+ /* Move channel's state machine to ROUTING */
+ switch_channel_set_state(switch_core_session_get_channel(session), CS_ROUTING);
switch_mutex_lock(globals.mutex);
globals.calls++;
switch_mutex_unlock(globals.mutex);
@@ -476,9 +476,9 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_ring(switch_core_session_t *session)
+static switch_status_t channel_on_routing(switch_core_session_t *session)
{
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL RING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL ROUTING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
return SWITCH_STATUS_SUCCESS;
}
@@ -545,32 +545,18 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_loopback(switch_core_session_t *session)
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_transmit(switch_core_session_t *session)
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
-{
- assert(switch_core_session_get_private(session));
-
- return SWITCH_STATUS_SUCCESS;
-}
-
-static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
-{
- assert(switch_core_session_get_private(session));
-
- return SWITCH_STATUS_SUCCESS;
-}
-
static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
{
private_t *tech_pvt = switch_core_session_get_private(session);
@@ -584,11 +570,9 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
{
private_t *tech_pvt = switch_core_session_get_private(session);
- switch_time_t started = switch_timestamp_now();
- unsigned int elapsed;
switch_byte_t *data;
switch_assert(tech_pvt != NULL);
@@ -630,12 +614,6 @@
return SWITCH_STATUS_SUCCESS;
}
- if (timeout > -1) {
- elapsed = (unsigned int) ((switch_timestamp_now() - started) / 1000);
- if (elapsed >= (unsigned int) timeout) {
- return SWITCH_STATUS_SUCCESS;
- }
- }
switch_yield(1000);
}
@@ -651,7 +629,7 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
private_t *tech_pvt = switch_core_session_get_private(session);
switch_assert(tech_pvt != NULL);
@@ -800,11 +778,11 @@
switch_state_handler_table_t iax_state_handlers = {
/*.on_init */ channel_on_init,
- /*.on_ring */ channel_on_ring,
+ /*.on_routing */ channel_on_routing,
/*.on_execute */ channel_on_execute,
/*.on_hangup */ channel_on_hangup,
- /*.on_loopback */ channel_on_loopback,
- /*.on_transmit */ channel_on_transmit
+ /*.on_exchange_media */ channel_on_exchange_media,
+ /*.on_soft_execute */ channel_on_soft_execute
};
switch_io_routines_t iax_io_routines = {
@@ -812,8 +790,6 @@
/*.read_frame */ channel_read_frame,
/*.write_frame */ channel_write_frame,
/*.kill_channel */ channel_kill_channel,
- /*.waitfor_read */ channel_waitfor_read,
- /*.waitfor_write */ channel_waitfor_write,
/*.send_dtmf */ channel_send_dtmf,
/*.receive_message*/ channel_receive_message,
/*.receive_event */ channel_receive_event
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.vcproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.vcproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_iax/mod_iax.vcproj Tue May 13 23:37:33 2008
@@ -6,6 +6,7 @@
ProjectGUID="{3A5B9131-F20C-4A85-9447-6C1610941CEE}"
RootNamespace="mod_iax"
Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
@@ -22,16 +23,63 @@
CharacterSet="2"
>
<Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\iax\src""
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"
+ AdditionalIncludeDirectories="."
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;WIN32_TIME_GET_TIME;LIBIAX;NEWJB;_CRT_SECURE_NO_DEPRECATE;DEBUG_SUPPORT"
UsePrecompiledHeader="0"
- DisableSpecificWarnings="4201"
+ DisableSpecificWarnings="4201;4200;4100;4127;6246;6053;6031;6262;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalLibraryDirectories=""..\..\..\..\libs\iax\$(OutDir)""
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
@@ -41,14 +89,62 @@
CharacterSet="2"
>
<Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\iax\src""
+ AdditionalIncludeDirectories="."
+ PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;MOD_EXPORTS;LIBIAX;WIN32_TIME_GET_TIME;DEBUG_SUPPORT;NEWJB;_CRT_SECURE_NO_DEPRECATE"
UsePrecompiledHeader="0"
- DisableSpecificWarnings="4201"
+ DisableSpecificWarnings="4201;4200;4100;4127;6246;6053;6031;6262;4706"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalLibraryDirectories=""..\..\..\..\libs\iax\$(OutDir)""
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
@@ -56,6 +152,26 @@
</References>
<Files>
<File
+ RelativePath=".\iax-mutex.c"
+ >
+ </File>
+ <File
+ RelativePath=".\iax.c"
+ >
+ </File>
+ <File
+ RelativePath=".\iax2-parser.c"
+ >
+ </File>
+ <File
+ RelativePath=".\jitterbuf.c"
+ >
+ </File>
+ <File
+ RelativePath=".\md5.c"
+ >
+ </File>
+ <File
RelativePath=".\mod_iax.c"
>
</File>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/mod_portaudio.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/mod_portaudio.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/mod_portaudio.c Tue May 13 23:37:33 2008
@@ -140,14 +140,14 @@
static void remove_pvt(private_t * tech_pvt);
static switch_status_t channel_on_init(switch_core_session_t *session);
static switch_status_t channel_on_hangup(switch_core_session_t *session);
-static switch_status_t channel_on_ring(switch_core_session_t *session);
-static switch_status_t channel_on_loopback(switch_core_session_t *session);
-static switch_status_t channel_on_transmit(switch_core_session_t *session);
+static switch_status_t channel_on_routing(switch_core_session_t *session);
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session);
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
-static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
-static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
+static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
+static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
static switch_status_t engage_device(int samplerate, int codec_ms);
static switch_status_t engage_ring_device(int sample_rate, int channels);
@@ -283,15 +283,15 @@
switch_set_flag_locked(tech_pvt, TFLAG_IO);
- /* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ /* Move channel's state machine to ROUTING */
+ switch_channel_set_state(channel, CS_ROUTING);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_ring(switch_core_session_t *session)
+static switch_status_t channel_on_routing(switch_core_session_t *session)
{
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL RING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL ROUTING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
return SWITCH_STATUS_SUCCESS;
}
@@ -435,29 +435,19 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_transmit(switch_core_session_t *session)
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_loopback(switch_core_session_t *session)
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
-{
- return SWITCH_STATUS_SUCCESS;
-}
-
-static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
-{
- return SWITCH_STATUS_SUCCESS;
-}
-
static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
{
private_t *tech_pvt = switch_core_session_get_private(session);
@@ -468,7 +458,7 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
{
private_t *tech_pvt = switch_core_session_get_private(session);
int samples = 0;
@@ -496,7 +486,7 @@
globals.read_codec.implementation->number_of_channels,
globals.read_codec.implementation->actual_samples_per_second,
SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT,
- switch_core_session_get_pool(tech_pvt->session)) != SWITCH_STATUS_SUCCESS) {
+ NULL) != SWITCH_STATUS_SUCCESS) {
tech_pvt->hold_file = NULL;
goto cng;
}
@@ -552,7 +542,7 @@
globals.read_frame.datalen = samples * 2;
globals.read_frame.samples = samples;
- switch_core_timer_check(&globals.timer, SWITCH_TRUE);
+ //switch_core_timer_check(&globals.timer, SWITCH_TRUE);
*frame = &globals.read_frame;
if (!switch_test_flag((&globals), GFLAG_MOUTH)) {
@@ -566,7 +556,7 @@
return status;
}
-static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
switch_status_t status = SWITCH_STATUS_FALSE;
private_t *tech_pvt = switch_core_session_get_private(session);
@@ -622,11 +612,11 @@
switch_state_handler_table_t portaudio_event_handlers = {
/*.on_init */ channel_on_init,
- /*.on_ring */ channel_on_ring,
+ /*.on_routing */ channel_on_routing,
/*.on_execute */ channel_on_execute,
/*.on_hangup */ channel_on_hangup,
- /*.on_loopback */ channel_on_loopback,
- /*.on_transmit */ channel_on_transmit
+ /*.on_exchange_media */ channel_on_exchange_media,
+ /*.on_soft_execute */ channel_on_soft_execute
};
switch_io_routines_t portaudio_io_routines = {
@@ -634,8 +624,6 @@
/*.read_frame */ channel_read_frame,
/*.write_frame */ channel_write_frame,
/*.kill_channel */ channel_kill_channel,
- /*.waitfor_read */ channel_waitfor_read,
- /*.waitfor_write */ channel_waitfor_write,
/*.send_dtmf */ channel_send_dtmf,
/*.receive_message */ channel_receive_message
};
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/pa_ringbuffer.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/pa_ringbuffer.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/pa_ringbuffer.c Tue May 13 23:37:33 2008
@@ -70,7 +70,7 @@
* PaUtil_WriteMemoryBarrier()
*
****************/
-
+#define __VIA_HACK__
#if defined(__VIA_HACK__)
#define NO_BARRIER
#endif
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/pablio.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/pablio.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_portaudio/pablio.c Tue May 13 23:37:33 2008
@@ -143,22 +143,37 @@
*/
long ReadAudioStream(PABLIO_Stream * aStream, void *data, long numFrames, switch_timer_t *timer)
{
- long bytesRead;
+ long bytesRead = 0;
char *p = (char *) data;
- long numBytes = aStream->bytesPerFrame * numFrames;
+ long avail, totalBytes = 0, neededBytes = aStream->bytesPerFrame * numFrames;
- while (numBytes > 0) {
- bytesRead = PaUtil_ReadRingBuffer(&aStream->inFIFO, p, numBytes);
- numBytes -= bytesRead;
- if (numBytes > 0) {
- if (switch_core_timer_check(timer, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) {
- PaUtil_FlushRingBuffer(&aStream->inFIFO);
- return 0;
- }
+ for(;;) {
+ avail = PaUtil_GetRingBufferReadAvailable(&aStream->inFIFO);
+
+ if (switch_core_timer_check(timer, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) {
+ break;
+ }
+
+ if (avail >= neededBytes * 6) {
+ PaUtil_FlushRingBuffer(&aStream->inFIFO);
+ avail = 0;
+ }
+
+ bytesRead = 0;
+
+ if (totalBytes < neededBytes && avail >= neededBytes) {
+ bytesRead = PaUtil_ReadRingBuffer(&aStream->inFIFO, p, neededBytes);
+ totalBytes += bytesRead;
+ }
+
+ if (bytesRead) {
+ p += bytesRead;
+ } else {
switch_yield(1000);
}
}
- return numFrames;
+
+ return totalBytes / aStream->bytesPerFrame;
}
/************************************************************
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_reference/mod_reference.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_reference/mod_reference.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_reference/mod_reference.c Tue May 13 23:37:33 2008
@@ -100,14 +100,14 @@
static switch_status_t channel_on_init(switch_core_session_t *session);
static switch_status_t channel_on_hangup(switch_core_session_t *session);
-static switch_status_t channel_on_ring(switch_core_session_t *session);
-static switch_status_t channel_on_loopback(switch_core_session_t *session);
-static switch_status_t channel_on_transmit(switch_core_session_t *session);
+static switch_status_t channel_on_routing(switch_core_session_t *session);
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session);
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
-static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
-static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
+static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
+static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
@@ -139,8 +139,11 @@
assert(channel != NULL);
switch_set_flag_locked(tech_pvt, TFLAG_IO);
- /* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ /* Move channel's state machine to ROUTING. This means the call is trying
+ to get from the initial start where the call because, to the point
+ where a destination has been identified. If the channel is simply
+ left in the initial state, nothing will happen. */
+ switch_channel_set_state(channel, CS_ROUTING);
switch_mutex_lock(globals.mutex);
globals.calls++;
switch_mutex_unlock(globals.mutex);
@@ -148,7 +151,7 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_ring(switch_core_session_t *session)
+static switch_status_t channel_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
@@ -159,7 +162,7 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL RING\n", switch_channel_get_name(channel));
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL ROUTING\n", switch_channel_get_name(channel));
return SWITCH_STATUS_SUCCESS;
}
@@ -245,39 +248,18 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_loopback(switch_core_session_t *session)
+static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_on_transmit(switch_core_session_t *session)
+static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CHANNEL TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
-{
- private_t *tech_pvt = NULL;
-
- tech_pvt = switch_core_session_get_private(session);
- assert(tech_pvt != NULL);
-
- return SWITCH_STATUS_SUCCESS;
-}
-
-static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
-{
- private_t *tech_pvt = NULL;
-
- tech_pvt = switch_core_session_get_private(session);
- assert(tech_pvt != NULL);
-
- return SWITCH_STATUS_SUCCESS;
-
-}
-
static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
{
private_t *tech_pvt = switch_core_session_get_private(session);
@@ -286,7 +268,7 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
@@ -319,17 +301,14 @@
continue;
}
*frame = &tech_pvt->read_frame;
- return SWITCH_STATUS_SUCCESS;
- }
-
- if (timeout > -1) {
- elapsed = (unsigned int) ((switch_time_now() - started) / 1000);
- if (elapsed >= (unsigned int) timeout) {
- return SWITCH_STATUS_SUCCESS;
+#ifdef BIGENDIAN
+ if (switch_test_flag(tech_pvt, TFLAG_LINEAR)) {
+ switch_swap_linear((*frame)->data, (int) (*frame)->datalen / 2);
}
+#endif
+ return SWITCH_STATUS_SUCCESS;
}
-
switch_yield(1000);
}
@@ -347,7 +326,7 @@
}
-static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
switch_channel_t *channel = NULL;
private_t *tech_pvt = NULL;
@@ -479,11 +458,11 @@
switch_state_handler_table_t reference_state_handlers = {
/*.on_init */ channel_on_init,
- /*.on_ring */ channel_on_ring,
+ /*.on_routing */ channel_on_routing,
/*.on_execute */ channel_on_execute,
/*.on_hangup */ channel_on_hangup,
- /*.on_loopback */ channel_on_loopback,
- /*.on_transmit */ channel_on_transmit
+ /*.on_exchange_media */ channel_on_exchange_media,
+ /*.on_soft_execute */ channel_on_soft_execute
};
switch_io_routines_t reference_io_routines = {
@@ -491,8 +470,6 @@
/*.read_frame */ channel_read_frame,
/*.write_frame */ channel_write_frame,
/*.kill_channel */ channel_kill_channel,
- /*.waitfor_read */ channel_waitfor_read,
- /*.waitfor_write */ channel_waitfor_write,
/*.send_dtmf */ channel_send_dtmf,
/*.receive_message*/ channel_receive_message,
/*.receive_event */ channel_receive_event
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.c Tue May 13 23:37:33 2008
@@ -50,15 +50,15 @@
static switch_status_t sofia_on_init(switch_core_session_t *session);
-static switch_status_t sofia_on_loopback(switch_core_session_t *session);
-static switch_status_t sofia_on_transmit(switch_core_session_t *session);
+static switch_status_t sofia_on_exchange_media(switch_core_session_t *session);
+static switch_status_t sofia_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session,
switch_memory_pool_t **pool, switch_originate_flag_t flags);
-static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
-static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
-static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
-static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
+static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
+static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
+static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
+static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
static switch_status_t sofia_kill_channel(switch_core_session_t *session, int sig);
/* BODY OF THE MODULE */
@@ -103,20 +103,20 @@
}
}
- /* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ /* Move channel's state machine to ROUTING */
+ switch_channel_set_state(channel, CS_ROUTING);
assert( switch_channel_get_state(channel) != CS_INIT);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t sofia_on_ring(switch_core_session_t *session)
+static switch_status_t sofia_on_routing(switch_core_session_t *session)
{
private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session);
switch_assert(tech_pvt != NULL);
switch_clear_flag_locked(tech_pvt, TFLAG_SIP_HOLD);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s SOFIA RING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s SOFIA ROUTING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
return SWITCH_STATUS_SUCCESS;
}
@@ -226,9 +226,11 @@
if (!switch_strlen_zero(ps_cause) && !strncasecmp(ps_cause, "sip:", 4)) {
int new_cause = atoi(ps_cause + 4);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s Overriding SIP cause %d with %d from the other leg\n",
- switch_channel_get_name(channel), sip_cause, new_cause);
- sip_cause = new_cause;
+ if (new_cause) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s Overriding SIP cause %d with %d from the other leg\n",
+ switch_channel_get_name(channel), sip_cause, new_cause);
+ sip_cause = new_cause;
+ }
}
if (switch_test_flag(tech_pvt, TFLAG_SIP_HOLD) && cause != SWITCH_CAUSE_ATTENDED_TRANSFER) {
@@ -316,13 +318,13 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t sofia_on_loopback(switch_core_session_t *session)
+static switch_status_t sofia_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SOFIA LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t sofia_on_transmit(switch_core_session_t *session)
+static switch_status_t sofia_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SOFIA TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
@@ -335,6 +337,8 @@
switch_status_t status;
uint32_t session_timeout = tech_pvt->profile->session_timeout;
const char *val;
+ const char *b_sdp = NULL;
+ int is_proxy = 0;
if (switch_test_flag(tech_pvt, TFLAG_ANS) || switch_channel_test_flag(channel, CF_OUTBOUND)) {
return SWITCH_STATUS_SUCCESS;
@@ -342,11 +346,12 @@
switch_set_flag_locked(tech_pvt, TFLAG_ANS);
- if (switch_channel_test_flag(channel, CF_PROXY_MODE) || switch_channel_test_flag(channel, CF_PROXY_MEDIA)) {
- const char *sdp = NULL;
- if ((sdp = switch_channel_get_variable(channel, SWITCH_B_SDP_VARIABLE))) {
- tech_pvt->local_sdp_str = switch_core_session_strdup(session, sdp);
- }
+ b_sdp = switch_channel_get_variable(channel, SWITCH_B_SDP_VARIABLE);
+ is_proxy = (switch_channel_test_flag(channel, CF_PROXY_MODE) || switch_channel_test_flag(channel, CF_PROXY_MEDIA));
+
+ if (b_sdp && is_proxy) {
+ tech_pvt->local_sdp_str = switch_core_session_strdup(session, b_sdp);
+
if (switch_channel_test_flag(channel, CF_PROXY_MEDIA)) {
sofia_glue_tech_patch_sdp(tech_pvt);
if (sofia_glue_activate_rtp(tech_pvt, 0) != SWITCH_STATUS_SUCCESS) {
@@ -354,12 +359,20 @@
}
}
} else {
- if (switch_test_flag(tech_pvt, TFLAG_LATE_NEGOTIATION)) {
+ if ((is_proxy && !b_sdp) || switch_test_flag(tech_pvt, TFLAG_LATE_NEGOTIATION)) {
switch_clear_flag_locked(tech_pvt, TFLAG_LATE_NEGOTIATION);
+
+ if (is_proxy) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Disabling proxy mode due to call answer with no bridge\n");
+ switch_channel_clear_flag(channel, CF_PROXY_MEDIA);
+ switch_channel_clear_flag(channel, CF_PROXY_MODE);
+ }
+
if (!switch_channel_test_flag(tech_pvt->channel, CF_OUTBOUND)) {
const char *r_sdp = switch_channel_get_variable(channel, SWITCH_R_SDP_VARIABLE);
tech_pvt->num_codecs = 0;
sofia_glue_tech_prepare_codecs(tech_pvt);
+
if (sofia_glue_tech_media(tech_pvt, r_sdp) != SWITCH_STATUS_SUCCESS) {
switch_channel_set_variable(channel, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "CODEC NEGOTIATION ERROR");
//nua_respond(tech_pvt->nh, SIP_488_NOT_ACCEPTABLE, TAG_END());
@@ -407,7 +420,7 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
{
private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session);
switch_channel_t *channel = switch_core_session_get_channel(session);
@@ -442,7 +455,7 @@
while (switch_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->video_read_frame.datalen == 0) {
tech_pvt->video_read_frame.flags = SFF_NONE;
- status = switch_rtp_zerocopy_read_frame(tech_pvt->video_rtp_session, &tech_pvt->video_read_frame);
+ status = switch_rtp_zerocopy_read_frame(tech_pvt->video_rtp_session, &tech_pvt->video_read_frame, flags);
if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) {
if (status == SWITCH_STATUS_TIMEOUT) {
switch_channel_hangup(tech_pvt->channel, SWITCH_CAUSE_MEDIA_TIMEOUT);
@@ -468,7 +481,7 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session);
switch_channel_t *channel = switch_core_session_get_channel(session);
@@ -503,7 +516,7 @@
return status;
}
-static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
{
private_object_t *tech_pvt = switch_core_session_get_private(session);
switch_channel_t *channel = switch_core_session_get_channel(session);
@@ -544,7 +557,7 @@
while (switch_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->read_frame.datalen == 0) {
tech_pvt->read_frame.flags = SFF_NONE;
- status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame);
+ status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame, flags);
if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) {
if (status == SWITCH_STATUS_TIMEOUT) {
@@ -588,7 +601,7 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
private_object_t *tech_pvt = switch_core_session_get_private(session);
switch_channel_t *channel = switch_core_session_get_channel(session);
@@ -673,16 +686,6 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t sofia_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
-{
- return SWITCH_STATUS_SUCCESS;
-}
-
-static switch_status_t sofia_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
-{
- return SWITCH_STATUS_SUCCESS;
-}
-
static switch_status_t sofia_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
{
private_object_t *tech_pvt;
@@ -1114,7 +1117,7 @@
msg_nh = nua_handle(tech_pvt->profile->nua, NULL,
SIPTAG_FROM_STR(tech_pvt->chat_from),
NUTAG_URL(tech_pvt->chat_to), SIPTAG_TO_STR(tech_pvt->chat_to), SIPTAG_CONTACT_STR(tech_pvt->profile->url), TAG_END());
-
+ nua_handle_bind(msg_nh, &mod_sofia_globals.destroy_private);
nua_message(msg_nh, SIPTAG_CONTENT_TYPE_STR("text/html"), SIPTAG_PAYLOAD_STR(body), TAG_END());
}
@@ -1623,8 +1626,6 @@
/*.read_frame */ sofia_read_frame,
/*.write_frame */ sofia_write_frame,
/*.kill_channel */ sofia_kill_channel,
- /*.waitfor_read */ sofia_waitfor_read,
- /*.waitfor_read */ sofia_waitfor_write,
/*.send_dtmf */ sofia_send_dtmf,
/*.receive_message */ sofia_receive_message,
/*.receive_event */ sofia_receive_event,
@@ -1635,12 +1636,12 @@
switch_state_handler_table_t sofia_event_handlers = {
/*.on_init */ sofia_on_init,
- /*.on_ring */ sofia_on_ring,
+ /*.on_routing */ sofia_on_routing,
/*.on_execute */ sofia_on_execute,
/*.on_hangup */ sofia_on_hangup,
- /*.on_loopback */ sofia_on_loopback,
- /*.on_transmit */ sofia_on_transmit,
- /*.on_hold */ NULL,
+ /*.on_exchange_media */ sofia_on_exchange_media,
+ /*.on_soft_execute */ sofia_on_soft_execute,
+ /*.on_consume_media */ NULL,
/*.on_hibernate*/ sofia_on_hibernate,
/*.on_reset*/ sofia_on_reset
};
@@ -1899,6 +1900,7 @@
silence_frame.flags = SFF_CNG;
memset(&mod_sofia_globals, 0, sizeof(mod_sofia_globals));
+ mod_sofia_globals.destroy_private.destroy_nh = 1;
mod_sofia_globals.pool = pool;
switch_mutex_init(&mod_sofia_globals.mutex, SWITCH_MUTEX_NESTED, mod_sofia_globals.pool);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.h Tue May 13 23:37:33 2008
@@ -100,6 +100,8 @@
char uuid[SWITCH_UUID_FORMATTED_LENGTH + 1];
sofia_gateway_t *gateway;
char gateway_name[512];
+ int destroy_nh;
+ int destroy_me;
};
#define set_param(ptr,val) if (ptr) {free(ptr) ; ptr = NULL;} if (val) {ptr = strdup(val);}
@@ -194,6 +196,8 @@
char guess_ip[80];
switch_queue_t *presence_queue;
switch_queue_t *mwi_queue;
+ struct sofia_private destroy_private;
+ struct sofia_private keep_private;
};
extern struct mod_sofia_globals mod_sofia_globals;
@@ -307,7 +311,6 @@
switch_mutex_t *gateway_mutex;
sofia_gateway_t *gateways;
su_home_t *home;
- switch_hash_t *sub_hash;
switch_hash_t *chat_hash;
switch_core_db_t *master_db;
switch_thread_rwlock_t *rwlock;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia.c Tue May 13 23:37:33 2008
@@ -74,15 +74,12 @@
char const *phrase,
nua_t *nua, sofia_profile_t *profile, nua_handle_t *nh, sofia_private_t *sofia_private, sip_t const *sip, tagi_t tags[])
{
- if (status >= 300 && sip) {
- const char *call_id = sip->sip_call_id->i_id;
+ if (status >= 300 && sip && sip->sip_call_id) {
char *sql;
- switch_core_hash_delete(profile->sub_hash, call_id);
-
- sql = switch_mprintf("delete from sip_subscriptions where call_id='%q'", call_id);
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "delete subscriptions for failed notify\n");
+ sql = switch_mprintf("delete from sip_subscriptions where call_id='%q'", sip->sip_call_id->i_id);
switch_assert(sql != NULL);
sofia_glue_execute_sql(profile, &sql, SWITCH_TRUE);
- nua_handle_destroy(nh);
}
}
@@ -166,21 +163,6 @@
void sofia_handle_sip_r_message(int status, sofia_profile_t *profile, nua_handle_t *nh, sip_t const *sip)
{
- if (status == 503) {
- const char *user = NULL, *host = NULL;
- char *sql;
-
- if (sip->sip_to && sip->sip_to->a_url) {
- user = sip->sip_to->a_url->url_user;
- host = sip->sip_to->a_url->url_host;
-
- sql = switch_mprintf("delete from sip_registrations where sip_user='%q' and sip_host='%q'", user, host);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Deleting registration for %s@%s\n", user, host);
- sofia_glue_execute_sql(profile, &sql, SWITCH_TRUE);
- }
- }
-
- nua_handle_destroy(nh);
}
void sofia_event_callback(nua_event_t event,
@@ -199,7 +181,7 @@
switch_channel_t *channel = NULL;
sofia_gateway_t *gateway = NULL;
- if (sofia_private) {
+ if (sofia_private && sofia_private != &mod_sofia_globals.destroy_private && sofia_private != &mod_sofia_globals.keep_private) {
if ((gateway = sofia_private->gateway)) {
if (switch_thread_rwlock_tryrdlock(gateway->profile->rwlock) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Profile %s is locked\n", gateway->profile->name);
@@ -361,6 +343,30 @@
done:
+ switch (event) {
+ case nua_i_subscribe:
+ break;
+ default:
+ if (nh && ((sofia_private && sofia_private->destroy_nh) || !nua_handle_magic(nh))) {
+ //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Destroy handle [%s]\n", nua_event_name(event));
+ if (sofia_private) {
+ nua_handle_bind(nh, NULL);
+ }
+ nua_handle_destroy(nh);
+ nh = NULL;
+ }
+ break;
+ }
+
+ if (sofia_private && sofia_private->destroy_me) {
+ if (nh) {
+ nua_handle_bind(nh, NULL);
+ }
+ sofia_private->destroy_me = 12;
+ free(sofia_private);
+ sofia_private = NULL;
+ }
+
if (gateway) {
sofia_reg_release_gateway(gateway);
}
@@ -689,7 +695,6 @@
sofia_glue_del_profile(profile);
switch_core_hash_destroy(&profile->chat_hash);
- switch_core_hash_destroy(&profile->sub_hash);
switch_thread_rwlock_unlock(profile->rwlock);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Write unlock %s\n", profile->name);
@@ -1068,7 +1073,6 @@
profile->dbname = switch_core_strdup(profile->pool, url);
switch_core_hash_init(&profile->chat_hash, profile->pool);
- switch_core_hash_init(&profile->sub_hash, profile->pool);
switch_thread_rwlock_create(&profile->rwlock, profile->pool);
switch_mutex_init(&profile->flag_mutex, SWITCH_MUTEX_NESTED, profile->pool);
profile->dtmf_duration = 100;
@@ -1524,11 +1528,12 @@
if (sofia_private && !switch_strlen_zero(sofia_private->gateway_name)) {
gateway = sofia_reg_find_gateway(sofia_private->gateway_name);
+ sofia_private->destroy_me = 1;
}
if (gateway) {
if (status == 200 || status == 404) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "ping success %s\n", gateway->name);
+ //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "ping success %s\n", gateway->name);
gateway->status = SOFIA_GATEWAY_UP;
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "ping failed %s\n", gateway->name);
@@ -1540,8 +1545,6 @@
}
gateway->ping = switch_timestamp(NULL) + gateway->ping_freq;
sofia_reg_release_gateway(gateway);
- nua_handle_bind(nh, NULL);
- free(sofia_private);
gateway->pinging = 0;
} else if ((profile->pflags & PFLAG_UNREG_OPTIONS_FAIL) && status != 200 && sip && sip->sip_to) {
char *sql;
@@ -1558,7 +1561,6 @@
);
sofia_glue_execute_sql(profile, &sql, SWITCH_TRUE);
}
- nua_handle_destroy(nh);
}
@@ -2109,10 +2111,12 @@
} else {
cause = sofia_glue_sip_cause_to_freeswitch(status);
}
- switch_snprintf(st, sizeof(st), "%d", status);
- switch_channel_set_variable(channel, "sip_term_status", st);
- switch_snprintf(st, sizeof(st), "sip:%d", status);
- switch_channel_set_variable_partner(channel, SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE, st);
+ if (status) {
+ switch_snprintf(st, sizeof(st), "%d", status);
+ switch_channel_set_variable(channel, "sip_term_status", st);
+ switch_snprintf(st, sizeof(st), "sip:%d", status);
+ switch_channel_set_variable_partner(channel, SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE, st);
+ }
switch_snprintf(st, sizeof(st), "%d", cause);
switch_channel_set_variable(channel, "sip_term_cause", st);
switch_channel_hangup(channel, cause);
@@ -2122,14 +2126,14 @@
if (tech_pvt->sofia_private) {
sofia_private = tech_pvt->sofia_private;
tech_pvt->sofia_private = NULL;
- free(sofia_private);
+ sofia_private->destroy_me = 1;
}
tech_pvt->nh = NULL;
} else if (sofia_private) {
- free(sofia_private);
+ sofia_private->destroy_me = 1;
}
if (nh) {
@@ -2168,13 +2172,6 @@
goto done;
}
- if (switch_channel_test_flag(channel_a, CF_PROXY_MODE)) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Transfer on bypass media not allowed.\n");
- nua_notify(tech_pvt->nh, NUTAG_NEWSUB(1), SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
- NUTAG_SUBSTATE(nua_substate_terminated), SIPTAG_PAYLOAD_STR("SIP/2.0 403 Forbidden"), SIPTAG_EVENT_STR(etmp), TAG_END());
- goto done;
- }
-
from = sip->sip_from;
to = sip->sip_to;
@@ -2200,6 +2197,15 @@
sip_replaces_t *replaces;
nua_handle_t *bnh;
char *rep;
+
+ if (switch_channel_test_flag(channel_a, CF_PROXY_MODE)) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Attended Transfer BYPASS MEDIA CALLS!\n");
+ switch_channel_set_variable(channel_a, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "ATTENDED_TRANSFER_ERROR");
+ nua_notify(tech_pvt->nh, NUTAG_NEWSUB(1), SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
+ NUTAG_SUBSTATE(nua_substate_terminated), SIPTAG_PAYLOAD_STR("SIP/2.0 403 Forbidden"), SIPTAG_EVENT_STR(etmp),
+ TAG_END());
+ goto done;
+ }
if ((rep = strchr(refer_to->r_url->url_headers, '='))) {
const char *br_a = NULL, *br_b = NULL;
@@ -2220,6 +2226,7 @@
sofia_private_t *b_private = NULL;
private_object_t *b_tech_pvt = NULL;
switch_core_session_t *b_session = NULL;
+
switch_channel_set_variable(channel_a, SOFIA_REPLACES_HEADER, rep);
if ((b_private = nua_handle_magic(bnh))) {
@@ -2358,7 +2365,7 @@
&tsession, &cause, exten, timeout, &noop_state_handler, NULL, NULL, NULL, SOF_NONE);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel! [%s]\n", exten);
- nua_notify(tech_pvt->nh, NUTAG_NEWSUB(1), SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
+ nua_notify(tech_pvt->nh, NUTAG_NEWSUB(1), SIPTAG_CONTENT_TYPE_STR("messsage/sipfrag"),
NUTAG_SUBSTATE(nua_substate_terminated),
SIPTAG_PAYLOAD_STR("SIP/2.0 403 Forbidden"), SIPTAG_EVENT_STR(etmp), TAG_END());
@@ -2415,6 +2422,9 @@
if (!switch_strlen_zero(full_ref_to)) {
switch_channel_set_variable(b_channel, SOFIA_REFER_TO_VARIABLE, full_ref_to);
}
+
+
+
switch_ivr_session_transfer(b_session, exten, NULL, NULL);
switch_core_session_rwunlock(b_session);
}
@@ -3143,7 +3153,6 @@
nua_respond(nh, SIP_200_OK,
NUTAG_WITH_THIS(nua),
TAG_END());
- nua_handle_destroy(nh);
}
static void sofia_info_send_sipfrag(switch_core_session_t *aleg, switch_core_session_t *bleg)
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_presence.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_presence.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_presence.c Tue May 13 23:37:33 2008
@@ -107,7 +107,6 @@
SIPTAG_CONTACT_STR(profile->url), TAG_END());
switch_safe_free(contact);
-
nua_message(msg_nh, SIPTAG_CONTENT_TYPE_STR("text/html"), SIPTAG_PAYLOAD_STR(body), TAG_END());
switch_safe_free(ffrom);
@@ -189,6 +188,11 @@
return r;
}
+struct mwi_helper {
+ sofia_profile_t *profile;
+ int total;
+};
+
static void actual_sofia_presence_mwi_event_handler(switch_event_t *event)
{
char *account, *dup_account, *yn, *host, *user;
@@ -196,8 +200,9 @@
sofia_profile_t *profile = NULL;
switch_stream_handle_t stream = { 0 };
switch_event_header_t *hp;
- int count = 0;
-
+ struct mwi_helper h = { 0 };
+ char *pname = NULL;
+
switch_assert(event != NULL);
if (!(account = switch_event_get_header(event, "mwi-message-account"))) {
@@ -214,11 +219,29 @@
switch_assert(dup_account != NULL);
sofia_glue_get_user_host(dup_account, &user, &host);
- if (!host || !(profile = sofia_glue_find_profile(host))) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot find profile for host %s\n", switch_str_nil(host));
- return;
+
+ if ((pname = switch_event_get_header(event, "sofia-profile"))) {
+ if (!(profile = sofia_glue_find_profile(pname))) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "no profile %s\n", pname);
+ }
+ }
+
+ if (!profile) {
+ if (!host || !(profile = sofia_glue_find_profile(host))) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot find profile %s\n", switch_str_nil(host));
+ switch_safe_free(dup_account);
+ return;
+ }
}
+ if (profile->domain_name && profile->domain_name != host) {
+ host = profile->domain_name;
+ }
+
+ h.profile = profile;
+ h.total = 0;
+
+
SWITCH_STANDARD_STREAM(stream);
for (hp = event->headers; hp; hp = hp->next) {
@@ -240,19 +263,18 @@
stream.data, user, host);
-
switch_assert (sql != NULL);
sofia_glue_execute_sql_callback(profile,
SWITCH_FALSE,
profile->ireg_mutex,
sql,
sofia_presence_mwi_callback,
- &count);
+ &h);
switch_safe_free(sql);
- if (!count) {
+ if (h.total) {
sql = switch_mprintf("select sip_user,sip_host,contact,'%q' from sip_registrations where sip_user='%q' and sip_host='%q'",
stream.data, user, host);
@@ -264,7 +286,7 @@
profile->ireg_mutex,
sql,
sofia_presence_mwi_callback2,
- profile);
+ &h);
switch_safe_free(sql);
}
@@ -641,6 +663,7 @@
if (!strcasecmp(event_name, "message-summary")) {
if (switch_event_create(&event, SWITCH_EVENT_MESSAGE_QUERY) == SWITCH_STATUS_SUCCESS) {
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Message-Account", "sip:%s@%s", user, host);
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "VM-Sofia-Profile", "%s", profile->name);
switch_event_fire(&event);
}
return 0;
@@ -701,7 +724,7 @@
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_HANGUP");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", "resubscribe");
} else {
- switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_RING");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "channel-state", "%s", "CS_ROUTING");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "unique-id", "%s", uuid);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "answer-state", "%s", state);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "astate", "%s", state);
@@ -781,8 +804,8 @@
exptime = tmp - switch_timestamp(NULL);
}
}
-
- if (!(nh = (nua_handle_t *) switch_core_hash_find(profile->sub_hash, call_id))) {
+
+ if (!(nh = nua_handle_by_call_id(profile->nua, call_id))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot find handle for %s\n", call_id);
return 0;
}
@@ -1043,16 +1066,11 @@
}
switch_snprintf(exp, sizeof(exp), "active;expires=%ld", (long) exptime);
-
+ nua_handle_bind(nh, &mod_sofia_globals.keep_private);
nua_notify(nh,
- NUTAG_NEWSUB(1),
SIPTAG_SUBSCRIPTION_STATE_STR(exp),
SIPTAG_EVENT_STR(event), SIPTAG_CONTENT_TYPE_STR(ct), SIPTAG_PAYLOAD_STR(pl), TAG_END());
- if (done) {
- switch_core_hash_delete(profile->sub_hash, call_id);
- }
-
end:
switch_safe_free(id);
@@ -1079,18 +1097,15 @@
char *expires = argv[10];
char *body = argv[13];
char *exp;
- sofia_profile_t *profile = NULL;
+ //sofia_profile_t *profile = NULL;
char *id = NULL;
nua_handle_t *nh;
int expire_sec = atoi(expires);
- int *total = (int *) pArg;
+ //int *total = (int *) pArg;
+ struct mwi_helper *h = (struct mwi_helper *) pArg;
- if (!(profile = sofia_glue_find_profile(sub_to_host))) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot find profile for host %s\n", sub_to_host);
- return 0;
- }
- if (!(nh = (nua_handle_t *) switch_core_hash_find(profile->sub_hash, call_id))) {
+ if (!(nh = nua_handle_by_call_id(h->profile->nua, call_id))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot find handle for %s\n", call_id);
return 0;
}
@@ -1101,17 +1116,15 @@
expire_sec = 3600;
}
exp = switch_mprintf("active;expires=%ld", expire_sec);
-
+ nua_handle_bind(nh, &mod_sofia_globals.keep_private);
nua_notify(nh,
- NUTAG_NEWSUB(1),
SIPTAG_SUBSCRIPTION_STATE_STR(exp),
SIPTAG_EVENT_STR(event), SIPTAG_CONTENT_TYPE_STR("application/simple-message-summary"), SIPTAG_PAYLOAD_STR(body), TAG_END());
switch_safe_free(id);
switch_safe_free(exp);
- sofia_glue_release_profile(profile);
- (*total)++;
+ h->total++;
return 0;
}
@@ -1125,25 +1138,20 @@
char *event = "message-summary";
char *contact = argv[2];
char *body = argv[3];
- sofia_profile_t *profile = NULL;
char *id = NULL;
nua_handle_t *nh;
-
+ struct mwi_helper *h = (struct mwi_helper *) pArg;
+
- if (!(profile = sofia_glue_find_profile(sub_to_host))) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot find profile for host %s\n", sub_to_host);
- return 0;
- }
-
id = switch_mprintf("sip:%s@%s", sub_to_user, sub_to_host);
contact = sofia_glue_get_url_from_contact(contact, 0);
- nh = nua_handle(profile->nua, NULL,
+ nh = nua_handle(h->profile->nua, NULL,
NUTAG_URL(contact),
SIPTAG_FROM_STR(id),
SIPTAG_TO_STR(id),
- SIPTAG_CONTACT_STR(profile->url),
+ SIPTAG_CONTACT_STR(h->profile->url),
TAG_END());
nua_notify(nh,
@@ -1152,8 +1160,6 @@
switch_safe_free(id);
- sofia_glue_release_profile(profile);
-
return 0;
}
@@ -1310,7 +1316,6 @@
if (sub_state == nua_substate_terminated) {
sstr = switch_mprintf("terminated");
- switch_core_hash_delete(profile->sub_hash, call_id);
} else {
sip_accept_t *ap = sip->sip_accept;
char accept[256] = "";
@@ -1327,9 +1332,6 @@
sofia_glue_execute_sql(profile, &sql, SWITCH_TRUE);
sstr = switch_mprintf("active;expires=%ld", exp_raw);
- if (status < 200) {
- switch_core_hash_insert(profile->sub_hash, call_id, nh);
- }
}
switch_mutex_unlock(profile->ireg_mutex);
@@ -1347,6 +1349,7 @@
sent_reply++;
#if 0
+
nua_notify(nh,
NUTAG_NEWSUB(1),
SIPTAG_SUBSCRIPTION_STATE_STR(sstr), SIPTAG_EVENT_STR(event),
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_reg.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_reg.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_reg.c Tue May 13 23:37:33 2008
@@ -87,7 +87,7 @@
pvt = malloc(sizeof(*pvt));
switch_assert(pvt);
memset(pvt, 0, sizeof(*pvt));
-
+ pvt->destroy_nh = 1;
switch_copy_string(pvt->gateway_name, gateway_ptr->name, sizeof(pvt->gateway_name));
nua_handle_bind(nh, pvt);
@@ -97,6 +97,7 @@
switch (ostate) {
case REG_STATE_NOREG:
+ gateway_ptr->status = SOFIA_GATEWAY_UP;
break;
case REG_STATE_REGISTER:
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "registered %s\n", gateway_ptr->name);
@@ -110,7 +111,7 @@
gateway_ptr->state = REG_STATE_NOREG;
break;
case REG_STATE_UNREGED:
-
+ gateway_ptr->status = SOFIA_GATEWAY_DOWN;
sofia_reg_kill_reg(gateway_ptr, 1);
if ((gateway_ptr->nh = nua_handle(gateway_ptr->profile->nua, NULL,
@@ -196,7 +197,7 @@
contact = sofia_glue_get_url_from_contact(argv[3], 1);
nh = nua_handle(profile->nua, NULL, SIPTAG_FROM_STR(profile->url), SIPTAG_TO_STR(to), NUTAG_URL(contact), SIPTAG_CONTACT_STR(profile->url), TAG_END());
-
+ nua_handle_bind(nh, &mod_sofia_globals.destroy_private);
nua_options(nh, TAG_END());
switch_safe_free(contact);
@@ -204,6 +205,20 @@
return 0;
}
+
+int sofia_sub_del_callback(void *pArg, int argc, char **argv, char **columnNames)
+{
+ sofia_profile_t *profile = (sofia_profile_t *) pArg;
+ nua_handle_t *nh;
+
+ if (argv[0]) {
+ if ((nh = nua_handle_by_call_id(profile->nua, argv[0]))) {
+ nua_handle_destroy(nh);
+ }
+ }
+ return 0;
+}
+
int sofia_reg_del_callback(void *pArg, int argc, char **argv, char **columnNames)
{
switch_event_t *s_event;
@@ -262,13 +277,15 @@
}
#endif
+
+ switch_mutex_lock(profile->ireg_mutex);
+
if (now) {
switch_snprintf(sql, sizeof(sql), "select *,'%s' from sip_registrations where expires > 0 and expires <= %ld", profile->name, (long) now);
} else {
switch_snprintf(sql, sizeof(sql), "select *,'%s' from sip_registrations where expires > 0", profile->name);
}
- switch_mutex_lock(profile->ireg_mutex);
sofia_glue_execute_sql_callback(profile,
SWITCH_TRUE,
NULL,
@@ -291,6 +308,21 @@
sofia_glue_actually_execute_sql(profile, SWITCH_FALSE, sql, NULL);
+
+
+ if (now) {
+ switch_snprintf(sql, sizeof(sql), "select call_id from sip_subscriptions where expires > 0 and expires <= %ld", (long) now);
+ } else {
+ switch_snprintf(sql, sizeof(sql), "select call_id from sip_subscriptions where expires > 0");
+ }
+
+ sofia_glue_execute_sql_callback(profile,
+ SWITCH_TRUE,
+ NULL,
+ sql,
+ sofia_sub_del_callback,
+ profile);
+
if (now) {
switch_snprintf(sql, sizeof(sql), "delete from sip_subscriptions where expires > 0 and expires <= %ld", (long) now);
} else {
@@ -656,12 +688,14 @@
if (regtype == REG_REGISTER) {
char *new_contact = NULL;
+
if (exptime) {
new_contact = switch_mprintf("%s;expires=%ld", contact_str, (long)exptime);
nua_respond(nh, SIP_200_OK, SIPTAG_CONTACT_STR(new_contact), NUTAG_WITH_THIS(nua), TAG_END());
switch_safe_free(new_contact);
if (switch_event_create(&event, SWITCH_EVENT_MESSAGE_QUERY) == SWITCH_STATUS_SUCCESS) {
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Message-Account", "sip:%s@%s", to_user, to_host);
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "VM-Sofia-Profile", "%s", profile->name);
switch_event_fire(&event);
}
} else {
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/libsangoma/libsangoma.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/libsangoma/libsangoma.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/libsangoma/libsangoma.c Tue May 13 23:37:33 2008
@@ -826,7 +826,7 @@
break;
case WP_TDM_EVENT_RING_TRIP:
- printf("%d: GOT RING TRIP EVENT\n",(int)fd);
+ printf("%d: GOT ROUTING TRIP EVENT\n",(int)fd);
if (tdm_api->wp_tdm_event.wp_ringtrip_event) {
tdm_api->wp_tdm_event.wp_ringtrip_event(fd,
rx_event->wp_tdm_api_event_ring_state);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/libsangoma/sangoma_pri.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/libsangoma/sangoma_pri.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/libsangoma/sangoma_pri.c Tue May 13 23:37:33 2008
@@ -52,7 +52,7 @@
{2, SANGOMA_PRI_EVENT_DCHAN_DOWN, "DCHAN_DOWN"},
{3, SANGOMA_PRI_EVENT_RESTART, "RESTART"},
{4, SANGOMA_PRI_EVENT_CONFIG_ERR, "CONFIG_ERR"},
- {5, SANGOMA_PRI_EVENT_RING, "RING"},
+ {5, SANGOMA_PRI_EVENT_RING, "ROUTING"},
{6, SANGOMA_PRI_EVENT_HANGUP, "HANGUP"},
{7, SANGOMA_PRI_EVENT_RINGING, "RINGING"},
{8, SANGOMA_PRI_EVENT_ANSWER, "ANSWER"},
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c Tue May 13 23:37:33 2008
@@ -464,13 +464,13 @@
static int str2switch(char *swtype);
static switch_status_t wanpipe_on_init(switch_core_session_t *session);
static switch_status_t wanpipe_on_hangup(switch_core_session_t *session);
-static switch_status_t wanpipe_on_loopback(switch_core_session_t *session);
-static switch_status_t wanpipe_on_transmit(switch_core_session_t *session);
+static switch_status_t wanpipe_on_exchange_media(switch_core_session_t *session);
+static switch_status_t wanpipe_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t wanpipe_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
-static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout,
+static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame,
switch_io_flag_t flags, int stream_id);
-static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout,
+static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame,
switch_io_flag_t flags, int stream_id);
static int on_info(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent);
static int on_hangup(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent);
@@ -613,12 +613,12 @@
done:
- /* Move Channel's State Machine to RING */
- switch_channel_set_state(channel, CS_RING);
+ /* Move channel's state machine to ROUTING */
+ switch_channel_set_state(channel, CS_ROUTING);
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t wanpipe_on_ring(switch_core_session_t *session)
+static switch_status_t wanpipe_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = NULL;
private_object_t *tech_pvt = NULL;
@@ -629,7 +629,7 @@
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "WANPIPE RING\n");
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "WANPIPE ROUTING\n");
@@ -694,13 +694,13 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t wanpipe_on_loopback(switch_core_session_t *session)
+static switch_status_t wanpipe_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "WANPIPE LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t wanpipe_on_transmit(switch_core_session_t *session)
+static switch_status_t wanpipe_on_soft_execute(switch_core_session_t *session)
{
private_object_t *tech_pvt;
switch_channel_t *channel;
@@ -751,7 +751,7 @@
-static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout,
+static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame,
switch_io_flag_t flags, int stream_id)
{
private_object_t *tech_pvt;
@@ -838,7 +838,7 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout,
+static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame,
switch_io_flag_t flags, int stream_id)
{
private_object_t *tech_pvt;
@@ -993,19 +993,17 @@
/*.read_frame */ wanpipe_read_frame,
/*.write_frame */ wanpipe_write_frame,
/*.kill_channel */ wanpipe_kill_channel,
- /*.waitfor_read */ NULL,
- /*.waitfor_read */ NULL,
/*.send_dtmf*/ wanpipe_send_dtmf,
/*.receive_message*/ wanpipe_receive_message
};
switch_state_handler_table_t wanpipe_state_handlers = {
/*.on_init */ wanpipe_on_init,
- /*.on_ring */ wanpipe_on_ring,
+ /*.on_routing */ wanpipe_on_routing,
/*.on_execute */ NULL,
/*.on_hangup */ wanpipe_on_hangup,
- /*.on_loopback */ wanpipe_on_loopback,
- /*.on_transmit */ wanpipe_on_transmit
+ /*.on_exchange_media */ wanpipe_on_exchange_media,
+ /*.on_soft_execute */ wanpipe_on_soft_execute
};
static switch_call_cause_t wanpipe_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile,
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_woomera/mod_woomera.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_woomera/mod_woomera.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_woomera/mod_woomera.c Tue May 13 23:37:33 2008
@@ -170,14 +170,14 @@
static switch_status_t woomera_on_init(switch_core_session_t *session);
static switch_status_t woomera_on_hangup(switch_core_session_t *session);
-static switch_status_t woomera_on_ring(switch_core_session_t *session);
-static switch_status_t woomera_on_loopback(switch_core_session_t *session);
-static switch_status_t woomera_on_transmit(switch_core_session_t *session);
+static switch_status_t woomera_on_routing(switch_core_session_t *session);
+static switch_status_t woomera_on_exchange_media(switch_core_session_t *session);
+static switch_status_t woomera_on_soft_execute(switch_core_session_t *session);
static switch_call_cause_t woomera_outgoing_channel(switch_core_session_t *session,
switch_caller_profile_t *outbound_profile,
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
-static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
-static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
+static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
+static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
static switch_status_t woomera_kill_channel(switch_core_session_t *session, int sig);
static void tech_destroy(private_object * tech_pvt);
static void woomera_printf(woomera_profile * profile, switch_socket_t * socket, char *fmt, ...);
@@ -238,9 +238,9 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t woomera_on_ring(switch_core_session_t *session)
+static switch_status_t woomera_on_routing(switch_core_session_t *session)
{
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s WOOMERA RING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s WOOMERA ROUTING\n", switch_channel_get_name(switch_core_session_get_channel(session)));
return SWITCH_STATUS_SUCCESS;
}
@@ -310,40 +310,19 @@
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t woomera_on_loopback(switch_core_session_t *session)
+static switch_status_t woomera_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "WOOMERA LOOPBACK\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t woomera_on_transmit(switch_core_session_t *session)
+static switch_status_t woomera_on_soft_execute(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "WOOMERA TRANSMIT\n");
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t woomera_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
-{
- struct private_object *tech_pvt = NULL;
-
- tech_pvt = switch_core_session_get_private(session);
- switch_assert(tech_pvt != NULL);
-
- return switch_socket_waitfor(tech_pvt->read_poll, ms) ? SWITCH_STATUS_FALSE : SWITCH_STATUS_SUCCESS;
-}
-
-static switch_status_t woomera_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
-{
- struct private_object *tech_pvt = NULL;
-
- tech_pvt = switch_core_session_get_private(session);
- switch_assert(tech_pvt != NULL);
-
- return SWITCH_STATUS_SUCCESS;
-// return switch_socket_waitfor(tech_pvt->write_poll, ms);
-}
-
-static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
{
struct private_object *tech_pvt = switch_core_session_get_private(session);
switch_frame_t *pframe;
@@ -379,7 +358,7 @@
return SWITCH_STATUS_FALSE;
}
-static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
struct private_object *tech_pvt = switch_core_session_get_private(session);
switch_size_t len;
@@ -405,11 +384,11 @@
static switch_state_handler_table_t woomera_event_handlers = {
/*.on_init */ woomera_on_init,
- /*.on_ring */ woomera_on_ring,
+ /*.on_routing */ woomera_on_routing,
/*.on_execute */ woomera_on_execute,
/*.on_hangup */ woomera_on_hangup,
- /*.on_loopback */ woomera_on_loopback,
- /*.on_transmit */ woomera_on_transmit
+ /*.on_exchange_media */ woomera_on_exchange_media,
+ /*.on_soft_execute */ woomera_on_soft_execute
};
static switch_io_routines_t woomera_io_routines = {
@@ -417,8 +396,6 @@
/*.read_frame */ woomera_read_frame,
/*.write_frame */ woomera_write_frame,
/*.kill_channel */ woomera_kill_channel,
- /*.waitfor_read */ woomera_waitfor_read,
- /*.waitfor_write */ woomera_waitfor_write
};
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
@@ -1042,9 +1019,9 @@
ptr++;
port = (switch_port_t) atoi(ptr);
}
- /* Move Channel's State Machine to RING */
+ /* Move channel's state machine to ROUTING */
switch_channel_answer(channel);
- switch_channel_set_state(channel, CS_RING);
+ switch_channel_set_state(channel, CS_ROUTING);
if (switch_sockaddr_info_get(&tech_pvt->udpwrite,
ip, SWITCH_UNSPEC, port, 0, switch_core_session_get_pool(tech_pvt->session)) != SWITCH_STATUS_SUCCESS) {
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.c Tue May 13 23:37:33 2008
@@ -255,11 +255,11 @@
static switch_state_handler_table_t state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ NULL,
+ /*.on_routing */ NULL,
/*.on_execute */ NULL,
/*.on_hangup */ my_on_hangup,
- /*.on_loopback */ NULL,
- /*.on_transmit */ NULL
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ NULL
};
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/event_handlers/mod_radius_cdr/mod_radius_cdr.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/event_handlers/mod_radius_cdr/mod_radius_cdr.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/event_handlers/mod_radius_cdr/mod_radius_cdr.c Tue May 13 23:37:33 2008
@@ -130,7 +130,7 @@
return rad_config;
}
-static switch_status_t my_on_ring(switch_core_session_t *session)
+static switch_status_t my_on_routing(switch_core_session_t *session)
{
switch_xml_t cdr;
switch_channel_t *channel = switch_core_session_get_channel(session);
@@ -149,7 +149,7 @@
switch_time_exp_t tm;
char buffer[32];
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "[mod_radius_cdr] Entering my_on_ring\n");
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "[mod_radius_cdr] Entering my_on_routing\n");
rad_config = my_radius_init();
@@ -716,11 +716,11 @@
static const switch_state_handler_table_t state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ my_on_ring,
+ /*.on_routing */ my_on_routing,
/*.on_execute */ NULL,
/*.on_hangup */ my_on_hangup,
- /*.on_loopback */ NULL,
- /*.on_transmit */ NULL
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ NULL
};
SWITCH_MODULE_LOAD_FUNCTION(mod_radius_cdr_load)
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/formats/mod_local_stream/mod_local_stream.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/formats/mod_local_stream/mod_local_stream.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/formats/mod_local_stream/mod_local_stream.c Tue May 13 23:37:33 2008
@@ -170,7 +170,7 @@
(char *)fname,
source->channels,
source->rate,
- SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT, source->pool) != SWITCH_STATUS_SUCCESS) {
+ SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT, NULL) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Can't open %s\n", fname);
switch_yield(1000000);
continue;
@@ -252,7 +252,7 @@
return SWITCH_STATUS_FALSE;
}
- alt_path = switch_mprintf("%s/%d", path, handle->samplerate);
+ alt_path = switch_mprintf("%s%s%d", path, SWITCH_PATH_SEPARATOR, handle->samplerate);
switch_mutex_lock(globals.mutex);
if ((source = switch_core_hash_find(globals.source_hash, alt_path))) {
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/formats/mod_shout/layer3.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/formats/mod_shout/layer3.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/formats/mod_shout/layer3.c Tue May 13 23:37:33 2008
@@ -609,6 +609,7 @@
{
int shift = 1 + gr_info->scalefac_scale;
real *xrpnt = (real *) xr;
+ real *toomuch = (real *) xr + (SBLIMIT * SBLIMIT * sizeof(real));
int l[3], l3;
int part2remain = gr_info->part2_3_length - part2bits;
int *me;
@@ -668,7 +669,9 @@
register int x, y;
if ((!mc)) {
mc = *m++;
- xrpnt = ((real *) xr) + (*m++);
+ if ((xrpnt = ((real *) xr) + (*m++)) > toomuch) {
+ return 1;
+ }
lwin = *m++;
cb = *m++;
if (lwin == 3) {
@@ -707,7 +710,9 @@
part2remain--;
} else
*xrpnt = 0.0;
- xrpnt += step;
+ if ((xrpnt += step) > toomuch) {
+ return 1;
+ }
if (y == 15) {
max[lwin] = cb;
part2remain -= h->linbits + 1;
@@ -725,7 +730,9 @@
part2remain--;
} else
*xrpnt = 0.0;
- xrpnt += step;
+ if ((xrpnt += step) > toomuch) {
+ return 1;
+ }
}
}
for (; l3 && (part2remain > 0); l3--) {
@@ -747,7 +754,9 @@
if (!(i & 1)) {
if (!mc) {
mc = *m++;
- xrpnt = ((real *) xr) + (*m++);
+ if ((xrpnt = ((real *) xr) + (*m++)) > toomuch) {
+ return 1;
+ }
lwin = *m++;
cb = *m++;
if (lwin == 3) {
@@ -773,14 +782,18 @@
*xrpnt = v;
} else
*xrpnt = 0.0;
- xrpnt += step;
+ if ((xrpnt += step) > toomuch) {
+ return 1;
+ }
}
}
while (m < me) {
if (!mc) {
mc = *m++;
- xrpnt = ((real *) xr) + *m++;
+ if ((xrpnt = ((real *) xr) + *m++) > toomuch) {
+ return 1;
+ }
if ((*m++) == 3)
step = 1;
else
@@ -789,9 +802,13 @@
}
mc--;
*xrpnt = 0.0;
- xrpnt += step;
+ if ((xrpnt += step) > toomuch) {
+ return 1;
+ }
*xrpnt = 0.0;
- xrpnt += step;
+ if ((xrpnt += step) > toomuch) {
+ return 1;
+ }
/* we could add a little opt. here:
* if we finished a band for window 3 or a long band
* further bands could copied in a simple loop without a
@@ -863,6 +880,11 @@
x = y >> 4;
y &= 0xf;
}
+
+ if (xrpnt >= toomuch) {
+ return 1;
+ }
+
if (x == 15) {
max = cb;
part2remain -= h->linbits + 1;
@@ -971,7 +993,7 @@
#if 0
static int III_dequantize_sample_ms(real xr[2][SBLIMIT][SSLIMIT], int *scf, struct gr_info_s *gr_info, int sfreq, int part2bits)
-{
+{ma
int shift = 1 + gr_info->scalefac_scale;
real *xrpnt = (real *) xr[1];
real *xr0pnt = (real *) xr[0];
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/CoreSession.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/CoreSession.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/CoreSession.java Tue May 13 23:37:33 2008
@@ -117,6 +117,10 @@
return freeswitchJNI.CoreSession_getVariable(swigCPtr, this, var);
}
+ public SWIGTYPE_p_switch_status_t process_callback_result(String ret) {
+ return new SWIGTYPE_p_switch_status_t(freeswitchJNI.CoreSession_process_callback_result(swigCPtr, this, ret), true);
+ }
+
public int recordFile(String file_name, int max_len, int silence_threshold, int silence_secs) {
return freeswitchJNI.CoreSession_recordFile__SWIG_0(swigCPtr, this, file_name, max_len, silence_threshold, silence_secs);
}
@@ -213,6 +217,14 @@
freeswitchJNI.CoreSession_sendEvent(swigCPtr, this, Event.getCPtr(sendME), sendME);
}
+ public void setEventData(Event e) {
+ freeswitchJNI.CoreSession_setEventData(swigCPtr, this, Event.getCPtr(e), e);
+ }
+
+ public String getXMLCDR() {
+ return freeswitchJNI.CoreSession_getXMLCDR(swigCPtr, this);
+ }
+
public boolean begin_allow_threads() {
return freeswitchJNI.CoreSession_begin_allow_threads(swigCPtr, this);
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java Tue May 13 23:37:33 2008
@@ -80,6 +80,7 @@
public final static native void CoreSession_setPrivate(long jarg1, CoreSession jarg1_, String jarg2, long jarg3);
public final static native long CoreSession_getPrivate(long jarg1, CoreSession jarg1_, String jarg2);
public final static native String CoreSession_getVariable(long jarg1, CoreSession jarg1_, String jarg2);
+ public final static native long CoreSession_process_callback_result(long jarg1, CoreSession jarg1_, String jarg2);
public final static native int CoreSession_recordFile__SWIG_0(long jarg1, CoreSession jarg1_, String jarg2, int jarg3, int jarg4, int jarg5);
public final static native int CoreSession_recordFile__SWIG_1(long jarg1, CoreSession jarg1_, String jarg2, int jarg3, int jarg4);
public final static native int CoreSession_recordFile__SWIG_2(long jarg1, CoreSession jarg1_, String jarg2, int jarg3);
@@ -104,6 +105,8 @@
public final static native boolean CoreSession_ready(long jarg1, CoreSession jarg1_);
public final static native void CoreSession_execute(long jarg1, CoreSession jarg1_, String jarg2, String jarg3);
public final static native void CoreSession_sendEvent(long jarg1, CoreSession jarg1_, long jarg2, Event jarg2_);
+ public final static native void CoreSession_setEventData(long jarg1, CoreSession jarg1_, long jarg2, Event jarg2_);
+ public final static native String CoreSession_getXMLCDR(long jarg1, CoreSession jarg1_);
public final static native boolean CoreSession_begin_allow_threads(long jarg1, CoreSession jarg1_);
public final static native boolean CoreSession_end_allow_threads(long jarg1, CoreSession jarg1_);
public final static native String CoreSession_get_uuid(long jarg1, CoreSession jarg1_);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/switch_swig_wrap.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/switch_swig_wrap.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/switch_swig_wrap.cpp Tue May 13 23:37:33 2008
@@ -1453,6 +1453,28 @@
}
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1process_1callback_1result(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jlong jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ switch_status_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ result = (arg1)->process_callback_result(arg2);
+ *(switch_status_t **)&jresult = new switch_status_t((switch_status_t &)result);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ return jresult;
+}
+
+
SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1recordFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jint jarg4, jint jarg5) {
jint jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -2022,6 +2044,35 @@
}
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1setEventData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ Event *arg2 = (Event *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = *(Event **)&jarg2;
+ (arg1)->setEventData(arg2);
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1getXMLCDR(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ result = (char *)(arg1)->getXMLCDR();
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ return jresult;
+}
+
+
SWIGEXPORT jboolean JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1begin_1allow_1threads(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jboolean jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch_lua.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch_lua.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch_lua.cpp Tue May 13 23:37:33 2008
@@ -1,21 +1,23 @@
+
#include <switch.h>
#include "freeswitch_lua.h"
+using namespace LUA;
Session::Session() : CoreSession()
{
- cb_function = cb_arg = hangup_func_str = NULL;
+ cb_function = cb_arg = hangup_func_str = hangup_func_arg = NULL;
hh = mark = 0;
}
Session::Session(char *uuid) : CoreSession(uuid)
{
- cb_function = cb_arg = hangup_func_str = NULL;
+ cb_function = cb_arg = hangup_func_str = hangup_func_arg = NULL;
hh = mark = 0;
}
Session::Session(switch_core_session_t *new_session) : CoreSession(new_session)
{
- cb_function = cb_arg = hangup_func_str = NULL;
+ cb_function = cb_arg = hangup_func_str = hangup_func_arg = NULL;
hh = mark = 0;
}
static switch_status_t lua_hanguphook(switch_core_session_t *session_hungup);
@@ -29,6 +31,7 @@
free(hangup_func_str);
}
+ switch_safe_free(hangup_func_arg);
switch_safe_free(cb_function);
switch_safe_free(cb_arg);
}
@@ -71,7 +74,7 @@
void Session::check_hangup_hook()
{
- if (hangup_func_str && (hook_state == CS_HANGUP || hook_state == CS_RING)) {
+ if (hangup_func_str && (hook_state == CS_HANGUP || hook_state == CS_ROUTING)) {
hh++;
}
}
@@ -80,6 +83,7 @@
{
if (hh && !mark) {
const char *err = NULL;
+ int arg_count = 1;
mark++;
if (!getLUA()) {
@@ -89,7 +93,13 @@
lua_getfield(L, LUA_GLOBALSINDEX, (char *)hangup_func_str);
lua_pushstring(L, hook_state == CS_HANGUP ? "hangup" : "transfer");
- lua_call(L, 1, 1);
+
+ if (hangup_func_arg) {
+ lua_getfield(L, LUA_GLOBALSINDEX, (char *)hangup_func_arg);
+ arg_count++;
+ }
+
+ lua_call(L, arg_count, 1);
err = lua_tostring(L, -1);
if (!switch_strlen_zero(err)) {
@@ -115,14 +125,18 @@
}
-void Session::setHangupHook(char *func) {
+void Session::setHangupHook(char *func, char *arg) {
sanity_check_noreturn;
switch_safe_free(hangup_func_str);
-
+ switch_safe_free(hangup_func_arg);
+
if (func) {
hangup_func_str = strdup(func);
+ if (!switch_strlen_zero(arg)) {
+ hangup_func_arg = strdup(arg);
+ }
switch_channel_set_private(channel, "CoreSession", this);
hook_state = switch_channel_get_state(channel);
switch_core_event_hook_add_state_change(session, lua_hanguphook);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch_lua.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch_lua.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch_lua.h Tue May 13 23:37:33 2008
@@ -10,6 +10,7 @@
#include <switch_cpp.h>
+namespace LUA {
class Session : public CoreSession {
private:
virtual void do_hangup_hook();
@@ -29,13 +30,14 @@
virtual switch_status_t run_dtmf_callback(void *input, switch_input_type_t itype);
void setInputCallback(char *cbfunc, char *funcargs);
- void setHangupHook(char *func);
+ void setHangupHook(char *func, char *arg = NULL);
bool ready();
char *cb_function;
char *cb_arg;
char *hangup_func_str;
+ char *hangup_func_arg;
void setLUA(lua_State *state);
};
-
+}
#endif
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/hack.diff
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/hack.diff (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/hack.diff Tue May 13 23:37:33 2008
@@ -1,29 +1,29 @@
---- hack.cpp 2008-04-29 13:49:22.000000000 -0400
-+++ mod_lua_wrap.cpp 2008-04-29 13:49:10.000000000 -0400
-@@ -4028,7 +4028,7 @@
- SWIG_check_num_args("Session",0,0)
- result = (Session *)new Session();
+--- mod_lua_wrap.cpp 2008-05-11 20:03:58.000000000 -0400
++++ mod_lua_wrap2.cpp 2008-05-11 20:05:08.000000000 -0400
+@@ -5158,7 +5158,7 @@
+ SWIG_check_num_args("LUA::Session",0,0)
+ result = (LUA::Session *)new LUA::Session();
SWIG_arg=0;
-- SWIG_NewPointerObj(L,result,SWIGTYPE_p_Session,1); SWIG_arg++;
-+ SWIG_NewPointerObj(L,result,SWIGTYPE_p_Session,1); SWIG_arg++; result->setLUA(L);
+- SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++;
++ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L);
return SWIG_arg;
if(0) SWIG_fail;
-@@ -4049,7 +4049,7 @@
+@@ -5179,7 +5179,7 @@
arg1 = (char *)lua_tostring(L, 1);
- result = (Session *)new Session(arg1);
+ result = (LUA::Session *)new LUA::Session(arg1);
SWIG_arg=0;
-- SWIG_NewPointerObj(L,result,SWIGTYPE_p_Session,1); SWIG_arg++;
-+ SWIG_NewPointerObj(L,result,SWIGTYPE_p_Session,1); SWIG_arg++; result->setLUA(L);
+- SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++;
++ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L);
return SWIG_arg;
if(0) SWIG_fail;
-@@ -4074,7 +4074,7 @@
+@@ -5204,7 +5204,7 @@
- result = (Session *)new Session(arg1);
+ result = (LUA::Session *)new LUA::Session(arg1);
SWIG_arg=0;
-- SWIG_NewPointerObj(L,result,SWIGTYPE_p_Session,1); SWIG_arg++;
-+ SWIG_NewPointerObj(L,result,SWIGTYPE_p_Session,1); SWIG_arg++; result->setLUA(L);
+- SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++;
++ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L);
return SWIG_arg;
if(0) SWIG_fail;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.2008.vcproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.2008.vcproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.2008.vcproj Tue May 13 23:37:33 2008
@@ -270,7 +270,7 @@
>
</File>
<File
- RelativePath=".\mod_lua.c"
+ RelativePath=".\mod_lua.cpp"
>
</File>
<File
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.vcproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.vcproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.vcproj Tue May 13 23:37:33 2008
@@ -270,7 +270,7 @@
>
</File>
<File
- RelativePath=".\mod_lua.c"
+ RelativePath=".\mod_lua.cpp"
>
</File>
<File
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua_wrap.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua_wrap.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua_wrap.cpp Tue May 13 23:37:33 2008
@@ -1488,7 +1488,7 @@
#define SWIGTYPE_p_CoreSession swig_types[1]
#define SWIGTYPE_p_Event swig_types[2]
#define SWIGTYPE_p_IVRMenu swig_types[3]
-#define SWIGTYPE_p_Session swig_types[4]
+#define SWIGTYPE_p_LUA__Session swig_types[4]
#define SWIGTYPE_p_Stream swig_types[5]
#define SWIGTYPE_p_input_callback_state swig_types[6]
#define SWIGTYPE_p_lua_State swig_types[7]
@@ -3719,6 +3719,37 @@
}
+static int _wrap_CoreSession_process_callback_result(lua_State* L) {
+ int SWIG_arg = -1;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ switch_status_t result;
+
+ SWIG_check_num_args("process_callback_result",2,2)
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("process_callback_result",1,"CoreSession *");
+ if(!lua_isstring(L,2)) SWIG_fail_arg("process_callback_result",2,"char *");
+
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_CoreSession,0))){
+ SWIG_fail_ptr("CoreSession_process_callback_result",1,SWIGTYPE_p_CoreSession);
+ }
+
+ arg2 = (char *)lua_tostring(L, 2);
+ result = (arg1)->process_callback_result(arg2);
+ SWIG_arg=0;
+ {
+ switch_status_t * resultptr = new switch_status_t((switch_status_t &) result);
+ SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_switch_status_t,1); SWIG_arg++;
+ }
+ return SWIG_arg;
+
+ if(0) SWIG_fail;
+
+fail:
+ lua_error(L);
+ return SWIG_arg;
+}
+
+
static int _wrap_CoreSession_recordFile__SWIG_0(lua_State* L) {
int SWIG_arg = -1;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -4726,6 +4757,62 @@
}
+static int _wrap_CoreSession_setEventData(lua_State* L) {
+ int SWIG_arg = -1;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ Event *arg2 = (Event *) 0 ;
+
+ SWIG_check_num_args("setEventData",2,2)
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setEventData",1,"CoreSession *");
+ if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("setEventData",2,"Event *");
+
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_CoreSession,0))){
+ SWIG_fail_ptr("CoreSession_setEventData",1,SWIGTYPE_p_CoreSession);
+ }
+
+
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Event,0))){
+ SWIG_fail_ptr("CoreSession_setEventData",2,SWIGTYPE_p_Event);
+ }
+
+ (arg1)->setEventData(arg2);
+ SWIG_arg=0;
+
+ return SWIG_arg;
+
+ if(0) SWIG_fail;
+
+fail:
+ lua_error(L);
+ return SWIG_arg;
+}
+
+
+static int _wrap_CoreSession_getXMLCDR(lua_State* L) {
+ int SWIG_arg = -1;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *result = 0 ;
+
+ SWIG_check_num_args("getXMLCDR",1,1)
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("getXMLCDR",1,"CoreSession *");
+
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_CoreSession,0))){
+ SWIG_fail_ptr("CoreSession_getXMLCDR",1,SWIGTYPE_p_CoreSession);
+ }
+
+ result = (char *)(arg1)->getXMLCDR();
+ SWIG_arg=0;
+ lua_pushstring(L,(const char*)result); SWIG_arg++;
+ return SWIG_arg;
+
+ if(0) SWIG_fail;
+
+fail:
+ lua_error(L);
+ return SWIG_arg;
+}
+
+
static int _wrap_CoreSession_begin_allow_threads(lua_State* L) {
int SWIG_arg = -1;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -4905,6 +4992,7 @@
{"setPrivate", _wrap_CoreSession_setPrivate},
{"getPrivate", _wrap_CoreSession_getPrivate},
{"getVariable", _wrap_CoreSession_getVariable},
+ {"process_callback_result", _wrap_CoreSession_process_callback_result},
{"recordFile", _wrap_CoreSession_recordFile},
{"setCallerData", _wrap_CoreSession_setCallerData},
{"originate", _wrap_CoreSession_originate},
@@ -4924,6 +5012,8 @@
{"ready", _wrap_CoreSession_ready},
{"execute", _wrap_CoreSession_execute},
{"sendEvent", _wrap_CoreSession_sendEvent},
+ {"setEventData", _wrap_CoreSession_setEventData},
+ {"getXMLCDR", _wrap_CoreSession_getXMLCDR},
{"begin_allow_threads", _wrap_CoreSession_begin_allow_threads},
{"end_allow_threads", _wrap_CoreSession_end_allow_threads},
{"get_uuid", _wrap_CoreSession_get_uuid},
@@ -5095,12 +5185,12 @@
static int _wrap_new_Session__SWIG_0(lua_State* L) {
int SWIG_arg = -1;
- Session *result = 0 ;
+ LUA::Session *result = 0 ;
- SWIG_check_num_args("Session",0,0)
- result = (Session *)new Session();
+ SWIG_check_num_args("LUA::Session",0,0)
+ result = (LUA::Session *)new LUA::Session();
SWIG_arg=0;
- SWIG_NewPointerObj(L,result,SWIGTYPE_p_Session,1); SWIG_arg++; result->setLUA(L);
+ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L);
return SWIG_arg;
if(0) SWIG_fail;
@@ -5114,14 +5204,14 @@
static int _wrap_new_Session__SWIG_1(lua_State* L) {
int SWIG_arg = -1;
char *arg1 = (char *) 0 ;
- Session *result = 0 ;
+ LUA::Session *result = 0 ;
- SWIG_check_num_args("Session",1,1)
- if(!lua_isstring(L,1)) SWIG_fail_arg("Session",1,"char *");
+ SWIG_check_num_args("LUA::Session",1,1)
+ if(!lua_isstring(L,1)) SWIG_fail_arg("LUA::Session",1,"char *");
arg1 = (char *)lua_tostring(L, 1);
- result = (Session *)new Session(arg1);
+ result = (LUA::Session *)new LUA::Session(arg1);
SWIG_arg=0;
- SWIG_NewPointerObj(L,result,SWIGTYPE_p_Session,1); SWIG_arg++; result->setLUA(L);
+ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L);
return SWIG_arg;
if(0) SWIG_fail;
@@ -5135,18 +5225,18 @@
static int _wrap_new_Session__SWIG_2(lua_State* L) {
int SWIG_arg = -1;
switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
- Session *result = 0 ;
+ LUA::Session *result = 0 ;
- SWIG_check_num_args("Session",1,1)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Session",1,"switch_core_session_t *");
+ SWIG_check_num_args("LUA::Session",1,1)
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("LUA::Session",1,"switch_core_session_t *");
if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_switch_core_session_t,0))){
SWIG_fail_ptr("new_Session",1,SWIGTYPE_p_switch_core_session_t);
}
- result = (Session *)new Session(arg1);
+ result = (LUA::Session *)new LUA::Session(arg1);
SWIG_arg=0;
- SWIG_NewPointerObj(L,result,SWIGTYPE_p_Session,1); SWIG_arg++; result->setLUA(L);
+ SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__Session,1); SWIG_arg++; result->setLUA(L);
return SWIG_arg;
if(0) SWIG_fail;
@@ -5198,13 +5288,13 @@
static int _wrap_delete_Session(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
- SWIG_check_num_args("Session",1,1)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Session",1,"Session *");
+ SWIG_check_num_args("LUA::~Session",1,1)
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("LUA::~Session",1,"LUA::Session *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,SWIG_POINTER_DISOWN))){
- SWIG_fail_ptr("delete_Session",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,SWIG_POINTER_DISOWN))){
+ SWIG_fail_ptr("delete_Session",1,SWIGTYPE_p_LUA__Session);
}
delete arg1;
@@ -5223,14 +5313,14 @@
static int _wrap_Session_begin_allow_threads(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
bool result;
SWIG_check_num_args("begin_allow_threads",1,1)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("begin_allow_threads",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("begin_allow_threads",1,"LUA::Session *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_begin_allow_threads",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_begin_allow_threads",1,SWIGTYPE_p_LUA__Session);
}
result = (bool)(arg1)->begin_allow_threads();
@@ -5248,14 +5338,14 @@
static int _wrap_Session_end_allow_threads(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
bool result;
SWIG_check_num_args("end_allow_threads",1,1)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("end_allow_threads",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("end_allow_threads",1,"LUA::Session *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_end_allow_threads",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_end_allow_threads",1,SWIGTYPE_p_LUA__Session);
}
result = (bool)(arg1)->end_allow_threads();
@@ -5273,13 +5363,13 @@
static int _wrap_Session_check_hangup_hook(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
SWIG_check_num_args("check_hangup_hook",1,1)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("check_hangup_hook",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("check_hangup_hook",1,"LUA::Session *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_check_hangup_hook",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_check_hangup_hook",1,SWIGTYPE_p_LUA__Session);
}
(arg1)->check_hangup_hook();
@@ -5297,19 +5387,19 @@
static int _wrap_Session_run_dtmf_callback(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
void *arg2 = (void *) 0 ;
switch_input_type_t arg3 ;
switch_status_t result;
switch_input_type_t *argp3 ;
SWIG_check_num_args("run_dtmf_callback",3,3)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("run_dtmf_callback",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("run_dtmf_callback",1,"LUA::Session *");
if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("run_dtmf_callback",2,"void *");
if(!lua_isuserdata(L,3)) SWIG_fail_arg("run_dtmf_callback",3,"switch_input_type_t");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_run_dtmf_callback",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_run_dtmf_callback",1,SWIGTYPE_p_LUA__Session);
}
arg2=(void *)SWIG_MustGetPtr(L,2,0,0,2,"Session_run_dtmf_callback");
@@ -5337,17 +5427,17 @@
static int _wrap_Session_setInputCallback(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
char *arg2 = (char *) 0 ;
char *arg3 = (char *) 0 ;
SWIG_check_num_args("setInputCallback",3,3)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setInputCallback",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setInputCallback",1,"LUA::Session *");
if(!lua_isstring(L,2)) SWIG_fail_arg("setInputCallback",2,"char *");
if(!lua_isstring(L,3)) SWIG_fail_arg("setInputCallback",3,"char *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_setInputCallback",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_setInputCallback",1,SWIGTYPE_p_LUA__Session);
}
arg2 = (char *)lua_tostring(L, 2);
@@ -5365,17 +5455,47 @@
}
-static int _wrap_Session_setHangupHook(lua_State* L) {
+static int _wrap_Session_setHangupHook__SWIG_0(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+
+ SWIG_check_num_args("setHangupHook",3,3)
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setHangupHook",1,"LUA::Session *");
+ if(!lua_isstring(L,2)) SWIG_fail_arg("setHangupHook",2,"char *");
+ if(!lua_isstring(L,3)) SWIG_fail_arg("setHangupHook",3,"char *");
+
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_setHangupHook",1,SWIGTYPE_p_LUA__Session);
+ }
+
+ arg2 = (char *)lua_tostring(L, 2);
+ arg3 = (char *)lua_tostring(L, 3);
+ (arg1)->setHangupHook(arg2,arg3);
+ SWIG_arg=0;
+
+ return SWIG_arg;
+
+ if(0) SWIG_fail;
+
+fail:
+ lua_error(L);
+ return SWIG_arg;
+}
+
+
+static int _wrap_Session_setHangupHook__SWIG_1(lua_State* L) {
+ int SWIG_arg = -1;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
char *arg2 = (char *) 0 ;
SWIG_check_num_args("setHangupHook",2,2)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setHangupHook",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setHangupHook",1,"LUA::Session *");
if(!lua_isstring(L,2)) SWIG_fail_arg("setHangupHook",2,"char *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_setHangupHook",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_setHangupHook",1,SWIGTYPE_p_LUA__Session);
}
arg2 = (char *)lua_tostring(L, 2);
@@ -5392,16 +5512,72 @@
}
+static int _wrap_Session_setHangupHook(lua_State* L) {
+ int argc;
+ int argv[4]={
+ 1,2,3,4
+ };
+
+ argc = lua_gettop(L);
+ if (argc == 2) {
+ int _v;
+ {
+ void *ptr;
+ if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_LUA__Session, 0)) {
+ _v = 0;
+ } else {
+ _v = 1;
+ }
+ }
+ if (_v) {
+ {
+ _v = lua_isstring(L,argv[1]);
+ }
+ if (_v) {
+ return _wrap_Session_setHangupHook__SWIG_1(L);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ void *ptr;
+ if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_LUA__Session, 0)) {
+ _v = 0;
+ } else {
+ _v = 1;
+ }
+ }
+ if (_v) {
+ {
+ _v = lua_isstring(L,argv[1]);
+ }
+ if (_v) {
+ {
+ _v = lua_isstring(L,argv[2]);
+ }
+ if (_v) {
+ return _wrap_Session_setHangupHook__SWIG_0(L);
+ }
+ }
+ }
+ }
+
+ lua_pushstring(L,"No matching function for overloaded 'Session_setHangupHook'");
+ lua_error(L);return 0;
+}
+
+
static int _wrap_Session_ready(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
bool result;
SWIG_check_num_args("ready",1,1)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ready",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ready",1,"LUA::Session *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_ready",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_ready",1,SWIGTYPE_p_LUA__Session);
}
result = (bool)(arg1)->ready();
@@ -5419,15 +5595,15 @@
static int _wrap_Session_cb_function_set(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
char *arg2 = (char *) 0 ;
SWIG_check_num_args("cb_function",2,2)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("cb_function",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("cb_function",1,"LUA::Session *");
if(!lua_isstring(L,2)) SWIG_fail_arg("cb_function",2,"char *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_cb_function_set",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_cb_function_set",1,SWIGTYPE_p_LUA__Session);
}
arg2 = (char *)lua_tostring(L, 2);
@@ -5454,14 +5630,14 @@
static int _wrap_Session_cb_function_get(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
char *result = 0 ;
SWIG_check_num_args("cb_function",1,1)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("cb_function",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("cb_function",1,"LUA::Session *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_cb_function_get",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_cb_function_get",1,SWIGTYPE_p_LUA__Session);
}
result = (char *) ((arg1)->cb_function);
@@ -5479,15 +5655,15 @@
static int _wrap_Session_cb_arg_set(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
char *arg2 = (char *) 0 ;
SWIG_check_num_args("cb_arg",2,2)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("cb_arg",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("cb_arg",1,"LUA::Session *");
if(!lua_isstring(L,2)) SWIG_fail_arg("cb_arg",2,"char *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_cb_arg_set",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_cb_arg_set",1,SWIGTYPE_p_LUA__Session);
}
arg2 = (char *)lua_tostring(L, 2);
@@ -5514,14 +5690,14 @@
static int _wrap_Session_cb_arg_get(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
char *result = 0 ;
SWIG_check_num_args("cb_arg",1,1)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("cb_arg",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("cb_arg",1,"LUA::Session *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_cb_arg_get",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_cb_arg_get",1,SWIGTYPE_p_LUA__Session);
}
result = (char *) ((arg1)->cb_arg);
@@ -5539,15 +5715,15 @@
static int _wrap_Session_hangup_func_str_set(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
char *arg2 = (char *) 0 ;
SWIG_check_num_args("hangup_func_str",2,2)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("hangup_func_str",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("hangup_func_str",1,"LUA::Session *");
if(!lua_isstring(L,2)) SWIG_fail_arg("hangup_func_str",2,"char *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_hangup_func_str_set",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_hangup_func_str_set",1,SWIGTYPE_p_LUA__Session);
}
arg2 = (char *)lua_tostring(L, 2);
@@ -5574,14 +5750,14 @@
static int _wrap_Session_hangup_func_str_get(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
char *result = 0 ;
SWIG_check_num_args("hangup_func_str",1,1)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("hangup_func_str",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("hangup_func_str",1,"LUA::Session *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_hangup_func_str_get",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_hangup_func_str_get",1,SWIGTYPE_p_LUA__Session);
}
result = (char *) ((arg1)->hangup_func_str);
@@ -5597,17 +5773,77 @@
}
+static int _wrap_Session_hangup_func_arg_set(lua_State* L) {
+ int SWIG_arg = -1;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ SWIG_check_num_args("hangup_func_arg",2,2)
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("hangup_func_arg",1,"LUA::Session *");
+ if(!lua_isstring(L,2)) SWIG_fail_arg("hangup_func_arg",2,"char *");
+
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_hangup_func_arg_set",1,SWIGTYPE_p_LUA__Session);
+ }
+
+ arg2 = (char *)lua_tostring(L, 2);
+ {
+ if (arg1->hangup_func_arg) delete [] arg1->hangup_func_arg;
+ if (arg2) {
+ arg1->hangup_func_arg = (char *) (new char[strlen((const char *)arg2)+1]);
+ strcpy((char *)arg1->hangup_func_arg, (const char *)arg2);
+ } else {
+ arg1->hangup_func_arg = 0;
+ }
+ }
+ SWIG_arg=0;
+
+ return SWIG_arg;
+
+ if(0) SWIG_fail;
+
+fail:
+ lua_error(L);
+ return SWIG_arg;
+}
+
+
+static int _wrap_Session_hangup_func_arg_get(lua_State* L) {
+ int SWIG_arg = -1;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
+ char *result = 0 ;
+
+ SWIG_check_num_args("hangup_func_arg",1,1)
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("hangup_func_arg",1,"LUA::Session *");
+
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_hangup_func_arg_get",1,SWIGTYPE_p_LUA__Session);
+ }
+
+ result = (char *) ((arg1)->hangup_func_arg);
+ SWIG_arg=0;
+ lua_pushstring(L,(const char*)result); SWIG_arg++;
+ return SWIG_arg;
+
+ if(0) SWIG_fail;
+
+fail:
+ lua_error(L);
+ return SWIG_arg;
+}
+
+
static int _wrap_Session_setLUA(lua_State* L) {
int SWIG_arg = -1;
- Session *arg1 = (Session *) 0 ;
+ LUA::Session *arg1 = (LUA::Session *) 0 ;
lua_State *arg2 = (lua_State *) 0 ;
arg2 = L;
SWIG_check_num_args("setLUA",1,1)
- if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setLUA",1,"Session *");
+ if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setLUA",1,"LUA::Session *");
- if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Session,0))){
- SWIG_fail_ptr("Session_setLUA",1,SWIGTYPE_p_Session);
+ if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){
+ SWIG_fail_ptr("Session_setLUA",1,SWIGTYPE_p_LUA__Session);
}
(arg1)->setLUA(arg2);
@@ -5624,10 +5860,10 @@
static void swig_delete_Session(void *obj) {
-Session *arg1 = (Session *) obj;
+LUA::Session *arg1 = (LUA::Session *) obj;
delete arg1;
}
-static swig_lua_method swig_Session_methods[] = {
+static swig_lua_method swig_LUA_Session_methods[] = {
{"begin_allow_threads", _wrap_Session_begin_allow_threads},
{"end_allow_threads", _wrap_Session_end_allow_threads},
{"check_hangup_hook", _wrap_Session_check_hangup_hook},
@@ -5638,15 +5874,16 @@
{"setLUA", _wrap_Session_setLUA},
{0,0}
};
-static swig_lua_attribute swig_Session_attributes[] = {
+static swig_lua_attribute swig_LUA_Session_attributes[] = {
{ "cb_function", _wrap_Session_cb_function_get, _wrap_Session_cb_function_set},
{ "cb_arg", _wrap_Session_cb_arg_get, _wrap_Session_cb_arg_set},
{ "hangup_func_str", _wrap_Session_hangup_func_str_get, _wrap_Session_hangup_func_str_set},
+ { "hangup_func_arg", _wrap_Session_hangup_func_arg_get, _wrap_Session_hangup_func_arg_set},
{0,0,0}
};
-static swig_lua_class *swig_Session_bases[] = {0,0};
-static const char *swig_Session_base_names[] = {"CoreSession *",0};
-static swig_lua_class _wrap_class_Session = { "Session", &SWIGTYPE_p_Session,_wrap_new_Session, swig_delete_Session, swig_Session_methods, swig_Session_attributes, swig_Session_bases, swig_Session_base_names };
+static swig_lua_class *swig_LUA_Session_bases[] = {0,0};
+static const char *swig_LUA_Session_base_names[] = {"CoreSession *",0};
+static swig_lua_class _wrap_class_LUA_Session = { "Session", &SWIGTYPE_p_LUA__Session,_wrap_new_Session, swig_delete_Session, swig_LUA_Session_methods, swig_LUA_Session_attributes, swig_LUA_Session_bases, swig_LUA_Session_base_names };
#ifdef __cplusplus
}
@@ -5676,14 +5913,14 @@
/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
-static void *_p_SessionTo_p_CoreSession(void *x, int *newmemory) {
- return (void *)((CoreSession *) ((Session *) x));
+static void *_p_LUA__SessionTo_p_CoreSession(void *x, int *newmemory) {
+ return (void *)((CoreSession *) ((LUA::Session *) x));
}
static swig_type_info _swigt__p_API = {"_p_API", "API *", 0, 0, (void*)&_wrap_class_API, 0};
static swig_type_info _swigt__p_CoreSession = {"_p_CoreSession", "CoreSession *", 0, 0, (void*)&_wrap_class_CoreSession, 0};
static swig_type_info _swigt__p_Event = {"_p_Event", "Event *", 0, 0, (void*)&_wrap_class_Event, 0};
static swig_type_info _swigt__p_IVRMenu = {"_p_IVRMenu", "IVRMenu *", 0, 0, (void*)&_wrap_class_IVRMenu, 0};
-static swig_type_info _swigt__p_Session = {"_p_Session", "Session *", 0, 0, (void*)&_wrap_class_Session, 0};
+static swig_type_info _swigt__p_LUA__Session = {"_p_LUA__Session", "LUA::Session *", 0, 0, (void*)&_wrap_class_LUA_Session, 0};
static swig_type_info _swigt__p_Stream = {"_p_Stream", "Stream *", 0, 0, (void*)&_wrap_class_Stream, 0};
static swig_type_info _swigt__p_input_callback_state = {"_p_input_callback_state", "input_callback_state_t *|input_callback_state *", 0, 0, (void*)&_wrap_class_input_callback_state_t, 0};
static swig_type_info _swigt__p_lua_State = {"_p_lua_State", "lua_State *", 0, 0, (void*)0, 0};
@@ -5704,7 +5941,7 @@
&_swigt__p_CoreSession,
&_swigt__p_Event,
&_swigt__p_IVRMenu,
- &_swigt__p_Session,
+ &_swigt__p_LUA__Session,
&_swigt__p_Stream,
&_swigt__p_input_callback_state,
&_swigt__p_lua_State,
@@ -5722,10 +5959,10 @@
};
static swig_cast_info _swigc__p_API[] = { {&_swigt__p_API, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_CoreSession[] = { {&_swigt__p_CoreSession, 0, 0, 0}, {&_swigt__p_Session, _p_SessionTo_p_CoreSession, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_CoreSession[] = { {&_swigt__p_CoreSession, 0, 0, 0}, {&_swigt__p_LUA__Session, _p_LUA__SessionTo_p_CoreSession, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_Event[] = { {&_swigt__p_Event, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_IVRMenu[] = { {&_swigt__p_IVRMenu, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Session[] = { {&_swigt__p_Session, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_LUA__Session[] = { {&_swigt__p_LUA__Session, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_Stream[] = { {&_swigt__p_Stream, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_input_callback_state[] = { {&_swigt__p_input_callback_state, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_lua_State[] = { {&_swigt__p_lua_State, 0, 0, 0},{0, 0, 0, 0}};
@@ -5746,7 +5983,7 @@
_swigc__p_CoreSession,
_swigc__p_Event,
_swigc__p_IVRMenu,
- _swigc__p_Session,
+ _swigc__p_LUA__Session,
_swigc__p_Stream,
_swigc__p_input_callback_state,
_swigc__p_lua_State,
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/Makefile
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/Makefile (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/Makefile Tue May 13 23:37:33 2008
@@ -16,7 +16,7 @@
mod_perl_wrap.cpp:
swig -static -shadow -perl5 -c++ -DMULTIPLICITY -I../../../../src/include -o mod_perl_wrap.cpp freeswitch.i
echo "#include \"mod_perl_extra.c\"" >> mod_perl_wrap.cpp
- patch -s -p0 -i hack.diff
+ # patch -s -p0 -i hack.diff
@@ -34,6 +34,6 @@
rm -fr *~ .perlok freeswitch.$(DYNAMIC_LIB_EXTEN)
depend_install:
- mkdir -p $(PREFIX)/perl
- $(LTINSTALL) freeswitch.$(DYNAMIC_LIB_EXTEN) freeswitch.pm $(PREFIX)/perl
- if [ ! -f $(PREFIX)/perl/freeswitch.pm ] ; then $(LTINSTALL) freeswitch.pm $(PREFIX)/perl ; fi
+ mkdir -p $(DESTDIR)$(PREFIX)/perl
+ $(LTINSTALL) freeswitch.$(DYNAMIC_LIB_EXTEN) freeswitch.pm $(DESTDIR)$(PREFIX)/perl
+ if [ ! -f $(DESTDIR)$(PREFIX)/perl/freeswitch.pm ] ; then $(LTINSTALL) freeswitch.pm $(DESTDIR)$(PREFIX)/perl ; fi
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch.pm
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch.pm (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch.pm Tue May 13 23:37:33 2008
@@ -307,6 +307,7 @@
*setPrivate = *freeswitchc::CoreSession_setPrivate;
*getPrivate = *freeswitchc::CoreSession_getPrivate;
*getVariable = *freeswitchc::CoreSession_getVariable;
+*process_callback_result = *freeswitchc::CoreSession_process_callback_result;
*recordFile = *freeswitchc::CoreSession_recordFile;
*setCallerData = *freeswitchc::CoreSession_setCallerData;
*originate = *freeswitchc::CoreSession_originate;
@@ -326,6 +327,8 @@
*ready = *freeswitchc::CoreSession_ready;
*execute = *freeswitchc::CoreSession_execute;
*sendEvent = *freeswitchc::CoreSession_sendEvent;
+*setEventData = *freeswitchc::CoreSession_setEventData;
+*getXMLCDR = *freeswitchc::CoreSession_getXMLCDR;
*begin_allow_threads = *freeswitchc::CoreSession_begin_allow_threads;
*end_allow_threads = *freeswitchc::CoreSession_end_allow_threads;
*get_uuid = *freeswitchc::CoreSession_get_uuid;
@@ -382,6 +385,8 @@
*swig_cb_arg_set = *freeswitchc::Session_cb_arg_set;
*swig_hangup_func_str_get = *freeswitchc::Session_hangup_func_str_get;
*swig_hangup_func_str_set = *freeswitchc::Session_hangup_func_str_set;
+*swig_hangup_func_arg_get = *freeswitchc::Session_hangup_func_arg_get;
+*swig_hangup_func_arg_set = *freeswitchc::Session_hangup_func_arg_set;
*setPERL = *freeswitchc::Session_setPERL;
sub DISOWN {
my $self = shift;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch_perl.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch_perl.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch_perl.cpp Tue May 13 23:37:33 2008
@@ -4,7 +4,9 @@
static STRLEN n_a;
-#define init_me() cb_function = hangup_func_str = NULL; hh = mark = 0; my_perl = NULL; cb_arg = NULL
+#define init_me() cb_function = hangup_func_str = NULL; hangup_func_arg = NULL; hh = mark = 0; my_perl = NULL; cb_arg = NULL
+
+using namespace PERL;
Session::Session() : CoreSession()
{
@@ -25,8 +27,14 @@
{
switch_safe_free(cb_function);
switch_safe_free(cb_arg);
+
+ if (session && hangup_func_str) {
+ switch_core_event_hook_remove_state_change(session, perl_hanguphook);
+ }
+
switch_safe_free(hangup_func_str);
- switch_core_event_hook_remove_state_change(session, perl_hanguphook);
+ switch_safe_free(hangup_func_arg);
+
}
bool Session::begin_allow_threads()
@@ -67,7 +75,7 @@
void Session::check_hangup_hook()
{
- if (hangup_func_str && (hook_state == CS_HANGUP || hook_state == CS_RING)) {
+ if (hangup_func_str && (hook_state == CS_HANGUP || hook_state == CS_ROUTING)) {
hh++;
}
}
@@ -82,7 +90,12 @@
return;
}
- code = switch_mprintf("%s(%s)", hangup_func_str, hook_state == CS_HANGUP ? "hangup" : "transfer");
+ if (hangup_func_arg) {
+ code = switch_mprintf("%s(%s,%s)", hangup_func_str, hook_state == CS_HANGUP ? "hangup" : "transfer", hangup_func_arg);
+ } else {
+ code = switch_mprintf("%s(%s)", hangup_func_str, hook_state == CS_HANGUP ? "hangup" : "transfer");
+ }
+
Perl_eval_pv(my_perl, code, TRUE);
free(code);
}
@@ -105,7 +118,7 @@
}
-void Session::setHangupHook(char *func) {
+void Session::setHangupHook(char *func, char *arg) {
sanity_check_noreturn;
@@ -116,6 +129,9 @@
switch_channel_set_private(channel, "CoreSession", this);
hook_state = switch_channel_get_state(channel);
switch_core_event_hook_add_state_change(session, perl_hanguphook);
+ if (arg) {
+ hangup_func_arg = strdup(func);
+ }
}
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch_perl.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch_perl.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch_perl.h Tue May 13 23:37:33 2008
@@ -17,6 +17,7 @@
#include <switch_cpp.h>
+namespace PERL {
class Session : public CoreSession {
private:
virtual void do_hangup_hook();
@@ -36,13 +37,14 @@
virtual switch_status_t run_dtmf_callback(void *input, switch_input_type_t itype);
void setInputCallback(char *cbfunc, char *funcargs);
- void setHangupHook(char *func);
+ void setHangupHook(char *func, char *arg=NULL);
bool ready();
char *cb_function;
char *cb_arg;
char *hangup_func_str;
+ char *hangup_func_arg;
void setPERL(PerlInterpreter *pi);
};
-
+}
#endif
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/hack.diff
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/hack.diff (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/hack.diff Tue May 13 23:37:33 2008
@@ -1,30 +1,29 @@
---- mod_perl_wrap.cpp 2008-05-01 18:05:28.000000000 -0400
-+++ old.cpp 2008-05-01 18:05:51.000000000 -0400
-
-@@ -6293,7 +6293,7 @@
+--- mod_perl_wrap2.cpp 2008-05-11 20:28:24.000000000 -0400
++++ mod_perl_wrap.cpp 2008-05-11 20:26:06.000000000 -0400
+@@ -6754,7 +6754,7 @@
if ((items < 0) || (items > 0)) {
SWIG_croak("Usage: new_Session();");
}
-- result = (Session *)new Session();
-+ result = (Session *)new Session(); result->setPERL(my_perl);
- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+- result = (PERL::Session *)new PERL::Session(); result->setPERL(my_perl);
++ result = (PERL::Session *)new PERL::Session();
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
XSRETURN(argvi);
fail:
-@@ -6320,7 +6320,7 @@
+@@ -6781,7 +6781,7 @@
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Session" "', argument " "1"" of type '" "char *""'");
}
arg1 = reinterpret_cast< char * >(buf1);
-- result = (Session *)new Session(arg1);
-+ result = (Session *)new Session(arg1); result->setPERL(my_perl);
- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+- result = (PERL::Session *)new PERL::Session(arg1); result->setPERL(my_perl);
++ result = (PERL::Session *)new PERL::Session(arg1);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
XSRETURN(argvi);
-@@ -6348,7 +6348,7 @@
+@@ -6809,7 +6809,7 @@
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Session" "', argument " "1"" of type '" "switch_core_session_t *""'");
}
arg1 = reinterpret_cast< switch_core_session_t * >(argp1);
-- result = (Session *)new Session(arg1);
-+ result = (Session *)new Session(arg1); result->setPERL(my_perl);
- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+- result = (PERL::Session *)new PERL::Session(arg1); result->setPERL(my_perl);
++ result = (PERL::Session *)new PERL::Session(arg1);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
XSRETURN(argvi);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl.c Tue May 13 23:37:33 2008
@@ -311,6 +311,12 @@
}
SWITCH_STANDARD_API(perlrun_api_function) {
+
+ if (switch_strlen_zero(cmd)) {
+ stream->write_function(stream, "-ERR Missing args.\n");
+ return SWITCH_STATUS_SUCCESS;
+ }
+
perl_thread(cmd);
stream->write_function(stream, "+OK\n");
return SWITCH_STATUS_SUCCESS;
@@ -319,6 +325,12 @@
SWITCH_STANDARD_API(perl_api_function) {
struct perl_o po = { 0 };
+
+ if (switch_strlen_zero(cmd)) {
+ stream->write_function(stream, "-ERR Missing args.\n");
+ return SWITCH_STATUS_SUCCESS;
+ }
+
po.cmd = strdup(cmd);
po.stream = stream;
po.session = session;
@@ -411,10 +423,14 @@
);
Perl_safe_eval(my_perl, code);
+ if (params) {
+ mod_perl_conjure_event(my_perl, params, "params");
+ }
+
perl_run(my_perl);
- str = SvPV(get_sv("XML_STRING", FALSE), n_a);
+ str = SvPV(get_sv("XML_STRING", TRUE), n_a);
- if (str) {
+ if (!switch_strlen_zero(str)) {
if (switch_strlen_zero(str)) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "No Result\n");
} else if (!(xml = switch_xml_parse_str(str, strlen(str)))) {
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl_wrap.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl_wrap.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl_wrap.cpp Tue May 13 23:37:33 2008
@@ -1450,8 +1450,8 @@
#define SWIGTYPE_p_CoreSession swig_types[1]
#define SWIGTYPE_p_Event swig_types[2]
#define SWIGTYPE_p_IVRMenu swig_types[3]
-#define SWIGTYPE_p_PerlInterpreter swig_types[4]
-#define SWIGTYPE_p_Session swig_types[5]
+#define SWIGTYPE_p_PERL__Session swig_types[4]
+#define SWIGTYPE_p_PerlInterpreter swig_types[5]
#define SWIGTYPE_p_Stream swig_types[6]
#define SWIGTYPE_p_char swig_types[7]
#define SWIGTYPE_p_input_callback_state swig_types[8]
@@ -4661,6 +4661,45 @@
}
+XS(_wrap_CoreSession_process_callback_result) {
+ {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ switch_status_t result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: CoreSession_process_callback_result(self,ret);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_process_callback_result" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_process_callback_result" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (arg1)->process_callback_result(arg2);
+ ST(argvi) = SWIG_NewPointerObj((new switch_status_t(static_cast< const switch_status_t& >(result))), SWIGTYPE_p_switch_status_t, SWIG_POINTER_OWN | 0); argvi++ ;
+
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_CoreSession_recordFile__SWIG_0) {
{
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -6243,6 +6282,71 @@
}
+XS(_wrap_CoreSession_setEventData) {
+ {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ Event *arg2 = (Event *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: CoreSession_setEventData(self,e);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_setEventData" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_setEventData" "', argument " "2"" of type '" "Event *""'");
+ }
+ arg2 = reinterpret_cast< Event * >(argp2);
+ (arg1)->setEventData(arg2);
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_CoreSession_getXMLCDR) {
+ {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: CoreSession_getXMLCDR(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_getXMLCDR" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ result = (char *)(arg1)->getXMLCDR();
+ ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_CoreSession_begin_allow_threads) {
{
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -6643,15 +6747,15 @@
XS(_wrap_new_Session__SWIG_0) {
{
- Session *result = 0 ;
+ PERL::Session *result = 0 ;
int argvi = 0;
dXSARGS;
if ((items < 0) || (items > 0)) {
SWIG_croak("Usage: new_Session();");
}
- result = (Session *)new Session(); result->setPERL(my_perl);
- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+ result = (PERL::Session *)new PERL::Session();
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
XSRETURN(argvi);
fail:
SWIG_croak_null();
@@ -6662,7 +6766,7 @@
XS(_wrap_new_Session__SWIG_1) {
{
char *arg1 = (char *) 0 ;
- Session *result = 0 ;
+ PERL::Session *result = 0 ;
int res1 ;
char *buf1 = 0 ;
int alloc1 = 0 ;
@@ -6677,8 +6781,8 @@
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Session" "', argument " "1"" of type '" "char *""'");
}
arg1 = reinterpret_cast< char * >(buf1);
- result = (Session *)new Session(arg1); result->setPERL(my_perl);
- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+ result = (PERL::Session *)new PERL::Session(arg1);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
XSRETURN(argvi);
fail:
@@ -6691,7 +6795,7 @@
XS(_wrap_new_Session__SWIG_2) {
{
switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
- Session *result = 0 ;
+ PERL::Session *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
int argvi = 0;
@@ -6705,8 +6809,8 @@
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Session" "', argument " "1"" of type '" "switch_core_session_t *""'");
}
arg1 = reinterpret_cast< switch_core_session_t * >(argp1);
- result = (Session *)new Session(arg1); result->setPERL(my_perl);
- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+ result = (PERL::Session *)new PERL::Session(arg1);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PERL__Session, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
XSRETURN(argvi);
fail:
@@ -6789,7 +6893,7 @@
XS(_wrap_delete_Session) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
int argvi = 0;
@@ -6798,11 +6902,11 @@
if ((items < 1) || (items > 1)) {
SWIG_croak("Usage: delete_Session(self);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, SWIG_POINTER_DISOWN | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, SWIG_POINTER_DISOWN | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Session" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Session" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
delete arg1;
@@ -6817,7 +6921,7 @@
XS(_wrap_Session_begin_allow_threads) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
bool result;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -6827,11 +6931,11 @@
if ((items < 1) || (items > 1)) {
SWIG_croak("Usage: Session_begin_allow_threads(self);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_begin_allow_threads" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_begin_allow_threads" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
result = (bool)(arg1)->begin_allow_threads();
ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ;
@@ -6845,7 +6949,7 @@
XS(_wrap_Session_end_allow_threads) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
bool result;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -6855,11 +6959,11 @@
if ((items < 1) || (items > 1)) {
SWIG_croak("Usage: Session_end_allow_threads(self);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_end_allow_threads" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_end_allow_threads" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
result = (bool)(arg1)->end_allow_threads();
ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ;
@@ -6873,7 +6977,7 @@
XS(_wrap_Session_check_hangup_hook) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
int argvi = 0;
@@ -6882,11 +6986,11 @@
if ((items < 1) || (items > 1)) {
SWIG_croak("Usage: Session_check_hangup_hook(self);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_check_hangup_hook" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_check_hangup_hook" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
(arg1)->check_hangup_hook();
@@ -6900,7 +7004,7 @@
XS(_wrap_Session_run_dtmf_callback) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
void *arg2 = (void *) 0 ;
switch_input_type_t arg3 ;
switch_status_t result;
@@ -6915,11 +7019,11 @@
if ((items < 3) || (items > 3)) {
SWIG_croak("Usage: Session_run_dtmf_callback(self,input,itype);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_run_dtmf_callback" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_run_dtmf_callback" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
res2 = SWIG_ConvertPtr(ST(1),SWIG_as_voidptrptr(&arg2), 0, 0);
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Session_run_dtmf_callback" "', argument " "2"" of type '" "void *""'");
@@ -6950,7 +7054,7 @@
XS(_wrap_Session_setInputCallback) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
char *arg2 = (char *) 0 ;
char *arg3 = (char *) 0 ;
void *argp1 = 0 ;
@@ -6967,11 +7071,11 @@
if ((items < 3) || (items > 3)) {
SWIG_croak("Usage: Session_setInputCallback(self,cbfunc,funcargs);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setInputCallback" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setInputCallback" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Session_setInputCallback" "', argument " "2"" of type '" "char *""'");
@@ -6997,9 +7101,58 @@
}
-XS(_wrap_Session_setHangupHook) {
+XS(_wrap_Session_setHangupHook__SWIG_0) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 3) || (items > 3)) {
+ SWIG_croak("Usage: Session_setHangupHook(self,func,arg);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setHangupHook" "', argument " "1"" of type '" "PERL::Session *""'");
+ }
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Session_setHangupHook" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Session_setHangupHook" "', argument " "3"" of type '" "char *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ (arg1)->setHangupHook(arg2,arg3);
+
+
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_Session_setHangupHook__SWIG_1) {
+ {
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
char *arg2 = (char *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -7012,11 +7165,11 @@
if ((items < 2) || (items > 2)) {
SWIG_croak("Usage: Session_setHangupHook(self,func);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setHangupHook" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setHangupHook" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Session_setHangupHook" "', argument " "2"" of type '" "char *""'");
@@ -7035,9 +7188,95 @@
}
+XS(_wrap_Session_setHangupHook) {
+ dXSARGS;
+
+ {
+ unsigned long _index = 0;
+ SWIG_TypeRank _rank = 0;
+ if (items == 2) {
+ SWIG_TypeRank _ranki = 0;
+ SWIG_TypeRank _rankm = 0;
+ SWIG_TypeRank _pi = 1;
+ int _v = 0;
+ {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_PERL__Session, 0);
+ _v = SWIG_CheckState(res);
+ }
+ if (!_v) goto check_1;
+ _ranki += _v*_pi;
+ _rankm += _pi;
+ _pi *= SWIG_MAXCASTRANK;
+ {
+ int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ }
+ if (!_v) goto check_1;
+ _ranki += _v*_pi;
+ _rankm += _pi;
+ _pi *= SWIG_MAXCASTRANK;
+ if (!_index || (_ranki < _rank)) {
+ _rank = _ranki; _index = 1;
+ if (_rank == _rankm) goto dispatch;
+ }
+ }
+ check_1:
+
+ if (items == 3) {
+ SWIG_TypeRank _ranki = 0;
+ SWIG_TypeRank _rankm = 0;
+ SWIG_TypeRank _pi = 1;
+ int _v = 0;
+ {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_PERL__Session, 0);
+ _v = SWIG_CheckState(res);
+ }
+ if (!_v) goto check_2;
+ _ranki += _v*_pi;
+ _rankm += _pi;
+ _pi *= SWIG_MAXCASTRANK;
+ {
+ int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ }
+ if (!_v) goto check_2;
+ _ranki += _v*_pi;
+ _rankm += _pi;
+ _pi *= SWIG_MAXCASTRANK;
+ {
+ int res = SWIG_AsCharPtrAndSize(ST(2), 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ }
+ if (!_v) goto check_2;
+ _ranki += _v*_pi;
+ _rankm += _pi;
+ _pi *= SWIG_MAXCASTRANK;
+ if (!_index || (_ranki < _rank)) {
+ _rank = _ranki; _index = 2;
+ if (_rank == _rankm) goto dispatch;
+ }
+ }
+ check_2:
+
+ dispatch:
+ switch(_index) {
+ case 1:
+ ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Session_setHangupHook__SWIG_1); return;
+ case 2:
+ ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Session_setHangupHook__SWIG_0); return;
+ }
+ }
+
+ croak("No matching function for overloaded 'Session_setHangupHook'");
+ XSRETURN(0);
+}
+
+
XS(_wrap_Session_ready) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
bool result;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -7047,11 +7286,11 @@
if ((items < 1) || (items > 1)) {
SWIG_croak("Usage: Session_ready(self);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_ready" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_ready" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
result = (bool)(arg1)->ready();
ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ;
@@ -7065,7 +7304,7 @@
XS(_wrap_Session_cb_function_set) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
char *arg2 = (char *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -7078,11 +7317,11 @@
if ((items < 2) || (items > 2)) {
SWIG_croak("Usage: Session_cb_function_set(self,cb_function);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_function_set" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_function_set" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Session_cb_function_set" "', argument " "2"" of type '" "char *""'");
@@ -7109,7 +7348,7 @@
XS(_wrap_Session_cb_function_get) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
char *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -7119,11 +7358,11 @@
if ((items < 1) || (items > 1)) {
SWIG_croak("Usage: Session_cb_function_get(self);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_function_get" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_function_get" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
result = (char *) ((arg1)->cb_function);
ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
@@ -7137,7 +7376,7 @@
XS(_wrap_Session_cb_arg_set) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
char *arg2 = (char *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -7150,11 +7389,11 @@
if ((items < 2) || (items > 2)) {
SWIG_croak("Usage: Session_cb_arg_set(self,cb_arg);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_arg_set" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_arg_set" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Session_cb_arg_set" "', argument " "2"" of type '" "char *""'");
@@ -7181,7 +7420,7 @@
XS(_wrap_Session_cb_arg_get) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
char *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -7191,11 +7430,11 @@
if ((items < 1) || (items > 1)) {
SWIG_croak("Usage: Session_cb_arg_get(self);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_arg_get" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_arg_get" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
result = (char *) ((arg1)->cb_arg);
ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
@@ -7209,7 +7448,7 @@
XS(_wrap_Session_hangup_func_str_set) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
char *arg2 = (char *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -7222,11 +7461,11 @@
if ((items < 2) || (items > 2)) {
SWIG_croak("Usage: Session_hangup_func_str_set(self,hangup_func_str);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_hangup_func_str_set" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_hangup_func_str_set" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Session_hangup_func_str_set" "', argument " "2"" of type '" "char *""'");
@@ -7253,7 +7492,7 @@
XS(_wrap_Session_hangup_func_str_get) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
char *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -7263,11 +7502,11 @@
if ((items < 1) || (items > 1)) {
SWIG_croak("Usage: Session_hangup_func_str_get(self);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_hangup_func_str_get" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_hangup_func_str_get" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
result = (char *) ((arg1)->hangup_func_str);
ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
@@ -7279,9 +7518,81 @@
}
+XS(_wrap_Session_hangup_func_arg_set) {
+ {
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: Session_hangup_func_arg_set(self,hangup_func_arg);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_hangup_func_arg_set" "', argument " "1"" of type '" "PERL::Session *""'");
+ }
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Session_hangup_func_arg_set" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ if (arg1->hangup_func_arg) delete[] arg1->hangup_func_arg;
+ if (arg2) {
+ size_t size = strlen(reinterpret_cast< const char * >(arg2)) + 1;
+ arg1->hangup_func_arg = (char *)reinterpret_cast< char* >(memcpy((new char[size]), reinterpret_cast< const char * >(arg2), sizeof(char)*(size)));
+ } else {
+ arg1->hangup_func_arg = 0;
+ }
+
+
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_Session_hangup_func_arg_get) {
+ {
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: Session_hangup_func_arg_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_hangup_func_arg_get" "', argument " "1"" of type '" "PERL::Session *""'");
+ }
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
+ result = (char *) ((arg1)->hangup_func_arg);
+ ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_Session_setPERL) {
{
- Session *arg1 = (Session *) 0 ;
+ PERL::Session *arg1 = (PERL::Session *) 0 ;
PerlInterpreter *arg2 = (PerlInterpreter *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -7293,11 +7604,11 @@
if ((items < 2) || (items > 2)) {
SWIG_croak("Usage: Session_setPERL(self,pi);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Session, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setPERL" "', argument " "1"" of type '" "Session *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setPERL" "', argument " "1"" of type '" "PERL::Session *""'");
}
- arg1 = reinterpret_cast< Session * >(argp1);
+ arg1 = reinterpret_cast< PERL::Session * >(argp1);
res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_PerlInterpreter, 0 | 0 );
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Session_setPERL" "', argument " "2"" of type '" "PerlInterpreter *""'");
@@ -7319,15 +7630,15 @@
/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
-static void *_p_SessionTo_p_CoreSession(void *x, int *newmemory) {
- return (void *)((CoreSession *) ((Session *) x));
+static void *_p_PERL__SessionTo_p_CoreSession(void *x, int *newmemory) {
+ return (void *)((CoreSession *) ((PERL::Session *) x));
}
static swig_type_info _swigt__p_API = {"_p_API", "API *", 0, 0, (void*)"freeswitch::API", 0};
static swig_type_info _swigt__p_CoreSession = {"_p_CoreSession", "CoreSession *", 0, 0, (void*)"freeswitch::CoreSession", 0};
static swig_type_info _swigt__p_Event = {"_p_Event", "Event *", 0, 0, (void*)"freeswitch::Event", 0};
static swig_type_info _swigt__p_IVRMenu = {"_p_IVRMenu", "IVRMenu *", 0, 0, (void*)"freeswitch::IVRMenu", 0};
+static swig_type_info _swigt__p_PERL__Session = {"_p_PERL__Session", "PERL::Session *", 0, 0, (void*)"freeswitch::Session", 0};
static swig_type_info _swigt__p_PerlInterpreter = {"_p_PerlInterpreter", "PerlInterpreter *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_Session = {"_p_Session", "Session *", 0, 0, (void*)"freeswitch::Session", 0};
static swig_type_info _swigt__p_Stream = {"_p_Stream", "Stream *", 0, 0, (void*)"freeswitch::Stream", 0};
static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_input_callback_state = {"_p_input_callback_state", "input_callback_state_t *|input_callback_state *", 0, 0, (void*)"freeswitch::input_callback_state_t", 0};
@@ -7348,8 +7659,8 @@
&_swigt__p_CoreSession,
&_swigt__p_Event,
&_swigt__p_IVRMenu,
+ &_swigt__p_PERL__Session,
&_swigt__p_PerlInterpreter,
- &_swigt__p_Session,
&_swigt__p_Stream,
&_swigt__p_char,
&_swigt__p_input_callback_state,
@@ -7367,11 +7678,11 @@
};
static swig_cast_info _swigc__p_API[] = { {&_swigt__p_API, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_CoreSession[] = { {&_swigt__p_CoreSession, 0, 0, 0}, {&_swigt__p_Session, _p_SessionTo_p_CoreSession, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_CoreSession[] = { {&_swigt__p_CoreSession, 0, 0, 0}, {&_swigt__p_PERL__Session, _p_PERL__SessionTo_p_CoreSession, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_Event[] = { {&_swigt__p_Event, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_IVRMenu[] = { {&_swigt__p_IVRMenu, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_PERL__Session[] = { {&_swigt__p_PERL__Session, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_PerlInterpreter[] = { {&_swigt__p_PerlInterpreter, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Session[] = { {&_swigt__p_Session, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_Stream[] = { {&_swigt__p_Stream, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_input_callback_state[] = { {&_swigt__p_input_callback_state, 0, 0, 0},{0, 0, 0, 0}};
@@ -7392,8 +7703,8 @@
_swigc__p_CoreSession,
_swigc__p_Event,
_swigc__p_IVRMenu,
+ _swigc__p_PERL__Session,
_swigc__p_PerlInterpreter,
- _swigc__p_Session,
_swigc__p_Stream,
_swigc__p_char,
_swigc__p_input_callback_state,
@@ -7484,6 +7795,7 @@
{"freeswitchc::CoreSession_setPrivate", _wrap_CoreSession_setPrivate},
{"freeswitchc::CoreSession_getPrivate", _wrap_CoreSession_getPrivate},
{"freeswitchc::CoreSession_getVariable", _wrap_CoreSession_getVariable},
+{"freeswitchc::CoreSession_process_callback_result", _wrap_CoreSession_process_callback_result},
{"freeswitchc::CoreSession_recordFile", _wrap_CoreSession_recordFile},
{"freeswitchc::CoreSession_setCallerData", _wrap_CoreSession_setCallerData},
{"freeswitchc::CoreSession_originate", _wrap_CoreSession_originate},
@@ -7503,6 +7815,8 @@
{"freeswitchc::CoreSession_ready", _wrap_CoreSession_ready},
{"freeswitchc::CoreSession_execute", _wrap_CoreSession_execute},
{"freeswitchc::CoreSession_sendEvent", _wrap_CoreSession_sendEvent},
+{"freeswitchc::CoreSession_setEventData", _wrap_CoreSession_setEventData},
+{"freeswitchc::CoreSession_getXMLCDR", _wrap_CoreSession_getXMLCDR},
{"freeswitchc::CoreSession_begin_allow_threads", _wrap_CoreSession_begin_allow_threads},
{"freeswitchc::CoreSession_end_allow_threads", _wrap_CoreSession_end_allow_threads},
{"freeswitchc::CoreSession_get_uuid", _wrap_CoreSession_get_uuid},
@@ -7529,6 +7843,8 @@
{"freeswitchc::Session_cb_arg_get", _wrap_Session_cb_arg_get},
{"freeswitchc::Session_hangup_func_str_set", _wrap_Session_hangup_func_str_set},
{"freeswitchc::Session_hangup_func_str_get", _wrap_Session_hangup_func_str_get},
+{"freeswitchc::Session_hangup_func_arg_set", _wrap_Session_hangup_func_arg_set},
+{"freeswitchc::Session_hangup_func_arg_get", _wrap_Session_hangup_func_arg_get},
{"freeswitchc::Session_setPERL", _wrap_Session_setPERL},
{0,0}
};
@@ -7845,7 +8161,7 @@
SWIG_TypeClientData(SWIGTYPE_p_Stream, (void*) "freeswitch::Stream");
SWIG_TypeClientData(SWIGTYPE_p_Event, (void*) "freeswitch::Event");
SWIG_TypeClientData(SWIGTYPE_p_CoreSession, (void*) "freeswitch::CoreSession");
- SWIG_TypeClientData(SWIGTYPE_p_Session, (void*) "freeswitch::Session");
+ SWIG_TypeClientData(SWIGTYPE_p_PERL__Session, (void*) "freeswitch::Session");
ST(0) = &PL_sv_yes;
XSRETURN(1);
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch.py
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch.py (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch.py Tue May 13 23:37:33 2008
@@ -1,5 +1,5 @@
# This file was automatically generated by SWIG (http://www.swig.org)
-# Version 1.3.31
+# Version 1.3.35
#
# Don't modify this file, modify the SWIG interface instead.
# This file is compatible with both classic and new-style classes.
@@ -169,7 +169,7 @@
__setattr__ = lambda self, name, value: _swig_setattr(self, CoreSession, name, value)
__swig_getmethods__ = {}
__getattr__ = lambda self, name: _swig_getattr(self, CoreSession, name)
- def __init__(self): raise AttributeError, "No constructor defined"
+ def __init__(self, *args, **kwargs): raise AttributeError, "No constructor defined"
__repr__ = _swig_repr
__swig_destroy__ = _freeswitch.delete_CoreSession
__del__ = lambda self : None;
@@ -198,6 +198,7 @@
def setPrivate(*args): return _freeswitch.CoreSession_setPrivate(*args)
def getPrivate(*args): return _freeswitch.CoreSession_getPrivate(*args)
def getVariable(*args): return _freeswitch.CoreSession_getVariable(*args)
+ def process_callback_result(*args): return _freeswitch.CoreSession_process_callback_result(*args)
def recordFile(*args): return _freeswitch.CoreSession_recordFile(*args)
def setCallerData(*args): return _freeswitch.CoreSession_setCallerData(*args)
def originate(*args): return _freeswitch.CoreSession_originate(*args)
@@ -217,6 +218,8 @@
def ready(*args): return _freeswitch.CoreSession_ready(*args)
def execute(*args): return _freeswitch.CoreSession_execute(*args)
def sendEvent(*args): return _freeswitch.CoreSession_sendEvent(*args)
+ def setEventData(*args): return _freeswitch.CoreSession_setEventData(*args)
+ def getXMLCDR(*args): return _freeswitch.CoreSession_getXMLCDR(*args)
def begin_allow_threads(*args): return _freeswitch.CoreSession_begin_allow_threads(*args)
def end_allow_threads(*args): return _freeswitch.CoreSession_end_allow_threads(*args)
def get_uuid(*args): return _freeswitch.CoreSession_get_uuid(*args)
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python_wrap.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python_wrap.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python_wrap.cpp Tue May 13 23:37:33 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
@@ -12,7 +12,7 @@
#define SWIG_PYTHON_DIRECTOR_NO_VTABLE
#ifdef __cplusplus
-template<class T> class SwigValueWrapper {
+template<typename T> class SwigValueWrapper {
T *tt;
public:
SwigValueWrapper() : tt(0) { }
@@ -25,6 +25,10 @@
private:
SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
};
+
+template <typename T> T SwigValueInit() {
+ return T();
+}
#endif
/* -----------------------------------------------------------------------------
@@ -34,14 +38,14 @@
/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC)
-# if (__SUNPRO_CC <= 0x560)
-# define SWIGTEMPLATEDISAMBIGUATOR template
-# else
-# define SWIGTEMPLATEDISAMBIGUATOR
-# endif
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+# define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+# define SWIGTEMPLATEDISAMBIGUATOR template
# else
-# define SWIGTEMPLATEDISAMBIGUATOR
+# define SWIGTEMPLATEDISAMBIGUATOR
# endif
#endif
@@ -124,6 +128,12 @@
# define _CRT_SECURE_NO_DEPRECATE
#endif
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
/* Python.h has to appear first */
#include <Python.h>
@@ -137,7 +147,7 @@
/* This should only be incremented when either the layout of swig_type_info changes,
or for whatever reason, the runtime changes incompatibly */
-#define SWIG_RUNTIME_VERSION "3"
+#define SWIG_RUNTIME_VERSION "4"
/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
#ifdef SWIG_TYPE_TABLE
@@ -172,6 +182,7 @@
/* Flags for pointer conversions */
#define SWIG_POINTER_DISOWN 0x1
+#define SWIG_CAST_NEW_MEMORY 0x2
/* Flags for new pointer objects */
#define SWIG_POINTER_OWN 0x1
@@ -312,10 +323,10 @@
extern "C" {
#endif
-typedef void *(*swig_converter_func)(void *);
+typedef void *(*swig_converter_func)(void *, int *);
typedef struct swig_type_info *(*swig_dycast_func)(void **);
-/* Structure to store inforomation on one type */
+/* Structure to store information on one type */
typedef struct swig_type_info {
const char *name; /* mangled name of this type */
const char *str; /* human readable name of this type */
@@ -360,7 +371,7 @@
while ((*f2 == ' ') && (f2 != l2)) ++f2;
if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
}
- return (l1 - f1) - (l2 - f2);
+ return (int)((l1 - f1) - (l2 - f2));
}
/*
@@ -442,8 +453,8 @@
Cast a pointer up an inheritance hierarchy
*/
SWIGRUNTIMEINLINE void *
-SWIG_TypeCast(swig_cast_info *ty, void *ptr) {
- return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr);
+SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
+ return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
}
/*
@@ -867,7 +878,7 @@
Py_DECREF(old_str);
Py_DECREF(value);
} else {
- PyErr_Format(PyExc_RuntimeError, mesg);
+ PyErr_SetString(PyExc_RuntimeError, mesg);
}
}
@@ -1107,14 +1118,14 @@
/* Unpack the argument tuple */
SWIGINTERN int
-SWIG_Python_UnpackTuple(PyObject *args, const char *name, int min, int max, PyObject **objs)
+SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
{
if (!args) {
if (!min && !max) {
return 1;
} else {
PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none",
- name, (min == max ? "" : "at least "), min);
+ name, (min == max ? "" : "at least "), (int)min);
return 0;
}
}
@@ -1122,14 +1133,14 @@
PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
return 0;
} else {
- register int l = PyTuple_GET_SIZE(args);
+ register Py_ssize_t l = PyTuple_GET_SIZE(args);
if (l < min) {
PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
- name, (min == max ? "" : "at least "), min, l);
+ name, (min == max ? "" : "at least "), (int)min, (int)l);
return 0;
} else if (l > max) {
PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
- name, (min == max ? "" : "at most "), max, l);
+ name, (min == max ? "" : "at most "), (int)max, (int)l);
return 0;
} else {
register int i;
@@ -1427,7 +1438,7 @@
{
PySwigObject *sobj = (PySwigObject *) v;
PyObject *next = sobj->next;
- if (sobj->own) {
+ if (sobj->own == SWIG_POINTER_OWN) {
swig_type_info *ty = sobj->ty;
PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
PyObject *destroy = data ? data->destroy : 0;
@@ -1445,12 +1456,13 @@
res = ((*meth)(mself, v));
}
Py_XDECREF(res);
- } else {
- const char *name = SWIG_TypePrettyName(ty);
+ }
#if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
- printf("swig/python detected a memory leak of type '%s', no destructor found.\n", name);
-#endif
+ else {
+ const char *name = SWIG_TypePrettyName(ty);
+ printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
}
+#endif
}
Py_XDECREF(next);
PyObject_DEL(v);
@@ -1608,9 +1620,11 @@
(unaryfunc)0, /*nb_float*/
(unaryfunc)PySwigObject_oct, /*nb_oct*/
(unaryfunc)PySwigObject_hex, /*nb_hex*/
-#if PY_VERSION_HEX >= 0x02020000
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
-#elif PY_VERSION_HEX >= 0x02000000
+#if PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
+#elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
+#elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */
0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
#endif
};
@@ -1953,7 +1967,7 @@
SWIGRUNTIME int
SWIG_Python_AcquirePtr(PyObject *obj, int own) {
- if (own) {
+ if (own == SWIG_POINTER_OWN) {
PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
if (sobj) {
int oldown = sobj->own;
@@ -1974,6 +1988,8 @@
return SWIG_OK;
} else {
PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
+ if (own)
+ *own = 0;
while (sobj) {
void *vptr = sobj->ptr;
if (ty) {
@@ -1987,7 +2003,15 @@
if (!tc) {
sobj = (PySwigObject *)sobj->next;
} else {
- if (ptr) *ptr = SWIG_TypeCast(tc,vptr);
+ if (ptr) {
+ int newmemory = 0;
+ *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+ if (newmemory == SWIG_CAST_NEW_MEMORY) {
+ assert(own);
+ if (own)
+ *own = *own | SWIG_CAST_NEW_MEMORY;
+ }
+ }
break;
}
}
@@ -1997,7 +2021,8 @@
}
}
if (sobj) {
- if (own) *own = sobj->own;
+ if (own)
+ *own = *own | sobj->own;
if (flags & SWIG_POINTER_DISOWN) {
sobj->own = 0;
}
@@ -2062,8 +2087,13 @@
}
if (ty) {
swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
- if (!tc) return SWIG_ERROR;
- *ptr = SWIG_TypeCast(tc,vptr);
+ if (tc) {
+ int newmemory = 0;
+ *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+ assert(!newmemory); /* newmemory handling not yet implemented */
+ } else {
+ return SWIG_ERROR;
+ }
} else {
*ptr = vptr;
}
@@ -2505,7 +2535,7 @@
#define SWIG_name "_freeswitch"
-#define SWIGVERSION 0x010331
+#define SWIGVERSION 0x010335
#define SWIG_VERSION SWIGVERSION
@@ -2533,7 +2563,9 @@
PyObject_ptr(PyObject *obj, bool initial_ref = true) :_obj(obj)
{
- if (initial_ref) Py_XINCREF(_obj);
+ if (initial_ref) {
+ Py_XINCREF(_obj);
+ }
}
PyObject_ptr & operator=(const PyObject_ptr& item)
@@ -2649,14 +2681,12 @@
#include <limits.h>
-#ifndef LLONG_MIN
-# define LLONG_MIN LONG_LONG_MIN
-#endif
-#ifndef LLONG_MAX
-# define LLONG_MAX LONG_LONG_MAX
-#endif
-#ifndef ULLONG_MAX
-# define ULLONG_MAX ULONG_LONG_MAX
+#if !defined(SWIG_NO_LLONG_MAX)
+# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
+# define LLONG_MAX __LONG_LONG_MAX__
+# define LLONG_MIN (-LLONG_MAX - 1LL)
+# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
+# endif
#endif
@@ -2914,18 +2944,11 @@
SWIGINTERN int
SWIG_AsVal_bool (PyObject *obj, bool *val)
{
- if (obj == Py_True) {
- if (val) *val = true;
- return SWIG_OK;
- } else if (obj == Py_False) {
- if (val) *val = false;
- return SWIG_OK;
- } else {
- long v = 0;
- int res = SWIG_AddCast(SWIG_AsVal_long (obj, val ? &v : 0));
- if (SWIG_IsOK(res) && val) *val = v ? true : false;
- return res;
- }
+ int r = PyObject_IsTrue(obj);
+ if (r == -1)
+ return SWIG_ERROR;
+ if (val) *val = r ? true : false;
+ return SWIG_OK;
}
#ifdef __cplusplus
@@ -3265,7 +3288,7 @@
SWIGINTERN PyObject *IVRMenu_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *obj;
- if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
SWIG_TypeNewClientData(SWIGTYPE_p_IVRMenu, SWIG_NewClientData(obj));
return SWIG_Py_Void();
}
@@ -3387,7 +3410,7 @@
SWIGINTERN PyObject *API_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *obj;
- if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
SWIG_TypeNewClientData(SWIGTYPE_p_API, SWIG_NewClientData(obj));
return SWIG_Py_Void();
}
@@ -3643,7 +3666,7 @@
SWIGINTERN PyObject *input_callback_state_t_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *obj;
- if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
SWIG_TypeNewClientData(SWIGTYPE_p_input_callback_state, SWIG_NewClientData(obj));
return SWIG_Py_Void();
}
@@ -3689,7 +3712,7 @@
int ii;
if (!PyTuple_Check(args)) SWIG_fail;
- argc = PyObject_Length(args);
+ argc = (int)PyObject_Length(args);
for (ii = 0; (ii < argc) && (ii < 1); ii++) {
argv[ii] = PyTuple_GET_ITEM(args,ii);
}
@@ -3707,7 +3730,10 @@
}
fail:
- SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Stream'.\n Possible C/C++ prototypes are:\n Stream()\n Stream(switch_stream_handle_t *)\n");
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Stream'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " Stream()\n"
+ " Stream(switch_stream_handle_t *)\n");
return NULL;
}
@@ -3791,7 +3817,7 @@
SWIGINTERN PyObject *Stream_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *obj;
- if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
SWIG_TypeNewClientData(SWIGTYPE_p_Stream, SWIG_NewClientData(obj));
return SWIG_Py_Void();
}
@@ -4084,7 +4110,7 @@
int ii;
if (!PyTuple_Check(args)) SWIG_fail;
- argc = PyObject_Length(args);
+ argc = (int)PyObject_Length(args);
for (ii = 0; (ii < argc) && (ii < 2); ii++) {
argv[ii] = PyTuple_GET_ITEM(args,ii);
}
@@ -4134,7 +4160,12 @@
}
fail:
- SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Event'.\n Possible C/C++ prototypes are:\n Event(char const *,char const *)\n Event(char const *)\n Event(switch_event_t *,int)\n Event(switch_event_t *)\n");
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Event'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " Event(char const *,char const *)\n"
+ " Event(char const *)\n"
+ " Event(switch_event_t *,int)\n"
+ " Event(switch_event_t *)\n");
return NULL;
}
@@ -4223,7 +4254,7 @@
int ii;
if (!PyTuple_Check(args)) SWIG_fail;
- argc = PyObject_Length(args);
+ argc = (int)PyObject_Length(args);
for (ii = 0; (ii < argc) && (ii < 2); ii++) {
argv[ii] = PyTuple_GET_ITEM(args,ii);
}
@@ -4251,7 +4282,10 @@
}
fail:
- SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Event_serialize'.\n Possible C/C++ prototypes are:\n serialize(char const *)\n serialize()\n");
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Event_serialize'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " serialize(Event *,char const *)\n"
+ " serialize(Event *)\n");
return NULL;
}
@@ -4323,7 +4357,7 @@
int ii;
if (!PyTuple_Check(args)) SWIG_fail;
- argc = PyObject_Length(args);
+ argc = (int)PyObject_Length(args);
for (ii = 0; (ii < argc) && (ii < 2); ii++) {
argv[ii] = PyTuple_GET_ITEM(args,ii);
}
@@ -4351,7 +4385,10 @@
}
fail:
- SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Event_setPriority'.\n Possible C/C++ prototypes are:\n setPriority(switch_priority_t)\n setPriority()\n");
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Event_setPriority'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " setPriority(Event *,switch_priority_t)\n"
+ " setPriority(Event *)\n");
return NULL;
}
@@ -4572,7 +4609,7 @@
SWIGINTERN PyObject *Event_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *obj;
- if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
SWIG_TypeNewClientData(SWIGTYPE_p_Event, SWIG_NewClientData(obj));
return SWIG_Py_Void();
}
@@ -5029,7 +5066,7 @@
int ii;
if (!PyTuple_Check(args)) SWIG_fail;
- argc = PyObject_Length(args);
+ argc = (int)PyObject_Length(args);
for (ii = 0; (ii < argc) && (ii < 2); ii++) {
argv[ii] = PyTuple_GET_ITEM(args,ii);
}
@@ -5057,7 +5094,10 @@
}
fail:
- SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_hangup'.\n Possible C/C++ prototypes are:\n hangup(char *)\n hangup()\n");
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_hangup'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " hangup(CoreSession *,char *)\n"
+ " hangup(CoreSession *)\n");
return NULL;
}
@@ -5215,6 +5255,40 @@
}
+SWIGINTERN PyObject *_wrap_CoreSession_process_callback_result(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ switch_status_t result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_process_callback_result",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_process_callback_result" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_process_callback_result" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (arg1)->process_callback_result(arg2);
+ resultobj = SWIG_NewPointerObj((new switch_status_t(static_cast< const switch_status_t& >(result))), SWIGTYPE_p_switch_status_t, SWIG_POINTER_OWN | 0 );
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_CoreSession_recordFile__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -5411,7 +5485,7 @@
int ii;
if (!PyTuple_Check(args)) SWIG_fail;
- argc = PyObject_Length(args);
+ argc = (int)PyObject_Length(args);
for (ii = 0; (ii < argc) && (ii < 5); ii++) {
argv[ii] = PyTuple_GET_ITEM(args,ii);
}
@@ -5505,7 +5579,12 @@
}
fail:
- SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_recordFile'.\n Possible C/C++ prototypes are:\n recordFile(char *,int,int,int)\n recordFile(char *,int,int)\n recordFile(char *,int)\n recordFile(char *)\n");
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_recordFile'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " recordFile(CoreSession *,char *,int,int,int)\n"
+ " recordFile(CoreSession *,char *,int,int)\n"
+ " recordFile(CoreSession *,char *,int)\n"
+ " recordFile(CoreSession *,char *)\n");
return NULL;
}
@@ -5656,7 +5735,7 @@
int ii;
if (!PyTuple_Check(args)) SWIG_fail;
- argc = PyObject_Length(args);
+ argc = (int)PyObject_Length(args);
for (ii = 0; (ii < argc) && (ii < 4); ii++) {
argv[ii] = PyTuple_GET_ITEM(args,ii);
}
@@ -5704,7 +5783,10 @@
}
fail:
- SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_originate'.\n Possible C/C++ prototypes are:\n originate(CoreSession *,char *,int)\n originate(CoreSession *,char *)\n");
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_originate'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " originate(CoreSession *,CoreSession *,char *,int)\n"
+ " originate(CoreSession *,CoreSession *,char *)\n");
return NULL;
}
@@ -6231,7 +6313,7 @@
int ii;
if (!PyTuple_Check(args)) SWIG_fail;
- argc = PyObject_Length(args);
+ argc = (int)PyObject_Length(args);
for (ii = 0; (ii < argc) && (ii < 3); ii++) {
argv[ii] = PyTuple_GET_ITEM(args,ii);
}
@@ -6269,7 +6351,10 @@
}
fail:
- SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_streamFile'.\n Possible C/C++ prototypes are:\n streamFile(char *,int)\n streamFile(char *)\n");
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_streamFile'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " streamFile(CoreSession *,char *,int)\n"
+ " streamFile(CoreSession *,char *)\n");
return NULL;
}
@@ -6474,6 +6559,58 @@
}
+SWIGINTERN PyObject *_wrap_CoreSession_setEventData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ Event *arg2 = (Event *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_setEventData",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_setEventData" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_setEventData" "', argument " "2"" of type '" "Event *""'");
+ }
+ arg2 = reinterpret_cast< Event * >(argp2);
+ (arg1)->setEventData(arg2);
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_getXMLCDR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CoreSession_getXMLCDR",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_getXMLCDR" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ result = (char *)(arg1)->getXMLCDR();
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_CoreSession_begin_allow_threads(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -6634,7 +6771,7 @@
SWIGINTERN PyObject *CoreSession_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *obj;
- if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
SWIG_TypeNewClientData(SWIGTYPE_p_CoreSession, SWIG_NewClientData(obj));
return SWIG_Py_Void();
}
@@ -6885,7 +7022,7 @@
int ii;
if (!PyTuple_Check(args)) SWIG_fail;
- argc = PyObject_Length(args);
+ argc = (int)PyObject_Length(args);
for (ii = 0; (ii < argc) && (ii < 1); ii++) {
argv[ii] = PyTuple_GET_ITEM(args,ii);
}
@@ -6911,7 +7048,11 @@
}
fail:
- SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_PySession'.\n Possible C/C++ prototypes are:\n PySession()\n PySession(char *)\n PySession(switch_core_session_t *)\n");
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_PySession'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " PySession()\n"
+ " PySession(char *)\n"
+ " PySession(switch_core_session_t *)\n");
return NULL;
}
@@ -7144,7 +7285,7 @@
SWIGINTERN PyObject *PySession_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *obj;
- if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
SWIG_TypeNewClientData(SWIGTYPE_p_PySession, SWIG_NewClientData(obj));
return SWIG_Py_Void();
}
@@ -7216,6 +7357,7 @@
{ (char *)"CoreSession_setPrivate", _wrap_CoreSession_setPrivate, METH_VARARGS, NULL},
{ (char *)"CoreSession_getPrivate", _wrap_CoreSession_getPrivate, METH_VARARGS, NULL},
{ (char *)"CoreSession_getVariable", _wrap_CoreSession_getVariable, METH_VARARGS, NULL},
+ { (char *)"CoreSession_process_callback_result", _wrap_CoreSession_process_callback_result, METH_VARARGS, NULL},
{ (char *)"CoreSession_recordFile", _wrap_CoreSession_recordFile, METH_VARARGS, NULL},
{ (char *)"CoreSession_setCallerData", _wrap_CoreSession_setCallerData, METH_VARARGS, NULL},
{ (char *)"CoreSession_originate", _wrap_CoreSession_originate, METH_VARARGS, NULL},
@@ -7235,6 +7377,8 @@
{ (char *)"CoreSession_ready", _wrap_CoreSession_ready, METH_VARARGS, NULL},
{ (char *)"CoreSession_execute", _wrap_CoreSession_execute, METH_VARARGS, NULL},
{ (char *)"CoreSession_sendEvent", _wrap_CoreSession_sendEvent, METH_VARARGS, NULL},
+ { (char *)"CoreSession_setEventData", _wrap_CoreSession_setEventData, METH_VARARGS, NULL},
+ { (char *)"CoreSession_getXMLCDR", _wrap_CoreSession_getXMLCDR, METH_VARARGS, NULL},
{ (char *)"CoreSession_begin_allow_threads", _wrap_CoreSession_begin_allow_threads, METH_VARARGS, NULL},
{ (char *)"CoreSession_end_allow_threads", _wrap_CoreSession_end_allow_threads, METH_VARARGS, NULL},
{ (char *)"CoreSession_get_uuid", _wrap_CoreSession_get_uuid, METH_VARARGS, NULL},
@@ -7263,7 +7407,7 @@
/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
-static void *_p_PySessionTo_p_CoreSession(void *x) {
+static void *_p_PySessionTo_p_CoreSession(void *x, int *newmemory) {
return (void *)((CoreSession *) ((PySession *) x));
}
static swig_type_info _swigt__p_API = {"_p_API", "API *", 0, 0, (void*)0, 0};
@@ -7273,7 +7417,7 @@
static swig_type_info _swigt__p_PySession = {"_p_PySession", "PySession *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_Stream = {"_p_Stream", "Stream *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_input_callback_state = {"_p_input_callback_state", "input_callback_state *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_input_callback_state = {"_p_input_callback_state", "input_callback_state_t *|input_callback_state *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_session_flag_t = {"_p_session_flag_t", "enum session_flag_t *|session_flag_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_swap_state_t = {"_p_swap_state_t", "enum swap_state_t *|swap_state_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_switch_channel_state_t = {"_p_switch_channel_state_t", "switch_channel_state_t *", 0, 0, (void*)0, 0};
@@ -7420,7 +7564,7 @@
SWIG_InitializeModule(void *clientdata) {
size_t i;
swig_module_info *module_head, *iter;
- int found;
+ int found, init;
clientdata = clientdata;
@@ -7430,6 +7574,9 @@
swig_module.type_initial = swig_type_initial;
swig_module.cast_initial = swig_cast_initial;
swig_module.next = &swig_module;
+ init = 1;
+ } else {
+ init = 0;
}
/* Try and load any already created modules */
@@ -7458,6 +7605,12 @@
module_head->next = &swig_module;
}
+ /* When multiple interpeters are used, a module could have already been initialized in
+ a different interpreter, but not yet have a pointer in this interpreter.
+ In this case, we do not want to continue adding types... everything should be
+ set up already */
+ if (init == 0) return;
+
/* Now work on filling in swig_module.types */
#ifdef SWIGRUNTIME_DEBUG
printf("SWIG_InitializeModule: size %d\n", swig_module.size);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/switch_swig_wrap.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/switch_swig_wrap.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/switch_swig_wrap.c Tue May 13 23:37:33 2008
@@ -2924,19 +2924,19 @@
PyDict_SetItemString(d, "CS_INIT", SWIG_From_int((int) (CS_INIT)));
}
{
- PyDict_SetItemString(d, "CS_RING", SWIG_From_int((int) (CS_RING)));
+ PyDict_SetItemString(d, "CS_ROUTING", SWIG_From_int((int) (CS_ROUTING)));
}
{
- PyDict_SetItemString(d, "CS_TRANSMIT", SWIG_From_int((int) (CS_TRANSMIT)));
+ PyDict_SetItemString(d, "CS_SOFT_EXECUTE", SWIG_From_int((int) (CS_SOFT_EXECUTE)));
}
{
PyDict_SetItemString(d, "CS_EXECUTE", SWIG_From_int((int) (CS_EXECUTE)));
}
{
- PyDict_SetItemString(d, "CS_LOOPBACK", SWIG_From_int((int) (CS_LOOPBACK)));
+ PyDict_SetItemString(d, "CS_EXCHANGE_MEDIA", SWIG_From_int((int) (CS_EXCHANGE_MEDIA)));
}
{
- PyDict_SetItemString(d, "CS_HOLD", SWIG_From_int((int) (CS_HOLD)));
+ PyDict_SetItemString(d, "CS_CONSUME_MEDIA", SWIG_From_int((int) (CS_CONSUME_MEDIA)));
}
{
PyDict_SetItemString(d, "CS_HIBERNATE", SWIG_From_int((int) (CS_HIBERNATE)));
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c Tue May 13 23:37:33 2008
@@ -1560,7 +1560,7 @@
int argc = 0;
jsval ret;
- if (jss->on_hangup && (jss->hook_state == CS_HANGUP || jss->hook_state == CS_RING)) {
+ if (jss->on_hangup && (jss->hook_state == CS_HANGUP || jss->hook_state == CS_ROUTING)) {
argv[argc++] = OBJECT_TO_JSVAL(jss->obj);
if (jss->hook_state == CS_HANGUP) {
argv[argc++] = STRING_TO_JSVAL(JS_NewStringCopyZ(jss->cx, "hangup"));
@@ -2754,7 +2754,7 @@
jss->session = peer_session;
switch_set_flag(jss, S_HUP);
*rval = BOOLEAN_TO_JSVAL(JS_TRUE);
- switch_channel_set_state(switch_core_session_get_channel(jss->session), CS_TRANSMIT);
+ switch_channel_set_state(switch_core_session_get_channel(jss->session), CS_SOFT_EXECUTE);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Missing Args\n");
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c Tue May 13 23:37:33 2008
@@ -209,7 +209,6 @@
switch_frame_t write_frame = { 0 };
unsigned char *fdata[1024];
switch_frame_t *read_frame;
- int stream_id;
switch_core_thread_session_t thread_session = { 0 };
switch_channel_t *channel;
@@ -238,9 +237,7 @@
channel = switch_core_session_get_channel(session);
if (tto->timer) {
- for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
- switch_core_service_session(session, &thread_session, stream_id);
- }
+ switch_core_service_session(session, &thread_session, 0);
}
if (loops) {
@@ -275,7 +272,7 @@
} else {
switch_status_t status;
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
@@ -287,11 +284,9 @@
}
write_frame.samples = write_frame.datalen / 2;
- for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
- if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Bad Write\n");
- break;
- }
+ if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Bad Write\n");
+ break;
}
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c Tue May 13 23:37:33 2008
@@ -241,11 +241,11 @@
static switch_state_handler_table_t state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ NULL,
+ /*.on_routing */ NULL,
/*.on_execute */ NULL,
/*.on_hangup */ my_on_hangup,
- /*.on_loopback */ NULL,
- /*.on_transmit */ NULL
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ NULL
};
SWITCH_MODULE_LOAD_FUNCTION(mod_xml_cdr_load)
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_ldap/Makefile
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_ldap/Makefile (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_ldap/Makefile Tue May 13 23:37:33 2008
@@ -8,7 +8,8 @@
LOCAL_CFLAGS=-DWITH_OPENLDAP -DLDAP_DEPRECATED -I$(LDAP_DIR)/include
-DEFAULT_ARGS=--prefix=$(PREFIX) --disable-shared --with-pic
+DEFAULT_ARGS= --prefix=$(PREFIX) --disable-shared --with-pic --disable-slapd
+DEFAULT_ARGS+= --disable-slurpd --disable-relay --disable-bdb --disable-hdb
LOCAL_LIBADD=$(LDAPLA) $(LIBLBERLA)
@@ -16,7 +17,7 @@
$(LDAP_DIR):
$(GETLIB) $(LDAP).tgz
- cd $(LDAP_DIR) && ./configure $(DEFAULT_ARGS) --disable-bdb --disable-hdb --disable-slapd
+ cd $(LDAP_DIR) && CFLAGS="`echo $(CFLAGS) | sed -e 's:-std=c99::'`" ./configure $(DEFAULT_ARGS)
$(LDAPLA) $(LIBLBERLA): $(LDAP_DIR)
cd $(LDAP_DIR) && $(MAKE)
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch.c Tue May 13 23:37:33 2008
@@ -44,8 +44,6 @@
#define PIDFILE "freeswitch.pid"
static char *pfile = PIDFILE;
-/* If we are a windows service, what should we be called */
-#define SERVICENAME "Freeswitch"
/* Picky compiler */
#ifdef __ICC
@@ -53,6 +51,10 @@
#endif
#ifdef WIN32
+/* If we are a windows service, what should we be called */
+#define SERVICENAME_DEFAULT "FreeSWITCH"
+#define SERVICENAME_MAXLEN 256
+static char service_name[SERVICENAME_MAXLEN];
#include <winsock2.h>
#include <windows.h>
@@ -62,7 +64,7 @@
/* signal handler for when freeswitch is running in background mode.
* signal triggers the shutdown of freeswitch
- */
+# */
static void handle_SIGTERM(int sig)
{
int32_t arg = 0;
@@ -172,7 +174,7 @@
status.dwControlsAccepted = SERVICE_ACCEPT_STOP;
/* register our handler for service control messages */
- hStatus = RegisterServiceCtrlHandler(SERVICENAME, &ServiceCtrlHandler);
+ hStatus = RegisterServiceCtrlHandler(service_name, &ServiceCtrlHandler);
/* update the service status */
SetServiceStatus(hStatus, &status);
@@ -217,17 +219,10 @@
switch_file_t *fd;
switch_memory_pool_t *pool = NULL;
-
-#ifdef WIN32
- SERVICE_TABLE_ENTRY dispatchTable[] = {
- {SERVICENAME, &service_main},
- {NULL, NULL}
- };
-#endif
usageDesc = "these are the optional arguments you can pass to freeswitch\n"
#ifdef WIN32
- "\t-service -- start freeswitch as a service, cannot be used if loaded as a console app\n"
- "\t-install -- install freeswitch as a service\n"
+ "\t-service [name] -- start freeswitch as a service, cannot be used if loaded as a console app\n"
+ "\t-install [name] -- install freeswitch as a service, with optional service name\n"
"\t-uninstall -- remove freeswitch as a service\n"
#else
"\t-nf -- no forking\n"
@@ -253,42 +248,100 @@
#ifdef WIN32
if (x == 1) {
if (argv[x] && !strcmp(argv[x], "-service")) {
- known_opt++;
- if (StartServiceCtrlDispatcher(dispatchTable) == 0) {
- /* Not loaded as a service */
- fprintf(stderr, "Error Freeswitch loaded as a console app with -service option\n");
- fprintf(stderr, "To install the service load freeswitch with -install\n");
+ /* New installs will always have the service name specified, but keep a default for compat */
+ x++;
+ if (argv[x] && strlen(argv[x])) {
+ switch_copy_string(service_name, argv[x], SERVICENAME_MAXLEN);
+ } else {
+ switch_copy_string(service_name, SERVICENAME_DEFAULT, SERVICENAME_MAXLEN);
+ }
+ { /* Attempt to start service */
+ SERVICE_TABLE_ENTRY dispatchTable[] = {
+ {service_name, &service_main},
+ {NULL, NULL}
+ };
+ known_opt++;
+ if (StartServiceCtrlDispatcher(dispatchTable) == 0) {
+ /* Not loaded as a service */
+ fprintf(stderr, "Error Freeswitch loaded as a console app with -service option\n");
+ fprintf(stderr, "To install the service load freeswitch with -install\n");
+ }
+ exit(0);
}
- exit(0);
}
if (argv[x] && !strcmp(argv[x], "-install")) {
char exePath[1024];
char servicePath[1024];
-
- SC_HANDLE handle = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
+ x++;
+ if (argv[x] && strlen(argv[x])) {
+ switch_copy_string(service_name, argv[x], SERVICENAME_MAXLEN);
+ } else {
+ switch_copy_string(service_name, SERVICENAME_DEFAULT, SERVICENAME_MAXLEN);
+ }
known_opt++;
GetModuleFileName(NULL, exePath, 1024);
- snprintf(servicePath, sizeof(servicePath), "%s -service", exePath);
- if (!CreateService(handle,
- SERVICENAME,
- SERVICENAME,
- GENERIC_READ | GENERIC_EXECUTE,
- SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_IGNORE, servicePath, NULL, NULL, NULL, NULL, NULL)) {
- fprintf(stderr, "Error installing freeswitch as a service.\n");
+ snprintf(servicePath, sizeof(servicePath), "%s -service %s", exePath, service_name);
+ { /* Perform service installation */
+ SC_HANDLE hService;
+ SC_HANDLE hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
+ if (!hSCManager) {
+ fprintf(stderr, "Could not open service manager (%d).\n", GetLastError());
+ exit(1);
+ }
+ hService = CreateService(hSCManager,
+ service_name,
+ service_name,
+ GENERIC_READ | GENERIC_EXECUTE | SERVICE_CHANGE_CONFIG,
+ SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_IGNORE,
+ servicePath, NULL, NULL, NULL,
+ "NT AUTHORITY\\NetworkService", /* Service start name */
+ NULL);
+ if (!hService) {
+ fprintf(stderr, "Error creating freeswitch service (%d).\n", GetLastError());
+ } else {
+ /* Set desc, and don't care if it succeeds */
+ SERVICE_DESCRIPTION desc;
+ desc.lpDescription = "The FreeSWITCH service.";
+ if (!ChangeServiceConfig2(hService, SERVICE_CONFIG_DESCRIPTION, &desc)) {
+ fprintf(stderr, "FreeSWITCH installed, but could not set the service description (%d).\n", GetLastError());
+ }
+ CloseServiceHandle(hService);
+ }
+ CloseServiceHandle(hSCManager);
+ exit(0);
}
- exit(0);
}
if (argv[x] && !strcmp(argv[x], "-uninstall")) {
- SC_HANDLE handle = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
- SC_HANDLE service = OpenService(handle, SERVICENAME, DELETE);
- known_opt++;
- if (service != NULL) {
- /* remove the service! */
- DeleteService(service);
+ x++;
+ if (argv[x] && strlen(argv[x])) {
+ switch_copy_string(service_name, argv[x], SERVICENAME_MAXLEN);
+ } else {
+ switch_copy_string(service_name, SERVICENAME_DEFAULT, SERVICENAME_MAXLEN);
+ }
+ { /* Do the uninstallation */
+ SC_HANDLE hService;
+ SC_HANDLE hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
+ if (!hSCManager) {
+ fprintf(stderr, "Could not open service manager (%d).\n", GetLastError());
+ exit(1);
+ }
+ hService = OpenService(hSCManager, service_name, DELETE);
+ known_opt++;
+ if (hService != NULL) {
+ /* remove the service! */
+ if (!DeleteService(hService)) {
+ fprintf(stderr, "Error deleting service (%d).\n", GetLastError());
+ }
+ CloseServiceHandle(hService);
+ } else {
+ fprintf(stderr, "Error opening service (%d).\n", GetLastError());
+ }
+ CloseServiceHandle(hSCManager);
+ exit(0);
}
- exit(0);
}
}
+
#else
if (argv[x] && !strcmp(argv[x], "-u")) {
x++;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_channel.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_channel.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_channel.c Tue May 13 23:37:33 2008
@@ -112,8 +112,8 @@
switch_core_session_t *session;
switch_channel_state_t state;
switch_channel_state_t running_state;
- uint32_t flags;
- uint32_t state_flags;
+ switch_channel_flag_t flags;
+ switch_channel_flag_t state_flags;
switch_caller_profile_t *caller_profile;
const switch_state_handler_table_t *state_handlers[SWITCH_MAX_STATE_HANDLERS];
int state_handler_index;
@@ -424,7 +424,7 @@
switch_assert(channel != NULL);
switch_mutex_lock(channel->profile_mutex);
- if (!(v = switch_event_get_header(channel->variables, (char*)varname))) {
+ if (!channel->variables || !(v = switch_event_get_header(channel->variables, (char*)varname))) {
switch_caller_profile_t *cp = channel->caller_profile;
if (cp) {
@@ -721,7 +721,7 @@
switch_assert(channel != NULL);
- if (!channel->hangup_cause && channel->state > CS_RING && channel->state < CS_HANGUP && channel->state != CS_RESET &&
+ if (!channel->hangup_cause && channel->state > CS_ROUTING && channel->state < CS_HANGUP && channel->state != CS_RESET &&
!switch_test_flag(channel, CF_TRANSFER)) {
ret++;
}
@@ -732,12 +732,12 @@
static const char *state_names[] = {
"CS_NEW",
"CS_INIT",
- "CS_RING",
- "CS_TRANSMIT",
+ "CS_ROUTING",
+ "CS_SOFT_EXECUTE",
"CS_EXECUTE",
- "CS_LOOPBACK",
+ "CS_EXCHANGE_MEDIA",
"CS_PARK",
- "CS_HOLD",
+ "CS_CONSUME_MEDIA",
"CS_HIBERNATE",
"CS_RESET",
"CS_HANGUP",
@@ -776,7 +776,7 @@
channel->state_flags = 0;
}
- if (channel->state >= CS_RING) {
+ if (channel->state >= CS_ROUTING) {
switch_clear_flag(channel, CF_TRANSFER);
switch_channel_presence(channel, "unknown", (char *) state_names[state]);
}
@@ -784,7 +784,7 @@
if (state < CS_HANGUP) {
switch_event_t *event;
if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_STATE) == SWITCH_STATUS_SUCCESS) {
- if (state == CS_RING) {
+ if (state == CS_ROUTING) {
switch_channel_event_set_data(channel, event);
} else {
char state_num[25];
@@ -838,9 +838,9 @@
case CS_NEW:
case CS_INIT:
- case CS_LOOPBACK:
- case CS_TRANSMIT:
- case CS_RING:
+ case CS_EXCHANGE_MEDIA:
+ case CS_SOFT_EXECUTE:
+ case CS_ROUTING:
case CS_EXECUTE:
case CS_HANGUP:
case CS_DONE:
@@ -863,12 +863,12 @@
case CS_INIT:
switch (state) {
-case CS_LOOPBACK:
-case CS_TRANSMIT:
-case CS_RING:
+case CS_EXCHANGE_MEDIA:
+case CS_SOFT_EXECUTE:
+case CS_ROUTING:
case CS_EXECUTE:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_HIBERNATE:
case CS_RESET:
ok++;
@@ -877,13 +877,13 @@
}
break;
-case CS_LOOPBACK:
+case CS_EXCHANGE_MEDIA:
switch (state) {
-case CS_TRANSMIT:
-case CS_RING:
+case CS_SOFT_EXECUTE:
+case CS_ROUTING:
case CS_EXECUTE:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_HIBERNATE:
case CS_RESET:
ok++;
@@ -892,13 +892,13 @@
}
break;
-case CS_TRANSMIT:
+case CS_SOFT_EXECUTE:
switch (state) {
-case CS_LOOPBACK:
-case CS_RING:
+case CS_EXCHANGE_MEDIA:
+case CS_ROUTING:
case CS_EXECUTE:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_HIBERNATE:
case CS_RESET:
ok++;
@@ -909,25 +909,25 @@
case CS_PARK:
switch (state) {
-case CS_LOOPBACK:
-case CS_RING:
+case CS_EXCHANGE_MEDIA:
+case CS_ROUTING:
case CS_EXECUTE:
-case CS_TRANSMIT:
+case CS_SOFT_EXECUTE:
case CS_HIBERNATE:
case CS_RESET:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
ok++;
default:
break;
}
break;
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
switch (state) {
-case CS_LOOPBACK:
-case CS_RING:
+case CS_EXCHANGE_MEDIA:
+case CS_ROUTING:
case CS_EXECUTE:
-case CS_TRANSMIT:
+case CS_SOFT_EXECUTE:
case CS_HIBERNATE:
case CS_RESET:
case CS_PARK:
@@ -938,13 +938,13 @@
break;
case CS_HIBERNATE:
switch (state) {
-case CS_LOOPBACK:
+case CS_EXCHANGE_MEDIA:
case CS_INIT:
-case CS_RING:
+case CS_ROUTING:
case CS_EXECUTE:
-case CS_TRANSMIT:
+case CS_SOFT_EXECUTE:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_RESET:
ok++;
default:
@@ -952,13 +952,13 @@
}
break;
-case CS_RING:
+case CS_ROUTING:
switch (state) {
-case CS_LOOPBACK:
+case CS_EXCHANGE_MEDIA:
case CS_EXECUTE:
-case CS_TRANSMIT:
+case CS_SOFT_EXECUTE:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_HIBERNATE:
case CS_RESET:
ok++;
@@ -969,11 +969,11 @@
case CS_EXECUTE:
switch (state) {
-case CS_LOOPBACK:
-case CS_TRANSMIT:
-case CS_RING:
+case CS_EXCHANGE_MEDIA:
+case CS_SOFT_EXECUTE:
+case CS_ROUTING:
case CS_PARK:
-case CS_HOLD:
+case CS_CONSUME_MEDIA:
case CS_HIBERNATE:
case CS_RESET:
ok++;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core.c Tue May 13 23:37:33 2008
@@ -187,7 +187,7 @@
switch_channel_set_flag(channel, CF_SERVICE);
while (data->running > 0) {
- switch (switch_core_session_read_frame(session, &read_frame, -1, stream_id)) {
+ switch (switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, stream_id)) {
case SWITCH_STATUS_SUCCESS:
case SWITCH_STATUS_TIMEOUT:
case SWITCH_STATUS_BREAK:
@@ -842,6 +842,11 @@
memset(&runtime, 0, sizeof(runtime));
+ runtime.dummy_cng_frame.data = runtime.dummy_data;
+ runtime.dummy_cng_frame.datalen= sizeof(runtime.dummy_data);
+ runtime.dummy_cng_frame.buflen= sizeof(runtime.dummy_data);
+ runtime.dummy_cng_frame.flags = SFF_CNG;
+
switch_set_flag((&runtime), SCF_NO_NEW_SESSIONS);
runtime.hard_log_level = SWITCH_LOG_DEBUG;
runtime.mailer_app = "sendmail";
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_event_hook.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_event_hook.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_event_hook.c Tue May 13 23:37:33 2008
@@ -40,8 +40,6 @@
NEW_HOOK_DECL(video_read_frame)
NEW_HOOK_DECL(video_write_frame)
NEW_HOOK_DECL(kill_channel)
-NEW_HOOK_DECL(waitfor_read)
-NEW_HOOK_DECL(waitfor_write)
NEW_HOOK_DECL(send_dtmf)
NEW_HOOK_DECL(recv_dtmf)
NEW_HOOK_DECL(resurrect_session)
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_io.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_io.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_io.c Tue May 13 23:37:33 2008
@@ -35,20 +35,19 @@
#include <switch.h>
#include "private/switch_core_pvt.h"
-SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id)
+SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
switch_io_event_hook_video_write_frame_t *ptr;
switch_status_t status = SWITCH_STATUS_FALSE;
- switch_io_flag_t flags = 0;
if (switch_channel_get_state(session->channel) >= CS_HANGUP) {
return SWITCH_STATUS_FALSE;
}
if (session->endpoint_interface->io_routines->write_video_frame) {
- if ((status = session->endpoint_interface->io_routines->write_video_frame(session, frame, timeout, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
+ if ((status = session->endpoint_interface->io_routines->write_video_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
for (ptr = session->event_hooks.video_write_frame; ptr; ptr = ptr->next) {
- if ((status = ptr->video_write_frame(session, frame, timeout, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
+ if ((status = ptr->video_write_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
break;
}
}
@@ -57,7 +56,7 @@
return status;
}
-SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id)
+SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
{
switch_status_t status = SWITCH_STATUS_FALSE;
switch_io_event_hook_video_read_frame_t *ptr;
@@ -68,9 +67,9 @@
if (session->endpoint_interface->io_routines->read_video_frame) {
if ((status =
- session->endpoint_interface->io_routines->read_video_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) == SWITCH_STATUS_SUCCESS) {
+ session->endpoint_interface->io_routines->read_video_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
for (ptr = session->event_hooks.video_read_frame; ptr; ptr = ptr->next) {
- if ((status = ptr->video_read_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) != SWITCH_STATUS_SUCCESS) {
+ if ((status = ptr->video_read_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
break;
}
}
@@ -98,12 +97,13 @@
return status;
}
-SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id)
+SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
{
switch_io_event_hook_read_frame_t *ptr;
switch_status_t status;
int need_codec, perfect, do_bugs = 0, do_resample = 0, is_cng = 0;
unsigned int flag = 0;
+
top:
if (switch_channel_get_state(session->channel) >= CS_HANGUP) {
@@ -125,9 +125,9 @@
if (session->endpoint_interface->io_routines->read_frame) {
if ((status =
- session->endpoint_interface->io_routines->read_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) == SWITCH_STATUS_SUCCESS) {
+ session->endpoint_interface->io_routines->read_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
for (ptr = session->event_hooks.read_frame; ptr; ptr = ptr->next) {
- if ((status = ptr->read_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) != SWITCH_STATUS_SUCCESS) {
+ if ((status = ptr->read_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
break;
}
}
@@ -160,7 +160,14 @@
}
switch_assert((*frame)->codec != NULL);
- if ((session->read_codec && (*frame)->codec && session->read_codec->implementation != (*frame)->codec->implementation)) {
+
+ if (!(session->read_codec && session->read_codec->implementation)) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "%s has no read codec.\n", switch_channel_get_name(session->channel));
+ abort();
+ return SWITCH_STATUS_FALSE;
+ }
+
+ if (((*frame)->codec && session->read_codec->implementation != (*frame)->codec->implementation)) {
need_codec = TRUE;
}
@@ -462,19 +469,23 @@
even_more_done:
+ if (!*frame) {
+ *frame = &runtime.dummy_cng_frame;
+ }
+
return status;
}
-static switch_status_t perform_write(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
+static switch_status_t perform_write(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
switch_io_event_hook_write_frame_t *ptr;
switch_status_t status = SWITCH_STATUS_FALSE;
if (session->endpoint_interface->io_routines->write_frame) {
- if ((status = session->endpoint_interface->io_routines->write_frame(session, frame, timeout, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
+ if ((status = session->endpoint_interface->io_routines->write_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
for (ptr = session->event_hooks.write_frame; ptr; ptr = ptr->next) {
- if ((status = ptr->write_frame(session, frame, timeout, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
+ if ((status = ptr->write_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
break;
}
}
@@ -484,13 +495,12 @@
return status;
}
-SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id)
+SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
switch_status_t status = SWITCH_STATUS_FALSE;
switch_frame_t *enc_frame = NULL, *write_frame = frame;
unsigned int flag = 0, need_codec = 0, perfect = 0, do_bugs = 0, do_write = 0, do_resample = 0, ptime_mismatch = 0;
- switch_io_flag_t io_flag = SWITCH_IO_FLAG_NOOP;
switch_assert(session != NULL);
switch_assert(frame != NULL);
@@ -499,18 +509,23 @@
return SWITCH_STATUS_FALSE;
}
+ if (!(session->write_codec && session->write_codec->implementation)) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "%s has no write codec.\n", switch_channel_get_name(session->channel));
+ return SWITCH_STATUS_FALSE;
+ }
+
if (switch_channel_test_flag(session->channel, CF_HOLD)) {
return SWITCH_STATUS_SUCCESS;
}
if (switch_test_flag(frame, SFF_PROXY_PACKET)) {
/* Fast PASS! */
- return perform_write(session, frame, timeout, flag, stream_id);
+ return perform_write(session, frame, flag, stream_id);
}
if (switch_test_flag(frame, SFF_CNG)) {
if (switch_channel_test_flag(session->channel, CF_ACCEPT_CNG)) {
- return perform_write(session, frame, timeout, flag, stream_id);
+ return perform_write(session, frame, flag, stream_id);
}
return SWITCH_STATUS_SUCCESS;
}
@@ -751,7 +766,7 @@
if (flag & SFF_CNG) {
switch_set_flag(write_frame, SFF_CNG);
}
- status = perform_write(session, write_frame, timeout, io_flag, stream_id);
+ status = perform_write(session, write_frame, flags, stream_id);
return status;
} else {
switch_size_t used = switch_buffer_inuse(session->raw_write_buffer);
@@ -857,7 +872,7 @@
switch_set_flag(write_frame, SFF_CNG);
}
- if ((status = perform_write(session, write_frame, timeout, io_flag, stream_id)) != SWITCH_STATUS_SUCCESS) {
+ if ((status = perform_write(session, write_frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
break;
}
}
@@ -873,7 +888,7 @@
done:
if (do_write) {
- return perform_write(session, frame, timeout, io_flag, stream_id);
+ return perform_write(session, frame, flags, stream_id);
}
return status;
}
@@ -907,40 +922,6 @@
return status;
}
-SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_read(switch_core_session_t *session, int timeout, int stream_id)
-{
- switch_io_event_hook_waitfor_read_t *ptr;
- switch_status_t status = SWITCH_STATUS_FALSE;
-
- if (session->endpoint_interface->io_routines->waitfor_read) {
- if ((status = session->endpoint_interface->io_routines->waitfor_read(session, timeout, stream_id)) == SWITCH_STATUS_SUCCESS) {
- for (ptr = session->event_hooks.waitfor_read; ptr; ptr = ptr->next) {
- if ((status = ptr->waitfor_read(session, timeout, stream_id)) != SWITCH_STATUS_SUCCESS) {
- break;
- }
- }
- }
- }
- return status;
-}
-
-SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_write(switch_core_session_t *session, int timeout, int stream_id)
-{
- switch_io_event_hook_waitfor_write_t *ptr;
- switch_status_t status = SWITCH_STATUS_FALSE;
-
- if (session->endpoint_interface->io_routines->waitfor_write) {
- if ((status = session->endpoint_interface->io_routines->waitfor_write(session, timeout, stream_id)) == SWITCH_STATUS_SUCCESS) {
- for (ptr = session->event_hooks.waitfor_write; ptr; ptr = ptr->next) {
- if ((status = ptr->waitfor_write(session, timeout, stream_id)) != SWITCH_STATUS_SUCCESS) {
- break;
- }
- }
- }
- }
- return status;
-}
-
SWITCH_DECLARE(switch_status_t) switch_core_session_recv_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
{
switch_io_event_hook_recv_dtmf_t *ptr;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_sqldb.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_sqldb.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_sqldb.c Tue May 13 23:37:33 2008
@@ -202,7 +202,7 @@
if (trans && ((itterations == target) || nothing_in_queue)) {
- if (switch_core_db_persistant_execute_trans(sql_manager.event_db, sqlbuf, 1000) != SWITCH_STATUS_SUCCESS) {
+ if (switch_core_db_persistant_execute_trans(sql_manager.event_db, sqlbuf, 100) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "SQL thread unable to commit transaction, records lost!\n");
}
itterations = 0;
@@ -237,69 +237,75 @@
switch (event->event_id) {
case SWITCH_EVENT_ADD_SCHEDULE:
sql = switch_mprintf("insert into tasks values('%q','%q','%q','%q')",
- switch_event_get_header(event, "task-id"),
- switch_event_get_header(event, "task-desc"),
- switch_event_get_header(event, "task-group"), switch_event_get_header(event, "task-sql_manager")
- );
+ switch_event_get_header_nil(event, "task-id"),
+ switch_event_get_header_nil(event, "task-desc"),
+ switch_event_get_header_nil(event, "task-group"),
+ switch_event_get_header_nil(event, "task-sql_manager")
+ );
break;
case SWITCH_EVENT_DEL_SCHEDULE:
case SWITCH_EVENT_EXE_SCHEDULE:
- sql = switch_mprintf("delete from tasks where task_id=%q", switch_event_get_header(event, "task-id"));
+ sql = switch_mprintf("delete from tasks where task_id=%q", switch_event_get_header_nil(event, "task-id"));
break;
case SWITCH_EVENT_RE_SCHEDULE:
sql = switch_mprintf("update tasks set task_sql_manager='%q' where task_id=%q",
- switch_event_get_header(event, "task-sql_manager"), switch_event_get_header(event, "task-id"));
+ switch_event_get_header_nil(event, "task-sql_manager"), switch_event_get_header_nil(event, "task-id"));
break;
case SWITCH_EVENT_CHANNEL_DESTROY:
- sql = switch_mprintf("delete from channels where uuid='%q'", switch_event_get_header(event, "unique-id"));
+ sql = switch_mprintf("delete from channels where uuid='%q'", switch_event_get_header_nil(event, "unique-id"));
break;
case SWITCH_EVENT_CHANNEL_CREATE:
- sql = switch_mprintf("insert into channels (uuid,created,created_epoch, name,state) values('%q','%q','%ld','%q','%q')",
- switch_event_get_header(event, "unique-id"),
- switch_event_get_header(event, "event-date-local"),
+ sql = switch_mprintf("insert into channels (uuid,created,created_epoch, name,state,dialplan,context) values('%q','%q','%ld','%q','%q','%q','%q')",
+ switch_event_get_header_nil(event, "unique-id"),
+ switch_event_get_header_nil(event, "event-date-local"),
(long)switch_timestamp(NULL),
- switch_event_get_header(event, "channel-name"),
- switch_event_get_header(event, "channel-state")
+ switch_event_get_header_nil(event, "channel-name"),
+ switch_event_get_header_nil(event, "channel-state"),
+ switch_event_get_header_nil(event, "caller-dialplan"),
+ switch_event_get_header_nil(event, "caller-context")
);
break;
case SWITCH_EVENT_CODEC:
sql =
switch_mprintf
("update channels set read_codec='%q',read_rate='%q',write_codec='%q',write_rate='%q' where uuid='%q'",
- switch_event_get_header(event, "channel-read-codec-name"), switch_event_get_header(event,
+ switch_event_get_header_nil(event, "channel-read-codec-name"), switch_event_get_header_nil(event,
"channel-read-codec-rate"),
- switch_event_get_header(event, "channel-write-codec-name"), switch_event_get_header(event,
+ switch_event_get_header_nil(event, "channel-write-codec-name"), switch_event_get_header_nil(event,
"channel-write-codec-rate"),
- switch_event_get_header(event, "unique-id"));
+ switch_event_get_header_nil(event, "unique-id"));
break;
case SWITCH_EVENT_CHANNEL_EXECUTE:
sql = switch_mprintf("update channels set application='%q',application_data='%q' where uuid='%q'",
- switch_event_get_header(event, "application"),
- switch_event_get_header(event, "application-data"), switch_event_get_header(event, "unique-id")
+ switch_event_get_header_nil(event, "application"),
+ switch_event_get_header_nil(event, "application-data"), switch_event_get_header_nil(event, "unique-id")
);
break;
case SWITCH_EVENT_CHANNEL_STATE:
if (event) {
- char *state = switch_event_get_header(event, "channel-state-number");
+ char *state = switch_event_get_header_nil(event, "channel-state-number");
switch_channel_state_t state_i = atoi(state);
switch (state_i) {
case CS_HANGUP:
case CS_DONE:
break;
- case CS_RING:
- sql = switch_mprintf("update channels set state='%s',cid_name='%q',cid_num='%q',ip_addr='%s',dest='%q' "
+ case CS_ROUTING:
+ sql = switch_mprintf("update channels set state='%s',cid_name='%q',cid_num='%q',ip_addr='%s',dest='%q',dialplan='%q',context='%q' "
"where uuid='%s'",
- switch_event_get_header(event, "channel-state"),
- switch_event_get_header(event, "caller-caller-id-name"),
- switch_event_get_header(event, "caller-caller-id-number"),
- switch_event_get_header(event, "caller-network-addr"),
- switch_event_get_header(event, "caller-destination-number"), switch_event_get_header(event, "unique-id")
+ switch_event_get_header_nil(event, "channel-state"),
+ switch_event_get_header_nil(event, "caller-caller-id-name"),
+ switch_event_get_header_nil(event, "caller-caller-id-number"),
+ switch_event_get_header_nil(event, "caller-network-addr"),
+ switch_event_get_header_nil(event, "caller-destination-number"),
+ switch_event_get_header_nil(event, "caller-dialplan"),
+ switch_event_get_header_nil(event, "caller-context"),
+ switch_event_get_header_nil(event, "unique-id")
);
break;
default:
sql = switch_mprintf("update channels set state='%s' where uuid='%s'",
- switch_event_get_header(event, "channel-state"), switch_event_get_header(event, "unique-id")
+ switch_event_get_header_nil(event, "channel-state"), switch_event_get_header_nil(event, "unique-id")
);
break;
}
@@ -308,22 +314,22 @@
break;
case SWITCH_EVENT_CHANNEL_BRIDGE:
sql = switch_mprintf("insert into calls values ('%s', '%ld', '%s','%q','%q','%q','%q','%s','%q','%q','%q','%q','%s')",
- switch_event_get_header(event, "event-date-local"),
+ switch_event_get_header_nil(event, "event-date-local"),
(long)switch_timestamp(NULL),
- switch_event_get_header(event, "event-calling-function"),
- switch_event_get_header(event, "caller-caller-id-name"),
- switch_event_get_header(event, "caller-caller-id-number"),
- switch_event_get_header(event, "caller-destination-number"),
- switch_event_get_header(event, "caller-channel-name"),
- switch_event_get_header(event, "caller-unique-id"),
- switch_event_get_header(event, "Other-Leg-caller-id-name"),
- switch_event_get_header(event, "Other-Leg-caller-id-number"),
- switch_event_get_header(event, "Other-Leg-destination-number"),
- switch_event_get_header(event, "Other-Leg-channel-name"), switch_event_get_header(event, "Other-Leg-unique-id")
+ switch_event_get_header_nil(event, "event-calling-function"),
+ switch_event_get_header_nil(event, "caller-caller-id-name"),
+ switch_event_get_header_nil(event, "caller-caller-id-number"),
+ switch_event_get_header_nil(event, "caller-destination-number"),
+ switch_event_get_header_nil(event, "caller-channel-name"),
+ switch_event_get_header_nil(event, "caller-unique-id"),
+ switch_event_get_header_nil(event, "Other-Leg-caller-id-name"),
+ switch_event_get_header_nil(event, "Other-Leg-caller-id-number"),
+ switch_event_get_header_nil(event, "Other-Leg-destination-number"),
+ switch_event_get_header_nil(event, "Other-Leg-channel-name"), switch_event_get_header_nil(event, "Other-Leg-unique-id")
);
break;
case SWITCH_EVENT_CHANNEL_UNBRIDGE:
- sql = switch_mprintf("delete from calls where caller_uuid='%s'", switch_event_get_header(event, "caller-unique-id"));
+ sql = switch_mprintf("delete from calls where caller_uuid='%s'", switch_event_get_header_nil(event, "caller-unique-id"));
break;
case SWITCH_EVENT_SHUTDOWN:
sql = switch_mprintf("delete from channels;delete from interfaces;delete from calls");
@@ -332,10 +338,10 @@
return;
case SWITCH_EVENT_MODULE_LOAD:
{
- const char *type = switch_event_get_header(event, "type");
- const char *name = switch_event_get_header(event, "name");
- const char *description = switch_event_get_header(event, "description");
- const char *syntax = switch_event_get_header(event, "syntax");
+ const char *type = switch_event_get_header_nil(event, "type");
+ const char *name = switch_event_get_header_nil(event, "name");
+ const char *description = switch_event_get_header_nil(event, "description");
+ const char *syntax = switch_event_get_header_nil(event, "syntax");
if (!switch_strlen_zero(type) && !switch_strlen_zero(name)) {
sql =
switch_mprintf("insert into interfaces (type,name,description,syntax) values('%q','%q','%q','%q')",
@@ -401,6 +407,8 @@
" dest VARCHAR(255),\n"
" application VARCHAR(255),\n"
" application_data VARCHAR(255),\n"
+ " dialplan VARCHAR(255),\n"
+ " context VARCHAR(255),\n"
" read_codec VARCHAR(255),\n"
" read_rate VARCHAR(255),\n"
" write_codec VARCHAR(255),\n"
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_state_machine.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_state_machine.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_state_machine.c Tue May 13 23:37:33 2008
@@ -54,7 +54,7 @@
switch_channel_get_name(session->channel));
}
-static void switch_core_standard_on_ring(switch_core_session_t *session)
+static void switch_core_standard_on_routing(switch_core_session_t *session)
{
switch_dialplan_interface_t *dialplan_interface = NULL;
switch_caller_profile_t *caller_profile;
@@ -62,7 +62,7 @@
char *expanded = NULL;
char *dpstr = NULL;
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Standard RING %s\n", switch_channel_get_name(session->channel));
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Standard ROUTING %s\n", switch_channel_get_name(session->channel));
if ((caller_profile = switch_channel_get_caller_profile(session->channel)) == 0) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Can't get profile!\n");
@@ -103,7 +103,7 @@
if (!count) {
if (switch_channel_test_flag(session->channel, CF_OUTBOUND)) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "No Dialplan, changing state to HOLD\n");
- switch_channel_set_state(session->channel, CS_HOLD);
+ switch_channel_set_state(session->channel, CS_CONSUME_MEDIA);
goto end;
}
}
@@ -157,14 +157,14 @@
}
}
-static void switch_core_standard_on_loopback(switch_core_session_t *session)
+static void switch_core_standard_on_exchange_media(switch_core_session_t *session)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Standard LOOPBACK\n");
switch_ivr_session_echo(session);
}
-static void switch_core_standard_on_transmit(switch_core_session_t *session)
+static void switch_core_standard_on_soft_execute(switch_core_session_t *session)
{
switch_assert(session != NULL);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Standard TRANSMIT\n");
@@ -179,7 +179,7 @@
switch_ivr_park(session, NULL);
}
-static void switch_core_standard_on_hold(switch_core_session_t *session)
+static void switch_core_standard_on_consume_media(switch_core_session_t *session)
{
switch_assert(session != NULL);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Standard HOLD\n");
@@ -369,7 +369,7 @@
break;
case CS_DONE:
goto done;
- /* HANGUP INIT RING and RESET are all short term so we signal lock during their callbacks */
+ /* HANGUP INIT ROUTING and RESET are all short term so we signal lock during their callbacks */
case CS_HANGUP: /* Deactivate and end the thread */
{
const char *var = switch_channel_get_variable(session->channel, SWITCH_PROCESS_CDR_VARIABLE);
@@ -413,9 +413,9 @@
STATE_MACRO(init, "INIT");
switch_core_session_signal_unlock(session);
break;
- case CS_RING: /* Look for a dialplan and find something to do */
+ case CS_ROUTING: /* Look for a dialplan and find something to do */
switch_core_session_signal_lock(session);
- STATE_MACRO(ring, "RING");
+ STATE_MACRO(routing, "ROUTING");
switch_core_session_signal_unlock(session);
break;
case CS_RESET: /* Reset */
@@ -427,17 +427,17 @@
case CS_EXECUTE: /* Execute an Operation */
STATE_MACRO(execute, "EXECUTE");
break;
- case CS_LOOPBACK: /* loop all data back to source */
- STATE_MACRO(loopback, "LOOPBACK");
+ case CS_EXCHANGE_MEDIA: /* loop all data back to source */
+ STATE_MACRO(exchange_media, "EXCHANGE_MEDIA");
break;
- case CS_TRANSMIT: /* send/recieve data to/from another channel */
- STATE_MACRO(transmit, "TRANSMIT");
+ case CS_SOFT_EXECUTE: /* send/recieve data to/from another channel */
+ STATE_MACRO(soft_execute, "SOFT_EXECUTE");
break;
case CS_PARK: /* wait in limbo */
STATE_MACRO(park, "PARK");
break;
- case CS_HOLD: /* wait in limbo */
- STATE_MACRO(hold, "HOLD");
+ case CS_CONSUME_MEDIA: /* wait in limbo */
+ STATE_MACRO(consume_media, "CONSUME_MEDIA");
break;
case CS_HIBERNATE: /* sleep */
STATE_MACRO(hibernate, "HIBERNATE");
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_cpp.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_cpp.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_cpp.cpp Tue May 13 23:37:33 2008
@@ -270,13 +270,13 @@
return NULL;
}
-SWITCH_DECLARE(char *)Event::getType(void)
+SWITCH_DECLARE(const char *)Event::getType(void)
{
if (event) {
return switch_event_name(event->event_id);
}
- return "invalid";
+ return (char *) "invalid";
}
SWITCH_DECLARE_CONSTRUCTOR Stream::Stream()
@@ -352,7 +352,7 @@
allocated = 1;
switch_set_flag(this, S_HUP);
uuid = strdup(switch_core_session_get_uuid(session));
- switch_channel_set_state(switch_core_session_get_channel(session), CS_TRANSMIT);
+ switch_channel_set_state(switch_core_session_get_channel(session), CS_SOFT_EXECUTE);
}
}
}
@@ -382,11 +382,38 @@
switch_core_session_rwunlock(session);
}
+ switch_safe_free(xml_cdr_text);
switch_safe_free(uuid);
switch_safe_free(tts_name);
switch_safe_free(voice_name);
}
+SWITCH_DECLARE(char *) CoreSession::getXMLCDR()
+{
+
+ switch_xml_t cdr;
+
+ sanity_check((char *)"");
+
+ switch_safe_free(xml_cdr_text);
+
+ if (switch_ivr_generate_xml_cdr(session, &cdr) == SWITCH_STATUS_SUCCESS) {
+ xml_cdr_text = switch_xml_toxml(cdr, SWITCH_FALSE);
+ switch_xml_free(cdr);
+ }
+
+ return (char *) (xml_cdr_text ? xml_cdr_text : "");
+}
+
+SWITCH_DECLARE(void) CoreSession::setEventData(Event *e)
+{
+ sanity_check_noreturn;
+
+ if (channel && e->event) {
+ switch_channel_event_set_data(channel, e->event);
+ }
+}
+
SWITCH_DECLARE(int) CoreSession::answer()
{
switch_status_t status;
@@ -408,7 +435,9 @@
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CoreSession::hangup\n");
sanity_check_noreturn;
+ this->begin_allow_threads();
switch_channel_hangup(channel, switch_channel_str2cause(cause));
+ this->end_allow_threads();
}
SWITCH_DECLARE(void) CoreSession::setPrivate(char *var, void *val)
@@ -532,7 +561,7 @@
int timeout)
{
switch_status_t status;
- sanity_check("");
+ sanity_check((char *)"");
begin_allow_threads();
char terminator;
@@ -594,7 +623,7 @@
char *digits_regex)
{
switch_status_t status;
- sanity_check("");
+ sanity_check((char *)"");
begin_allow_threads();
memset(dtmf_buf, 0, sizeof(dtmf_buf));
status = switch_play_and_get_digits( session,
@@ -694,7 +723,7 @@
if (a_leg_session) a_leg_session->end_allow_threads();
channel = switch_core_session_get_channel(session);
allocated = 1;
- switch_channel_set_state(switch_core_session_get_channel(session), CS_TRANSMIT);
+ switch_channel_set_state(switch_core_session_get_channel(session), CS_SOFT_EXECUTE);
return SWITCH_STATUS_SUCCESS;
@@ -909,7 +938,6 @@
}
-
SWITCH_DECLARE(switch_status_t) CoreSession::process_callback_result(char *ret)
{
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_event.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_event.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_event.c Tue May 13 23:37:33 2008
@@ -297,7 +297,7 @@
return SYSTEM_RUNNING ? SWITCH_STATUS_SUCCESS : SWITCH_STATUS_FALSE;
}
-SWITCH_DECLARE(char *) switch_event_name(switch_event_types_t event)
+SWITCH_DECLARE(const char *) switch_event_name(switch_event_types_t event)
{
switch_assert(BLOCK != NULL);
switch_assert(RUNTIME_POOL != NULL);
@@ -510,6 +510,7 @@
SWITCH_DECLARE(char *) switch_event_get_header(switch_event_t *event, char *header_name)
{
switch_event_header_t *hp;
+ switch_assert(event);
if (!header_name) return NULL;
for (hp = event->headers; hp; hp = hp->next) {
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr.c Tue May 13 23:37:33 2008
@@ -60,11 +60,16 @@
break;
}
+ if (switch_channel_test_flag(channel, CF_PROXY_MODE)) {
+ switch_yield(1000);
+ continue;
+ }
+
if (switch_channel_test_flag(channel, CF_SERVICE) ||
(!switch_channel_test_flag(channel, CF_ANSWERED) && !switch_channel_test_flag(channel, CF_EARLY_MEDIA))) {
switch_yield(1000);
} else {
- status = switch_core_session_read_frame(session, &read_frame, left, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
}
@@ -93,7 +98,7 @@
}
conninfo->write_frame.datalen = (uint32_t)len;
conninfo->write_frame.samples = conninfo->write_frame.datalen / 2;
- switch_core_session_write_frame(conninfo->session, &conninfo->write_frame, -1, conninfo->stream_id);
+ switch_core_session_write_frame(conninfo->session, &conninfo->write_frame, SWITCH_IO_FLAG_NONE, conninfo->stream_id);
}
switch_clear_flag_locked(conninfo, SUF_READY);
@@ -276,7 +281,7 @@
int frame_count = atoi(lead_frames);
while(frame_count > 0) {
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
goto done;
}
@@ -449,7 +454,7 @@
while (switch_channel_ready(channel) && switch_channel_test_flag(channel, CF_CONTROLLED)) {
- if ((status = switch_core_session_read_frame(session, &read_frame, -1, stream_id)) == SWITCH_STATUS_SUCCESS) {
+ if ((status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, stream_id)) == SWITCH_STATUS_SUCCESS) {
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
}
@@ -615,7 +620,7 @@
if (switch_channel_test_flag(channel, CF_SERVICE)) {
switch_yield(1000);
} else {
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
}
if (!SWITCH_READ_ACCEPTABLE(status)) {
@@ -731,7 +736,7 @@
if (switch_channel_test_flag(channel, CF_SERVICE)) {
switch_yield(1000);
} else {
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
}
@@ -843,7 +848,7 @@
switch_core_session_receive_message(session, &msg);
switch_channel_wait_for_flag(channel, CF_REQ_MEDIA, SWITCH_FALSE, 10000);
- switch_core_session_read_frame(session, &read_frame, -1, 0);
+ switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if ((flags & SMF_REBRIDGE)
&& (other_uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BRIDGE_VARIABLE))
@@ -852,7 +857,7 @@
switch_assert(other_channel != NULL);
switch_core_session_receive_message(other_session, &msg);
switch_channel_wait_for_flag(other_channel, CF_REQ_MEDIA, SWITCH_FALSE, 10000);
- switch_core_session_read_frame(other_session, &read_frame, -1, 0);
+ switch_core_session_read_frame(other_session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
switch_channel_clear_state_handler(other_channel, NULL);
switch_core_session_rwunlock(other_session);
}
@@ -1023,7 +1028,7 @@
switch_channel_set_caller_profile(channel, new_profile);
switch_channel_set_flag(channel, CF_TRANSFER);
- switch_channel_set_state(channel, CS_RING);
+ switch_channel_set_state(channel, CS_ROUTING);
msg.message_id = SWITCH_MESSAGE_INDICATE_TRANSFER;
msg.from = __FILE__;
@@ -1642,7 +1647,7 @@
write_frame.codec = read_codec;
while(switch_channel_ready(channel)) {
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
}
@@ -1653,7 +1658,7 @@
if ((jb_frame = stfu_n_read_a_frame(jb))) {
write_frame.data = jb_frame->data;
write_frame.datalen = (uint32_t)jb_frame->dlen;
- status = switch_core_session_write_frame(session, &write_frame, -1, 0);
+ status = switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
}
@@ -1663,6 +1668,21 @@
stfu_n_destroy(&jb);
}
+SWITCH_DECLARE(switch_status_t) switch_ivr_say(switch_core_session_t *session, const char *tosay, const char *module_name, const char *say_type, const char *say_method, switch_input_args_t *args)
+{
+ switch_say_interface_t *si;
+ switch_status_t status = SWITCH_STATUS_SUCCESS;
+
+ if ((si = switch_loadable_module_get_say_interface(module_name))) {
+ // should go back and proto all the say mods to const....
+ status = si->say_function(session, (char *)tosay, switch_ivr_get_say_type_by_name(say_type), switch_ivr_get_say_method_by_name(say_method), args);
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid SAY Interface [%s]!\n", module_name);
+ status = SWITCH_STATUS_FALSE;
+ }
+
+ return status;
+}
/* For Emacs:
* Local Variables:
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_async.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_async.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_async.c Tue May 13 23:37:33 2008
@@ -49,7 +49,7 @@
eh->up = 1;
while(switch_channel_ready(channel)) {
- status = switch_core_session_read_video_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_video_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
@@ -59,7 +59,7 @@
continue;
}
- switch_core_session_write_video_frame(session, read_frame, -1, 0);
+ switch_core_session_write_video_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0);
}
eh->up = 0;
@@ -91,14 +91,14 @@
#endif
while(switch_channel_ready(channel)) {
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
}
- switch_core_session_write_frame(session, read_frame, -1, 0);
+ switch_core_session_write_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0);
#ifndef SWITCH_VIDEO_IN_THREADS
- status = switch_core_session_read_video_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_video_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
@@ -108,7 +108,7 @@
continue;
}
- switch_core_session_write_video_frame(session, read_frame, -1, 0);
+ switch_core_session_write_video_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0);
#endif
}
@@ -308,7 +308,7 @@
read_codec->implementation->number_of_channels,
read_codec->implementation->actual_samples_per_second,
SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT,
- switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
+ NULL) != SWITCH_STATUS_SUCCESS) {
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
switch_core_session_reset(session, SWITCH_TRUE);
return SWITCH_STATUS_GENERR;
@@ -590,7 +590,7 @@
char *fcommand = NULL;
char db[2] = "";
- status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
goto end;
@@ -676,7 +676,7 @@
while (switch_buffer_inuse(ep->buffer) >= len) {
write_frame.datalen = (uint32_t)switch_buffer_read(ep->buffer, buf, len);
write_frame.samples = write_frame.datalen / 2;
- if ((status = switch_core_session_write_frame(session, &write_frame, 1000, 0)) != SWITCH_STATUS_SUCCESS) {
+ if ((status = switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0)) != SWITCH_STATUS_SUCCESS) {
break;
}
}
@@ -755,7 +755,7 @@
file,
channels,
read_codec->implementation->actual_samples_per_second,
- SWITCH_FILE_FLAG_WRITE | SWITCH_FILE_DATA_SHORT, switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
+ SWITCH_FILE_FLAG_WRITE | SWITCH_FILE_DATA_SHORT, NULL) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error opening %s\n", file);
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
switch_core_session_reset(session, SWITCH_TRUE);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_bridge.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_bridge.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_bridge.c Tue May 13 23:37:33 2008
@@ -52,13 +52,13 @@
vh->up = 1;
while(switch_channel_ready(channel) && vh->up == 1) {
- status = switch_core_session_read_video_frame(vh->session_a, &read_frame, -1, 0);
+ status = switch_core_session_read_video_frame(vh->session_a, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
}
- switch_core_session_write_video_frame(vh->session_b, read_frame, -1, 0);
+ switch_core_session_write_video_frame(vh->session_b, read_frame, SWITCH_IO_FLAG_NONE, 0);
}
vh->up = 0;
@@ -161,12 +161,8 @@
}
if (!nosuspend && (switch_channel_test_flag(chan_a, CF_SUSPEND) || switch_channel_test_flag(chan_b, CF_SUSPEND))) {
- if (switch_channel_test_flag(chan_a, CF_SUSPEND)) {
- status = SWITCH_STATUS_SUCCESS;
- } else {
- status = switch_core_session_read_frame(session_a, &read_frame, -1, stream_id);
- }
-
+ status = switch_core_session_read_frame(session_a, &read_frame, SWITCH_IO_FLAG_NONE, stream_id);
+
if (!SWITCH_READ_ACCEPTABLE(status)) {
goto end_of_bridge_loop;
}
@@ -250,18 +246,18 @@
#ifndef SWITCH_VIDEO_IN_THREADS
if (switch_channel_test_flag(chan_a, CF_VIDEO) && switch_channel_test_flag(chan_b, CF_VIDEO)) {
/* read video from 1 channel and write it to the other */
- status = switch_core_session_read_video_frame(session_a, &read_frame, -1, 0);
+ status = switch_core_session_read_video_frame(session_a, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
goto end_of_bridge_loop;
}
- switch_core_session_write_video_frame(session_b, read_frame, -1, 0);
+ switch_core_session_write_video_frame(session_b, read_frame, SWITCH_IO_FLAG_NONE, 0);
}
#endif
/* read audio from 1 channel and write it to the other */
- status = switch_core_session_read_frame(session_a, &read_frame, -1, stream_id);
+ status = switch_core_session_read_frame(session_a, &read_frame, SWITCH_IO_FLAG_NONE, stream_id);
if (SWITCH_READ_ACCEPTABLE(status)) {
if (switch_test_flag(read_frame, SFF_CNG)) {
@@ -269,7 +265,7 @@
}
if (status != SWITCH_STATUS_BREAK && !switch_channel_test_flag(chan_a, CF_HOLD)) {
- if (switch_core_session_write_frame(session_b, read_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
+ if (switch_core_session_write_frame(session_b, read_frame, SWITCH_IO_FLAG_NONE, stream_id) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "write: %s Bad Frame....[%u] Bubye!\n",
switch_channel_get_name(chan_b), read_frame->datalen);
goto end_of_bridge_loop;
@@ -354,7 +350,7 @@
return NULL;
}
-static switch_status_t audio_bridge_on_loopback(switch_core_session_t *session)
+static switch_status_t audio_bridge_on_exchange_media(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
switch_ivr_bridge_data_t *bd = switch_channel_get_private(channel, "_bridge_");
@@ -374,25 +370,25 @@
state = switch_channel_get_state(channel);
- if (!switch_channel_test_flag(channel, CF_TRANSFER) && state != CS_PARK && state != CS_RING) {
+ if (!switch_channel_test_flag(channel, CF_TRANSFER) && state != CS_PARK && state != CS_ROUTING) {
switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);
}
return SWITCH_STATUS_FALSE;
}
-static switch_status_t audio_bridge_on_ring(switch_core_session_t *session)
+static switch_status_t audio_bridge_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CUSTOM RING\n", switch_channel_get_name(channel));
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CUSTOM ROUTING\n", switch_channel_get_name(channel));
/* put the channel in a passive state so we can loop audio to it */
- switch_channel_set_state(channel, CS_HOLD);
+ switch_channel_set_state(channel, CS_CONSUME_MEDIA);
return SWITCH_STATUS_FALSE;
}
-static switch_status_t audio_bridge_on_hold(switch_core_session_t *session)
+static switch_status_t audio_bridge_on_consume_media(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
@@ -404,12 +400,12 @@
static const switch_state_handler_table_t audio_bridge_peer_state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ audio_bridge_on_ring,
+ /*.on_routing */ audio_bridge_on_routing,
/*.on_execute */ NULL,
/*.on_hangup */ NULL,
- /*.on_loopback */ audio_bridge_on_loopback,
- /*.on_transmit */ NULL,
- /*.on_hold */ audio_bridge_on_hold,
+ /*.on_exchange_media */ audio_bridge_on_exchange_media,
+ /*.on_soft_execute */ NULL,
+ /*.on_consume_media */ audio_bridge_on_consume_media,
};
static switch_status_t uuid_bridge_on_reset(switch_core_session_t *session)
@@ -421,13 +417,13 @@
switch_channel_clear_flag(channel, CF_TRANSFER);
if (switch_channel_test_flag(channel, CF_ORIGINATOR)) {
- switch_channel_set_state(channel, CS_TRANSMIT);
+ switch_channel_set_state(channel, CS_SOFT_EXECUTE);
}
return SWITCH_STATUS_SUCCESS;
}
-static switch_status_t uuid_bridge_on_transmit(switch_core_session_t *session)
+static switch_status_t uuid_bridge_on_soft_execute(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
switch_core_session_t *other_session;
@@ -459,10 +455,10 @@
}
if (switch_channel_get_state(other_channel) == CS_RESET) {
- switch_channel_set_state(other_channel, CS_TRANSMIT);
+ switch_channel_set_state(other_channel, CS_SOFT_EXECUTE);
}
- switch_channel_wait_for_state(channel, other_channel, CS_TRANSMIT);
+ switch_channel_wait_for_state(channel, other_channel, CS_SOFT_EXECUTE);
switch_channel_clear_flag(channel, CF_TRANSFER);
switch_channel_clear_flag(other_channel, CF_TRANSFER);
@@ -512,12 +508,12 @@
static const switch_state_handler_table_t uuid_bridge_state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ NULL,
+ /*.on_routing */ NULL,
/*.on_execute */ NULL,
/*.on_hangup */ NULL,
- /*.on_loopback */ NULL,
- /*.on_transmit */ uuid_bridge_on_transmit,
- /*.on_hold */ NULL,
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ uuid_bridge_on_soft_execute,
+ /*.on_consume_media */ NULL,
/*.on_hibernate*/ NULL,
/*.on_reset*/ uuid_bridge_on_reset
};
@@ -572,12 +568,12 @@
static const switch_state_handler_table_t signal_bridge_state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ NULL,
+ /*.on_routing */ NULL,
/*.on_execute */ NULL,
/*.on_hangup */ signal_bridge_on_hangup,
- /*.on_loopback */ NULL,
- /*.on_transmit */ NULL,
- /*.on_hold */ NULL,
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ NULL,
+ /*.on_consume_media */ NULL,
/*.on_hibernate */ signal_bridge_on_hibernate
};
@@ -681,7 +677,7 @@
const switch_application_interface_t *application_interface;
const char *app, *data;
- switch_channel_set_state(peer_channel, CS_HOLD);
+ switch_channel_set_state(peer_channel, CS_CONSUME_MEDIA);
if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_BRIDGE) == SWITCH_STATUS_SUCCESS) {
switch_channel_event_set_data(caller_channel, event);
@@ -697,7 +693,7 @@
if ((status = switch_ivr_wait_for_answer(session, peer_session)) != SWITCH_STATUS_SUCCESS) {
switch_channel_state_t w_state = switch_channel_get_state(caller_channel);
switch_channel_hangup(peer_channel, SWITCH_CAUSE_ALLOTTED_TIMEOUT);
- if (w_state < CS_HANGUP && w_state != CS_RING && w_state != CS_PARK && !switch_channel_test_flag(caller_channel, CF_TRANSFER) &&
+ if (w_state < CS_HANGUP && w_state != CS_ROUTING && w_state != CS_PARK && !switch_channel_test_flag(caller_channel, CF_TRANSFER) &&
w_state != CS_EXECUTE) {
const char *ext = switch_channel_get_variable(peer_channel, "original_destination_number");
if (!ext) {
@@ -757,17 +753,17 @@
}
switch_channel_set_private(peer_channel, "_bridge_", b_leg);
- switch_channel_set_state(peer_channel, CS_LOOPBACK);
+ switch_channel_set_state(peer_channel, CS_EXCHANGE_MEDIA);
audio_bridge_thread(NULL, (void *) a_leg);
switch_channel_clear_flag(caller_channel, CF_ORIGINATOR);
//make sure this doesnt break anything
- if (!switch_channel_test_flag(peer_channel, CF_TRANSFER) && switch_channel_get_state(peer_channel) == CS_LOOPBACK) {
+ if (!switch_channel_test_flag(peer_channel, CF_TRANSFER) && switch_channel_get_state(peer_channel) == CS_EXCHANGE_MEDIA) {
switch_channel_set_state(peer_channel, CS_RESET);
}
- while (switch_channel_get_state(peer_channel) == CS_LOOPBACK) {
+ while (switch_channel_get_state(peer_channel) == CS_EXCHANGE_MEDIA) {
switch_yield(1000);
}
@@ -800,7 +796,7 @@
state = switch_channel_get_state(caller_channel);
if (!switch_channel_test_flag(caller_channel, CF_TRANSFER)) {
- if ((state != CS_EXECUTE && state != CS_PARK && state != CS_RING) ||
+ if ((state != CS_EXECUTE && state != CS_PARK && state != CS_ROUTING) ||
(switch_channel_test_flag(peer_channel, CF_ANSWERED) && state < CS_HANGUP &&
switch_true(switch_channel_get_variable(caller_channel, SWITCH_HANGUP_AFTER_BRIDGE_VARIABLE)))) {
switch_channel_hangup(caller_channel, switch_channel_get_cause(peer_channel));
@@ -849,7 +845,7 @@
/* override transmit state for originator_channel to bridge to originatee_channel
* install pointer to originatee_session into originator_channel
- * set CF_TRANSFER on both channels and change state to CS_TRANSMIT to
+ * set CF_TRANSFER on both channels and change state to CS_SOFT_EXECUTE to
* inturrupt anything they are already doing.
* originatee_session will fall asleep and originator_session will bridge to it
*/
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_originate.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_originate.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_originate.c Tue May 13 23:37:33 2008
@@ -34,12 +34,14 @@
static const switch_state_handler_table_t originate_state_handlers;
-static switch_status_t originate_on_hold_transmit(switch_core_session_t *session)
+static switch_status_t originate_on_consume_media_transmit(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
- while(switch_channel_get_state(channel) == CS_HOLD) {
- switch_ivr_sleep(session, 10);
+ if (!switch_channel_test_flag(channel, CF_PROXY_MODE)) {
+ while(switch_channel_get_state(channel) == CS_CONSUME_MEDIA) {
+ switch_ivr_sleep(session, 10);
+ }
}
switch_channel_clear_state_handler(channel, &originate_state_handlers);
@@ -47,24 +49,24 @@
return SWITCH_STATUS_FALSE;
}
-static switch_status_t originate_on_ring(switch_core_session_t *session)
+static switch_status_t originate_on_routing(switch_core_session_t *session)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
/* put the channel in a passive state until it is answered */
- switch_channel_set_state(channel, CS_HOLD);
+ switch_channel_set_state(channel, CS_CONSUME_MEDIA);
return SWITCH_STATUS_FALSE;
}
static const switch_state_handler_table_t originate_state_handlers = {
/*.on_init */ NULL,
- /*.on_ring */ originate_on_ring,
+ /*.on_routing */ originate_on_routing,
/*.on_execute */ NULL,
/*.on_hangup */ NULL,
- /*.on_loopback */ NULL,
- /*.on_transmit */ originate_on_hold_transmit,
- /*.on_hold */ originate_on_hold_transmit
+ /*.on_exchange_media */ NULL,
+ /*.on_soft_execute */ originate_on_consume_media_transmit,
+ /*.on_consume_media */ originate_on_consume_media_transmit
};
typedef enum {
@@ -113,7 +115,7 @@
goto wbreak;
}
- switch_channel_set_state(channel, CS_TRANSMIT);
+ switch_channel_set_state(channel, CS_SOFT_EXECUTE);
switch_core_session_exec(collect->session, application_interface, app_data);
if (switch_channel_get_state(channel) < CS_HANGUP) {
@@ -341,7 +343,7 @@
read_codec->implementation->number_of_channels,
read_codec->implementation->actual_samples_per_second,
SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT,
- switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
+ NULL) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Playing File\n");
switch_safe_free(tmp_data);
goto done;
@@ -383,7 +385,7 @@
message = NULL;
}
}
- status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
}
@@ -421,7 +423,7 @@
}
}
- if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
+ if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
break;
}
} else {
@@ -884,7 +886,7 @@
if (!switch_core_session_running(peer_sessions[i])) {
//if (!(flags & SOF_NOBLOCK)) {
- //switch_channel_set_state(peer_channels[i], CS_RING);
+ //switch_channel_set_state(peer_channels[i], CS_ROUTING);
//}
//} else {
switch_core_session_thread_launch(peer_sessions[i]);
@@ -910,7 +912,7 @@
continue;
}
- if (state >= CS_RING) {
+ if (state >= CS_ROUTING) {
goto endfor1;
}
@@ -994,7 +996,7 @@
read_codec->implementation->number_of_channels,
read_codec->implementation->actual_samples_per_second,
SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT,
- switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
+ NULL) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Playing File\n");
switch_safe_free(tmp_data);
goto notready;
@@ -1057,11 +1059,13 @@
}
}
- /* read from the channel while we wait if the audio is up on it */
- if (session && (ringback_data ||
- !(switch_channel_test_flag(caller_channel, CF_PROXY_MODE) && switch_channel_test_flag(caller_channel, CF_PROXY_MODE))) &&
- (switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA))) {
- switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, 1000, 0);
+ /* read from the channel while we wait if the audio is up on it */
+ if (session &&
+ !switch_channel_test_flag(caller_channel, CF_PROXY_MODE) &&
+ !switch_channel_test_flag(caller_channel, CF_PROXY_MEDIA) &&
+ (ringback_data || (switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA)))) {
+
+ switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(tstatus)) {
break;
@@ -1100,7 +1104,7 @@
}
}
- if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
+ if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
break;
}
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_play_say.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_play_say.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_play_say.c Tue May 13 23:37:33 2008
@@ -65,7 +65,7 @@
NULL
};
-static switch_say_method_t get_say_method_by_name(char *name)
+SWITCH_DECLARE(switch_say_method_t) switch_ivr_get_say_method_by_name(const char *name)
{
int x = 0;
for (x = 0; SAY_METHOD_NAMES[x]; x++) {
@@ -77,7 +77,7 @@
return (switch_say_method_t) x;
}
-static switch_say_type_t get_say_type_by_name(char *name)
+SWITCH_DECLARE(switch_say_type_t) switch_ivr_get_say_type_by_name(const char *name)
{
int x = 0;
for (x = 0; SAY_TYPE_NAMES[x]; x++) {
@@ -286,7 +286,7 @@
char *say_type = (char *) switch_xml_attr_soft(action, "type");
char *say_method = (char *) switch_xml_attr_soft(action, "method");
- status = si->say_function(session, odata, get_say_type_by_name(say_type), get_say_method_by_name(say_method), args);
+ status = si->say_function(session, odata, switch_ivr_get_say_type_by_name(say_type), switch_ivr_get_say_method_by_name(say_method), args);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid SAY Interface [%s]!\n", module_name);
}
@@ -373,7 +373,7 @@
file,
fh->channels,
read_codec->implementation->actual_samples_per_second,
- SWITCH_FILE_FLAG_WRITE | SWITCH_FILE_DATA_SHORT, switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
+ SWITCH_FILE_FLAG_WRITE | SWITCH_FILE_DATA_SHORT, NULL) != SWITCH_STATUS_SUCCESS) {
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
switch_core_session_reset(session, SWITCH_TRUE);
return SWITCH_STATUS_GENERR;
@@ -505,7 +505,7 @@
}
}
- status = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
}
@@ -624,7 +624,7 @@
break;
}
- status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
+ status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(status)) {
break;
@@ -643,7 +643,7 @@
write_frame.samples = write_frame.datalen / 2;
- if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
+ if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
break;
}
}
@@ -674,7 +674,6 @@
switch_codec_t codec;
switch_memory_pool_t *pool = switch_core_session_get_pool(session);
char *codec_name;
- int stream_id = 0;
switch_status_t status = SWITCH_STATUS_SUCCESS;
switch_file_handle_t lfh;
switch_codec_t *read_codec = NULL;
@@ -789,7 +788,7 @@
file,
read_codec->implementation->number_of_channels,
read_codec->implementation->actual_samples_per_second,
- SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT, switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
+ SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT, NULL) != SWITCH_STATUS_SUCCESS) {
switch_core_session_reset(session, SWITCH_TRUE);
status = SWITCH_STATUS_NOTFOUND;
goto end;
@@ -899,9 +898,7 @@
if (timer_name) {
/* start a thread to absorb incoming audio */
- for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
- switch_core_service_session(session, &thread_session, stream_id);
- }
+ switch_core_service_session(session, &thread_session, 0);
}
ilen = samples;
@@ -1080,14 +1077,12 @@
}
#endif
#endif
- stream_id = 0;
-
if (fh->vol) {
switch_change_sln_volume(write_frame.data, write_frame.datalen / 2, fh->vol);
}
fh->offset_pos += write_frame.samples / 2;
- status = switch_core_session_write_frame(session, &write_frame, -1, stream_id);
+ status = switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
if (status == SWITCH_STATUS_MORE_DATA) {
status = SWITCH_STATUS_SUCCESS;
@@ -1112,7 +1107,7 @@
switch_yield(10000);
}
- tstatus = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
if (!SWITCH_READ_ACCEPTABLE(tstatus)) {
break;
@@ -1338,7 +1333,6 @@
switch_size_t ilen = 0;
switch_frame_t write_frame = { 0 };
int x;
- int stream_id = 0;
int done = 0;
int lead_in_out = 10;
switch_status_t status = SWITCH_STATUS_SUCCESS;
@@ -1420,7 +1414,7 @@
if (timer) {
write_frame.timestamp = timer->samplecount;
}
- if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
+ if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
done = 1;
break;
}
@@ -1490,7 +1484,7 @@
}
} else {
switch_frame_t *read_frame;
- switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
while (switch_channel_ready(channel) && switch_channel_test_flag(channel, CF_HOLD)) {
switch_yield(10000);
@@ -1518,7 +1512,7 @@
if (timer) {
write_frame.timestamp = timer->samplecount;
}
- if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
+ if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
done = 1;
break;
}
@@ -1538,7 +1532,7 @@
if (timer) {
write_frame.timestamp = timer->samplecount;
}
- if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
+ if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
done = 1;
break;
}
@@ -1553,7 +1547,7 @@
}
} else { /* time off the channel (if you must) */
switch_frame_t *read_frame;
- switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, -1, 0);
+ switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
while (switch_channel_ready(channel) && switch_channel_test_flag(channel, CF_HOLD)) {
switch_yield(10000);
@@ -1618,7 +1612,6 @@
switch_codec_t lcodec, *codec;
switch_memory_pool_t *pool = switch_core_session_get_pool(session);
char *codec_name;
- int stream_id = 0;
switch_status_t status = SWITCH_STATUS_SUCCESS;
switch_speech_handle_t lsh, *sh;
switch_speech_flag_t flags = SWITCH_SPEECH_FLAG_NONE;
@@ -1721,9 +1714,8 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "setup timer success %u bytes per %d ms!\n", sh->samples * 2, interval);
}
/* start a thread to absorb incoming audio */
- for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
- switch_core_service_session(session, &thread_session, stream_id);
- }
+ switch_core_service_session(session, &thread_session, 0);
+
}
status = switch_ivr_speak_text_handle(session, sh, write_frame.codec, timer_name ? timer : NULL, text, args);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_loadable_module.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_loadable_module.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_loadable_module.c Tue May 13 23:37:33 2008
@@ -1276,12 +1276,14 @@
for (imp = codec_interface->implementations; imp; imp = imp->next) {
uint8_t match = 1;
- if ((uint32_t) (imp->microseconds_per_frame / 1000) != 20) {
- match = 0;
- }
-
- if (match && rate && (uint32_t) imp->samples_per_second != rate) {
- match = 0;
+ if (imp->codec_type != SWITCH_CODEC_TYPE_VIDEO) {
+ if ((uint32_t) (imp->microseconds_per_frame / 1000) != 20) {
+ match = 0;
+ }
+
+ if (match && rate && (uint32_t) imp->samples_per_second != rate) {
+ match = 0;
+ }
}
if (match) {
@@ -1295,12 +1297,14 @@
for (imp = codec_interface->implementations; imp; imp = imp->next) {
uint8_t match = 1;
- if (interval && (uint32_t) (imp->microseconds_per_frame / 1000) != interval) {
- match = 0;
- }
+ if (imp->codec_type != SWITCH_CODEC_TYPE_VIDEO) {
+ if (interval && (uint32_t) (imp->microseconds_per_frame / 1000) != interval) {
+ match = 0;
+ }
- if (match && rate && (uint32_t) imp->samples_per_second != rate) {
- match = 0;
+ if (match && rate && (uint32_t) imp->samples_per_second != rate) {
+ match = 0;
+ }
}
if (match) {
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_rtp.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_rtp.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_rtp.c Tue May 13 23:37:33 2008
@@ -238,6 +238,7 @@
{
switch_stun_packet_t *packet;
switch_stun_packet_attribute_t *attr;
+ void *end_buf;
char username[33] = { 0 };
unsigned char buf[512] = { 0 };
switch_size_t cpylen = len;
@@ -260,6 +261,12 @@
memcpy(buf, data, cpylen);
packet = switch_stun_packet_parse(buf, sizeof(buf));
+ if (!packet) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid STUN/ICE packet received\n");
+ goto end;
+ }
+ end_buf = buf + ((sizeof(buf) > packet->header.length) ? packet->header.length : sizeof(buf));
+
rtp_session->last_stun = switch_time_now();
switch_stun_packet_first_attribute(packet, attr);
@@ -279,7 +286,7 @@
}
break;
}
- } while (switch_stun_packet_next_attribute(attr));
+ } while (switch_stun_packet_next_attribute(attr, end_buf));
if ((packet->header.type == SWITCH_STUN_BINDING_REQUEST) && !strcmp(rtp_session->user_ice, username)) {
uint8_t stunbuf[512];
@@ -1094,7 +1101,7 @@
}
}
-static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_type, switch_frame_flag_t *flags)
+static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags)
{
switch_size_t bytes = 0;
switch_status_t status;
@@ -1142,6 +1149,12 @@
goto end;
}
+ if (!bytes && (io_flags & SWITCH_IO_FLAG_NOBLOCK)) {
+ do_cng = 1;
+ goto cng;
+ }
+
+
if (rtp_session->timer.interval) {
check = (uint8_t) (switch_core_timer_check(&rtp_session->timer, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS);
if (bytes) {
@@ -1508,7 +1521,7 @@
}
SWITCH_DECLARE(switch_status_t) switch_rtp_read(switch_rtp_t *rtp_session, void *data, uint32_t * datalen,
- switch_payload_t *payload_type, switch_frame_flag_t *flags)
+ switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags)
{
int bytes = 0;
@@ -1516,7 +1529,7 @@
return SWITCH_STATUS_FALSE;
}
- bytes = rtp_common_read(rtp_session, payload_type, flags);
+ bytes = rtp_common_read(rtp_session, payload_type, flags, io_flags);
if (bytes < 0) {
*datalen = 0;
@@ -1535,7 +1548,7 @@
return SWITCH_STATUS_SUCCESS;
}
-SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame)
+SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame, switch_io_flag_t io_flags)
{
int bytes = 0;
@@ -1543,7 +1556,7 @@
return SWITCH_STATUS_FALSE;
}
- bytes = rtp_common_read(rtp_session, &frame->payload, &frame->flags);
+ bytes = rtp_common_read(rtp_session, &frame->payload, &frame->flags, io_flags);
frame->data = rtp_session->recv_msg.body;
frame->packet = &rtp_session->recv_msg;
@@ -1574,7 +1587,7 @@
}
SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read(switch_rtp_t *rtp_session,
- void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags)
+ void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags)
{
int bytes = 0;
@@ -1582,7 +1595,7 @@
return SWITCH_STATUS_FALSE;
}
- bytes = rtp_common_read(rtp_session, payload_type, flags);
+ bytes = rtp_common_read(rtp_session, payload_type, flags, io_flags);
*data = rtp_session->recv_msg.body;
if (bytes < 0) {
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_stun.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_stun.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_stun.c Tue May 13 23:37:33 2008
@@ -113,10 +113,13 @@
}
}
+
SWITCH_DECLARE(switch_stun_packet_t *) switch_stun_packet_parse(uint8_t * buf, uint32_t len)
{
switch_stun_packet_t *packet;
switch_stun_packet_attribute_t *attr;
+ uint32_t bytes_left = len;
+ void *end_buf = buf + len;
if (len < SWITCH_STUN_PACKET_MIN_LEN) {
return NULL;
@@ -125,23 +128,181 @@
packet = (switch_stun_packet_t *) buf;
packet->header.type = ntohs(packet->header.type);
packet->header.length = ntohs(packet->header.length);
+ bytes_left -= packet->header.length + 20;
+
+ /*
+ * Check packet type (RFC3489(bis?) values)
+ */
+ switch(packet->header.type) {
+ case SWITCH_STUN_BINDING_REQUEST:
+ case SWITCH_STUN_BINDING_RESPONSE:
+ case SWITCH_STUN_BINDING_ERROR_RESPONSE:
+ case SWITCH_STUN_SHARED_SECRET_REQUEST:
+ case SWITCH_STUN_SHARED_SECRET_RESPONSE:
+ case SWITCH_STUN_SHARED_SECRET_ERROR_RESPONSE:
+ case SWITCH_STUN_ALLOCATE_REQUEST:
+ case SWITCH_STUN_ALLOCATE_RESPONSE:
+ case SWITCH_STUN_ALLOCATE_ERROR_RESPONSE:
+ case SWITCH_STUN_SEND_REQUEST:
+ case SWITCH_STUN_SEND_RESPONSE:
+ case SWITCH_STUN_SEND_ERROR_RESPONSE:
+ case SWITCH_STUN_DATA_INDICATION:
+ /* Valid */
+ break;
+
+ default:
+ /* Invalid value */
+ return NULL;
+ }
+
+ /*
+ * Check for length overflow
+ */
+ if (bytes_left <= 0) {
+ /* Invalid */
+ return NULL;
+ }
+
+ /*
+ * No payload?
+ */
+ if (packet->header.length == 0) {
+ /* Invalid?! */
+ return NULL;
+ }
+
+ /* check if we have enough bytes left for an attribute */
+ if (bytes_left < SWITCH_STUN_ATTRIBUTE_MIN_LEN) {
+ return NULL;
+ }
+
switch_stun_packet_first_attribute(packet, attr);
do {
attr->length = ntohs(attr->length);
attr->type = ntohs(attr->type);
- if (!attr->length) {
- break;
+ bytes_left -= 4; /* attribute header consumed */
+
+ if (!attr->length || switch_stun_attribute_padded_length(attr) > bytes_left) {
+ /*
+ * Note we simply don't "break" here out of the loop anymore because
+ * we don't want the upper layers to have to deal with attributes without a value
+ * (or worse: invalid length)
+ */
+ return NULL;
}
+
+ /*
+ * Handle STUN attributes
+ */
switch (attr->type) {
- case SWITCH_STUN_ATTR_MAPPED_ADDRESS:
- if (attr->type) {
+ case SWITCH_STUN_ATTR_MAPPED_ADDRESS: /* Address, we only care about this one, but parse the others too */
+ case SWITCH_STUN_ATTR_RESPONSE_ADDRESS:
+ case SWITCH_STUN_ATTR_SOURCE_ADDRESS:
+ case SWITCH_STUN_ATTR_CHANGED_ADDRESS:
+ case SWITCH_STUN_ATTR_REFLECTED_FROM:
+ case SWITCH_STUN_ATTR_ALTERNATE_SERVER:
+ case SWITCH_STUN_ATTR_DESTINATION_ADDRESS:
+ case SWITCH_STUN_ATTR_SOURCE_ADDRESS2:
+ {
switch_stun_ip_t *ip;
+ uint32_t addr_length = 0;
ip = (switch_stun_ip_t *) attr->value;
+
+ switch (ip->family) {
+ case 0x01: /* IPv4 */
+ addr_length = 4;
+ break;
+
+ case 0x02: /* IPv6 */
+ addr_length = 16;
+ break;
+
+ default: /* Invalid */
+ return NULL;
+ }
+
+ /* attribute payload length must be == address length + size of other payload fields (family...) */
+ if (attr->length != addr_length + 4) {
+ /* Invalid */
+ return NULL;
+ }
+
ip->port = ntohs(ip->port);
}
break;
+
+ case SWITCH_STUN_ATTR_CHANGE_REQUEST: /* UInt32 */
+ case SWITCH_STUN_ATTR_LIFETIME:
+ case SWITCH_STUN_ATTR_BANDWIDTH:
+ case SWITCH_STUN_ATTR_OPTIONS:
+ {
+ uint32_t *val = (uint32_t *) attr->value;
+
+ if (attr->length != sizeof(uint32_t)) {
+ /* Invalid */
+ return NULL;
+ }
+
+ *val = ntohl(*val); /* should we do this here? */
+ }
+ break;
+
+ case SWITCH_STUN_ATTR_USERNAME: /* ByteString, multiple of 4 bytes */
+ case SWITCH_STUN_ATTR_PASSWORD: /* ByteString, multiple of 4 bytes */
+ if (attr->length % 4 != 0) {
+ /* Invalid */
+ return NULL;
+ }
+ break;
+
+ case SWITCH_STUN_ATTR_DATA: /* ByteString */
+ case SWITCH_STUN_ATTR_ERROR_CODE: /* ErrorCode */
+ case SWITCH_STUN_ATTR_TRANSPORT_PREFERENCES: /* TransportPrefs */
+ /*
+ * No length checking here, since we already checked against the padded length
+ * before
+ */
+ break;
+
+ case SWITCH_STUN_ATTR_MESSAGE_INTEGRITY: /* ByteString, 20 bytes */
+ if (attr->length != 20) {
+ /* Invalid */
+ return NULL;
+ }
+ break;
+
+ case SWITCH_STUN_ATTR_MAGIC_COOKIE: /* ByteString, 4 bytes */
+ if (attr->length != 4) {
+ /* Invalid */
+ return NULL;
+ }
+ break;
+
+ case SWITCH_STUN_ATTR_UNKNOWN_ATTRIBUTES: /* UInt16List (= multiple of 2 bytes) */
+ if (attr->length % 2 != 0) {
+ return NULL;
+ }
+ break;
+
+ default:
+ /* Mandatory attribute range? => invalid */
+ if (attr->type <= 0x7FFF) {
+ return NULL;
+ }
+ break;
}
- } while (switch_stun_packet_next_attribute(attr));
+ bytes_left -= switch_stun_attribute_padded_length(attr); /* attribute value consumed, substract padded length */
+
+ } while (bytes_left >= SWITCH_STUN_ATTRIBUTE_MIN_LEN && switch_stun_packet_next_attribute(attr, end_buf));
+
+ if ((uint32_t)(packet->header.length + 20) > (uint32_t)(len - bytes_left)) {
+ /*
+ * the packet length is longer than the length of all attributes?
+ * for now simply decrease the packet size
+ */
+ packet->header.length = (uint16_t)((len - bytes_left) - 20);
+ }
+
return packet;
}
@@ -273,6 +434,7 @@
switch_sockaddr_t *local_addr = NULL, *remote_addr = NULL, *from_addr = NULL;
switch_socket_t *sock = NULL;
uint8_t buf[256] = { 0 };
+ void *end_buf;
switch_stun_packet_t *packet;
switch_stun_packet_attribute_t *attr;
switch_size_t bytes = 0;
@@ -335,8 +497,13 @@
switch_socket_close(sock);
packet = switch_stun_packet_parse(buf, sizeof(buf));
- switch_stun_packet_first_attribute(packet, attr);
+ if (!packet) {
+ *err = "Invalid STUN/ICE packet";
+ return SWITCH_STATUS_FALSE;
+ }
+ end_buf = buf + ((sizeof(buf) > packet->header.length) ? packet->header.length : sizeof(buf));
+ switch_stun_packet_first_attribute(packet, attr);
do {
switch (attr->type) {
case SWITCH_STUN_ATTR_MAPPED_ADDRESS:
@@ -350,7 +517,7 @@
}
break;
}
- } while (switch_stun_packet_next_attribute(attr));
+ } while (switch_stun_packet_next_attribute(attr, end_buf));
if (packet->header.type == SWITCH_STUN_BINDING_RESPONSE) {
*ip = switch_core_strdup(pool, rip);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_time.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_time.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_time.c Tue May 13 23:37:33 2008
@@ -173,6 +173,9 @@
}
if ((private_info = switch_core_alloc(timer->memory_pool, sizeof(*private_info)))) {
+#if defined(WIN32)
+ timeBeginPeriod(1);
+#endif
switch_mutex_lock(globals.mutex);
TIMER_MATRIX[timer->interval].count++;
switch_mutex_unlock(globals.mutex);
@@ -454,6 +457,12 @@
switch_yield(10000);
}
}
+
+#if defined(WIN32)
+ timeEndPeriod(1);
+#endif
+
+
return SWITCH_STATUS_SUCCESS;
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Setup/Setup.2008.vdproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Setup/Setup.2008.vdproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Setup/Setup.2008.vdproj Tue May 13 23:37:33 2008
@@ -219,12 +219,6 @@
}
"Entry"
{
- "MsmKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_4132509BFE93497C8E86E017E5B98F69"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -279,6 +273,12 @@
}
"Entry"
{
+ "MsmKey" = "8:_52E46D57FE2F483E9CB36B77E39EB120"
+ "OwnerKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
"MsmKey" = "8:_549D54D0FFCA4C719EE17DF14BB3E61C"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -496,7 +496,7 @@
"Entry"
{
"MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
- "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"
+ "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -513,12 +513,6 @@
}
"Entry"
{
- "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
- "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_8B53F026686B44189676CBC200E641C1"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -627,18 +621,312 @@
}
"Entry"
{
- "MsmKey" = "8:_A164EF86C4B57E41C8CE77B48F39DAC7"
+ "MsmKey" = "8:_A3936A2727E73289F5804D5DA006FD0A"
+ "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_0772289C2CC6435396616D7A2C407EA2"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_FBD45C36E901435399634CACA5339597"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_FB1B9FBDC3294F1C96DAC4246C013C22"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_F366CE9AB8F74F8E8388B033FC81C4C3"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_EF14CB99F3414BB689D0CB0E6D6B8AB8"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_EC4922AEC1064C90B96EBBDD3104D761"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_EAF4B051F44745ABA9B58038FB93994C"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_E763C699DF0948B6984DDEB96A2DFD06"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_E1AA7C5B96DA4A26859D2C7A21E00AB6"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_D7EC5795A9C645AC8E129C2EE6D461ED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_D6F0F5845FAD4707975CE012A33CD607"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
"OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_A3936A2727E73289F5804D5DA006FD0A"
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_D1269F1E49D442CF8EAC96C23E60325D"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_D0BB09AFB8D94B76918F0EE85BCCAD0A"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_C81AC700C1BC4A55B98DF12C0CBAFD6F"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_C105055EE271471A999CE7022E617EB7"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_C1036825E1364537B537E542E71F9C0E"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_BB99CEDF341D40F3976B6D5486D9366D"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_B5542B260CD5493395871EFDE833E438"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_B0A2E9B4C45D4098AFD734D0C4E3EAFB"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_A1132A25606840309D744CBC67BE0579"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_9B19C40442134D69B533E16D0851D99B"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_96F8F7DE89C74DC399E8AE55C22B4F15"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_95D01083472B4853AC3F06514558F347"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_8E023477B9DC4126921A556B285B29E5"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_8B53F026686B44189676CBC200E641C1"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_7B1050643E1E48A3B67B281B4AD43904"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_77550ABD8CC84D66A3B6C3C3C48665A4"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_6E5C001E7A314DCEA0A4BF52BF74BCAD"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_6DF726E4018A4136BC27E2C6F4B67B9E"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_5EDFD5418DD243D1A03D882B83BBBCF1"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_3E37631016BC45B2B672FE23257D542B"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_3DB5A5EF1E624F999BCEA20250508EEA"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_318FCC99E8D143D6B4F9F534E63009B3"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_2F2FEC549F02436EB87961BD1B9E5783"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_2D9E612823084E3F9E10376A7AC0C476"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_2C6E622B76524C41A3C12953761C6693"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_2B80DCCD934745B1BB4F0B31099094D9"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_297D0BADB993435092DDB8CDF9F2A3C6"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
"OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_2814E641538B42EFA83525986A9D5AC1"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_1DCA6B2BA0F842FDB5CBA54CF52228F7"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_1777CB4B737E4B8481E25A10950B2B5A"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_1678ADE0786044AF9A26FACF1EBA0CF6"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ "OwnerKey" = "8:_166BDBE308F54EE4881DA68F2A8189F5"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
"MsmKey" = "8:_A944ADCEDF884574A23F7BA5420A6BA1"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -795,12 +1083,6 @@
}
"Entry"
{
- "MsmKey" = "8:_CB7CBDD38519056FAA16312EEF6BCAF7"
- "OwnerKey" = "8:_2C6E622B76524C41A3C12953761C6693"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_CCAC35C9D0644917A28341E382DB6B93"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -1216,7 +1498,7 @@
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1273F63008CF585CA0E063E436B4646F"
{
- "SourcePath" = "8:iphlpapi.dll"
+ "SourcePath" = "8:IPHLPAPI.DLL"
"TargetName" = "8:iphlpapi.dll"
"Tag" = "8:"
"Folder" = "8:_06036160035041E38F4179E6DB6380C5"
@@ -2514,26 +2796,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A164EF86C4B57E41C8CE77B48F39DAC7"
- {
- "SourcePath" = "8:libaprutil.dll"
- "TargetName" = "8:libaprutil.dll"
- "Tag" = "8:"
- "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A3936A2727E73289F5804D5DA006FD0A"
{
"SourcePath" = "8:RPCRT4.dll"
@@ -2814,26 +3076,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CB7CBDD38519056FAA16312EEF6BCAF7"
- {
- "SourcePath" = "8:mod_spidermonkey.dll"
- "TargetName" = "8:mod_spidermonkey.dll"
- "Tag" = "8:"
- "Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CCAC35C9D0644917A28341E382DB6B93"
{
"SourcePath" = "8:..\\..\\conf\\dialplan\\default.xml"
@@ -4083,6 +4325,34 @@
}
"MergeModule"
{
+ "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_52E46D57FE2F483E9CB36B77E39EB120"
+ {
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:TRUE"
+ "SourcePath" = "8:microsoft_vc90_debugcrt_x86.msm"
+ "Properties"
+ {
+ }
+ "LanguageId" = "3:0"
+ "Exclude" = "11:FALSE"
+ "Folder" = "8:"
+ "Feature" = "8:"
+ "IsolateTo" = "8:"
+ }
+ "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_A5FD3A07B7CB423590AF4F9C015C77E0"
+ {
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:TRUE"
+ "SourcePath" = "8:policy_9_0_Microsoft_VC90_DebugCRT_x86.msm"
+ "Properties"
+ {
+ }
+ "LanguageId" = "3:0"
+ "Exclude" = "11:FALSE"
+ "Folder" = "8:"
+ "Feature" = "8:"
+ "IsolateTo" = "8:"
+ }
}
"ProjectOutput"
{
@@ -4534,34 +4804,6 @@
{
}
}
- "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3FBEFE0119944C6781F81104ECEF37CA"
- {
- "SourcePath" = "8:..\\..\\Debug\\libapriconv.dll"
- "TargetName" = "8:"
- "Tag" = "8:"
- "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- "ProjectOutputGroupRegister" = "3:1"
- "OutputConfiguration" = "8:"
- "OutputGroupCanonicalName" = "8:Built"
- "OutputProjectGuid" = "8:{101130D1-3EA6-4ED2-B65D-CEB5243A20ED}"
- "ShowKeyOutput" = "11:TRUE"
- "ExcludeFilters"
- {
- }
- }
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4A285D260C3748A4BEFA6E5A9004D128"
{
"SourcePath" = "8:..\\..\\Debug\\mod\\mod_spidermonkey.dll"
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Setup/Setup.vdproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Setup/Setup.vdproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Setup/Setup.vdproj Tue May 13 23:37:33 2008
@@ -27,318 +27,6 @@
}
"Entry"
{
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_0772289C2CC6435396616D7A2C407EA2"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_BA769056DBAF4259B38F5C3FF7377055"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_A8D70CB0D12C4B3FB2E2E896E9A7C843"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_78F060A241D0428998B42093C467AD36"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_9527B92C45BB45629BDB19ED3C8DC194"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_FBD45C36E901435399634CACA5339597"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_FB1B9FBDC3294F1C96DAC4246C013C22"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_EF14CB99F3414BB689D0CB0E6D6B8AB8"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_EC4922AEC1064C90B96EBBDD3104D761"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_EAF4B051F44745ABA9B58038FB93994C"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_E763C699DF0948B6984DDEB96A2DFD06"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_E1AA7C5B96DA4A26859D2C7A21E00AB6"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_D7EC5795A9C645AC8E129C2EE6D461ED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_D6F0F5845FAD4707975CE012A33CD607"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_D1269F1E49D442CF8EAC96C23E60325D"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_D0BB09AFB8D94B76918F0EE85BCCAD0A"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_C81AC700C1BC4A55B98DF12C0CBAFD6F"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_C105055EE271471A999CE7022E617EB7"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_C1036825E1364537B537E542E71F9C0E"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_BB99CEDF341D40F3976B6D5486D9366D"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_B5542B260CD5493395871EFDE833E438"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_B0A2E9B4C45D4098AFD734D0C4E3EAFB"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_9B19C40442134D69B533E16D0851D99B"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_96F8F7DE89C74DC399E8AE55C22B4F15"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_95D01083472B4853AC3F06514558F347"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_8E023477B9DC4126921A556B285B29E5"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_8B53F026686B44189676CBC200E641C1"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_7B1050643E1E48A3B67B281B4AD43904"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_77550ABD8CC84D66A3B6C3C3C48665A4"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_6E5C001E7A314DCEA0A4BF52BF74BCAD"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_6DF726E4018A4136BC27E2C6F4B67B9E"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_5EDFD5418DD243D1A03D882B83BBBCF1"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_3E37631016BC45B2B672FE23257D542B"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_3DB5A5EF1E624F999BCEA20250508EEA"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_318FCC99E8D143D6B4F9F534E63009B3"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_2F2FEC549F02436EB87961BD1B9E5783"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_2D9E612823084E3F9E10376A7AC0C476"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_2B80DCCD934745B1BB4F0B31099094D9"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_297D0BADB993435092DDB8CDF9F2A3C6"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_2814E641538B42EFA83525986A9D5AC1"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_1DCA6B2BA0F842FDB5CBA54CF52228F7"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_1777CB4B737E4B8481E25A10950B2B5A"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
- "OwnerKey" = "8:_166BDBE308F54EE4881DA68F2A8189F5"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_103209E575C54D649DD1472DBB9B5F5D"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -393,6 +81,18 @@
}
"Entry"
{
+ "MsmKey" = "8:_22F4FC6A582C42A0817BA85C8FEBAA18"
+ "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_22F4FC6A582C42A0817BA85C8FEBAA18"
+ "OwnerKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
"MsmKey" = "8:_27E8189E01B6420CB898CC51360C83A3"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -519,12 +219,6 @@
}
"Entry"
{
- "MsmKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_4132509BFE93497C8E86E017E5B98F69"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -633,12 +327,6 @@
}
"Entry"
{
- "MsmKey" = "8:_6A4CAD73F43678BF7C05E8FB41042F74"
- "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_6AA8D6AF639F4E6B92D28A7E0D13FD5E"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -729,104 +417,98 @@
}
"Entry"
{
- "MsmKey" = "8:_7B1050643E1E48A3B67B281B4AD43904"
- "OwnerKey" = "8:_UNDEFINED"
+ "MsmKey" = "8:_7A08061CFF2F14AC1D5A1B4592BEDB6D"
+ "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_7CFCCDD9C6694A0498D7CD6CDD285042"
- "OwnerKey" = "8:_UNDEFINED"
+ "MsmKey" = "8:_7A08061CFF2F14AC1D5A1B4592BEDB6D"
+ "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_7E46520FEA2B4DA7A90171E3467C29CA"
- "OwnerKey" = "8:_UNDEFINED"
+ "MsmKey" = "8:_7A08061CFF2F14AC1D5A1B4592BEDB6D"
+ "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_7F2A5D1B25FD4B109F5E17402117543A"
+ "MsmKey" = "8:_7B1050643E1E48A3B67B281B4AD43904"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_7FDBEDFAE608481684258301B02CFD1C"
- "OwnerKey" = "8:_0CDD28A9559445CE96186F5FB19F690B"
+ "MsmKey" = "8:_7BBFE2768ACD3A62F3874EF99D16C0B8"
+ "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_7FEA1E60C11343F1A98DC33C512051FA"
+ "MsmKey" = "8:_7CFCCDD9C6694A0498D7CD6CDD285042"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_80D44DD7FA3C4E3F8D6BB8B4F949F6AF"
+ "MsmKey" = "8:_7E46520FEA2B4DA7A90171E3467C29CA"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_82158C38354740E99D416F1DB58C7E18"
+ "MsmKey" = "8:_7F2A5D1B25FD4B109F5E17402117543A"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_821771D6A597416391F899CD9147F75B"
+ "MsmKey" = "8:_7FEA1E60C11343F1A98DC33C512051FA"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_83131C9ADB7C4E6C88388D820F720BB5"
+ "MsmKey" = "8:_80D44DD7FA3C4E3F8D6BB8B4F949F6AF"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_8471500508034D338D599ED5C35F938F"
+ "MsmKey" = "8:_82158C38354740E99D416F1DB58C7E18"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_860B731FDCC848F79AB8DFD4D03E2A47"
+ "MsmKey" = "8:_821771D6A597416391F899CD9147F75B"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_86D8DF7599FF472096D6826044347537"
+ "MsmKey" = "8:_83131C9ADB7C4E6C88388D820F720BB5"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
- "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
- "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
+ "MsmKey" = "8:_8471500508034D338D599ED5C35F938F"
+ "OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
- "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
+ "MsmKey" = "8:_860B731FDCC848F79AB8DFD4D03E2A47"
+ "OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
- "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
+ "MsmKey" = "8:_86D8DF7599FF472096D6826044347537"
+ "OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -849,14 +531,8 @@
}
"Entry"
{
- "MsmKey" = "8:_90D7F247E8254DE797317F431E3FB010"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_91BA2668F87764F53188E93BC8D363D7"
- "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
+ "MsmKey" = "8:_90D7F247E8254DE797317F431E3FB010"
+ "OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -939,12 +615,6 @@
}
"Entry"
{
- "MsmKey" = "8:_A164EF86C4B57E41C8CE77B48F39DAC7"
- "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_A3936A2727E73289F5804D5DA006FD0A"
"OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"
"MsmSig" = "8:_UNDEFINED"
@@ -1023,6 +693,12 @@
}
"Entry"
{
+ "MsmKey" = "8:_B540FA32E4F6382CF1426D13A0A4E6B7"
+ "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
"MsmKey" = "8:_B5542B260CD5493395871EFDE833E438"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -1083,6 +759,12 @@
}
"Entry"
{
+ "MsmKey" = "8:_BFD1EC957C5DBC08B54E6594C7CC5F91"
+ "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
"MsmKey" = "8:_C1036825E1364537B537E542E71F9C0E"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -1119,12 +801,6 @@
}
"Entry"
{
- "MsmKey" = "8:_CB7CBDD38519056FAA16312EEF6BCAF7"
- "OwnerKey" = "8:_BA769056DBAF4259B38F5C3FF7377055"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_CCAC35C9D0644917A28341E382DB6B93"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -1167,14 +843,14 @@
}
"Entry"
{
- "MsmKey" = "8:_D7E82DD20D5B47395F635480C8E3A1D3"
- "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
+ "MsmKey" = "8:_D7EC5795A9C645AC8E129C2EE6D461ED"
+ "OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_D7EC5795A9C645AC8E129C2EE6D461ED"
- "OwnerKey" = "8:_UNDEFINED"
+ "MsmKey" = "8:_DC30A9FB71F9449BAF1F5981E3538D1E"
+ "OwnerKey" = "8:_22F4FC6A582C42A0817BA85C8FEBAA18"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -1191,12 +867,6 @@
}
"Entry"
{
- "MsmKey" = "8:_E1CC91FCF87955D17FC3C0A8E875B690"
- "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_E5C5D9225978484CA7AD0BD78C1222EE"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -1534,7 +1204,7 @@
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1273F63008CF585CA0E063E436B4646F"
{
- "SourcePath" = "8:iphlpapi.dll"
+ "SourcePath" = "8:IPHLPAPI.DLL"
"TargetName" = "8:iphlpapi.dll"
"Tag" = "8:"
"Folder" = "8:_06036160035041E38F4179E6DB6380C5"
@@ -2132,26 +1802,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6A4CAD73F43678BF7C05E8FB41042F74"
- {
- "SourcePath" = "8:libteletone.dll"
- "TargetName" = "8:libteletone.dll"
- "Tag" = "8:"
- "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6AA8D6AF639F4E6B92D28A7E0D13FD5E"
{
"SourcePath" = "8:..\\..\\conf\\dialplan\\extensions\\sipphone.com.noload"
@@ -2372,6 +2022,46 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7A08061CFF2F14AC1D5A1B4592BEDB6D"
+ {
+ "SourcePath" = "8:libapr.dll"
+ "TargetName" = "8:libapr.dll"
+ "Tag" = "8:"
+ "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7BBFE2768ACD3A62F3874EF99D16C0B8"
+ {
+ "SourcePath" = "8:FreeSwitch.dll"
+ "TargetName" = "8:FreeSwitch.dll"
+ "Tag" = "8:"
+ "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:TRUE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7CFCCDD9C6694A0498D7CD6CDD285042"
{
"SourcePath" = "8:..\\..\\conf\\lang\\de\\de.xml"
@@ -2592,26 +2282,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_879085EF680EFDF6242DCB77439EC825"
- {
- "SourcePath" = "8:libapr.dll"
- "TargetName" = "8:libapr.dll"
- "Tag" = "8:"
- "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8FB175B8685A47F7BE75E1A025F65693"
{
"SourcePath" = "8:..\\..\\conf\\autoload_configs\\limit.conf.xml"
@@ -2652,26 +2322,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_91BA2668F87764F53188E93BC8D363D7"
- {
- "SourcePath" = "8:libapriconv.dll"
- "TargetName" = "8:libapriconv.dll"
- "Tag" = "8:"
- "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_92F95219F6434CE3A736526946DA2ABB"
{
"SourcePath" = "8:..\\..\\conf\\autoload_configs\\event_socket.conf.xml"
@@ -2832,26 +2482,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A164EF86C4B57E41C8CE77B48F39DAC7"
- {
- "SourcePath" = "8:libaprutil.dll"
- "TargetName" = "8:libaprutil.dll"
- "Tag" = "8:"
- "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A3936A2727E73289F5804D5DA006FD0A"
{
"SourcePath" = "8:RPCRT4.dll"
@@ -2952,6 +2582,26 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B540FA32E4F6382CF1426D13A0A4E6B7"
+ {
+ "SourcePath" = "8:libteletone.dll"
+ "TargetName" = "8:libteletone.dll"
+ "Tag" = "8:"
+ "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B5ADB663C7CE49A1A11E895E4EBB4933"
{
"SourcePath" = "8:..\\..\\conf\\autoload_configs\\zeroconf.conf.xml"
@@ -3072,12 +2722,12 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C7E9135AE3874E19809A03F02CCC15C9"
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_BFD1EC957C5DBC08B54E6594C7CC5F91"
{
- "SourcePath" = "8:..\\..\\conf\\jingle_profiles\\server.noload"
- "TargetName" = "8:server.noload"
+ "SourcePath" = "8:libaprutil.dll"
+ "TargetName" = "8:libaprutil.dll"
"Tag" = "8:"
- "Folder" = "8:_6521C567C8FB4E1389A5CD0BAA719A2E"
+ "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
@@ -3089,15 +2739,15 @@
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
+ "IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C93A983EC95F4F45AF27F37D674CF86B"
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C7E9135AE3874E19809A03F02CCC15C9"
{
- "SourcePath" = "8:..\\..\\conf\\autoload_configs\\woomera.conf.xml"
- "TargetName" = "8:woomera.conf.xml"
+ "SourcePath" = "8:..\\..\\conf\\jingle_profiles\\server.noload"
+ "TargetName" = "8:server.noload"
"Tag" = "8:"
- "Folder" = "8:_B3CE338501E445B593742462EDD46103"
+ "Folder" = "8:_6521C567C8FB4E1389A5CD0BAA719A2E"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
@@ -3112,12 +2762,12 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CB0CF364674E42A1B928D78A3823CB76"
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C93A983EC95F4F45AF27F37D674CF86B"
{
- "SourcePath" = "8:..\\..\\conf\\directory\\default\\1013.xml"
- "TargetName" = "8:1013.xml"
+ "SourcePath" = "8:..\\..\\conf\\autoload_configs\\woomera.conf.xml"
+ "TargetName" = "8:woomera.conf.xml"
"Tag" = "8:"
- "Folder" = "8:_C67316B39FC9471EA6A197EDF9897073"
+ "Folder" = "8:_B3CE338501E445B593742462EDD46103"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
@@ -3132,12 +2782,12 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CB7CBDD38519056FAA16312EEF6BCAF7"
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CB0CF364674E42A1B928D78A3823CB76"
{
- "SourcePath" = "8:mod_spidermonkey.dll"
- "TargetName" = "8:mod_spidermonkey.dll"
+ "SourcePath" = "8:..\\..\\conf\\directory\\default\\1013.xml"
+ "TargetName" = "8:1013.xml"
"Tag" = "8:"
- "Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
+ "Folder" = "8:_C67316B39FC9471EA6A197EDF9897073"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
@@ -3149,7 +2799,7 @@
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
- "IsDependency" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CCAC35C9D0644917A28341E382DB6B93"
@@ -3212,26 +2862,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D7E82DD20D5B47395F635480C8E3A1D3"
- {
- "SourcePath" = "8:FreeSwitch.dll"
- "TargetName" = "8:FreeSwitch.dll"
- "Tag" = "8:"
- "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DD54C8F25D0546E199ADB3C4B40EA20B"
{
"SourcePath" = "8:..\\..\\conf\\autoload_configs\\conference.conf.xml"
@@ -3252,26 +2882,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E1CC91FCF87955D17FC3C0A8E875B690"
- {
- "SourcePath" = "8:WLDAP32.dll"
- "TargetName" = "8:WLDAP32.dll"
- "Tag" = "8:"
- "Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E5C5D9225978484CA7AD0BD78C1222EE"
{
"SourcePath" = "8:..\\..\\conf\\autoload_configs\\java.conf.xml"
@@ -4401,11 +4011,11 @@
}
"MergeModule"
{
- "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_0CDD28A9559445CE96186F5FB19F690B"
+ "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_22F4FC6A582C42A0817BA85C8FEBAA18"
{
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:TRUE"
- "SourcePath" = "8:Microsoft_VC80_DebugCRT_x86.msm"
+ "SourcePath" = "8:Microsoft_VC80_CRT_x86.msm"
"Properties"
{
}
@@ -4415,11 +4025,11 @@
"Feature" = "8:"
"IsolateTo" = "8:"
}
- "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_7FDBEDFAE608481684258301B02CFD1C"
+ "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_DC30A9FB71F9449BAF1F5981E3538D1E"
{
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:TRUE"
- "SourcePath" = "8:policy_8_0_microsoft_vc80_debugcrt_x86.msm"
+ "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86.msm"
"Properties"
{
}
@@ -4434,7 +4044,7 @@
{
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0772289C2CC6435396616D7A2C407EA2"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_voicemail.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_voicemail.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4462,7 +4072,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_166BDBE308F54EE4881DA68F2A8189F5"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_enum.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_enum.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4490,7 +4100,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1777CB4B737E4B8481E25A10950B2B5A"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_native_file.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_native_file.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4518,7 +4128,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1CFB1AB04E024FC993E0EB4859DF8408"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_dingaling.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_dingaling.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4546,7 +4156,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1DCA6B2BA0F842FDB5CBA54CF52228F7"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_h26x.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_h26x.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4574,7 +4184,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2814E641538B42EFA83525986A9D5AC1"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_ilbc.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_ilbc.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4602,7 +4212,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_28FBC5A60B44423B8A2CC378347483CE"
{
- "SourcePath" = "8:..\\..\\Debug\\libapr.dll"
+ "SourcePath" = "8:..\\..\\Release\\libapr.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
@@ -4630,7 +4240,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_297D0BADB993435092DDB8CDF9F2A3C6"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_xml_cdr.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_xml_cdr.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4658,7 +4268,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2B80DCCD934745B1BB4F0B31099094D9"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_say_en.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_say_en.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4686,7 +4296,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2D9E612823084E3F9E10376A7AC0C476"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_g723_1.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_g723_1.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4714,7 +4324,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2F2FEC549F02436EB87961BD1B9E5783"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_iax.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_iax.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4742,7 +4352,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_318FCC99E8D143D6B4F9F534E63009B3"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_sndfile.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_sndfile.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4770,7 +4380,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3DB5A5EF1E624F999BCEA20250508EEA"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_fifo.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_fifo.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4798,7 +4408,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3E37631016BC45B2B672FE23257D542B"
{
- "SourcePath" = "8:..\\..\\Debug\\pthreadVC2.dll"
+ "SourcePath" = "8:..\\..\\Release\\pthreadVC2.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
@@ -4824,37 +4434,9 @@
{
}
}
- "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3FBEFE0119944C6781F81104ECEF37CA"
- {
- "SourcePath" = "8:..\\..\\Debug\\libapriconv.dll"
- "TargetName" = "8:"
- "Tag" = "8:"
- "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- "ProjectOutputGroupRegister" = "3:1"
- "OutputConfiguration" = "8:"
- "OutputGroupCanonicalName" = "8:Built"
- "OutputProjectGuid" = "8:{101130D1-3EA6-4ED2-B65D-CEB5243A20ED}"
- "ShowKeyOutput" = "11:TRUE"
- "ExcludeFilters"
- {
- }
- }
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4A285D260C3748A4BEFA6E5A9004D128"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_spidermonkey.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_spidermonkey.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4882,7 +4464,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_59CFED0C4EC0492C945E4EBC04FE965F"
{
- "SourcePath" = "8:..\\..\\Debug\\libaprutil.dll"
+ "SourcePath" = "8:..\\..\\Release\\libaprutil.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
@@ -4910,7 +4492,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_5EDFD5418DD243D1A03D882B83BBBCF1"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_esf.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_esf.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4938,7 +4520,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6DF726E4018A4136BC27E2C6F4B67B9E"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_logfile.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_logfile.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4966,7 +4548,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6E5C001E7A314DCEA0A4BF52BF74BCAD"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_speex.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_speex.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -4994,7 +4576,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_77550ABD8CC84D66A3B6C3C3C48665A4"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_dialplan_asterisk.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_dialplan_asterisk.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5022,7 +4604,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_78F060A241D0428998B42093C467AD36"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_voipcodecs.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_voipcodecs.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5050,7 +4632,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_7B1050643E1E48A3B67B281B4AD43904"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_g729.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_g729.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5078,7 +4660,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_8B53F026686B44189676CBC200E641C1"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_amr.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_amr.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5106,7 +4688,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_8E023477B9DC4126921A556B285B29E5"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_spidermonkey_socket.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_spidermonkey_socket.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5134,7 +4716,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_9527B92C45BB45629BDB19ED3C8DC194"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_fsv.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_fsv.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5162,7 +4744,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_95D01083472B4853AC3F06514558F347"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_spidermonkey_teletone.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_spidermonkey_teletone.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5190,7 +4772,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_96F8F7DE89C74DC399E8AE55C22B4F15"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_xml_curl.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_xml_curl.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5218,7 +4800,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_9B19C40442134D69B533E16D0851D99B"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_spidermonkey_odbc.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_spidermonkey_odbc.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5246,7 +4828,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A0D5F714A0F94250A1C39603B699AB82"
{
- "SourcePath" = "8:..\\..\\Debug\\libteletone.dll"
+ "SourcePath" = "8:..\\..\\Release\\libteletone.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
@@ -5274,7 +4856,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A8D70CB0D12C4B3FB2E2E896E9A7C843"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_tone_stream.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_tone_stream.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5302,7 +4884,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A944ADCEDF884574A23F7BA5420A6BA1"
{
- "SourcePath" = "8:..\\..\\libs\\win32\\sqlite\\Debug\\libsqlite.lib"
+ "SourcePath" = "8:..\\..\\libs\\win32\\sqlite\\Release\\sqlite.lib"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
@@ -5330,7 +4912,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B0A2E9B4C45D4098AFD734D0C4E3EAFB"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_conference.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_conference.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5358,7 +4940,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B5542B260CD5493395871EFDE833E438"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_openmrcp.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_openmrcp.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5386,7 +4968,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BA769056DBAF4259B38F5C3FF7377055"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_spidermonkey_curl.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_spidermonkey_curl.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5414,7 +4996,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BB649A2C1ABE4895859025B09A240323"
{
- "SourcePath" = "8:..\\..\\libs\\win32\\pcre\\Debug\\libpcre.lib"
+ "SourcePath" = "8:..\\..\\libs\\win32\\pcre\\Release\\libpcre.lib"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
@@ -5442,7 +5024,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BB99CEDF341D40F3976B6D5486D9366D"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_limit.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_limit.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5470,7 +5052,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C1036825E1364537B537E542E71F9C0E"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_event_socket.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_event_socket.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5498,7 +5080,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C105055EE271471A999CE7022E617EB7"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_commands.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_commands.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5526,7 +5108,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C81AC700C1BC4A55B98DF12C0CBAFD6F"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_dialplan_xml.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_dialplan_xml.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5554,7 +5136,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D0BB09AFB8D94B76918F0EE85BCCAD0A"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_dptools.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_dptools.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5582,7 +5164,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D1269F1E49D442CF8EAC96C23E60325D"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_xml_rpc.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_xml_rpc.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5610,7 +5192,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D2EF447106B24E67907DAED3D39CFBB1"
{
- "SourcePath" = "8:..\\..\\Debug\\FreeSwitch.dll"
+ "SourcePath" = "8:..\\..\\Release\\FreeSwitch.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
@@ -5638,7 +5220,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D6F0F5845FAD4707975CE012A33CD607"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_rss.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_rss.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5666,7 +5248,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D7EC5795A9C645AC8E129C2EE6D461ED"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_event_multicast.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_event_multicast.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5694,7 +5276,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E1AA7C5B96DA4A26859D2C7A21E00AB6"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_spidermonkey_core_db.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_spidermonkey_core_db.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5722,7 +5304,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E763C699DF0948B6984DDEB96A2DFD06"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_PortAudio.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_PortAudio.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5750,7 +5332,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_EAF4B051F44745ABA9B58038FB93994C"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_expr.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_expr.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5778,7 +5360,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_EC4922AEC1064C90B96EBBDD3104D761"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_local_stream.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_local_stream.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5806,7 +5388,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_EF14CB99F3414BB689D0CB0E6D6B8AB8"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_console.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_console.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5834,7 +5416,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F0B800E719294692A02518CFD8CBAEFF"
{
- "SourcePath" = "8:..\\..\\Debug\\FreeSwitch.exe"
+ "SourcePath" = "8:..\\..\\Release\\FreeSwitch.exe"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
@@ -5862,7 +5444,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FB1B9FBDC3294F1C96DAC4246C013C22"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_woomera.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_woomera.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5890,7 +5472,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FBB0E565B1DE49CE9C827ACAC337AC5B"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_sofia.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_sofia.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
@@ -5918,7 +5500,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FBD45C36E901435399634CACA5339597"
{
- "SourcePath" = "8:..\\..\\Debug\\mod\\mod_cdr_csv.dll"
+ "SourcePath" = "8:..\\..\\Release\\mod\\mod_cdr_csv.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"
Modified: freeswitch/branches/lukedashjr/syslibs/libs/apr-util/.update
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/apr-util/.update (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/apr-util/.update Tue May 13 23:37:33 2008
@@ -1 +1 @@
-Fri Mar 16 17:12:43 EDT 2007
+Thu May 8 18:41:57 EDT 2008
Modified: freeswitch/branches/lukedashjr/syslibs/libs/apr-util/build-outputs.mk
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/apr-util/build-outputs.mk (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/apr-util/build-outputs.mk Tue May 13 23:37:33 2008
@@ -1,37 +1,12 @@
# DO NOT EDIT. AUTOMATICALLY GENERATED.
-buckets/apr_buckets_file.lo: buckets/apr_buckets_file.c .make.dirs include/apr_buckets.h
-buckets/apr_brigade.lo: buckets/apr_brigade.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets_mmap.lo: buckets/apr_buckets_mmap.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets_heap.lo: buckets/apr_buckets_heap.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets.lo: buckets/apr_buckets.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets_socket.lo: buckets/apr_buckets_socket.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets_pool.lo: buckets/apr_buckets_pool.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets_alloc.lo: buckets/apr_buckets_alloc.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets_pipe.lo: buckets/apr_buckets_pipe.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets_eos.lo: buckets/apr_buckets_eos.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets_flush.lo: buckets/apr_buckets_flush.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets_refcount.lo: buckets/apr_buckets_refcount.c .make.dirs include/apr_buckets.h
-buckets/apr_buckets_simple.lo: buckets/apr_buckets_simple.c .make.dirs include/apr_buckets.h
crypto/apr_md5.lo: crypto/apr_md5.c .make.dirs include/apr_xlate.h include/apr_md5.h include/apr_sha1.h
crypto/uuid.lo: crypto/uuid.c .make.dirs include/apr_uuid.h
crypto/apr_sha1.lo: crypto/apr_sha1.c .make.dirs include/apr_xlate.h include/apr_sha1.h include/apr_base64.h
crypto/getuuid.lo: crypto/getuuid.c .make.dirs include/apr_uuid.h include/apr_md5.h include/apr_xlate.h
crypto/apr_md4.lo: crypto/apr_md4.c .make.dirs include/apr_md4.h include/apr_xlate.h
-dbm/apr_dbm_berkeleydb.lo: dbm/apr_dbm_berkeleydb.c .make.dirs
-dbm/apr_dbm_gdbm.lo: dbm/apr_dbm_gdbm.c .make.dirs
-dbm/apr_dbm_ndbm.lo: dbm/apr_dbm_ndbm.c .make.dirs
-dbm/apr_dbm.lo: dbm/apr_dbm.c .make.dirs include/apr_dbm.h
-dbm/apr_dbm_sdbm.lo: dbm/apr_dbm_sdbm.c .make.dirs include/apr_sdbm.h
-dbm/sdbm/sdbm_hash.lo: dbm/sdbm/sdbm_hash.c .make.dirs include/apr_sdbm.h
-dbm/sdbm/sdbm.lo: dbm/sdbm/sdbm.c .make.dirs include/apr_sdbm.h
-dbm/sdbm/sdbm_lock.lo: dbm/sdbm/sdbm_lock.c .make.dirs include/apr_sdbm.h
-dbm/sdbm/sdbm_pair.lo: dbm/sdbm/sdbm_pair.c .make.dirs include/apr_sdbm.h
encoding/apr_base64.lo: encoding/apr_base64.c .make.dirs include/apr_base64.h include/apr_xlate.h
hooks/apr_hooks.lo: hooks/apr_hooks.c .make.dirs include/apr_optional_hooks.h include/apr_optional.h include/apr_hooks.h
-ldap/apr_ldap_option.lo: ldap/apr_ldap_option.c .make.dirs
-ldap/apr_ldap_init.lo: ldap/apr_ldap_init.c .make.dirs
-ldap/apr_ldap_url.lo: ldap/apr_ldap_url.c .make.dirs
misc/apr_reslist.lo: misc/apr_reslist.c .make.dirs include/apr_reslist.h
misc/apr_rmm.lo: misc/apr_rmm.c .make.dirs include/apr_rmm.h include/apr_anylock.h
misc/apr_date.lo: misc/apr_date.c .make.dirs include/apr_date.h
@@ -40,12 +15,8 @@
uri/apr_uri.lo: uri/apr_uri.c .make.dirs include/apr_uri.h
strmatch/apr_strmatch.lo: strmatch/apr_strmatch.c .make.dirs include/apr_strmatch.h
xlate/xlate.lo: xlate/xlate.c .make.dirs include/apr_xlate.h
-dbd/apr_dbd_sqlite2.lo: dbd/apr_dbd_sqlite2.c .make.dirs
-dbd/apr_dbd_pgsql.lo: dbd/apr_dbd_pgsql.c .make.dirs
-dbd/apr_dbd.lo: dbd/apr_dbd.c .make.dirs include/apr_dbd.h
-dbd/apr_dbd_sqlite3.lo: dbd/apr_dbd_sqlite3.c .make.dirs
-OBJECTS_all = buckets/apr_buckets_file.lo buckets/apr_brigade.lo buckets/apr_buckets_mmap.lo buckets/apr_buckets_heap.lo buckets/apr_buckets.lo buckets/apr_buckets_socket.lo buckets/apr_buckets_pool.lo buckets/apr_buckets_alloc.lo buckets/apr_buckets_pipe.lo buckets/apr_buckets_eos.lo buckets/apr_buckets_flush.lo buckets/apr_buckets_refcount.lo buckets/apr_buckets_simple.lo crypto/apr_md5.lo crypto/uuid.lo crypto/apr_sha1.lo crypto/getuuid.lo crypto/apr_md4.lo dbm/apr_dbm_berkeleydb.lo dbm/apr_dbm_gdbm.lo dbm/apr_dbm_ndbm.lo dbm/apr_dbm.lo dbm/apr_dbm_sdbm.lo dbm/sdbm/sdbm_hash.lo dbm/sdbm/sdbm.lo dbm/sdbm/sdbm_lock.lo dbm/sdbm/sdbm_pair.lo encoding/apr_base64.lo hooks/apr_hooks.lo ldap/apr_ldap_option.lo ldap/apr_ldap_init.lo ldap/apr_ldap_url.lo misc/apr_reslist.lo misc/apr_rmm.lo misc/apr_date.lo misc/apu_version.lo misc/apr_queue.lo uri/apr_uri.lo strmatch/apr_strmatch.lo xlate/xlate.lo dbd/apr_dbd_sqlite2.lo dbd/apr_dbd_pgsql.lo dbd/apr_dbd.lo dbd/apr_dbd_sqlite3.lo
+OBJECTS_all = crypto/apr_md5.lo crypto/uuid.lo crypto/apr_sha1.lo crypto/getuuid.lo crypto/apr_md4.lo encoding/apr_base64.lo hooks/apr_hooks.lo misc/apr_reslist.lo misc/apr_rmm.lo misc/apr_date.lo misc/apu_version.lo misc/apr_queue.lo uri/apr_uri.lo strmatch/apr_strmatch.lo xlate/xlate.lo
OBJECTS_unix = $(OBJECTS_all)
@@ -57,11 +28,11 @@
OBJECTS_os390 = $(OBJECTS_all)
-HEADERS = $(top_srcdir)/include/apr_optional.h $(top_srcdir)/include/apu_version.h $(top_srcdir)/include/apr_dbm.h $(top_srcdir)/include/apr_strmatch.h $(top_srcdir)/include/apr_buckets.h $(top_srcdir)/include/apr_optional_hooks.h $(top_srcdir)/include/apr_sdbm.h $(top_srcdir)/include/apr_md4.h $(top_srcdir)/include/apr_reslist.h $(top_srcdir)/include/apr_base64.h $(top_srcdir)/include/apr_ldap_option.h $(top_srcdir)/include/apr_anylock.h $(top_srcdir)/include/apr_rmm.h $(top_srcdir)/include/apr_ldap_init.h $(top_srcdir)/include/apr_ldap_url.h $(top_srcdir)/include/apr_md5.h $(top_srcdir)/include/apr_date.h $(top_srcdir)/include/apr_hooks.h $(top_srcdir)/include/apr_xlate.h $(top_srcdir)/include/apr_queue.h $(top_srcdir)/include/apr_uri.h $(top_srcdir)/include/apr_uuid.h $(top_srcdir)/include/apr_sha1.h $(top_srcdir)/include/apr_dbd.h
+HEADERS = $(top_srcdir)/include/apr_optional.h $(top_srcdir)/include/apu_version.h $(top_srcdir)/include/apr_strmatch.h $(top_srcdir)/include/apr_optional_hooks.h $(top_srcdir)/include/apr_sdbm.h $(top_srcdir)/include/apr_md4.h $(top_srcdir)/include/apr_reslist.h $(top_srcdir)/include/apr_base64.h $(top_srcdir)/include/apr_anylock.h $(top_srcdir)/include/apr_rmm.h $(top_srcdir)/include/apr_md5.h $(top_srcdir)/include/apr_date.h $(top_srcdir)/include/apr_hooks.h $(top_srcdir)/include/apr_xlate.h $(top_srcdir)/include/apr_queue.h $(top_srcdir)/include/apr_uri.h $(top_srcdir)/include/apr_uuid.h $(top_srcdir)/include/apr_sha1.h
-SOURCE_DIRS = dbd dbm encoding hooks buckets misc crypto uri strmatch dbm/sdbm ldap xlate $(EXTRA_SOURCE_DIRS)
+SOURCE_DIRS = encoding hooks misc crypto uri strmatch xlate $(EXTRA_SOURCE_DIRS)
-BUILD_DIRS = buckets crypto dbd dbm dbm/sdbm encoding hooks ldap misc strmatch uri xlate
+BUILD_DIRS = crypto encoding hooks misc strmatch uri xlate
.make.dirs: $(srcdir)/build-outputs.mk
@for d in $(BUILD_DIRS); do test -d $$d || mkdir $$d; done
Modified: freeswitch/branches/lukedashjr/syslibs/libs/apr-util/crypto/getuuid.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/apr-util/crypto/getuuid.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/apr-util/crypto/getuuid.c Tue May 13 23:37:33 2008
@@ -20,10 +20,11 @@
*/
#include "apr.h"
#include "apr_uuid.h"
-#include "apr_md5.h"
#include "apr_general.h"
#include "apr_portable.h"
-
+#if !APR_HAS_RANDOM
+#include "apr_md5.h"
+#endif
#if APR_HAVE_UNISTD_H
#include <unistd.h> /* for getpid, gethostname */
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/.update
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/.update (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/.update Tue May 13 23:37:33 2008
@@ -1 +1 @@
-Wed Apr 23 14:38:18 EDT 2008
+Mon May 12 14:41:23 EDT 2008
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/nta.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/nta.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/nta.c Tue May 13 23:37:33 2008
@@ -170,6 +170,10 @@
#define NTA_BRANCH_PRIME SU_U64_C(0xB9591D1C361C6521)
#define NTA_TAG_PRIME SU_U64_C(0xB9591D1C361C6521)
+#ifndef UINT32_MAX
+#define UINT32_MAX (0xffffffffU)
+#endif
+
HTABLE_PROTOS_WITH(leg_htable, lht, nta_leg_t, size_t, hash_value_t);
static nta_leg_t *leg_find(nta_agent_t const *sa,
char const *method_name,
@@ -734,7 +738,7 @@
void agent_timer(su_root_magic_t *rm, su_timer_t *timer, nta_agent_t *agent)
{
su_time_t stamp = su_now();
- su_duration_t now = su_time_ms(stamp), next;
+ uint32_t now = su_time_ms(stamp), next, latest;
now += now == 0;
@@ -752,10 +756,11 @@
agent->sa_in_timer = 0;
/* Calculate next timeout */
- next = now + SU_DURATION_MAX;
+ next = latest = now + NTA_TIME_MAX + 1;
#define NEXT_TIMEOUT(next, p, f, now) \
- (void)(p && p->f - (next) < 0 && ((next) = (p->f - (now) > 0 ? p->f : (now))))
+ (void)(p && (int32_t)(p->f - (next)) < 0 && \
+ ((next) = ((int32_t)(p->f - (now)) > 0 ? p->f : (now))))
NEXT_TIMEOUT(next, agent->sa_out.re_list, orq_retry, now);
NEXT_TIMEOUT(next, agent->sa_out.inv_completed->q_head, orq_timeout, now);
@@ -776,8 +781,8 @@
#undef NEXT_TIMEOUT
- if (next == now + SU_DURATION_MAX) {
- /* Do not set timer */
+ if (next == latest) {
+ /* Do not set timer? */
SU_DEBUG_9(("nta: timer not set\n"));
assert(!agent->sa_out.completed->q_head);
assert(!agent->sa_out.trying->q_head);
@@ -800,6 +805,22 @@
su_timer_set_at(timer, agent_timer, agent, su_time_add(stamp, next - now));
}
+/** Add uin32_t milliseconds to the time. */
+static su_time_t add_milliseconds(su_time_t t0, uint32_t ms)
+{
+ unsigned long sec = ms / 1000, usec = (ms % 1000) * 1000;
+
+ t0.tv_usec += usec;
+ t0.tv_sec += sec;
+
+ if (t0.tv_usec >= 1000000) {
+ t0.tv_sec += 1;
+ t0.tv_usec -= 1000000;
+ }
+
+ return t0;
+}
+
/** Calculate nonzero value for timeout.
*
* Sets or adjusts agent timer when needed.
@@ -808,25 +829,25 @@
* @retval timeout (millisecond counter) otherwise
*/
static
-su_duration_t set_timeout(nta_agent_t *agent, su_duration_t offset)
+uint32_t set_timeout(nta_agent_t *agent, uint32_t offset)
{
su_time_t now;
- su_duration_t next, ms;
+ uint32_t next, ms;
if (offset == 0)
return 0;
- if (agent->sa_millisec) /* Avoid expensive call to su_timer_ms() */
+ if (agent->sa_millisec) /* Avoid expensive call to su_now() */
now = agent->sa_now, ms = agent->sa_millisec;
else
- now = su_now(), ms = (su_duration_t)su_time_ms(now);
+ now = su_now(), ms = su_time_ms(now);
next = ms + offset; if (next == 0) next = 1;
- if (agent->sa_in_timer)
+ if (agent->sa_in_timer) /* Currently executing timer */
return next;
- if (agent->sa_next == 0 || agent->sa_next - next - 5L > 0) {
+ if (agent->sa_next == 0 || (int32_t)(agent->sa_next - next - 5L) > 0) {
/* Set timer */
if (agent->sa_next)
SU_DEBUG_9(("nta: timer %s to %ld ms\n", "shortened", (long)offset));
@@ -834,7 +855,7 @@
SU_DEBUG_9(("nta: timer %s to %ld ms\n", "set", (long)offset));
su_timer_set_at(agent->sa_timer, agent_timer, agent,
- su_time_add(now, offset));
+ add_milliseconds(now, offset));
agent->sa_next = next;
}
@@ -1093,7 +1114,7 @@
}
if (maxsize == 0) maxsize = 2 * 1024 * 1024;
- if (maxsize > NTA_TIME_MAX) maxsize = NTA_TIME_MAX;
+ if (maxsize > UINT32_MAX) maxsize = UINT32_MAX;
agent->sa_maxsize = maxsize;
if (max_proceeding == 0) max_proceeding = SIZE_MAX;
@@ -1262,7 +1283,7 @@
NTATAG_EXTRA_100(agent->sa_extra_100),
NTATAG_GRAYLIST(agent->sa_graylist),
NTATAG_MAXSIZE(agent->sa_maxsize),
- NTATAG_MAX_PROCEEDING(agent->sa_max_proceeding),
+ NTATAG_MAX_PROCEEDING(agent->sa_max_proceeding),
NTATAG_MAX_FORWARDS(agent->sa_max_forwards->mf_count),
NTATAG_MCLASS(agent->sa_mclass),
NTATAG_MERGE_482(agent->sa_merge_482),
@@ -2046,11 +2067,16 @@
clear = 1, v->v_protocol = via->v_protocol;
/* XXX - should we do this? */
- if (via->v_host != v->v_host &&
+ if (!user_via &&
+ via->v_host != v->v_host &&
str0cmp(via->v_host, v->v_host))
clear = 1, v->v_host = via->v_host;
- if (via->v_port != v->v_port &&
+ if ((!user_via ||
+ /* Replace port in user Via only if we use udp and no rport */
+ (v->v_protocol == sip_transport_udp && !v->v_rport &&
+ !orq->orq_stateless)) &&
+ via->v_port != v->v_port &&
str0cmp(via->v_port, v->v_port))
clear = 1, v->v_port = via->v_port;
@@ -2440,16 +2466,20 @@
leg_recv(leg, msg, sip, tport);
}
else if (!agent->sa_is_stateless && (leg = agent->sa_default_leg)) {
- if (method == sip_method_invite && agent->sa_in.proceeding->q_length >= agent->sa_max_proceeding) {
- SU_DEBUG_5(("nta: proceeding queue full for %s (%u)\n", method_name, cseq));
- nta_msg_treply(agent, msg, SIP_503_SERVICE_UNAVAILABLE,
- NTATAG_TPORT(tport),
- TAG_END());
- return;
- } else {
- SU_DEBUG_5(("nta: %s (%u) %s\n", method_name, cseq, "going to a default leg"));
- leg_recv(leg, msg, sip, tport);
- }
+ if (method == sip_method_invite &&
+ agent->sa_in.proceeding->q_length >= agent->sa_max_proceeding) {
+ SU_DEBUG_5(("nta: proceeding queue full for %s (%u)\n",
+ method_name, cseq));
+ nta_msg_treply(agent, msg, SIP_503_SERVICE_UNAVAILABLE,
+ NTATAG_TPORT(tport),
+ TAG_END());
+ return;
+ }
+ else {
+ SU_DEBUG_5(("nta: %s (%u) %s\n",
+ method_name, cseq, "going to a default leg"));
+ leg_recv(leg, msg, sip, tport);
+ }
}
else if (agent->sa_callback) {
/* Stateless processing for request */
@@ -4022,6 +4052,55 @@
return leg;
}
+/**@internal
+ * Find a leg corresponding to the request message.
+ *
+ */
+static
+nta_leg_t *leg_find_call_id(nta_agent_t const *sa,
+ sip_call_id_t const *i)
+{
+ hash_value_t hash = i->i_hash;
+ leg_htable_t const *lht = sa->sa_dialogs;
+ nta_leg_t **ll, *leg = NULL;
+
+ for (ll = leg_htable_hash(lht, hash);
+ (leg = *ll);
+ ll = leg_htable_next(lht, ll)) {
+ sip_call_id_t const *leg_i = leg->leg_id;
+
+ if (leg->leg_hash != hash)
+ continue;
+ if (strcmp(leg_i->i_id, i->i_id) != 0)
+ continue;
+
+ return leg;
+ }
+
+ return leg;
+}
+
+/** Get dialog leg by @CallID.
+ *
+ * @since New in @VERSION_1_12_9.
+ */
+SOFIAPUBFUN
+nta_leg_t *nta_leg_by_call_id(nta_agent_t *sa, const char *call_id)
+{
+ nta_leg_t *leg = NULL;
+
+ if (call_id) {
+ sip_call_id_t id[1];
+ sip_call_id_init(id);
+
+ id->i_hash = msg_hash_string(id->i_id = call_id);
+
+ leg = leg_find_call_id(sa, id);
+ }
+
+ return leg;
+}
+
/** Calculate a simple case-insensitive hash over a string */
su_inline
hash_value_t hash_istring(char const *s, char const *term, hash_value_t hash)
@@ -4469,7 +4548,7 @@
su_inline int incoming_is_queued(nta_incoming_t const *irq);
su_inline void incoming_queue(incoming_queue_t *queue, nta_incoming_t *);
su_inline void incoming_remove(nta_incoming_t *irq);
-su_inline void incoming_set_timer(nta_incoming_t *, unsigned interval);
+su_inline void incoming_set_timer(nta_incoming_t *, uint32_t interval);
su_inline void incoming_reset_timer(nta_incoming_t *);
su_inline size_t incoming_mass_destroy(nta_agent_t *, incoming_queue_t *);
@@ -4803,10 +4882,10 @@
static void
incoming_queue_adjust(nta_agent_t *sa,
incoming_queue_t *queue,
- unsigned timeout)
+ uint32_t timeout)
{
nta_incoming_t *irq;
- su_duration_t latest;
+ uint32_t latest;
if (timeout >= queue->q_timeout || !queue->q_head) {
queue->q_timeout = timeout;
@@ -4816,7 +4895,7 @@
latest = set_timeout(sa, queue->q_timeout = timeout);
for (irq = queue->q_head; irq; irq = irq->irq_next) {
- if (irq->irq_timeout - latest > 0)
+ if ((int32_t)(irq->irq_timeout - latest) > 0)
irq->irq_timeout = latest;
}
}
@@ -4881,7 +4960,7 @@
}
su_inline
-void incoming_set_timer(nta_incoming_t *irq, unsigned interval)
+void incoming_set_timer(nta_incoming_t *irq, uint32_t interval)
{
nta_incoming_t **rq;
@@ -4905,10 +4984,10 @@
rq = irq->irq_agent->sa_in.re_t1;
- if (!(*rq) || (*rq)->irq_retry - irq->irq_retry > 0)
+ if (!(*rq) || (int32_t)((*rq)->irq_retry - irq->irq_retry) > 0)
rq = &irq->irq_agent->sa_in.re_list;
- while (*rq && (*rq)->irq_retry - irq->irq_retry <= 0)
+ while (*rq && (int32_t)((*rq)->irq_retry - irq->irq_retry) <= 0)
rq = &(*rq)->irq_rnext;
if ((irq->irq_rnext = *rq))
@@ -6135,7 +6214,7 @@
/** @internal Timer routine for the incoming request. */
static void incoming_timer(nta_agent_t *sa)
{
- su_duration_t now = sa->sa_millisec;
+ uint32_t now = sa->sa_millisec;
nta_incoming_t *irq, *irq_next;
size_t retransmitted = 0, timeout = 0, terminated = 0, destroyed = 0;
size_t unconfirmed =
@@ -6152,7 +6231,7 @@
/* Handle retry queue */
while ((irq = sa->sa_in.re_list)) {
- if (irq->irq_retry - now > 0)
+ if ((int32_t)(irq->irq_retry - now) > 0)
break;
if (retransmitted >= timer_max_retransmit)
break;
@@ -6233,7 +6312,7 @@
assert(irq->irq_status < 200);
assert(irq->irq_timeout);
- if (irq->irq_timeout - now > 0)
+ if ((int32_t)(irq->irq_timeout - now) > 0)
break;
if (timeout >= timer_max_timeout)
break;
@@ -6253,7 +6332,7 @@
assert(irq->irq_timeout);
assert(irq->irq_method == sip_method_invite);
- if (irq->irq_timeout - now > 0 ||
+ if ((int32_t)(irq->irq_timeout - now) > 0 ||
timeout >= timer_max_timeout ||
terminated >= timer_max_terminate)
break;
@@ -6281,7 +6360,8 @@
assert(irq->irq_status >= 200);
assert(irq->irq_method == sip_method_invite);
- if (irq->irq_timeout - now > 0 || terminated >= timer_max_terminate)
+ if ((int32_t)(irq->irq_timeout - now) > 0 ||
+ terminated >= timer_max_terminate)
break;
/* Timer I */
@@ -6302,7 +6382,8 @@
assert(irq->irq_timeout);
assert(irq->irq_method != sip_method_invite);
- if (irq->irq_timeout - now > 0 || terminated >= timer_max_terminate)
+ if ((int32_t)(irq->irq_timeout - now) > 0 ||
+ terminated >= timer_max_terminate)
break;
/* Timer J */
@@ -6395,24 +6476,24 @@
su_inline void outgoing_queue(outgoing_queue_t *queue,
nta_outgoing_t *orq);
su_inline void outgoing_remove(nta_outgoing_t *orq);
-su_inline void outgoing_set_timer(nta_outgoing_t *orq, unsigned interval);
+su_inline void outgoing_set_timer(nta_outgoing_t *orq, uint32_t interval);
su_inline void outgoing_reset_timer(nta_outgoing_t *orq);
static size_t outgoing_timer_dk(outgoing_queue_t *q,
char const *timer,
- su_duration_t now);
+ uint32_t now);
static size_t outgoing_timer_bf(outgoing_queue_t *q,
char const *timer,
- su_duration_t now);
+ uint32_t now);
static size_t outgoing_timer_c(outgoing_queue_t *q,
char const *timer,
- su_duration_t now);
+ uint32_t now);
static void outgoing_ack(nta_outgoing_t *orq, sip_t *sip);
static msg_t *outgoing_ackmsg(nta_outgoing_t *, sip_method_t, char const *,
tagi_t const *tags);
static void outgoing_retransmit(nta_outgoing_t *orq);
static void outgoing_trying(nta_outgoing_t *orq);
-static void outgoing_timeout(nta_outgoing_t *orq, su_duration_t now);
+static void outgoing_timeout(nta_outgoing_t *orq, uint32_t now);
static int outgoing_complete(nta_outgoing_t *orq);
static int outgoing_terminate(nta_outgoing_t *orq);
static size_t outgoing_mass_destroy(nta_agent_t *sa, outgoing_queue_t *q);
@@ -7654,7 +7735,7 @@
unsigned timeout)
{
nta_outgoing_t *orq;
- su_duration_t latest;
+ uint32_t latest;
if (timeout >= queue->q_timeout || !queue->q_head) {
queue->q_timeout = timeout;
@@ -7665,7 +7746,7 @@
for (orq = queue->q_head; orq; orq = orq->orq_next) {
if (orq->orq_timeout == 0 ||
- orq->orq_timeout - latest > 0)
+ (int32_t)(orq->orq_timeout - latest) > 0)
orq->orq_timeout = latest;
}
}
@@ -7735,7 +7816,7 @@
* Set the retry timer (B/D) on the outgoing request (client transaction).
*/
su_inline
-void outgoing_set_timer(nta_outgoing_t *orq, unsigned interval)
+void outgoing_set_timer(nta_outgoing_t *orq, uint32_t interval)
{
nta_outgoing_t **rq;
@@ -7762,10 +7843,10 @@
/* Shortcut into queue at SIP T1 */
rq = orq->orq_agent->sa_out.re_t1;
- if (!(*rq) || (*rq)->orq_retry - orq->orq_retry > 0)
+ if (!(*rq) || (int32_t)((*rq)->orq_retry - orq->orq_retry) > 0)
rq = &orq->orq_agent->sa_out.re_list;
- while (*rq && (*rq)->orq_retry - orq->orq_retry <= 0)
+ while (*rq && (int32_t)((*rq)->orq_retry - orq->orq_retry) <= 0)
rq = &(*rq)->orq_rnext;
if ((orq->orq_rnext = *rq))
@@ -7913,7 +7994,7 @@
*/
static void outgoing_timer(nta_agent_t *sa)
{
- su_duration_t now = sa->sa_millisec;
+ uint32_t now = sa->sa_millisec;
nta_outgoing_t *orq;
outgoing_queue_t rq[1];
size_t retransmitted = 0, terminated = 0, timeout = 0, destroyed;
@@ -7927,7 +8008,7 @@
outgoing_queue_init(sa->sa_out.free = rq, 0);
while ((orq = sa->sa_out.re_list)) {
- if (orq->orq_retry - now > 0)
+ if ((int32_t)(orq->orq_retry) - now > 0)
break;
if (retransmitted >= timer_max_retransmit)
break;
@@ -8023,13 +8104,14 @@
static
size_t outgoing_timer_bf(outgoing_queue_t *q,
char const *timer,
- su_duration_t now)
+ uint32_t now)
{
nta_outgoing_t *orq;
size_t timeout = 0;
while ((orq = q->q_head)) {
- if (orq->orq_timeout - now > 0 || timeout >= timer_max_timeout)
+ if ((int32_t)(orq->orq_timeout - now) > 0 ||
+ timeout >= timer_max_timeout)
break;
timeout++;
@@ -8044,7 +8126,7 @@
else
outgoing_terminate(orq);
- assert(q->q_head != orq || orq->orq_timeout - now > 0);
+ assert(q->q_head != orq || (int32_t)(orq->orq_timeout - now) > 0);
}
return timeout;
@@ -8054,7 +8136,7 @@
static
size_t outgoing_timer_c(outgoing_queue_t *q,
char const *timer,
- su_duration_t now)
+ uint32_t now)
{
nta_outgoing_t *orq;
size_t timeout = 0;
@@ -8063,7 +8145,7 @@
return 0;
while ((orq = q->q_head)) {
- if (orq->orq_timeout - now > 0 || timeout >= timer_max_timeout)
+ if ((int32_t)(orq->orq_timeout - now) > 0 || timeout >= timer_max_timeout)
break;
timeout++;
@@ -8083,7 +8165,7 @@
}
/** @internal Signal transaction timeout to the application. */
-void outgoing_timeout(nta_outgoing_t *orq, su_duration_t now)
+void outgoing_timeout(nta_outgoing_t *orq, uint32_t now)
{
nta_outgoing_t *cancel;
@@ -8131,13 +8213,14 @@
static
size_t outgoing_timer_dk(outgoing_queue_t *q,
char const *timer,
- su_duration_t now)
+ uint32_t now)
{
nta_outgoing_t *orq;
size_t terminated = 0;
while ((orq = q->q_head)) {
- if (orq->orq_timeout - now > 0 || terminated >= timer_max_terminate)
+ if ((int32_t)(orq->orq_timeout - now) > 0 ||
+ terminated >= timer_max_terminate)
break;
terminated++;
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/nta_internal.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/nta_internal.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/nta_internal.h Tue May 13 23:37:33 2008
@@ -102,9 +102,9 @@
nta_update_magic_t *sa_update_magic;
nta_update_tport_f *sa_update_tport;
- su_duration_t sa_next; /**< Timestamp for next agent_timer. */
su_time_t sa_now; /**< Timestamp in microsecond resolution. */
- uint32_t sa_millisec; /**< Timestamp in milliseconds resolution. */
+ uint32_t sa_next; /**< Timestamp for next agent_timer. */
+ uint32_t sa_millisec; /**< Timestamp in milliseconds. */
uint32_t sa_nw_updates; /* Shall we enable network detector? */
@@ -419,8 +419,8 @@
sip_timestamp_t *irq_timestamp;
su_time_t irq_received;
- su_duration_t irq_timeout; /**< Timer H, I, J */
- su_duration_t irq_retry; /**< Timer G */
+ uint32_t irq_timeout; /**< Timer H, I, J */
+ uint32_t irq_retry; /**< Timer G */
unsigned short irq_interval; /**< Next timer */
short irq_status;
@@ -499,8 +499,8 @@
su_time_t orq_sent; /**< When request was sent? */
unsigned orq_delay; /**< RTT estimate */
- su_duration_t orq_retry; /**< Timer A, E */
- su_duration_t orq_timeout; /**< Timer B, D, F, K */
+ uint32_t orq_retry; /**< Timer A, E */
+ uint32_t orq_timeout; /**< Timer B, D, F, K */
unsigned short orq_interval; /**< Next timer A/E */
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/nta.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/nta.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nta/sofia-sip/nta.h Tue May 13 23:37:33 2008
@@ -253,6 +253,10 @@
SOFIAPUBFUN
nta_leg_t *nta_leg_by_replaces(nta_agent_t *, sip_replaces_t const *);
+/** Get dialog leg by CallID */
+SOFIAPUBFUN
+nta_leg_t *nta_leg_by_call_id(nta_agent_t *sa, const char *call_id);
+
/* ----------------------------------------------------------------------
* 6) Prototypes for incoming transactions
*/
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua.c Tue May 13 23:37:33 2008
@@ -1005,6 +1005,21 @@
return 0;
}
+struct nua_stack_handle_by_call_id_args {
+ nua_handle_t *retval;
+ nua_t *nua;
+ const char *call_id;
+};
+
+static int nua_stack_handle_by_call_id_call(void *arg)
+{
+ struct nua_stack_handle_by_call_id_args *a = arg;
+
+ a->retval = nua_stack_handle_by_call_id(a->nua, a->call_id);
+
+ return 0;
+}
+
/** Obtain a new reference to an existing handle based on @Replaces header.
*
* @since New in @VERSION_1_12_4.
@@ -1039,3 +1054,38 @@
}
return NULL;
}
+
+/** Obtain a new reference to an existing handle based on @CallID.
+ *
+ * @since New in @VERSION_1_12_9.
+ *
+ * @note
+ * You should release the reference with nua_handle_unref() when you are
+ * done with the handle.
+ *
+ * @sa nua_handle_make_replaces(), @Replaces, @RFC3891, nua_refer(),
+ * #nua_i_refer, @ReferTo, nta_leg_by_replaces()
+ */
+nua_handle_t *nua_handle_by_call_id(nua_t *nua, const char *call_id)
+{
+ if (nua) {
+#if HAVE_OPEN_C
+ struct nua_stack_handle_by_call_id_args a;
+ a.retval = NULL;
+ a.nua = nua;
+ a.call_id = call_id;
+#else
+ struct nua_stack_handle_by_call_id_args a = { NULL, nua, call_id };
+#endif
+
+ if (su_task_execute(nua->nua_server,
+ nua_stack_handle_by_call_id_call, (void *)&a,
+ NULL) == 0) {
+ nua_handle_t *nh = a.retval;
+
+ if (nh && !NH_IS_DEFAULT(nh) && nh->nh_valid)
+ return nua_handle_ref(nh);
+ }
+ }
+ return NULL;
+}
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_notifier.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_notifier.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_notifier.c Tue May 13 23:37:33 2008
@@ -558,9 +558,6 @@
}
}
- if (nu->nu_substate == nua_substate_terminated)
- cr->cr_terminating = 1;
-
cr->cr_usage = du;
return nua_notify_client_init_etag(cr, msg, sip, tags);
@@ -700,6 +697,18 @@
if (nu->nu_substate == nua_substate_terminated)
cr->cr_terminating = 1;
+ if (cr->cr_terminating) {
+ nua_server_request_t *sr;
+ for (sr = du->du_dialog->ds_sr; sr; sr = sr->sr_next) {
+ if (sr->sr_usage == du) {
+ /* If subscribe has not been responded, don't terminate usage by NOTIFY */
+ sr->sr_terminating = 1;
+ cr->cr_terminating = 0;
+ break;
+ }
+ }
+ }
+
if (du->du_event && !sip->sip_event)
sip_add_dup(cr->cr_msg, sip, (sip_header_t *)du->du_event);
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c Tue May 13 23:37:33 2008
@@ -1293,7 +1293,9 @@
/* signal SOA that O/A round(s) is (are) complete */
soa_activate(nh->nh_soa, NULL);
}
- else if (nh->nh_soa == NULL && !(cr->cr_offer_sent && !cr->cr_answer_recv)) {
+ else if (nh->nh_soa == NULL
+ /* NUA does not necessarily know dirty details */
+ /* && !(cr->cr_offer_sent && !cr->cr_answer_recv) */) {
;
}
else {
@@ -2202,11 +2204,11 @@
}
else if (sr->sr_offer_recv && !sr->sr_answer_sent && early_answer) {
/* Generate answer */
- if (soa_generate_answer(nh->nh_soa, NULL) >= 0) {
- answer = 1;
- soa_activate(nh->nh_soa, NULL);
- /* signal that O/A answer sent (answer to invite) */
+ if (soa_generate_answer(nh->nh_soa, NULL) >= 0 &&
+ soa_activate(nh->nh_soa, NULL) >= 0) {
+ answer = 1; /* signal that O/A answer sent (answer to invite) */
}
+ /* We have an error! */
else if (sr->sr_status >= 200) {
sip_warning_t *warning = NULL;
int wcode;
@@ -3135,17 +3137,15 @@
(sr->sr_offer_recv && !sr->sr_answer_sent))
break;
- if (sr ||
- (cri && cri->cr_offer_sent && !cri->cr_answer_recv) ||
- (cri && cri->cr_offer_recv && !cri->cr_answer_sent)) {
- if (nh->nh_soa == NULL) {
- if (session_get_description(sip, NULL, NULL))
- return nua_client_return(cr, 500, "Overlapping Offer/Answer", msg);
- }
- }
- else if (nh->nh_soa == NULL) {
+ if (nh->nh_soa == NULL) {
offer_sent = session_get_description(sip, NULL, NULL);
}
+ else if (sr ||
+ (cri && cri->cr_offer_sent && !cri->cr_answer_recv) ||
+ (cri && cri->cr_offer_recv && !cri->cr_answer_sent)) {
+ if (session_get_description(sip, NULL, NULL))
+ return nua_client_return(cr, 500, "Overlapping Offer/Answer", msg);
+ }
else if (!sip->sip_payload) {
soa_init_offer_answer(nh->nh_soa);
@@ -3360,7 +3360,7 @@
if ((overlap = sr0->sr_offer_recv && !sr0->sr_answer_sent))
break;
- if (overlap)
+ if (nh->nh_soa && overlap)
return nua_server_retry_after(sr, 500, "Overlapping Offer/Answer", 1, 9);
if (nh->nh_soa &&
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.c Tue May 13 23:37:33 2008
@@ -511,12 +511,19 @@
e->e_status = status;
e->e_phrase = phrase;
- SU_DEBUG_7(("nua(%p): signal %s\n", (void *)nh,
- nua_event_name(event) + 4));
-
su_msg_deinitializer(sumsg, nua_event_deinit);
retval = su_msg_send_to(sumsg, nua->nua_server, nua_stack_signal);
+
+ if (retval == 0){
+ SU_DEBUG_7(("nua(%p): %s signal %s\n", (void *)nh,
+ "sent", nua_event_name(event) + 4));
+ }
+ else {
+ SU_DEBUG_0(("nua(%p): %s signal %s\n", (void *)nh,
+ "FAILED TO SEND", nua_event_name(event) + 4));
+
+ }
}
ta_end(ta);
@@ -552,9 +559,9 @@
char const *name = nua_event_name(e->e_event);
if (e->e_status == 0)
- SU_DEBUG_5(("nua(%p): signal %s\n", (void *)nh, name + 4));
+ SU_DEBUG_5(("nua(%p): %s signal %s\n", (void *)nh, "recv", name + 4));
else
- SU_DEBUG_5(("nua(%p): signal %s %u %s\n",
+ SU_DEBUG_5(("nua(%p): recv signal %s %u %s\n",
(void *)nh, name + 4,
e->e_status, e->e_phrase ? e->e_phrase : ""));
}
@@ -651,7 +658,8 @@
}
if (error < 0) {
- nua_stack_event(nh->nh_nua, nh, NULL, event, NUA_ERROR_AT(__FILE__, __LINE__), NULL);
+ nua_stack_event(nh->nh_nua, nh, NULL, event,
+ NUA_ERROR_AT(__FILE__, __LINE__), NULL);
}
su_msg_destroy(nua->nua_signal);
@@ -1115,6 +1123,15 @@
return NULL;
}
+nua_handle_t *nua_stack_handle_by_call_id(nua_t *nua, const char *call_id)
+{
+ if (nua) {
+ nta_leg_t *leg = nta_leg_by_call_id(nua->nua_nta, call_id);
+ if (leg)
+ return nta_leg_magic(leg, nua_stack_process_request);
+ }
+ return NULL;
+}
/** @internal Add authorization data */
int nh_authorize(nua_handle_t *nh, tag_type_t tag, tag_value_t value, ...)
@@ -2281,6 +2298,12 @@
sip_add_dup(msg, sip, (sip_header_t *)nua->nua_from) < 0)
return nua_client_return(cr, NUA_ERROR_AT(__FILE__, __LINE__), msg);
+ if (sip->sip_to == NULL && cr->cr_method == sip_method_register &&
+ sip_add_dup_as(msg, sip, sip_to_class,
+ (sip_header_t *)sip->sip_from) < 0) {
+ return nua_client_return(cr, NUA_ERROR_AT(__FILE__, __LINE__), msg);
+ }
+
if (cr->cr_dialog) {
ds->ds_leg = nta_leg_tcreate(nua->nua_nta,
nua_stack_process_request, nh,
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_stack.h Tue May 13 23:37:33 2008
@@ -207,7 +207,8 @@
extern char const nua_internal_error[];
#define NUA_INTERNAL_ERROR 900, nua_internal_error
-#define NUA_ERROR_AT(file, line) 900, "Internal error at " file ":" #line
+#define _NUA_INTERNAL_ERROR_AT(file, line) "Internal error at " file ":" #line
+#define NUA_ERROR_AT(file, line) 900, _NUA_INTERNAL_ERROR_AT(file, line)
struct nua_s {
su_home_t nua_home[1];
@@ -380,6 +381,9 @@
nua_handle_t *nua_stack_handle_by_replaces(nua_t *nua,
sip_replaces_t const *r);
+nua_handle_t *nua_stack_handle_by_call_id(nua_t *nua, const char *call_id);
+
+
/* ---------------------------------------------------------------------- */
int nua_stack_set_defaults(nua_handle_t *nh, nua_handle_preferences_t *nhp);
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_subnotref.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_subnotref.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_subnotref.c Tue May 13 23:37:33 2008
@@ -248,15 +248,18 @@
nua_dialog_usage_t *du = cr->cr_usage;
sip_time_t expires = 0;
- if (cr->cr_event != nua_r_subscribe ||
- (du && du->du_shutdown) ||
- (sip->sip_expires && sip->sip_expires->ex_delta == 0))
+ if (cr->cr_event != nua_r_subscribe || !du || du->du_shutdown)
cr->cr_terminating = 1;
if (du) {
struct event_usage *eu = nua_dialog_usage_private(du);
sip_event_t *o = sip->sip_event;
+ if (eu->eu_notified &&
+ sip->sip_expires &&
+ sip->sip_expires->ex_delta == 0)
+ cr->cr_terminating = 1;
+
if (nua_client_bind(cr, du) < 0)
return -1;
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c Tue May 13 23:37:33 2008
@@ -97,7 +97,7 @@
/** Source of Contact header */
unsigned ob_by_stack:1;
/** Self-generated contacts */
- unsigned ob_contacts:1, :0;
+ unsigned ob_contacts:1;
/* The registration state machine. */
/** Initial REGISTER containing ob_rcontact has been sent */
@@ -336,6 +336,14 @@
if (ob) {
if (ob->ob_contacts)
*return_current_contact = ob->ob_rcontact;
+ else {
+ sip_contact_t *contact = *return_current_contact;
+ if (contact) {
+ if (ob->ob_rcontact)
+ msg_header_free_all(ob->ob_home, (msg_header_t*)ob->ob_rcontact);
+ ob->ob_rcontact = sip_contact_dup(ob->ob_home, contact);
+ }
+ }
*return_previous_contact = ob->ob_previous;
}
return 0;
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/sofia-sip/nua.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/sofia-sip/nua.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/sofia-sip/nua.h Tue May 13 23:37:33 2008
@@ -384,6 +384,7 @@
SOFIAPUBFUN nua_handle_t *nua_handle_by_replaces(nua_t *nua,
sip_replaces_t const *rp);
+nua_handle_t *nua_handle_by_call_id(nua_t *nua, const char *call_id);
SOFIA_END_DECLS
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/test_simple.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/test_simple.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/test_simple.c Tue May 13 23:37:33 2008
@@ -607,6 +607,27 @@
}
}
+int save_until_responded_and_notified_twice(CONDITION_PARAMS)
+{
+ save_event_in_list(ctx, event, ep, call);
+
+ if (event == nua_i_notify) {
+ if (ep->flags.bit0)
+ ep->flags.bit1 = 1;
+ ep->flags.bit0 = 1;
+ }
+
+ if (event == nua_r_subscribe || event == nua_r_unsubscribe) {
+ if (status >= 300)
+ return 1;
+ else if (status >= 200) {
+ ep->flags.bit2 = 1;
+ }
+ }
+
+ return ep->flags.bit0 && ep->flags.bit1 && ep->flags.bit2;
+}
+
int accept_and_notify(CONDITION_PARAMS)
{
@@ -620,16 +641,21 @@
switch (event) {
case nua_i_subscribe:
if (status < 200) {
+ int fetch = sip->sip_expires && sip->sip_expires->ex_delta == 0;
+
RESPOND(ep, call, nh, SIP_202_ACCEPTED,
NUTAG_WITH(with),
SIPTAG_EXPIRES_STR("360"),
+ SIPTAG_EXPIRES(sip->sip_expires),
TAG_END());
NOTIFY(ep, call, nh,
SIPTAG_EVENT(sip->sip_event),
SIPTAG_CONTENT_TYPE_STR("application/pidf+xml"),
SIPTAG_PAYLOAD_STR(presence_closed),
- NUTAG_SUBSTATE(nua_substate_pending),
+ NUTAG_SUBSTATE(fetch
+ ? nua_substate_pending
+ : nua_substate_terminated),
TAG_END());
}
@@ -695,7 +721,7 @@
SIPTAG_ACCEPT_STR("application/xpidf, application/pidf+xml"),
TAG_END());
- run_ab_until(ctx, -1, save_until_notified_and_responded,
+ run_ab_until(ctx, -1, save_until_responded_and_notified_twice,
-1, accept_and_notify_twice);
/* Client events:
@@ -727,10 +753,16 @@
TEST_1(e = es); TEST_E(e->data->e_event, nua_r_subscribe);
TEST_1(e->data->e_status == 202 || e->data->e_status == 200);
TEST_1(tl_find(e->data->e_tags, nutag_substate));
- if (es == a->events->head)
- TEST(tl_find(e->data->e_tags, nutag_substate)->t_value, nua_substate_embryonic);
- else
- TEST(tl_find(e->data->e_tags, nutag_substate)->t_value, nua_substate_pending);
+ r_tags = tl_find(e->data->e_tags, nutag_substate);
+ if (es == a->events->head) {
+ TEST(r_tags->t_value, nua_substate_embryonic);
+ }
+ else if (es == a->events->head->next) {
+ TEST_1(r_tags->t_value == nua_substate_pending);
+ }
+ else {
+ TEST_1(r_tags->t_value == nua_substate_active);
+ }
TEST_1(sip = sip_object(e->data->e_msg));
TEST_1(sip->sip_expires);
TEST_1(sip->sip_expires->ex_delta <= 333);
@@ -1165,6 +1197,235 @@
}
/* ---------------------------------------------------------------------- */
+
+/*
+ * When incoming SUBSCRIBE, send NOTIFY,
+ * 200 OK SUBSCRIBE when NOTIFY has been responded.
+ */
+int notify_and_accept(CONDITION_PARAMS)
+{
+ if (!(check_handle(ep, call, nh, SIP_500_INTERNAL_SERVER_ERROR)))
+ return 0;
+
+ save_event_in_list(ctx, event, ep, call);
+
+ switch (event) {
+ case nua_i_subscribe:
+ if (status < 200) {
+ NOTIFY(ep, call, nh,
+ SIPTAG_EVENT(sip->sip_event),
+ SIPTAG_CONTENT_TYPE_STR("application/pidf+xml"),
+ SIPTAG_PAYLOAD_STR(presence_closed),
+ TAG_END());
+ }
+ return 0;
+
+ case nua_r_notify:
+ if (status >= 200) {
+ struct event *e;
+ for (e = ep->events->head; e; e = e->next) {
+ if (e->data->e_event == nua_i_subscribe) {
+ RESPOND(ep, call, nh, SIP_200_OK,
+ NUTAG_WITH(e->data->e_msg),
+ TAG_END());
+ break;
+ }
+ }
+ return 1;
+ }
+
+ default:
+ return 0;
+ }
+}
+
+int test_event_fetch(struct context *ctx)
+{
+ BEGIN();
+
+ struct endpoint *a = &ctx->a, *b = &ctx->b;
+ struct call *a_call = a->call, *b_call = b->call;
+ struct event *e, *en1, *en2, *es;
+ sip_t const *sip;
+ tagi_t const *r_tags;
+
+ if (print_headings)
+ printf("TEST NUA-11.6.1: event fetch using nua_notify()\n");
+
+ TEST_1(a_call->nh = nua_handle(a->nua, a_call, SIPTAG_TO(b->to), TAG_END()));
+
+/* Fetch 1:
+
+ A B
+ | |
+ |------SUBSCRIBE----->|
+ | Expires: 0 |
+ |<---------202--------|
+ | |
+ |<-------NOTIFY-------|
+ | S-State: terminated |
+ |-------200 OK------->|
+ | |
+*/
+
+ SUBSCRIBE(a, a_call, a_call->nh, NUTAG_URL(b->contact->m_url),
+ SIPTAG_EVENT_STR("presence"),
+ SIPTAG_EXPIRES_STR("0"),
+ SIPTAG_ACCEPT_STR("application/xpidf, application/pidf+xml"),
+ TAG_END());
+
+ run_ab_until(ctx, -1, save_until_notified_and_responded,
+ -1, accept_and_notify);
+
+ /* Client events:
+ nua_subscribe(), nua_i_notify/nua_r_subscribe/nua_i_notify
+ */
+ for (en1 = en2 = es = NULL, e = a->events->head; e; e = e->next) {
+ if (en1 == NULL && e->data->e_event == nua_i_notify)
+ en1 = e;
+ else if (en2 == NULL && e->data->e_event == nua_i_notify)
+ en2 = e;
+ else if (e->data->e_event == nua_r_subscribe)
+ es = e;
+ else
+ TEST_1(!e);
+ }
+
+ TEST_1(e = en1);
+ TEST_E(e->data->e_event, nua_i_notify);
+ TEST_1(tl_find(e->data->e_tags, nutag_substate));
+ TEST(tl_find(e->data->e_tags, nutag_substate)->t_value, nua_substate_terminated);
+ TEST_1(sip = sip_object(e->data->e_msg));
+ TEST_1(sip->sip_event); TEST_S(sip->sip_event->o_type, "presence");
+ TEST_1(sip->sip_content_type);
+ TEST_S(sip->sip_content_type->c_type, "application/pidf+xml");
+ TEST_1(sip->sip_subscription_state);
+ TEST_S(sip->sip_subscription_state->ss_substate, "terminated");
+
+ TEST_1(e = es); TEST_E(e->data->e_event, nua_r_subscribe);
+ TEST_1(e->data->e_status == 202 || e->data->e_status == 200);
+ TEST_1(tl_find(e->data->e_tags, nutag_substate));
+
+ if (es == a->events->head)
+ TEST(tl_find(e->data->e_tags, nutag_substate)->t_value, nua_substate_embryonic);
+ else
+ TEST(tl_find(e->data->e_tags, nutag_substate)->t_value, nua_substate_terminated);
+ TEST_1(sip = sip_object(e->data->e_msg));
+ TEST_1(sip->sip_expires);
+ TEST_1(sip->sip_expires->ex_delta == 0);
+
+ free_events_in_list(ctx, a->events);
+
+ /* Server events: nua_i_subscribe, nua_r_notify */
+ TEST_1(e = b->events->head);
+ TEST_E(e->data->e_event, nua_i_subscribe);
+ TEST_E(e->data->e_status, 100);
+ TEST_1(sip = sip_object(e->data->e_msg));
+
+ TEST_1(e = e->next); TEST_E(e->data->e_event, nua_r_notify);
+ r_tags = e->data->e_tags;
+ TEST_1(tl_find(r_tags, nutag_substate));
+ TEST(tl_find(r_tags, nutag_substate)->t_value, nua_substate_terminated);
+
+ free_events_in_list(ctx, b->events);
+
+ if (print_headings)
+ printf("TEST NUA-11.6.1: PASSED\n");
+
+ nua_handle_destroy(a_call->nh), a_call->nh = NULL;
+ nua_handle_destroy(b_call->nh), b_call->nh = NULL;
+
+
+ if (print_headings)
+ printf("TEST NUA-11.6.2: event fetch, NOTIFY comes before 202\n");
+
+ TEST_1(a_call->nh = nua_handle(a->nua, a_call, SIPTAG_TO(b->to), TAG_END()));
+
+/* Fetch 2:
+
+ A B
+ | |
+ |------SUBSCRIBE----->|
+ | Expires: 0 |
+ |<-------NOTIFY-------|
+ | S-State: terminated |
+ |-------200 OK------->|
+ | |
+ |<---------202--------|
+ | |
+*/
+
+ SUBSCRIBE(a, a_call, a_call->nh, NUTAG_URL(b->contact->m_url),
+ SIPTAG_EVENT_STR("presence"),
+ SIPTAG_EXPIRES_STR("0"),
+ SIPTAG_ACCEPT_STR("application/xpidf, application/pidf+xml"),
+ TAG_END());
+
+ run_ab_until(ctx, -1, save_until_notified_and_responded,
+ -1, notify_and_accept);
+
+ /* Client events:
+ nua_subscribe(), nua_i_notify/nua_r_subscribe/nua_i_notify
+ */
+ for (en1 = en2 = es = NULL, e = a->events->head; e; e = e->next) {
+ if (en1 == NULL && e->data->e_event == nua_i_notify)
+ en1 = e;
+ else if (en2 == NULL && e->data->e_event == nua_i_notify)
+ en2 = e;
+ else if (e->data->e_event == nua_r_subscribe)
+ es = e;
+ else
+ TEST_1(!e);
+ }
+
+ TEST_1(e = en1);
+ TEST_E(e->data->e_event, nua_i_notify);
+ TEST_1(tl_find(e->data->e_tags, nutag_substate));
+ TEST(tl_find(e->data->e_tags, nutag_substate)->t_value, nua_substate_terminated);
+ TEST_1(sip = sip_object(e->data->e_msg));
+ TEST_1(sip->sip_event); TEST_S(sip->sip_event->o_type, "presence");
+ TEST_1(sip->sip_content_type);
+ TEST_S(sip->sip_content_type->c_type, "application/pidf+xml");
+ TEST_1(sip->sip_subscription_state);
+ TEST_S(sip->sip_subscription_state->ss_substate, "terminated");
+
+ TEST_1(e = es); TEST_E(e->data->e_event, nua_r_subscribe);
+ TEST_1(e->data->e_status == 202 || e->data->e_status == 200);
+ TEST_1(tl_find(e->data->e_tags, nutag_substate));
+
+ if (es == a->events->head)
+ TEST(tl_find(e->data->e_tags, nutag_substate)->t_value, nua_substate_embryonic);
+ else
+ TEST(tl_find(e->data->e_tags, nutag_substate)->t_value, nua_substate_terminated);
+ TEST_1(sip = sip_object(e->data->e_msg));
+ TEST_1(sip->sip_expires);
+ TEST_1(sip->sip_expires->ex_delta == 0);
+
+ free_events_in_list(ctx, a->events);
+
+ /* Server events: nua_i_subscribe, nua_r_notify */
+ TEST_1(e = b->events->head);
+ TEST_E(e->data->e_event, nua_i_subscribe);
+ TEST_E(e->data->e_status, 100);
+ TEST_1(sip = sip_object(e->data->e_msg));
+
+ TEST_1(e = e->next); TEST_E(e->data->e_event, nua_r_notify);
+ r_tags = e->data->e_tags;
+ TEST_1(tl_find(r_tags, nutag_substate));
+ TEST(tl_find(r_tags, nutag_substate)->t_value, nua_substate_terminated);
+
+ free_events_in_list(ctx, b->events);
+
+ if (print_headings)
+ printf("TEST NUA-11.6.2: PASSED\n");
+
+ nua_handle_destroy(a_call->nh), a_call->nh = NULL;
+ nua_handle_destroy(b_call->nh), b_call->nh = NULL;
+
+ END();
+}
+
+/* ---------------------------------------------------------------------- */
/* Unsolicited NOTIFY */
int accept_notify(CONDITION_PARAMS);
@@ -1830,6 +2091,7 @@
|| test_message(ctx)
|| test_publish(ctx)
|| test_subscribe_notify(ctx)
+ || test_event_fetch(ctx)
|| test_subscribe_notify_graceful(ctx)
|| test_newsub_notify(ctx)
|| test_subscription_timeout(ctx)
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/test_sip_events.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/test_sip_events.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/test_sip_events.c Tue May 13 23:37:33 2008
@@ -358,6 +358,73 @@
printf("TEST NUA-12.5: PASSED\n");
/* ---------------------------------------------------------------------- */
+/* Fetch event, SUBSCRIBE with expires: 0
+
+ A B
+ | |
+ |------SUBSCRIBE---->|
+ |<--------202--------|
+ |<------NOTIFY-------|
+ |-------200 OK------>|
+ | |
+*/
+ if (print_headings)
+ printf("TEST NUA-12.5.1: event fetch\n");
+
+ SUBSCRIBE(a, a_call, a_call->nh, NUTAG_URL(b->contact->m_url),
+ SIPTAG_EVENT_STR("presence"),
+ SIPTAG_ACCEPT_STR("application/pidf+xml"),
+ SIPTAG_EXPIRES_STR("0"),
+ TAG_END());
+
+ run_ab_until(ctx, -1, save_until_notified_and_responded,
+ -1, save_until_subscription);
+
+ /* Client events:
+ nua_subscribe(), nua_i_notify/nua_r_subscribe
+ */
+ TEST_1(en = event_by_type(a->events->head, nua_i_notify));
+ TEST_1(es = event_by_type(a->events->head, nua_r_subscribe));
+
+ e = es; TEST_E(e->data->e_event, nua_r_subscribe);
+ TEST_1(t = tl_find(e->data->e_tags, nutag_substate));
+ TEST_1(t->t_value == nua_substate_pending ||
+ t->t_value == nua_substate_terminated ||
+ t->t_value == nua_substate_embryonic);
+
+ e = en; TEST_E(e->data->e_event, nua_i_notify);
+ TEST_1(sip = sip_object(e->data->e_msg));
+ n_tags = e->data->e_tags;
+
+ TEST_1(sip->sip_event); TEST_S(sip->sip_event->o_type, "presence");
+ TEST_1(sip->sip_content_type);
+ TEST_S(sip->sip_content_type->c_type, "application/pidf+xml");
+ TEST_1(sip->sip_payload && sip->sip_payload->pl_data);
+ TEST_1(sip->sip_subscription_state);
+ TEST_S(sip->sip_subscription_state->ss_substate, "terminated");
+ TEST_1(tl_find(n_tags, nutag_substate));
+ TEST(tl_find(n_tags, nutag_substate)->t_value,
+ nua_substate_terminated);
+ TEST_1(!en->next || !es->next);
+ free_events_in_list(ctx, a->events);
+
+ /*
+ Server events:
+ nua_i_subscription
+ */
+ TEST_1(e = b->events->head);
+ TEST_E(e->data->e_event, nua_i_subscription);
+ TEST(tl_gets(e->data->e_tags, NEATAG_SUB_REF(sub), TAG_END()), 1);
+ TEST_1(sub);
+ TEST_1(!e->next);
+
+ free_events_in_list(ctx, b->events);
+
+ if (print_headings)
+ printf("TEST NUA-12.4.1: PASSED\n");
+
+
+ /* ---------------------------------------------------------------------- */
/* 2nd SUBSCRIBE with event id
A B
@@ -370,7 +437,7 @@
*/
/* XXX - we should do this before unsubscribing first one */
if (print_headings)
- printf("TEST NUA-12.4: establishing 2nd subscription\n");
+ printf("TEST NUA-12.4.2: establishing 2nd subscription\n");
NOTIFIER(b, b_call, b_call->nh,
SIPTAG_EVENT_STR("presence"),
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/soa/soa_static.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/soa/soa_static.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/soa/soa_static.c Tue May 13 23:37:33 2008
@@ -731,10 +731,11 @@
o_media = su_zalloc(home, (Ns + 1) * (sizeof *o_media));
u_media = su_zalloc(home, (Nu + 1) * (sizeof *u_media));
r_media = su_zalloc(home, (Nr + 1) * (sizeof *r_media));
+ if (!s_media || !o_media || !u_media || !r_media)
+ return -1;
um = sdp_media_dup_all(home, user->sdp_media, session);
-
- if (!s_media || !u_media || !r_media || !um)
+ if (!um && user->sdp_media)
return -1;
u2s = su_alloc(home, (Nu + 1) * sizeof(*u2s));
@@ -1021,7 +1022,16 @@
for (j = 0, um = user->sdp_media; j != s2u[i]; um = um->m_next, j++)
assert(um);
- assert(um);
+ if (um == NULL) {
+ if (dryrun)
+ return 1;
+ else
+ retval = 1;
+ sm->m_rejected = 1;
+ sm->m_mode = sdp_inactive;
+ sm->m_port = 0;
+ continue;
+ }
send_mode = um->m_mode & sdp_sendonly;
if (rm)
@@ -1049,10 +1059,11 @@
}
}
- if (sm->m_mode != (unsigned)(recv_mode | send_mode))
- retval = 1;
-
- if (!dryrun) {
+ if (sm->m_mode != (unsigned)(recv_mode | send_mode)) {
+ if (dryrun)
+ return 1;
+ else
+ retval = 1;
sm->m_mode = recv_mode | send_mode;
}
}
@@ -1161,7 +1172,8 @@
*local0 = *local, local = local0;
SU_DEBUG_7(("soa_static(%p, %s): %s\n", (void *)ss, by,
"upgrade with local description"));
- soa_sdp_upgrade(ss, tmphome, local, user, NULL, &u2s, &s2u);
+ if (soa_sdp_upgrade(ss, tmphome, local, user, NULL, &u2s, &s2u) < 0)
+ goto internal_error;
break;
case generate_answer:
/* Upgrade local SDP based on remote SDP */
@@ -1173,7 +1185,8 @@
*local0 = *local, local = local0;
SU_DEBUG_7(("soa_static(%p, %s): %s\n", (void *)ss, by,
"upgrade with remote description"));
- soa_sdp_upgrade(ss, tmphome, local, user, remote, &u2s, &s2u);
+ if (soa_sdp_upgrade(ss, tmphome, local, user, remote, &u2s, &s2u) < 0)
+ goto internal_error;
}
break;
case process_answer:
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/soa/test_soa.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/soa/test_soa.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/soa/test_soa.c Tue May 13 23:37:33 2008
@@ -1311,6 +1311,159 @@
}
+int test_media_removal(struct context *ctx)
+{
+ BEGIN();
+ int n;
+
+ soa_session_t *a, *b;
+
+ char const *offer = NONE, *answer = NONE;
+ isize_t offerlen = (isize_t)-1, answerlen = (isize_t)-1;
+
+ sdp_session_t const *a_sdp, *b_sdp;
+ sdp_media_t const *m;
+
+ char const a_caps[] =
+ "v=0\r\n"
+ "o=left 219498671 2 IN IP4 127.0.0.2\r\n"
+ "c=IN IP4 127.0.0.2\r\n"
+ "m=audio 5008 RTP/AVP 0 8\r\n"
+ ;
+
+ char const b_caps[] =
+ "v=0\n"
+ "m=audio 5004 RTP/AVP 0 8\n"
+ "a=rtpmap:96 G7231/8000\n"
+ "a=rtpmap:97 G729/8000\n";
+
+ TEST_1(a = soa_create("static", ctx->root, ctx));
+ TEST_1(b = soa_create("static", ctx->root, ctx));
+
+ TEST(soa_set_user_sdp(a, 0, a_caps, strlen(a_caps)), 1);
+ TEST(soa_set_user_sdp(b, 0, b_caps, strlen(b_caps)), 1);
+
+ TEST_1(soa_set_params(b, SOATAG_RTP_MISMATCH(0),
+ SOATAG_ORDERED_USER(1),
+ TAG_END()));
+
+ n = soa_generate_offer(a, 1, test_completed); TEST(n, 0);
+ n = soa_get_local_sdp(a, NULL, &offer, &offerlen); TEST(n, 1);
+ TEST_1(offer != NULL && offer != NONE);
+ n = soa_set_remote_sdp(b, 0, offer, offerlen); TEST(n, 1);
+ n = soa_get_local_sdp(b, NULL, &answer, &answerlen); TEST(n, 0);
+ n = soa_generate_answer(b, test_completed); TEST(n, 0);
+ n = soa_get_local_sdp(b, &b_sdp, &answer, &answerlen); TEST(n, 1);
+ TEST_1(answer != NULL && answer != NONE);
+ n = soa_set_remote_sdp(a, 0, answer, -1); TEST(n, 1);
+ n = soa_process_answer(a, test_completed); TEST(n, 0);
+
+ TEST_1(soa_is_complete(b));
+ TEST(soa_activate(b, NULL), 0);
+
+ TEST_1(soa_is_complete(a));
+ TEST(soa_activate(a, NULL), 0);
+
+ TEST(soa_is_audio_active(a), SOA_ACTIVE_SENDRECV);
+ TEST(soa_is_remote_audio_active(a), SOA_ACTIVE_SENDRECV);
+
+ /* ---------------------------------------------------------------------- */
+ /* Re-O/A: remove media stream */
+ TEST(soa_set_user_sdp(b, 0, "v=0", -1), 1);
+
+ n = soa_generate_offer(a, 1, test_completed); TEST(n, 0);
+ n = soa_get_local_sdp(a, &a_sdp, &offer, &offerlen); TEST(n, 1);
+ TEST_1(offer != NULL && offer != NONE);
+ n = soa_set_remote_sdp(b, 0, offer, offerlen); TEST(n, 1);
+ n = soa_generate_answer(b, test_completed); TEST(n, 0);
+ n = soa_get_local_sdp(b, &b_sdp, &answer, &answerlen); TEST(n, 1);
+ TEST_1(m = b_sdp->sdp_media); TEST_1(m->m_rejected);
+ TEST_1(answer != NULL && answer != NONE);
+ n = soa_set_remote_sdp(a, 0, answer, -1); TEST(n, 1);
+ n = soa_process_answer(a, test_completed); TEST(n, 0);
+ n = soa_get_local_sdp(a, &a_sdp, NULL, NULL); TEST(n, 1);
+ TEST_1(m = a_sdp->sdp_media); TEST_1(m->m_rejected);
+
+ TEST_1(soa_is_complete(b));
+ TEST(soa_activate(b, NULL), 0);
+
+ TEST_1(soa_is_complete(a));
+ TEST(soa_activate(a, NULL), 0);
+
+ TEST(soa_is_audio_active(a), SOA_ACTIVE_REJECTED);
+ TEST(soa_is_remote_audio_active(a), SOA_ACTIVE_REJECTED);
+
+ TEST_VOID(soa_terminate(a, NULL));
+ TEST_VOID(soa_terminate(b, NULL));
+
+ TEST_VOID(soa_destroy(a));
+ TEST_VOID(soa_destroy(b));
+
+ /* ---------------------------------------------------------------------- */
+
+ TEST_1(a = soa_create("static", ctx->root, ctx));
+ TEST_1(b = soa_create("static", ctx->root, ctx));
+
+ TEST(soa_set_user_sdp(a, 0, a_caps, strlen(a_caps)), 1);
+ TEST(soa_set_user_sdp(b, 0, b_caps, strlen(b_caps)), 1);
+
+ n = soa_generate_offer(a, 1, test_completed); TEST(n, 0);
+ n = soa_get_local_sdp(a, NULL, &offer, &offerlen); TEST(n, 1);
+ TEST_1(offer != NULL && offer != NONE);
+ n = soa_set_remote_sdp(b, 0, offer, offerlen); TEST(n, 1);
+ n = soa_get_local_sdp(b, NULL, &answer, &answerlen); TEST(n, 0);
+ n = soa_generate_answer(b, test_completed); TEST(n, 0);
+ n = soa_get_local_sdp(b, &b_sdp, &answer, &answerlen); TEST(n, 1);
+ TEST_1(answer != NULL && answer != NONE);
+ n = soa_set_remote_sdp(a, 0, answer, -1); TEST(n, 1);
+ n = soa_process_answer(a, test_completed); TEST(n, 0);
+
+ TEST_1(soa_is_complete(b));
+ TEST(soa_activate(b, NULL), 0);
+
+ TEST_1(soa_is_complete(a));
+ TEST(soa_activate(a, NULL), 0);
+
+ TEST(soa_is_audio_active(a), SOA_ACTIVE_SENDRECV);
+ TEST(soa_is_remote_audio_active(a), SOA_ACTIVE_SENDRECV);
+
+ /* ---------------------------------------------------------------------- */
+ /* Re-O/A: offerer remove media stream from user sdp */
+ TEST(soa_set_user_sdp(a, 0, "v=0", -1), 1);
+
+ n = soa_generate_offer(a, 1, test_completed); TEST(n, 0);
+ n = soa_get_local_sdp(a, &a_sdp, &offer, &offerlen); TEST(n, 1);
+ TEST_1(m = a_sdp->sdp_media); TEST_1(m->m_rejected);
+ TEST_1(offer != NULL && offer != NONE);
+ n = soa_set_remote_sdp(b, 0, offer, offerlen); TEST(n, 1);
+ n = soa_generate_answer(b, test_completed); TEST(n, 0);
+ n = soa_get_local_sdp(b, &b_sdp, &answer, &answerlen); TEST(n, 1);
+ TEST_1(m = b_sdp->sdp_media); TEST_1(m->m_rejected);
+ TEST_1(answer != NULL && answer != NONE);
+ n = soa_set_remote_sdp(a, 0, answer, -1); TEST(n, 1);
+ n = soa_process_answer(a, test_completed); TEST(n, 0);
+ n = soa_get_local_sdp(a, &a_sdp, NULL, NULL); TEST(n, 1);
+ TEST_1(m = a_sdp->sdp_media); TEST_1(m->m_rejected);
+
+ TEST_1(soa_is_complete(b));
+ TEST(soa_activate(b, NULL), 0);
+
+ TEST_1(soa_is_complete(a));
+ TEST(soa_activate(a, NULL), 0);
+
+ TEST(soa_is_audio_active(a), SOA_ACTIVE_REJECTED);
+ TEST(soa_is_remote_audio_active(a), SOA_ACTIVE_REJECTED);
+
+ TEST_VOID(soa_terminate(a, NULL));
+ TEST_VOID(soa_terminate(b, NULL));
+
+ TEST_VOID(soa_destroy(a));
+ TEST_VOID(soa_destroy(b));
+
+ END();
+}
+
+
int test_media_reject(struct context *ctx)
{
BEGIN();
@@ -1482,7 +1635,6 @@
n = soa_get_local_sdp(b, &b_sdp, &offer, &offerlen); TEST(n, 1);
TEST_1(offer != NULL && offer != NONE);
n = soa_set_remote_sdp(a, 0, offer, offerlen); TEST(n, 1);
- printf("offer 2:\n%s", offer);
TEST_1(soa_set_params(a, SOATAG_RTP_MISMATCH(0),
SOATAG_USER_SDP_STR(a_caps2),
TAG_END()) > 0);
@@ -1490,7 +1642,6 @@
n = soa_generate_answer(a, test_completed); TEST(n, 0);
n = soa_get_local_sdp(a, &a_sdp, &answer, &answerlen); TEST(n, 1);
TEST_1(answer != NULL && answer != NONE);
- printf("answer 2:\n%s", answer);
n = soa_set_remote_sdp(b, 0, answer, -1); TEST(n, 1);
n = soa_process_answer(b, test_completed); TEST(n, 0);
n = soa_get_local_sdp(b, &b_sdp, NULL, NULL); TEST(n, 1);
@@ -1730,6 +1881,7 @@
retval |= test_static_offer_answer(ctx); SINGLE_FAILURE_CHECK();
retval |= test_codec_selection(ctx); SINGLE_FAILURE_CHECK();
retval |= test_media_replace(ctx); SINGLE_FAILURE_CHECK();
+ retval |= test_media_removal(ctx); SINGLE_FAILURE_CHECK();
retval |= test_media_reject(ctx); SINGLE_FAILURE_CHECK();
retval |= test_asynch_offer_answer(ctx); SINGLE_FAILURE_CHECK();
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/su/su_log.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/su/su_log.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/su/su_log.c Tue May 13 23:37:33 2008
@@ -240,11 +240,13 @@
{
if (log == NULL)
log = su_log_default;
- if (log->log_init > 1)
+ if (log->log_init == 1)
return;
+
if (log->log_env && getenv(log->log_env)) {
su_log_init(log);
- } else {
+ }
+ else {
log->log_level = level;
log->log_init = 2;
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/tport/tport_tls.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/tport/tport_tls.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/tport/tport_tls.c Tue May 13 23:37:33 2008
@@ -299,7 +299,9 @@
BIO_free(tls->bio_con);
for (k = 0; k < TLS_MAX_HOSTS; k++)
- free(tls->hosts[k]), tls->hosts[k] = NULL;
+ if (tls->hosts[k]) {
+ free(tls->hosts[k]), tls->hosts[k] = NULL;
+ }
free(tls);
}
Modified: freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/Makefile.am
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/Makefile.am (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/Makefile.am Tue May 13 23:37:33 2008
@@ -27,6 +27,7 @@
lib_LTLIBRARIES = libvoipcodecs.la
libvoipcodecs_la_SOURCES = bitstream.c \
+ bit_operations.c \
g711.c \
g722_encode.c \
g722_decode.c \
Modified: freeswitch/branches/lukedashjr/syslibs/libs/win32/apr-util/libaprutil.2008.vcproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/win32/apr-util/libaprutil.2008.vcproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/win32/apr-util/libaprutil.2008.vcproj Tue May 13 23:37:33 2008
@@ -229,6 +229,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -238,6 +239,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -251,6 +253,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -260,6 +263,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -273,6 +277,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -282,6 +287,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -295,6 +301,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -304,6 +311,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -317,6 +325,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -326,6 +335,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -339,6 +349,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -348,6 +359,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -361,6 +373,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -370,6 +383,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -383,6 +397,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -392,6 +407,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -405,6 +421,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -414,6 +431,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -427,6 +445,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -436,6 +455,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -449,6 +469,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -458,6 +479,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -471,6 +493,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -480,6 +503,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -493,6 +517,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -502,6 +527,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -519,6 +545,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -528,6 +555,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -541,6 +569,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -550,6 +579,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -563,6 +593,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -572,6 +603,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -633,6 +665,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -642,6 +675,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -655,6 +689,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -664,6 +699,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -677,6 +713,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -686,6 +723,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -699,6 +737,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -708,6 +747,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -725,6 +765,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -734,6 +775,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -747,6 +789,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -756,6 +799,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -769,6 +813,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -778,6 +823,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -791,6 +837,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -800,6 +847,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -817,6 +865,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -826,6 +875,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -843,6 +893,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -852,6 +903,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -869,6 +921,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -878,6 +931,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -891,6 +945,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -900,6 +955,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -913,6 +969,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -922,6 +979,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -939,6 +997,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -948,6 +1007,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -983,6 +1043,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -992,6 +1053,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1005,6 +1067,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1014,6 +1077,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1031,6 +1095,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1040,6 +1105,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1053,6 +1119,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1062,6 +1129,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1075,6 +1143,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1084,6 +1153,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1097,6 +1167,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1106,6 +1177,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1117,14 +1189,62 @@
<File
RelativePath="..\..\apr-util\dbm\sdbm\sdbm_pair.h"
>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
</File>
<File
RelativePath="..\..\apr-util\dbm\sdbm\sdbm_private.h"
>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
</File>
<File
RelativePath="..\..\apr-util\dbm\sdbm\sdbm_tune.h"
>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
</File>
</Filter>
<Filter
@@ -1135,6 +1255,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1144,6 +1265,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1161,6 +1283,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1170,6 +1293,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1187,6 +1311,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1196,6 +1321,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
Modified: freeswitch/branches/lukedashjr/syslibs/libs/win32/apr-util/libaprutil.vcproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/win32/apr-util/libaprutil.vcproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/win32/apr-util/libaprutil.vcproj Tue May 13 23:37:33 2008
@@ -230,6 +230,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -239,6 +240,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -252,6 +254,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -261,6 +264,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -274,6 +278,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -283,6 +288,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -296,6 +302,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -305,6 +312,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -318,6 +326,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -327,6 +336,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -340,6 +350,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -349,6 +360,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -362,6 +374,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -371,6 +384,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -384,6 +398,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -393,6 +408,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -406,6 +422,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -415,6 +432,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -428,6 +446,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -437,6 +456,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -450,6 +470,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -459,6 +480,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -472,6 +494,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -481,6 +504,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -494,6 +518,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -503,6 +528,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -520,6 +546,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -529,6 +556,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -542,6 +570,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -551,6 +580,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -564,6 +594,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -573,6 +604,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -634,6 +666,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -643,6 +676,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -656,6 +690,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -665,6 +700,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -678,6 +714,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -687,6 +724,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -700,6 +738,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -709,6 +748,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -726,6 +766,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -735,6 +776,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -748,6 +790,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -757,6 +800,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -770,6 +814,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -779,6 +824,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -792,6 +838,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -801,6 +848,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -818,6 +866,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -827,6 +876,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -844,6 +894,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -853,6 +904,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -870,6 +922,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -879,6 +932,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -892,6 +946,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -901,6 +956,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -914,6 +970,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -923,6 +980,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -940,6 +998,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -949,6 +1008,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -984,6 +1044,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -993,6 +1054,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1006,6 +1068,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1015,6 +1078,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1032,6 +1096,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1041,6 +1106,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1054,6 +1120,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1063,6 +1130,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1076,6 +1144,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1085,6 +1154,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1098,6 +1168,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1107,6 +1178,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1118,14 +1190,62 @@
<File
RelativePath="..\..\apr-util\dbm\sdbm\sdbm_pair.h"
>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
</File>
<File
RelativePath="..\..\apr-util\dbm\sdbm\sdbm_private.h"
>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
</File>
<File
RelativePath="..\..\apr-util\dbm\sdbm\sdbm_tune.h"
>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
</File>
</Filter>
<Filter
@@ -1136,6 +1256,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1145,6 +1266,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1162,6 +1284,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1171,6 +1294,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1188,6 +1312,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -1197,6 +1322,7 @@
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
1
0
Author: lukedashjr
Date: Tue May 13 22:16:21 2008
New Revision: 8393
Added:
freeswitch/branches/lukedashjr/syslibs/freeswitch/build/swigall.sh
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/build/swigall.sh
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/lua.conf.xml
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/conf/autoload_configs/lua.conf.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/perl.conf.xml
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/conf/autoload_configs/perl.conf.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/build_freeswitch_svn
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/build_freeswitch_svn
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/intralanman/javascript/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/intralanman/javascript/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/intralanman/javascript/cnam.js
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/intralanman/javascript/cnam.js
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Call.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Call.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/CallManager.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/CallManager.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/CallStateEvent.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/CallStateEvent.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/EventWatcher.csproj
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/EventWatcher.csproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Extension.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Extension.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Form1.Designer.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Form1.Designer.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Form1.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Form1.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Form1.resx
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Form1.resx
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/LabelTextBox.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/LabelTextBox.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Program.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Program.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/AssemblyInfo.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/AssemblyInfo.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/Resources.Designer.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/Resources.Designer.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/Resources.resx
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/Resources.resx
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/Settings.Designer.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/Settings.Designer.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/Settings.settings
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/Properties/Settings.settings
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/ReadMePlease.txt
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/EventWatcher/ReadMePlease.txt
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/EventSocket.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/EventSocket.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/FreeSwitch.EventSocket.Test.csproj
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/FreeSwitch.EventSocket.Test.csproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/ParserTest.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/ParserTest.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/Program.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/Program.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/Properties/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/Properties/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/Properties/AssemblyInfo.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.Test/Properties/AssemblyInfo.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.sln
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitch.EventSocket.sln
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/ChannelEvent.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/ChannelEvent.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelAnswer.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelAnswer.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelApplication.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelApplication.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelBridge.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelBridge.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelCreate.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelCreate.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelDestroy.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelDestroy.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelExecute.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelExecute.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelExecuteComplete.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelExecuteComplete.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelHangup.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelHangup.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelOriginate.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelOriginate.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelOutgoing.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelOutgoing.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelProgress.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelProgress.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelState.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelState.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelUnbridge.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelUnbridge.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelUnpark.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventChannelUnpark.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventCodec.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventCodec.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventDtmf.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventDtmf.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventDtmfStatus.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelEvents/EventDtmfStatus.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelInfo.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/ChannelInfo.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/AnyCommand.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/AnyCommand.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/Api.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/Api.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/AuthCommand.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/AuthCommand.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/CmdBase.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/CmdBase.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/CommandReply.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/CommandReply.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/ExecuteJavascript.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/ExecuteJavascript.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/GetVariable.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/GetVariable.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/HoldCmd.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/HoldCmd.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/Originate.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/Originate.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/ParkCmd.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/ParkCmd.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/Playback.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/Playback.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/RecordCmd.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/RecordCmd.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SendEventCmd.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SendEventCmd.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SendMsg.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SendMsg.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SetVariable.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SetVariable.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SleepCmd.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/SleepCmd.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/TransferCmd.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Commands/TransferCmd.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/EventManager.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/EventManager.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/EventParser.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/EventParser.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/EventSocket.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/EventSocket.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/EventSocket.pfx
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/EventSocket.pfx
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventApiCommand.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventApiCommand.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventBase.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventBase.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventHeartbeat.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventHeartbeat.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventMessageQuery.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventMessageQuery.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventMessageWaiting.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventMessageWaiting.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventReSchedule.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Events/EventReSchedule.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/FreeSwitch.EventSocket.csproj
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/FreeSwitch.EventSocket.csproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/General/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/General/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/General/Address.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/General/Address.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/General/ChannelVariable.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/General/ChannelVariable.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/General/SipAddress.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/General/SipAddress.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/General/SofiaSipAddress.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/General/SofiaSipAddress.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Ivr/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Ivr/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Ivr/DtmfEventArgs.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Ivr/DtmfEventArgs.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Ivr/IvrInterface.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Ivr/IvrInterface.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Ivr/IvrQueue.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Ivr/IvrQueue.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Ivr/PrivateWaitDtmf.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Ivr/PrivateWaitDtmf.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/PartyInfo.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/PartyInfo.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/PlainEventMsg.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/PlainEventMsg.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Program.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Program.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Properties/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Properties/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Properties/AssemblyInfo.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/Properties/AssemblyInfo.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresence.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresence.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresenceIn.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresenceIn.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresenceOut.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresenceOut.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresenceProbe.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventPresenceProbe.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventRoster.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventRoster.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventSofiaExpire.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventSofiaExpire.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventSofiaRegister.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/EventSofiaRegister.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/SipEvent.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/SipEvents/SipEvent.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/StringHelper.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/StringHelper.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/StringParser.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/FreeSwitchEventSocket/StringParser.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/IvrSocket.csproj
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/IvrSocket.csproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/Program.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/Program.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/Properties/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/Properties/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/Properties/AssemblyInfo.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/Properties/AssemblyInfo.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/Voicemail.cs
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/contrib/verifier/EventSocket/trunk/IvrSocket/Voicemail.cs
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/extract_log_range.pl
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/extract_log_range.pl
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/lua/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/lua/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/lua/helloworld.lua
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/lua/helloworld.lua
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/lua/mwi_event.lua
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/lua/mwi_event.lua
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/lua/originate.lua
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/lua/originate.lua
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/perl/
- copied from r8392, /freeswitch/tags/1.0.rc4/scripts/perl/
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/perl/mwi_event.pl
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/perl/mwi_event.pl
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/perl/originate.pl
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/scripts/perl/originate.pl
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_reference/
- copied from r8392, /freeswitch/tags/1.0.rc4/src/mod/endpoints/mod_reference/
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_reference/Makefile
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/endpoints/mod_reference/Makefile
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_reference/mod_reference.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/endpoints/mod_reference/mod_reference.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/ (props changed)
- copied from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/Makefile
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/Makefile
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch.i
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/freeswitch.i
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch_lua.cpp
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/freeswitch_lua.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/freeswitch_lua.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/freeswitch_lua.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/hack.diff
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/hack.diff
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/
- copied from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua-mode.el
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua-mode.el
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/Makefile
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/Makefile
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lapi.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lapi.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lapi.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lapi.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lauxlib.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lauxlib.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lauxlib.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lauxlib.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lbaselib.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lbaselib.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lcode.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lcode.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lcode.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lcode.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ldblib.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ldblib.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ldebug.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ldebug.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ldebug.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ldebug.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ldo.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ldo.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ldo.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ldo.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ldump.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ldump.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lfunc.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lfunc.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lfunc.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lfunc.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lgc.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lgc.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lgc.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lgc.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/linit.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/linit.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/liolib.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/liolib.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/llex.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/llex.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/llex.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/llex.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/llimits.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/llimits.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lmathlib.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lmathlib.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lmem.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lmem.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lmem.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lmem.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/loadlib.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/loadlib.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lobject.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lobject.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lobject.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lobject.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lopcodes.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lopcodes.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lopcodes.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lopcodes.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/loslib.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/loslib.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lparser.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lparser.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lparser.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lparser.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lstate.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lstate.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lstate.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lstate.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lstring.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lstring.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lstring.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lstring.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lstrlib.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lstrlib.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ltable.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ltable.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ltable.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ltable.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ltablib.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ltablib.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ltm.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ltm.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/ltm.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/ltm.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lua.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lua.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lua.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lua.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/luac.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/luac.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/luaconf.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/luaconf.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lualib.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lualib.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lundump.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lundump.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lundump.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lundump.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lvm.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lvm.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lvm.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lvm.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lzio.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lzio.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/lzio.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/lzio.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/lua/print.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/lua/print.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.2008.vcproj
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/mod_lua.2008.vcproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/mod_lua.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua.vcproj
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/mod_lua.vcproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua_extra.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/mod_lua_extra.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua_extra.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/mod_lua_extra.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/mod_lua_wrap.cpp
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/mod_lua_wrap.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_lua/my_swigable_cpp.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_lua/my_swigable_cpp.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/
- copied from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/Makefile
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/Makefile
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/compiler.opts
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/compiler.opts
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/compiler.opts.in
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/compiler.opts.in
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch.i
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/freeswitch.i
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch.pm
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/freeswitch.pm
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch_perl.cpp
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/freeswitch_perl.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/freeswitch_perl.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/freeswitch_perl.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/hack.diff
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/hack.diff
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/mod_perl.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl.vcproj
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/mod_perl.vcproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl_extra.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/mod_perl_extra.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl_extra.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/mod_perl_extra.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/mod_perl_wrap.cpp
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/mod_perl_wrap.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/perlibs.h
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/perlibs.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/perlibs.h.in
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/perlibs.h.in
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_perl/perlxsi.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_perl/perlxsi.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/Makefile.in
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/languages/mod_python/Makefile.in
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/say/mod_say_zh/
- copied from r8392, /freeswitch/tags/1.0.rc4/src/mod/say/mod_say_zh/
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/say/mod_say_zh/mod_say_zh.2008.vcproj
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/say/mod_say_zh/mod_say_zh.2008.vcproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/say/mod_say_zh/mod_say_zh.c
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/say/mod_say_zh/mod_say_zh.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/say/mod_say_zh/mod_say_zh.vcproj
- copied unchanged from r8392, /freeswitch/tags/1.0.rc4/src/mod/say/mod_say_zh/mod_say_zh.vcproj
Removed:
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/Makefile
Modified:
freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.2008.sln
freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.sln
freeswitch/branches/lukedashjr/syslibs/freeswitch/Makefile.am
freeswitch/branches/lukedashjr/syslibs/freeswitch/build/modules.conf.in
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/conference.conf.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/dialplan/default.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/directory/default.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/directory/default/brian.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/lang/en/vm/sounds.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/default.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/nat.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/outbound.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/vars.xml
freeswitch/branches/lukedashjr/syslibs/freeswitch/configure.in
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/changelog
freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/files
freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/AUTHORS
freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/ChangeLog
freeswitch/branches/lukedashjr/syslibs/freeswitch/freeswitch.spec
freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/socket/freepy/fseventlistener.py
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_cpp.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_ivr.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_platform.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_types.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/Makefile.am
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_commands/mod_commands.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_dptools/mod_dptools.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/asr_tts/mod_openmrcp/mod_openmrcp.2008.vcproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/codecs/mod_amr/mod_amr.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_glue.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_reg.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/mod_java.i
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/CoreSession.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/JavaSession.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_JavaVM.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_channel_state_t.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_channel_t.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_core_session_t.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_input_args_t.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_input_type_t.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_status_t.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_void.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitch.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/input_callback_state_t.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/session_flag_t.java
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/switch_swig_wrap.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch.py
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch_python.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch_python.h
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python.i
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python_wrap.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_ldap/mod_xml_ldap.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_console.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_io.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_rwlock.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_sqldb.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_cpp.cpp
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_event.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_bridge.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_menu.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_play_say.c
freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Library/FreeSwitchCore.2008.vcproj
freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Library/FreeSwitchCore.vcproj
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/.update
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_notifier.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/sip/sip_util.c
freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/sip/torture_sip.c
freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/lpc10_decode.c
freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/oki_adpcm.c
Log:
MERGE to: http://svn.freeswitch.org/svn/freeswitch/tags/1.0.rc4@8392
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.2008.sln
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.2008.sln (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.2008.sln Tue May 13 22:16:21 2008
@@ -866,6 +866,11 @@
{204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lua", "src\mod\languages\mod_lua\mod_lua.2008.vcproj", "{7B077E7F-1BE7-4291-AB86-55E527B25CAC}"
+ ProjectSection(ProjectDependencies) = postProject
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -1446,6 +1451,12 @@
{36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.ActiveCfg = Release|Win32
{36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.Build.0 = Release|Win32
{36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64.ActiveCfg = Release|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.Build.0 = Debug|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.ActiveCfg = Debug|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.ActiveCfg = Release|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.Build.0 = Release|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1493,6 +1504,7 @@
{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{028C7278-05D7-4E18-82FE-BE231B844F41} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{36E854E3-CE12-4348-A125-CCF3F9D74813} = {0C808854-54D1-4230-BFF5-77B5FD905000}
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
{E7116F50-2B10-472F-92BD-C8667AA9C1AE} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
{1C453396-D912-4213-89FD-9B489162B7B5} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.sln
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.sln (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/Freeswitch.sln Tue May 13 22:16:21 2008
@@ -3,20 +3,20 @@
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchConsole", "w32\Console\FreeSwitchConsole.vcproj", "{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchCoreLib", "w32\Library\FreeSwitchCore.vcproj", "{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}"
ProjectSection(ProjectDependencies) = postProject
- {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
- {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EEF031CB-FED8-451E-A471-91EC8D4F6750}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
- {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
- {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {8D04B550-D240-4A44-8A18-35DA3F7038D9}
{50AD0E28-B8D7-4FCC-8FC3-599F6AC69761} = {50AD0E28-B8D7-4FCC-8FC3-599F6AC69761}
+ {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {8D04B550-D240-4A44-8A18-35DA3F7038D9}
+ {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
+ {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EEF031CB-FED8-451E-A471-91EC8D4F6750}
+ {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
+ {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\mod_g729\mod_g729.vcproj", "{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}"
@@ -26,35 +26,35 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\formats\mod_sndfile\mod_sndfile.vcproj", "{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}"
ProjectSection(ProjectDependencies) = postProject
- {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {3D0370CA-BED2-4657-A475-32375CBCB6E4}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {3D0370CA-BED2-4657-A475-32375CBCB6E4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_iax", "src\mod\endpoints\mod_iax\mod_iax.vcproj", "{3A5B9131-F20C-4A85-9447-6C1610941CEE}"
ProjectSection(ProjectDependencies) = postProject
- {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.vcproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {0A18A071-125E-442F-AFF7-A3F68ABECF99}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {0A18A071-125E-442F-AFF7-A3F68ABECF99}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_speex", "src\mod\codecs\mod_speex\mod_speex.vcproj", "{5580D60E-0F77-4716-9CD4-B8E5986FA375}"
ProjectSection(ProjectDependencies) = postProject
- {1C469CDD-A3AF-4A94-A592-B2CF12F2D918} = {1C469CDD-A3AF-4A94-A592-B2CF12F2D918}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {1C469CDD-A3AF-4A94-A592-B2CF12F2D918} = {1C469CDD-A3AF-4A94-A592-B2CF12F2D918}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_woomera", "src\mod\endpoints\mod_woomera\mod_woomera.vcproj", "{FE3540C5-3303-46E0-A69E-D92F775687F1}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Codecs", "Codecs", "{F881ADA2-2F1A-4046-9FEB-191D9422D781}"
@@ -75,8 +75,8 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.vcproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "FreeSwitchSetup", "w32\Setup\Setup.vdproj", "{B17FFBE6-A942-4056-8346-B624FB5D995B}"
@@ -90,22 +90,22 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_directory", "src\mod\dialplans\mod_dialplan_directory\mod_dialplan_directory.vcproj", "{A27CCA23-1541-4337-81A4-F0A6413078A0}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_zeroconf", "src\mod\event_handlers\mod_zeroconf\mod_zeroconf.vcproj", "{C7705DC4-2088-493E-AF8D-65BC6D65C125}"
ProjectSection(ProjectDependencies) = postProject
- {0D826AF5-0506-4C50-BB8B-7DB019AC21AE} = {0D826AF5-0506-4C50-BB8B-7DB019AC21AE}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {49C34584-B6DA-448F-83CF-27584DC9FC90} = {49C34584-B6DA-448F-83CF-27584DC9FC90}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {49C34584-B6DA-448F-83CF-27584DC9FC90} = {49C34584-B6DA-448F-83CF-27584DC9FC90}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {0D826AF5-0506-4C50-BB8B-7DB019AC21AE} = {0D826AF5-0506-4C50-BB8B-7DB019AC21AE}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_multicast", "src\mod\event_handlers\mod_event_multicast\mod_event_multicast.vcproj", "{784113EF-44D9-4949-835D-7065D3C7AD08}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libteletone", "libs\libteletone\libteletone.vcproj", "{89385C74-5860-4174-9CAF-A39E7C48909C}"
@@ -114,10 +114,10 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey", "src\mod\languages\mod_spidermonkey\mod_spidermonkey.vcproj", "{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}"
ProjectSection(ProjectDependencies) = postProject
- {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
- {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
+ {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ASR-TTS", "ASR-TTS", "{4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}"
@@ -129,22 +129,22 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.vcproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"
ProjectSection(ProjectDependencies) = postProject
- {989BB874-7AF1-44CB-8E5C-CC8113D267E8} = {989BB874-7AF1-44CB-8E5C-CC8113D267E8}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {989BB874-7AF1-44CB-8E5C-CC8113D267E8} = {989BB874-7AF1-44CB-8E5C-CC8113D267E8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dingaling", "src\mod\endpoints\mod_dingaling\mod_dingaling.vcproj", "{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}"
ProjectSection(ProjectDependencies) = postProject
- {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{1906D736-08BD-4EE1-924F-B536249B9A54} = {1906D736-08BD-4EE1-924F-B536249B9A54}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_commands", "src\mod\applications\mod_commands\mod_commands.vcproj", "{30A5B29C-983E-4580-9FD0-D647CCDCC7EB}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Loggers", "Loggers", "{A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}"
@@ -158,35 +158,35 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_rpc", "src\mod\xml_int\mod_xml_rpc\mod_xml_rpc.vcproj", "{CBEC7225-0C21-4DA8-978E-1F158F8AD950}"
ProjectSection(ProjectDependencies) = postProject
- {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {155844C3-EC5F-407F-97A4-A2DDADED9B2F}
- {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
- {A3FE0076-B366-429D-A238-D7304DA7D3C1} = {A3FE0076-B366-429D-A238-D7304DA7D3C1}
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{356EC96D-4C9F-47B5-9083-FC328B87BA94} = {356EC96D-4C9F-47B5-9083-FC328B87BA94}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {A3FE0076-B366-429D-A238-D7304DA7D3C1} = {A3FE0076-B366-429D-A238-D7304DA7D3C1}
+ {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
+ {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {155844C3-EC5F-407F-97A4-A2DDADED9B2F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rss", "src\mod\applications\mod_rss\mod_rss.vcproj", "{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_conference", "src\mod\applications\mod_conference\mod_conference.vcproj", "{C24FB505-05D7-4319-8485-7540B44C8603}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dptools", "src\mod\applications\mod_dptools\mod_dptools.vcproj", "{B5881A85-FE70-4F64-8607-2CAAE52669C6}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_socket", "src\mod\event_handlers\mod_event_socket\mod_event_socket.vcproj", "{05515420-16DE-4E63-BE73-85BE85BA5142}"
ProjectSection(ProjectDependencies) = postProject
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Libraries", "_Libraries", "{EB910B0D-F27D-4B62-B67B-DE834C99AC5B}"
@@ -197,8 +197,8 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdingaling", "libs\libdingaling\libdingaling.vcproj", "{1906D736-08BD-4EE1-924F-B536249B9A54}"
ProjectSection(ProjectDependencies) = postProject
- {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}
{F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
+ {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsrtp", "libs\srtp\libsrtp.vcproj", "{EEF031CB-FED8-451E-A471-91EC8D4F6750}"
@@ -223,8 +223,8 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaprutil", "libs\win32\apr-util\libaprutil.vcproj", "{F057DA7F-79E5-4B00-845C-EF446EF055E3}"
ProjectSection(ProjectDependencies) = postProject
- {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Downloads", "_Downloads", "{C120A020-773F-4EA3-923F-B67AF28B750D}"
@@ -242,8 +242,8 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mDNSResponder static library", "libs\win32\howl\libmDNSResponder.vcproj", "{49C34584-B6DA-448F-83CF-27584DC9FC90}"
ProjectSection(ProjectDependencies) = postProject
- {0D826AF5-0506-4C50-BB8B-7DB019AC21AE} = {0D826AF5-0506-4C50-BB8B-7DB019AC21AE}
{5927104D-C14C-4AC8-925C-4AB681762E75} = {5927104D-C14C-4AC8-925C-4AB681762E75}
+ {0D826AF5-0506-4C50-BB8B-7DB019AC21AE} = {0D826AF5-0506-4C50-BB8B-7DB019AC21AE}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsndfile", "libs\win32\libsndfile\libsndfile.vcproj", "{3D0370CA-BED2-4657-A475-32375CBCB6E4}"
@@ -263,16 +263,16 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sofia", "src\mod\endpoints\mod_sofia\mod_sofia.vcproj", "{0DF3ABD0-DDC0-4265-B778-07C66780979B}"
ProjectSection(ProjectDependencies) = postProject
- {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsofia_sip_ua_static", "libs\win32\sofia\libsofia_sip_ua_static.vcproj", "{70A49BC2-7500-41D0-B75D-EDCC5BE987A0}"
ProjectSection(ProjectDependencies) = postProject
- {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}
{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}
+ {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PTHREAD", "libs\win32\Download PTHREAD.vcproj", "{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}"
@@ -284,70 +284,70 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g723_1", "src\mod\codecs\mod_g723_1\mod_g723_1.vcproj", "{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_native_file", "src\mod\formats\mod_native_file\mod_native_file.vcproj", "{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_core_db", "src\mod\languages\mod_spidermonkey_core_db\mod_spidermonkey_core_db.vcproj", "{ACFFF684-4D19-4D48-AF12-88EA1D778BDF}"
ProjectSection(ProjectDependencies) = postProject
- {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_teletone", "src\mod\languages\mod_spidermonkey_teletone\mod_spidermonkey_teletone.vcproj", "{8F992C49-6C51-412F-B2A3-34EAB708EB65}"
ProjectSection(ProjectDependencies) = postProject
- {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libudns", "libs\win32\udns\libudns.vcproj", "{4043FC6A-9A30-4577-8AD5-9B233C9575D8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_enum", "src\mod\applications\mod_enum\mod_enum.vcproj", "{71A967D5-0E99-4CEF-A587-98836EE6F2EF}"
ProjectSection(ProjectDependencies) = postProject
- {4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {4043FC6A-9A30-4577-8AD5-9B233C9575D8}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {4043FC6A-9A30-4577-8AD5-9B233C9575D8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_odbc", "src\mod\languages\mod_spidermonkey_odbc\mod_spidermonkey_odbc.vcproj", "{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}"
ProjectSection(ProjectDependencies) = postProject
- {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_curl", "src\mod\xml_int\mod_xml_curl\mod_xml_curl.vcproj", "{AB91A099-7690-4ECF-8994-E458F4EA1ED4}"
ProjectSection(ProjectDependencies) = postProject
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "say", "say", "{6CD61A1D-797C-470A-BE08-8C31B68BB336}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_en", "src\mod\say\mod_say_en\mod_say_en.vcproj", "{988CACF7-3FCB-4992-BE69-77872AE67DC8}"
ProjectSection(ProjectDependencies) = postProject
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\portaudio\build\msvc\portaudio.vcproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_cdr", "src\mod\xml_int\mod_xml_cdr\mod_xml_cdr.vcproj", "{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}"
ProjectSection(ProjectDependencies) = postProject
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
- {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.vcproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}"
@@ -420,16 +420,16 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpcore", "libs\openmrcp\mrcpcore\mrcpcore.vcproj", "{829A9309-3B94-43C0-846B-7EC9D6D35F8B}"
ProjectSection(ProjectDependencies) = postProject
- {AA91F0AC-6562-435E-814C-5C94689FEFA2} = {AA91F0AC-6562-435E-814C-5C94689FEFA2}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {AA91F0AC-6562-435E-814C-5C94689FEFA2} = {AA91F0AC-6562-435E-814C-5C94689FEFA2}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rtspcore", "libs\openmrcp\rtspcore\rtspcore.vcproj", "{EB751DC4-87BD-4766-B78D-DFB64BA9F988}"
ProjectSection(ProjectDependencies) = postProject
- {829A9309-3B94-43C0-846B-7EC9D6D35F8B} = {829A9309-3B94-43C0-846B-7EC9D6D35F8B}
- {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
+ {829A9309-3B94-43C0-846B-7EC9D6D35F8B} = {829A9309-3B94-43C0-846B-7EC9D6D35F8B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpmediaframe", "libs\openmrcp\module\mrcpmediaframe\mrcpmediaframe.vcproj", "{9EA22C31-BB7E-4C40-A698-2C6792D1E0C6}"
@@ -446,8 +446,8 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsofiasip", "libs\openmrcp\module\mrcpsofiasip\mrcpsofiasip.vcproj", "{819C7242-6184-46FE-BC7B-C7E25C0581EE}"
ProjectSection(ProjectDependencies) = postProject
- {829A9309-3B94-43C0-846B-7EC9D6D35F8B} = {829A9309-3B94-43C0-846B-7EC9D6D35F8B}
{70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
+ {829A9309-3B94-43C0-846B-7EC9D6D35F8B} = {829A9309-3B94-43C0-846B-7EC9D6D35F8B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpv2agent", "libs\openmrcp\module\mrcpv2agent\mrcpv2agent.vcproj", "{FB64EA08-3BC0-48AE-BE4B-74F1024B756E}"
@@ -457,27 +457,27 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenmrcpclient", "libs\openmrcp\platform\libopenmrcpclient\libopenmrcpclient.vcproj", "{A407B661-D7DC-4E30-B268-FFF3296C35E6}"
ProjectSection(ProjectDependencies) = postProject
- {FB64EA08-3BC0-48AE-BE4B-74F1024B756E} = {FB64EA08-3BC0-48AE-BE4B-74F1024B756E}
- {9EA22C31-BB7E-4C40-A698-2C6792D1E0C6} = {9EA22C31-BB7E-4C40-A698-2C6792D1E0C6}
- {819C7242-6184-46FE-BC7B-C7E25C0581EE} = {819C7242-6184-46FE-BC7B-C7E25C0581EE}
{CF78E84D-8456-44F2-8197-0E0E88D30A3C} = {CF78E84D-8456-44F2-8197-0E0E88D30A3C}
+ {819C7242-6184-46FE-BC7B-C7E25C0581EE} = {819C7242-6184-46FE-BC7B-C7E25C0581EE}
+ {9EA22C31-BB7E-4C40-A698-2C6792D1E0C6} = {9EA22C31-BB7E-4C40-A698-2C6792D1E0C6}
+ {FB64EA08-3BC0-48AE-BE4B-74F1024B756E} = {FB64EA08-3BC0-48AE-BE4B-74F1024B756E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_openmrcp", "src\mod\asr_tts\mod_openmrcp\mod_openmrcp.vcproj", "{E7116F50-2B10-472F-92BD-C8667AA9C1AE}"
ProjectSection(ProjectDependencies) = postProject
- {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2} = {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
- {A407B661-D7DC-4E30-B268-FFF3296C35E6} = {A407B661-D7DC-4E30-B268-FFF3296C35E6}
- {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
- {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
{70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
+ {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+ {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
+ {A407B661-D7DC-4E30-B268-FFF3296C35E6} = {A407B661-D7DC-4E30-B268-FFF3296C35E6}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2} = {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_socket", "src\mod\languages\mod_spidermonkey_socket\mod_spidermonkey_socket.vcproj", "{028C7278-05D7-4E18-82FE-BE231B844F41}"
ProjectSection(ProjectDependencies) = postProject
- {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_voicemail", "src\mod\applications\mod_voicemail\mod_voicemail.vcproj", "{D7F1E3F2-A3F4-474C-8555-15122571AF52}"
@@ -842,26 +842,26 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_tone_stream", "src\mod\formats\mod_tone_stream\mod_tone_stream.vcproj", "{1A789A98-71EF-4EBD-8007-FC9ED585D32E}"
ProjectSection(ProjectDependencies) = postProject
- {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvoipcodecs", "libs\voipcodecs\libvoipcodecs.vcproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_voipcodecs", "src\mod\codecs\mod_voipcodecs\mod_voipcodecs.vcproj", "{9EED03C8-8315-4214-8D13-8FF5FA46D93C}"
ProjectSection(ProjectDependencies) = postProject
- {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {CF70F278-3364-4395-A2E1-23501C9B8AD2}
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {CF70F278-3364-4395-A2E1-23501C9B8AD2}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aprtoolkit", "libs\openmrcp\aprtoolkit\aprtoolkit.vcproj", "{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_curl", "src\mod\languages\mod_spidermonkey_curl\mod_spidermonkey_curl.vcproj", "{2CCED6DC-26FF-40F2-9585-E9E1049A4599}"
ProjectSection(ProjectDependencies) = postProject
- {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
- {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
- {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
+ {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fsv", "src\mod\applications\mod_fsv\mod_fsv.vcproj", "{4AE157CF-F2DD-4B5D-A1EE-4AC173B4F9AC}"
@@ -869,6 +869,11 @@
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lua", "src\mod\languages\mod_lua\mod_lua.vcproj", "{7B077E7F-1BE7-4291-AB86-55E527B25CAC}"
+ ProjectSection(ProjectDependencies) = postProject
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -1449,6 +1454,12 @@
{4AE157CF-F2DD-4B5D-A1EE-4AC173B4F9AC}.Release|Win32.ActiveCfg = Release|Win32
{4AE157CF-F2DD-4B5D-A1EE-4AC173B4F9AC}.Release|Win32.Build.0 = Release|Win32
{4AE157CF-F2DD-4B5D-A1EE-4AC173B4F9AC}.Release|x64.ActiveCfg = Release|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.Build.0 = Debug|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.ActiveCfg = Debug|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.ActiveCfg = Release|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.Build.0 = Release|Win32
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1524,6 +1535,7 @@
{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{028C7278-05D7-4E18-82FE-BE231B844F41} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{2CCED6DC-26FF-40F2-9585-E9E1049A4599} = {0C808854-54D1-4230-BFF5-77B5FD905000}
+ {7B077E7F-1BE7-4291-AB86-55E527B25CAC} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
{E7116F50-2B10-472F-92BD-C8667AA9C1AE} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
{1C453396-D912-4213-89FD-9B489162B7B5} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/Makefile.am
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/Makefile.am (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/Makefile.am Tue May 13 22:16:21 2008
@@ -130,16 +130,16 @@
libfreeswitch_la_LDFLAGS = -version-info 1:0:0 $(AM_LDFLAGS)
libfreeswitch_la_LIBADD = $(CORE_LIBS)
libfreeswitch_la_DEPENDENCIES = $(BUILT_SOURCES)
-nodist_libfreeswitch_la_SOURCES = src/include/switch_version.h
+nodist_libfreeswitch_la_SOURCES = src/include/switch_version.h src/include/switch_swigable_cpp.h
MOD_LINK = $(BASE)/libfreeswitch.la
-CLEANFILES = src/include/switch_version.h
-BUILT_SOURCES = src/include/switch_version.h
+CLEANFILES = src/include/switch_version.h src/include/switch_swigable_cpp.h
+BUILT_SOURCES = src/include/switch_version.h src/include/switch_swigable_cpp.h
bin_PROGRAMS = freeswitch
freeswitch_SOURCES = src/switch.c
-nodist_freeswitch_SOURCES = src/include/switch_version.h
+nodist_freeswitch_SOURCES = src/include/switch_version.h
freeswitch_CFLAGS = $(AM_CFLAGS) $(CORE_CFLAGS)
freeswitch_LDFLAGS = $(AM_LDFLAGS) -rpath $(libdir) /usr/lib/stfu.o
freeswitch_LDADD = libfreeswitch.la
@@ -150,6 +150,8 @@
bin_SCRIPTS = scripts/gentls_cert scripts/fsxs
+src/include/switch_swigable_cpp.h: src/include/switch_cpp.h
+ $(CC) -E src/include/switch_cpp.h -DSWITCH_DECLARE\(x\)=x -DSWITCH_DECLARE_CONSTRUCTOR= -DSWITCH_DECLARE_NONSTD\(x\)=x 2>/dev/null | grep -v "^#" > src/include/switch_swigable_cpp.h
$(libfreeswitch_la_SOURCES): $(CORE_LIBS) $(switch_builddir)/quiet_libtool modules.conf
@@ -240,8 +242,6 @@
everything: install
-installall: install
-
up: clean
svn update
$(MAKE) -j core
@@ -254,6 +254,10 @@
update-clean: clean modwipe uninstall
+swigall:
+ @echo reswigging all
+ sh ./build/swigall.sh
+
sure: update-clean all
speedy-sure: update-clean
@@ -265,6 +269,8 @@
$(MAKE) all
$(MAKE) install
+installall: current
+
speedy-current: update-clean
svn update
$(MAKE) speedy-sure
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/build/modules.conf.in
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/build/modules.conf.in (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/build/modules.conf.in Tue May 13 22:16:21 2008
@@ -49,6 +49,8 @@
languages/mod_spidermonkey_core_db
languages/mod_spidermonkey_socket
#languages/mod_spidermonkey_odbc
+#languages/mod_lua
+#languages/mod_perl
xml_int/mod_xml_rpc
#xml_int/mod_xml_curl
xml_int/mod_xml_cdr
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/conference.conf.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/conference.conf.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/autoload_configs/conference.conf.xml Tue May 13 22:16:21 2008
@@ -66,7 +66,7 @@
<!-- File to play endlessly (nobody will ever be able to talk) -->
<!--<param name="perpetual-sound" value="perpetual.wav"/>-->
<!-- File to play when you're alone (music on hold)-->
- <param name="moh-sound" value="$${moh_uri}"/>
+ <param name="moh-sound" value="$${hold_music}"/>
<!-- File to play when you join the conference -->
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<!-- File to play when you leave the conference -->
@@ -104,7 +104,7 @@
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
- <param name="moh-sound" value="$${moh_uri}"/>
+ <param name="moh-sound" value="$${hold_music}"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
@@ -127,7 +127,7 @@
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
- <param name="moh-sound" value="$${moh_uri}"/>
+ <param name="moh-sound" value="$${hold_music}"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/dialplan/default.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/dialplan/default.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/dialplan/default.xml Tue May 13 22:16:21 2008
@@ -143,7 +143,7 @@
<anti-action application="set" data="call_timeout=30"/>
<!-- <anti-action application="set" data="sip_exclude_contact=${network_addr}"/> -->
<anti-action application="set" data="hangup_after_bridge=true"/>
- <!--<anti-action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,BUSY,USER_BUSY,NO_ANSWER,TIMEOUT,NO_ROUTE_DESTINATION"/> -->
+ <!--<anti-action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,USER_BUSY,NO_ANSWER,TIMEOUT,NO_ROUTE_DESTINATION"/> -->
<anti-action application="set" data="continue_on_fail=true"/>
<anti-action application="db" data="insert/call_return/${dialed_ext}/${caller_id_number}"/>
<anti-action application="db" data="insert/last_dial_ext/${dialed_ext}/${uuid}"/>
@@ -216,7 +216,7 @@
-->
<extension name="park">
<condition field="destination_number" expression="^5900$">
- <action application="set" data="fifo_music=$${moh_uri}"/>
+ <action application="set" data="fifo_music=$${hold_music}"/>
<action application="fifo" data="5900@$${domain} in"/>
</condition>
</extension>
@@ -241,7 +241,7 @@
<extension name="park">
<condition field="source" expression="mod_sofia"/>
<condition field="destination_number" expression="park\+(\d+)">
- <action application="fifo" data="$1@$${domain} in undef $${moh_uri}"/>
+ <action application="fifo" data="$1@$${domain} in undef $${hold_music}"/>
</condition>
</extension>
<!--
@@ -307,10 +307,10 @@
<condition field="${sip_has_crypto}" expression="^(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)$">
<action application="answer"/>
<action application="execute_extension" data="is_secure XML features"/>
- <action application="playback" data="$${moh_uri}"/>
+ <action application="playback" data="$${hold_music}"/>
<anti-action application="answer"/>
<!--<anti-action application="send_display" data="Insecure Music On Hold"/>-->
- <anti-action application="playback" data="$${moh_uri}"/>
+ <anti-action application="playback" data="$${hold_music}"/>
</condition>
</extension>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/directory/default.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/directory/default.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/directory/default.xml Tue May 13 22:16:21 2008
@@ -2,7 +2,7 @@
<!--the domain or ip (the right hand side of the @ in the addr-->
<domain name="$${domain}">
<params>
- <param name="dial-string" value="{presence_id=${dialed_ext}@${dialed_domain},transfer_fallback_extension=${dialed_user}}${sofia_contact(${dialed_domain}/${dialed_ext}@${dialed_domain})}"/>
+ <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain},transfer_fallback_extension=${dialed_user}}${sofia_contact(${dialed_domain}/${dialed_user}@${dialed_domain})}"/>
</params>
<variables>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/directory/default/brian.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/directory/default/brian.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/directory/default/brian.xml Tue May 13 22:16:21 2008
@@ -35,6 +35,8 @@
<!--<param name="caller-id-in-from" value="false"/>-->
<!--extra sip params to send in the contact-->
<!--<param name="contact-params" value="tport=tcp"/>-->
+ <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
+ <!--<param name="ping" value="25"/>-->
<!--</gateway>-->
</gateways>
<params>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/lang/en/vm/sounds.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/lang/en/vm/sounds.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/lang/en/vm/sounds.xml Tue May 13 22:16:21 2008
@@ -50,11 +50,11 @@
</macro>
<macro name="voicemail_message_count">
- <input pattern="^1:(.*)$">
+ <input pattern="^(1):(.*)$">
<match>
<action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-new.wav"/>
+ <action function="say" data="$1" method="pronounced" type="items"/>
+ <action function="play-file" data="voicemail/vm-$2.wav"/>
<action function="play-file" data="voicemail/vm-message.wav"/>
<action function="play-file" data="voicemail/vm-in_folder.wav"/>
</match>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/default.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/default.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/default.xml Tue May 13 22:16:21 2008
@@ -33,7 +33,7 @@
<param name="rtp-ip" value="$${local_ip_v4}"/>
<!-- ip address to bind to -->
<param name="sip-ip" value="$${local_ip_v4}"/>
- <param name="hold-music" value="$${moh_uri}"/>
+ <param name="hold-music" value="$${hold_music}"/>
<!--<param name="enable-timer" value="false"/>-->
<!--<param name="enable-100rel" value="false"/>-->
<!--<param name="apply-inbound-acl" value="lan"/>-->
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/nat.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/nat.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/nat.xml Tue May 13 22:16:21 2008
@@ -14,7 +14,7 @@
<param name="dtmf-duration" value="100"/>
<param name="codec-prefs" value="$${outbound_codec_prefs}"/>
<param name="use-rtp-timer" value="true"/>
- <param name="hold-music" value="$${moh_uri}"/>
+ <param name="hold-music" value="$${hold_music}"/>
<param name="rtp-timer-name" value="soft"/>
<param name="manage-presence" value="false"/>
<param name="inbound-codec-negotiation" value="generous"/>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/outbound.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/outbound.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/sip_profiles/outbound.xml Tue May 13 22:16:21 2008
@@ -18,7 +18,7 @@
<param name="context" value="public"/>
<param name="dtmf-duration" value="100"/>
<param name="codec-prefs" value="$${outbound_codec_prefs}"/>
- <param name="hold-music" value="$${moh_uri}"/>
+ <param name="hold-music" value="$${hold_music}"/>
<param name="use-rtp-timer" value="true"/>
<param name="rtp-timer-name" value="soft"/>
<param name="manage-presence" value="false"/>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/vars.xml
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/vars.xml (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/conf/vars.xml Tue May 13 22:16:21 2008
@@ -3,7 +3,6 @@
-->
<X-PRE-PROCESS cmd="set" data="sound_prefix=$${base_dir}/sounds/en/us/callie"/>
<X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
- <X-PRE-PROCESS cmd="set" data="moh_uri=local_stream://moh"/>
<X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>
<!-- xmpp_client_profile and xmpp_server_profile
xmpp_client_profile can be any string.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/configure.in
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/configure.in (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/configure.in Tue May 13 22:16:21 2008
@@ -3,11 +3,11 @@
# Must change all of the below together
# For a release, set revision for that tagged release as well and uncomment
-AC_INIT([freeswitch], [1.0.pre4], BUG-REPORT-ADDRESS)
+AC_INIT([freeswitch], [1.0.rc4], BUG-REPORT-ADDRESS)
AC_SUBST(SWITCH_VERSION_MAJOR, [1])
AC_SUBST(SWITCH_VERSION_MINOR, [0])
-AC_SUBST(SWITCH_VERSION_MICRO, [pre4])
-#AC_SUBST(SWITCH_VERSION_REVISION, [svn-revision-here])
+AC_SUBST(SWITCH_VERSION_MICRO, [rc4])
+AC_SUBST(SWITCH_VERSION_REVISION, [8261])
AC_CONFIG_FILES([src/include/switch_version.h.in:src/include/switch_version.h.template])
@@ -563,12 +563,120 @@
AM_CONDITIONAL([ADD_LIBEDIT],[test "x$enable_core_libedit_support" != "xno"])
AM_CONDITIONAL([HAVE_MYSQL],[test "$found_mysql" = "yes"])
+#
+# Python checks for mod_python
+#
+AC_ARG_WITH(
+ [python],
+ [AS_HELP_STRING([--with-python], [Use system provided version of python (default: try)])],
+ [with_python="$withval"],
+ [with_python="try"]
+)
+
+AC_ARG_WITH(
+ [python-config],
+ [AS_HELP_STRING([--with-python-config=PATH], [Location of python-config])],
+ [with_python_config="$withval"],
+ [with_python_config="no"]
+)
+
+
+if test "$with_python" != "no"
+then
+ if test "$with_python" != "yes" -a "$with_python" != "try" ; then
+ AC_MSG_CHECKING([for python])
+ if test ! -x "$with_python" ; then
+ AC_MSG_ERROR([Specified python does not exist or is not executable: $with_python])
+ fi
+ AC_MSG_RESULT([$with_python])
+ AC_SUBST([PYTHON], ["$with_python"])
+ else
+ AC_PATH_PROG([PYTHON], ["python"], ["no"], ["$PATH:/usr/bin:/usr/local/bin"])
+ fi
+
+ if test "$PYTHON" != "no" ; then
+ AC_MSG_CHECKING([python version])
+ PYTHON_VER="`$PYTHON -V 2>&1 | cut -d' ' -f2`"
+
+ if test -z "$PYTHON_VER" ; then
+ AC_MSG_ERROR([Unable to detect python version])
+ fi
+ AC_MSG_RESULT([$PYTHON_VER])
+
+ AC_MSG_CHECKING([location of site-packages])
+
+ # NOTE: this assumes our desired location is always the last one in the list
+ # (= system package location is searched last)
+ #
+ # needs double brackets because m4 removes one pair
+ PYTHON_SITE_DIR="`$PYTHON -c 'import sys; print sys.path[[-1]];'`"
+
+ if test -z "$PYTHON_SITE_DIR" ; then
+ AC_MSG_ERROR([Unable to detect python site-packages path])
+ elif test ! -d "$PYTHON_SITE_DIR" ; then
+ AC_MSG_ERROR([Path $PYTHON_SITE_DIR returned by python does not exist!])
+ fi
+ AC_MSG_RESULT([$PYTHON_SITE_DIR])
+ AC_SUBST([PYTHON_SITE_DIR], [$PYTHON_SITE_DIR])
+
+ if test "$with_python_config" != "no" ; then
+ AC_MSG_CHECKING([for python-config])
+ if test ! -x "$with_python_config" ; then
+ AC_MSG_ERROR([Specified python-config does not exist or is not executable: $with_python_config])
+ fi
+ AC_MSG_RESULT([$with_python_config])
+ AC_SUBST([PYTHON_CONFIG], ["$with_python_config"])
+ else
+ AC_PATH_PROG([PYTHON_CONFIG], ["python-config"], ["no"], ["$PATH:/usr/bin:/usr/local/bin"])
+ fi
+
+ # this one is fatal if with_python != try
+ if test "$PYTHON_CONFIG" != "no" ; then
+ PYTHON_CFLAGS="`$PYTHON_CONFIG --cflags`"
+ PYTHON_LDFLAGS="`$PYTHON_CONFIG --ldflags`"
+
+ # check whether system libpython is usable and has threads support
+ save_LIBS="$LIBS"
+ LIBS="$PYTHON_LDFLAGS"
+ AC_CHECK_FUNC([PyThread_init_thread], [python_has_threads="yes"], [python_has_threads="no"])
+ LIBS="$save_LIBS"
+
+ if test "$python_has_threads" = "no" ; then
+ if test "$with_python" = "try" ; then
+ AC_MSG_ERROR([Your python lacks threads support, can not build mod_python])
+ fi
+
+ AC_MSG_WARN([Your python lacks threads support, can not build mod_python])
+ else
+ AC_MSG_NOTICE([Your python seems OK, do not forget to enable mod_python in modules.conf])
+ AC_SUBST([PYTHON_CFLAGS], [$PYTHON_CFLAGS])
+ AC_SUBST([PYTHON_LDFLAGS], [$PYTHON_LDFLAGS])
+ fi
+ else
+ if test "$with_python" != "try" ; then
+ AC_MSG_ERROR([python-config could not be found, use --with-python-config to specify the location])
+ fi
+
+ AC_MSG_WARN([python-config could not be found, mod_python will not build, use --with-python-config to specify the location])
+ fi
+ else
+ if test "$with_python" != "try" ; then
+ AC_MSG_ERROR([Could not find python, use --with-python to specify the location])
+ fi
+
+ AC_MSG_WARN([Could not find python, mod_python will not build, use --with-python to specify the location])
+ fi
+else
+ AC_MSG_WARN([python support disabled, building mod_python will fail!])
+fi
+
AC_CONFIG_FILES([Makefile
src/Makefile
src/mod/Makefile
src/mod/endpoints/mod_sofia/Makefile
src/mod/event_handlers/mod_radius_cdr/Makefile
src/mod/languages/mod_java/Makefile
+ src/mod/languages/mod_python/Makefile
src/include/switch_am_config.h
build/getsounds.sh
build/getlib.sh
@@ -584,19 +692,31 @@
LIBTOOL='`if test -z "$(VERBOSE)" ; then echo $(SHELL) $(switch_builddir)/quiet_libtool ;else echo $(switch_builddir)/libtool; fi;`'
TOUCH_TARGET='if test -f "$@";then touch "$@";fi;'
CONF_MODULES='\`grep -v "\#" $(switch_builddir)/modules.conf | sed -e "s|^.*/||" | sort | uniq \`'
+CONF_DISABLED_MODULES='\`grep "\#" $(switch_builddir)/modules.conf | sed -e "s|^.*/||" | sort | uniq \`'
OUR_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-all ; done \`; echo $$mods `'
OUR_CLEAN_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-clean ; done \`; echo $$mods `'
OUR_INSTALL_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-install ; done\`; echo $$mods `'
OUR_UNINSTALL_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-uninstall ; done\`; echo $$mods `'
-AM_MAKEFLAGS='"OUR_MODULES=$(OUR_MODS)" "OUR_CLEAN_MODULES=$(OUR_CLEAN_MODS)" "OUR_INSTALL_MODULES=$(OUR_INSTALL_MODS)" "OUR_UNINSTALL_MODULES=$(OUR_UNINSTALL_MODS)" `test -n "$(VERBOSE)" || echo -s`'
+OUR_DISABLED_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-all ; done \`; echo $$mods `'
+OUR_DISABLED_CLEAN_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-clean ; done \`; echo $$mods `'
+OUR_DISABLED_INSTALL_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-install ; done\`; echo $$mods `'
+OUR_DISABLED_UNINSTALL_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-uninstall ; done\`; echo $$mods `'
+
+AM_MAKEFLAGS='"OUR_MODULES=$(OUR_MODS)" "OUR_CLEAN_MODULES=$(OUR_CLEAN_MODS)" "OUR_INSTALL_MODULES=$(OUR_INSTALL_MODS)" "OUR_UNINSTALL_MODULES=$(OUR_UNINSTALL_MODS)" "OUR_DISABLED_MODULES=$(OUR_DISABLED_MODS)" "OUR_DISABLED_CLEAN_MODULES=$(OUR_DISABLED_CLEAN_MODS)" "OUR_DISABLED_INSTALL_MODULES=$(OUR_DISABLED_INSTALL_MODS)" "OUR_DISABLED_UNINSTALL_MODULES=$(OUR_DISABLED_UNINSTALL_MODS)" `test -n "$(VERBOSE)" || echo -s`'
#AM_MAKEFLAGS='`test -n "$(VERBOSE)" || echo -s`'
AC_SUBST(LIBTOOL)
AC_SUBST(TOUCH_TARGET)
+AC_SUBST(CONF_DISABLED_MODULES)
AC_SUBST(CONF_MODULES)
+
AC_SUBST(OUR_MODS)
AC_SUBST(OUR_CLEAN_MODS)
AC_SUBST(OUR_INSTALL_MODS)
AC_SUBST(OUR_UNINSTALL_MODS)
+AC_SUBST(OUR_DISABLED_MODS)
+AC_SUBST(OUR_DISABLED_CLEAN_MODS)
+AC_SUBST(OUR_DISABLED_INSTALL_MODS)
+AC_SUBST(OUR_DISABLED_UNINSTALL_MODS)
AC_SUBST(AM_MAKEFLAGS)
AC_OUTPUT
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/changelog
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/changelog (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/changelog Tue May 13 22:16:21 2008
@@ -1,3 +1,39 @@
+freeswitch (1.0~rc4-1) unstable; urgency=low
+ * Add tab completion in cli
+ Add "inline" dialplan
+ Fixed segfault in enum
+ Enhance enum to fork dial equal priority entries
+ Added auto-reload to enum
+ Fixed odbc bug is mod_sofia presence handling
+ Add presence for conference and dial an eavesdrop
+ Fix stack overflow segfault when recursively parking calls
+ Fixed race is sofia registration handling
+ Enhance sofia registration, unregister on keep-alive OPTIONS failure
+ Added internal routing loop detection/avoidance
+ Fixed race in bgapi in event socket
+ Fixed vars to execute apps before bridge "bridge_pre_execute_aleg_app" and "bridge_pre_execute_bleg_app"
+ Fixed re-setting sound prefix to no prefix after a pharse
+ Enhanced setting of bracket vars from originate so they show in the CHANNEL_ORIGINATE event
+ Add "enable-timer" and "enable-100rel" options to turn off default behaviors in sofia
+ Add originate_timeout to originate vars
+ Fixed hanging channels in mod_portaudio
+ Added auto time sync on vps migration to different hardware
+ Fixed seg on transfer when both legs are not sip
+ Added configurable dtmf duration defaults
+ Enhanced voicemail, allow interruption of hello message
+ Fixed voicemail to not light up light on saved messages
+ Enhance mod_amr honor disable dtx in fmtp (MODCODEC-3)
+ Fixed bootstrap to install automake dependencies so you can use tarball without same version of automake installed
+ Fixed MODLANG-56 (bad audio on originate and javascript streamFile)
+ Added hold/unhold dialplan apps
+ Enhanced sofia error checking to outlaw 0.0.0.0 in sofia ip params
+ Backport fixes from sofia-sip tree
+ Fixed MSVC build
+ Fixed segfault on sip SUBSCRIBE with Expires: 0
+ Added mod_say_zh
+
+ -- Michael Jerris <mike(a)jerris.com> Wed, 23 Apr 2008 12:58:00 -0400
+
freeswitch (1.0~rc3-1) unstable; urgency=low
* Enhance xml menu system
fixes upstream from sofia-sip library
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/files
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/files (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/debian/files Tue May 13 22:16:21 2008
@@ -1,9 +1,9 @@
-freeswitch_1.0~rc3-1_i386.deb net extra
-freeswitch-spidermonkey_1.0~rc3-1_i386.deb net extra
-freeswitch-dev_1.0~rc3-1_i386.deb net extra
-freeswitch-codec-passthru-g7231_1.0~rc3-1_i386.deb net extra
-freeswitch-codec-passthru-amr_1.0~rc3-1_i386.deb net extra
-freeswitch-codec-passthru-g729_1.0~rc3-1_i386.deb net extra
-freeswitch-lang-en_1.0~rc3-1_i386.deb net extra
-freeswitch-lang-de_1.0~rc3-1_i386.deb net extra
-freeswitch-lang-fr_1.0~rc3-1_i386.deb net extra
+freeswitch_1.0~rc4-1_i386.deb net extra
+freeswitch-spidermonkey_1.0~rc4-1_i386.deb net extra
+freeswitch-dev_1.0~rc4-1_i386.deb net extra
+freeswitch-codec-passthru-g7231_1.0~rc4-1_i386.deb net extra
+freeswitch-codec-passthru-amr_1.0~rc4-1_i386.deb net extra
+freeswitch-codec-passthru-g729_1.0~rc4-1_i386.deb net extra
+freeswitch-lang-en_1.0~rc4-1_i386.deb net extra
+freeswitch-lang-de_1.0~rc4-1_i386.deb net extra
+freeswitch-lang-fr_1.0~rc4-1_i386.deb net extra
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/AUTHORS
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/AUTHORS (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/AUTHORS Tue May 13 22:16:21 2008
@@ -32,7 +32,7 @@
Johny Kadarisman <jkr888 at gmail.com> - mod_python fixups.
Michael Murdock <mike at mmurdock dot org> - testing, documentation, bug finding and usability enhancements.
Matt Klein <mklein(a)nmedia.net>
- Jonas Gauffin <jonas at gauffin dot org> - Bugfixes and additions in mod_spidermonkey_odbc
+ Jonas Gauffin <jonas at gauffin dot org> - mod_cdr_odbc, mod_spidermonkey_socket, Bugfixes and additions in mod_spidermonkey_odbc and mod_spidermonkey, .net event socket library.
Damjan Jovanovic <moctodliamgtavojtodnajmad backwards> - mod_java
Juan Jose Comellas <juanjo(a)comellas.org> - Patch to switch_utils for arg parsing.
Dale Thatcher <freeswitch at dalethatcher dot com> - Additions to mod_conference.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/ChangeLog
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/ChangeLog (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/docs/ChangeLog Tue May 13 22:16:21 2008
@@ -1,3 +1,38 @@
+freeswitch (1.0.rc4)
+
+ Add tab completion in cli
+ Add "inline" dialplan
+ Fixed segfault in enum
+ Enhance enum to fork dial equal priority entries
+ Added auto-reload to enum
+ Fixed odbc bug is mod_sofia presence handling
+ Add presence for conference and dial an eavesdrop
+ Fix stack overflow segfault when recursively parking calls
+ Fixed race is sofia registration handling
+ Enhance sofia registration, unregister on keep-alive OPTIONS failure
+ Added internal routing loop detection/avoidance
+ Fixed race in bgapi in event socket
+ Fixed vars to execute apps before bridge "bridge_pre_execute_aleg_app" and "bridge_pre_execute_bleg_app"
+ Fixed re-setting sound prefix to no prefix after a pharse
+ Enhanced setting of bracket vars from originate so they show in the CHANNEL_ORIGINATE event
+ Add "enable-timer" and "enable-100rel" options to turn off default behaviors in sofia
+ Add originate_timeout to originate vars
+ Fixed hanging channels in mod_portaudio
+ Added auto time sync on vps migration to different hardware
+ Fixed seg on transfer when both legs are not sip
+ Added configurable dtmf duration defaults
+ Enhanced voicemail, allow interruption of hello message
+ Fixed voicemail to not light up light on saved messages
+ Enhance mod_amr honor disable dtx in fmtp (MODCODEC-3)
+ Fixed bootstrap to install automake dependencies so you can use tarball without same version of automake installed
+ Fixed MODLANG-56 (bad audio on originate and javascript streamFile)
+ Added hold/unhold dialplan apps
+ Enhanced sofia error checking to outlaw 0.0.0.0 in sofia ip params
+ Backport fixes from sofia-sip tree
+ Fixed MSVC build
+ Fixed segfault on sip SUBSCRIBE with Expires: 0
+ Added mod_say_zh
+
freeswitch (1.0.rc3)
Enhance xml menu system
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/freeswitch.spec
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/freeswitch.spec (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/freeswitch.spec Tue May 13 22:16:21 2008
@@ -5,7 +5,7 @@
Summary: FreeSWITCH open source telephony platform
License: MPL
Group: Productivity/Telephony/Servers
-Version: 1.0.rc1
+Version: 1.0.rc4
Release: 1
URL: http://www.freeswitch.org/
Packager: Michal Bielicki
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/socket/freepy/fseventlistener.py
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/socket/freepy/fseventlistener.py (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/scripts/socket/freepy/fseventlistener.py Tue May 13 22:16:21 2008
@@ -85,7 +85,7 @@
msg = "auth %s" % passwd
req = request.LoginRequest()
self.active_request = req
- self.transport.write("%s\n\n" % msg)
+ self.transport.write("%s\n\n" % str(msg))
return req.getDeferred()
def sniff_events(self, output_type, events):
@@ -95,7 +95,7 @@
"""
event_list = " ".join(events)
msg = "event %s %s" % (output_type, event_list)
- self.transport.write("%s\n\n" % msg)
+ self.transport.write("%s\n\n" % str(msg))
def sniff_custom_events(self, output_type, events):
"""
@@ -115,7 +115,7 @@
@param output_type - eg, xml or plain
"""
msg = "event %s all" % output_type
- self.transport.write("%s\n\n" % msg)
+ self.transport.write("%s\n\n" % str(msg))
def lineReceived(self, line):
if not self.active_request:
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_core.h Tue May 13 22:16:21 2008
@@ -1600,6 +1600,8 @@
SWITCH_DECLARE(void) switch_time_set_monotonic(switch_bool_t enable);
SWITCH_DECLARE(uint32_t) switch_core_max_dtmf_duration(uint32_t duration);
SWITCH_DECLARE(uint32_t) switch_core_default_dtmf_duration(uint32_t duration);
+SWITCH_DECLARE(switch_status_t) switch_console_set_complete(const char *string);
+SWITCH_DECLARE(switch_status_t) switch_console_set_alias(const char *string);
///\}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_cpp.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_cpp.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_cpp.h Tue May 13 22:16:21 2008
@@ -11,6 +11,12 @@
#include <switch.h>
+
+#define sanity_check(x) do { if (!(session && allocated)) { switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "session is not initalized\n"); return x;}} while(0)
+#define sanity_check_noreturn do { if (!(session && allocated)) { switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "session is not initalized\n"); return;}} while(0)
+#define init_vars() do { session = NULL; channel = NULL; uuid = NULL; tts_name = NULL; voice_name = NULL; memset(&args, 0, sizeof(args)); ap = NULL; caller_profile.source = "mod_unknown"; caller_profile.dialplan = ""; caller_profile.context = ""; caller_profile.caller_id_name = ""; caller_profile.caller_id_number = ""; caller_profile.network_addr = ""; caller_profile.ani = ""; caller_profile.aniii = ""; caller_profile.rdnis = ""; caller_profile.username = ""; on_hangup = NULL; memset(&cb_state, 0, sizeof(cb_state)); hook_state = CS_NEW; } while(0)
+
+
//
// C++ Interface: switch_to_cpp_mempool
//
@@ -21,7 +27,7 @@
// Copyright: See COPYING file that comes with this distribution
//
-
+#if 0
#ifndef SWITCHTOMEMPOOL
#define SWITCHTOMEMPOOL
class SwitchToMempool {
@@ -37,7 +43,7 @@
switch_memory_pool_t *memorypool;
};
#endif
-
+#endif
/*
@@ -55,24 +61,45 @@
*/
+SWITCH_DECLARE(void) consoleLog(char *level_str, char *msg);
+SWITCH_DECLARE(void) consoleCleanLog(char *msg);
-void console_log(char *level_str, char *msg);
-void console_clean_log(char *msg);
-char *api_execute(char *cmd, char *arg);
-void api_reply_delete(char *reply);
+class CoreSession;
+class IVRMenu {
+ protected:
+ switch_ivr_menu_t *menu;
+ switch_memory_pool_t *pool;
+ public:
+ SWITCH_DECLARE_CONSTRUCTOR IVRMenu(IVRMenu *main,
+ const char *name,
+ const char *greeting_sound,
+ const char *short_greeting_sound,
+ const char *invalid_sound,
+ const char *exit_sound,
+ const char *confirm_macro,
+ const char *confirm_key,
+ int confirm_attempts,
+ int inter_timeout,
+ int digit_len,
+ int timeout,
+ int max_failures
+ );
+ virtual SWITCH_DECLARE_CONSTRUCTOR ~IVRMenu();
+ SWITCH_DECLARE(void) bindAction(char *action, const char *arg, const char *bind);
+ SWITCH_DECLARE(void) execute(CoreSession *session, const char *name);
+};
-/**
- * \brief - process language specific callback results
- *
- * First the actual callback is called, (in the case of python,
- * PythonDTMFCallback), it then calls the language specific callback defined
- * by the user (eg, some python method), and then _this_ function is called
- * with the results of the language specific callback.
- */
-switch_status_t process_callback_result(char *raw_result,
- struct input_callback_state *cb_state,
- switch_core_session_t *session);
+
+class API {
+ protected:
+ char *last_data;
+ public:
+ SWITCH_DECLARE_CONSTRUCTOR API(void);
+ virtual SWITCH_DECLARE_CONSTRUCTOR ~API();
+ SWITCH_DECLARE(char *) execute(const char *command, const char *data);
+ SWITCH_DECLARE(char *) executeString(const char *command);
+};
typedef struct input_callback_state {
@@ -90,14 +117,42 @@
S_RDLOCK = (1 << 2)
} session_flag_t;
+class Stream {
+ protected:
+ switch_stream_handle_t mystream;
+ switch_stream_handle_t *stream_p;
+ int mine;
+ public:
+ SWITCH_DECLARE_CONSTRUCTOR Stream(void);
+ SWITCH_DECLARE_CONSTRUCTOR Stream(switch_stream_handle_t *);
+ virtual SWITCH_DECLARE_CONSTRUCTOR ~Stream();
+ SWITCH_DECLARE(void) write(const char *data);
+ SWITCH_DECLARE(const char *)get_data(void);
+};
-class switchEvent {
+class Event {
protected:
- switch_event_t *event;
public:
- switchEvent(switch_event_types_t event_id, const char *subclass_name);
+ switch_event_t *event;
+ char *serialized_string;
+ int mine;
+
+ SWITCH_DECLARE_CONSTRUCTOR Event(const char *type, const char *subclass_name = NULL);
+ SWITCH_DECLARE_CONSTRUCTOR Event(switch_event_t *wrap_me, int free_me=0);
+ virtual SWITCH_DECLARE_CONSTRUCTOR ~Event();
+ SWITCH_DECLARE(const char *)serialize(const char *format=NULL);
+ SWITCH_DECLARE(bool) setPriority(switch_priority_t priority = SWITCH_PRIORITY_NORMAL);
+ SWITCH_DECLARE(char *)getHeader(char *header_name);
+ SWITCH_DECLARE(char *)getBody(void);
+ SWITCH_DECLARE(char *)getType(void);
+ SWITCH_DECLARE(bool) addBody(const char *value);
+ SWITCH_DECLARE(bool) addHeader(const char *header_name, const char *value);
+ SWITCH_DECLARE(bool) delHeader(const char *header_name);
+ SWITCH_DECLARE(bool) fire(void);
+
};
+
class CoreSession {
protected:
switch_input_args_t args; // holds ptr to cb function and input_callback_state struct
@@ -110,13 +165,15 @@
char *voice_name;
void store_file_handle(switch_file_handle_t *fh);
void *on_hangup; // language specific callback function, cast as void *
-
-
+ switch_file_handle_t local_fh;
+ switch_file_handle_t *fhp;
+ char dtmf_buf[512];
+ SWITCH_DECLARE(switch_status_t) process_callback_result(char *ret);
public:
- CoreSession();
- CoreSession(char *uuid);
- CoreSession(switch_core_session_t *new_session);
- virtual ~CoreSession();
+ SWITCH_DECLARE_CONSTRUCTOR CoreSession();
+ SWITCH_DECLARE_CONSTRUCTOR CoreSession(char *uuid);
+ SWITCH_DECLARE_CONSTRUCTOR CoreSession(switch_core_session_t *new_session);
+ virtual SWITCH_DECLARE_CONSTRUCTOR ~CoreSession();
switch_core_session_t *session;
switch_channel_t *channel;
unsigned int flags;
@@ -125,12 +182,14 @@
// field in this->args
switch_channel_state_t hook_state; // store hookstate for on_hangup callback
- int answer();
- int preAnswer();
- virtual void hangup(char *cause);
- void setVariable(char *var, char *val);
- const char *getVariable(char *var);
-
+ SWITCH_DECLARE(int) answer();
+ SWITCH_DECLARE(int) preAnswer();
+ virtual SWITCH_DECLARE(void) hangup(char *cause = "normal_clearing");
+ SWITCH_DECLARE(void) setVariable(char *var, char *val);
+ SWITCH_DECLARE(void) setPrivate(char *var, void *val);
+ SWITCH_DECLARE(void *)getPrivate(char *var);
+ SWITCH_DECLARE(const char *)getVariable(char *var);
+
/** \brief Record to a file
* \param filename
@@ -139,14 +198,14 @@
* to be considered silence (500 is a good starting point).
* \param <[silence_secs]> seconds of silence to interrupt the record.
*/
- int recordFile(char *file_name, int max_len=0, int silence_threshold=0, int silence_secs=0);
+ SWITCH_DECLARE(int) recordFile(char *file_name, int max_len=0, int silence_threshold=0, int silence_secs=0);
/** \brief Set attributes of caller data for purposes of outgoing calls
* \param var - the variable name, eg, "caller_id_name"
* \param val - the data to set, eg, "bob"
*/
- void setCallerData(char *var, char *val);
+ SWITCH_DECLARE(void) setCallerData(char *var, char *val);
/** \brief Originate a call to a destination
*
@@ -157,7 +216,7 @@
* \return an int status code indicating success or failure
*
*/
- int originate(CoreSession *a_leg_session,
+ SWITCH_DECLARE(int) originate(CoreSession *a_leg_session,
char *dest,
int timeout=60);
@@ -170,17 +229,16 @@
* certain other methods are executing.
*
*/
- void setDTMFCallback(void *cbfunc, char *funcargs);
+ SWITCH_DECLARE(void) setDTMFCallback(void *cbfunc, char *funcargs);
-
- int speak(char *text);
- void set_tts_parms(char *tts_name, char *voice_name);
+ SWITCH_DECLARE(int) speak(char *text);
+ SWITCH_DECLARE(void) set_tts_parms(char *tts_name, char *voice_name);
/**
* For timeout milliseconds, call the dtmf function set previously
* by setDTMFCallback whenever a dtmf or event is received
*/
- int collectDigits(int timeout);
+ SWITCH_DECLARE(int) collectDigits(int timeout);
/**
* Collect up to maxdigits digits worth of digits
@@ -189,15 +247,20 @@
* (see mod_python.i). This does NOT call any callbacks upon
* receiving dtmf digits. For that, use collectDigits.
*/
- int getDigits(char *dtmf_buf,
- switch_size_t buflen,
- switch_size_t maxdigits,
- char *terminators,
- char *terminator,
- int timeout);
+ SWITCH_DECLARE(char *) getDigits(
+ int maxdigits,
+ char *terminators,
+ int timeout);
+
+ SWITCH_DECLARE(int) transfer(char *extensions, char *dialplan, char *context);
- int transfer(char *extensions, char *dialplan, char *context);
+ SWITCH_DECLARE(char *) read(int min_digits,
+ int max_digits,
+ const char *prompt_audio_file,
+ int timeout,
+ const char *valid_terminators);
+
/** \brief Play a file into channel and collect dtmfs
*
* See API docs in switch_ivr.h: switch_play_and_get_digits(..)
@@ -206,14 +269,13 @@
* setDTMFCallback(..) as it uses its own internal callback
* handler.
*/
- int playAndGetDigits(int min_digits,
+ SWITCH_DECLARE(char *) playAndGetDigits(int min_digits,
int max_digits,
int max_tries,
int timeout,
char *terminators,
char *audio_files,
char *bad_input_audio_files,
- char *dtmf_buf,
char *digits_regex);
/** \brief Play a file that resides on disk into the channel
@@ -224,26 +286,29 @@
* \return an int status code indicating success or failure
*
*/
- int streamFile(char *file, int starting_sample_count=0);
+ SWITCH_DECLARE(int) streamFile(char *file, int starting_sample_count=0);
/** \brief flush any pending events
*/
- int flushEvents();
+ SWITCH_DECLARE(int) flushEvents();
/** \brief flush any pending digits
*/
- int flushDigits();
+ SWITCH_DECLARE(int) flushDigits();
- int setAutoHangup(bool val);
+ SWITCH_DECLARE(int) setAutoHangup(bool val);
/** \brief Set the hangup callback function
* \param hangup_func - language specific function ptr cast into void *
*/
- void setHangupHook(void *hangup_func);
+ SWITCH_DECLARE(void) setHangupHook(void *hangup_func);
+
+ SWITCH_DECLARE(bool) ready();
+
+ SWITCH_DECLARE(void) execute(char *app, char *data);
- bool ready();
+ SWITCH_DECLARE(void) sendEvent(Event *sendME);
- void execute(char *app, char *data);
virtual bool begin_allow_threads() = 0;
virtual bool end_allow_threads() = 0;
@@ -269,26 +334,24 @@
/* ---- functions not bound to CoreSession instance ----- */
-void console_log(char *level_str, char *msg);
-void console_clean_log(char *msg);
-char *api_execute(char *cmd, char *arg);
-void api_reply_delete(char *reply);
+SWITCH_DECLARE(void) console_log(char *level_str, char *msg);
+SWITCH_DECLARE(void) console_clean_log(char *msg);
/** \brief bridge the audio of session_b into session_a
*
* NOTE: the stuff regarding the dtmf callback might be completely
* wrong and has not been reviewed or tested
*/
-void bridge(CoreSession &session_a, CoreSession &session_b);
+SWITCH_DECLARE(void) bridge(CoreSession &session_a, CoreSession &session_b);
/** \brief the actual hangup hook called back by freeswitch core
* which in turn gets the session and calls the appropriate
* instance method to complete the callback.
*/
-switch_status_t hanguphook(switch_core_session_t *session);
+SWITCH_DECLARE_NONSTD(switch_status_t) hanguphook(switch_core_session_t *session);
-switch_status_t dtmf_callback(switch_core_session_t *session,
+SWITCH_DECLARE_NONSTD(switch_status_t) dtmf_callback(switch_core_session_t *session,
void *input,
switch_input_type_t itype,
void *buf,
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_ivr.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_ivr.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_ivr.h Tue May 13 22:16:21 2008
@@ -466,7 +466,7 @@
\param message optional message
\return SWITCH_STATUS_SUCCESS if all is well
*/
-SWITCH_DECLARE(switch_status_t) switch_ivr_hold_uuid(const char *uuid, const char *message);
+SWITCH_DECLARE(switch_status_t) switch_ivr_hold_uuid(const char *uuid, const char *message, switch_bool_t moh);
/*!
\brief Signal the session with a protocol specific unhold message.
@@ -481,7 +481,7 @@
\param message optional message
\return SWITCH_STATUS_SUCCESS if all is well
*/
-SWITCH_DECLARE(switch_status_t) switch_ivr_hold(switch_core_session_t *session, const char *message);
+SWITCH_DECLARE(switch_status_t) switch_ivr_hold(switch_core_session_t *session, const char *message, switch_bool_t moh);
/*!
\brief Signal the session with a protocol specific unhold message.
@@ -717,6 +717,8 @@
SWITCH_DECLARE(switch_status_t) switch_ivr_menu_stack_xml_build(switch_ivr_menu_xml_ctx_t * xml_menu_ctx,
switch_ivr_menu_t ** menu_stack, switch_xml_t xml_menus, switch_xml_t xml_menu);
+SWITCH_DECLARE(switch_status_t) switch_ivr_menu_str2action(const char *action_name, switch_ivr_action_t *action);
+
/*!
*\param xml_menu_ctx The XML menu parser context previously created by switch_ivr_menu_stack_xml_init
*\param name The xml tag name to add to the parser engine
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_platform.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_platform.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_platform.h Tue May 13 22:16:21 2008
@@ -171,6 +171,7 @@
#define SWITCH_MOD_DECLARE_DATA
#define SWITCH_THREAD_FUNC
#endif
+#define SWITCH_DECLARE_CONSTRUCTOR SWITCH_DECLARE_DATA
#ifdef DOXYGEN
#define DoxyDefine(x) x
#else
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_types.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_types.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/include/switch_types.h Tue May 13 22:16:21 2008
@@ -102,6 +102,7 @@
#define SWITCH_PATH_SEPARATOR "/"
#endif
#define SWITCH_URL_SEPARATOR "://"
+#define SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE "proto_specific_hangup_cause"
#define SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE "execute_on_answer"
#define SWITCH_CALL_TIMEOUT_VARIABLE "call_timeout"
#define SWITCH_HOLDING_UUID_VARIABLE "holding_uuid"
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/Makefile.am
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/Makefile.am (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/Makefile.am Tue May 13 22:16:21 2008
@@ -3,7 +3,7 @@
install: $(OUR_INSTALL_MODULES)
uninstall: $(OUR_UNINSTALL_MODULES)
-$(OUR_MODULES) $(OUR_CLEAN_MODULES) $(OUR_INSTALL_MODULES) $(OUR_UNINSTALL_MODULES):
+$(OUR_MODULES) $(OUR_CLEAN_MODULES) $(OUR_INSTALL_MODULES) $(OUR_UNINSTALL_MODULES) $(OUR_DISABLED_MODULES) $(OUR_DISABLED_CLEAN_MODULES) $(OUR_DISABLED_INSTALL_MODULES) $(OUR_DISABLED_UNINSTALL_MODULES):
@set fnord $$MAKEFLAGS; amf=$$2; \
target=`echo $@ | sed -e 's|^.*-||'`; \
modname=`echo $@ | sed -e 's|-.*||' | sed -e 's|^.*/||'`; \
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_commands/mod_commands.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_commands/mod_commands.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_commands/mod_commands.c Tue May 13 22:16:21 2008
@@ -1171,7 +1171,7 @@
if (!strcasecmp(argv[0], "off")) {
status = switch_ivr_unhold_uuid(argv[1]);
} else {
- status = switch_ivr_hold_uuid(argv[0], argv[1]);
+ status = switch_ivr_hold_uuid(argv[0], argv[1], 1);
}
}
@@ -1885,7 +1885,38 @@
return 0;
}
-#define SHOW_SYNTAX "codec|application|api|dialplan|file|timer|calls|channels"
+#define COMPLETE_SYNTAX "add <word>|del [<word>|*]"
+SWITCH_STANDARD_API(complete_function)
+{
+
+ switch_status_t status;
+
+ if ((status = switch_console_set_complete(cmd)) == SWITCH_STATUS_SUCCESS) {
+ stream->write_function(stream, "+OK\n");
+ } else {
+ stream->write_function(stream, "-USAGE: %s\n", COMPLETE_SYNTAX);
+ }
+
+ return SWITCH_STATUS_SUCCESS;
+}
+
+
+#define ALIAS_SYNTAX "add <alias> <command> | del [<alias>|*]"
+SWITCH_STANDARD_API(alias_function)
+{
+
+ switch_status_t status;
+
+ if ((status = switch_console_set_alias(cmd)) == SWITCH_STATUS_SUCCESS) {
+ stream->write_function(stream, "+OK\n");
+ } else {
+ stream->write_function(stream, "-USAGE: %s\n", ALIAS_SYNTAX);
+ }
+
+ return SWITCH_STATUS_SUCCESS;
+}
+
+#define SHOW_SYNTAX "codec|application|api|dialplan|file|timer|calls|channels|aliases|complete"
SWITCH_STANDARD_API(show_function)
{
char sql[1024];
@@ -1927,15 +1958,19 @@
stream->write_function(stream, "-USAGE: %s\n", SHOW_SYNTAX);
return SWITCH_STATUS_SUCCESS;
} else if (!strcasecmp(command, "codec") || !strcasecmp(command, "dialplan") || !strcasecmp(command, "file") || !strcasecmp(command, "timer")) {
- sprintf(sql, "select type, name from interfaces where type = '%s'", command);
+ sprintf(sql, "select type, name from interfaces where type = '%s' order by type,name", command);
} else if (!strcasecmp(command, "tasks")) {
sprintf(sql, "select * from %s", command);
} else if (!strcasecmp(command, "application") || !strcasecmp(command, "api")) {
- sprintf(sql, "select name, description, syntax from interfaces where type = '%s' and description != ''", command);
+ sprintf(sql, "select name, description, syntax from interfaces where type = '%s' and description != '' order by type,name", command);
} else if (!strcasecmp(command, "calls")) {
- sprintf(sql, "select * from calls");
+ sprintf(sql, "select * from calls order by created_epoch");
} else if (!strcasecmp(command, "channels")) {
- sprintf(sql, "select * from channels");
+ sprintf(sql, "select * from channels order by created_epoch");
+ } else if (!strcasecmp(command, "aliases")) {
+ sprintf(sql, "select * from aliases order by alias");
+ } else if (!strcasecmp(command, "complete")) {
+ sprintf(sql, "select * from complete order by a1,a2,a3,a4,a5,a6,a7,a8,a9,a10");
} else if (!strncasecmp(command, "help", 4)) {
char *cmdname = NULL;
@@ -1943,9 +1978,9 @@
holder.print_title = 0;
if ((cmdname = strchr(command, ' ')) != 0) {
*cmdname++ = '\0';
- switch_snprintf(sql, sizeof(sql) - 1, "select name, syntax, description from interfaces where type = 'api' and name = '%s'", cmdname);
+ switch_snprintf(sql, sizeof(sql) - 1, "select name, syntax, description from interfaces where type = 'api' and name = '%s' order by name", cmdname);
} else {
- switch_snprintf(sql, sizeof(sql) - 1, "select name, syntax, description from interfaces where type = 'api'");
+ switch_snprintf(sql, sizeof(sql) - 1, "select name, syntax, description from interfaces where type = 'api' order by name");
}
} else {
stream->write_function(stream, "-USAGE: %s\n", SHOW_SYNTAX);
@@ -2264,6 +2299,8 @@
SWITCH_ADD_API(commands_api_interface, "pause", "Pause", pause_function, PAUSE_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "break", "Break", break_function, BREAK_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "show", "Show", show_function, SHOW_SYNTAX);
+ SWITCH_ADD_API(commands_api_interface, "complete", "Complete", complete_function, COMPLETE_SYNTAX);
+ SWITCH_ADD_API(commands_api_interface, "alias", "Alias", alias_function, ALIAS_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "status", "status", status_function, "");
SWITCH_ADD_API(commands_api_interface, "uuid_bridge", "uuid_bridge", uuid_bridge_function, "");
SWITCH_ADD_API(commands_api_interface, "uuid_setvar", "uuid_setvar", uuid_setvar_function, SETVAR_SYNTAX);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_dptools/mod_dptools.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_dptools/mod_dptools.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/applications/mod_dptools/mod_dptools.c Tue May 13 22:16:21 2008
@@ -37,6 +37,55 @@
SWITCH_MODULE_LOAD_FUNCTION(mod_dptools_load);
SWITCH_MODULE_DEFINITION(mod_dptools, mod_dptools_load, NULL, NULL);
+SWITCH_STANDARD_DIALPLAN(inline_dialplan_hunt)
+{
+ switch_caller_extension_t *extension = NULL;
+ char *argv[4] = { 0 };
+ int argc;
+ switch_channel_t *channel = switch_core_session_get_channel(session);
+ int x = 0;
+ char *lbuf;
+ char *target = arg;
+
+ if (!caller_profile) {
+ caller_profile = switch_channel_get_caller_profile(channel);
+ }
+
+ if ((extension = switch_caller_extension_new(session, "inline", "inline")) == 0) {
+ abort();
+ }
+
+ if (switch_strlen_zero(target)) {
+ target = caller_profile->destination_number;
+ }
+
+ if (!switch_strlen_zero(target) && (lbuf = switch_core_session_strdup(session, target))
+ && (argc = switch_separate_string(lbuf, ',', argv, (sizeof(argv) / sizeof(argv[0]))))) {
+ } else {
+ return NULL;
+ }
+
+
+ for(x = 0; x < argc; x++) {
+ char *app = argv[x];
+ char *data = strchr(app, ':');
+
+ if (data) {
+ *data++ = '\0';
+ }
+
+ while(*app == ' ') {
+ app++;
+ }
+
+ switch_caller_extension_add_application(session, extension, app, data);
+ }
+
+
+ return extension;
+
+}
+
#define DETECT_SPEECH_SYNTAX "<mod_name> <gram_name> <gram_path> [<addr>] OR grammar <gram_name> [<path>] OR pause OR resume"
SWITCH_STANDARD_APP(detect_speech_function)
{
@@ -1848,7 +1897,7 @@
#define HOLD_SYNTAX "[<display message>]"
SWITCH_STANDARD_APP(hold_function)
{
- switch_ivr_hold_uuid(switch_core_session_get_uuid(session), data);
+ switch_ivr_hold_uuid(switch_core_session_get_uuid(session), data, 1);
}
#define UNHOLD_SYNTAX ""
@@ -1876,6 +1925,7 @@
{
switch_api_interface_t *api_interface;
switch_application_interface_t *app_interface;
+ switch_dialplan_interface_t *dp_interface;
/* connect my internal structure to the blank pointer passed to me */
*module_interface = switch_loadable_module_create_module_interface(pool, modname);
@@ -1894,7 +1944,7 @@
SWITCH_ADD_APP(app_interface, "unhold", "Send a un-hold message", "Send a un-hold message", unhold_function, UNHOLD_SYNTAX, SAF_SUPPORT_NOMEDIA);
SWITCH_ADD_APP(app_interface, "transfer", "Transfer a channel", TRANSFER_LONG_DESC, transfer_function, "<exten> [<dialplan> <context>]", SAF_SUPPORT_NOMEDIA);
SWITCH_ADD_APP(app_interface, "check_acl", "Check an ip against an ACL list",
- "Check an ip against an ACL list", check_acl_function, "<ip> <acl | cidr>", SAF_SUPPORT_NOMEDIA);
+ "Check an ip against an ACL list", check_acl_function, "<ip> <acl | cidr> [<hangup_cause>]", SAF_SUPPORT_NOMEDIA);
SWITCH_ADD_APP(app_interface, "sleep", "Pause a channel", SLEEP_LONG_DESC, sleep_function, "<pausemilliseconds>", SAF_SUPPORT_NOMEDIA);
SWITCH_ADD_APP(app_interface, "delay_echo", "echo audio at a specified delay", "Delay n ms", delay_function, "<delay ms>", SAF_NONE);
SWITCH_ADD_APP(app_interface, "strftime", NULL, NULL, strftime_function, NULL, SAF_SUPPORT_NOMEDIA);
@@ -1958,6 +2008,8 @@
SWITCH_ADD_APP(app_interface, "bridge", "Bridge Audio", "Bridge the audio between two sessions", audio_bridge_function, "<channel_url>", SAF_SUPPORT_NOMEDIA);
SWITCH_ADD_APP(app_interface, "system", "Execute a system command", "Execute a system command", system_session_function, "<command>", SAF_SUPPORT_NOMEDIA);
+ SWITCH_ADD_DIALPLAN(dp_interface, "inline", inline_dialplan_hunt);
+
/* indicate that the module should continue to be loaded */
return SWITCH_STATUS_SUCCESS;
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/asr_tts/mod_openmrcp/mod_openmrcp.2008.vcproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/asr_tts/mod_openmrcp/mod_openmrcp.2008.vcproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/asr_tts/mod_openmrcp/mod_openmrcp.2008.vcproj Tue May 13 22:16:21 2008
@@ -40,6 +40,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\openmrcp\platform\libopenmrcpclient\include";"$(InputDir)..\..\..\..\libs\openmrcp\mrcpcore\client\include";"$(InputDir)..\..\..\..\libs\openmrcp\mrcpcore\include";"$(InputDir)..\..\..\..\libs\openmrcp\mrcpcore\parser\include";"$(InputDir)..\..\..\..\libs\openmrcp\mrcpcore\media\include";"$(InputDir)..\..\..\..\libs\openmrcp\mrcpcore\resource\include";"$(InputDir)..\..\..\..\libs\openmrcp\mediaframe\include";"$(InputDir)..\..\..\..\libs\openmrcp\aprtoolkit\include";"$(InputDir)..\..\..\..\libs\apr\include""
+ PreprocessorDefinitions="APT_LIB_EXPORT"
UsePrecompiledHeader="0"
/>
<Tool
@@ -54,6 +55,7 @@
<Tool
Name="VCLinkerTool"
AdditionalDependencies="ws2_32.lib advapi32.lib iphlpapi.lib"
+ LinkIncremental="2"
AdditionalLibraryDirectories=""C:\Program Files\openmrcp\sdk\lib\winnt""
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
@@ -104,6 +106,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\openmrcp\platform\libopenmrcpclient\include";"$(InputDir)..\..\..\..\libs\openmrcp\mrcpcore\client\include";"$(InputDir)..\..\..\..\libs\openmrcp\mrcpcore\include";"$(InputDir)..\..\..\..\libs\openmrcp\mrcpcore\parser\include";"$(InputDir)..\..\..\..\libs\openmrcp\mrcpcore\media\include";"$(InputDir)..\..\..\..\libs\openmrcp\mrcpcore\resource\include";"$(InputDir)..\..\..\..\libs\openmrcp\mediaframe\include";"$(InputDir)..\..\..\..\libs\openmrcp\aprtoolkit\include";"$(InputDir)..\..\..\..\libs\apr\include""
+ PreprocessorDefinitions="APT_LIB_EXPORT"
UsePrecompiledHeader="0"
/>
<Tool
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/codecs/mod_amr/mod_amr.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/codecs/mod_amr/mod_amr.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/codecs/mod_amr/mod_amr.c Tue May 13 22:16:21 2008
@@ -103,7 +103,7 @@
void *decoder_state;
switch_byte_t enc_modes;
switch_byte_t enc_mode;
- switch_int_t dtx_mode;
+ int dtx_mode;
uint32_t change_period;
switch_byte_t max_ptime;
switch_byte_t ptime;
@@ -188,7 +188,7 @@
context->enc_modes |= (1 << atoi(m_argv[y]));
}
} else if (!strcasecmp(data, "dtx")) {
- context->dtx_mode = if (atoi(arg)) ? AMR_DTX_ENABLED : AMR_DTX_DISABLED;
+ context->dtx_mode = (atoi(arg)) ? AMR_DTX_ENABLED : AMR_DTX_DISABLED;
}
}
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.c Tue May 13 22:16:21 2008
@@ -222,7 +222,14 @@
switch_channel_t *channel = switch_core_session_get_channel(session);
switch_call_cause_t cause = switch_channel_get_cause(channel);
int sip_cause = hangup_cause_to_sip(cause);
-
+ const char *ps_cause = switch_channel_get_variable(channel, SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE);
+
+ if (!switch_strlen_zero(ps_cause) && !strncasecmp(ps_cause, "sip:", 4)) {
+ int new_cause = atoi(ps_cause + 4);
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s Overriding SIP cause %d with %d from the other leg\n",
+ switch_channel_get_name(channel), sip_cause, new_cause);
+ sip_cause = new_cause;
+ }
if (switch_test_flag(tech_pvt, TFLAG_SIP_HOLD) && cause != SWITCH_CAUSE_ATTENDED_TRANSFER) {
const char *buuid;
@@ -1161,6 +1168,8 @@
return 0;
}
+static const char *status_names[] = { "DOWN", "UP", NULL };
+
static switch_status_t cmd_status(char **argv, int argc, switch_stream_handle_t *stream)
{
sofia_profile_t *profile = NULL;
@@ -1180,7 +1189,7 @@
if (!strcasecmp(argv[0], "gateway")) {
if ((gp = sofia_reg_find_gateway(argv[1]))) {
switch_assert(gp->state < REG_STATE_LAST);
-
+
stream->write_function(stream, "%s\n", line);
stream->write_function(stream, "Name \t%s\n", switch_str_nil(gp->name));
stream->write_function(stream, "Scheme \t%s\n", switch_str_nil(gp->register_scheme));
@@ -1194,7 +1203,10 @@
stream->write_function(stream, "Context \t%s\n", switch_str_nil(gp->register_context));
stream->write_function(stream, "Expires \t%s\n", switch_str_nil(gp->expires_str));
stream->write_function(stream, "Freq \t%d\n", gp->freq);
+ stream->write_function(stream, "Ping \t%d\n", gp->ping);
+ stream->write_function(stream, "PingFreq\t%d\n", gp->ping_freq);
stream->write_function(stream, "State \t%s\n", sofia_state_names[gp->state]);
+ stream->write_function(stream, "Status \t%s%s\n", status_names[gp->status], gp->pinging ? " (ping)" : "");
stream->write_function(stream, "%s\n", line);
sofia_reg_release_gateway(gp);
} else {
@@ -1695,6 +1707,14 @@
goto error;
}
+ if (gateway_ptr->status != SOFIA_GATEWAY_UP) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Gateway is down!\n");
+ cause = SWITCH_CAUSE_NETWORK_OUT_OF_ORDER;
+ sofia_reg_release_gateway(gateway_ptr);
+ gateway_ptr = NULL;
+ goto error;
+ }
+
tech_pvt->transport = gateway_ptr->register_transport;
/*
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/mod_sofia.h Tue May 13 22:16:21 2008
@@ -99,6 +99,7 @@
struct sofia_private {
char uuid[SWITCH_UUID_FORMATTED_LENGTH + 1];
sofia_gateway_t *gateway;
+ char gateway_name[512];
};
#define set_param(ptr,val) if (ptr) {free(ptr) ; ptr = NULL;} if (val) {ptr = strdup(val);}
@@ -221,6 +222,11 @@
SOFIA_TRANSPORT_SCTP
} sofia_transport_t;
+typedef enum {
+ SOFIA_GATEWAY_DOWN,
+ SOFIA_GATEWAY_UP
+} sofia_gateway_status_t;
+
struct sofia_gateway {
sofia_private_t *sofia_private;
nua_handle_t *nh;
@@ -241,6 +247,10 @@
uint32_t freq;
time_t expires;
time_t retry;
+ time_t ping;
+ int pinging;
+ sofia_gateway_status_t status;
+ uint32_t ping_freq;
uint32_t flags;
int32_t retry_seconds;
reg_state_t state;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia.c Tue May 13 22:16:21 2008
@@ -787,12 +787,16 @@
*params = NULL,
*register_transport = NULL;
+ uint32_t ping_freq = 0;
+
gateway->register_transport = SOFIA_TRANSPORT_UDP;
gateway->pool = profile->pool;
gateway->profile = profile;
gateway->name = switch_core_strdup(gateway->pool, name);
gateway->freq = 0;
gateway->next = NULL;
+ gateway->ping = 0;
+ gateway->ping_freq = 0;
for (param = switch_xml_child(gateway_tag, "param"); param; param = param->next) {
char *var = (char *) switch_xml_attr_soft(param, "name");
@@ -812,6 +816,8 @@
caller_id_in_from = val;
} else if (!strcmp(var, "extension")) {
extension = val;
+ } else if (!strcmp(var, "ping")) {
+ ping_freq = atoi(val);
} else if (!strcmp(var, "proxy")) {
proxy = val;
} else if (!strcmp(var, "context")) {
@@ -840,6 +846,15 @@
}
}
+ if (ping_freq) {
+ if (ping_freq >= 5) {
+ gateway->ping_freq = ping_freq;
+ gateway->ping = switch_timestamp(NULL) + ping_freq;
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "ERROR: invalid ping!\n");
+ }
+ }
+
if (switch_strlen_zero(realm)) {
realm = name;
}
@@ -1152,8 +1167,8 @@
char stun_ip[50] = "";
char *myip = stun_ip;
- switch_copy_string(myip, ip, sizeof(myip));
-
+ switch_copy_string(stun_ip, ip, sizeof(stun_ip));
+
if (!strcasecmp(val, "0.0.0.0")) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Invald IP 0.0.0.0 replaced with %s\n", mod_sofia_globals.guess_ip);
} else if (strcasecmp(val, "auto")) {
@@ -1502,10 +1517,33 @@
}
static void sofia_handle_sip_r_options(switch_core_session_t *session, int status,
- char const *phrase,
+ char const *phrase,
nua_t *nua, sofia_profile_t *profile, nua_handle_t *nh, sofia_private_t *sofia_private, sip_t const *sip, tagi_t tags[])
{
- if ((profile->pflags & PFLAG_UNREG_OPTIONS_FAIL) && status != 200 && sip && sip->sip_to) {
+ sofia_gateway_t *gateway = NULL;
+
+ if (sofia_private && !switch_strlen_zero(sofia_private->gateway_name)) {
+ gateway = sofia_reg_find_gateway(sofia_private->gateway_name);
+ }
+
+ if (gateway) {
+ if (status == 200 || status == 404) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "ping success %s\n", gateway->name);
+ gateway->status = SOFIA_GATEWAY_UP;
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "ping failed %s\n", gateway->name);
+ gateway->status = SOFIA_GATEWAY_DOWN;
+ if (gateway->state == REG_STATE_REGED) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "unregister %s\n", gateway->name);
+ gateway->state = REG_STATE_UNREGISTER;
+ }
+ }
+ gateway->ping = switch_timestamp(NULL) + gateway->ping_freq;
+ sofia_reg_release_gateway(gateway);
+ nua_handle_bind(nh, NULL);
+ free(sofia_private);
+ gateway->pinging = 0;
+ } else if ((profile->pflags & PFLAG_UNREG_OPTIONS_FAIL) && status != 200 && sip && sip->sip_to) {
char *sql;
time_t now = switch_timestamp(NULL);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Expire registration '%s@%s' due to options failure\n",
@@ -1520,6 +1558,7 @@
);
sofia_glue_execute_sql(profile, &sql, SWITCH_TRUE);
}
+ nua_handle_destroy(nh);
}
@@ -2072,6 +2111,8 @@
}
switch_snprintf(st, sizeof(st), "%d", status);
switch_channel_set_variable(channel, "sip_term_status", st);
+ switch_snprintf(st, sizeof(st), "sip:%d", status);
+ switch_channel_set_variable_partner(channel, SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE, st);
switch_snprintf(st, sizeof(st), "%d", cause);
switch_channel_set_variable(channel, "sip_term_cause", st);
switch_channel_hangup(channel, cause);
@@ -2620,15 +2661,16 @@
if ((profile->pflags & PFLAG_AUTH_CALLS) || (!(profile->pflags & PFLAG_BLIND_AUTH) && (sip->sip_proxy_authorization || sip->sip_authorization))) {
- if (strcmp(network_ip, profile->sipip)) {
+ int rport = ntohs(((struct sockaddr_in *) msg_addrinfo(nua_current_request(nua))->ai_addr)->sin_port);
+ if (!strcmp(network_ip, profile->sipip) && rport == profile->sip_port) {
+ calling_myself++;
+ } else {
if (sofia_reg_handle_register(nua, profile, nh, sip, REG_INVITE, key, sizeof(key), &v_event)) {
if (v_event) {
switch_event_destroy(&v_event);
}
return;
}
- } else {
- calling_myself++;
}
is_auth++;
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_glue.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_glue.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_glue.c Tue May 13 22:16:21 2008
@@ -1829,7 +1829,13 @@
}
if (stream && strcasecmp(stream, "silence")) {
- switch_ivr_broadcast(switch_channel_get_variable(tech_pvt->channel, SWITCH_SIGNAL_BOND_VARIABLE), stream, SMF_ECHO_ALEG | SMF_LOOP);
+ if (!strcasecmp(stream, "indicate_hold")) {
+ switch_channel_set_flag(tech_pvt->channel, CF_SUSPEND);
+ switch_channel_set_flag(tech_pvt->channel, CF_HOLD);
+ switch_ivr_hold_uuid(switch_channel_get_variable(tech_pvt->channel, SWITCH_SIGNAL_BOND_VARIABLE), NULL, 0);
+ } else {
+ switch_ivr_broadcast(switch_channel_get_variable(tech_pvt->channel, SWITCH_SIGNAL_BOND_VARIABLE), stream, SMF_ECHO_ALEG | SMF_LOOP);
+ }
}
}
} else {
@@ -1843,8 +1849,15 @@
if ((uuid = switch_channel_get_variable(tech_pvt->channel, SWITCH_SIGNAL_BOND_VARIABLE)) && (b_session = switch_core_session_locate(uuid))) {
switch_channel_t *b_channel = switch_core_session_get_channel(b_session);
- switch_channel_stop_broadcast(b_channel);
- switch_channel_wait_for_flag(b_channel, CF_BROADCAST, SWITCH_FALSE, 5000);
+
+ if (switch_channel_test_flag(tech_pvt->channel, CF_HOLD)) {
+ switch_ivr_unhold(b_session);
+ switch_channel_clear_flag(tech_pvt->channel, CF_SUSPEND);
+ switch_channel_clear_flag(tech_pvt->channel, CF_HOLD);
+ } else {
+ switch_channel_stop_broadcast(b_channel);
+ switch_channel_wait_for_flag(b_channel, CF_BROADCAST, SWITCH_FALSE, 5000);
+ }
switch_core_session_rwunlock(b_session);
}
@@ -2285,23 +2298,26 @@
switch_mutex_lock(mod_sofia_globals.hash_mutex);
if ((profile = (sofia_profile_t *) switch_core_hash_find(mod_sofia_globals.profile_hash, key))) {
if (!(profile->pflags & PFLAG_RUNNING)) {
+#ifdef SOFIA_DEBUG_RWLOCKS
+ switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_ERROR, "Profile %s is not running\n", profile->name);
+#endif
profile = NULL;
goto done;
}
if (switch_thread_rwlock_tryrdlock(profile->rwlock) != SWITCH_STATUS_SUCCESS) {
#ifdef SOFIA_DEBUG_RWLOCKS
- switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, SWITCH_LOG_ERROR, "Profile %s is locked\n", profile->name);
+ switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_ERROR, "Profile %s is locked\n", profile->name);
#endif
profile = NULL;
}
} else {
#ifdef SOFIA_DEBUG_RWLOCKS
- switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, SWITCH_LOG_ERROR, "Profile %s is not in the hash\n", key);
+ switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_ERROR, "Profile %s is not in the hash\n", key);
#endif
}
#ifdef SOFIA_DEBUG_RWLOCKS
if (profile) {
- switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, SWITCH_LOG_ERROR, "XXXXXXXXXXXXXX LOCK %s\n", profile->name);
+ switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_ERROR, "XXXXXXXXXXXXXX LOCK %s\n", profile->name);
}
#endif
@@ -2315,7 +2331,7 @@
{
if (profile) {
#ifdef SOFIA_DEBUG_RWLOCKS
- switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, SWITCH_LOG_ERROR, "XXXXXXXXXXXXXX UNLOCK %s\n", profile->name);
+ switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_ERROR, "XXXXXXXXXXXXXX UNLOCK %s\n", profile->name);
#endif
switch_thread_rwlock_unlock(profile->rwlock);
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_reg.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_reg.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/endpoints/mod_sofia/sofia_reg.c Tue May 13 22:16:21 2008
@@ -80,6 +80,21 @@
gateway_ptr->expires_str = "0";
}
+ if (gateway_ptr->ping && !gateway_ptr->pinging && (now >= gateway_ptr->ping && (ostate == REG_STATE_NOREG || ostate == REG_STATE_REGED))) {
+ nua_handle_t *nh = nua_handle(profile->nua, NULL, NUTAG_URL(gateway_ptr->register_url), SIPTAG_CONTACT_STR(profile->url), TAG_END());
+ sofia_private_t *pvt;
+
+ pvt = malloc(sizeof(*pvt));
+ switch_assert(pvt);
+ memset(pvt, 0, sizeof(*pvt));
+
+ switch_copy_string(pvt->gateway_name, gateway_ptr->name, sizeof(pvt->gateway_name));
+ nua_handle_bind(nh, pvt);
+
+ gateway_ptr->pinging = 1;
+ nua_options(nh, TAG_END());
+ }
+
switch (ostate) {
case REG_STATE_NOREG:
break;
@@ -87,6 +102,7 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "registered %s\n", gateway_ptr->name);
gateway_ptr->expires = now + gateway_ptr->freq;
gateway_ptr->state = REG_STATE_REGED;
+ gateway_ptr->status = SOFIA_GATEWAY_UP;
break;
case REG_STATE_UNREGISTER:
@@ -143,6 +159,7 @@
case REG_STATE_FAILED:
sofia_reg_kill_reg(gateway_ptr, 0);
+ gateway_ptr->status = SOFIA_GATEWAY_DOWN;
case REG_STATE_TRYING:
if (gateway_ptr->retry && now >= gateway_ptr->retry) {
gateway_ptr->state = REG_STATE_UNREGED;
@@ -344,7 +361,7 @@
sql = switch_mprintf("insert into sip_authentication (nonce, expires) values('%q', %ld)",
uuid_str, switch_timestamp(NULL) + profile->nonce_ttl);
switch_assert(sql != NULL);
- sofia_glue_actually_execute_sql(profile, SWITCH_FALSE, sql, NULL);
+ sofia_glue_actually_execute_sql(profile, SWITCH_FALSE, sql, profile->ireg_mutex);
switch_safe_free(sql);
//sofia_glue_execute_sql(profile, &sql, SWITCH_TRUE);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/mod_java.i
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/mod_java.i (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/mod_java.i Tue May 13 22:16:21 2008
@@ -52,6 +52,6 @@
%include "enums.swg"
-%include switch_cpp.h
+%include switch_swigable_cpp.h
%include freeswitch_java.h
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/CoreSession.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/CoreSession.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/CoreSession.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -59,6 +59,14 @@
return freeswitchJNI.CoreSession_flags_get(swigCPtr, this);
}
+ public void setAllocated(int value) {
+ freeswitchJNI.CoreSession_allocated_set(swigCPtr, this, value);
+ }
+
+ public int getAllocated() {
+ return freeswitchJNI.CoreSession_allocated_get(swigCPtr, this);
+ }
+
public void setCb_state(input_callback_state_t value) {
freeswitchJNI.CoreSession_cb_state_set(swigCPtr, this, input_callback_state_t.getCPtr(value), value);
}
@@ -85,19 +93,44 @@
}
public void hangup(String cause) {
- freeswitchJNI.CoreSession_hangup(swigCPtr, this, cause);
+ freeswitchJNI.CoreSession_hangup__SWIG_0(swigCPtr, this, cause);
+ }
+
+ public void hangup() {
+ freeswitchJNI.CoreSession_hangup__SWIG_1(swigCPtr, this);
}
public void setVariable(String var, String val) {
freeswitchJNI.CoreSession_setVariable(swigCPtr, this, var, val);
}
+ public void setPrivate(String var, SWIGTYPE_p_void val) {
+ freeswitchJNI.CoreSession_setPrivate(swigCPtr, this, var, SWIGTYPE_p_void.getCPtr(val));
+ }
+
+ public SWIGTYPE_p_void getPrivate(String var) {
+ long cPtr = freeswitchJNI.CoreSession_getPrivate(swigCPtr, this, var);
+ return (cPtr == 0) ? null : new SWIGTYPE_p_void(cPtr, false);
+ }
+
public String getVariable(String var) {
return freeswitchJNI.CoreSession_getVariable(swigCPtr, this, var);
}
public int recordFile(String file_name, int max_len, int silence_threshold, int silence_secs) {
- return freeswitchJNI.CoreSession_recordFile(swigCPtr, this, file_name, max_len, silence_threshold, silence_secs);
+ return freeswitchJNI.CoreSession_recordFile__SWIG_0(swigCPtr, this, file_name, max_len, silence_threshold, silence_secs);
+ }
+
+ public int recordFile(String file_name, int max_len, int silence_threshold) {
+ return freeswitchJNI.CoreSession_recordFile__SWIG_1(swigCPtr, this, file_name, max_len, silence_threshold);
+ }
+
+ public int recordFile(String file_name, int max_len) {
+ return freeswitchJNI.CoreSession_recordFile__SWIG_2(swigCPtr, this, file_name, max_len);
+ }
+
+ public int recordFile(String file_name) {
+ return freeswitchJNI.CoreSession_recordFile__SWIG_3(swigCPtr, this, file_name);
}
public void setCallerData(String var, String val) {
@@ -105,7 +138,11 @@
}
public int originate(CoreSession a_leg_session, String dest, int timeout) {
- return freeswitchJNI.CoreSession_originate(swigCPtr, this, CoreSession.getCPtr(a_leg_session), a_leg_session, dest, timeout);
+ return freeswitchJNI.CoreSession_originate__SWIG_0(swigCPtr, this, CoreSession.getCPtr(a_leg_session), a_leg_session, dest, timeout);
+ }
+
+ public int originate(CoreSession a_leg_session, String dest) {
+ return freeswitchJNI.CoreSession_originate__SWIG_1(swigCPtr, this, CoreSession.getCPtr(a_leg_session), a_leg_session, dest);
}
public void setDTMFCallback(SWIGTYPE_p_void cbfunc, String funcargs) {
@@ -124,20 +161,28 @@
return freeswitchJNI.CoreSession_collectDigits(swigCPtr, this, timeout);
}
- public int getDigits(byte[] dtmf_buf, int buflen, int maxdigits, String terminators, byte[] terminator, int timeout) {
- return freeswitchJNI.CoreSession_getDigits(swigCPtr, this, dtmf_buf, buflen, maxdigits, terminators, terminator, timeout);
+ public String getDigits(int maxdigits, String terminators, int timeout) {
+ return freeswitchJNI.CoreSession_getDigits(swigCPtr, this, maxdigits, terminators, timeout);
}
public int transfer(String extensions, String dialplan, String context) {
return freeswitchJNI.CoreSession_transfer(swigCPtr, this, extensions, dialplan, context);
}
- public int playAndGetDigits(int min_digits, int max_digits, int max_tries, int timeout, String terminators, String audio_files, String bad_input_audio_files, byte[] dtmf_buf, String digits_regex) {
- return freeswitchJNI.CoreSession_playAndGetDigits(swigCPtr, this, min_digits, max_digits, max_tries, timeout, terminators, audio_files, bad_input_audio_files, dtmf_buf, digits_regex);
+ public String read(int min_digits, int max_digits, String prompt_audio_file, int timeout, String valid_terminators) {
+ return freeswitchJNI.CoreSession_read(swigCPtr, this, min_digits, max_digits, prompt_audio_file, timeout, valid_terminators);
+ }
+
+ public String playAndGetDigits(int min_digits, int max_digits, int max_tries, int timeout, String terminators, String audio_files, String bad_input_audio_files, String digits_regex) {
+ return freeswitchJNI.CoreSession_playAndGetDigits(swigCPtr, this, min_digits, max_digits, max_tries, timeout, terminators, audio_files, bad_input_audio_files, digits_regex);
}
public int streamFile(String file, int starting_sample_count) {
- return freeswitchJNI.CoreSession_streamFile(swigCPtr, this, file, starting_sample_count);
+ return freeswitchJNI.CoreSession_streamFile__SWIG_0(swigCPtr, this, file, starting_sample_count);
+ }
+
+ public int streamFile(String file) {
+ return freeswitchJNI.CoreSession_streamFile__SWIG_1(swigCPtr, this, file);
}
public int flushEvents() {
@@ -164,6 +209,10 @@
freeswitchJNI.CoreSession_execute(swigCPtr, this, app, data);
}
+ public void sendEvent(Event sendME) {
+ freeswitchJNI.CoreSession_sendEvent(swigCPtr, this, Event.getCPtr(sendME), sendME);
+ }
+
public boolean begin_allow_threads() {
return freeswitchJNI.CoreSession_begin_allow_threads(swigCPtr, this);
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/JavaSession.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/JavaSession.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/JavaSession.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_JavaVM.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_JavaVM.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_JavaVM.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_channel_state_t.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_channel_state_t.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_channel_state_t.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_channel_t.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_channel_t.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_channel_t.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_core_session_t.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_core_session_t.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_core_session_t.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_input_args_t.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_input_args_t.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_input_args_t.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_input_type_t.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_input_type_t.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_input_type_t.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_status_t.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_status_t.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_switch_status_t.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_void.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_void.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_void.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitch.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitch.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitch.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,24 +9,20 @@
package org.freeswitch.swig;
public class freeswitch {
- public static void console_log(String level_str, String msg) {
- freeswitchJNI.console_log(level_str, msg);
- }
-
- public static void console_clean_log(String msg) {
- freeswitchJNI.console_clean_log(msg);
+ public static void consoleLog(String level_str, String msg) {
+ freeswitchJNI.consoleLog(level_str, msg);
}
- public static String api_execute(String cmd, String arg) {
- return freeswitchJNI.api_execute(cmd, arg);
+ public static void consoleCleanLog(String msg) {
+ freeswitchJNI.consoleCleanLog(msg);
}
- public static void api_reply_delete(String reply) {
- freeswitchJNI.api_reply_delete(reply);
+ public static void console_log(String level_str, String msg) {
+ freeswitchJNI.console_log(level_str, msg);
}
- public static SWIGTYPE_p_switch_status_t process_callback_result(String raw_result, input_callback_state_t cb_state, SWIGTYPE_p_switch_core_session_t session) {
- return new SWIGTYPE_p_switch_status_t(freeswitchJNI.process_callback_result(raw_result, input_callback_state_t.getCPtr(cb_state), cb_state, SWIGTYPE_p_switch_core_session_t.getCPtr(session)), true);
+ public static void console_clean_log(String msg) {
+ freeswitchJNI.console_clean_log(msg);
}
public static void bridge(CoreSession session_a, CoreSession session_b) {
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,11 +9,16 @@
package org.freeswitch.swig;
class freeswitchJNI {
- public final static native void console_log(String jarg1, String jarg2);
- public final static native void console_clean_log(String jarg1);
- public final static native String api_execute(String jarg1, String jarg2);
- public final static native void api_reply_delete(String jarg1);
- public final static native long process_callback_result(String jarg1, long jarg2, input_callback_state_t jarg2_, long jarg3);
+ public final static native void consoleLog(String jarg1, String jarg2);
+ public final static native void consoleCleanLog(String jarg1);
+ public final static native long new_IVRMenu(long jarg1, IVRMenu jarg1_, String jarg2, String jarg3, String jarg4, String jarg5, String jarg6, String jarg7, String jarg8, int jarg9, int jarg10, int jarg11, int jarg12, int jarg13);
+ public final static native void delete_IVRMenu(long jarg1);
+ public final static native void IVRMenu_bindAction(long jarg1, IVRMenu jarg1_, String jarg2, String jarg3, String jarg4);
+ public final static native void IVRMenu_execute(long jarg1, IVRMenu jarg1_, long jarg2, CoreSession jarg2_, String jarg3);
+ public final static native long new_API();
+ public final static native void delete_API(long jarg1);
+ public final static native String API_execute(long jarg1, API jarg1_, String jarg2, String jarg3);
+ public final static native String API_executeString(long jarg1, API jarg1_, String jarg2);
public final static native void input_callback_state_t_function_set(long jarg1, input_callback_state_t jarg1_, long jarg2);
public final static native long input_callback_state_t_function_get(long jarg1, input_callback_state_t jarg1_);
public final static native void input_callback_state_t_threadState_set(long jarg1, input_callback_state_t jarg1_, long jarg2);
@@ -27,6 +32,33 @@
public final static native int S_HUP_get();
public final static native int S_FREE_get();
public final static native int S_RDLOCK_get();
+ public final static native long new_Stream__SWIG_0();
+ public final static native long new_Stream__SWIG_1(long jarg1);
+ public final static native void delete_Stream(long jarg1);
+ public final static native void Stream_write(long jarg1, Stream jarg1_, String jarg2);
+ public final static native String Stream_get_data(long jarg1, Stream jarg1_);
+ public final static native void Event_event_set(long jarg1, Event jarg1_, long jarg2);
+ public final static native long Event_event_get(long jarg1, Event jarg1_);
+ public final static native void Event_serialized_string_set(long jarg1, Event jarg1_, String jarg2);
+ public final static native String Event_serialized_string_get(long jarg1, Event jarg1_);
+ public final static native void Event_mine_set(long jarg1, Event jarg1_, int jarg2);
+ public final static native int Event_mine_get(long jarg1, Event jarg1_);
+ public final static native long new_Event__SWIG_0(String jarg1, String jarg2);
+ public final static native long new_Event__SWIG_1(String jarg1);
+ public final static native long new_Event__SWIG_2(long jarg1, int jarg2);
+ public final static native long new_Event__SWIG_3(long jarg1);
+ public final static native void delete_Event(long jarg1);
+ public final static native String Event_serialize__SWIG_0(long jarg1, Event jarg1_, String jarg2);
+ public final static native String Event_serialize__SWIG_1(long jarg1, Event jarg1_);
+ public final static native boolean Event_setPriority__SWIG_0(long jarg1, Event jarg1_, long jarg2);
+ public final static native boolean Event_setPriority__SWIG_1(long jarg1, Event jarg1_);
+ public final static native String Event_getHeader(long jarg1, Event jarg1_, String jarg2);
+ public final static native String Event_getBody(long jarg1, Event jarg1_);
+ public final static native String Event_getType(long jarg1, Event jarg1_);
+ public final static native boolean Event_addBody(long jarg1, Event jarg1_, String jarg2);
+ public final static native boolean Event_addHeader(long jarg1, Event jarg1_, String jarg2, String jarg3);
+ public final static native boolean Event_delHeader(long jarg1, Event jarg1_, String jarg2);
+ public final static native boolean Event_fire(long jarg1, Event jarg1_);
public final static native void delete_CoreSession(long jarg1);
public final static native void CoreSession_session_set(long jarg1, CoreSession jarg1_, long jarg2);
public final static native long CoreSession_session_get(long jarg1, CoreSession jarg1_);
@@ -34,38 +66,52 @@
public final static native long CoreSession_channel_get(long jarg1, CoreSession jarg1_);
public final static native void CoreSession_flags_set(long jarg1, CoreSession jarg1_, long jarg2);
public final static native long CoreSession_flags_get(long jarg1, CoreSession jarg1_);
+ public final static native void CoreSession_allocated_set(long jarg1, CoreSession jarg1_, int jarg2);
+ public final static native int CoreSession_allocated_get(long jarg1, CoreSession jarg1_);
public final static native void CoreSession_cb_state_set(long jarg1, CoreSession jarg1_, long jarg2, input_callback_state_t jarg2_);
public final static native long CoreSession_cb_state_get(long jarg1, CoreSession jarg1_);
public final static native void CoreSession_hook_state_set(long jarg1, CoreSession jarg1_, long jarg2);
public final static native long CoreSession_hook_state_get(long jarg1, CoreSession jarg1_);
public final static native int CoreSession_answer(long jarg1, CoreSession jarg1_);
public final static native int CoreSession_preAnswer(long jarg1, CoreSession jarg1_);
- public final static native void CoreSession_hangup(long jarg1, CoreSession jarg1_, String jarg2);
+ public final static native void CoreSession_hangup__SWIG_0(long jarg1, CoreSession jarg1_, String jarg2);
+ public final static native void CoreSession_hangup__SWIG_1(long jarg1, CoreSession jarg1_);
public final static native void CoreSession_setVariable(long jarg1, CoreSession jarg1_, String jarg2, String jarg3);
+ public final static native void CoreSession_setPrivate(long jarg1, CoreSession jarg1_, String jarg2, long jarg3);
+ public final static native long CoreSession_getPrivate(long jarg1, CoreSession jarg1_, String jarg2);
public final static native String CoreSession_getVariable(long jarg1, CoreSession jarg1_, String jarg2);
- public final static native int CoreSession_recordFile(long jarg1, CoreSession jarg1_, String jarg2, int jarg3, int jarg4, int jarg5);
+ public final static native int CoreSession_recordFile__SWIG_0(long jarg1, CoreSession jarg1_, String jarg2, int jarg3, int jarg4, int jarg5);
+ public final static native int CoreSession_recordFile__SWIG_1(long jarg1, CoreSession jarg1_, String jarg2, int jarg3, int jarg4);
+ public final static native int CoreSession_recordFile__SWIG_2(long jarg1, CoreSession jarg1_, String jarg2, int jarg3);
+ public final static native int CoreSession_recordFile__SWIG_3(long jarg1, CoreSession jarg1_, String jarg2);
public final static native void CoreSession_setCallerData(long jarg1, CoreSession jarg1_, String jarg2, String jarg3);
- public final static native int CoreSession_originate(long jarg1, CoreSession jarg1_, long jarg2, CoreSession jarg2_, String jarg3, int jarg4);
+ public final static native int CoreSession_originate__SWIG_0(long jarg1, CoreSession jarg1_, long jarg2, CoreSession jarg2_, String jarg3, int jarg4);
+ public final static native int CoreSession_originate__SWIG_1(long jarg1, CoreSession jarg1_, long jarg2, CoreSession jarg2_, String jarg3);
public final static native void CoreSession_setDTMFCallback(long jarg1, CoreSession jarg1_, long jarg2, String jarg3);
public final static native int CoreSession_speak(long jarg1, CoreSession jarg1_, String jarg2);
public final static native void CoreSession_set_tts_parms(long jarg1, CoreSession jarg1_, String jarg2, String jarg3);
public final static native int CoreSession_collectDigits(long jarg1, CoreSession jarg1_, int jarg2);
- public final static native int CoreSession_getDigits(long jarg1, CoreSession jarg1_, byte[] jarg2, int jarg3, int jarg4, String jarg5, byte[] jarg6, int jarg7);
+ public final static native String CoreSession_getDigits(long jarg1, CoreSession jarg1_, int jarg2, String jarg3, int jarg4);
public final static native int CoreSession_transfer(long jarg1, CoreSession jarg1_, String jarg2, String jarg3, String jarg4);
- public final static native int CoreSession_playAndGetDigits(long jarg1, CoreSession jarg1_, int jarg2, int jarg3, int jarg4, int jarg5, String jarg6, String jarg7, String jarg8, byte[] jarg9, String jarg10);
- public final static native int CoreSession_streamFile(long jarg1, CoreSession jarg1_, String jarg2, int jarg3);
+ public final static native String CoreSession_read(long jarg1, CoreSession jarg1_, int jarg2, int jarg3, String jarg4, int jarg5, String jarg6);
+ public final static native String CoreSession_playAndGetDigits(long jarg1, CoreSession jarg1_, int jarg2, int jarg3, int jarg4, int jarg5, String jarg6, String jarg7, String jarg8, String jarg9);
+ public final static native int CoreSession_streamFile__SWIG_0(long jarg1, CoreSession jarg1_, String jarg2, int jarg3);
+ public final static native int CoreSession_streamFile__SWIG_1(long jarg1, CoreSession jarg1_, String jarg2);
public final static native int CoreSession_flushEvents(long jarg1, CoreSession jarg1_);
public final static native int CoreSession_flushDigits(long jarg1, CoreSession jarg1_);
public final static native int CoreSession_setAutoHangup(long jarg1, CoreSession jarg1_, boolean jarg2);
public final static native void CoreSession_setHangupHook(long jarg1, CoreSession jarg1_, long jarg2);
public final static native boolean CoreSession_ready(long jarg1, CoreSession jarg1_);
public final static native void CoreSession_execute(long jarg1, CoreSession jarg1_, String jarg2, String jarg3);
+ public final static native void CoreSession_sendEvent(long jarg1, CoreSession jarg1_, long jarg2, Event jarg2_);
public final static native boolean CoreSession_begin_allow_threads(long jarg1, CoreSession jarg1_);
public final static native boolean CoreSession_end_allow_threads(long jarg1, CoreSession jarg1_);
public final static native String CoreSession_get_uuid(long jarg1, CoreSession jarg1_);
public final static native long CoreSession_get_cb_args(long jarg1, CoreSession jarg1_);
public final static native void CoreSession_check_hangup_hook(long jarg1, CoreSession jarg1_);
public final static native long CoreSession_run_dtmf_callback(long jarg1, CoreSession jarg1_, long jarg2, long jarg3);
+ public final static native void console_log(String jarg1, String jarg2);
+ public final static native void console_clean_log(String jarg1);
public final static native void bridge(long jarg1, CoreSession jarg1_, long jarg2, CoreSession jarg2_);
public final static native long hanguphook(long jarg1);
public final static native long dtmf_callback(long jarg1, long jarg2, long jarg3, long jarg4, long jarg5);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/input_callback_state_t.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/input_callback_state_t.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/input_callback_state_t.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/session_flag_t.java
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/session_flag_t.java (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/src/org/freeswitch/swig/session_flag_t.java Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -27,15 +27,18 @@
throw new IllegalArgumentException("No enum " + session_flag_t.class + " with value " + swigValue);
}
+ @SuppressWarnings("unused")
private session_flag_t() {
this.swigValue = SwigNext.next++;
}
+ @SuppressWarnings("unused")
private session_flag_t(int swigValue) {
this.swigValue = swigValue;
SwigNext.next = swigValue+1;
}
+ @SuppressWarnings("unused")
private session_flag_t(session_flag_t swigEnum) {
this.swigValue = swigEnum.swigValue;
SwigNext.next = this.swigValue+1;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/switch_swig_wrap.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/switch_swig_wrap.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_java/switch_swig_wrap.cpp Tue May 13 22:16:21 2008
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org)
- * Version 1.3.31
+ * Version 1.3.35
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
@@ -10,7 +10,7 @@
#ifdef __cplusplus
-template<class T> class SwigValueWrapper {
+template<typename T> class SwigValueWrapper {
T *tt;
public:
SwigValueWrapper() : tt(0) { }
@@ -23,6 +23,10 @@
private:
SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
};
+
+template <typename T> T SwigValueInit() {
+ return T();
+}
#endif
/* -----------------------------------------------------------------------------
@@ -32,14 +36,14 @@
/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC)
-# if (__SUNPRO_CC <= 0x560)
-# define SWIGTEMPLATEDISAMBIGUATOR template
-# else
-# define SWIGTEMPLATEDISAMBIGUATOR
-# endif
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+# define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+# define SWIGTEMPLATEDISAMBIGUATOR template
# else
-# define SWIGTEMPLATEDISAMBIGUATOR
+# define SWIGTEMPLATEDISAMBIGUATOR
# endif
#endif
@@ -122,6 +126,12 @@
# define _CRT_SECURE_NO_DEPRECATE
#endif
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
/* Fix for jlong on some versions of gcc on Windows */
#if defined(__GNUC__) && !defined(__INTELC__)
@@ -197,7 +207,7 @@
extern "C" {
#endif
-SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_console_1log(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_consoleLog(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
char *arg1 = (char *) 0 ;
char *arg2 = (char *) 0 ;
@@ -213,13 +223,13 @@
arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
if (!arg2) return ;
}
- console_log(arg1,arg2);
+ consoleLog(arg1,arg2);
if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}
-SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_console_1clean_1log(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_consoleCleanLog(JNIEnv *jenv, jclass jcls, jstring jarg1) {
char *arg1 = (char *) 0 ;
(void)jenv;
@@ -229,72 +239,219 @@
arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
if (!arg1) return ;
}
- console_clean_log(arg1);
+ consoleCleanLog(arg1);
if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
}
-SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_api_1execute(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
- jstring jresult = 0 ;
- char *arg1 = (char *) 0 ;
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1IVRMenu(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4, jstring jarg5, jstring jarg6, jstring jarg7, jstring jarg8, jint jarg9, jint jarg10, jint jarg11, jint jarg12, jint jarg13) {
+ jlong jresult = 0 ;
+ IVRMenu *arg1 = (IVRMenu *) 0 ;
char *arg2 = (char *) 0 ;
- char *result = 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+ char *arg5 = (char *) 0 ;
+ char *arg6 = (char *) 0 ;
+ char *arg7 = (char *) 0 ;
+ char *arg8 = (char *) 0 ;
+ int arg9 ;
+ int arg10 ;
+ int arg11 ;
+ int arg12 ;
+ int arg13 ;
+ IVRMenu *result = 0 ;
(void)jenv;
(void)jcls;
- arg1 = 0;
- if (jarg1) {
- arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
- if (!arg1) return 0;
- }
+ (void)jarg1_;
+ arg1 = *(IVRMenu **)&jarg1;
arg2 = 0;
if (jarg2) {
arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
if (!arg2) return 0;
}
- result = (char *)api_execute(arg1,arg2);
- if(result) jresult = jenv->NewStringUTF((const char *)result);
- if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
+ arg3 = 0;
+ if (jarg3) {
+ arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
+ if (!arg3) return 0;
+ }
+ arg4 = 0;
+ if (jarg4) {
+ arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
+ if (!arg4) return 0;
+ }
+ arg5 = 0;
+ if (jarg5) {
+ arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
+ if (!arg5) return 0;
+ }
+ arg6 = 0;
+ if (jarg6) {
+ arg6 = (char *)jenv->GetStringUTFChars(jarg6, 0);
+ if (!arg6) return 0;
+ }
+ arg7 = 0;
+ if (jarg7) {
+ arg7 = (char *)jenv->GetStringUTFChars(jarg7, 0);
+ if (!arg7) return 0;
+ }
+ arg8 = 0;
+ if (jarg8) {
+ arg8 = (char *)jenv->GetStringUTFChars(jarg8, 0);
+ if (!arg8) return 0;
+ }
+ arg9 = (int)jarg9;
+ arg10 = (int)jarg10;
+ arg11 = (int)jarg11;
+ arg12 = (int)jarg12;
+ arg13 = (int)jarg13;
+ result = (IVRMenu *)new IVRMenu(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6,(char const *)arg7,(char const *)arg8,arg9,arg10,arg11,arg12,arg13);
+ *(IVRMenu **)&jresult = result;
if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
+ if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
+ if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
+ if (arg6) jenv->ReleaseStringUTFChars(jarg6, (const char *)arg6);
+ if (arg7) jenv->ReleaseStringUTFChars(jarg7, (const char *)arg7);
+ if (arg8) jenv->ReleaseStringUTFChars(jarg8, (const char *)arg8);
return jresult;
}
-SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_api_1reply_1delete(JNIEnv *jenv, jclass jcls, jstring jarg1) {
- char *arg1 = (char *) 0 ;
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_delete_1IVRMenu(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ IVRMenu *arg1 = (IVRMenu *) 0 ;
(void)jenv;
(void)jcls;
- arg1 = 0;
- if (jarg1) {
- arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
- if (!arg1) return ;
+ arg1 = *(IVRMenu **)&jarg1;
+ delete arg1;
+
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_IVRMenu_1bindAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4) {
+ IVRMenu *arg1 = (IVRMenu *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(IVRMenu **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return ;
}
- api_reply_delete(arg1);
- if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
+ arg3 = 0;
+ if (jarg3) {
+ arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
+ if (!arg3) return ;
+ }
+ arg4 = 0;
+ if (jarg4) {
+ arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
+ if (!arg4) return ;
+ }
+ (arg1)->bindAction(arg2,(char const *)arg3,(char const *)arg4);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
+ if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
}
-SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_process_1callback_1result(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jobject jarg2_, jlong jarg3) {
- jlong jresult = 0 ;
- char *arg1 = (char *) 0 ;
- input_callback_state *arg2 = (input_callback_state *) 0 ;
- switch_core_session_t *arg3 = (switch_core_session_t *) 0 ;
- switch_status_t result;
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_IVRMenu_1execute(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) {
+ IVRMenu *arg1 = (IVRMenu *) 0 ;
+ CoreSession *arg2 = (CoreSession *) 0 ;
+ char *arg3 = (char *) 0 ;
(void)jenv;
(void)jcls;
+ (void)jarg1_;
(void)jarg2_;
- arg1 = 0;
- if (jarg1) {
- arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
- if (!arg1) return 0;
+ arg1 = *(IVRMenu **)&jarg1;
+ arg2 = *(CoreSession **)&jarg2;
+ arg3 = 0;
+ if (jarg3) {
+ arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
+ if (!arg3) return ;
}
- arg2 = *(input_callback_state **)&jarg2;
- arg3 = *(switch_core_session_t **)&jarg3;
- result = process_callback_result(arg1,arg2,arg3);
- *(switch_status_t **)&jresult = new switch_status_t((switch_status_t &)result);
- if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
+ (arg1)->execute(arg2,(char const *)arg3);
+ if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1API(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ API *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (API *)new API();
+ *(API **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_delete_1API(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ API *arg1 = (API *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(API **)&jarg1;
+ delete arg1;
+
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_API_1execute(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
+ jstring jresult = 0 ;
+ API *arg1 = (API *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(API **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ arg3 = 0;
+ if (jarg3) {
+ arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
+ if (!arg3) return 0;
+ }
+ result = (char *)(arg1)->execute((char const *)arg2,(char const *)arg3);
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_API_1executeString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jstring jresult = 0 ;
+ API *arg1 = (API *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(API **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ result = (char *)(arg1)->executeString((char const *)arg2);
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
return jresult;
}
@@ -486,122 +643,621 @@
}
-SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_delete_1CoreSession(JNIEnv *jenv, jclass jcls, jlong jarg1) {
- CoreSession *arg1 = (CoreSession *) 0 ;
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1Stream_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ Stream *result = 0 ;
(void)jenv;
(void)jcls;
- arg1 = *(CoreSession **)&jarg1;
- delete arg1;
-
+ result = (Stream *)new Stream();
+ *(Stream **)&jresult = result;
+ return jresult;
}
-SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1session_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
- CoreSession *arg1 = (CoreSession *) 0 ;
- switch_core_session_t *arg2 = (switch_core_session_t *) 0 ;
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1Stream_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ jlong jresult = 0 ;
+ switch_stream_handle_t *arg1 = (switch_stream_handle_t *) 0 ;
+ Stream *result = 0 ;
(void)jenv;
(void)jcls;
- (void)jarg1_;
- arg1 = *(CoreSession **)&jarg1;
- arg2 = *(switch_core_session_t **)&jarg2;
- if (arg1) (arg1)->session = arg2;
-
+ arg1 = *(switch_stream_handle_t **)&jarg1;
+ result = (Stream *)new Stream(arg1);
+ *(Stream **)&jresult = result;
+ return jresult;
}
-SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1session_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
- jlong jresult = 0 ;
- CoreSession *arg1 = (CoreSession *) 0 ;
- switch_core_session_t *result = 0 ;
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_delete_1Stream(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ Stream *arg1 = (Stream *) 0 ;
(void)jenv;
(void)jcls;
- (void)jarg1_;
- arg1 = *(CoreSession **)&jarg1;
- result = (switch_core_session_t *) ((arg1)->session);
- *(switch_core_session_t **)&jresult = result;
- return jresult;
+ arg1 = *(Stream **)&jarg1;
+ delete arg1;
+
}
-SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1channel_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
- CoreSession *arg1 = (CoreSession *) 0 ;
- switch_channel_t *arg2 = (switch_channel_t *) 0 ;
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_Stream_1write(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ Stream *arg1 = (Stream *) 0 ;
+ char *arg2 = (char *) 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
- arg1 = *(CoreSession **)&jarg1;
- arg2 = *(switch_channel_t **)&jarg2;
- if (arg1) (arg1)->channel = arg2;
-
+ arg1 = *(Stream **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return ;
+ }
+ (arg1)->write((char const *)arg2);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}
-SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1channel_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
- jlong jresult = 0 ;
- CoreSession *arg1 = (CoreSession *) 0 ;
- switch_channel_t *result = 0 ;
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_Stream_1get_1data(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ Stream *arg1 = (Stream *) 0 ;
+ char *result = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
- arg1 = *(CoreSession **)&jarg1;
- result = (switch_channel_t *) ((arg1)->channel);
- *(switch_channel_t **)&jresult = result;
+ arg1 = *(Stream **)&jarg1;
+ result = (char *)(arg1)->get_data();
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
return jresult;
}
-SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1flags_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
- CoreSession *arg1 = (CoreSession *) 0 ;
- unsigned int arg2 ;
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1event_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ Event *arg1 = (Event *) 0 ;
+ switch_event_t *arg2 = (switch_event_t *) 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
- arg1 = *(CoreSession **)&jarg1;
- arg2 = (unsigned int)jarg2;
- if (arg1) (arg1)->flags = arg2;
+ arg1 = *(Event **)&jarg1;
+ arg2 = *(switch_event_t **)&jarg2;
+ if (arg1) (arg1)->event = arg2;
}
-SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1flags_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1event_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
- CoreSession *arg1 = (CoreSession *) 0 ;
- unsigned int result;
+ Event *arg1 = (Event *) 0 ;
+ switch_event_t *result = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
- arg1 = *(CoreSession **)&jarg1;
- result = (unsigned int) ((arg1)->flags);
- jresult = (jlong)result;
+ arg1 = *(Event **)&jarg1;
+ result = (switch_event_t *) ((arg1)->event);
+ *(switch_event_t **)&jresult = result;
return jresult;
}
-SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1cb_1state_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
- CoreSession *arg1 = (CoreSession *) 0 ;
- input_callback_state *arg2 = (input_callback_state *) 0 ;
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1serialized_1string_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
- (void)jarg2_;
- arg1 = *(CoreSession **)&jarg1;
- arg2 = *(input_callback_state **)&jarg2;
- if (arg1) (arg1)->cb_state = *arg2;
-
-}
-
-
-SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1cb_1state_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
- jlong jresult = 0 ;
- CoreSession *arg1 = (CoreSession *) 0 ;
+ arg1 = *(Event **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return ;
+ }
+ {
+ if (arg1->serialized_string) delete [] arg1->serialized_string;
+ if (arg2) {
+ arg1->serialized_string = (char *) (new char[strlen((const char *)arg2)+1]);
+ strcpy((char *)arg1->serialized_string, (const char *)arg2);
+ } else {
+ arg1->serialized_string = 0;
+ }
+ }
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1serialized_1string_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ result = (char *) ((arg1)->serialized_string);
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1mine_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ Event *arg1 = (Event *) 0 ;
+ int arg2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ arg2 = (int)jarg2;
+ if (arg1) (arg1)->mine = arg2;
+
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1mine_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ result = (int) ((arg1)->mine);
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1Event_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
+ jlong jresult = 0 ;
+ char *arg1 = (char *) 0 ;
+ char *arg2 = (char *) 0 ;
+ Event *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = 0;
+ if (jarg1) {
+ arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
+ if (!arg1) return 0;
+ }
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ result = (Event *)new Event((char const *)arg1,(char const *)arg2);
+ *(Event **)&jresult = result;
+ if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1Event_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+ jlong jresult = 0 ;
+ char *arg1 = (char *) 0 ;
+ Event *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = 0;
+ if (jarg1) {
+ arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
+ if (!arg1) return 0;
+ }
+ result = (Event *)new Event((char const *)arg1);
+ *(Event **)&jresult = result;
+ if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1Event_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
+ jlong jresult = 0 ;
+ switch_event_t *arg1 = (switch_event_t *) 0 ;
+ int arg2 ;
+ Event *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(switch_event_t **)&jarg1;
+ arg2 = (int)jarg2;
+ result = (Event *)new Event(arg1,arg2);
+ *(Event **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1Event_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ jlong jresult = 0 ;
+ switch_event_t *arg1 = (switch_event_t *) 0 ;
+ Event *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(switch_event_t **)&jarg1;
+ result = (Event *)new Event(arg1);
+ *(Event **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_delete_1Event(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ Event *arg1 = (Event *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(Event **)&jarg1;
+ delete arg1;
+
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1serialize_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jstring jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ result = (char *)(arg1)->serialize((char const *)arg2);
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1serialize_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ result = (char *)(arg1)->serialize();
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1setPriority_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ jboolean jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ switch_priority_t arg2 ;
+ bool result;
+ switch_priority_t *argp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ argp2 = *(switch_priority_t **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null switch_priority_t");
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->setPriority(arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1setPriority_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ result = (bool)(arg1)->setPriority();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1getHeader(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jstring jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ result = (char *)(arg1)->getHeader(arg2);
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1getBody(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ result = (char *)(arg1)->getBody();
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1getType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ result = (char *)(arg1)->getType();
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1addBody(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jboolean jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ result = (bool)(arg1)->addBody((char const *)arg2);
+ jresult = (jboolean)result;
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1addHeader(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
+ jboolean jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ arg3 = 0;
+ if (jarg3) {
+ arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
+ if (!arg3) return 0;
+ }
+ result = (bool)(arg1)->addHeader((char const *)arg2,(char const *)arg3);
+ jresult = (jboolean)result;
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1delHeader(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jboolean jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ result = (bool)(arg1)->delHeader((char const *)arg2);
+ jresult = (jboolean)result;
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_freeswitch_swig_freeswitchJNI_Event_1fire(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ Event *arg1 = (Event *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(Event **)&jarg1;
+ result = (bool)(arg1)->fire();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_delete_1CoreSession(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(CoreSession **)&jarg1;
+ delete arg1;
+
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1session_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ switch_core_session_t *arg2 = (switch_core_session_t *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = *(switch_core_session_t **)&jarg2;
+ if (arg1) (arg1)->session = arg2;
+
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1session_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ switch_core_session_t *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ result = (switch_core_session_t *) ((arg1)->session);
+ *(switch_core_session_t **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1channel_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ switch_channel_t *arg2 = (switch_channel_t *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = *(switch_channel_t **)&jarg2;
+ if (arg1) (arg1)->channel = arg2;
+
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1channel_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ switch_channel_t *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ result = (switch_channel_t *) ((arg1)->channel);
+ *(switch_channel_t **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1flags_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ unsigned int arg2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = (unsigned int)jarg2;
+ if (arg1) (arg1)->flags = arg2;
+
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1flags_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ unsigned int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ result = (unsigned int) ((arg1)->flags);
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1allocated_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ int arg2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = (int)jarg2;
+ if (arg1) (arg1)->allocated = arg2;
+
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1allocated_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ result = (int) ((arg1)->allocated);
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1cb_1state_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ input_callback_state *arg2 = (input_callback_state *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = *(input_callback_state **)&jarg2;
+ if (arg1) (arg1)->cb_state = *arg2;
+
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1cb_1state_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
input_callback_state *result = 0 ;
(void)jenv;
@@ -649,39 +1305,162 @@
}
-SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1answer(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
- jint jresult = 0 ;
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1answer(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ result = (int)(arg1)->answer();
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1preAnswer(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ result = (int)(arg1)->preAnswer();
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1hangup_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return ;
+ }
+ (arg1)->hangup(arg2);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1hangup_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ (arg1)->hangup();
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1setVariable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return ;
+ }
+ arg3 = 0;
+ if (jarg3) {
+ arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
+ if (!arg3) return ;
+ }
+ (arg1)->setVariable(arg2,arg3);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1setPrivate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *arg3 = (void *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return ;
+ }
+ arg3 = *(void **)&jarg3;
+ (arg1)->setPrivate(arg2,arg3);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1getPrivate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jlong jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
- int result;
+ char *arg2 = (char *) 0 ;
+ void *result = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
arg1 = *(CoreSession **)&jarg1;
- result = (int)(arg1)->answer();
- jresult = (jint)result;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ result = (void *)(arg1)->getPrivate(arg2);
+ *(void **)&jresult = result;
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
return jresult;
}
-SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1preAnswer(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
- jint jresult = 0 ;
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1getVariable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jstring jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
- int result;
+ char *arg2 = (char *) 0 ;
+ char *result = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
arg1 = *(CoreSession **)&jarg1;
- result = (int)(arg1)->preAnswer();
- jresult = (jint)result;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ result = (char *)(arg1)->getVariable(arg2);
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
return jresult;
}
-SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1hangup(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1recordFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jint jarg4, jint jarg5) {
+ jint jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
char *arg2 = (char *) 0 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int result;
(void)jenv;
(void)jcls;
@@ -690,17 +1469,25 @@
arg2 = 0;
if (jarg2) {
arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
- if (!arg2) return ;
+ if (!arg2) return 0;
}
- (arg1)->hangup(arg2);
+ arg3 = (int)jarg3;
+ arg4 = (int)jarg4;
+ arg5 = (int)jarg5;
+ result = (int)(arg1)->recordFile(arg2,arg3,arg4,arg5);
+ jresult = (jint)result;
if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ return jresult;
}
-SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1setVariable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1recordFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jint jarg4) {
+ jint jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ int arg3 ;
+ int arg4 ;
+ int result;
(void)jenv;
(void)jcls;
@@ -709,24 +1496,23 @@
arg2 = 0;
if (jarg2) {
arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
- if (!arg2) return ;
- }
- arg3 = 0;
- if (jarg3) {
- arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
- if (!arg3) return ;
+ if (!arg2) return 0;
}
- (arg1)->setVariable(arg2,arg3);
+ arg3 = (int)jarg3;
+ arg4 = (int)jarg4;
+ result = (int)(arg1)->recordFile(arg2,arg3,arg4);
+ jresult = (jint)result;
if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
- if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
+ return jresult;
}
-SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1getVariable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
- jstring jresult = 0 ;
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1recordFile_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) {
+ jint jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
char *arg2 = (char *) 0 ;
- char *result = 0 ;
+ int arg3 ;
+ int result;
(void)jenv;
(void)jcls;
@@ -737,20 +1523,18 @@
arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
if (!arg2) return 0;
}
- result = (char *)(arg1)->getVariable(arg2);
- if(result) jresult = jenv->NewStringUTF((const char *)result);
+ arg3 = (int)jarg3;
+ result = (int)(arg1)->recordFile(arg2,arg3);
+ jresult = (jint)result;
if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
return jresult;
}
-SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1recordFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jint jarg4, jint jarg5) {
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1recordFile_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
jint jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
char *arg2 = (char *) 0 ;
- int arg3 = (int) 0 ;
- int arg4 = (int) 0 ;
- int arg5 = (int) 0 ;
int result;
(void)jenv;
@@ -762,10 +1546,7 @@
arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
if (!arg2) return 0;
}
- arg3 = (int)jarg3;
- arg4 = (int)jarg4;
- arg5 = (int)jarg5;
- result = (int)(arg1)->recordFile(arg2,arg3,arg4,arg5);
+ result = (int)(arg1)->recordFile(arg2);
jresult = (jint)result;
if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
return jresult;
@@ -797,12 +1578,12 @@
}
-SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1originate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3, jint jarg4) {
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1originate_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3, jint jarg4) {
jint jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
CoreSession *arg2 = (CoreSession *) 0 ;
char *arg3 = (char *) 0 ;
- int arg4 = (int) 60 ;
+ int arg4 ;
int result;
(void)jenv;
@@ -824,6 +1605,31 @@
}
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1originate_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) {
+ jint jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ CoreSession *arg2 = (CoreSession *) 0 ;
+ char *arg3 = (char *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = *(CoreSession **)&jarg2;
+ arg3 = 0;
+ if (jarg3) {
+ arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
+ if (!arg3) return 0;
+ }
+ result = (int)(arg1)->originate(arg2,arg3);
+ jresult = (jint)result;
+ if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
+ return jresult;
+}
+
+
SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1setDTMFCallback(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jstring jarg3) {
CoreSession *arg1 = (CoreSession *) 0 ;
void *arg2 = (void *) 0 ;
@@ -908,48 +1714,28 @@
}
-SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1getDigits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jbyteArray jarg2, jint jarg3, jint jarg4, jstring jarg5, jbyteArray jarg6, jint jarg7) {
- jint jresult = 0 ;
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1getDigits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jstring jarg3, jint jarg4) {
+ jstring jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
- char *arg2 = (char *) 0 ;
- int arg3 ;
+ int arg2 ;
+ char *arg3 = (char *) 0 ;
int arg4 ;
- char *arg5 = (char *) 0 ;
- char *arg6 = (char *) 0 ;
- int arg7 ;
- int result;
+ char *result = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
arg1 = *(CoreSession **)&jarg1;
- {
- arg2 = (char*) jenv->GetByteArrayElements(jarg2, 0);
- if (!arg2) return 0;
+ arg2 = (int)jarg2;
+ arg3 = 0;
+ if (jarg3) {
+ arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
+ if (!arg3) return 0;
}
- arg3 = (int)jarg3;
arg4 = (int)jarg4;
- arg5 = 0;
- if (jarg5) {
- arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
- if (!arg5) return 0;
- }
- {
- arg6 = (char*) jenv->GetByteArrayElements(jarg6, 0);
- if (!arg6) return 0;
- }
- arg7 = (int)jarg7;
- result = (int)(arg1)->getDigits(arg2,arg3,arg4,arg5,arg6,arg7);
- jresult = (jint)result;
- {
- jenv->ReleaseByteArrayElements(jarg2, (jbyte*) arg2, 0);
- }
- {
- jenv->ReleaseByteArrayElements(jarg6, (jbyte*) arg6, 0);
- }
-
- if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
-
+ result = (char *)(arg1)->getDigits(arg2,arg3,arg4);
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
return jresult;
}
@@ -990,8 +1776,43 @@
}
-SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1playAndGetDigits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jint jarg4, jint jarg5, jstring jarg6, jstring jarg7, jstring jarg8, jbyteArray jarg9, jstring jarg10) {
- jint jresult = 0 ;
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1read(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jstring jarg4, jint jarg5, jstring jarg6) {
+ jstring jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ int arg2 ;
+ int arg3 ;
+ char *arg4 = (char *) 0 ;
+ int arg5 ;
+ char *arg6 = (char *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = (int)jarg2;
+ arg3 = (int)jarg3;
+ arg4 = 0;
+ if (jarg4) {
+ arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
+ if (!arg4) return 0;
+ }
+ arg5 = (int)jarg5;
+ arg6 = 0;
+ if (jarg6) {
+ arg6 = (char *)jenv->GetStringUTFChars(jarg6, 0);
+ if (!arg6) return 0;
+ }
+ result = (char *)(arg1)->read(arg2,arg3,(char const *)arg4,arg5,(char const *)arg6);
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
+ if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
+ if (arg6) jenv->ReleaseStringUTFChars(jarg6, (const char *)arg6);
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1playAndGetDigits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jint jarg4, jint jarg5, jstring jarg6, jstring jarg7, jstring jarg8, jstring jarg9) {
+ jstring jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
int arg2 ;
int arg3 ;
@@ -1001,8 +1822,7 @@
char *arg7 = (char *) 0 ;
char *arg8 = (char *) 0 ;
char *arg9 = (char *) 0 ;
- char *arg10 = (char *) 0 ;
- int result;
+ char *result = 0 ;
(void)jenv;
(void)jcls;
@@ -1027,34 +1847,26 @@
arg8 = (char *)jenv->GetStringUTFChars(jarg8, 0);
if (!arg8) return 0;
}
- {
- arg9 = (char*) jenv->GetByteArrayElements(jarg9, 0);
+ arg9 = 0;
+ if (jarg9) {
+ arg9 = (char *)jenv->GetStringUTFChars(jarg9, 0);
if (!arg9) return 0;
}
- arg10 = 0;
- if (jarg10) {
- arg10 = (char *)jenv->GetStringUTFChars(jarg10, 0);
- if (!arg10) return 0;
- }
- result = (int)(arg1)->playAndGetDigits(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
- jresult = (jint)result;
- {
- jenv->ReleaseByteArrayElements(jarg9, (jbyte*) arg9, 0);
- }
+ result = (char *)(arg1)->playAndGetDigits(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
+ if(result) jresult = jenv->NewStringUTF((const char *)result);
if (arg6) jenv->ReleaseStringUTFChars(jarg6, (const char *)arg6);
if (arg7) jenv->ReleaseStringUTFChars(jarg7, (const char *)arg7);
if (arg8) jenv->ReleaseStringUTFChars(jarg8, (const char *)arg8);
-
- if (arg10) jenv->ReleaseStringUTFChars(jarg10, (const char *)arg10);
+ if (arg9) jenv->ReleaseStringUTFChars(jarg9, (const char *)arg9);
return jresult;
}
-SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1streamFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) {
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1streamFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) {
jint jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
char *arg2 = (char *) 0 ;
- int arg3 = (int) 0 ;
+ int arg3 ;
int result;
(void)jenv;
@@ -1074,6 +1886,28 @@
}
+SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1streamFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jint jresult = 0 ;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return 0;
+ }
+ result = (int)(arg1)->streamFile(arg2);
+ jresult = (jint)result;
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+ return jresult;
+}
+
+
SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1flushEvents(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jint jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -1174,6 +2008,20 @@
}
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1sendEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ Event *arg2 = (Event *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(CoreSession **)&jarg1;
+ arg2 = *(Event **)&jarg2;
+ (arg1)->sendEvent(arg2);
+}
+
+
SWIGEXPORT jboolean JNICALL Java_org_freeswitch_swig_freeswitchJNI_CoreSession_1begin_1allow_1threads(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jboolean jresult = 0 ;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -1273,6 +2121,43 @@
}
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_console_1log(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
+ char *arg1 = (char *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = 0;
+ if (jarg1) {
+ arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
+ if (!arg1) return ;
+ }
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
+ if (!arg2) return ;
+ }
+ console_log(arg1,arg2);
+ if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
+ if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_console_1clean_1log(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+ char *arg1 = (char *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = 0;
+ if (jarg1) {
+ arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
+ if (!arg1) return ;
+ }
+ console_clean_log(arg1);
+ if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
+}
+
+
SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_bridge(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
CoreSession *arg1 = 0 ;
CoreSession *arg2 = 0 ;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch.py
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch.py (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch.py Tue May 13 22:16:21 2008
@@ -48,11 +48,42 @@
del types
-console_log = _freeswitch.console_log
-console_clean_log = _freeswitch.console_clean_log
-api_execute = _freeswitch.api_execute
-api_reply_delete = _freeswitch.api_reply_delete
-process_callback_result = _freeswitch.process_callback_result
+consoleLog = _freeswitch.consoleLog
+consoleCleanLog = _freeswitch.consoleCleanLog
+class IVRMenu(_object):
+ __swig_setmethods__ = {}
+ __setattr__ = lambda self, name, value: _swig_setattr(self, IVRMenu, name, value)
+ __swig_getmethods__ = {}
+ __getattr__ = lambda self, name: _swig_getattr(self, IVRMenu, name)
+ __repr__ = _swig_repr
+ def __init__(self, *args):
+ this = _freeswitch.new_IVRMenu(*args)
+ try: self.this.append(this)
+ except: self.this = this
+ __swig_destroy__ = _freeswitch.delete_IVRMenu
+ __del__ = lambda self : None;
+ def bindAction(*args): return _freeswitch.IVRMenu_bindAction(*args)
+ def execute(*args): return _freeswitch.IVRMenu_execute(*args)
+IVRMenu_swigregister = _freeswitch.IVRMenu_swigregister
+IVRMenu_swigregister(IVRMenu)
+
+class API(_object):
+ __swig_setmethods__ = {}
+ __setattr__ = lambda self, name, value: _swig_setattr(self, API, name, value)
+ __swig_getmethods__ = {}
+ __getattr__ = lambda self, name: _swig_getattr(self, API, name)
+ __repr__ = _swig_repr
+ def __init__(self, *args):
+ this = _freeswitch.new_API(*args)
+ try: self.this.append(this)
+ except: self.this = this
+ __swig_destroy__ = _freeswitch.delete_API
+ __del__ = lambda self : None;
+ def execute(*args): return _freeswitch.API_execute(*args)
+ def executeString(*args): return _freeswitch.API_executeString(*args)
+API_swigregister = _freeswitch.API_swigregister
+API_swigregister(API)
+
class input_callback_state_t(_object):
__swig_setmethods__ = {}
__setattr__ = lambda self, name, value: _swig_setattr(self, input_callback_state_t, name, value)
@@ -83,6 +114,56 @@
S_HUP = _freeswitch.S_HUP
S_FREE = _freeswitch.S_FREE
S_RDLOCK = _freeswitch.S_RDLOCK
+class Stream(_object):
+ __swig_setmethods__ = {}
+ __setattr__ = lambda self, name, value: _swig_setattr(self, Stream, name, value)
+ __swig_getmethods__ = {}
+ __getattr__ = lambda self, name: _swig_getattr(self, Stream, name)
+ __repr__ = _swig_repr
+ def __init__(self, *args):
+ this = _freeswitch.new_Stream(*args)
+ try: self.this.append(this)
+ except: self.this = this
+ __swig_destroy__ = _freeswitch.delete_Stream
+ __del__ = lambda self : None;
+ def write(*args): return _freeswitch.Stream_write(*args)
+ def get_data(*args): return _freeswitch.Stream_get_data(*args)
+Stream_swigregister = _freeswitch.Stream_swigregister
+Stream_swigregister(Stream)
+
+class Event(_object):
+ __swig_setmethods__ = {}
+ __setattr__ = lambda self, name, value: _swig_setattr(self, Event, name, value)
+ __swig_getmethods__ = {}
+ __getattr__ = lambda self, name: _swig_getattr(self, Event, name)
+ __repr__ = _swig_repr
+ __swig_setmethods__["event"] = _freeswitch.Event_event_set
+ __swig_getmethods__["event"] = _freeswitch.Event_event_get
+ if _newclass:event = _swig_property(_freeswitch.Event_event_get, _freeswitch.Event_event_set)
+ __swig_setmethods__["serialized_string"] = _freeswitch.Event_serialized_string_set
+ __swig_getmethods__["serialized_string"] = _freeswitch.Event_serialized_string_get
+ if _newclass:serialized_string = _swig_property(_freeswitch.Event_serialized_string_get, _freeswitch.Event_serialized_string_set)
+ __swig_setmethods__["mine"] = _freeswitch.Event_mine_set
+ __swig_getmethods__["mine"] = _freeswitch.Event_mine_get
+ if _newclass:mine = _swig_property(_freeswitch.Event_mine_get, _freeswitch.Event_mine_set)
+ def __init__(self, *args):
+ this = _freeswitch.new_Event(*args)
+ try: self.this.append(this)
+ except: self.this = this
+ __swig_destroy__ = _freeswitch.delete_Event
+ __del__ = lambda self : None;
+ def serialize(*args): return _freeswitch.Event_serialize(*args)
+ def setPriority(*args): return _freeswitch.Event_setPriority(*args)
+ def getHeader(*args): return _freeswitch.Event_getHeader(*args)
+ def getBody(*args): return _freeswitch.Event_getBody(*args)
+ def getType(*args): return _freeswitch.Event_getType(*args)
+ def addBody(*args): return _freeswitch.Event_addBody(*args)
+ def addHeader(*args): return _freeswitch.Event_addHeader(*args)
+ def delHeader(*args): return _freeswitch.Event_delHeader(*args)
+ def fire(*args): return _freeswitch.Event_fire(*args)
+Event_swigregister = _freeswitch.Event_swigregister
+Event_swigregister(Event)
+
class CoreSession(_object):
__swig_setmethods__ = {}
__setattr__ = lambda self, name, value: _swig_setattr(self, CoreSession, name, value)
@@ -101,6 +182,9 @@
__swig_setmethods__["flags"] = _freeswitch.CoreSession_flags_set
__swig_getmethods__["flags"] = _freeswitch.CoreSession_flags_get
if _newclass:flags = _swig_property(_freeswitch.CoreSession_flags_get, _freeswitch.CoreSession_flags_set)
+ __swig_setmethods__["allocated"] = _freeswitch.CoreSession_allocated_set
+ __swig_getmethods__["allocated"] = _freeswitch.CoreSession_allocated_get
+ if _newclass:allocated = _swig_property(_freeswitch.CoreSession_allocated_get, _freeswitch.CoreSession_allocated_set)
__swig_setmethods__["cb_state"] = _freeswitch.CoreSession_cb_state_set
__swig_getmethods__["cb_state"] = _freeswitch.CoreSession_cb_state_get
if _newclass:cb_state = _swig_property(_freeswitch.CoreSession_cb_state_get, _freeswitch.CoreSession_cb_state_set)
@@ -111,6 +195,8 @@
def preAnswer(*args): return _freeswitch.CoreSession_preAnswer(*args)
def hangup(*args): return _freeswitch.CoreSession_hangup(*args)
def setVariable(*args): return _freeswitch.CoreSession_setVariable(*args)
+ def setPrivate(*args): return _freeswitch.CoreSession_setPrivate(*args)
+ def getPrivate(*args): return _freeswitch.CoreSession_getPrivate(*args)
def getVariable(*args): return _freeswitch.CoreSession_getVariable(*args)
def recordFile(*args): return _freeswitch.CoreSession_recordFile(*args)
def setCallerData(*args): return _freeswitch.CoreSession_setCallerData(*args)
@@ -121,6 +207,7 @@
def collectDigits(*args): return _freeswitch.CoreSession_collectDigits(*args)
def getDigits(*args): return _freeswitch.CoreSession_getDigits(*args)
def transfer(*args): return _freeswitch.CoreSession_transfer(*args)
+ def read(*args): return _freeswitch.CoreSession_read(*args)
def playAndGetDigits(*args): return _freeswitch.CoreSession_playAndGetDigits(*args)
def streamFile(*args): return _freeswitch.CoreSession_streamFile(*args)
def flushEvents(*args): return _freeswitch.CoreSession_flushEvents(*args)
@@ -129,6 +216,7 @@
def setHangupHook(*args): return _freeswitch.CoreSession_setHangupHook(*args)
def ready(*args): return _freeswitch.CoreSession_ready(*args)
def execute(*args): return _freeswitch.CoreSession_execute(*args)
+ def sendEvent(*args): return _freeswitch.CoreSession_sendEvent(*args)
def begin_allow_threads(*args): return _freeswitch.CoreSession_begin_allow_threads(*args)
def end_allow_threads(*args): return _freeswitch.CoreSession_end_allow_threads(*args)
def get_uuid(*args): return _freeswitch.CoreSession_get_uuid(*args)
@@ -138,6 +226,8 @@
CoreSession_swigregister = _freeswitch.CoreSession_swigregister
CoreSession_swigregister(CoreSession)
+console_log = _freeswitch.console_log
+console_clean_log = _freeswitch.console_clean_log
bridge = _freeswitch.bridge
hanguphook = _freeswitch.hanguphook
dtmf_callback = _freeswitch.dtmf_callback
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch_python.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch_python.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch_python.cpp Tue May 13 22:16:21 2008
@@ -55,13 +55,17 @@
char *resultStr;
bool did_swap_in = false;
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "check_hangup_hook called\n");
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "check_hangup_hook has been DISABLED, please do not use hangup hooks in python code until further notice!\n");
if (!session) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "No valid session\n");
return;
}
+ return;
+
+ /*! NEEDS TO BE FIXED:
+
// The did_swap_in boolean was added to fix the following problem:
// Design flaw - we swap in threadstate based on the assumption that thread state
// is currently _swapped out_ when this hangup hook is called. However, nothing known to
@@ -101,7 +105,7 @@
}
Py_XDECREF(result);
-
+ */
}
switch_status_t PySession::run_dtmf_callback(void *input,
@@ -201,7 +205,7 @@
if (pyresult && pyresult != Py_None) {
resultStr = (char *) PyString_AsString(pyresult);
- switch_status_t cbresult = process_callback_result(resultStr, &cb_state, session);
+ switch_status_t cbresult = process_callback_result(resultStr);
return cbresult;
}
else {
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch_python.h
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch_python.h (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/freeswitch_python.h Tue May 13 22:16:21 2008
@@ -21,8 +21,6 @@
void console_log(char *level_str, char *msg);
void console_clean_log(char *msg);
-char *api_execute(char *cmd, char *arg);
-void api_reply_delete(char *reply);
class PySession : public CoreSession {
private:
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python.c Tue May 13 22:16:21 2008
@@ -169,28 +169,31 @@
// swap out thread state
if (session) {
- // record the fact that thread state is swapped in
- switch_channel_t *channel = switch_core_session_get_channel(session);
- PyThreadState *swapin_tstate = (PyThreadState *) switch_channel_get_private(channel, "SwapInThreadState");
- // so lets assume nothing in the python script swapped any thread state in
- // or out .. thread state will currently be swapped in, and the SwapInThreadState
- // will be null
- if (swapin_tstate == NULL) {
- // swap it out
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Threadstate mod_python.c swap-out! \n");
- // PyEval_ReleaseThread(cur_tstate);
- swapin_tstate = (void *) PyEval_SaveThread();
- switch_channel_set_private(channel, "SwapInThreadState", (void *) swapin_tstate);
- }
- else {
- // thread state is already swapped out, so, nothing for us to do
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "according to chan priv data, already swapped out \n");
- }
- }
+ // record the fact that thread state is swapped in
+ switch_channel_t *channel = switch_core_session_get_channel(session);
+ PyThreadState *swapin_tstate = (PyThreadState *) switch_channel_get_private(channel, "SwapInThreadState");
+ // so lets assume nothing in the python script swapped any thread state in
+ // or out .. thread state will currently be swapped in, and the SwapInThreadState
+ // will be null
+ if (swapin_tstate == NULL) {
+ // clear out threadstate
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "clear threadstate \n");
+ // we know we are swapped in because swapin_tstate is NULL, and therefore we have the GIL, so
+ // it is safe to call PyThreadState_Get.
+ PyThreadState *cur_tstate = PyThreadState_Get();
+ PyThreadState_Clear(cur_tstate);
+ PyEval_ReleaseThread(cur_tstate);
+ PyThreadState_Delete(cur_tstate);
+ }
+ else {
+ // thread state is already swapped out, so, nothing for us to do
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "according to chan priv data, already swapped out \n");
+ }
+ }
else {
- // they ran python script from cmd line, behave a bit differently (untested)
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Threadstate mod_python.c swap-out! \n");
- PyEval_ReleaseThread(tstate);
+ // they ran python script from cmd line, behave a bit differently (untested)
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "No session: Threadstate mod_python.c swap-out! \n");
+ PyEval_ReleaseThread(tstate);
}
switch_safe_free(dupargs);
@@ -290,22 +293,22 @@
if (!Py_IsInitialized()) {
- // initialize python system
- Py_Initialize();
+ // initialize python system
+ Py_Initialize();
- // create GIL and a threadstate
- PyEval_InitThreads();
+ // create GIL and a threadstate
+ PyEval_InitThreads();
- // save threadstate since it's interp field will be needed
- // to create new threadstates, and will be needed for shutdown
- mainThreadState = PyThreadState_Get();
+ // save threadstate since it's interp field will be needed
+ // to create new threadstates, and will be needed for shutdown
+ mainThreadState = PyThreadState_Get();
- // swap out threadstate since the call threads will create
- // their own and swap in their threadstate
- PyThreadState_Swap(NULL);
+ // swap out threadstate since the call threads will create
+ // their own and swap in their threadstate
+ PyThreadState_Swap(NULL);
- // release GIL
- PyEval_ReleaseLock();
+ // release GIL
+ PyEval_ReleaseLock();
}
/* indicate that the module should continue to be loaded */
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python.i
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python.i (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python.i Tue May 13 22:16:21 2008
@@ -23,7 +23,7 @@
* tell swig to grok everything defined in these header files and
* build all sorts of c wrappers and python shadows of the c wrappers.
*/
-%include switch_cpp.h
+%include switch_swigable_cpp.h
%include freeswitch_python.h
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python_wrap.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python_wrap.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_python/mod_python_wrap.cpp Tue May 13 22:16:21 2008
@@ -2465,21 +2465,28 @@
/* -------- TYPES TABLE (BEGIN) -------- */
-#define SWIGTYPE_p_CoreSession swig_types[0]
-#define SWIGTYPE_p_PySession swig_types[1]
-#define SWIGTYPE_p_char swig_types[2]
-#define SWIGTYPE_p_input_callback_state swig_types[3]
-#define SWIGTYPE_p_session_flag_t swig_types[4]
-#define SWIGTYPE_p_swap_state_t swig_types[5]
-#define SWIGTYPE_p_switch_channel_state_t swig_types[6]
-#define SWIGTYPE_p_switch_channel_t swig_types[7]
-#define SWIGTYPE_p_switch_core_session_t swig_types[8]
-#define SWIGTYPE_p_switch_input_args_t swig_types[9]
-#define SWIGTYPE_p_switch_input_type_t swig_types[10]
-#define SWIGTYPE_p_switch_status_t swig_types[11]
-#define SWIGTYPE_p_void swig_types[12]
-static swig_type_info *swig_types[14];
-static swig_module_info swig_module = {swig_types, 13, 0, 0, 0, 0};
+#define SWIGTYPE_p_API swig_types[0]
+#define SWIGTYPE_p_CoreSession swig_types[1]
+#define SWIGTYPE_p_Event swig_types[2]
+#define SWIGTYPE_p_IVRMenu swig_types[3]
+#define SWIGTYPE_p_PySession swig_types[4]
+#define SWIGTYPE_p_Stream swig_types[5]
+#define SWIGTYPE_p_char swig_types[6]
+#define SWIGTYPE_p_input_callback_state swig_types[7]
+#define SWIGTYPE_p_session_flag_t swig_types[8]
+#define SWIGTYPE_p_swap_state_t swig_types[9]
+#define SWIGTYPE_p_switch_channel_state_t swig_types[10]
+#define SWIGTYPE_p_switch_channel_t swig_types[11]
+#define SWIGTYPE_p_switch_core_session_t swig_types[12]
+#define SWIGTYPE_p_switch_event_t swig_types[13]
+#define SWIGTYPE_p_switch_input_args_t swig_types[14]
+#define SWIGTYPE_p_switch_input_type_t swig_types[15]
+#define SWIGTYPE_p_switch_priority_t swig_types[16]
+#define SWIGTYPE_p_switch_status_t swig_types[17]
+#define SWIGTYPE_p_switch_stream_handle_t swig_types[18]
+#define SWIGTYPE_p_void swig_types[19]
+static swig_type_info *swig_types[21];
+static swig_module_info swig_module = {swig_types, 20, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -2641,40 +2648,6 @@
-SWIGINTERNINLINE PyObject *
-SWIG_FromCharPtrAndSize(const char* carray, size_t size)
-{
- if (carray) {
- if (size > INT_MAX) {
- swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
- return pchar_descriptor ?
- SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void();
- } else {
- return PyString_FromStringAndSize(carray, static_cast< int >(size));
- }
- } else {
- return SWIG_Py_Void();
- }
-}
-
-
-SWIGINTERNINLINE PyObject *
-SWIG_FromCharPtr(const char *cptr)
-{
- return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
-}
-
-
- #define SWIG_From_long PyInt_FromLong
-
-
-SWIGINTERNINLINE PyObject *
-SWIG_From_int (int value)
-{
- return SWIG_From_long (value);
-}
-
-
#include <limits.h>
#ifndef LLONG_MIN
# define LLONG_MIN LONG_LONG_MIN
@@ -2768,18 +2741,13 @@
SWIGINTERN int
-SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
+SWIG_AsVal_long (PyObject *obj, long* val)
{
if (PyInt_Check(obj)) {
- long v = PyInt_AsLong(obj);
- if (v >= 0) {
- if (val) *val = v;
- return SWIG_OK;
- } else {
- return SWIG_OverflowError;
- }
+ if (val) *val = PyInt_AsLong(obj);
+ return SWIG_OK;
} else if (PyLong_Check(obj)) {
- unsigned long v = PyLong_AsUnsignedLong(obj);
+ long v = PyLong_AsLong(obj);
if (!PyErr_Occurred()) {
if (val) *val = v;
return SWIG_OK;
@@ -2790,7 +2758,7 @@
#ifdef SWIG_PYTHON_CAST_MODE
{
int dispatch = 0;
- unsigned long v = PyLong_AsUnsignedLong(obj);
+ long v = PyInt_AsLong(obj);
if (!PyErr_Occurred()) {
if (val) *val = v;
return SWIG_AddCast(SWIG_OK);
@@ -2800,8 +2768,8 @@
if (!dispatch) {
double d;
int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
- if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
- if (val) *val = (unsigned long)(d);
+ if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
+ if (val) *val = (long)(d);
return res;
}
}
@@ -2812,44 +2780,75 @@
SWIGINTERN int
-SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val)
+SWIG_AsVal_int (PyObject * obj, int *val)
{
- unsigned long v;
- int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
+ long v;
+ int res = SWIG_AsVal_long (obj, &v);
if (SWIG_IsOK(res)) {
- if ((v > UINT_MAX)) {
+ if ((v < INT_MIN || v > INT_MAX)) {
return SWIG_OverflowError;
} else {
- if (val) *val = static_cast< unsigned int >(v);
+ if (val) *val = static_cast< int >(v);
}
}
return res;
}
-SWIGINTERNINLINE PyObject*
-SWIG_From_unsigned_SS_long (unsigned long value)
+SWIGINTERNINLINE PyObject *
+SWIG_FromCharPtrAndSize(const char* carray, size_t size)
{
- return (value > LONG_MAX) ?
- PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value));
+ if (carray) {
+ if (size > INT_MAX) {
+ swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
+ return pchar_descriptor ?
+ SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void();
+ } else {
+ return PyString_FromStringAndSize(carray, static_cast< int >(size));
+ }
+ } else {
+ return SWIG_Py_Void();
+ }
}
+SWIGINTERNINLINE PyObject *
+SWIG_FromCharPtr(const char *cptr)
+{
+ return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
+}
+
+
+ #define SWIG_From_long PyInt_FromLong
+
+
SWIGINTERNINLINE PyObject *
-SWIG_From_unsigned_SS_int (unsigned int value)
+SWIG_From_int (int value)
{
- return SWIG_From_unsigned_SS_long (value);
+ return SWIG_From_long (value);
+}
+
+
+SWIGINTERNINLINE PyObject*
+ SWIG_From_bool (bool value)
+{
+ return PyBool_FromLong(value ? 1 : 0);
}
SWIGINTERN int
-SWIG_AsVal_long (PyObject *obj, long* val)
+SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
{
if (PyInt_Check(obj)) {
- if (val) *val = PyInt_AsLong(obj);
- return SWIG_OK;
+ long v = PyInt_AsLong(obj);
+ if (v >= 0) {
+ if (val) *val = v;
+ return SWIG_OK;
+ } else {
+ return SWIG_OverflowError;
+ }
} else if (PyLong_Check(obj)) {
- long v = PyLong_AsLong(obj);
+ unsigned long v = PyLong_AsUnsignedLong(obj);
if (!PyErr_Occurred()) {
if (val) *val = v;
return SWIG_OK;
@@ -2860,7 +2859,7 @@
#ifdef SWIG_PYTHON_CAST_MODE
{
int dispatch = 0;
- long v = PyInt_AsLong(obj);
+ unsigned long v = PyLong_AsUnsignedLong(obj);
if (!PyErr_Occurred()) {
if (val) *val = v;
return SWIG_AddCast(SWIG_OK);
@@ -2870,8 +2869,8 @@
if (!dispatch) {
double d;
int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
- if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
- if (val) *val = (long)(d);
+ if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
+ if (val) *val = (unsigned long)(d);
return res;
}
}
@@ -2882,21 +2881,36 @@
SWIGINTERN int
-SWIG_AsVal_int (PyObject * obj, int *val)
+SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val)
{
- long v;
- int res = SWIG_AsVal_long (obj, &v);
+ unsigned long v;
+ int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
if (SWIG_IsOK(res)) {
- if ((v < INT_MIN || v > INT_MAX)) {
+ if ((v > UINT_MAX)) {
return SWIG_OverflowError;
} else {
- if (val) *val = static_cast< int >(v);
+ if (val) *val = static_cast< unsigned int >(v);
}
}
return res;
}
+SWIGINTERNINLINE PyObject*
+SWIG_From_unsigned_SS_long (unsigned long value)
+{
+ return (value > LONG_MAX) ?
+ PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value));
+}
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_unsigned_SS_int (unsigned int value)
+{
+ return SWIG_From_unsigned_SS_long (value);
+}
+
+
SWIGINTERN int
SWIG_AsVal_bool (PyObject *obj, bool *val)
{
@@ -2914,17 +2928,10 @@
}
}
-
-SWIGINTERNINLINE PyObject*
- SWIG_From_bool (bool value)
-{
- return PyBool_FromLong(value ? 1 : 0);
-}
-
#ifdef __cplusplus
extern "C" {
#endif
-SWIGINTERN PyObject *_wrap_console_log(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_consoleLog(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
char *arg1 = (char *) 0 ;
char *arg2 = (char *) 0 ;
@@ -2937,18 +2944,18 @@
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO:console_log",&obj0,&obj1)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OO:consoleLog",&obj0,&obj1)) SWIG_fail;
res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "console_log" "', argument " "1"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "consoleLog" "', argument " "1"" of type '" "char *""'");
}
arg1 = reinterpret_cast< char * >(buf1);
res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "console_log" "', argument " "2"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "consoleLog" "', argument " "2"" of type '" "char *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- console_log(arg1,arg2);
+ consoleLog(arg1,arg2);
resultobj = SWIG_Py_Void();
if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
@@ -2960,7 +2967,7 @@
}
-SWIGINTERN PyObject *_wrap_console_clean_log(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_consoleCleanLog(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
char *arg1 = (char *) 0 ;
int res1 ;
@@ -2968,13 +2975,13 @@
int alloc1 = 0 ;
PyObject * obj0 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"O:console_clean_log",&obj0)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"O:consoleCleanLog",&obj0)) SWIG_fail;
res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "console_clean_log" "', argument " "1"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "consoleCleanLog" "', argument " "1"" of type '" "char *""'");
}
arg1 = reinterpret_cast< char * >(buf1);
- console_clean_log(arg1);
+ consoleCleanLog(arg1);
resultobj = SWIG_Py_Void();
if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
return resultobj;
@@ -2984,110 +2991,407 @@
}
-SWIGINTERN PyObject *_wrap_api_execute(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_IVRMenu(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- char *arg1 = (char *) 0 ;
+ IVRMenu *arg1 = (IVRMenu *) 0 ;
char *arg2 = (char *) 0 ;
- char *result = 0 ;
- int res1 ;
- char *buf1 = 0 ;
- int alloc1 = 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+ char *arg5 = (char *) 0 ;
+ char *arg6 = (char *) 0 ;
+ char *arg7 = (char *) 0 ;
+ char *arg8 = (char *) 0 ;
+ int arg9 ;
+ int arg10 ;
+ int arg11 ;
+ int arg12 ;
+ int arg13 ;
+ IVRMenu *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ int res4 ;
+ char *buf4 = 0 ;
+ int alloc4 = 0 ;
+ int res5 ;
+ char *buf5 = 0 ;
+ int alloc5 = 0 ;
+ int res6 ;
+ char *buf6 = 0 ;
+ int alloc6 = 0 ;
+ int res7 ;
+ char *buf7 = 0 ;
+ int alloc7 = 0 ;
+ int res8 ;
+ char *buf8 = 0 ;
+ int alloc8 = 0 ;
+ int val9 ;
+ int ecode9 = 0 ;
+ int val10 ;
+ int ecode10 = 0 ;
+ int val11 ;
+ int ecode11 = 0 ;
+ int val12 ;
+ int ecode12 = 0 ;
+ int val13 ;
+ int ecode13 = 0 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+ PyObject * obj10 = 0 ;
+ PyObject * obj11 = 0 ;
+ PyObject * obj12 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO:api_execute",&obj0,&obj1)) SWIG_fail;
- res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOOOO:new_IVRMenu",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10,&obj11,&obj12)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IVRMenu, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "api_execute" "', argument " "1"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IVRMenu" "', argument " "1"" of type '" "IVRMenu *""'");
}
- arg1 = reinterpret_cast< char * >(buf1);
+ arg1 = reinterpret_cast< IVRMenu * >(argp1);
res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "api_execute" "', argument " "2"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_IVRMenu" "', argument " "2"" of type '" "char const *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- result = (char *)api_execute(arg1,arg2);
- resultobj = SWIG_FromCharPtr((const char *)result);
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_IVRMenu" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_IVRMenu" "', argument " "4"" of type '" "char const *""'");
+ }
+ arg4 = reinterpret_cast< char * >(buf4);
+ res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+ if (!SWIG_IsOK(res5)) {
+ SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_IVRMenu" "', argument " "5"" of type '" "char const *""'");
+ }
+ arg5 = reinterpret_cast< char * >(buf5);
+ res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "new_IVRMenu" "', argument " "6"" of type '" "char const *""'");
+ }
+ arg6 = reinterpret_cast< char * >(buf6);
+ res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+ if (!SWIG_IsOK(res7)) {
+ SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "new_IVRMenu" "', argument " "7"" of type '" "char const *""'");
+ }
+ arg7 = reinterpret_cast< char * >(buf7);
+ res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+ if (!SWIG_IsOK(res8)) {
+ SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "new_IVRMenu" "', argument " "8"" of type '" "char const *""'");
+ }
+ arg8 = reinterpret_cast< char * >(buf8);
+ ecode9 = SWIG_AsVal_int(obj8, &val9);
+ if (!SWIG_IsOK(ecode9)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "new_IVRMenu" "', argument " "9"" of type '" "int""'");
+ }
+ arg9 = static_cast< int >(val9);
+ ecode10 = SWIG_AsVal_int(obj9, &val10);
+ if (!SWIG_IsOK(ecode10)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "new_IVRMenu" "', argument " "10"" of type '" "int""'");
+ }
+ arg10 = static_cast< int >(val10);
+ ecode11 = SWIG_AsVal_int(obj10, &val11);
+ if (!SWIG_IsOK(ecode11)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "new_IVRMenu" "', argument " "11"" of type '" "int""'");
+ }
+ arg11 = static_cast< int >(val11);
+ ecode12 = SWIG_AsVal_int(obj11, &val12);
+ if (!SWIG_IsOK(ecode12)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode12), "in method '" "new_IVRMenu" "', argument " "12"" of type '" "int""'");
+ }
+ arg12 = static_cast< int >(val12);
+ ecode13 = SWIG_AsVal_int(obj12, &val13);
+ if (!SWIG_IsOK(ecode13)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode13), "in method '" "new_IVRMenu" "', argument " "13"" of type '" "int""'");
+ }
+ arg13 = static_cast< int >(val13);
+ result = (IVRMenu *)new IVRMenu(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6,(char const *)arg7,(char const *)arg8,arg9,arg10,arg11,arg12,arg13);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IVRMenu, SWIG_POINTER_NEW | 0 );
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+ if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+ if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+ if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+ if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
return resultobj;
fail:
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+ if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+ if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+ if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+ if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
return NULL;
}
-SWIGINTERN PyObject *_wrap_api_reply_delete(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_IVRMenu(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- char *arg1 = (char *) 0 ;
- int res1 ;
- char *buf1 = 0 ;
- int alloc1 = 0 ;
+ IVRMenu *arg1 = (IVRMenu *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
PyObject * obj0 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"O:api_reply_delete",&obj0)) SWIG_fail;
- res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_IVRMenu",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IVRMenu, SWIG_POINTER_DISOWN | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "api_reply_delete" "', argument " "1"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IVRMenu" "', argument " "1"" of type '" "IVRMenu *""'");
}
- arg1 = reinterpret_cast< char * >(buf1);
- api_reply_delete(arg1);
+ arg1 = reinterpret_cast< IVRMenu * >(argp1);
+ delete arg1;
+
resultobj = SWIG_Py_Void();
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
return resultobj;
fail:
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
return NULL;
}
-SWIGINTERN PyObject *_wrap_process_callback_result(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_IVRMenu_bindAction(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- char *arg1 = (char *) 0 ;
- input_callback_state *arg2 = (input_callback_state *) 0 ;
- switch_core_session_t *arg3 = (switch_core_session_t *) 0 ;
- switch_status_t result;
- int res1 ;
- char *buf1 = 0 ;
- int alloc1 = 0 ;
+ IVRMenu *arg1 = (IVRMenu *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ int res4 ;
+ char *buf4 = 0 ;
+ int alloc4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:IVRMenu_bindAction",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IVRMenu, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IVRMenu_bindAction" "', argument " "1"" of type '" "IVRMenu *""'");
+ }
+ arg1 = reinterpret_cast< IVRMenu * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IVRMenu_bindAction" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IVRMenu_bindAction" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IVRMenu_bindAction" "', argument " "4"" of type '" "char const *""'");
+ }
+ arg4 = reinterpret_cast< char * >(buf4);
+ (arg1)->bindAction(arg2,(char const *)arg3,(char const *)arg4);
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_IVRMenu_execute(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IVRMenu *arg1 = (IVRMenu *) 0 ;
+ CoreSession *arg2 = (CoreSession *) 0 ;
+ char *arg3 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
void *argp2 = 0 ;
int res2 = 0 ;
- void *argp3 = 0 ;
- int res3 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
PyObject * obj2 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OOO:process_callback_result",&obj0,&obj1,&obj2)) SWIG_fail;
- res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!PyArg_ParseTuple(args,(char *)"OOO:IVRMenu_execute",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IVRMenu, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "process_callback_result" "', argument " "1"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IVRMenu_execute" "', argument " "1"" of type '" "IVRMenu *""'");
}
- arg1 = reinterpret_cast< char * >(buf1);
- res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_input_callback_state, 0 | 0 );
+ arg1 = reinterpret_cast< IVRMenu * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "process_callback_result" "', argument " "2"" of type '" "input_callback_state *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IVRMenu_execute" "', argument " "2"" of type '" "CoreSession *""'");
}
- arg2 = reinterpret_cast< input_callback_state * >(argp2);
- res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_switch_core_session_t, 0 | 0 );
+ arg2 = reinterpret_cast< CoreSession * >(argp2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "process_callback_result" "', argument " "3"" of type '" "switch_core_session_t *""'");
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IVRMenu_execute" "', argument " "3"" of type '" "char const *""'");
}
- arg3 = reinterpret_cast< switch_core_session_t * >(argp3);
- result = process_callback_result(arg1,arg2,arg3);
- resultobj = SWIG_NewPointerObj((new switch_status_t(static_cast< const switch_status_t& >(result))), SWIGTYPE_p_switch_status_t, SWIG_POINTER_OWN | 0 );
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ arg3 = reinterpret_cast< char * >(buf3);
+ (arg1)->execute(arg2,(char const *)arg3);
+ resultobj = SWIG_Py_Void();
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
return resultobj;
fail:
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *IVRMenu_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_IVRMenu, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_API(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ API *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_API")) SWIG_fail;
+ result = (API *)new API();
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_API, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_API(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ API *arg1 = (API *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_API",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_API, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_API" "', argument " "1"" of type '" "API *""'");
+ }
+ arg1 = reinterpret_cast< API * >(argp1);
+ delete arg1;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_API_execute(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ API *arg1 = (API *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:API_execute",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_API, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "API_execute" "', argument " "1"" of type '" "API *""'");
+ }
+ arg1 = reinterpret_cast< API * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "API_execute" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "API_execute" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ result = (char *)(arg1)->execute((char const *)arg2,(char const *)arg3);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_API_executeString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ API *arg1 = (API *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:API_executeString",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_API, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "API_executeString" "', argument " "1"" of type '" "API *""'");
+ }
+ arg1 = reinterpret_cast< API * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "API_executeString" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (char *)(arg1)->executeString((char const *)arg2);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
return NULL;
}
+SWIGINTERN PyObject *API_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_API, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
SWIGINTERN PyObject *_wrap_input_callback_state_t_function_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
input_callback_state_t *arg1 = (input_callback_state_t *) 0 ;
@@ -3344,101 +3648,1030 @@
return SWIG_Py_Void();
}
-SWIGINTERN PyObject *_wrap_delete_CoreSession(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_Stream__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- CoreSession *arg1 = (CoreSession *) 0 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
- PyObject * obj0 = 0 ;
-
- if (!PyArg_ParseTuple(args,(char *)"O:delete_CoreSession",&obj0)) SWIG_fail;
- res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, SWIG_POINTER_DISOWN | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_CoreSession" "', argument " "1"" of type '" "CoreSession *""'");
- }
- arg1 = reinterpret_cast< CoreSession * >(argp1);
- delete arg1;
+ Stream *result = 0 ;
- resultobj = SWIG_Py_Void();
+ if (!PyArg_ParseTuple(args,(char *)":new_Stream")) SWIG_fail;
+ result = (Stream *)new Stream();
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Stream, SWIG_POINTER_NEW | 0 );
return resultobj;
fail:
return NULL;
}
-SWIGINTERN PyObject *_wrap_CoreSession_session_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_Stream__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- CoreSession *arg1 = (CoreSession *) 0 ;
- switch_core_session_t *arg2 = (switch_core_session_t *) 0 ;
+ switch_stream_handle_t *arg1 = (switch_stream_handle_t *) 0 ;
+ Stream *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
- void *argp2 = 0 ;
- int res2 = 0 ;
PyObject * obj0 = 0 ;
- PyObject * obj1 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_session_set",&obj0,&obj1)) SWIG_fail;
- res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Stream",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_switch_stream_handle_t, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_session_set" "', argument " "1"" of type '" "CoreSession *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Stream" "', argument " "1"" of type '" "switch_stream_handle_t *""'");
}
- arg1 = reinterpret_cast< CoreSession * >(argp1);
- res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_DISOWN | 0 );
- if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_session_set" "', argument " "2"" of type '" "switch_core_session_t *""'");
+ arg1 = reinterpret_cast< switch_stream_handle_t * >(argp1);
+ result = (Stream *)new Stream(arg1);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Stream, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Stream(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Stream__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_switch_stream_handle_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Stream__SWIG_1(self, args);
+ }
}
- arg2 = reinterpret_cast< switch_core_session_t * >(argp2);
- if (arg1) (arg1)->session = arg2;
- resultobj = SWIG_Py_Void();
- return resultobj;
fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Stream'.\n Possible C/C++ prototypes are:\n Stream()\n Stream(switch_stream_handle_t *)\n");
return NULL;
}
-SWIGINTERN PyObject *_wrap_CoreSession_session_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_Stream(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- CoreSession *arg1 = (CoreSession *) 0 ;
- switch_core_session_t *result = 0 ;
+ Stream *arg1 = (Stream *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
PyObject * obj0 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"O:CoreSession_session_get",&obj0)) SWIG_fail;
- res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Stream",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stream, SWIG_POINTER_DISOWN | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_session_get" "', argument " "1"" of type '" "CoreSession *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Stream" "', argument " "1"" of type '" "Stream *""'");
}
- arg1 = reinterpret_cast< CoreSession * >(argp1);
- result = (switch_core_session_t *) ((arg1)->session);
- resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_switch_core_session_t, 0 | 0 );
+ arg1 = reinterpret_cast< Stream * >(argp1);
+ delete arg1;
+
+ resultobj = SWIG_Py_Void();
return resultobj;
fail:
return NULL;
}
-SWIGINTERN PyObject *_wrap_CoreSession_channel_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_Stream_write(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- CoreSession *arg1 = (CoreSession *) 0 ;
- switch_channel_t *arg2 = (switch_channel_t *) 0 ;
+ Stream *arg1 = (Stream *) 0 ;
+ char *arg2 = (char *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
- void *argp2 = 0 ;
- int res2 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_channel_set",&obj0,&obj1)) SWIG_fail;
- res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stream_write",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stream, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_channel_set" "', argument " "1"" of type '" "CoreSession *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stream_write" "', argument " "1"" of type '" "Stream *""'");
}
- arg1 = reinterpret_cast< CoreSession * >(argp1);
- res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_switch_channel_t, SWIG_POINTER_DISOWN | 0 );
+ arg1 = reinterpret_cast< Stream * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_channel_set" "', argument " "2"" of type '" "switch_channel_t *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stream_write" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ (arg1)->write((char const *)arg2);
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stream_get_data(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stream *arg1 = (Stream *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stream_get_data",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stream, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stream_get_data" "', argument " "1"" of type '" "Stream *""'");
+ }
+ arg1 = reinterpret_cast< Stream * >(argp1);
+ result = (char *)(arg1)->get_data();
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Stream_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Stream, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_Event_event_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ switch_event_t *arg2 = (switch_event_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Event_event_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_event_set" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_switch_event_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Event_event_set" "', argument " "2"" of type '" "switch_event_t *""'");
+ }
+ arg2 = reinterpret_cast< switch_event_t * >(argp2);
+ if (arg1) (arg1)->event = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_event_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ switch_event_t *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Event_event_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_event_get" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ result = (switch_event_t *) ((arg1)->event);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_switch_event_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_serialized_string_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Event_serialized_string_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_serialized_string_set" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Event_serialized_string_set" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ if (arg1->serialized_string) delete[] arg1->serialized_string;
+ if (arg2) {
+ size_t size = strlen(reinterpret_cast< const char * >(arg2)) + 1;
+ arg1->serialized_string = (char *)reinterpret_cast< char* >(memcpy((new char[size]), reinterpret_cast< const char * >(arg2), sizeof(char)*(size)));
+ } else {
+ arg1->serialized_string = 0;
+ }
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_serialized_string_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Event_serialized_string_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_serialized_string_get" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ result = (char *) ((arg1)->serialized_string);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_mine_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Event_mine_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_mine_set" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Event_mine_set" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ if (arg1) (arg1)->mine = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_mine_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Event_mine_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_mine_get" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ result = (int) ((arg1)->mine);
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Event__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ char *arg2 = (char *) 0 ;
+ Event *result = 0 ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Event",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Event" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = reinterpret_cast< char * >(buf1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Event" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (Event *)new Event((char const *)arg1,(char const *)arg2);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Event, SWIG_POINTER_NEW | 0 );
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Event__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ Event *result = 0 ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Event",&obj0)) SWIG_fail;
+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Event" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = reinterpret_cast< char * >(buf1);
+ result = (Event *)new Event((char const *)arg1);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Event, SWIG_POINTER_NEW | 0 );
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ return resultobj;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Event__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ switch_event_t *arg1 = (switch_event_t *) 0 ;
+ int arg2 ;
+ Event *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Event",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_switch_event_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Event" "', argument " "1"" of type '" "switch_event_t *""'");
+ }
+ arg1 = reinterpret_cast< switch_event_t * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Event" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ result = (Event *)new Event(arg1,arg2);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Event, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Event__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ switch_event_t *arg1 = (switch_event_t *) 0 ;
+ Event *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Event",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_switch_event_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Event" "', argument " "1"" of type '" "switch_event_t *""'");
+ }
+ arg1 = reinterpret_cast< switch_event_t * >(argp1);
+ result = (Event *)new Event(arg1);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Event, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Event(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_switch_event_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Event__SWIG_3(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Event__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_switch_event_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Event__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Event__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Event'.\n Possible C/C++ prototypes are:\n Event(char const *,char const *)\n Event(char const *)\n Event(switch_event_t *,int)\n Event(switch_event_t *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Event(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Event",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Event" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ delete arg1;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_serialize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Event_serialize",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_serialize" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Event_serialize" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (char *)(arg1)->serialize((char const *)arg2);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_serialize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Event_serialize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_serialize" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ result = (char *)(arg1)->serialize();
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_serialize(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Event, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Event_serialize__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Event, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Event_serialize__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Event_serialize'.\n Possible C/C++ prototypes are:\n serialize(char const *)\n serialize()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_setPriority__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ switch_priority_t arg2 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Event_setPriority",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_setPriority" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_switch_priority_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Event_setPriority" "', argument " "2"" of type '" "switch_priority_t""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Event_setPriority" "', argument " "2"" of type '" "switch_priority_t""'");
+ } else {
+ switch_priority_t * temp = reinterpret_cast< switch_priority_t * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ result = (bool)(arg1)->setPriority(arg2);
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_setPriority__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Event_setPriority",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_setPriority" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ result = (bool)(arg1)->setPriority();
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_setPriority(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Event, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Event_setPriority__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Event, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_switch_priority_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Event_setPriority__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Event_setPriority'.\n Possible C/C++ prototypes are:\n setPriority(switch_priority_t)\n setPriority()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_getHeader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Event_getHeader",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_getHeader" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Event_getHeader" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (char *)(arg1)->getHeader(arg2);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_getBody(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Event_getBody",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_getBody" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ result = (char *)(arg1)->getBody();
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_getType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Event_getType",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_getType" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ result = (char *)(arg1)->getType();
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_addBody(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Event_addBody",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_addBody" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Event_addBody" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (bool)(arg1)->addBody((char const *)arg2);
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_addHeader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Event_addHeader",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_addHeader" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Event_addHeader" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Event_addHeader" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ result = (bool)(arg1)->addHeader((char const *)arg2,(char const *)arg3);
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_delHeader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Event_delHeader",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_delHeader" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Event_delHeader" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (bool)(arg1)->delHeader((char const *)arg2);
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Event_fire(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Event *arg1 = (Event *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Event_fire",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Event_fire" "', argument " "1"" of type '" "Event *""'");
+ }
+ arg1 = reinterpret_cast< Event * >(argp1);
+ result = (bool)(arg1)->fire();
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Event_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Event, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_delete_CoreSession(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_CoreSession",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_CoreSession" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ delete arg1;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_session_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ switch_core_session_t *arg2 = (switch_core_session_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_session_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_session_set" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_session_set" "', argument " "2"" of type '" "switch_core_session_t *""'");
+ }
+ arg2 = reinterpret_cast< switch_core_session_t * >(argp2);
+ if (arg1) (arg1)->session = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_session_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ switch_core_session_t *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CoreSession_session_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_session_get" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ result = (switch_core_session_t *) ((arg1)->session);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_switch_core_session_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_channel_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ switch_channel_t *arg2 = (switch_channel_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_channel_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_channel_set" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_switch_channel_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_channel_set" "', argument " "2"" of type '" "switch_channel_t *""'");
}
arg2 = reinterpret_cast< switch_channel_t * >(argp2);
if (arg1) (arg1)->channel = arg2;
@@ -3450,51 +4683,104 @@
}
-SWIGINTERN PyObject *_wrap_CoreSession_channel_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_CoreSession_channel_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ switch_channel_t *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CoreSession_channel_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_channel_get" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ result = (switch_channel_t *) ((arg1)->channel);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_switch_channel_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_flags_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_flags_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_flags_set" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CoreSession_flags_set" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ if (arg1) (arg1)->flags = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_flags_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
- switch_channel_t *result = 0 ;
+ unsigned int result;
void *argp1 = 0 ;
int res1 = 0 ;
PyObject * obj0 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"O:CoreSession_channel_get",&obj0)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"O:CoreSession_flags_get",&obj0)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_channel_get" "', argument " "1"" of type '" "CoreSession *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_flags_get" "', argument " "1"" of type '" "CoreSession *""'");
}
arg1 = reinterpret_cast< CoreSession * >(argp1);
- result = (switch_channel_t *) ((arg1)->channel);
- resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_switch_channel_t, 0 | 0 );
+ result = (unsigned int) ((arg1)->flags);
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
return resultobj;
fail:
return NULL;
}
-SWIGINTERN PyObject *_wrap_CoreSession_flags_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_CoreSession_allocated_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
- unsigned int arg2 ;
+ int arg2 ;
void *argp1 = 0 ;
int res1 = 0 ;
- unsigned int val2 ;
+ int val2 ;
int ecode2 = 0 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_flags_set",&obj0,&obj1)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_allocated_set",&obj0,&obj1)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_flags_set" "', argument " "1"" of type '" "CoreSession *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_allocated_set" "', argument " "1"" of type '" "CoreSession *""'");
}
arg1 = reinterpret_cast< CoreSession * >(argp1);
- ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
if (!SWIG_IsOK(ecode2)) {
- SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CoreSession_flags_set" "', argument " "2"" of type '" "unsigned int""'");
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CoreSession_allocated_set" "', argument " "2"" of type '" "int""'");
}
- arg2 = static_cast< unsigned int >(val2);
- if (arg1) (arg1)->flags = arg2;
+ arg2 = static_cast< int >(val2);
+ if (arg1) (arg1)->allocated = arg2;
resultobj = SWIG_Py_Void();
return resultobj;
@@ -3503,22 +4789,22 @@
}
-SWIGINTERN PyObject *_wrap_CoreSession_flags_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_CoreSession_allocated_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
- unsigned int result;
+ int result;
void *argp1 = 0 ;
int res1 = 0 ;
PyObject * obj0 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"O:CoreSession_flags_get",&obj0)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"O:CoreSession_allocated_get",&obj0)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_flags_get" "', argument " "1"" of type '" "CoreSession *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_allocated_get" "', argument " "1"" of type '" "CoreSession *""'");
}
arg1 = reinterpret_cast< CoreSession * >(argp1);
- result = (unsigned int) ((arg1)->flags);
- resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ result = (int) ((arg1)->allocated);
+ resultobj = SWIG_From_int(static_cast< int >(result));
return resultobj;
fail:
return NULL;
@@ -3674,40 +4960,314 @@
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_preAnswer" "', argument " "1"" of type '" "CoreSession *""'");
}
- arg1 = reinterpret_cast< CoreSession * >(argp1);
- result = (int)(arg1)->preAnswer();
- resultobj = SWIG_From_int(static_cast< int >(result));
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ result = (int)(arg1)->preAnswer();
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_hangup__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_hangup",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_hangup" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_hangup" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ (arg1)->hangup(arg2);
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_hangup__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CoreSession_hangup",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_hangup" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ (arg1)->hangup();
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_hangup(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_CoreSession_hangup__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_CoreSession_hangup__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_hangup'.\n Possible C/C++ prototypes are:\n hangup(char *)\n hangup()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_setVariable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:CoreSession_setVariable",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_setVariable" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_setVariable" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "CoreSession_setVariable" "', argument " "3"" of type '" "char *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ (arg1)->setVariable(arg2,arg3);
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_setPrivate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *arg3 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:CoreSession_setPrivate",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_setPrivate" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_setPrivate" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3), 0, 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "CoreSession_setPrivate" "', argument " "3"" of type '" "void *""'");
+ }
+ (arg1)->setPrivate(arg2,arg3);
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_getPrivate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_getPrivate",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_getPrivate" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_getPrivate" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (void *)(arg1)->getPrivate(arg2);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_getVariable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_getVariable",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_getVariable" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_getVariable" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (char *)(arg1)->getVariable(arg2);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
return resultobj;
fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
return NULL;
}
-SWIGINTERN PyObject *_wrap_CoreSession_hangup(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_CoreSession_recordFile__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
char *arg2 = (char *) 0 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int result;
void *argp1 = 0 ;
int res1 = 0 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_hangup",&obj0,&obj1)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:CoreSession_recordFile",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_hangup" "', argument " "1"" of type '" "CoreSession *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_recordFile" "', argument " "1"" of type '" "CoreSession *""'");
}
arg1 = reinterpret_cast< CoreSession * >(argp1);
res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_hangup" "', argument " "2"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_recordFile" "', argument " "2"" of type '" "char *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- (arg1)->hangup(arg2);
- resultobj = SWIG_Py_Void();
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "CoreSession_recordFile" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "CoreSession_recordFile" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "CoreSession_recordFile" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ result = (int)(arg1)->recordFile(arg2,arg3,arg4,arg5);
+ resultobj = SWIG_From_int(static_cast< int >(result));
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
return resultobj;
fail:
@@ -3716,77 +5276,93 @@
}
-SWIGINTERN PyObject *_wrap_CoreSession_setVariable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_CoreSession_recordFile__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ int arg3 ;
+ int arg4 ;
+ int result;
void *argp1 = 0 ;
int res1 = 0 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- int res3 ;
- char *buf3 = 0 ;
- int alloc3 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OOO:CoreSession_setVariable",&obj0,&obj1,&obj2)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:CoreSession_recordFile",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_setVariable" "', argument " "1"" of type '" "CoreSession *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_recordFile" "', argument " "1"" of type '" "CoreSession *""'");
}
arg1 = reinterpret_cast< CoreSession * >(argp1);
res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_setVariable" "', argument " "2"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_recordFile" "', argument " "2"" of type '" "char *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "CoreSession_setVariable" "', argument " "3"" of type '" "char *""'");
- }
- arg3 = reinterpret_cast< char * >(buf3);
- (arg1)->setVariable(arg2,arg3);
- resultobj = SWIG_Py_Void();
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "CoreSession_recordFile" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "CoreSession_recordFile" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ result = (int)(arg1)->recordFile(arg2,arg3,arg4);
+ resultobj = SWIG_From_int(static_cast< int >(result));
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
- if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
return resultobj;
fail:
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
- if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
return NULL;
}
-SWIGINTERN PyObject *_wrap_CoreSession_getVariable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_CoreSession_recordFile__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
char *arg2 = (char *) 0 ;
- char *result = 0 ;
+ int arg3 ;
+ int result;
void *argp1 = 0 ;
int res1 = 0 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_getVariable",&obj0,&obj1)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OOO:CoreSession_recordFile",&obj0,&obj1,&obj2)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_getVariable" "', argument " "1"" of type '" "CoreSession *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_recordFile" "', argument " "1"" of type '" "CoreSession *""'");
}
arg1 = reinterpret_cast< CoreSession * >(argp1);
res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_getVariable" "', argument " "2"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_recordFile" "', argument " "2"" of type '" "char *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- result = (char *)(arg1)->getVariable(arg2);
- resultobj = SWIG_FromCharPtr((const char *)result);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "CoreSession_recordFile" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ result = (int)(arg1)->recordFile(arg2,arg3);
+ resultobj = SWIG_From_int(static_cast< int >(result));
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
return resultobj;
fail:
@@ -3795,32 +5371,20 @@
}
-SWIGINTERN PyObject *_wrap_CoreSession_recordFile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_CoreSession_recordFile__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
char *arg2 = (char *) 0 ;
- int arg3 = (int) 0 ;
- int arg4 = (int) 0 ;
- int arg5 = (int) 0 ;
int result;
void *argp1 = 0 ;
int res1 = 0 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- int val3 ;
- int ecode3 = 0 ;
- int val4 ;
- int ecode4 = 0 ;
- int val5 ;
- int ecode5 = 0 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
- PyObject * obj2 = 0 ;
- PyObject * obj3 = 0 ;
- PyObject * obj4 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO|OOO:CoreSession_recordFile",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_recordFile",&obj0,&obj1)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_recordFile" "', argument " "1"" of type '" "CoreSession *""'");
@@ -3831,28 +5395,7 @@
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_recordFile" "', argument " "2"" of type '" "char *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- if (obj2) {
- ecode3 = SWIG_AsVal_int(obj2, &val3);
- if (!SWIG_IsOK(ecode3)) {
- SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "CoreSession_recordFile" "', argument " "3"" of type '" "int""'");
- }
- arg3 = static_cast< int >(val3);
- }
- if (obj3) {
- ecode4 = SWIG_AsVal_int(obj3, &val4);
- if (!SWIG_IsOK(ecode4)) {
- SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "CoreSession_recordFile" "', argument " "4"" of type '" "int""'");
- }
- arg4 = static_cast< int >(val4);
- }
- if (obj4) {
- ecode5 = SWIG_AsVal_int(obj4, &val5);
- if (!SWIG_IsOK(ecode5)) {
- SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "CoreSession_recordFile" "', argument " "5"" of type '" "int""'");
- }
- arg5 = static_cast< int >(val5);
- }
- result = (int)(arg1)->recordFile(arg2,arg3,arg4,arg5);
+ result = (int)(arg1)->recordFile(arg2);
resultobj = SWIG_From_int(static_cast< int >(result));
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
return resultobj;
@@ -3862,6 +5405,111 @@
}
+SWIGINTERN PyObject *_wrap_CoreSession_recordFile(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[6];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_CoreSession_recordFile__SWIG_3(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_CoreSession_recordFile__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_CoreSession_recordFile__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_CoreSession_recordFile__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_recordFile'.\n Possible C/C++ prototypes are:\n recordFile(char *,int,int,int)\n recordFile(char *,int,int)\n recordFile(char *,int)\n recordFile(char *)\n");
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_CoreSession_setCallerData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -3907,12 +5555,12 @@
}
-SWIGINTERN PyObject *_wrap_CoreSession_originate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_CoreSession_originate__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
CoreSession *arg2 = (CoreSession *) 0 ;
char *arg3 = (char *) 0 ;
- int arg4 = (int) 60 ;
+ int arg4 ;
int result;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -3928,7 +5576,7 @@
PyObject * obj2 = 0 ;
PyObject * obj3 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OOO|O:CoreSession_originate",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:CoreSession_originate",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_originate" "', argument " "1"" of type '" "CoreSession *""'");
@@ -3944,13 +5592,11 @@
SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "CoreSession_originate" "', argument " "3"" of type '" "char *""'");
}
arg3 = reinterpret_cast< char * >(buf3);
- if (obj3) {
- ecode4 = SWIG_AsVal_int(obj3, &val4);
- if (!SWIG_IsOK(ecode4)) {
- SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "CoreSession_originate" "', argument " "4"" of type '" "int""'");
- }
- arg4 = static_cast< int >(val4);
- }
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "CoreSession_originate" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
result = (int)(arg1)->originate(arg2,arg3,arg4);
resultobj = SWIG_From_int(static_cast< int >(result));
if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
@@ -3961,6 +5607,108 @@
}
+SWIGINTERN PyObject *_wrap_CoreSession_originate__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ CoreSession *arg2 = (CoreSession *) 0 ;
+ char *arg3 = (char *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:CoreSession_originate",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_originate" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_originate" "', argument " "2"" of type '" "CoreSession *""'");
+ }
+ arg2 = reinterpret_cast< CoreSession * >(argp2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "CoreSession_originate" "', argument " "3"" of type '" "char *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ result = (int)(arg1)->originate(arg2,arg3);
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return resultobj;
+fail:
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_originate(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_CoreSession_originate__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_CoreSession_originate__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_originate'.\n Possible C/C++ prototypes are:\n originate(CoreSession *,char *,int)\n originate(CoreSession *,char *)\n");
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_CoreSession_setDTMFCallback(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -4114,96 +5862,51 @@
SWIGINTERN PyObject *_wrap_CoreSession_getDigits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
- char *arg2 = (char *) 0 ;
- int arg3 ;
+ int arg2 ;
+ char *arg3 = (char *) 0 ;
int arg4 ;
- char *arg5 = (char *) 0 ;
- char *arg6 = (char *) 0 ;
- int arg7 ;
- int result;
+ char *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
- int res2 ;
- char temp2[128+1] ;
- char *t2 = 0 ;
- size_t n2 = 0 ;
- int alloc2 = 0 ;
- int val3 ;
- int ecode3 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
int val4 ;
int ecode4 = 0 ;
- int res5 ;
- char *buf5 = 0 ;
- int alloc5 = 0 ;
- int res6 ;
- char temp6[8+1] ;
- char *t6 = 0 ;
- size_t n6 = 0 ;
- int alloc6 = 0 ;
- int val7 ;
- int ecode7 = 0 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
PyObject * obj2 = 0 ;
PyObject * obj3 = 0 ;
- PyObject * obj4 = 0 ;
- PyObject * obj5 = 0 ;
- PyObject * obj6 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:CoreSession_getDigits",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:CoreSession_getDigits",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_getDigits" "', argument " "1"" of type '" "CoreSession *""'");
}
arg1 = reinterpret_cast< CoreSession * >(argp1);
- res2 = SWIG_AsCharPtrAndSize(obj1, &t2, &n2, &alloc2);
- if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_getDigits" "', argument " "2"" of type '" "char *dtmf_buf""'");
- }
- if ( n2 > (size_t) 128 ) n2 = (size_t) 128;
- memcpy(temp2, t2, sizeof(char)*n2);
- if (alloc2 == SWIG_NEWOBJ) delete[] t2;
- temp2[n2 - 1] = 0;
- arg2 = (char *) temp2;
- ecode3 = SWIG_AsVal_int(obj2, &val3);
- if (!SWIG_IsOK(ecode3)) {
- SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "CoreSession_getDigits" "', argument " "3"" of type '" "int""'");
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CoreSession_getDigits" "', argument " "2"" of type '" "int""'");
}
- arg3 = static_cast< int >(val3);
+ arg2 = static_cast< int >(val2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "CoreSession_getDigits" "', argument " "3"" of type '" "char *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
ecode4 = SWIG_AsVal_int(obj3, &val4);
if (!SWIG_IsOK(ecode4)) {
SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "CoreSession_getDigits" "', argument " "4"" of type '" "int""'");
}
arg4 = static_cast< int >(val4);
- res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
- if (!SWIG_IsOK(res5)) {
- SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "CoreSession_getDigits" "', argument " "5"" of type '" "char *""'");
- }
- arg5 = reinterpret_cast< char * >(buf5);
- res6 = SWIG_AsCharPtrAndSize(obj5, &t6, &n6, &alloc6);
- if (!SWIG_IsOK(res6)) {
- SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "CoreSession_getDigits" "', argument " "6"" of type '" "char *terminator""'");
- }
- if ( n6 > (size_t) 8 ) n6 = (size_t) 8;
- memcpy(temp6, t6, sizeof(char)*n6);
- if (alloc6 == SWIG_NEWOBJ) delete[] t6;
- temp6[n6 - 1] = 0;
- arg6 = (char *) temp6;
- ecode7 = SWIG_AsVal_int(obj6, &val7);
- if (!SWIG_IsOK(ecode7)) {
- SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "CoreSession_getDigits" "', argument " "7"" of type '" "int""'");
- }
- arg7 = static_cast< int >(val7);
- result = (int)(arg1)->getDigits(arg2,arg3,arg4,arg5,arg6,arg7);
- resultobj = SWIG_From_int(static_cast< int >(result));
- arg2[128] = 0;
- resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtr(arg2));
- arg6[8] = 0;
- resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtr(arg6));
- if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+ result = (char *)(arg1)->getDigits(arg2,arg3,arg4);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
return resultobj;
fail:
- if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
return NULL;
}
@@ -4266,6 +5969,79 @@
}
+SWIGINTERN PyObject *_wrap_CoreSession_read(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ int arg2 ;
+ int arg3 ;
+ char *arg4 = (char *) 0 ;
+ int arg5 ;
+ char *arg6 = (char *) 0 ;
+ char *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int res4 ;
+ char *buf4 = 0 ;
+ int alloc4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ int res6 ;
+ char *buf6 = 0 ;
+ int alloc6 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOO:CoreSession_read",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_read" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CoreSession_read" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "CoreSession_read" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "CoreSession_read" "', argument " "4"" of type '" "char const *""'");
+ }
+ arg4 = reinterpret_cast< char * >(buf4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "CoreSession_read" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "CoreSession_read" "', argument " "6"" of type '" "char const *""'");
+ }
+ arg6 = reinterpret_cast< char * >(buf6);
+ result = (char *)(arg1)->read(arg2,arg3,(char const *)arg4,arg5,(char const *)arg6);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+ if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+ return resultobj;
+fail:
+ if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+ if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_CoreSession_playAndGetDigits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -4277,8 +6053,7 @@
char *arg7 = (char *) 0 ;
char *arg8 = (char *) 0 ;
char *arg9 = (char *) 0 ;
- char *arg10 = (char *) 0 ;
- int result;
+ char *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
int val2 ;
@@ -4299,13 +6074,8 @@
char *buf8 = 0 ;
int alloc8 = 0 ;
int res9 ;
- char temp9[128+1] ;
- char *t9 = 0 ;
- size_t n9 = 0 ;
+ char *buf9 = 0 ;
int alloc9 = 0 ;
- int res10 ;
- char *buf10 = 0 ;
- int alloc10 = 0 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
PyObject * obj2 = 0 ;
@@ -4315,9 +6085,8 @@
PyObject * obj6 = 0 ;
PyObject * obj7 = 0 ;
PyObject * obj8 = 0 ;
- PyObject * obj9 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:CoreSession_playAndGetDigits",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:CoreSession_playAndGetDigits",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_playAndGetDigits" "', argument " "1"" of type '" "CoreSession *""'");
@@ -4358,43 +6127,32 @@
SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "CoreSession_playAndGetDigits" "', argument " "8"" of type '" "char *""'");
}
arg8 = reinterpret_cast< char * >(buf8);
- res9 = SWIG_AsCharPtrAndSize(obj8, &t9, &n9, &alloc9);
+ res9 = SWIG_AsCharPtrAndSize(obj8, &buf9, NULL, &alloc9);
if (!SWIG_IsOK(res9)) {
- SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "CoreSession_playAndGetDigits" "', argument " "9"" of type '" "char *dtmf_buf""'");
- }
- if ( n9 > (size_t) 128 ) n9 = (size_t) 128;
- memcpy(temp9, t9, sizeof(char)*n9);
- if (alloc9 == SWIG_NEWOBJ) delete[] t9;
- temp9[n9 - 1] = 0;
- arg9 = (char *) temp9;
- res10 = SWIG_AsCharPtrAndSize(obj9, &buf10, NULL, &alloc10);
- if (!SWIG_IsOK(res10)) {
- SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "CoreSession_playAndGetDigits" "', argument " "10"" of type '" "char *""'");
+ SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "CoreSession_playAndGetDigits" "', argument " "9"" of type '" "char *""'");
}
- arg10 = reinterpret_cast< char * >(buf10);
- result = (int)(arg1)->playAndGetDigits(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
- resultobj = SWIG_From_int(static_cast< int >(result));
- arg9[128] = 0;
- resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtr(arg9));
+ arg9 = reinterpret_cast< char * >(buf9);
+ result = (char *)(arg1)->playAndGetDigits(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
+ resultobj = SWIG_FromCharPtr((const char *)result);
if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
- if (alloc10 == SWIG_NEWOBJ) delete[] buf10;
+ if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
return resultobj;
fail:
if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
- if (alloc10 == SWIG_NEWOBJ) delete[] buf10;
+ if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
return NULL;
}
-SWIGINTERN PyObject *_wrap_CoreSession_streamFile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_CoreSession_streamFile__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
char *arg2 = (char *) 0 ;
- int arg3 = (int) 0 ;
+ int arg3 ;
int result;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -4407,7 +6165,7 @@
PyObject * obj1 = 0 ;
PyObject * obj2 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO|O:CoreSession_streamFile",&obj0,&obj1,&obj2)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OOO:CoreSession_streamFile",&obj0,&obj1,&obj2)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_streamFile" "', argument " "1"" of type '" "CoreSession *""'");
@@ -4418,13 +6176,11 @@
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_streamFile" "', argument " "2"" of type '" "char *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- if (obj2) {
- ecode3 = SWIG_AsVal_int(obj2, &val3);
- if (!SWIG_IsOK(ecode3)) {
- SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "CoreSession_streamFile" "', argument " "3"" of type '" "int""'");
- }
- arg3 = static_cast< int >(val3);
- }
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "CoreSession_streamFile" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
result = (int)(arg1)->streamFile(arg2,arg3);
resultobj = SWIG_From_int(static_cast< int >(result));
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
@@ -4435,6 +6191,89 @@
}
+SWIGINTERN PyObject *_wrap_CoreSession_streamFile__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ char *arg2 = (char *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_streamFile",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_streamFile" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_streamFile" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ result = (int)(arg1)->streamFile(arg2);
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CoreSession_streamFile(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_CoreSession_streamFile__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CoreSession, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_CoreSession_streamFile__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'CoreSession_streamFile'.\n Possible C/C++ prototypes are:\n streamFile(char *,int)\n streamFile(char *)\n");
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_CoreSession_flushEvents(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -4605,6 +6444,36 @@
}
+SWIGINTERN PyObject *_wrap_CoreSession_sendEvent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CoreSession *arg1 = (CoreSession *) 0 ;
+ Event *arg2 = (Event *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CoreSession_sendEvent",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CoreSession, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CoreSession_sendEvent" "', argument " "1"" of type '" "CoreSession *""'");
+ }
+ arg1 = reinterpret_cast< CoreSession * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Event, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CoreSession_sendEvent" "', argument " "2"" of type '" "Event *""'");
+ }
+ arg2 = reinterpret_cast< Event * >(argp2);
+ (arg1)->sendEvent(arg2);
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_CoreSession_begin_allow_threads(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = (CoreSession *) 0 ;
@@ -4770,6 +6639,66 @@
return SWIG_Py_Void();
}
+SWIGINTERN PyObject *_wrap_console_log(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ char *arg2 = (char *) 0 ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:console_log",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "console_log" "', argument " "1"" of type '" "char *""'");
+ }
+ arg1 = reinterpret_cast< char * >(buf1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "console_log" "', argument " "2"" of type '" "char *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ console_log(arg1,arg2);
+ resultobj = SWIG_Py_Void();
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_console_clean_log(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:console_clean_log",&obj0)) SWIG_fail;
+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "console_clean_log" "', argument " "1"" of type '" "char *""'");
+ }
+ arg1 = reinterpret_cast< char * >(buf1);
+ console_clean_log(arg1);
+ resultobj = SWIG_Py_Void();
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ return resultobj;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_bridge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
CoreSession *arg1 = 0 ;
@@ -5221,11 +7150,18 @@
}
static PyMethodDef SwigMethods[] = {
- { (char *)"console_log", _wrap_console_log, METH_VARARGS, NULL},
- { (char *)"console_clean_log", _wrap_console_clean_log, METH_VARARGS, NULL},
- { (char *)"api_execute", _wrap_api_execute, METH_VARARGS, NULL},
- { (char *)"api_reply_delete", _wrap_api_reply_delete, METH_VARARGS, NULL},
- { (char *)"process_callback_result", _wrap_process_callback_result, METH_VARARGS, NULL},
+ { (char *)"consoleLog", _wrap_consoleLog, METH_VARARGS, NULL},
+ { (char *)"consoleCleanLog", _wrap_consoleCleanLog, METH_VARARGS, NULL},
+ { (char *)"new_IVRMenu", _wrap_new_IVRMenu, METH_VARARGS, NULL},
+ { (char *)"delete_IVRMenu", _wrap_delete_IVRMenu, METH_VARARGS, NULL},
+ { (char *)"IVRMenu_bindAction", _wrap_IVRMenu_bindAction, METH_VARARGS, NULL},
+ { (char *)"IVRMenu_execute", _wrap_IVRMenu_execute, METH_VARARGS, NULL},
+ { (char *)"IVRMenu_swigregister", IVRMenu_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_API", _wrap_new_API, METH_VARARGS, NULL},
+ { (char *)"delete_API", _wrap_delete_API, METH_VARARGS, NULL},
+ { (char *)"API_execute", _wrap_API_execute, METH_VARARGS, NULL},
+ { (char *)"API_executeString", _wrap_API_executeString, METH_VARARGS, NULL},
+ { (char *)"API_swigregister", API_swigregister, METH_VARARGS, NULL},
{ (char *)"input_callback_state_t_function_set", _wrap_input_callback_state_t_function_set, METH_VARARGS, NULL},
{ (char *)"input_callback_state_t_function_get", _wrap_input_callback_state_t_function_get, METH_VARARGS, NULL},
{ (char *)"input_callback_state_t_threadState_set", _wrap_input_callback_state_t_threadState_set, METH_VARARGS, NULL},
@@ -5237,6 +7173,29 @@
{ (char *)"new_input_callback_state_t", _wrap_new_input_callback_state_t, METH_VARARGS, NULL},
{ (char *)"delete_input_callback_state_t", _wrap_delete_input_callback_state_t, METH_VARARGS, NULL},
{ (char *)"input_callback_state_t_swigregister", input_callback_state_t_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Stream", _wrap_new_Stream, METH_VARARGS, NULL},
+ { (char *)"delete_Stream", _wrap_delete_Stream, METH_VARARGS, NULL},
+ { (char *)"Stream_write", _wrap_Stream_write, METH_VARARGS, NULL},
+ { (char *)"Stream_get_data", _wrap_Stream_get_data, METH_VARARGS, NULL},
+ { (char *)"Stream_swigregister", Stream_swigregister, METH_VARARGS, NULL},
+ { (char *)"Event_event_set", _wrap_Event_event_set, METH_VARARGS, NULL},
+ { (char *)"Event_event_get", _wrap_Event_event_get, METH_VARARGS, NULL},
+ { (char *)"Event_serialized_string_set", _wrap_Event_serialized_string_set, METH_VARARGS, NULL},
+ { (char *)"Event_serialized_string_get", _wrap_Event_serialized_string_get, METH_VARARGS, NULL},
+ { (char *)"Event_mine_set", _wrap_Event_mine_set, METH_VARARGS, NULL},
+ { (char *)"Event_mine_get", _wrap_Event_mine_get, METH_VARARGS, NULL},
+ { (char *)"new_Event", _wrap_new_Event, METH_VARARGS, NULL},
+ { (char *)"delete_Event", _wrap_delete_Event, METH_VARARGS, NULL},
+ { (char *)"Event_serialize", _wrap_Event_serialize, METH_VARARGS, NULL},
+ { (char *)"Event_setPriority", _wrap_Event_setPriority, METH_VARARGS, NULL},
+ { (char *)"Event_getHeader", _wrap_Event_getHeader, METH_VARARGS, NULL},
+ { (char *)"Event_getBody", _wrap_Event_getBody, METH_VARARGS, NULL},
+ { (char *)"Event_getType", _wrap_Event_getType, METH_VARARGS, NULL},
+ { (char *)"Event_addBody", _wrap_Event_addBody, METH_VARARGS, NULL},
+ { (char *)"Event_addHeader", _wrap_Event_addHeader, METH_VARARGS, NULL},
+ { (char *)"Event_delHeader", _wrap_Event_delHeader, METH_VARARGS, NULL},
+ { (char *)"Event_fire", _wrap_Event_fire, METH_VARARGS, NULL},
+ { (char *)"Event_swigregister", Event_swigregister, METH_VARARGS, NULL},
{ (char *)"delete_CoreSession", _wrap_delete_CoreSession, METH_VARARGS, NULL},
{ (char *)"CoreSession_session_set", _wrap_CoreSession_session_set, METH_VARARGS, NULL},
{ (char *)"CoreSession_session_get", _wrap_CoreSession_session_get, METH_VARARGS, NULL},
@@ -5244,6 +7203,8 @@
{ (char *)"CoreSession_channel_get", _wrap_CoreSession_channel_get, METH_VARARGS, NULL},
{ (char *)"CoreSession_flags_set", _wrap_CoreSession_flags_set, METH_VARARGS, NULL},
{ (char *)"CoreSession_flags_get", _wrap_CoreSession_flags_get, METH_VARARGS, NULL},
+ { (char *)"CoreSession_allocated_set", _wrap_CoreSession_allocated_set, METH_VARARGS, NULL},
+ { (char *)"CoreSession_allocated_get", _wrap_CoreSession_allocated_get, METH_VARARGS, NULL},
{ (char *)"CoreSession_cb_state_set", _wrap_CoreSession_cb_state_set, METH_VARARGS, NULL},
{ (char *)"CoreSession_cb_state_get", _wrap_CoreSession_cb_state_get, METH_VARARGS, NULL},
{ (char *)"CoreSession_hook_state_set", _wrap_CoreSession_hook_state_set, METH_VARARGS, NULL},
@@ -5252,6 +7213,8 @@
{ (char *)"CoreSession_preAnswer", _wrap_CoreSession_preAnswer, METH_VARARGS, NULL},
{ (char *)"CoreSession_hangup", _wrap_CoreSession_hangup, METH_VARARGS, NULL},
{ (char *)"CoreSession_setVariable", _wrap_CoreSession_setVariable, METH_VARARGS, NULL},
+ { (char *)"CoreSession_setPrivate", _wrap_CoreSession_setPrivate, METH_VARARGS, NULL},
+ { (char *)"CoreSession_getPrivate", _wrap_CoreSession_getPrivate, METH_VARARGS, NULL},
{ (char *)"CoreSession_getVariable", _wrap_CoreSession_getVariable, METH_VARARGS, NULL},
{ (char *)"CoreSession_recordFile", _wrap_CoreSession_recordFile, METH_VARARGS, NULL},
{ (char *)"CoreSession_setCallerData", _wrap_CoreSession_setCallerData, METH_VARARGS, NULL},
@@ -5262,6 +7225,7 @@
{ (char *)"CoreSession_collectDigits", _wrap_CoreSession_collectDigits, METH_VARARGS, NULL},
{ (char *)"CoreSession_getDigits", _wrap_CoreSession_getDigits, METH_VARARGS, NULL},
{ (char *)"CoreSession_transfer", _wrap_CoreSession_transfer, METH_VARARGS, NULL},
+ { (char *)"CoreSession_read", _wrap_CoreSession_read, METH_VARARGS, NULL},
{ (char *)"CoreSession_playAndGetDigits", _wrap_CoreSession_playAndGetDigits, METH_VARARGS, NULL},
{ (char *)"CoreSession_streamFile", _wrap_CoreSession_streamFile, METH_VARARGS, NULL},
{ (char *)"CoreSession_flushEvents", _wrap_CoreSession_flushEvents, METH_VARARGS, NULL},
@@ -5270,6 +7234,7 @@
{ (char *)"CoreSession_setHangupHook", _wrap_CoreSession_setHangupHook, METH_VARARGS, NULL},
{ (char *)"CoreSession_ready", _wrap_CoreSession_ready, METH_VARARGS, NULL},
{ (char *)"CoreSession_execute", _wrap_CoreSession_execute, METH_VARARGS, NULL},
+ { (char *)"CoreSession_sendEvent", _wrap_CoreSession_sendEvent, METH_VARARGS, NULL},
{ (char *)"CoreSession_begin_allow_threads", _wrap_CoreSession_begin_allow_threads, METH_VARARGS, NULL},
{ (char *)"CoreSession_end_allow_threads", _wrap_CoreSession_end_allow_threads, METH_VARARGS, NULL},
{ (char *)"CoreSession_get_uuid", _wrap_CoreSession_get_uuid, METH_VARARGS, NULL},
@@ -5277,6 +7242,8 @@
{ (char *)"CoreSession_check_hangup_hook", _wrap_CoreSession_check_hangup_hook, METH_VARARGS, NULL},
{ (char *)"CoreSession_run_dtmf_callback", _wrap_CoreSession_run_dtmf_callback, METH_VARARGS, NULL},
{ (char *)"CoreSession_swigregister", CoreSession_swigregister, METH_VARARGS, NULL},
+ { (char *)"console_log", _wrap_console_log, METH_VARARGS, NULL},
+ { (char *)"console_clean_log", _wrap_console_clean_log, METH_VARARGS, NULL},
{ (char *)"bridge", _wrap_bridge, METH_VARARGS, NULL},
{ (char *)"hanguphook", _wrap_hanguphook, METH_VARARGS, NULL},
{ (char *)"dtmf_callback", _wrap_dtmf_callback, METH_VARARGS, NULL},
@@ -5299,8 +7266,12 @@
static void *_p_PySessionTo_p_CoreSession(void *x) {
return (void *)((CoreSession *) ((PySession *) x));
}
+static swig_type_info _swigt__p_API = {"_p_API", "API *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_CoreSession = {"_p_CoreSession", "CoreSession *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Event = {"_p_Event", "Event *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_IVRMenu = {"_p_IVRMenu", "IVRMenu *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_PySession = {"_p_PySession", "PySession *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Stream = {"_p_Stream", "Stream *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_input_callback_state = {"_p_input_callback_state", "input_callback_state *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_session_flag_t = {"_p_session_flag_t", "enum session_flag_t *|session_flag_t *", 0, 0, (void*)0, 0};
@@ -5308,14 +7279,21 @@
static swig_type_info _swigt__p_switch_channel_state_t = {"_p_switch_channel_state_t", "switch_channel_state_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_switch_channel_t = {"_p_switch_channel_t", "switch_channel_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_switch_core_session_t = {"_p_switch_core_session_t", "switch_core_session_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_switch_event_t = {"_p_switch_event_t", "switch_event_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_switch_input_args_t = {"_p_switch_input_args_t", "switch_input_args_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_switch_input_type_t = {"_p_switch_input_type_t", "switch_input_type_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_switch_priority_t = {"_p_switch_priority_t", "switch_priority_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_switch_status_t = {"_p_switch_status_t", "switch_status_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_switch_stream_handle_t = {"_p_switch_stream_handle_t", "switch_stream_handle_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_void = {"_p_void", "void *", 0, 0, (void*)0, 0};
static swig_type_info *swig_type_initial[] = {
+ &_swigt__p_API,
&_swigt__p_CoreSession,
+ &_swigt__p_Event,
+ &_swigt__p_IVRMenu,
&_swigt__p_PySession,
+ &_swigt__p_Stream,
&_swigt__p_char,
&_swigt__p_input_callback_state,
&_swigt__p_session_flag_t,
@@ -5323,14 +7301,21 @@
&_swigt__p_switch_channel_state_t,
&_swigt__p_switch_channel_t,
&_swigt__p_switch_core_session_t,
+ &_swigt__p_switch_event_t,
&_swigt__p_switch_input_args_t,
&_swigt__p_switch_input_type_t,
+ &_swigt__p_switch_priority_t,
&_swigt__p_switch_status_t,
+ &_swigt__p_switch_stream_handle_t,
&_swigt__p_void,
};
+static swig_cast_info _swigc__p_API[] = { {&_swigt__p_API, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_CoreSession[] = { {&_swigt__p_CoreSession, 0, 0, 0}, {&_swigt__p_PySession, _p_PySessionTo_p_CoreSession, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Event[] = { {&_swigt__p_Event, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_IVRMenu[] = { {&_swigt__p_IVRMenu, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_PySession[] = { {&_swigt__p_PySession, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Stream[] = { {&_swigt__p_Stream, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_input_callback_state[] = { {&_swigt__p_input_callback_state, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_session_flag_t[] = { {&_swigt__p_session_flag_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -5338,14 +7323,21 @@
static swig_cast_info _swigc__p_switch_channel_state_t[] = { {&_swigt__p_switch_channel_state_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_switch_channel_t[] = { {&_swigt__p_switch_channel_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_switch_core_session_t[] = { {&_swigt__p_switch_core_session_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_switch_event_t[] = { {&_swigt__p_switch_event_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_switch_input_args_t[] = { {&_swigt__p_switch_input_args_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_switch_input_type_t[] = { {&_swigt__p_switch_input_type_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_switch_priority_t[] = { {&_swigt__p_switch_priority_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_switch_status_t[] = { {&_swigt__p_switch_status_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_switch_stream_handle_t[] = { {&_swigt__p_switch_stream_handle_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_void[] = { {&_swigt__p_void, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info *swig_cast_initial[] = {
+ _swigc__p_API,
_swigc__p_CoreSession,
+ _swigc__p_Event,
+ _swigc__p_IVRMenu,
_swigc__p_PySession,
+ _swigc__p_Stream,
_swigc__p_char,
_swigc__p_input_callback_state,
_swigc__p_session_flag_t,
@@ -5353,9 +7345,12 @@
_swigc__p_switch_channel_state_t,
_swigc__p_switch_channel_t,
_swigc__p_switch_core_session_t,
+ _swigc__p_switch_event_t,
_swigc__p_switch_input_args_t,
_swigc__p_switch_input_type_t,
+ _swigc__p_switch_priority_t,
_swigc__p_switch_status_t,
+ _swigc__p_switch_stream_handle_t,
_swigc__p_void,
};
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c Tue May 13 22:16:21 2008
@@ -2752,6 +2752,7 @@
}
jss->session = peer_session;
+ switch_set_flag(jss, S_HUP);
*rval = BOOLEAN_TO_JSVAL(JS_TRUE);
switch_channel_set_state(switch_core_session_get_channel(jss->session), CS_TRANSMIT);
@@ -2781,7 +2782,7 @@
switch_channel_set_private(channel, "jss", NULL);
switch_core_event_hook_remove_state_change(session, hanguphook);
- if (switch_test_flag(jss, S_HUP) || switch_channel_get_state(channel) != CS_EXECUTE) {
+ if (switch_test_flag(jss, S_HUP)) {
switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_ldap/mod_xml_ldap.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_ldap/mod_xml_ldap.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/mod/xml_int/mod_xml_ldap/mod_xml_ldap.c Tue May 13 22:16:21 2008
@@ -134,7 +134,7 @@
{
struct ldap_c *ldap = ldap_connection;
switch_xml_t asdf = *xml;
- switch_xml_t param, variable, params, variables;
+ switch_xml_t param, variable, params = NULL, variables = NULL;
int i = 0;
int loff = *off;
@@ -217,7 +217,7 @@
xml_binding_t *binding = (xml_binding_t *)user_data;
switch_event_header_t *hi;
- switch_xml_t xml, sub;
+ switch_xml_t xml = NULL, sub = NULL;
struct ldap_c ldap_connection;
struct ldap_c *ldap = &ldap_connection;
@@ -225,7 +225,7 @@
int auth_method = LDAP_AUTH_SIMPLE;
int desired_version = LDAP_VERSION3;
xml_ldap_query_type_t query_type;
- char *dir_exten, *dir_domain;
+ char *dir_exten = NULL, *dir_domain = NULL;
char *filter = "(objectClass=*)";
char *search_base = NULL;
@@ -248,6 +248,9 @@
}
else if (!strcmp(section,"phrases")) {
query_type = XML_LDAP_PHRASE;
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "invalid section\n");
+ return NULL;
}
if (params) {
@@ -277,20 +280,24 @@
case XML_LDAP_DIRECTORY:
if (dir_exten && dir_domain) {
- xml = switch_xml_new("directory");
- switch_xml_set_attr_d(xml, "type", "freeswitch/xml");
-
- sub = switch_xml_add_child_d(xml, "section", off++);
- switch_xml_set_attr_d(sub, "name", "directory");
-
- sub = switch_xml_add_child_d(sub, "domain", off++);
- switch_xml_set_attr_d(sub, "name", dir_domain);
+ if ((xml = switch_xml_new("directory"))) {
+ switch_xml_set_attr_d(xml, "type", "freeswitch/xml");
+
+ if ((sub = switch_xml_add_child_d(xml, "section", off++))) {
+ switch_xml_set_attr_d(sub, "name", "directory");
+ }
- sub = switch_xml_add_child_d(sub, "user", off++);
- switch_xml_set_attr_d(sub, "id", dir_exten);
+ if ((sub = switch_xml_add_child_d(sub, "domain", off++))) {
+ switch_xml_set_attr_d(sub, "name", dir_domain);
+ }
+
+ if ((sub = switch_xml_add_child_d(sub, "user", off++))) {
+ switch_xml_set_attr_d(sub, "id", dir_exten);
+ }
+ }
search_base = switch_mprintf(binding->queryfmt, dir_exten, dir_domain, binding->ldap_base);
-
+
free(dir_exten);
dir_exten = NULL;
@@ -303,13 +310,15 @@
break;
case XML_LDAP_DIALPLAN:
- xml = switch_xml_new("document");
- switch_xml_set_attr_d(xml, "type", "freeswitch/xml");
+ if ((xml = switch_xml_new("document"))) {
+ switch_xml_set_attr_d(xml, "type", "freeswitch/xml");
- sub = switch_xml_add_child_d(xml, "section", off++);
- switch_xml_set_attr_d(sub, "name", "dialplan");
+ if ((sub = switch_xml_add_child_d(xml, "section", off++))) {
+ switch_xml_set_attr_d(sub, "name", "dialplan");
+ }
- sub = switch_xml_add_child_d(xml, "context", off++);
+ sub = switch_xml_add_child_d(xml, "context", off++);
+ }
search_base = switch_mprintf(binding->queryfmt, dir_exten, dir_domain, binding->ldap_base);
break;
@@ -323,6 +332,7 @@
}
+
if ((ldap->ld = ldap_init(binding->host, LDAP_PORT)) == NULL) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unable to connect to ldap server.%s\n", binding->host);
goto cleanup;
@@ -345,7 +355,7 @@
goto cleanup;
}
- if (xml_ldap_result(&ldap_connection, binding, &sub, &off, query_type) != SWITCH_STATUS_SUCCESS) {
+ if (sub && xml_ldap_result(&ldap_connection, binding, &sub, &off, query_type) != SWITCH_STATUS_SUCCESS) {
goto cleanup;
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_console.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_console.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_console.c Tue May 13 22:16:21 2008
@@ -154,9 +154,64 @@
return ret ? SWITCH_STATUS_FALSE : SWITCH_STATUS_SUCCESS;
}
-static int switch_console_process(char *cmd)
+static int alias_callback(void *pArg, int argc, char **argv, char **columnNames)
{
- char *arg = NULL;
+ char **r = (char **) pArg;
+ *r = strdup(argv[0]);
+ return -1;
+}
+
+char *expand_alias(char *cmd, char *arg)
+{
+ char *errmsg = NULL;
+ char *r = NULL;
+ char *sql;
+ char *exp = NULL;
+ switch_core_db_t *db = switch_core_db_handle();
+ int full = 0;
+
+ sql = switch_mprintf("select command from aliases where alias='%q'", cmd);
+
+ switch_core_db_exec(db, sql, alias_callback, &r, &errmsg);
+
+ if (errmsg) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "error [%s][%s]\n", sql, errmsg);
+ free(errmsg);
+ }
+
+ if (!r) {
+ sql = switch_mprintf("select command from aliases where alias='%q %q'", cmd, arg);
+
+ switch_core_db_exec(db, sql, alias_callback, &r, &errmsg);
+
+ if (errmsg) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "error [%s][%s]\n", sql, errmsg);
+ free(errmsg);
+ }
+ if (r) {
+ full++;
+ }
+ }
+
+
+ if (r) {
+ if (arg && !full) {
+ exp = switch_mprintf("%s %s", r, arg);
+ free(r);
+ } else {
+ exp = r;
+ }
+ } else {
+ exp = cmd;
+ }
+
+ switch_core_db_close(db);
+ return exp;
+}
+
+static int switch_console_process(char *cmd, int rec)
+{
+ char *arg = NULL, *alias = NULL;
switch_stream_handle_t stream = { 0 };
if (!strcmp(cmd, "shutdown") || !strcmp(cmd, "...")) {
@@ -175,6 +230,12 @@
*arg++ = '\0';
}
+ if (!rec && (alias = expand_alias(cmd, arg)) && alias != cmd) {
+ int r = switch_console_process(alias, ++rec);
+ free(alias);
+ return r;
+ }
+
SWITCH_STANDARD_STREAM(stream);
if (stream.data) {
if (switch_api_execute(cmd, arg, NULL, &stream) == SWITCH_STATUS_SUCCESS) {
@@ -268,7 +329,7 @@
}
cmd = strdup(c);
- switch_console_process(cmd);
+ switch_console_process(cmd, 0);
free(cmd);
return CC_REDISPLAY;
@@ -346,13 +407,16 @@
if (!switch_strlen_zero(line)) {
char *cmd = strdup(line);
char *p;
-
+ const LineInfo *lf = el_line(el);
+ char *foo = (char *)lf->buffer;
if ((p = strrchr(cmd, '\r')) || (p = strrchr(cmd, '\n'))) {
*p = '\0';
}
assert(cmd != NULL);
history(myhistory, &ev, H_ENTER, line);
- running = switch_console_process(cmd);
+ running = switch_console_process(cmd, 0);
+ el_deletestr(el, strlen(foo)+1);
+ memset(foo, 0, strlen(foo));
free(cmd);
}
}
@@ -364,6 +428,250 @@
}
+struct helper {
+ EditLine *el;
+ int len;
+ int hits;
+ int words;
+ char last[512];
+ FILE *out;
+};
+
+static int comp_callback(void *pArg, int argc, char **argv, char **columnNames)
+{
+ struct helper *h = (struct helper *) pArg;
+ char *target = NULL;
+
+ target = argv[0];
+
+ if (!target) {
+ return -1;
+ }
+
+ fprintf(h->out, "%20s\t", target);
+
+ switch_copy_string(h->last, target, sizeof(h->last));
+
+ if ((++h->hits % 4) == 0) {
+ fprintf(h->out, "\n");
+ }
+
+ return 0;
+}
+
+static unsigned char complete(EditLine *el, int ch)
+{
+ switch_core_db_t *db = switch_core_db_handle();
+ char *sql;
+ const LineInfo *lf = el_line(el);
+ char *dup = strdup(lf->buffer);
+ char *buf = dup;
+ char *p, *lp = NULL;
+ char *errmsg = NULL;
+ struct helper h = { el };
+ unsigned char ret = CC_REDISPLAY;
+
+ h.out = switch_core_get_console();
+
+ if ((p = strchr(buf, '\r')) || (p = strchr(buf, '\n'))) {
+ *p = '\0';
+ }
+
+ while(*buf == ' ') {
+ buf++;
+ }
+
+ for(p = buf; p && *p; p++) {
+ if (*p == ' ') {
+ lp = p;
+ h.words++;
+ }
+ }
+
+ if (lp) {
+ buf = lp + 1;
+ }
+
+ h.len = strlen(buf);
+
+ fprintf(h.out, "\n\n");
+
+ if (h.words == 0) {
+ sql = switch_mprintf("select distinct name from interfaces where type='api' and name like '%s%%' order by name", buf);
+ } else {
+ sql = switch_mprintf("select distinct uuid from channels where uuid like '%s%%' order by uuid", buf);
+ }
+
+ switch_core_db_exec(db, sql, comp_callback, &h, &errmsg);
+
+ if (errmsg) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "error [%s][%s]\n", sql, errmsg);
+ free(errmsg);
+ ret = CC_ERROR;
+ goto end;
+ }
+
+ if (h.hits != 1) {
+ char *dupdup = strdup(dup);
+ switch_assert(dupdup);
+ int x, argc = 0;
+ char *argv[10] = {0};
+ switch_stream_handle_t stream = { 0 };
+ SWITCH_STANDARD_STREAM(stream);
+
+
+ argc = switch_separate_string(dupdup, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
+
+ if (h.words == 0) {
+ stream.write_function(&stream,
+ "select distinct a1 from complete where "
+ "a1 not in (select name from interfaces) and ");
+ } else {
+ stream.write_function(&stream,
+ "select distinct a%d from complete where ", h.words + 1);
+
+ }
+
+ for(x = 0; x < argc; x++) {
+ stream.write_function(&stream, "(a%d = '' or a%d like '%s%%')%s", x+1, x+1, switch_str_nil(argv[x]), x == argc -1 ? "" : " and ");
+ }
+
+ switch_core_db_exec(db, stream.data, comp_callback, &h, &errmsg);
+
+ if (errmsg) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "error [%s][%s]\n", (char *) stream.data, errmsg);
+ free(errmsg);
+ ret = CC_ERROR;
+ }
+
+ switch_safe_free(dupdup);
+ switch_safe_free(stream.data);
+
+ if (ret == CC_ERROR) {
+ goto end;
+ }
+ }
+
+ fprintf(h.out, "\n\n");
+
+ if (h.hits == 1) {
+ el_deletestr(el, h.len);
+ el_insertstr(el, h.last);
+ }
+
+ end:
+
+ fflush(h.out);
+
+ switch_safe_free(sql);
+ switch_safe_free(dup);
+
+ switch_core_db_close(db);
+
+ return (ret);
+}
+
+
+SWITCH_DECLARE(switch_status_t) switch_console_set_complete(const char *string)
+{
+ char *mydata = NULL, *argv[11] = {0};
+ int argc, x;
+ switch_status_t status = SWITCH_STATUS_FALSE;
+
+ if (string && (mydata = strdup(string))) {
+ if ((argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))))) {
+ switch_core_db_t *db = switch_core_db_handle();
+ switch_stream_handle_t mystream = { 0 };
+ SWITCH_STANDARD_STREAM(mystream);
+
+
+ if (!strcasecmp(argv[0], "stickyadd")) {
+ mystream.write_function(&mystream, "insert into complete values (1,");
+ for(x = 0; x < 10; x++) {
+ mystream.write_function(&mystream, "'%s'%s", switch_str_nil(argv[x+1]), x == 9 ? ")" : ", ");
+ }
+ switch_core_db_persistant_execute(db, mystream.data, 5);
+ status = SWITCH_STATUS_SUCCESS;
+ } else if (!strcasecmp(argv[0], "add")) {
+ mystream.write_function(&mystream, "insert into complete values (0,");
+ for(x = 0; x < 10; x++) {
+ mystream.write_function(&mystream, "'%s'%s", switch_str_nil(argv[x+1]), x == 9 ? ")" : ", ");
+ }
+ switch_core_db_persistant_execute(db, mystream.data, 5);
+ status = SWITCH_STATUS_SUCCESS;
+ } else if (!strcasecmp(argv[0], "del")) {
+ char *what = argv[1];
+ if (!strcasecmp(what, "*")) {
+ switch_core_db_persistant_execute(db, "delete from complete", 1);
+ } else {
+ mystream.write_function(&mystream, "delete from complete where ");
+ for(x = 0; x < argc - 1; x++) {
+ mystream.write_function(&mystream, "a%d = '%s'%s", x+1, switch_str_nil(argv[x+1]), x == argc - 2 ? "" : " and ");
+ }
+ switch_core_db_persistant_execute(db, mystream.data, 1);
+ }
+ status = SWITCH_STATUS_SUCCESS;
+ }
+ switch_safe_free(mystream.data);
+ switch_core_db_close(db);
+ }
+ }
+
+ switch_safe_free(mydata);
+
+ return status;
+
+}
+
+
+SWITCH_DECLARE(switch_status_t) switch_console_set_alias(const char *string)
+{
+ char *mydata = NULL, *argv[3] = {0};
+ int argc;
+ switch_status_t status = SWITCH_STATUS_FALSE;
+
+ if (string && (mydata = strdup(string))) {
+ if ((argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0])))) >= 2) {
+ switch_core_db_t *db = switch_core_db_handle();
+ char *sql = NULL;
+
+
+ if (!strcasecmp(argv[0], "stickyadd") && argc == 3) {
+ sql = switch_mprintf("delete from aliases where alias='%q'", argv[1]);
+ switch_core_db_persistant_execute(db, sql, 5);
+ switch_safe_free(sql);
+ sql = switch_mprintf("insert into aliases (sticky, alias, command) values (1, '%q','%q')", argv[1], argv[2]);
+ switch_core_db_persistant_execute(db, sql, 5);
+ status = SWITCH_STATUS_SUCCESS;
+ } else if (!strcasecmp(argv[0], "add") && argc == 3) {
+ sql = switch_mprintf("delete from aliases where alias='%q'", argv[1]);
+ switch_core_db_persistant_execute(db, sql, 5);
+ switch_safe_free(sql);
+ sql = switch_mprintf("insert into aliases (sticky, alias, command) values (0, '%q','%q')", argv[1], argv[2]);
+ switch_core_db_persistant_execute(db, sql, 5);
+ status = SWITCH_STATUS_SUCCESS;
+ } else if (!strcasecmp(argv[0], "del") && argc == 2) {
+ char *what = argv[1];
+ if (!strcasecmp(what, "*")) {
+ switch_core_db_persistant_execute(db, "delete from aliases", 1);
+ } else {
+ sql = switch_mprintf("delete from aliases where alias='%q'", argv[1]);
+ switch_core_db_persistant_execute(db, sql, 5);
+ }
+ status = SWITCH_STATUS_SUCCESS;
+ }
+ switch_safe_free(sql);
+ switch_core_db_close(db);
+ }
+ }
+
+ switch_safe_free(mydata);
+
+ return status;
+
+}
+
+
SWITCH_DECLARE(void) switch_console_loop(void)
{
switch_thread_t *thread;
@@ -417,6 +725,10 @@
el_set(el, EL_BIND, "\033[23~", "f11-key", NULL);
el_set(el, EL_BIND, "\033[24~", "f12-key", NULL);
+
+ el_set(el, EL_ADDFN, "ed-complete", "Complete argument", complete);
+ el_set(el, EL_BIND, "^I", "ed-complete", NULL);
+
myhistory = history_init();
if (myhistory == 0) {
fprintf(stderr, "history could not be initialized\n");
@@ -453,6 +765,15 @@
}
#else
+SWITCH_DECLARE(switch_status_t) switch_console_set_alias(const char *string)
+{
+ return SWITCH_STATUS_FALSE;
+}
+
+SWITCH_DECLARE(switch_status_t) switch_console_set_complete(const char *string)
+{
+ return SWITCH_STATUS_FALSE;
+}
SWITCH_DECLARE(void) switch_console_loop(void)
{
@@ -517,7 +838,7 @@
}
if (cmd[0]) {
- running = switch_console_process(cmd);
+ running = switch_console_process(cmd, 0);
}
}
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_io.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_io.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_io.c Tue May 13 22:16:21 2008
@@ -120,7 +120,7 @@
if (switch_channel_test_flag(session->channel, CF_HOLD)) {
status = SWITCH_STATUS_BREAK;
- goto done;
+ goto even_more_done;
}
if (session->endpoint_interface->io_routines->read_frame) {
@@ -459,6 +459,9 @@
switch_thread_rwlock_unlock(session->bug_rwlock);
}
}
+
+ even_more_done:
+
return status;
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_rwlock.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_rwlock.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_rwlock.c Tue May 13 22:16:21 2008
@@ -35,7 +35,6 @@
#include <switch.h>
#include "private/switch_core_pvt.h"
-
SWITCH_DECLARE(switch_status_t) switch_core_session_signal_lock(switch_core_session_t *session)
{
return switch_mutex_lock(session->signal_mutex);
@@ -58,12 +57,12 @@
if (switch_test_flag(session, SSF_DESTROYED)) {
status = SWITCH_STATUS_FALSE;
#ifdef SWITCH_DEBUG_RWLOCKS
- switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, SWITCH_LOG_ERROR, "%s Read lock FAIL\n", switch_channel_get_name(session->channel));
+ switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_ERROR, "%s Read lock FAIL\n", switch_channel_get_name(session->channel));
#endif
} else {
status = (switch_status_t) switch_thread_rwlock_tryrdlock(session->rwlock);
#ifdef SWITCH_DEBUG_RWLOCKS
- switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, SWITCH_LOG_ERROR, "%s Read lock AQUIRED\n",
+ switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_ERROR, "%s Read lock AQUIRED\n",
switch_channel_get_name(session->channel));
#endif
}
@@ -76,7 +75,7 @@
SWITCH_DECLARE(void) switch_core_session_perform_write_lock(switch_core_session_t *session, const char *file, const char *func, int line)
{
- switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, SWITCH_LOG_ERROR, "%s Write lock AQUIRED\n", switch_channel_get_name(session->channel));
+ switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_ERROR, "%s Write lock AQUIRED\n", switch_channel_get_name(session->channel));
#else
SWITCH_DECLARE(void) switch_core_session_write_lock(switch_core_session_t *session)
{
@@ -87,7 +86,7 @@
#ifdef SWITCH_DEBUG_RWLOCKS
SWITCH_DECLARE(void) switch_core_session_perform_rwunlock(switch_core_session_t *session, const char *file, const char *func, int line)
{
- switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, SWITCH_LOG_ERROR, "%s Read/Write lock CLEARED\n",
+ switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_ERROR, "%s Read/Write lock CLEARED\n",
switch_channel_get_name(session->channel));
#else
SWITCH_DECLARE(void) switch_core_session_rwunlock(switch_core_session_t *session)
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_sqldb.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_sqldb.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_core_sqldb.c Tue May 13 22:16:21 2008
@@ -254,10 +254,12 @@
sql = switch_mprintf("delete from channels where uuid='%q'", switch_event_get_header(event, "unique-id"));
break;
case SWITCH_EVENT_CHANNEL_CREATE:
- sql = switch_mprintf("insert into channels (uuid,created,name,state) values('%q','%q','%q','%q')",
+ sql = switch_mprintf("insert into channels (uuid,created,created_epoch, name,state) values('%q','%q','%ld','%q','%q')",
switch_event_get_header(event, "unique-id"),
switch_event_get_header(event, "event-date-local"),
- switch_event_get_header(event, "channel-name"), switch_event_get_header(event, "channel-state")
+ (long)switch_timestamp(NULL),
+ switch_event_get_header(event, "channel-name"),
+ switch_event_get_header(event, "channel-state")
);
break;
case SWITCH_EVENT_CODEC:
@@ -305,7 +307,9 @@
}
break;
case SWITCH_EVENT_CHANNEL_BRIDGE:
- sql = switch_mprintf("insert into calls values ('%s','%q','%q','%q','%q','%s','%q','%q','%q','%q','%s')",
+ sql = switch_mprintf("insert into calls values ('%s', '%ld', '%s','%q','%q','%q','%q','%s','%q','%q','%q','%q','%s')",
+ switch_event_get_header(event, "event-date-local"),
+ (long)switch_timestamp(NULL),
switch_event_get_header(event, "event-calling-function"),
switch_event_get_header(event, "caller-caller-id-name"),
switch_event_get_header(event, "caller-caller-id-number"),
@@ -362,10 +366,33 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Opening DB!\n");
switch_clear_flag((&runtime), SCF_USE_SQL);
} else {
+ char create_complete_sql[] =
+ "CREATE TABLE complete (\n"
+ " sticky INTEGER,\n"
+ " a1 VARCHAR(255),\n"
+ " a2 VARCHAR(255),\n"
+ " a3 VARCHAR(255),\n"
+ " a4 VARCHAR(255),\n"
+ " a5 VARCHAR(255),\n"
+ " a6 VARCHAR(255),\n"
+ " a7 VARCHAR(255),\n"
+ " a8 VARCHAR(255),\n"
+ " a9 VARCHAR(255),\n"
+ " a10 VARCHAR(255)\n"
+ ");\n";
+
+ char create_alias_sql[] =
+ "CREATE TABLE aliases (\n"
+ " sticky INTEGER,\n"
+ " alias VARCHAR(255),\n"
+ " command VARCHAR(255)\n"
+ ");\n";
+
char create_channels_sql[] =
"CREATE TABLE channels (\n"
" uuid VARCHAR(255),\n"
" created VARCHAR(255),\n"
+ " created_epoch INTEGER,\n"
" name VARCHAR(255),\n"
" state VARCHAR(255),\n"
" cid_name VARCHAR(255),\n"
@@ -374,10 +401,16 @@
" dest VARCHAR(255),\n"
" application VARCHAR(255),\n"
" application_data VARCHAR(255),\n"
- " read_codec VARCHAR(255),\n" " read_rate VARCHAR(255),\n" " write_codec VARCHAR(255),\n" " write_rate VARCHAR(255)\n" ");\n";
+ " read_codec VARCHAR(255),\n"
+ " read_rate VARCHAR(255),\n"
+ " write_codec VARCHAR(255),\n"
+ " write_rate VARCHAR(255)\n"
+ ");\n";
char create_calls_sql[] =
"CREATE TABLE calls (\n"
" function VARCHAR(255),\n"
+ " created VARCHAR(255),\n"
+ " created_epoch INTEGER,\n"
" caller_cid_name VARCHAR(255),\n"
" caller_cid_num VARCHAR(255),\n"
" caller_dest_num VARCHAR(255),\n"
@@ -385,15 +418,24 @@
" caller_uuid VARCHAR(255),\n"
" callee_cid_name VARCHAR(255),\n"
" callee_cid_num VARCHAR(255),\n"
- " callee_dest_num VARCHAR(255),\n" " callee_chan_name VARCHAR(255),\n" " callee_uuid VARCHAR(255)\n" ");\n";
+ " callee_dest_num VARCHAR(255),\n"
+ " callee_chan_name VARCHAR(255),\n"
+ " callee_uuid VARCHAR(255)\n"
+ ");\n";
char create_interfaces_sql[] =
"CREATE TABLE interfaces (\n"
" type VARCHAR(255),\n"
- " name VARCHAR(255),\n" " description VARCHAR(255),\n" " syntax VARCHAR(255)\n" ");\n";
+ " name VARCHAR(255),\n"
+ " description VARCHAR(255),\n"
+ " syntax VARCHAR(255)\n"
+ ");\n";
char create_tasks_sql[] =
"CREATE TABLE tasks (\n"
" task_id INTEGER(4),\n"
- " task_desc VARCHAR(255),\n" " task_group VARCHAR(255),\n" " task_sql_manager INTEGER(8)\n" ");\n";
+ " task_desc VARCHAR(255),\n"
+ " task_group VARCHAR(255),\n"
+ " task_sql_manager INTEGER(8)\n"
+ ");\n";
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Opening DB\n");
switch_core_db_exec(sql_manager.db, "drop table channels", NULL, NULL, NULL);
@@ -405,6 +447,10 @@
switch_core_db_exec(sql_manager.db, "PRAGMA cache_size=8000", NULL, NULL, NULL);
switch_core_db_exec(sql_manager.db, "PRAGMA temp_store=MEMORY;", NULL, NULL, NULL);
+ switch_core_db_test_reactive(sql_manager.db, "select sticky from complete", "DROP TABLE complete", create_complete_sql);
+ switch_core_db_test_reactive(sql_manager.db, "select sticky from aliases", "DROP TABLE aliases", create_alias_sql);
+ switch_core_db_exec(sql_manager.db, "delete from complete where sticky=0", NULL, NULL, NULL);
+ switch_core_db_exec(sql_manager.db, "delete from aliases where sticky=0", NULL, NULL, NULL);
switch_core_db_exec(sql_manager.db, create_channels_sql, NULL, NULL, NULL);
switch_core_db_exec(sql_manager.db, create_calls_sql, NULL, NULL, NULL);
switch_core_db_exec(sql_manager.db, create_interfaces_sql, NULL, NULL, NULL);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_cpp.cpp
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_cpp.cpp (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_cpp.cpp Tue May 13 22:16:21 2008
@@ -37,13 +37,281 @@
#pragma warning(disable:4127 4003)
#endif
-#define sanity_check(x) do { if (!(session && allocated)) { switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "session is not initalized\n"); return x;}} while(0)
-#define sanity_check_noreturn do { if (!(session && allocated)) { switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "session is not initalized\n"); return;}} while(0)
-#define init_vars() do { session = NULL; channel = NULL; uuid = NULL; tts_name = NULL; voice_name = NULL; memset(&args, 0, sizeof(args)); ap = NULL; caller_profile.source = "mod_unknown"; caller_profile.dialplan = ""; caller_profile.context = ""; caller_profile.caller_id_name = ""; caller_profile.caller_id_number = ""; caller_profile.network_addr = ""; caller_profile.ani = ""; caller_profile.aniii = ""; caller_profile.rdnis = ""; caller_profile.username = ""; on_hangup = NULL; cb_state.function = NULL; } while(0)
+SWITCH_DECLARE_CONSTRUCTOR IVRMenu::IVRMenu(IVRMenu *main,
+ const char *name,
+ const char *greeting_sound,
+ const char *short_greeting_sound,
+ const char *invalid_sound,
+ const char *exit_sound,
+ const char *confirm_macro,
+ const char *confirm_key,
+ int confirm_attempts,
+ int inter_timeout,
+ int digit_len,
+ int timeout,
+ int max_failures)
+{
+ menu = NULL;
+ switch_core_new_memory_pool(&pool);
+ switch_assert(pool);
+ if (switch_strlen_zero(name)) {
+ name = "no name";
+ }
+
+ switch_ivr_menu_init(&menu, main ? main->menu : NULL, name, greeting_sound, short_greeting_sound, invalid_sound,
+ exit_sound, confirm_macro, confirm_key, confirm_attempts, inter_timeout, digit_len, timeout, max_failures, pool);
+
+
+}
+
+SWITCH_DECLARE_CONSTRUCTOR IVRMenu::~IVRMenu()
+{
+ if (menu) {
+ switch_ivr_menu_stack_free(menu);
+ }
+ switch_core_destroy_memory_pool(&pool);
+}
+
+SWITCH_DECLARE(void) IVRMenu::bindAction(char *action, const char *arg, const char *bind)
+{
+ switch_ivr_action_t ivr_action = SWITCH_IVR_ACTION_NOOP;
+
+ if (switch_ivr_menu_str2action(action, &ivr_action) == SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "bind %s to %s(%s)\n", bind, action, arg);
+ switch_ivr_menu_bind_action(menu, ivr_action, arg, bind);
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "invalid action %s\n", action);
+ }
+}
+
+SWITCH_DECLARE(void) IVRMenu::execute(CoreSession *session, const char *name)
+{
+ switch_ivr_menu_execute(session->session, menu, (char *)name, NULL);
+}
+
+SWITCH_DECLARE_CONSTRUCTOR API::API()
+{
+ last_data = NULL;
+}
+
+SWITCH_DECLARE_CONSTRUCTOR API::~API()
+{
+ switch_safe_free(last_data);
+}
+
+
+SWITCH_DECLARE(char *) API::execute(const char *cmd, const char *arg)
+{
+ switch_stream_handle_t stream = { 0 };
+ SWITCH_STANDARD_STREAM(stream);
+ switch_api_execute(cmd, arg, NULL, &stream);
+ last_data = (char *) stream.data;
+ return last_data;
+}
+
+SWITCH_DECLARE(char *) API::executeString(const char *cmd)
+{
+ char *arg;
+ switch_stream_handle_t stream = { 0 };
+ char *mycmd = strdup(cmd);
+
+ switch_assert(mycmd);
+
+ if ((arg = strchr(mycmd, ' '))) {
+ *arg++ = '\0';
+ }
+
+ switch_safe_free(last_data);
+
+ SWITCH_STANDARD_STREAM(stream);
+ switch_api_execute(mycmd, arg, NULL, &stream);
+ last_data = (char *) stream.data;
+ switch_safe_free(mycmd);
+ return last_data;
+}
+
+SWITCH_DECLARE_CONSTRUCTOR Event::Event(const char *type, const char *subclass_name)
+{
+ switch_event_types_t event_id;
+
+ if (switch_name_event(type, &event_id) != SWITCH_STATUS_SUCCESS) {
+ event_id = SWITCH_EVENT_MESSAGE;
+ }
+
+ switch_event_create_subclass(&event, event_id, subclass_name);
+ serialized_string = NULL;
+ mine = 1;
+}
+
+SWITCH_DECLARE_CONSTRUCTOR Event::Event(switch_event_t *wrap_me, int free_me)
+{
+ event = wrap_me;
+ mine = free_me;
+ serialized_string = NULL;
+}
+
+SWITCH_DECLARE_CONSTRUCTOR Event::~Event()
+{
+
+ if (serialized_string) {
+ free(serialized_string);
+ }
+
+ if (event && mine) {
+ switch_event_destroy(&event);
+ }
+}
+
+
+SWITCH_DECLARE(const char *)Event::serialize(const char *format)
+{
+ int isxml = 0;
+
+ if (serialized_string) {
+ free(serialized_string);
+ }
+
+ if (!event) {
+ return "";
+ }
+
+ if (format && !strcasecmp(format, "xml")) {
+ isxml++;
+ }
+
+ if (isxml) {
+ switch_xml_t xml;
+ if ((xml = switch_event_xmlize(event, SWITCH_VA_NONE))) {
+ serialized_string = switch_xml_toxml(xml, SWITCH_FALSE);
+ switch_xml_free(xml);
+ return serialized_string;
+ } else {
+ return "";
+ }
+ } else {
+ if (switch_event_serialize(event, &serialized_string, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) {
+ return serialized_string;
+ }
+ }
+
+ return "";
+
+}
+
+SWITCH_DECLARE(bool) Event::fire(void)
+{
+ if (!mine) {
+ switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "Not My event!\n");
+ return false;
+ }
+
+ if (event) {
+ switch_event_t *new_event;
+ if (switch_event_dup(&new_event, event) == SWITCH_STATUS_SUCCESS) {
+ switch_event_fire(&new_event);
+ return true;
+ }
+ }
+ return false;
+}
+
+SWITCH_DECLARE(bool) Event::setPriority(switch_priority_t priority)
+{
+ if (event) {
+ switch_event_set_priority(event, priority);
+ return true;
+ }
+ return false;
+}
+
+SWITCH_DECLARE(char *)Event::getHeader(char *header_name)
+{
+ if (event) {
+ return switch_event_get_header(event, header_name);
+ }
+ return NULL;
+}
+
+SWITCH_DECLARE(bool) Event::addHeader(const char *header_name, const char *value)
+{
+ if (event) {
+ return switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, value) == SWITCH_STATUS_SUCCESS ? true : false;
+ }
+
+ return false;
+}
+
+SWITCH_DECLARE(bool) Event::delHeader(const char *header_name)
+{
+ if (event) {
+ return switch_event_del_header(event, header_name) == SWITCH_STATUS_SUCCESS ? true : false;
+ }
+
+ return false;
+}
+
+
+SWITCH_DECLARE(bool) Event::addBody(const char *value)
+{
+ if (event) {
+ return switch_event_add_body(event, "%s", value) == SWITCH_STATUS_SUCCESS ? true : false;
+ }
+
+ return false;
+}
+
+SWITCH_DECLARE(char *)Event::getBody(void)
+{
+ if (event) {
+ return switch_event_get_body(event);
+ }
+
+ return NULL;
+}
+
+SWITCH_DECLARE(char *)Event::getType(void)
+{
+ if (event) {
+ return switch_event_name(event->event_id);
+ }
+
+ return "invalid";
+}
+SWITCH_DECLARE_CONSTRUCTOR Stream::Stream()
+{
+ SWITCH_STANDARD_STREAM(mystream);
+ stream_p = &mystream;
+ mine = 1;
+}
-CoreSession::CoreSession()
+SWITCH_DECLARE_CONSTRUCTOR Stream::Stream(switch_stream_handle_t *sp)
+{
+ stream_p = sp;
+ mine = 0;
+}
+
+
+SWITCH_DECLARE_CONSTRUCTOR Stream::~Stream()
+{
+ if (mine) {
+ switch_safe_free(mystream.data);
+ }
+}
+
+SWITCH_DECLARE(void) Stream::write(const char *data)
+{
+ stream_p->write_function(stream_p, "%s", data);
+}
+
+SWITCH_DECLARE(const char *)Stream::get_data()
+{
+ return stream_p ? (const char *)stream_p->data : NULL;
+}
+
+
+SWITCH_DECLARE_CONSTRUCTOR CoreSession::CoreSession()
{
session = NULL;
channel = NULL;
@@ -69,18 +337,27 @@
}
-CoreSession::CoreSession(char *nuuid)
+SWITCH_DECLARE_CONSTRUCTOR CoreSession::CoreSession(char *nuuid)
{
memset(&caller_profile, 0, sizeof(caller_profile));
init_vars();
- if (session = switch_core_session_locate(nuuid)) {
- channel = switch_core_session_get_channel(session);
+ if (!strchr(nuuid, '/') && (session = switch_core_session_locate(nuuid))) {
uuid = strdup(nuuid);
+ channel = switch_core_session_get_channel(session);
allocated = 1;
- }
+ } else {
+ switch_call_cause_t cause;
+ if (switch_ivr_originate(NULL, &session, &cause, nuuid, 60, NULL, NULL, NULL, NULL, SOF_NONE) == SWITCH_STATUS_SUCCESS) {
+ channel = switch_core_session_get_channel(session);
+ allocated = 1;
+ switch_set_flag(this, S_HUP);
+ uuid = strdup(switch_core_session_get_uuid(session));
+ switch_channel_set_state(switch_core_session_get_channel(session), CS_TRANSMIT);
+ }
+ }
}
-CoreSession::CoreSession(switch_core_session_t *new_session)
+SWITCH_DECLARE_CONSTRUCTOR CoreSession::CoreSession(switch_core_session_t *new_session)
{
memset(&caller_profile, 0, sizeof(caller_profile));
init_vars();
@@ -92,14 +369,14 @@
}
}
-CoreSession::~CoreSession()
+SWITCH_DECLARE_CONSTRUCTOR CoreSession::~CoreSession()
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CoreSession::~CoreSession desctructor\n");
switch_channel_t *channel = NULL;
if (session) {
channel = switch_core_session_get_channel(session);
- if (switch_test_flag(this, S_HUP)) {
+ if (switch_test_flag(this, S_HUP) && !switch_channel_test_flag(channel, CF_TRANSFER)) {
switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);
}
switch_core_session_rwunlock(session);
@@ -110,7 +387,7 @@
switch_safe_free(voice_name);
}
-int CoreSession::answer()
+SWITCH_DECLARE(int) CoreSession::answer()
{
switch_status_t status;
@@ -119,7 +396,7 @@
return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
}
-int CoreSession::preAnswer()
+SWITCH_DECLARE(int) CoreSession::preAnswer()
{
switch_status_t status;
sanity_check(-1);
@@ -127,26 +404,38 @@
return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
}
-void CoreSession::hangup(char *cause)
+SWITCH_DECLARE(void) CoreSession::hangup(char *cause)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CoreSession::hangup\n");
sanity_check_noreturn;
switch_channel_hangup(channel, switch_channel_str2cause(cause));
}
-void CoreSession::setVariable(char *var, char *val)
+SWITCH_DECLARE(void) CoreSession::setPrivate(char *var, void *val)
+{
+ sanity_check_noreturn;
+ switch_channel_set_private(channel, var, val);
+}
+
+SWITCH_DECLARE(void *)CoreSession::getPrivate(char *var)
+{
+ sanity_check(NULL);
+ return switch_channel_get_private(channel, var);
+}
+
+SWITCH_DECLARE(void) CoreSession::setVariable(char *var, char *val)
{
sanity_check_noreturn;
switch_channel_set_variable(channel, var, val);
}
-const char *CoreSession::getVariable(char *var)
+SWITCH_DECLARE(const char *)CoreSession::getVariable(char *var)
{
sanity_check(NULL);
return switch_channel_get_variable(channel, var);
}
-void CoreSession::execute(char *app, char *data)
+SWITCH_DECLARE(void) CoreSession::execute(char *app, char *data)
{
const switch_application_interface_t *application_interface;
sanity_check_noreturn;
@@ -159,7 +448,7 @@
}
}
-void CoreSession::setDTMFCallback(void *cbfunc, char *funcargs) {
+SWITCH_DECLARE(void) CoreSession::setDTMFCallback(void *cbfunc, char *funcargs) {
sanity_check_noreturn;
@@ -181,7 +470,17 @@
}
-int CoreSession::speak(char *text)
+SWITCH_DECLARE(void) CoreSession::sendEvent(Event *sendME)
+{
+ if (sendME->event) {
+ switch_event_t *new_event;
+ if (switch_event_dup(&new_event, sendME->event) == SWITCH_STATUS_SUCCESS) {
+ switch_core_session_receive_event(session, &new_event);
+ }
+ }
+}
+
+SWITCH_DECLARE(int) CoreSession::speak(char *text)
{
switch_status_t status;
@@ -209,7 +508,7 @@
return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
}
-void CoreSession::set_tts_parms(char *tts_name_p, char *voice_name_p)
+SWITCH_DECLARE(void) CoreSession::set_tts_parms(char *tts_name_p, char *voice_name_p)
{
sanity_check_noreturn;
switch_safe_free(tts_name);
@@ -220,7 +519,7 @@
-int CoreSession::collectDigits(int timeout) {
+SWITCH_DECLARE(int) CoreSession::collectDigits(int timeout) {
sanity_check(-1);
begin_allow_threads();
switch_ivr_collect_digits_callback(session, ap, timeout);
@@ -228,31 +527,30 @@
return SWITCH_STATUS_SUCCESS;
}
-int CoreSession::getDigits(char *dtmf_buf,
- switch_size_t buflen,
- switch_size_t maxdigits,
- char *terminators,
- char *terminator,
- int timeout)
+SWITCH_DECLARE(char *) CoreSession::getDigits(int maxdigits,
+ char *terminators,
+ int timeout)
{
switch_status_t status;
- sanity_check(-1);
+ sanity_check("");
begin_allow_threads();
+ char terminator;
+ memset(dtmf_buf, 0, sizeof(dtmf_buf));
status = switch_ivr_collect_digits_count(session,
dtmf_buf,
- buflen,
+ sizeof(dtmf_buf),
maxdigits,
terminators,
- terminator,
+ &terminator,
(uint32_t) timeout, 0, 0);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "getDigits dtmf_buf: %s\n", dtmf_buf);
end_allow_threads();
- return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
+ return dtmf_buf;
}
-int CoreSession::transfer(char *extension, char *dialplan, char *context)
+SWITCH_DECLARE(int) CoreSession::transfer(char *extension, char *dialplan, char *context)
{
switch_status_t status;
sanity_check(-1);
@@ -263,19 +561,42 @@
return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
}
-int CoreSession::playAndGetDigits(int min_digits,
- int max_digits,
- int max_tries,
- int timeout,
- char *terminators,
- char *audio_files,
- char *bad_input_audio_files,
- char *dtmf_buf,
- char *digits_regex)
+
+SWITCH_DECLARE(char *) CoreSession::read(int min_digits,
+ int max_digits,
+ const char *prompt_audio_file,
+ int timeout,
+ const char *valid_terminators)
+{
+ if (min_digits < 1) {
+ min_digits = 1;
+ }
+
+ if (max_digits < 1) {
+ max_digits = 1;
+ }
+
+ if (timeout < 1) {
+ timeout = 1;
+ }
+
+ switch_ivr_read(session, min_digits, max_digits, prompt_audio_file, NULL, dtmf_buf, sizeof(dtmf_buf), timeout, valid_terminators);
+ return dtmf_buf;
+}
+
+SWITCH_DECLARE(char *) CoreSession::playAndGetDigits(int min_digits,
+ int max_digits,
+ int max_tries,
+ int timeout,
+ char *terminators,
+ char *audio_files,
+ char *bad_input_audio_files,
+ char *digits_regex)
{
switch_status_t status;
- sanity_check(-1);
+ sanity_check("");
begin_allow_threads();
+ memset(dtmf_buf, 0, sizeof(dtmf_buf));
status = switch_play_and_get_digits( session,
(uint32_t) min_digits,
(uint32_t) max_digits,
@@ -285,57 +606,53 @@
audio_files,
bad_input_audio_files,
dtmf_buf,
- 128,
+ sizeof(dtmf_buf),
digits_regex);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "playAndGetDigits dtmf_buf: %s\n", dtmf_buf);
end_allow_threads();
- return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
+ return dtmf_buf;
}
-int CoreSession::streamFile(char *file, int starting_sample_count) {
+SWITCH_DECLARE(int) CoreSession::streamFile(char *file, int starting_sample_count) {
switch_status_t status;
- switch_file_handle_t fh = { 0 };
+ //switch_file_handle_t fh = { 0 };
const char *prebuf;
sanity_check(-1);
- fh.samples = starting_sample_count;
- store_file_handle(&fh);
+
+ memset(&local_fh, 0, sizeof(local_fh));
+ fhp = &local_fh;
+ local_fh.samples = starting_sample_count;
- begin_allow_threads();
- status = switch_ivr_play_file(session, &fh, file, ap);
- end_allow_threads();
if ((prebuf = switch_channel_get_variable(this->channel, "stream_prebuffer"))) {
int maybe = atoi(prebuf);
if (maybe > 0) {
- fh.prebuf = maybe;
+ local_fh.prebuf = maybe;
}
}
- return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
-}
+ store_file_handle(&local_fh);
-bool CoreSession::ready() {
+ begin_allow_threads();
+ status = switch_ivr_play_file(session, fhp, file, ap);
+ end_allow_threads();
- switch_channel_t *channel;
+ return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
- if (!session) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "You must call the session.originate method before calling this method!\n");
- return false;
- }
+}
- channel = switch_core_session_get_channel(session);
+SWITCH_DECLARE(bool) CoreSession::ready() {
+ sanity_check(false);
return switch_channel_ready(channel) != 0;
}
-int CoreSession::originate(CoreSession *a_leg_session,
- char *dest,
- int timeout)
+SWITCH_DECLARE(int) CoreSession::originate(CoreSession *a_leg_session, char *dest, int timeout)
{
switch_memory_pool_t *pool = NULL;
@@ -375,7 +692,10 @@
}
if (a_leg_session) a_leg_session->end_allow_threads();
+ channel = switch_core_session_get_channel(session);
allocated = 1;
+ switch_channel_set_state(switch_core_session_get_channel(session), CS_TRANSMIT);
+
return SWITCH_STATUS_SUCCESS;
failed:
@@ -383,7 +703,7 @@
return SWITCH_STATUS_FALSE;
}
-int CoreSession::recordFile(char *file_name, int max_len, int silence_threshold, int silence_secs)
+SWITCH_DECLARE(int) CoreSession::recordFile(char *file_name, int max_len, int silence_threshold, int silence_secs)
{
switch_file_handle_t fh = { 0 };
switch_status_t status;
@@ -398,7 +718,7 @@
}
-int CoreSession::flushEvents()
+SWITCH_DECLARE(int) CoreSession::flushEvents()
{
switch_event_t *event;
switch_channel_t *channel;
@@ -414,13 +734,13 @@
return SWITCH_STATUS_SUCCESS;
}
-int CoreSession::flushDigits()
+SWITCH_DECLARE(int) CoreSession::flushDigits()
{
switch_channel_flush_dtmf(switch_core_session_get_channel(session));
return SWITCH_STATUS_SUCCESS;
}
-int CoreSession::setAutoHangup(bool val)
+SWITCH_DECLARE(int) CoreSession::setAutoHangup(bool val)
{
if (!session) {
return SWITCH_STATUS_FALSE;
@@ -433,7 +753,7 @@
return SWITCH_STATUS_SUCCESS;
}
-void CoreSession::setCallerData(char *var, char *val) {
+SWITCH_DECLARE(void) CoreSession::setCallerData(char *var, char *val) {
if (strcmp(var, "dialplan") == 0) {
caller_profile.dialplan = val;
@@ -465,7 +785,7 @@
}
-void CoreSession::setHangupHook(void *hangup_func) {
+SWITCH_DECLARE(void) CoreSession::setHangupHook(void *hangup_func) {
sanity_check_noreturn;
@@ -496,8 +816,17 @@
/* ---- methods not bound to CoreSession instance ---- */
+SWITCH_DECLARE(void) consoleLog(char *level_str, char *msg)
+{
+ return console_log(level_str, msg);
+}
+
+SWITCH_DECLARE(void) consoleCleanLog(char *msg)
+{
+ return console_clean_log(msg);
+}
-void console_log(char *level_str, char *msg)
+SWITCH_DECLARE(void) console_log(char *level_str, char *msg)
{
switch_log_level_t level = SWITCH_LOG_DEBUG;
if (level_str) {
@@ -506,33 +835,16 @@
level = SWITCH_LOG_DEBUG;
}
}
- switch_log_printf(SWITCH_CHANNEL_LOG, level, msg);
- fflush(stdout); // TEMP ONLY!! SHOULD NOT BE CHECKED IN!!
+ switch_log_printf(SWITCH_CHANNEL_LOG, level, "%s", switch_str_nil(msg));
}
-void console_clean_log(char *msg)
+SWITCH_DECLARE(void) console_clean_log(char *msg)
{
- switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN,SWITCH_LOG_DEBUG, msg);
+ switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN,SWITCH_LOG_DEBUG, "%s", switch_str_nil(msg));
}
-char *api_execute(char *cmd, char *arg)
-{
- switch_stream_handle_t stream = { 0 };
- SWITCH_STANDARD_STREAM(stream);
- switch_api_execute(cmd, arg, NULL, &stream);
- return (char *) stream.data;
-}
-
-void api_reply_delete(char *reply)
-{
- if (!switch_strlen_zero(reply)) {
- free(reply);
- }
-}
-
-
-void bridge(CoreSession &session_a, CoreSession &session_b)
+SWITCH_DECLARE(void) bridge(CoreSession &session_a, CoreSession &session_b)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "bridge called, session_a uuid: %s\n", session_a.get_uuid());
switch_input_callback_function_t dtmf_func = NULL;
@@ -546,15 +858,14 @@
}
-
-switch_status_t hanguphook(switch_core_session_t *session_hungup)
+SWITCH_DECLARE_NONSTD(switch_status_t) hanguphook(switch_core_session_t *session_hungup)
{
switch_channel_t *channel = switch_core_session_get_channel(session_hungup);
CoreSession *coresession = NULL;
switch_channel_state_t state = switch_channel_get_state(channel);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hangup_hook called\n");
- fflush(stdout);
+
if ((coresession = (CoreSession *) switch_channel_get_private(channel, "CoreSession"))) {
if (coresession->hook_state != state) {
@@ -567,7 +878,7 @@
}
-switch_status_t dtmf_callback(switch_core_session_t *session_cb,
+SWITCH_DECLARE_NONSTD(switch_status_t) dtmf_callback(switch_core_session_t *session_cb,
void *input,
switch_input_type_t itype,
void *buf,
@@ -578,9 +889,11 @@
switch_status_t result;
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "dtmf_callback called\n");
- fflush(stdout);
+
+ //coresession = (CoreSession *) buf;
coresession = (CoreSession *) switch_channel_get_private(channel, "CoreSession");
+
if (!coresession) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid CoreSession\n");
return SWITCH_STATUS_FALSE;
@@ -595,24 +908,28 @@
}
-switch_status_t process_callback_result(char *ret,
- struct input_callback_state *cb_state,
- switch_core_session_t *session)
+
+
+SWITCH_DECLARE(switch_status_t) CoreSession::process_callback_result(char *ret)
{
switch_file_handle_t *fh = NULL;
- if (!cb_state) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Process callback result aborted because cb_state is null\n");
- return SWITCH_STATUS_FALSE;
+ if (switch_strlen_zero(ret)) {
+ return SWITCH_STATUS_SUCCESS;
}
- if (!cb_state->extra) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Process callback result aborted because cb_state->extra is null\n");
- return SWITCH_STATUS_FALSE;
- }
+ if (fhp) {
+ fh = fhp;
+ } else {
+ if (!cb_state.extra) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Process callback result aborted because cb_state.extra is null\n");
+ return SWITCH_STATUS_FALSE;
+ }
+
+ fh = (switch_file_handle_t *) cb_state.extra;
+ }
- fh = (switch_file_handle_t *) cb_state->extra;
if (!fh) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Process callback result aborted because fh is null\n");
@@ -624,11 +941,6 @@
return SWITCH_STATUS_FALSE;
}
- if (!ret) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Process callback result aborted because ret is null\n");
- return SWITCH_STATUS_FALSE;
- }
-
if (!session) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Process callback result aborted because session is null\n");
return SWITCH_STATUS_FALSE;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_event.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_event.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_event.c Tue May 13 22:16:21 2008
@@ -632,6 +632,7 @@
if (ret == -1) {
return SWITCH_STATUS_GENERR;
} else {
+ switch_safe_free(event->body);
event->body = data;
return SWITCH_STATUS_SUCCESS;
}
@@ -871,7 +872,7 @@
add_xml_header(xml, hp->name, hp->value, off++);
}
- if (data) {
+ if (!switch_strlen_zero(data)) {
body = data;
} else if (event->body) {
body = event->body;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr.c Tue May 13 22:16:21 2008
@@ -741,7 +741,7 @@
return status;
}
-SWITCH_DECLARE(switch_status_t) switch_ivr_hold(switch_core_session_t *session, const char *message)
+SWITCH_DECLARE(switch_status_t) switch_ivr_hold(switch_core_session_t *session, const char *message, switch_bool_t moh)
{
switch_core_session_message_t msg = { 0 };
switch_channel_t *channel = switch_core_session_get_channel(session);
@@ -756,8 +756,8 @@
switch_channel_set_flag(channel, CF_SUSPEND);
switch_core_session_receive_message(session, &msg);
-
- if ((stream = switch_channel_get_variable(channel, SWITCH_HOLD_MUSIC_VARIABLE))) {
+
+ if (moh && (stream = switch_channel_get_variable(channel, SWITCH_HOLD_MUSIC_VARIABLE))) {
if ((other_uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE))) {
switch_ivr_broadcast(other_uuid, stream, SMF_ECHO_ALEG | SMF_LOOP);
}
@@ -767,12 +767,12 @@
return SWITCH_STATUS_SUCCESS;
}
-SWITCH_DECLARE(switch_status_t) switch_ivr_hold_uuid(const char *uuid, const char *message)
+SWITCH_DECLARE(switch_status_t) switch_ivr_hold_uuid(const char *uuid, const char *message, switch_bool_t moh)
{
switch_core_session_t *session;
if ((session = switch_core_session_locate(uuid))) {
- switch_ivr_hold(session, message);
+ switch_ivr_hold(session, message, moh);
switch_core_session_rwunlock(session);
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_bridge.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_bridge.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_bridge.c Tue May 13 22:16:21 2008
@@ -161,8 +161,12 @@
}
if (!nosuspend && (switch_channel_test_flag(chan_a, CF_SUSPEND) || switch_channel_test_flag(chan_b, CF_SUSPEND))) {
- status = switch_core_session_read_frame(session_a, &read_frame, -1, stream_id);
-
+ if (switch_channel_test_flag(chan_a, CF_SUSPEND)) {
+ status = SWITCH_STATUS_SUCCESS;
+ } else {
+ status = switch_core_session_read_frame(session_a, &read_frame, -1, stream_id);
+ }
+
if (!SWITCH_READ_ACCEPTABLE(status)) {
goto end_of_bridge_loop;
}
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_menu.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_menu.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_menu.c Tue May 13 22:16:21 2008
@@ -601,6 +601,27 @@
};
+SWITCH_DECLARE(switch_status_t) switch_ivr_menu_str2action(const char *action_name, switch_ivr_action_t *action)
+{
+ int i;
+
+ if (!switch_strlen_zero(action_name)) {
+ for(i = 0;;i++) {
+ if (!iam[i].name) {
+ break;
+ }
+
+ if (!strcasecmp(iam[i].name, action_name)) {
+ *action = iam[i].action;
+ return SWITCH_STATUS_SUCCESS;
+ }
+ }
+ }
+
+ return SWITCH_STATUS_FALSE;
+}
+
+
static switch_bool_t is_valid_action(const char *action)
{
int i;
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_play_say.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_play_say.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/src/switch_ivr_play_say.c Tue May 13 22:16:21 2008
@@ -1239,7 +1239,7 @@
switch_channel_pre_answer(channel);
//Start pestering the user for input
- for (; (switch_channel_get_state(channel) == CS_EXECUTE) && max_tries > 0; max_tries--) {
+ for (; switch_channel_ready(channel) && max_tries > 0; max_tries--) {
switch_input_args_t args = { 0 };
//make the buffer so fresh and so clean clean
memset(digit_buffer, 0, digit_buffer_length);
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Library/FreeSwitchCore.2008.vcproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Library/FreeSwitchCore.2008.vcproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Library/FreeSwitchCore.2008.vcproj Tue May 13 22:16:21 2008
@@ -389,8 +389,6 @@
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="0"
- PrecompiledHeaderThrough=""
- PrecompiledHeaderFile=""
/>
</FileConfiguration>
<FileConfiguration
@@ -399,8 +397,6 @@
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="0"
- PrecompiledHeaderThrough=""
- PrecompiledHeaderFile=""
/>
</FileConfiguration>
</File>
Modified: freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Library/FreeSwitchCore.vcproj
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Library/FreeSwitchCore.vcproj (original)
+++ freeswitch/branches/lukedashjr/syslibs/freeswitch/w32/Library/FreeSwitchCore.vcproj Tue May 13 22:16:21 2008
@@ -227,6 +227,26 @@
</FileConfiguration>
</File>
<File
+ RelativePath="..\..\src\inet_pton.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ </File>
+ <File
RelativePath="..\..\libs\stfu\stfu.c"
>
<FileConfiguration
@@ -533,11 +553,11 @@
>
</File>
<File
- RelativePath="..\..\src\include\switch_core.h"
+ RelativePath="..\..\src\include\private\switch_core.h"
>
</File>
<File
- RelativePath="..\..\src\include\private\switch_core.h"
+ RelativePath="..\..\src\include\switch_core.h"
>
</File>
<File
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/.update
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/.update (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/.update Tue May 13 22:16:21 2008
@@ -1 +1 @@
-Mon Apr 7 15:44:29 EDT 2008
+Wed Apr 23 14:38:18 EDT 2008
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_notifier.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_notifier.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/nua/nua_notifier.c Tue May 13 22:16:21 2008
@@ -340,7 +340,8 @@
{
nua_handle_t *nh = sr->sr_owner;
nua_dialog_state_t *ds = nh->nh_ds;
- struct notifier_usage *nu = nua_dialog_usage_private(sr->sr_usage);
+ nua_dialog_usage_t *du = sr->sr_usage;
+ struct notifier_usage *nu = nua_dialog_usage_private(du);
enum nua_substate substate = nua_substate_terminated;
int notify = 0;
int retval;
@@ -365,16 +366,18 @@
else
#endif
notify = 1;
+
+ notify = notify && du->du_cr != NULL;
}
retval = nua_base_server_treport(sr, NUTAG_SUBSTATE(substate), TAG_END());
- if (retval >= 2 || nu == NULL)
+ if (retval >= 2 || du == NULL)
return retval;
if (notify) {
/* Send NOTIFY (and terminate subscription, when needed) */
- nua_dialog_usage_refresh(nh, ds, sr->sr_usage, sip_now());
+ nua_dialog_usage_refresh(nh, ds, du, sip_now());
}
return retval;
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/sip/sip_util.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/sip/sip_util.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/sip/sip_util.c Tue May 13 22:16:21 2008
@@ -412,7 +412,7 @@
for (rv = su_alloc(home, len);
rv;
rv = su_realloc(home, rv, len)) {
- ssize_t n = sip_header_field_e(s, sizeof(s), h, 0);
+ ssize_t n = sip_header_field_e(rv, len, h, 0);
if (n > -1 && n + 1 <= len)
break;
if (n > -1) /* glibc >2.1 */
Modified: freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/sip/torture_sip.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/sip/torture_sip.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/sofia-sip/libsofia-sip-ua/sip/torture_sip.c Tue May 13 22:16:21 2008
@@ -2247,6 +2247,31 @@
END();
}
+static int test_www_authenticate(void)
+{
+ sip_www_authenticate_t *www;
+ su_home_t *home;
+ char const *s;
+ BEGIN();
+
+ TEST_1(home = su_home_create());
+ TEST_1(www = sip_www_authenticate_make
+ (home, "Digest realm=\"Registered_Subscribers\",\n"
+ "domain=\"sip:206.229.26.61\",\n"
+ "nonce=\"20dfb7e5a77abee7a02dbe53efe42cdd\", "
+ "opaque=\"423767123y723742376423762376423784623782a794e58\",\n"
+ "stale=FALSE,algorithm=MD5"));
+ TEST_S(www->au_scheme, "Digest");
+ TEST_1(www->au_params && www->au_params[0] && www->au_params[1] && www->au_params[2] &&
+ www->au_params[3] && www->au_params[4] && www->au_params[5] &&
+ !www->au_params[6]);
+ TEST_1(s = sip_header_as_string(home, (sip_header_t *)www));
+ TEST_1(strlen(s) >= 128);
+
+ su_home_unref(home);
+ END();
+}
+
int test_retry_after(void)
{
/* Test Session-Expires header */
@@ -3548,7 +3573,7 @@
retval |= test_caller_prefs(); fflush(stdout);
retval |= test_callerpref_scoring(); fflush(stdout);
retval |= test_warning(); fflush(stdout);
-
+ retval |= test_www_authenticate(); fflush(stdout);
retval |= test_sec_ext(); fflush(stdout);
retval |= test_utils(); fflush(stdout);
Modified: freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/lpc10_decode.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/lpc10_decode.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/lpc10_decode.c Tue May 13 22:16:21 2008
@@ -66,7 +66,7 @@
/* The following is a 16 bit 2's complement addition,
with overflow checking disabled */
- s->y[s->k] += s->y[s->j];
+ s->y[s->k] = (int16_t)(s->y[s->k] + s->y[s->j]);
ret_val = s->y[s->k];
if (--s->k < 0)
s->k = 4;
@@ -430,6 +430,7 @@
ip = (int32_t) uvpit;
if (ip <= i - jused)
{
+ float f;
++(*nout);
ipiti[*nout - 1] = ip;
*pitch = ip;
@@ -444,7 +445,8 @@
xxy = expf(xxy);
rci[j + *nout*rci_dim1 + 1] = (xxy - 1.0f)/(xxy + 1.0f);
}
- rmsi[*nout - 1] = logf(s->rmso) + prop*(logf(*rms) - logf(s->rmso));
+ f = ((logf(*rms)) - (logf(s->rmso)));
+ rmsi[*nout - 1] = logf(s->rmso) + (prop * f);
rmsi[*nout - 1] = expf(rmsi[*nout - 1]);
}
}
Modified: freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/oki_adpcm.c
==============================================================================
--- freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/oki_adpcm.c (original)
+++ freeswitch/branches/lukedashjr/syslibs/libs/voipcodecs/src/oki_adpcm.c Tue May 13 22:16:21 2008
@@ -177,7 +177,7 @@
e += (ss >> 1);
/*endif*/
if (adpcm & 0x04)
- e += ss;
+ e = (int16_t)(e + ss);
/*endif*/
if (adpcm & 0x08)
e = -e;
@@ -192,7 +192,7 @@
/*endif*/
s->last = linear;
- s->step_index += step_adjustment[adpcm & 0x07];
+ s->step_index = (int16_t)(s->step_index + step_adjustment[adpcm & 0x07]);
if (s->step_index < 0)
s->step_index = 0;
else if (s->step_index > 48)
@@ -221,13 +221,13 @@
if (e >= ss)
{
adpcm |= (uint8_t) 0x04;
- e -= ss;
+ e = (int16_t)(e - ss);
}
/*endif*/
if (e >= (ss >> 1))
{
adpcm |= (uint8_t) 0x02;
- e -= ss;
+ e = (int16_t)(e - ss);
}
/*endif*/
if (e >= (ss >> 2))
1
0