From a3ccefa7e138096c2e8e753ca8ce1c423f92a38b Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 11 Jul 2008 19:42:52 +0000 Subject: [PATCH] snake charming git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8998 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- Makefile.am | 6 +- build/swigall.sh | 3 +- src/include/switch_cpp.h | 10 +- .../src/org/freeswitch/swig/DTMF.java | 60 + .../freeswitch/swig/SWIGTYPE_p_uint32_t.java | 26 + .../org/freeswitch/swig/freeswitchJNI.java | 7 + .../languages/mod_java/switch_swig_wrap.cpp | 111 + src/mod/languages/mod_lua/mod_lua_wrap.cpp | 304 +- src/mod/languages/mod_perl/freeswitch.pm | 41 + src/mod/languages/mod_perl/mod_perl_wrap.cpp | 422 ++- src/mod/languages/mod_python/Makefile.in | 15 +- src/mod/languages/mod_python/freeswitch.py | 65 +- .../mod_python/freeswitch_python.cpp | 487 ++- .../languages/mod_python/freeswitch_python.h | 76 +- src/mod/languages/mod_python/hack.diff | 53 + src/mod/languages/mod_python/mod_python.c | 23 +- src/mod/languages/mod_python/mod_python.i | 2 - .../languages/mod_python/mod_python_extra.c | 65 + .../languages/mod_python/mod_python_extra.h | 11 + .../languages/mod_python/mod_python_wrap.cpp | 1086 ++++-- .../languages/mod_python/switch_swig_wrap.c | 2948 ----------------- .../mod_python/switch_swig_wrap.c.bkp | 1336 -------- src/switch_cpp.cpp | 67 +- 23 files changed, 2318 insertions(+), 4906 deletions(-) create mode 100644 src/mod/languages/mod_java/src/org/freeswitch/swig/DTMF.java create mode 100644 src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_uint32_t.java create mode 100644 src/mod/languages/mod_python/hack.diff create mode 100644 src/mod/languages/mod_python/mod_python_extra.c create mode 100644 src/mod/languages/mod_python/mod_python_extra.h delete mode 100644 src/mod/languages/mod_python/switch_swig_wrap.c delete mode 100644 src/mod/languages/mod_python/switch_swig_wrap.c.bkp diff --git a/Makefile.am b/Makefile.am index 8e730161b3..3affb77e70 100644 --- a/Makefile.am +++ b/Makefile.am @@ -331,7 +331,7 @@ libs/openzap/Makefile: cd libs/openzap && autoconf cd libs/openzap && ./configure -update-clean: clean modwipe uninstall libs/openzap/Makefile +update-clean: clean modwipe uninstall libs/openzap/Makefile python-reconf cd libs/sofia-sip && $(MAKE) clean cd libs/openzap && $(MAKE) clean cd libs/portaudio && $(MAKE) clean @@ -347,6 +347,10 @@ speedy-sure: update-clean cd libs/sofia-sip && $(MAKE) -j $(MAKE) -j modules +python-reconf: + rm -f src/mod/languages/mod_python/Makefile + ./config.status + pa-reconf: cd libs/portaudio && $(MAKE) clean cd libs/portaudio && sh ./configure.gnu diff --git a/build/swigall.sh b/build/swigall.sh index 9b3c0f27fa..ec98b7ac1d 100755 --- a/build/swigall.sh +++ b/build/swigall.sh @@ -9,7 +9,8 @@ make mod_perl_wrap.cpp cd ../../../.. cd src/mod/languages/mod_python -make reswig +make swigclean +make mod_python_wrap.cpp cd ../../../.. cd src/mod/languages/mod_java diff --git a/src/include/switch_cpp.h b/src/include/switch_cpp.h index 40ecd37607..d34aa1080d 100644 --- a/src/include/switch_cpp.h +++ b/src/include/switch_cpp.h @@ -101,6 +101,14 @@ SWITCH_DECLARE(void) consoleCleanLog(char *msg); S_RDLOCK = (1 << 2) } session_flag_t; + class DTMF { + public: + char digit; + uint32_t duration; + SWITCH_DECLARE_CONSTRUCTOR DTMF(char idigit, uint32_t iduration = SWITCH_DEFAULT_DTMF_DURATION); + virtual SWITCH_DECLARE_CONSTRUCTOR ~DTMF(); + }; + class Stream { protected: switch_stream_handle_t mystream; @@ -172,7 +180,7 @@ SWITCH_DECLARE(void) consoleCleanLog(char *msg); SWITCH_DECLARE_CONSTRUCTOR CoreSession(); SWITCH_DECLARE_CONSTRUCTOR CoreSession(char *uuid); SWITCH_DECLARE_CONSTRUCTOR CoreSession(switch_core_session_t *new_session); - SWITCH_DECLARE_CONSTRUCTOR ~ CoreSession(); + virtual SWITCH_DECLARE_CONSTRUCTOR ~ CoreSession(); switch_core_session_t *session; switch_channel_t *channel; unsigned int flags; diff --git a/src/mod/languages/mod_java/src/org/freeswitch/swig/DTMF.java b/src/mod/languages/mod_java/src/org/freeswitch/swig/DTMF.java new file mode 100644 index 0000000000..5ed8de1198 --- /dev/null +++ b/src/mod/languages/mod_java/src/org/freeswitch/swig/DTMF.java @@ -0,0 +1,60 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 1.3.35 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.freeswitch.swig; + +public class DTMF { + private long swigCPtr; + protected boolean swigCMemOwn; + + protected DTMF(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(DTMF obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if(swigCPtr != 0 && swigCMemOwn) { + swigCMemOwn = false; + freeswitchJNI.delete_DTMF(swigCPtr); + } + swigCPtr = 0; + } + + public void setDigit(char value) { + freeswitchJNI.DTMF_digit_set(swigCPtr, this, value); + } + + public char getDigit() { + return freeswitchJNI.DTMF_digit_get(swigCPtr, this); + } + + public void setDuration(SWIGTYPE_p_uint32_t value) { + freeswitchJNI.DTMF_duration_set(swigCPtr, this, SWIGTYPE_p_uint32_t.getCPtr(value)); + } + + public SWIGTYPE_p_uint32_t getDuration() { + return new SWIGTYPE_p_uint32_t(freeswitchJNI.DTMF_duration_get(swigCPtr, this), true); + } + + public DTMF(char idigit, SWIGTYPE_p_uint32_t iduration) { + this(freeswitchJNI.new_DTMF__SWIG_0(idigit, SWIGTYPE_p_uint32_t.getCPtr(iduration)), true); + } + + public DTMF(char idigit) { + this(freeswitchJNI.new_DTMF__SWIG_1(idigit), true); + } + +} diff --git a/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_uint32_t.java b/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_uint32_t.java new file mode 100644 index 0000000000..0396fde793 --- /dev/null +++ b/src/mod/languages/mod_java/src/org/freeswitch/swig/SWIGTYPE_p_uint32_t.java @@ -0,0 +1,26 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 1.3.35 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.freeswitch.swig; + +public class SWIGTYPE_p_uint32_t { + private long swigCPtr; + + protected SWIGTYPE_p_uint32_t(long cPtr, boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_uint32_t() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_uint32_t obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java b/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java index 3ad0f37e33..cac3911dd9 100644 --- a/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java +++ b/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java @@ -32,6 +32,13 @@ class freeswitchJNI { 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 void DTMF_digit_set(long jarg1, DTMF jarg1_, char jarg2); + public final static native char DTMF_digit_get(long jarg1, DTMF jarg1_); + public final static native void DTMF_duration_set(long jarg1, DTMF jarg1_, long jarg2); + public final static native long DTMF_duration_get(long jarg1, DTMF jarg1_); + public final static native long new_DTMF__SWIG_0(char jarg1, long jarg2); + public final static native long new_DTMF__SWIG_1(char jarg1); + public final static native void delete_DTMF(long jarg1); 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); diff --git a/src/mod/languages/mod_java/switch_swig_wrap.cpp b/src/mod/languages/mod_java/switch_swig_wrap.cpp index bbc4247a94..5b6ee42b45 100644 --- a/src/mod/languages/mod_java/switch_swig_wrap.cpp +++ b/src/mod/languages/mod_java/switch_swig_wrap.cpp @@ -643,6 +643,117 @@ SWIGEXPORT jint JNICALL Java_org_freeswitch_swig_freeswitchJNI_S_1RDLOCK_1get(JN } +SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_DTMF_1digit_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jchar jarg2) { + DTMF *arg1 = (DTMF *) 0 ; + char arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(DTMF **)&jarg1; + arg2 = (char)jarg2; + if (arg1) (arg1)->digit = arg2; + +} + + +SWIGEXPORT jchar JNICALL Java_org_freeswitch_swig_freeswitchJNI_DTMF_1digit_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jchar jresult = 0 ; + DTMF *arg1 = (DTMF *) 0 ; + char result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(DTMF **)&jarg1; + result = (char) ((arg1)->digit); + jresult = (jchar)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_DTMF_1duration_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + DTMF *arg1 = (DTMF *) 0 ; + uint32_t arg2 ; + uint32_t *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(DTMF **)&jarg1; + argp2 = *(uint32_t **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint32_t"); + return ; + } + arg2 = *argp2; + if (arg1) (arg1)->duration = arg2; + +} + + +SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_DTMF_1duration_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + DTMF *arg1 = (DTMF *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(DTMF **)&jarg1; + result = ((arg1)->duration); + *(uint32_t **)&jresult = new uint32_t((uint32_t &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1DTMF_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jchar jarg1, jlong jarg2) { + jlong jresult = 0 ; + char arg1 ; + uint32_t arg2 ; + DTMF *result = 0 ; + uint32_t *argp2 ; + + (void)jenv; + (void)jcls; + arg1 = (char)jarg1; + argp2 = *(uint32_t **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint32_t"); + return 0; + } + arg2 = *argp2; + result = (DTMF *)new DTMF(arg1,arg2); + *(DTMF **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1DTMF_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jchar jarg1) { + jlong jresult = 0 ; + char arg1 ; + DTMF *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (char)jarg1; + result = (DTMF *)new DTMF(arg1); + *(DTMF **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_org_freeswitch_swig_freeswitchJNI_delete_1DTMF(JNIEnv *jenv, jclass jcls, jlong jarg1) { + DTMF *arg1 = (DTMF *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(DTMF **)&jarg1; + delete arg1; + +} + + SWIGEXPORT jlong JNICALL Java_org_freeswitch_swig_freeswitchJNI_new_1Stream_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { jlong jresult = 0 ; Stream *result = 0 ; diff --git a/src/mod/languages/mod_lua/mod_lua_wrap.cpp b/src/mod/languages/mod_lua/mod_lua_wrap.cpp index 48854f5126..25accb5fbf 100644 --- a/src/mod/languages/mod_lua/mod_lua_wrap.cpp +++ b/src/mod/languages/mod_lua/mod_lua_wrap.cpp @@ -1486,29 +1486,31 @@ SWIG_Lua_dostring(lua_State *L, const char* str) { #define SWIGTYPE_p_API swig_types[0] #define SWIGTYPE_p_CoreSession swig_types[1] -#define SWIGTYPE_p_Event swig_types[2] -#define SWIGTYPE_p_EventConsumer swig_types[3] -#define SWIGTYPE_p_IVRMenu swig_types[4] -#define SWIGTYPE_p_LUA__Session swig_types[5] -#define SWIGTYPE_p_Stream swig_types[6] -#define SWIGTYPE_p_input_callback_state swig_types[7] -#define SWIGTYPE_p_lua_State swig_types[8] -#define SWIGTYPE_p_session_flag_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_node_t swig_types[13] -#define SWIGTYPE_p_switch_event_t swig_types[14] -#define SWIGTYPE_p_switch_event_types_t swig_types[15] -#define SWIGTYPE_p_switch_input_args_t swig_types[16] -#define SWIGTYPE_p_switch_input_type_t swig_types[17] -#define SWIGTYPE_p_switch_priority_t swig_types[18] -#define SWIGTYPE_p_switch_queue_t swig_types[19] -#define SWIGTYPE_p_switch_status_t swig_types[20] -#define SWIGTYPE_p_switch_stream_handle_t swig_types[21] -#define SWIGTYPE_p_void swig_types[22] -static swig_type_info *swig_types[24]; -static swig_module_info swig_module = {swig_types, 23, 0, 0, 0, 0}; +#define SWIGTYPE_p_DTMF swig_types[2] +#define SWIGTYPE_p_Event swig_types[3] +#define SWIGTYPE_p_EventConsumer swig_types[4] +#define SWIGTYPE_p_IVRMenu swig_types[5] +#define SWIGTYPE_p_LUA__Session swig_types[6] +#define SWIGTYPE_p_Stream swig_types[7] +#define SWIGTYPE_p_input_callback_state swig_types[8] +#define SWIGTYPE_p_lua_State swig_types[9] +#define SWIGTYPE_p_session_flag_t swig_types[10] +#define SWIGTYPE_p_switch_channel_state_t swig_types[11] +#define SWIGTYPE_p_switch_channel_t swig_types[12] +#define SWIGTYPE_p_switch_core_session_t swig_types[13] +#define SWIGTYPE_p_switch_event_node_t swig_types[14] +#define SWIGTYPE_p_switch_event_t swig_types[15] +#define SWIGTYPE_p_switch_event_types_t swig_types[16] +#define SWIGTYPE_p_switch_input_args_t swig_types[17] +#define SWIGTYPE_p_switch_input_type_t swig_types[18] +#define SWIGTYPE_p_switch_priority_t swig_types[19] +#define SWIGTYPE_p_switch_queue_t swig_types[20] +#define SWIGTYPE_p_switch_status_t swig_types[21] +#define SWIGTYPE_p_switch_stream_handle_t swig_types[22] +#define SWIGTYPE_p_uint32_t swig_types[23] +#define SWIGTYPE_p_void swig_types[24] +static swig_type_info *swig_types[26]; +static swig_module_info swig_module = {swig_types, 25, 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) @@ -2143,6 +2145,254 @@ static swig_lua_class *swig_input_callback_state_t_bases[] = {0}; static const char *swig_input_callback_state_t_base_names[] = {0}; static swig_lua_class _wrap_class_input_callback_state_t = { "input_callback_state_t", &SWIGTYPE_p_input_callback_state,_wrap_new_input_callback_state_t, swig_delete_input_callback_state_t, swig_input_callback_state_t_methods, swig_input_callback_state_t_attributes, swig_input_callback_state_t_bases, swig_input_callback_state_t_base_names }; +static int _wrap_DTMF_digit_set(lua_State* L) { + int SWIG_arg = -1; + DTMF *arg1 = (DTMF *) 0 ; + char arg2 ; + + SWIG_check_num_args("digit",2,2) + if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("digit",1,"DTMF *"); + if(!lua_isstring(L,2)) SWIG_fail_arg("digit",2,"char"); + + if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_DTMF,0))){ + SWIG_fail_ptr("DTMF_digit_set",1,SWIGTYPE_p_DTMF); + } + + arg2 = (lua_tostring(L, 2))[0]; + if (arg1) (arg1)->digit = arg2; + + SWIG_arg=0; + + return SWIG_arg; + + if(0) SWIG_fail; + +fail: + lua_error(L); + return SWIG_arg; +} + + +static int _wrap_DTMF_digit_get(lua_State* L) { + int SWIG_arg = -1; + DTMF *arg1 = (DTMF *) 0 ; + char result; + + SWIG_check_num_args("digit",1,1) + if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("digit",1,"DTMF *"); + + if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_DTMF,0))){ + SWIG_fail_ptr("DTMF_digit_get",1,SWIGTYPE_p_DTMF); + } + + result = (char) ((arg1)->digit); + SWIG_arg=0; + lua_pushfstring(L,"%c",result); SWIG_arg++; + return SWIG_arg; + + if(0) SWIG_fail; + +fail: + lua_error(L); + return SWIG_arg; +} + + +static int _wrap_DTMF_duration_set(lua_State* L) { + int SWIG_arg = -1; + DTMF *arg1 = (DTMF *) 0 ; + uint32_t arg2 ; + uint32_t *argp2 ; + + SWIG_check_num_args("duration",2,2) + if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("duration",1,"DTMF *"); + if(!lua_isuserdata(L,2)) SWIG_fail_arg("duration",2,"uint32_t"); + + if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_DTMF,0))){ + SWIG_fail_ptr("DTMF_duration_set",1,SWIGTYPE_p_DTMF); + } + + + if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&argp2,SWIGTYPE_p_uint32_t,0))){ + SWIG_fail_ptr("DTMF_duration_set",2,SWIGTYPE_p_uint32_t); + } + arg2 = *argp2; + + if (arg1) (arg1)->duration = arg2; + + SWIG_arg=0; + + return SWIG_arg; + + if(0) SWIG_fail; + +fail: + lua_error(L); + return SWIG_arg; +} + + +static int _wrap_DTMF_duration_get(lua_State* L) { + int SWIG_arg = -1; + DTMF *arg1 = (DTMF *) 0 ; + uint32_t result; + + SWIG_check_num_args("duration",1,1) + if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("duration",1,"DTMF *"); + + if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_DTMF,0))){ + SWIG_fail_ptr("DTMF_duration_get",1,SWIGTYPE_p_DTMF); + } + + result = ((arg1)->duration); + SWIG_arg=0; + { + uint32_t * resultptr = new uint32_t((uint32_t &) result); + SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_uint32_t,1); SWIG_arg++; + } + return SWIG_arg; + + if(0) SWIG_fail; + +fail: + lua_error(L); + return SWIG_arg; +} + + +static int _wrap_new_DTMF__SWIG_0(lua_State* L) { + int SWIG_arg = -1; + char arg1 ; + uint32_t arg2 ; + DTMF *result = 0 ; + uint32_t *argp2 ; + + SWIG_check_num_args("DTMF",2,2) + if(!lua_isstring(L,1)) SWIG_fail_arg("DTMF",1,"char"); + if(!lua_isuserdata(L,2)) SWIG_fail_arg("DTMF",2,"uint32_t"); + arg1 = (lua_tostring(L, 1))[0]; + + if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&argp2,SWIGTYPE_p_uint32_t,0))){ + SWIG_fail_ptr("new_DTMF",2,SWIGTYPE_p_uint32_t); + } + arg2 = *argp2; + + result = (DTMF *)new DTMF(arg1,arg2); + SWIG_arg=0; + SWIG_NewPointerObj(L,result,SWIGTYPE_p_DTMF,1); SWIG_arg++; + return SWIG_arg; + + if(0) SWIG_fail; + +fail: + lua_error(L); + return SWIG_arg; +} + + +static int _wrap_new_DTMF__SWIG_1(lua_State* L) { + int SWIG_arg = -1; + char arg1 ; + DTMF *result = 0 ; + + SWIG_check_num_args("DTMF",1,1) + if(!lua_isstring(L,1)) SWIG_fail_arg("DTMF",1,"char"); + arg1 = (lua_tostring(L, 1))[0]; + result = (DTMF *)new DTMF(arg1); + SWIG_arg=0; + SWIG_NewPointerObj(L,result,SWIGTYPE_p_DTMF,1); SWIG_arg++; + return SWIG_arg; + + if(0) SWIG_fail; + +fail: + lua_error(L); + return SWIG_arg; +} + + +static int _wrap_new_DTMF(lua_State* L) { + int argc; + int argv[3]={ + 1,2,3 + }; + + argc = lua_gettop(L); + if (argc == 1) { + int _v; + { + _v = lua_isstring(L,argv[0]) && (lua_strlen(L,argv[0])==1); + } + if (_v) { + return _wrap_new_DTMF__SWIG_1(L); + } + } + if (argc == 2) { + int _v; + { + _v = lua_isstring(L,argv[0]) && (lua_strlen(L,argv[0])==1); + } + if (_v) { + { + void *ptr; + if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_uint32_t, 0)) { + _v = 0; + } else { + _v = 1; + } + } + if (_v) { + return _wrap_new_DTMF__SWIG_0(L); + } + } + } + + lua_pushstring(L,"No matching function for overloaded 'new_DTMF'"); + lua_error(L);return 0; +} + + +static int _wrap_delete_DTMF(lua_State* L) { + int SWIG_arg = -1; + DTMF *arg1 = (DTMF *) 0 ; + + SWIG_check_num_args("DTMF",1,1) + if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("DTMF",1,"DTMF *"); + + if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_DTMF,SWIG_POINTER_DISOWN))){ + SWIG_fail_ptr("delete_DTMF",1,SWIGTYPE_p_DTMF); + } + + delete arg1; + + SWIG_arg=0; + + return SWIG_arg; + + if(0) SWIG_fail; + +fail: + lua_error(L); + return SWIG_arg; +} + + +static void swig_delete_DTMF(void *obj) { +DTMF *arg1 = (DTMF *) obj; +delete arg1; +} +static swig_lua_method swig_DTMF_methods[] = { + {0,0} +}; +static swig_lua_attribute swig_DTMF_attributes[] = { + { "digit", _wrap_DTMF_digit_get, _wrap_DTMF_digit_set}, + { "duration", _wrap_DTMF_duration_get, _wrap_DTMF_duration_set}, + {0,0,0} +}; +static swig_lua_class *swig_DTMF_bases[] = {0}; +static const char *swig_DTMF_base_names[] = {0}; +static swig_lua_class _wrap_class_DTMF = { "DTMF", &SWIGTYPE_p_DTMF,_wrap_new_DTMF, swig_delete_DTMF, swig_DTMF_methods, swig_DTMF_attributes, swig_DTMF_bases, swig_DTMF_base_names }; + static int _wrap_new_Stream__SWIG_0(lua_State* L) { int SWIG_arg = -1; Stream *result = 0 ; @@ -7029,6 +7279,7 @@ static void *_p_LUA__SessionTo_p_CoreSession(void *x, int *newmemory) { } 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_DTMF = {"_p_DTMF", "DTMF *", 0, 0, (void*)&_wrap_class_DTMF, 0}; static swig_type_info _swigt__p_Event = {"_p_Event", "Event *", 0, 0, (void*)&_wrap_class_Event, 0}; static swig_type_info _swigt__p_EventConsumer = {"_p_EventConsumer", "EventConsumer *", 0, 0, (void*)&_wrap_class_EventConsumer, 0}; static swig_type_info _swigt__p_IVRMenu = {"_p_IVRMenu", "IVRMenu *", 0, 0, (void*)&_wrap_class_IVRMenu, 0}; @@ -7049,11 +7300,13 @@ static swig_type_info _swigt__p_switch_priority_t = {"_p_switch_priority_t", "sw static swig_type_info _swigt__p_switch_queue_t = {"_p_switch_queue_t", "switch_queue_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_uint32_t = {"_p_uint32_t", "uint32_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_DTMF, &_swigt__p_Event, &_swigt__p_EventConsumer, &_swigt__p_IVRMenu, @@ -7074,11 +7327,13 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_switch_queue_t, &_swigt__p_switch_status_t, &_swigt__p_switch_stream_handle_t, + &_swigt__p_uint32_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_LUA__Session, _p_LUA__SessionTo_p_CoreSession, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_DTMF[] = { {&_swigt__p_DTMF, 0, 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_EventConsumer[] = { {&_swigt__p_EventConsumer, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IVRMenu[] = { {&_swigt__p_IVRMenu, 0, 0, 0},{0, 0, 0, 0}}; @@ -7099,11 +7354,13 @@ static swig_cast_info _swigc__p_switch_priority_t[] = { {&_swigt__p_switch_prio static swig_cast_info _swigc__p_switch_queue_t[] = { {&_swigt__p_switch_queue_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_uint32_t[] = { {&_swigt__p_uint32_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_DTMF, _swigc__p_Event, _swigc__p_EventConsumer, _swigc__p_IVRMenu, @@ -7124,6 +7381,7 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_switch_queue_t, _swigc__p_switch_status_t, _swigc__p_switch_stream_handle_t, + _swigc__p_uint32_t, _swigc__p_void, }; diff --git a/src/mod/languages/mod_perl/freeswitch.pm b/src/mod/languages/mod_perl/freeswitch.pm index 5eb1ecc82b..3f91e202fe 100644 --- a/src/mod/languages/mod_perl/freeswitch.pm +++ b/src/mod/languages/mod_perl/freeswitch.pm @@ -179,6 +179,47 @@ sub ACQUIRE { } +############# Class : freeswitch::DTMF ############## + +package freeswitch::DTMF; +use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); +@ISA = qw( freeswitch ); +%OWNER = (); +%ITERATORS = (); +*swig_digit_get = *freeswitchc::DTMF_digit_get; +*swig_digit_set = *freeswitchc::DTMF_digit_set; +*swig_duration_get = *freeswitchc::DTMF_duration_get; +*swig_duration_set = *freeswitchc::DTMF_duration_set; +sub new { + my $pkg = shift; + my $self = freeswitchc::new_DTMF(@_); + bless $self, $pkg if defined($self); +} + +sub DESTROY { + return unless $_[0]->isa('HASH'); + my $self = tied(%{$_[0]}); + return unless defined $self; + delete $ITERATORS{$self}; + if (exists $OWNER{$self}) { + freeswitchc::delete_DTMF($self); + delete $OWNER{$self}; + } +} + +sub DISOWN { + my $self = shift; + my $ptr = tied(%$self); + delete $OWNER{$ptr}; +} + +sub ACQUIRE { + my $self = shift; + my $ptr = tied(%$self); + $OWNER{$ptr} = 1; +} + + ############# Class : freeswitch::Stream ############## package freeswitch::Stream; diff --git a/src/mod/languages/mod_perl/mod_perl_wrap.cpp b/src/mod/languages/mod_perl/mod_perl_wrap.cpp index 5d7497e7a7..bf5787593c 100644 --- a/src/mod/languages/mod_perl/mod_perl_wrap.cpp +++ b/src/mod/languages/mod_perl/mod_perl_wrap.cpp @@ -1448,30 +1448,32 @@ SWIG_Perl_SetModule(swig_module_info *module) { #define SWIGTYPE_p_API swig_types[0] #define SWIGTYPE_p_CoreSession swig_types[1] -#define SWIGTYPE_p_Event swig_types[2] -#define SWIGTYPE_p_EventConsumer swig_types[3] -#define SWIGTYPE_p_IVRMenu swig_types[4] -#define SWIGTYPE_p_PERL__Session swig_types[5] -#define SWIGTYPE_p_PerlInterpreter swig_types[6] -#define SWIGTYPE_p_Stream swig_types[7] -#define SWIGTYPE_p_char swig_types[8] -#define SWIGTYPE_p_input_callback_state swig_types[9] -#define SWIGTYPE_p_session_flag_t swig_types[10] -#define SWIGTYPE_p_switch_channel_state_t swig_types[11] -#define SWIGTYPE_p_switch_channel_t swig_types[12] -#define SWIGTYPE_p_switch_core_session_t swig_types[13] -#define SWIGTYPE_p_switch_event_node_t swig_types[14] -#define SWIGTYPE_p_switch_event_t swig_types[15] -#define SWIGTYPE_p_switch_event_types_t swig_types[16] -#define SWIGTYPE_p_switch_input_args_t swig_types[17] -#define SWIGTYPE_p_switch_input_type_t swig_types[18] -#define SWIGTYPE_p_switch_priority_t swig_types[19] -#define SWIGTYPE_p_switch_queue_t swig_types[20] -#define SWIGTYPE_p_switch_status_t swig_types[21] -#define SWIGTYPE_p_switch_stream_handle_t swig_types[22] -#define SWIGTYPE_p_void swig_types[23] -static swig_type_info *swig_types[25]; -static swig_module_info swig_module = {swig_types, 24, 0, 0, 0, 0}; +#define SWIGTYPE_p_DTMF swig_types[2] +#define SWIGTYPE_p_Event swig_types[3] +#define SWIGTYPE_p_EventConsumer swig_types[4] +#define SWIGTYPE_p_IVRMenu swig_types[5] +#define SWIGTYPE_p_PERL__Session swig_types[6] +#define SWIGTYPE_p_PerlInterpreter swig_types[7] +#define SWIGTYPE_p_Stream swig_types[8] +#define SWIGTYPE_p_char swig_types[9] +#define SWIGTYPE_p_input_callback_state swig_types[10] +#define SWIGTYPE_p_session_flag_t swig_types[11] +#define SWIGTYPE_p_switch_channel_state_t swig_types[12] +#define SWIGTYPE_p_switch_channel_t swig_types[13] +#define SWIGTYPE_p_switch_core_session_t swig_types[14] +#define SWIGTYPE_p_switch_event_node_t swig_types[15] +#define SWIGTYPE_p_switch_event_t swig_types[16] +#define SWIGTYPE_p_switch_event_types_t swig_types[17] +#define SWIGTYPE_p_switch_input_args_t swig_types[18] +#define SWIGTYPE_p_switch_input_type_t swig_types[19] +#define SWIGTYPE_p_switch_priority_t swig_types[20] +#define SWIGTYPE_p_switch_queue_t swig_types[21] +#define SWIGTYPE_p_switch_status_t swig_types[22] +#define SWIGTYPE_p_switch_stream_handle_t swig_types[23] +#define SWIGTYPE_p_uint32_t swig_types[24] +#define SWIGTYPE_p_void swig_types[25] +static swig_type_info *swig_types[27]; +static swig_module_info swig_module = {swig_types, 26, 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) @@ -1726,6 +1728,56 @@ SWIG_From_int SWIG_PERL_DECL_ARGS_1(int value) } +SWIGINTERN int +SWIG_AsCharArray(SV * obj, char *val, size_t size) +{ + char* cptr = 0; size_t csize = 0; int alloc = SWIG_OLDOBJ; + int res = SWIG_AsCharPtrAndSize(obj, &cptr, &csize, &alloc); + if (SWIG_IsOK(res)) { + if ((csize == size + 1) && cptr && !(cptr[csize-1])) --csize; + if (csize <= size) { + if (val) { + if (csize) memcpy(val, cptr, csize*sizeof(char)); + if (csize < size) memset(val + csize, 0, (size - csize)*sizeof(char)); + } + if (alloc == SWIG_NEWOBJ) { + delete[] cptr; + res = SWIG_DelNewMask(res); + } + return res; + } + if (alloc == SWIG_NEWOBJ) delete[] cptr; + } + return SWIG_TypeError; +} + + +SWIGINTERN int +SWIG_AsVal_char SWIG_PERL_DECL_ARGS_2(SV * obj, char *val) +{ + int res = SWIG_AsCharArray(obj, val, 1); + if (!SWIG_IsOK(res)) { + long v; + res = SWIG_AddCast(SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(obj, &v)); + if (SWIG_IsOK(res)) { + if ((CHAR_MIN <= v) && (v <= CHAR_MAX)) { + if (val) *val = static_cast< char >(v); + } else { + res = SWIG_OverflowError; + } + } + } + return res; +} + + +SWIGINTERNINLINE SV * +SWIG_From_char SWIG_PERL_DECL_ARGS_1(char c) +{ + return SWIG_FromCharPtrAndSize(&c,1); +} + + SWIGINTERNINLINE SV * SWIG_From_bool SWIG_PERL_DECL_ARGS_1(bool value) { @@ -2664,6 +2716,313 @@ XS(_wrap_delete_input_callback_state_t) { } +XS(_wrap_DTMF_digit_set) { + { + DTMF *arg1 = (DTMF *) 0 ; + char arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + char val2 ; + int ecode2 = 0 ; + int argvi = 0; + dXSARGS; + + if ((items < 2) || (items > 2)) { + SWIG_croak("Usage: DTMF_digit_set(self,digit);"); + } + res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_DTMF, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DTMF_digit_set" "', argument " "1"" of type '" "DTMF *""'"); + } + arg1 = reinterpret_cast< DTMF * >(argp1); + ecode2 = SWIG_AsVal_char SWIG_PERL_CALL_ARGS_2(ST(1), &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "DTMF_digit_set" "', argument " "2"" of type '" "char""'"); + } + arg2 = static_cast< char >(val2); + if (arg1) (arg1)->digit = arg2; + + + + + XSRETURN(argvi); + fail: + + + SWIG_croak_null(); + } +} + + +XS(_wrap_DTMF_digit_get) { + { + DTMF *arg1 = (DTMF *) 0 ; + char result; + void *argp1 = 0 ; + int res1 = 0 ; + int argvi = 0; + dXSARGS; + + if ((items < 1) || (items > 1)) { + SWIG_croak("Usage: DTMF_digit_get(self);"); + } + res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_DTMF, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DTMF_digit_get" "', argument " "1"" of type '" "DTMF *""'"); + } + arg1 = reinterpret_cast< DTMF * >(argp1); + result = (char) ((arg1)->digit); + ST(argvi) = SWIG_From_char SWIG_PERL_CALL_ARGS_1(static_cast< char >(result)); argvi++ ; + + XSRETURN(argvi); + fail: + + SWIG_croak_null(); + } +} + + +XS(_wrap_DTMF_duration_set) { + { + DTMF *arg1 = (DTMF *) 0 ; + uint32_t arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + void *argp2 ; + int res2 = 0 ; + int argvi = 0; + dXSARGS; + + if ((items < 2) || (items > 2)) { + SWIG_croak("Usage: DTMF_duration_set(self,duration);"); + } + res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_DTMF, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DTMF_duration_set" "', argument " "1"" of type '" "DTMF *""'"); + } + arg1 = reinterpret_cast< DTMF * >(argp1); + { + res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_uint32_t, 0 ); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DTMF_duration_set" "', argument " "2"" of type '" "uint32_t""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DTMF_duration_set" "', argument " "2"" of type '" "uint32_t""'"); + } else { + arg2 = *(reinterpret_cast< uint32_t * >(argp2)); + } + } + if (arg1) (arg1)->duration = arg2; + + + + XSRETURN(argvi); + fail: + + SWIG_croak_null(); + } +} + + +XS(_wrap_DTMF_duration_get) { + { + DTMF *arg1 = (DTMF *) 0 ; + uint32_t result; + void *argp1 = 0 ; + int res1 = 0 ; + int argvi = 0; + dXSARGS; + + if ((items < 1) || (items > 1)) { + SWIG_croak("Usage: DTMF_duration_get(self);"); + } + res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_DTMF, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DTMF_duration_get" "', argument " "1"" of type '" "DTMF *""'"); + } + arg1 = reinterpret_cast< DTMF * >(argp1); + result = ((arg1)->duration); + ST(argvi) = SWIG_NewPointerObj((new uint32_t(static_cast< const uint32_t& >(result))), SWIGTYPE_p_uint32_t, SWIG_POINTER_OWN | 0); argvi++ ; + + XSRETURN(argvi); + fail: + + SWIG_croak_null(); + } +} + + +XS(_wrap_new_DTMF__SWIG_0) { + { + char arg1 ; + uint32_t arg2 ; + DTMF *result = 0 ; + char val1 ; + int ecode1 = 0 ; + void *argp2 ; + int res2 = 0 ; + int argvi = 0; + dXSARGS; + + if ((items < 2) || (items > 2)) { + SWIG_croak("Usage: new_DTMF(idigit,iduration);"); + } + ecode1 = SWIG_AsVal_char SWIG_PERL_CALL_ARGS_2(ST(0), &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DTMF" "', argument " "1"" of type '" "char""'"); + } + arg1 = static_cast< char >(val1); + { + res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_uint32_t, 0 ); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_DTMF" "', argument " "2"" of type '" "uint32_t""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_DTMF" "', argument " "2"" of type '" "uint32_t""'"); + } else { + arg2 = *(reinterpret_cast< uint32_t * >(argp2)); + } + } + result = (DTMF *)new DTMF(arg1,arg2); + ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DTMF, SWIG_OWNER | SWIG_SHADOW); argvi++ ; + + XSRETURN(argvi); + fail: + + SWIG_croak_null(); + } +} + + +XS(_wrap_new_DTMF__SWIG_1) { + { + char arg1 ; + DTMF *result = 0 ; + char val1 ; + int ecode1 = 0 ; + int argvi = 0; + dXSARGS; + + if ((items < 1) || (items > 1)) { + SWIG_croak("Usage: new_DTMF(idigit);"); + } + ecode1 = SWIG_AsVal_char SWIG_PERL_CALL_ARGS_2(ST(0), &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DTMF" "', argument " "1"" of type '" "char""'"); + } + arg1 = static_cast< char >(val1); + result = (DTMF *)new DTMF(arg1); + ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DTMF, SWIG_OWNER | SWIG_SHADOW); argvi++ ; + + XSRETURN(argvi); + fail: + + SWIG_croak_null(); + } +} + + +XS(_wrap_new_DTMF) { + dXSARGS; + + { + unsigned long _index = 0; + SWIG_TypeRank _rank = 0; + if (items == 1) { + SWIG_TypeRank _ranki = 0; + SWIG_TypeRank _rankm = 0; + SWIG_TypeRank _pi = 1; + int _v = 0; + { + { + int res = SWIG_AsVal_char SWIG_PERL_CALL_ARGS_2(ST(0), NULL); + _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 == 2) { + SWIG_TypeRank _ranki = 0; + SWIG_TypeRank _rankm = 0; + SWIG_TypeRank _pi = 1; + int _v = 0; + { + { + int res = SWIG_AsVal_char SWIG_PERL_CALL_ARGS_2(ST(0), NULL); + _v = SWIG_CheckState(res); + } + } + if (!_v) goto check_2; + _ranki += _v*_pi; + _rankm += _pi; + _pi *= SWIG_MAXCASTRANK; + { + void *vptr = 0; + int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_uint32_t, 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_new_DTMF__SWIG_1); return; + case 2: + ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_DTMF__SWIG_0); return; + } + } + + croak("No matching function for overloaded 'new_DTMF'"); + XSRETURN(0); +} + + +XS(_wrap_delete_DTMF) { + { + DTMF *arg1 = (DTMF *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + int argvi = 0; + dXSARGS; + + if ((items < 1) || (items > 1)) { + SWIG_croak("Usage: delete_DTMF(self);"); + } + res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_DTMF, SWIG_POINTER_DISOWN | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_DTMF" "', argument " "1"" of type '" "DTMF *""'"); + } + arg1 = reinterpret_cast< DTMF * >(argp1); + delete arg1; + + + + XSRETURN(argvi); + fail: + + SWIG_croak_null(); + } +} + + XS(_wrap_new_Stream__SWIG_0) { { Stream *result = 0 ; @@ -9174,6 +9533,7 @@ static void *_p_PERL__SessionTo_p_CoreSession(void *x, int *newmemory) { } 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_DTMF = {"_p_DTMF", "DTMF *", 0, 0, (void*)"freeswitch::DTMF", 0}; static swig_type_info _swigt__p_Event = {"_p_Event", "Event *", 0, 0, (void*)"freeswitch::Event", 0}; static swig_type_info _swigt__p_EventConsumer = {"_p_EventConsumer", "EventConsumer *", 0, 0, (void*)"freeswitch::EventConsumer", 0}; static swig_type_info _swigt__p_IVRMenu = {"_p_IVRMenu", "IVRMenu *", 0, 0, (void*)"freeswitch::IVRMenu", 0}; @@ -9195,11 +9555,13 @@ static swig_type_info _swigt__p_switch_priority_t = {"_p_switch_priority_t", "sw static swig_type_info _swigt__p_switch_queue_t = {"_p_switch_queue_t", "switch_queue_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_uint32_t = {"_p_uint32_t", "uint32_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_DTMF, &_swigt__p_Event, &_swigt__p_EventConsumer, &_swigt__p_IVRMenu, @@ -9221,11 +9583,13 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_switch_queue_t, &_swigt__p_switch_status_t, &_swigt__p_switch_stream_handle_t, + &_swigt__p_uint32_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_PERL__Session, _p_PERL__SessionTo_p_CoreSession, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_DTMF[] = { {&_swigt__p_DTMF, 0, 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_EventConsumer[] = { {&_swigt__p_EventConsumer, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IVRMenu[] = { {&_swigt__p_IVRMenu, 0, 0, 0},{0, 0, 0, 0}}; @@ -9247,11 +9611,13 @@ static swig_cast_info _swigc__p_switch_priority_t[] = { {&_swigt__p_switch_prio static swig_cast_info _swigc__p_switch_queue_t[] = { {&_swigt__p_switch_queue_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_uint32_t[] = { {&_swigt__p_uint32_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_DTMF, _swigc__p_Event, _swigc__p_EventConsumer, _swigc__p_IVRMenu, @@ -9273,6 +9639,7 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_switch_queue_t, _swigc__p_switch_status_t, _swigc__p_switch_stream_handle_t, + _swigc__p_uint32_t, _swigc__p_void, }; @@ -9309,6 +9676,12 @@ static swig_command_info swig_commands[] = { {"freeswitchc::input_callback_state_t_funcargs_get", _wrap_input_callback_state_t_funcargs_get}, {"freeswitchc::new_input_callback_state_t", _wrap_new_input_callback_state_t}, {"freeswitchc::delete_input_callback_state_t", _wrap_delete_input_callback_state_t}, +{"freeswitchc::DTMF_digit_set", _wrap_DTMF_digit_set}, +{"freeswitchc::DTMF_digit_get", _wrap_DTMF_digit_get}, +{"freeswitchc::DTMF_duration_set", _wrap_DTMF_duration_set}, +{"freeswitchc::DTMF_duration_get", _wrap_DTMF_duration_get}, +{"freeswitchc::new_DTMF", _wrap_new_DTMF}, +{"freeswitchc::delete_DTMF", _wrap_delete_DTMF}, {"freeswitchc::new_Stream", _wrap_new_Stream}, {"freeswitchc::delete_Stream", _wrap_delete_Stream}, {"freeswitchc::Stream_write", _wrap_Stream_write}, @@ -9734,6 +10107,7 @@ XS(SWIG_init) { sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(S_RDLOCK))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; + SWIG_TypeClientData(SWIGTYPE_p_DTMF, (void*) "freeswitch::DTMF"); SWIG_TypeClientData(SWIGTYPE_p_Stream, (void*) "freeswitch::Stream"); SWIG_TypeClientData(SWIGTYPE_p_Event, (void*) "freeswitch::Event"); SWIG_TypeClientData(SWIGTYPE_p_EventConsumer, (void*) "freeswitch::EventConsumer"); diff --git a/src/mod/languages/mod_python/Makefile.in b/src/mod/languages/mod_python/Makefile.in index 060ddd5dd5..cb25d4eff7 100644 --- a/src/mod/languages/mod_python/Makefile.in +++ b/src/mod/languages/mod_python/Makefile.in @@ -11,19 +11,20 @@ include ../../../../build/modmake.rules LINK=$(CXXLINK) PYMOD=freeswitch -PYTHON_SITE_DIR=@PYTHON_SITE_DIR@ +PYTHON_SITE_DIR=/usr/lib/python2.4/site-packages SWIGCFILE=../../../switch_swig.c SWIGIFILE=../../../switch_swig.i -reswig: - swig -python -shadow -c++ -I../../../../src/include -o mod_python_wrap.cpp mod_python.i +reswig: swigclean mod_python_wrap.cpp -switch_swig_wrap.o: switch_swig_wrap.c Makefile - $(CC) -w $(CFLAGS) -c $< -o $@ +swigclean: clean + rm -f mod_python_wrap.* freeswitch.py -switch_swig.o: $(SWIGCFILE) Makefile - $(CC) -w $(CFLAGS) -c $< -o $@ +mod_python_wrap.cpp: mod_python_extra.c + swig -python -c++ -I../../../../src/include -oh mod_python_wrap.h -o mod_python_wrap.cpp mod_python.i + echo "#include \"mod_python_extra.c\"" >> mod_python_wrap.cpp + patch -s -p0 -i hack.diff local_install: mkdir -m755 -p $(DESTDIR)$(PYTHON_SITE_DIR) diff --git a/src/mod/languages/mod_python/freeswitch.py b/src/mod/languages/mod_python/freeswitch.py index a299a79f04..7a53a07ad2 100644 --- a/src/mod/languages/mod_python/freeswitch.py +++ b/src/mod/languages/mod_python/freeswitch.py @@ -114,6 +114,27 @@ input_callback_state_t_swigregister(input_callback_state_t) S_HUP = _freeswitch.S_HUP S_FREE = _freeswitch.S_FREE S_RDLOCK = _freeswitch.S_RDLOCK +class DTMF(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, DTMF, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, DTMF, name) + __repr__ = _swig_repr + __swig_setmethods__["digit"] = _freeswitch.DTMF_digit_set + __swig_getmethods__["digit"] = _freeswitch.DTMF_digit_get + if _newclass:digit = _swig_property(_freeswitch.DTMF_digit_get, _freeswitch.DTMF_digit_set) + __swig_setmethods__["duration"] = _freeswitch.DTMF_duration_set + __swig_getmethods__["duration"] = _freeswitch.DTMF_duration_get + if _newclass:duration = _swig_property(_freeswitch.DTMF_duration_get, _freeswitch.DTMF_duration_set) + def __init__(self, *args): + this = _freeswitch.new_DTMF(*args) + try: self.this.append(this) + except: self.this = this + __swig_destroy__ = _freeswitch.delete_DTMF + __del__ = lambda self : None; +DTMF_swigregister = _freeswitch.DTMF_swigregister +DTMF_swigregister(DTMF) + class Stream(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, Stream, name, value) @@ -274,31 +295,43 @@ console_clean_log = _freeswitch.console_clean_log bridge = _freeswitch.bridge hanguphook = _freeswitch.hanguphook dtmf_callback = _freeswitch.dtmf_callback -S_SWAPPED_IN = _freeswitch.S_SWAPPED_IN -S_SWAPPED_OUT = _freeswitch.S_SWAPPED_OUT -class PySession(CoreSession): +class Session(CoreSession): __swig_setmethods__ = {} for _s in [CoreSession]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{})) - __setattr__ = lambda self, name, value: _swig_setattr(self, PySession, name, value) + __setattr__ = lambda self, name, value: _swig_setattr(self, Session, name, value) __swig_getmethods__ = {} for _s in [CoreSession]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{})) - __getattr__ = lambda self, name: _swig_getattr(self, PySession, name) + __getattr__ = lambda self, name: _swig_getattr(self, Session, name) __repr__ = _swig_repr def __init__(self, *args): - this = _freeswitch.new_PySession(*args) + this = _freeswitch.new_Session(*args) try: self.this.append(this) except: self.this = this - __swig_destroy__ = _freeswitch.delete_PySession + __swig_destroy__ = _freeswitch.delete_Session __del__ = lambda self : None; - def setDTMFCallback(*args): return _freeswitch.PySession_setDTMFCallback(*args) - def setHangupHook(*args): return _freeswitch.PySession_setHangupHook(*args) - def check_hangup_hook(*args): return _freeswitch.PySession_check_hangup_hook(*args) - def hangup(*args): return _freeswitch.PySession_hangup(*args) - def begin_allow_threads(*args): return _freeswitch.PySession_begin_allow_threads(*args) - def end_allow_threads(*args): return _freeswitch.PySession_end_allow_threads(*args) - def run_dtmf_callback(*args): return _freeswitch.PySession_run_dtmf_callback(*args) -PySession_swigregister = _freeswitch.PySession_swigregister -PySession_swigregister(PySession) + def begin_allow_threads(*args): return _freeswitch.Session_begin_allow_threads(*args) + def end_allow_threads(*args): return _freeswitch.Session_end_allow_threads(*args) + def check_hangup_hook(*args): return _freeswitch.Session_check_hangup_hook(*args) + def run_dtmf_callback(*args): return _freeswitch.Session_run_dtmf_callback(*args) + def setInputCallback(*args): return _freeswitch.Session_setInputCallback(*args) + def setHangupHook(*args): return _freeswitch.Session_setHangupHook(*args) + def ready(*args): return _freeswitch.Session_ready(*args) + __swig_setmethods__["cb_function"] = _freeswitch.Session_cb_function_set + __swig_getmethods__["cb_function"] = _freeswitch.Session_cb_function_get + if _newclass:cb_function = _swig_property(_freeswitch.Session_cb_function_get, _freeswitch.Session_cb_function_set) + __swig_setmethods__["cb_arg"] = _freeswitch.Session_cb_arg_set + __swig_getmethods__["cb_arg"] = _freeswitch.Session_cb_arg_get + if _newclass:cb_arg = _swig_property(_freeswitch.Session_cb_arg_get, _freeswitch.Session_cb_arg_set) + __swig_setmethods__["hangup_func"] = _freeswitch.Session_hangup_func_set + __swig_getmethods__["hangup_func"] = _freeswitch.Session_hangup_func_get + if _newclass:hangup_func = _swig_property(_freeswitch.Session_hangup_func_get, _freeswitch.Session_hangup_func_set) + __swig_setmethods__["hangup_func_arg"] = _freeswitch.Session_hangup_func_arg_set + __swig_getmethods__["hangup_func_arg"] = _freeswitch.Session_hangup_func_arg_get + if _newclass:hangup_func_arg = _swig_property(_freeswitch.Session_hangup_func_arg_get, _freeswitch.Session_hangup_func_arg_set) + def setPython(*args): return _freeswitch.Session_setPython(*args) + def setSelf(*args): return _freeswitch.Session_setSelf(*args) +Session_swigregister = _freeswitch.Session_swigregister +Session_swigregister(Session) diff --git a/src/mod/languages/mod_python/freeswitch_python.cpp b/src/mod/languages/mod_python/freeswitch_python.cpp index d072d1b92d..48e73a07ec 100644 --- a/src/mod/languages/mod_python/freeswitch_python.cpp +++ b/src/mod/languages/mod_python/freeswitch_python.cpp @@ -1,320 +1,301 @@ + +#include #include "freeswitch_python.h" +using namespace PYTHON; -#define py_sanity_check(x) do { if (!session) { switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "session is not initalized\n"); return x;}} while(0) -#define py_init_vars() do { caller_profile.source = "mod_python"; swapstate = S_SWAPPED_IN; } while(0) +#define py_init_vars() cb_function = cb_arg = hangup_func = hangup_func_arg = NULL; hh = mark = 0; TS = NULL -PySession::PySession():CoreSession() +Session::Session():CoreSession() { py_init_vars(); } -PySession::PySession(char *uuid):CoreSession(uuid) +Session::Session(char *uuid):CoreSession(uuid) { py_init_vars(); } -PySession::PySession(switch_core_session_t *new_session):CoreSession(new_session) +Session::Session(switch_core_session_t *new_session):CoreSession(new_session) { py_init_vars(); } +static switch_status_t python_hanguphook(switch_core_session_t *session_hungup); - -void PySession::setDTMFCallback(PyObject * pyfunc, char *funcargs) +Session::~Session() { - py_sanity_check(); - - if (!PyCallable_Check(pyfunc)) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "DTMF function is not a python function.\n"); - return; + + if (hangup_func) { + if (session) { + switch_core_event_hook_remove_state_change(session, python_hanguphook); + } + Py_XDECREF(hangup_func); + hangup_func = NULL; + } + + if (hangup_func_arg) { + Py_XDECREF(hangup_func_arg); + hangup_func_arg = NULL; } - Py_XINCREF(pyfunc); - CoreSession::setDTMFCallback((void *) pyfunc, funcargs); + if (cb_function) { + Py_XDECREF(cb_function); + cb_function = NULL; + } + + if (cb_arg) { + Py_XDECREF(cb_arg); + cb_arg = NULL; + } + + if (Self) { + Py_XDECREF(Self); + } +} + +bool Session::begin_allow_threads() +{ + + do_hangup_hook(); + + if (!TS) { + TS = PyEval_SaveThread(); + return true; + } + + return false; +} + +bool Session::end_allow_threads() +{ + + if (!TS) { + return false; + } + + PyEval_RestoreThread(TS); + TS = NULL; + + do_hangup_hook(); + + return true; +} + +void Session::setPython(PyObject *state) +{ + Py = state; +} + +void Session::setSelf(PyObject *state) +{ + Self = state; +} + +PyObject *Session::getPython() +{ + return Py; +} + + +bool Session::ready() +{ + bool r; + + sanity_check(false); + r = switch_channel_ready(channel) != 0; + do_hangup_hook(); + + return r; +} + +void Session::check_hangup_hook() +{ + if (hangup_func && (hook_state == CS_HANGUP || hook_state == CS_ROUTING)) { + hh++; + } +} + +void Session::do_hangup_hook() +{ + PyObject *result, *arglist; + const char *what = hook_state == CS_HANGUP ? "hangup" : "transfer"; + + if (hh && !mark) { + mark++; + + if (hangup_func) { + + if (!PyCallable_Check(hangup_func)) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "function not callable\n"); + return; + } + + if (!Self) { + mod_python_conjure_session(NULL, session, NULL); + } + + if (hangup_func_arg) { + arglist = Py_BuildValue("(OsO)", Self, what, hangup_func_arg); + } else { + arglist = Py_BuildValue("(Os)", Self, what); + } + + if (!(result = PyEval_CallObject(hangup_func, arglist))) { + PyErr_Print(); + } + + Py_XDECREF(arglist); + Py_XDECREF(hangup_func_arg); + } + } } -void PySession::setHangupHook(PyObject * pyfunc) +static switch_status_t python_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); + + if ((coresession = (CoreSession *) switch_channel_get_private(channel, "CoreSession"))) { + if (coresession->hook_state != state) { + coresession->hook_state = state; + coresession->check_hangup_hook(); + } + } + + return SWITCH_STATUS_SUCCESS; +} + + +void Session::setHangupHook(PyObject *pyfunc, PyObject *arg) { if (!PyCallable_Check(pyfunc)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Hangup hook is not a python function.\n"); return; } - // without this Py_XINCREF, there will be segfaults. basically the python - // interpreter will not know that it should not GC this object. - // callback example: http://docs.python.org/ext/callingPython.html - Py_XINCREF(pyfunc); - CoreSession::setHangupHook((void *) pyfunc); + + if (hangup_func) { + if (session) { + switch_core_event_hook_remove_state_change(session, python_hanguphook); + } + Py_XDECREF(hangup_func); + hangup_func = NULL; + } + + if (hangup_func_arg) { + Py_XDECREF(hangup_func_arg); + hangup_func_arg = NULL; + } + + hangup_func = pyfunc; + hangup_func_arg = arg; + + Py_XINCREF(hangup_func); + + if (hangup_func_arg) { + Py_XINCREF(hangup_func_arg); + } + + switch_channel_set_private(channel, "CoreSession", this); + hook_state = switch_channel_get_state(channel); + switch_core_event_hook_add_state_change(session, python_hanguphook); } - -void PySession::check_hangup_hook() +void Session::setInputCallback(PyObject *cbfunc, PyObject *funcargs) { -#if 0 - PyObject *func; - PyObject *result; - char *resultStr; - bool did_swap_in = false; -#endif - 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"); + if (!PyCallable_Check(cbfunc)) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Hangup hook is not a python function.\n"); return; } - return; + if (cb_function) { + Py_XDECREF(cb_function); + cb_function = NULL; + } - /*! NEEDS TO BE FIXED: + if (cb_arg) { + Py_XDECREF(cb_arg); + cb_arg = NULL; + } - // 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 - // guarantee that, and if thread state is already swapped in when this is invoked, - // bad things will happen. - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "check hangup hook end_allow_threads\n"); - did_swap_in = end_allow_threads(); + cb_function = cbfunc; + cb_arg = funcargs; + args.buf = this; + switch_channel_set_private(channel, "CoreSession", this); - if (on_hangup == NULL) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "on_hangup is null\n"); - return; - } + Py_XINCREF(cb_function); - func = (PyObject *) on_hangup; + if (cb_arg) { + Py_XINCREF(cb_arg); + } - // TODO: to match js implementation, should pass the _python_ PySession - // object instance wrapping this C++ PySession instance. but how do we do that? - // for now, pass the uuid since its better than nothing - PyObject* func_arg = Py_BuildValue("(s)", uuid); + args.input_callback = dtmf_callback; + ap = &args; - result = PyEval_CallObject(func, func_arg); - Py_XDECREF(func_arg); - - if (result) { - resultStr = (char *) PyString_AsString(result); - // currently just ignore the result - } - else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to call python hangup callback\n"); - PyErr_Print(); - PyErr_Clear(); - } - - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "check hangup hook begin_allow_threads\n"); - if (did_swap_in) { - begin_allow_threads(); - } - - Py_XDECREF(result); - */ } -switch_status_t PySession::run_dtmf_callback(void *input, switch_input_type_t itype) +switch_status_t Session::run_dtmf_callback(void *input, switch_input_type_t itype) { - PyObject *func, *arglist; - PyObject *pyresult; - PyObject *headerdict; + PyObject *pyresult, *arglist, *io = NULL; + int ts = 0; + char *str = NULL, *what = ""; - char *resultStr; - char *funcargs; - bool did_swap_in = false; - - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "run_dtmf_callback\n"); - - - if (!cb_state.function) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "cb_state->function is null\n"); - return SWITCH_STATUS_FALSE; + if (TS) { + ts++; + end_allow_threads(); } - func = (PyObject *) cb_state.function; - if (!func) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "cb_state->function is null\n"); - return SWITCH_STATUS_FALSE; - } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "cb_state->function is NOT null\n"); - } - if (!PyCallable_Check(func)) { + if (!PyCallable_Check(cb_function)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "function not callable\n"); return SWITCH_STATUS_FALSE; } - - funcargs = (char *) cb_state.funcargs; - + if (itype == SWITCH_INPUT_TYPE_DTMF) { - - arglist = Py_BuildValue("(sis)", input, itype, funcargs); - } else if (itype == SWITCH_INPUT_TYPE_EVENT) { - // DUNNO if this is correct in the case we have an event - // will be of type switch_event_t *event; - // http://www.freeswitch.org/docs/structswitch__event.html - switch_event_t *event = (switch_event_t *) input; - arglist = Py_BuildValue("({s:s}is)", "body", event->body, itype, funcargs); - - // build a dictionary with all the headers - - switch_event_header_t *hp; - headerdict = PyDict_New(); - for (hp = event->headers; hp; hp = hp->next) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Adding event header to result"); - - // TODO: create PyObject pointers for name and value - // and explicitly decref them. all ref counting stuff is - // a mess and needs to be tested and looked at closer. - PyDict_SetItem(headerdict, Py_BuildValue("s", hp->name), Py_BuildValue("s", hp->value)); - - } - - // add it to the main event dictionary (first arg in list) - // under key 'headers' - PyObject *dict = PyTuple_GetItem(arglist, 0); - PyDict_SetItemString(dict, "headers", headerdict); - - Py_XDECREF(headerdict); - - + switch_dtmf_t *dtmf = (switch_dtmf_t *) input; + io = mod_python_conjure_DTMF(dtmf->digit, dtmf->duration); + what = "dtmf"; + } else if (itype == SWITCH_INPUT_TYPE_EVENT){ + what = "event"; + io = mod_python_conjure_event(NULL, (switch_event_t *) input, NULL); } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unknown input type: %d\n", itype); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "unsupported type!\n"); return SWITCH_STATUS_FALSE; } - - if (!arglist) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "error building arglist"); - return SWITCH_STATUS_FALSE; + if (!Self) { + mod_python_conjure_session(NULL, session, NULL); + } + + if (cb_arg) { + arglist = Py_BuildValue("(OsOO)", Self, what, io, cb_arg); + } else { + arglist = Py_BuildValue("(OsO)", Self, what, io); } - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "run_dtmf_callback end_allow_threads\n"); - did_swap_in = end_allow_threads(); - - pyresult = PyEval_CallObject(func, arglist); - - - Py_XDECREF(arglist); // Trash arglist - - if (pyresult && pyresult != Py_None) { - resultStr = (char *) PyString_AsString(pyresult); - switch_status_t cbresult = process_callback_result(resultStr); - return cbresult; + if ((pyresult = PyEval_CallObject(cb_function, arglist))) { + str = (char *) PyString_AsString(pyresult); } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Python callback\n returned None"); PyErr_Print(); - PyErr_Clear(); } - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "run_dtmf_callback begin_allow_threads\n"); - if (did_swap_in) { + Py_XDECREF(arglist); + Py_XDECREF(io); + + if (cb_arg) { + Py_XDECREF(cb_arg); + } + + if (ts) { begin_allow_threads(); } - Py_XDECREF(pyresult); - - return SWITCH_STATUS_SUCCESS; - -} - -bool PySession::begin_allow_threads(void) -{ - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "PySession::begin_allow_threads() called\n"); - - if (!session) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "No valid session\n"); - return false; - } - // swap out threadstate and store in instance variable - switch_channel_t *channel = switch_core_session_get_channel(session); - PyThreadState *swapin_tstate = (PyThreadState *) switch_channel_get_private(channel, "SwapInThreadState"); - // so lets assume the thread state was swapped in when the python script was started, - // therefore swapin_tstate will be NULL (because there is nothing to swap in, since its - // _already_ swapped in.) - if (swapin_tstate == NULL) { - // currently swapped in - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Threadstate swap-out!\n"); - swapin_tstate = PyEval_SaveThread(); - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "swapin_tstate: %p\n", swapin_tstate); - // give future swapper-inners something to actually swap in - switch_channel_set_private(channel, "SwapInThreadState", (void *) swapin_tstate); - cb_state.threadState = threadState; // TODO: get rid of this - args.buf = &cb_state; - ap = &args; - return true; - - } else { - // currently swapped out - return false; - } - -} - -bool PySession::end_allow_threads(void) -{ - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "PySession::end_allow_threads() called\n"); - // swap in threadstate from instance variable saved earlier - if (!session) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "No valid session\n"); - return false; - } - - switch_channel_t *channel = switch_core_session_get_channel(session); - PyThreadState *swapin_tstate = (PyThreadState *) switch_channel_get_private(channel, "SwapInThreadState"); - if (swapin_tstate == NULL) { - // currently swapped in - return false; - } else { - // currently swapped out - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Threadstate swap-in!\n"); - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "swapin_tstate: %p\n", swapin_tstate); - PyEval_RestoreThread(swapin_tstate); - // dont give any swapper-inners the opportunity to do a double swap - switch_channel_set_private(channel, "SwapInThreadState", NULL); - return true; - } - - -} - -void PySession::hangup(char *cause) -{ - - - // since we INCREF'd this function pointer earlier (so the py gc didnt reclaim it) - // we have to DECREF it, or else the PySession dtor will never get called and - // a zombie channel will be left over using up resources - - if (cb_state.function != NULL) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "xdecref on cb_state_function\n"); - PyObject *func = (PyObject *) cb_state.function; - Py_XDECREF(func); - } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "cb_state.function is null\n"); - } - - - CoreSession::hangup(cause); - -} - - -PySession::~PySession() -{ - // Should we do any cleanup here? - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "PySession::~PySession started\n"); - - if (on_hangup) { - PyObject *func = (PyObject *) on_hangup; - Py_XDECREF(func); - } - - - if (cb_state.function != NULL) { - PyObject *func = (PyObject *) cb_state.function; - Py_XDECREF(func); - } - - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "PySession::~PySession finished\n"); + if (str) { + return process_callback_result(str); + } + return SWITCH_STATUS_FALSE; } diff --git a/src/mod/languages/mod_python/freeswitch_python.h b/src/mod/languages/mod_python/freeswitch_python.h index 44327361fa..9ba7e9b7fd 100644 --- a/src/mod/languages/mod_python/freeswitch_python.h +++ b/src/mod/languages/mod_python/freeswitch_python.h @@ -1,61 +1,45 @@ #ifndef FREESWITCH_PYTHON_H #define FREESWITCH_PYTHON_H -#include - -#ifdef __cplusplus extern "C" { -#endif -#ifdef DOH +#include +#include "mod_python_extra.h" } -#endif #include - - -typedef enum { - S_SWAPPED_IN = (1 << 0), - S_SWAPPED_OUT = (1 << 1) -} swap_state_t; - -void console_log(char *level_str, char *msg); -void console_clean_log(char *msg); - -class PySession : public CoreSession { +namespace PYTHON { +class Session : public CoreSession { private: - void *threadState; - int swapstate; + virtual void do_hangup_hook(); + PyObject *getPython(); + PyObject *Py; + PyObject *Self; + int hh; + int mark; + PyThreadState *TS; public: - PySession(); - PySession(char *uuid); - PySession(switch_core_session_t *session); - ~PySession(); - void setDTMFCallback(PyObject *pyfunc, char *funcargs); - void setHangupHook(PyObject *pyfunc); - void check_hangup_hook(); - void hangup(char *cause); - bool begin_allow_threads(); - bool end_allow_threads(); + Session(); + Session(char *uuid); + Session(switch_core_session_t *session); + virtual ~Session(); + + virtual bool begin_allow_threads(); + virtual bool end_allow_threads(); + virtual void check_hangup_hook(); - /** - * Run DTMF callback - * - * A static method in CoreSession is the first thing called - * upon receving a dtmf/event callback from fs engine, and then - * it gets the PySession instance and calls this method with - * dtmf/event object. - * - * @param input - a dtmf char buffer, or an event 'object' (not sure..) - * @param itype - a SWITCH_INPUT_TYPE_DTMF or a SWITCH_INPUT_TYPE_EVENT - */ - switch_status_t run_dtmf_callback(void *input, - switch_input_type_t itype); + virtual switch_status_t run_dtmf_callback(void *input, switch_input_type_t itype); + void setInputCallback(PyObject *cbfunc, PyObject *funcargs = NULL); + void setHangupHook(PyObject *pyfunc, PyObject *arg = NULL); + bool ready(); + + PyObject *cb_function; + PyObject *cb_arg; + PyObject *hangup_func; + PyObject *hangup_func_arg; + void setPython(PyObject *state); + void setSelf(PyObject *state); }; - - -#ifdef __cplusplus } #endif -#endif diff --git a/src/mod/languages/mod_python/hack.diff b/src/mod/languages/mod_python/hack.diff new file mode 100644 index 0000000000..777f34e435 --- /dev/null +++ b/src/mod/languages/mod_python/hack.diff @@ -0,0 +1,53 @@ +--- mod_python_wrap.cpp 2008-07-10 13:14:21.000000000 -0500 ++++ old.cpp 2008-07-10 13:13:57.000000000 -0500 +@@ -8150,20 +8150,20 @@ + } + + +-SWIGINTERN PyObject *_wrap_new_Session__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { ++SWIGINTERN PyObject *_wrap_new_Session__SWIG_0(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)":new_Session")) SWIG_fail; + result = (PYTHON::Session *)new PYTHON::Session(); +- resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_NEW | 0 ); ++ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_NEW | 0 ); result->setPython(self); + return resultobj; + fail: + return NULL; + } + + +-SWIGINTERN PyObject *_wrap_new_Session__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { ++SWIGINTERN PyObject *_wrap_new_Session__SWIG_1(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + char *arg1 = (char *) 0 ; + PYTHON::Session *result = 0 ; +@@ -8179,7 +8179,7 @@ + } + arg1 = reinterpret_cast< char * >(buf1); + result = (PYTHON::Session *)new PYTHON::Session(arg1); +- resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_NEW | 0 ); ++ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_NEW | 0 ); result->setPython(self); + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + return resultobj; + fail: +@@ -8188,7 +8188,7 @@ + } + + +-SWIGINTERN PyObject *_wrap_new_Session__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { ++SWIGINTERN PyObject *_wrap_new_Session__SWIG_2(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; + PYTHON::Session *result = 0 ; +@@ -8203,7 +8203,7 @@ + } + arg1 = reinterpret_cast< switch_core_session_t * >(argp1); + result = (PYTHON::Session *)new PYTHON::Session(arg1); +- resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_NEW | 0 ); ++ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_NEW | 0 ); result->setPython(self); + return resultobj; + fail: + return NULL; diff --git a/src/mod/languages/mod_python/mod_python.c b/src/mod/languages/mod_python/mod_python.c index 2f70ba4a39..9ce27e0af4 100644 --- a/src/mod/languages/mod_python/mod_python.c +++ b/src/mod/languages/mod_python/mod_python.c @@ -42,7 +42,7 @@ #endif #include - +#include "mod_python_extra.h" PyThreadState *mainThreadState = NULL; @@ -62,7 +62,7 @@ static void eval_some_python(char *uuid, char *args, switch_core_session_t *sess int argc; int lead = 0; char *script = NULL; - PyObject *module = NULL; + PyObject *module = NULL, *sp = NULL; PyObject *function = NULL; PyObject *arg = NULL; PyObject *result = NULL; @@ -139,6 +139,10 @@ static void eval_some_python(char *uuid, char *args, switch_core_session_t *sess PyTuple_SetItem(arg, 0, nada); } + if (session) { + sp = mod_python_conjure_session(module, session, "session"); + } + // invoke the handler switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Call python script \n"); result = PyEval_CallObjectWithKeywords(function, arg, (PyObject *) NULL); @@ -150,21 +154,26 @@ static void eval_some_python(char *uuid, char *args, switch_core_session_t *sess PyErr_Print(); PyErr_Clear(); } - - goto done_swap_out; - + done: switch_safe_free(dupargs); + if (sp) { + Py_XDECREF(sp); + } + done_swap_out: + + // decrement ref counts Py_XDECREF(module); Py_XDECREF(function); Py_XDECREF(arg); Py_XDECREF(result); - + // swap out thread state if (session) { + //switch_core_session_rwunlock(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"); @@ -189,7 +198,7 @@ static void eval_some_python(char *uuid, char *args, switch_core_session_t *sess 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); diff --git a/src/mod/languages/mod_python/mod_python.i b/src/mod/languages/mod_python/mod_python.i index 440a7b6114..34189313a6 100644 --- a/src/mod/languages/mod_python/mod_python.i +++ b/src/mod/languages/mod_python/mod_python.i @@ -26,5 +26,3 @@ %include switch_swigable_cpp.h %include freeswitch_python.h - - diff --git a/src/mod/languages/mod_python/mod_python_extra.c b/src/mod/languages/mod_python/mod_python_extra.c new file mode 100644 index 0000000000..54d53bde54 --- /dev/null +++ b/src/mod/languages/mod_python/mod_python_extra.c @@ -0,0 +1,65 @@ +SWITCH_BEGIN_EXTERN_C + +PyObject *mod_python_conjure_event(PyObject *module, switch_event_t *event, const char *name) +{ + PyObject *obj; + Event *result = new Event(event, 0); + + obj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Event, SWIG_POINTER_OWN ); + if (module && name) { + PyDict_SetItem(PyModule_GetDict(module), Py_BuildValue("s", name), obj); + Py_DECREF(obj); + } + + return obj; +} + + +PyObject *mod_python_conjure_stream(PyObject *module, switch_stream_handle_t *stream, const char *name) +{ + PyObject *obj; + Stream *result = new Stream(stream); + + obj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Stream, SWIG_POINTER_OWN ); + + if (module && name) { + PyDict_SetItem(PyModule_GetDict(module), Py_BuildValue("s", name), obj); + Py_DECREF(obj); + } + + return obj; +} + +PyObject *mod_python_conjure_session(PyObject *module, switch_core_session_t *session, const char *name) +{ + PyObject *obj; + + PYTHON::Session *result = new PYTHON::Session(session); + obj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_OWN); + + result->setPython(module); + result->setSelf(obj); + + if (module && name) { + PyDict_SetItem(PyModule_GetDict(module), Py_BuildValue("s", name), obj); + Py_DECREF(obj); + } + + return obj; + +} + +PyObject *mod_python_conjure_DTMF(char digit, int32_t duration) +{ + PyObject *obj; + + DTMF *result = new DTMF(digit, duration); + obj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DTMF, SWIG_POINTER_OWN); + + return obj; + +} + + + +SWITCH_END_EXTERN_C diff --git a/src/mod/languages/mod_python/mod_python_extra.h b/src/mod/languages/mod_python/mod_python_extra.h new file mode 100644 index 0000000000..72f1725639 --- /dev/null +++ b/src/mod/languages/mod_python/mod_python_extra.h @@ -0,0 +1,11 @@ +#ifndef MOD_PYTHON_EXTRA +#define MOD_PYTHON_EXTRA +SWITCH_BEGIN_EXTERN_C + +PyObject *mod_python_conjure_event(PyObject *module, switch_event_t *event, const char *name); +PyObject *mod_python_conjure_stream(PyObject *module, switch_stream_handle_t *stream, const char *name); +PyObject *mod_python_conjure_session(PyObject *module, switch_core_session_t *session, const char *name); +PyObject *mod_python_conjure_DTMF(char digit, int32_t duration); + +SWITCH_END_EXTERN_C +#endif diff --git a/src/mod/languages/mod_python/mod_python_wrap.cpp b/src/mod/languages/mod_python/mod_python_wrap.cpp index bec852d610..9f7da51551 100644 --- a/src/mod/languages/mod_python/mod_python_wrap.cpp +++ b/src/mod/languages/mod_python/mod_python_wrap.cpp @@ -2497,15 +2497,15 @@ SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) #define SWIGTYPE_p_API swig_types[0] #define SWIGTYPE_p_CoreSession swig_types[1] -#define SWIGTYPE_p_Event swig_types[2] -#define SWIGTYPE_p_EventConsumer swig_types[3] -#define SWIGTYPE_p_IVRMenu swig_types[4] -#define SWIGTYPE_p_PySession 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] -#define SWIGTYPE_p_session_flag_t swig_types[9] -#define SWIGTYPE_p_swap_state_t swig_types[10] +#define SWIGTYPE_p_DTMF swig_types[2] +#define SWIGTYPE_p_Event swig_types[3] +#define SWIGTYPE_p_EventConsumer swig_types[4] +#define SWIGTYPE_p_IVRMenu swig_types[5] +#define SWIGTYPE_p_PYTHON__Session swig_types[6] +#define SWIGTYPE_p_Stream swig_types[7] +#define SWIGTYPE_p_char swig_types[8] +#define SWIGTYPE_p_input_callback_state swig_types[9] +#define SWIGTYPE_p_session_flag_t swig_types[10] #define SWIGTYPE_p_switch_channel_state_t swig_types[11] #define SWIGTYPE_p_switch_channel_t swig_types[12] #define SWIGTYPE_p_switch_core_session_t swig_types[13] @@ -2518,9 +2518,10 @@ SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) #define SWIGTYPE_p_switch_queue_t swig_types[20] #define SWIGTYPE_p_switch_status_t swig_types[21] #define SWIGTYPE_p_switch_stream_handle_t swig_types[22] -#define SWIGTYPE_p_void swig_types[23] -static swig_type_info *swig_types[25]; -static swig_module_info swig_module = {swig_types, 24, 0, 0, 0, 0}; +#define SWIGTYPE_p_uint32_t swig_types[23] +#define SWIGTYPE_p_void swig_types[24] +static swig_type_info *swig_types[26]; +static swig_module_info swig_module = {swig_types, 25, 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) @@ -2863,6 +2864,56 @@ SWIG_From_int (int value) } +SWIGINTERN int +SWIG_AsCharArray(PyObject * obj, char *val, size_t size) +{ + char* cptr = 0; size_t csize = 0; int alloc = SWIG_OLDOBJ; + int res = SWIG_AsCharPtrAndSize(obj, &cptr, &csize, &alloc); + if (SWIG_IsOK(res)) { + if ((csize == size + 1) && cptr && !(cptr[csize-1])) --csize; + if (csize <= size) { + if (val) { + if (csize) memcpy(val, cptr, csize*sizeof(char)); + if (csize < size) memset(val + csize, 0, (size - csize)*sizeof(char)); + } + if (alloc == SWIG_NEWOBJ) { + delete[] cptr; + res = SWIG_DelNewMask(res); + } + return res; + } + if (alloc == SWIG_NEWOBJ) delete[] cptr; + } + return SWIG_TypeError; +} + + +SWIGINTERN int +SWIG_AsVal_char (PyObject * obj, char *val) +{ + int res = SWIG_AsCharArray(obj, val, 1); + if (!SWIG_IsOK(res)) { + long v; + res = SWIG_AddCast(SWIG_AsVal_long (obj, &v)); + if (SWIG_IsOK(res)) { + if ((CHAR_MIN <= v) && (v <= CHAR_MAX)) { + if (val) *val = static_cast< char >(v); + } else { + res = SWIG_OverflowError; + } + } + } + return res; +} + + +SWIGINTERNINLINE PyObject * +SWIG_From_char (char c) +{ + return SWIG_FromCharPtrAndSize(&c,1); +} + + SWIGINTERNINLINE PyObject* SWIG_From_bool (bool value) { @@ -3675,6 +3726,254 @@ SWIGINTERN PyObject *input_callback_state_t_swigregister(PyObject *SWIGUNUSEDPAR return SWIG_Py_Void(); } +SWIGINTERN PyObject *_wrap_DTMF_digit_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + DTMF *arg1 = (DTMF *) 0 ; + char arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + char val2 ; + int ecode2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:DTMF_digit_set",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_DTMF, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DTMF_digit_set" "', argument " "1"" of type '" "DTMF *""'"); + } + arg1 = reinterpret_cast< DTMF * >(argp1); + ecode2 = SWIG_AsVal_char(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "DTMF_digit_set" "', argument " "2"" of type '" "char""'"); + } + arg2 = static_cast< char >(val2); + if (arg1) (arg1)->digit = arg2; + + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_DTMF_digit_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + DTMF *arg1 = (DTMF *) 0 ; + char result; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:DTMF_digit_get",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_DTMF, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DTMF_digit_get" "', argument " "1"" of type '" "DTMF *""'"); + } + arg1 = reinterpret_cast< DTMF * >(argp1); + result = (char) ((arg1)->digit); + resultobj = SWIG_From_char(static_cast< char >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_DTMF_duration_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + DTMF *arg1 = (DTMF *) 0 ; + uint32_t arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + void *argp2 ; + int res2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:DTMF_duration_set",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_DTMF, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DTMF_duration_set" "', argument " "1"" of type '" "DTMF *""'"); + } + arg1 = reinterpret_cast< DTMF * >(argp1); + { + res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_uint32_t, 0 | 0); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DTMF_duration_set" "', argument " "2"" of type '" "uint32_t""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DTMF_duration_set" "', argument " "2"" of type '" "uint32_t""'"); + } else { + uint32_t * temp = reinterpret_cast< uint32_t * >(argp2); + arg2 = *temp; + if (SWIG_IsNewObj(res2)) delete temp; + } + } + if (arg1) (arg1)->duration = arg2; + + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_DTMF_duration_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + DTMF *arg1 = (DTMF *) 0 ; + uint32_t result; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:DTMF_duration_get",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_DTMF, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DTMF_duration_get" "', argument " "1"" of type '" "DTMF *""'"); + } + arg1 = reinterpret_cast< DTMF * >(argp1); + result = ((arg1)->duration); + resultobj = SWIG_NewPointerObj((new uint32_t(static_cast< const uint32_t& >(result))), SWIGTYPE_p_uint32_t, SWIG_POINTER_OWN | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_new_DTMF__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + char arg1 ; + uint32_t arg2 ; + DTMF *result = 0 ; + char val1 ; + int ecode1 = 0 ; + void *argp2 ; + int res2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:new_DTMF",&obj0,&obj1)) SWIG_fail; + ecode1 = SWIG_AsVal_char(obj0, &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DTMF" "', argument " "1"" of type '" "char""'"); + } + arg1 = static_cast< char >(val1); + { + res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_uint32_t, 0 | 0); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_DTMF" "', argument " "2"" of type '" "uint32_t""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_DTMF" "', argument " "2"" of type '" "uint32_t""'"); + } else { + uint32_t * temp = reinterpret_cast< uint32_t * >(argp2); + arg2 = *temp; + if (SWIG_IsNewObj(res2)) delete temp; + } + } + result = (DTMF *)new DTMF(arg1,arg2); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DTMF, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_new_DTMF__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + char arg1 ; + DTMF *result = 0 ; + char val1 ; + int ecode1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:new_DTMF",&obj0)) SWIG_fail; + ecode1 = SWIG_AsVal_char(obj0, &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DTMF" "', argument " "1"" of type '" "char""'"); + } + arg1 = static_cast< char >(val1); + result = (DTMF *)new DTMF(arg1); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DTMF, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_new_DTMF(PyObject *self, PyObject *args) { + int argc; + PyObject *argv[3]; + int ii; + + if (!PyTuple_Check(args)) SWIG_fail; + argc = (int)PyObject_Length(args); + for (ii = 0; (ii < argc) && (ii < 2); ii++) { + argv[ii] = PyTuple_GET_ITEM(args,ii); + } + if (argc == 1) { + int _v; + { + int res = SWIG_AsVal_char(argv[0], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + return _wrap_new_DTMF__SWIG_1(self, args); + } + } + if (argc == 2) { + int _v; + { + int res = SWIG_AsVal_char(argv[0], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_uint32_t, 0); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_new_DTMF__SWIG_0(self, args); + } + } + } + +fail: + SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_DTMF'.\n" + " Possible C/C++ prototypes are:\n" + " DTMF(char,uint32_t)\n" + " DTMF(char)\n"); + return NULL; +} + + +SWIGINTERN PyObject *_wrap_delete_DTMF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + DTMF *arg1 = (DTMF *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:delete_DTMF",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_DTMF, SWIG_POINTER_DISOWN | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_DTMF" "', argument " "1"" of type '" "DTMF *""'"); + } + arg1 = reinterpret_cast< DTMF * >(argp1); + delete arg1; + + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *DTMF_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + SWIG_TypeNewClientData(SWIGTYPE_p_DTMF, SWIG_NewClientData(obj)); + return SWIG_Py_Void(); +} + SWIGINTERN PyObject *_wrap_new_Stream__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Stream *result = 0 ; @@ -8151,36 +8450,36 @@ fail: } -SWIGINTERN PyObject *_wrap_new_PySession__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_Session__SWIG_0(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - PySession *result = 0 ; + PYTHON::Session *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)":new_PySession")) SWIG_fail; - result = (PySession *)new PySession(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PySession, SWIG_POINTER_NEW | 0 ); + if (!PyArg_ParseTuple(args,(char *)":new_Session")) SWIG_fail; + result = (PYTHON::Session *)new PYTHON::Session(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_NEW | 0 ); result->setPython(self); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_new_PySession__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_Session__SWIG_1(PyObject *self, PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; - PySession *result = 0 ; + PYTHON::Session *result = 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; PyObject * obj0 = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:new_PySession",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:new_Session",&obj0)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_PySession" "', argument " "1"" of type '" "char *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Session" "', argument " "1"" of type '" "char *""'"); } arg1 = reinterpret_cast< char * >(buf1); - result = (PySession *)new PySession(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PySession, SWIG_POINTER_NEW | 0 ); + result = (PYTHON::Session *)new PYTHON::Session(arg1); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_NEW | 0 ); result->setPython(self); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj; fail: @@ -8189,29 +8488,29 @@ fail: } -SWIGINTERN PyObject *_wrap_new_PySession__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_Session__SWIG_2(PyObject *self, PyObject *args) { PyObject *resultobj = 0; switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - PySession *result = 0 ; + PYTHON::Session *result = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:new_PySession",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:new_Session",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_switch_core_session_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_PySession" "', argument " "1"" of type '" "switch_core_session_t *""'"); + 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 = (PySession *)new PySession(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PySession, SWIG_POINTER_NEW | 0 ); + result = (PYTHON::Session *)new PYTHON::Session(arg1); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_NEW | 0 ); result->setPython(self); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_new_PySession(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_new_Session(PyObject *self, PyObject *args) { int argc; PyObject *argv[2]; int ii; @@ -8222,7 +8521,7 @@ SWIGINTERN PyObject *_wrap_new_PySession(PyObject *self, PyObject *args) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { - return _wrap_new_PySession__SWIG_0(self, args); + return _wrap_new_Session__SWIG_0(self, args); } if (argc == 1) { int _v; @@ -8230,7 +8529,7 @@ SWIGINTERN PyObject *_wrap_new_PySession(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_switch_core_session_t, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_new_PySession__SWIG_2(self, args); + return _wrap_new_Session__SWIG_2(self, args); } } if (argc == 1) { @@ -8238,33 +8537,33 @@ SWIGINTERN PyObject *_wrap_new_PySession(PyObject *self, PyObject *args) { int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_new_PySession__SWIG_1(self, args); + return _wrap_new_Session__SWIG_1(self, args); } } fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_PySession'.\n" + SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Session'.\n" " Possible C/C++ prototypes are:\n" - " PySession()\n" - " PySession(char *)\n" - " PySession(switch_core_session_t *)\n"); + " PYTHON::Session()\n" + " PYTHON::Session(char *)\n" + " PYTHON::Session(switch_core_session_t *)\n"); return NULL; } -SWIGINTERN PyObject *_wrap_delete_PySession(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_Session(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - PySession *arg1 = (PySession *) 0 ; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:delete_PySession",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySession, SWIG_POINTER_DISOWN | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:delete_Session",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PySession" "', argument " "1"" of type '" "PySession *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Session" "', argument " "1"" of type '" "PYTHON::Session *""'"); } - arg1 = reinterpret_cast< PySession * >(argp1); + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); @@ -8274,134 +8573,20 @@ fail: } -SWIGINTERN PyObject *_wrap_PySession_setDTMFCallback(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_Session_begin_allow_threads(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - PySession *arg1 = (PySession *) 0 ; - PyObject *arg2 = (PyObject *) 0 ; - char *arg3 = (char *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - int res3 ; - char *buf3 = 0 ; - int alloc3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OOO:PySession_setDTMFCallback",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySession, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySession_setDTMFCallback" "', argument " "1"" of type '" "PySession *""'"); - } - arg1 = reinterpret_cast< PySession * >(argp1); - arg2 = obj1; - res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySession_setDTMFCallback" "', argument " "3"" of type '" "char *""'"); - } - arg3 = reinterpret_cast< char * >(buf3); - (arg1)->setDTMFCallback(arg2,arg3); - resultobj = SWIG_Py_Void(); - if (alloc3 == SWIG_NEWOBJ) delete[] buf3; - return resultobj; -fail: - if (alloc3 == SWIG_NEWOBJ) delete[] buf3; - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PySession_setHangupHook(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PySession *arg1 = (PySession *) 0 ; - PyObject *arg2 = (PyObject *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:PySession_setHangupHook",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySession, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySession_setHangupHook" "', argument " "1"" of type '" "PySession *""'"); - } - arg1 = reinterpret_cast< PySession * >(argp1); - arg2 = obj1; - (arg1)->setHangupHook(arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PySession_check_hangup_hook(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PySession *arg1 = (PySession *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:PySession_check_hangup_hook",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySession, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySession_check_hangup_hook" "', argument " "1"" of type '" "PySession *""'"); - } - arg1 = reinterpret_cast< PySession * >(argp1); - (arg1)->check_hangup_hook(); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PySession_hangup(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PySession *arg1 = (PySession *) 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:PySession_hangup",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySession, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySession_hangup" "', argument " "1"" of type '" "PySession *""'"); - } - arg1 = reinterpret_cast< PySession * >(argp1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySession_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_PySession_begin_allow_threads(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PySession *arg1 = (PySession *) 0 ; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; bool result; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:PySession_begin_allow_threads",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySession, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:Session_begin_allow_threads",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySession_begin_allow_threads" "', argument " "1"" of type '" "PySession *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_begin_allow_threads" "', argument " "1"" of type '" "PYTHON::Session *""'"); } - arg1 = reinterpret_cast< PySession * >(argp1); + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); result = (bool)(arg1)->begin_allow_threads(); resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; @@ -8410,20 +8595,20 @@ fail: } -SWIGINTERN PyObject *_wrap_PySession_end_allow_threads(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_Session_end_allow_threads(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - PySession *arg1 = (PySession *) 0 ; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; bool result; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:PySession_end_allow_threads",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySession, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:Session_end_allow_threads",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySession_end_allow_threads" "', argument " "1"" of type '" "PySession *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_end_allow_threads" "', argument " "1"" of type '" "PYTHON::Session *""'"); } - arg1 = reinterpret_cast< PySession * >(argp1); + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); result = (bool)(arg1)->end_allow_threads(); resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; @@ -8432,9 +8617,30 @@ fail: } -SWIGINTERN PyObject *_wrap_PySession_run_dtmf_callback(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_Session_check_hangup_hook(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - PySession *arg1 = (PySession *) 0 ; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:Session_check_hangup_hook",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_check_hangup_hook" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + (arg1)->check_hangup_hook(); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_run_dtmf_callback(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; void *arg2 = (void *) 0 ; switch_input_type_t arg3 ; switch_status_t result; @@ -8447,23 +8653,23 @@ SWIGINTERN PyObject *_wrap_PySession_run_dtmf_callback(PyObject *SWIGUNUSEDPARM( PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OOO:PySession_run_dtmf_callback",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySession, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"OOO:Session_run_dtmf_callback",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySession_run_dtmf_callback" "', argument " "1"" of type '" "PySession *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_run_dtmf_callback" "', argument " "1"" of type '" "PYTHON::Session *""'"); } - arg1 = reinterpret_cast< PySession * >(argp1); + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySession_run_dtmf_callback" "', argument " "2"" of type '" "void *""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Session_run_dtmf_callback" "', argument " "2"" of type '" "void *""'"); } { res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_switch_input_type_t, 0 | 0); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySession_run_dtmf_callback" "', argument " "3"" of type '" "switch_input_type_t""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Session_run_dtmf_callback" "', argument " "3"" of type '" "switch_input_type_t""'"); } if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySession_run_dtmf_callback" "', argument " "3"" of type '" "switch_input_type_t""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Session_run_dtmf_callback" "', argument " "3"" of type '" "switch_input_type_t""'"); } else { switch_input_type_t * temp = reinterpret_cast< switch_input_type_t * >(argp3); arg3 = *temp; @@ -8478,10 +8684,464 @@ fail: } -SWIGINTERN PyObject *PySession_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_Session_setInputCallback__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *arg2 = (PyObject *) 0 ; + PyObject *arg3 = (PyObject *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OOO:Session_setInputCallback",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setInputCallback" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + arg2 = obj1; + arg3 = obj2; + (arg1)->setInputCallback(arg2,arg3); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_setInputCallback__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *arg2 = (PyObject *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:Session_setInputCallback",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setInputCallback" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + arg2 = obj1; + (arg1)->setInputCallback(arg2); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_setInputCallback(PyObject *self, PyObject *args) { + int argc; + PyObject *argv[4]; + int ii; + + if (!PyTuple_Check(args)) SWIG_fail; + argc = (int)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_PYTHON__Session, 0); + _v = SWIG_CheckState(res); + if (_v) { + _v = (argv[1] != 0); + if (_v) { + return _wrap_Session_setInputCallback__SWIG_1(self, args); + } + } + } + if (argc == 3) { + int _v; + void *vptr = 0; + int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_PYTHON__Session, 0); + _v = SWIG_CheckState(res); + if (_v) { + _v = (argv[1] != 0); + if (_v) { + _v = (argv[2] != 0); + if (_v) { + return _wrap_Session_setInputCallback__SWIG_0(self, args); + } + } + } + } + +fail: + SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Session_setInputCallback'.\n" + " Possible C/C++ prototypes are:\n" + " setInputCallback(PYTHON::Session *,PyObject *,PyObject *)\n" + " setInputCallback(PYTHON::Session *,PyObject *)\n"); + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_setHangupHook__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *arg2 = (PyObject *) 0 ; + PyObject *arg3 = (PyObject *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OOO:Session_setHangupHook",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setHangupHook" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + arg2 = obj1; + arg3 = obj2; + (arg1)->setHangupHook(arg2,arg3); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_setHangupHook__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *arg2 = (PyObject *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:Session_setHangupHook",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setHangupHook" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + arg2 = obj1; + (arg1)->setHangupHook(arg2); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_setHangupHook(PyObject *self, PyObject *args) { + int argc; + PyObject *argv[4]; + int ii; + + if (!PyTuple_Check(args)) SWIG_fail; + argc = (int)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_PYTHON__Session, 0); + _v = SWIG_CheckState(res); + if (_v) { + _v = (argv[1] != 0); + if (_v) { + return _wrap_Session_setHangupHook__SWIG_1(self, args); + } + } + } + if (argc == 3) { + int _v; + void *vptr = 0; + int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_PYTHON__Session, 0); + _v = SWIG_CheckState(res); + if (_v) { + _v = (argv[1] != 0); + if (_v) { + _v = (argv[2] != 0); + if (_v) { + return _wrap_Session_setHangupHook__SWIG_0(self, args); + } + } + } + } + +fail: + SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Session_setHangupHook'.\n" + " Possible C/C++ prototypes are:\n" + " setHangupHook(PYTHON::Session *,PyObject *,PyObject *)\n" + " setHangupHook(PYTHON::Session *,PyObject *)\n"); + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_ready(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + bool result; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:Session_ready",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_ready" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + result = (bool)(arg1)->ready(); + resultobj = SWIG_From_bool(static_cast< bool >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_cb_function_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *arg2 = (PyObject *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:Session_cb_function_set",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_function_set" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + arg2 = obj1; + if (arg1) (arg1)->cb_function = arg2; + + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_cb_function_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:Session_cb_function_get",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_function_get" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + result = (PyObject *) ((arg1)->cb_function); + resultobj = result; + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_cb_arg_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *arg2 = (PyObject *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:Session_cb_arg_set",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_arg_set" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + arg2 = obj1; + if (arg1) (arg1)->cb_arg = arg2; + + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_cb_arg_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:Session_cb_arg_get",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_cb_arg_get" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + result = (PyObject *) ((arg1)->cb_arg); + resultobj = result; + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_hangup_func_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *arg2 = (PyObject *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:Session_hangup_func_set",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_hangup_func_set" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + arg2 = obj1; + if (arg1) (arg1)->hangup_func = arg2; + + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_hangup_func_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:Session_hangup_func_get",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_hangup_func_get" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + result = (PyObject *) ((arg1)->hangup_func); + resultobj = result; + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_hangup_func_arg_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *arg2 = (PyObject *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:Session_hangup_func_arg_set",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_hangup_func_arg_set" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + arg2 = obj1; + if (arg1) (arg1)->hangup_func_arg = arg2; + + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_hangup_func_arg_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:Session_hangup_func_arg_get",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_hangup_func_arg_get" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + result = (PyObject *) ((arg1)->hangup_func_arg); + resultobj = result; + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_setPython(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *arg2 = (PyObject *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:Session_setPython",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setPython" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + arg2 = obj1; + (arg1)->setPython(arg2); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Session_setSelf(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + PyObject *arg2 = (PyObject *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:Session_setSelf",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_setSelf" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + arg2 = obj1; + (arg1)->setSelf(arg2); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *Session_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_PySession, SWIG_NewClientData(obj)); + SWIG_TypeNewClientData(SWIGTYPE_p_PYTHON__Session, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } @@ -8509,6 +9169,13 @@ static PyMethodDef SwigMethods[] = { { (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 *)"DTMF_digit_set", _wrap_DTMF_digit_set, METH_VARARGS, NULL}, + { (char *)"DTMF_digit_get", _wrap_DTMF_digit_get, METH_VARARGS, NULL}, + { (char *)"DTMF_duration_set", _wrap_DTMF_duration_set, METH_VARARGS, NULL}, + { (char *)"DTMF_duration_get", _wrap_DTMF_duration_get, METH_VARARGS, NULL}, + { (char *)"new_DTMF", _wrap_new_DTMF, METH_VARARGS, NULL}, + { (char *)"delete_DTMF", _wrap_delete_DTMF, METH_VARARGS, NULL}, + { (char *)"DTMF_swigregister", DTMF_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}, @@ -8608,36 +9275,46 @@ static PyMethodDef SwigMethods[] = { { (char *)"bridge", _wrap_bridge, METH_VARARGS, NULL}, { (char *)"hanguphook", _wrap_hanguphook, METH_VARARGS, NULL}, { (char *)"dtmf_callback", _wrap_dtmf_callback, METH_VARARGS, NULL}, - { (char *)"new_PySession", _wrap_new_PySession, METH_VARARGS, NULL}, - { (char *)"delete_PySession", _wrap_delete_PySession, METH_VARARGS, NULL}, - { (char *)"PySession_setDTMFCallback", _wrap_PySession_setDTMFCallback, METH_VARARGS, NULL}, - { (char *)"PySession_setHangupHook", _wrap_PySession_setHangupHook, METH_VARARGS, NULL}, - { (char *)"PySession_check_hangup_hook", _wrap_PySession_check_hangup_hook, METH_VARARGS, NULL}, - { (char *)"PySession_hangup", _wrap_PySession_hangup, METH_VARARGS, NULL}, - { (char *)"PySession_begin_allow_threads", _wrap_PySession_begin_allow_threads, METH_VARARGS, NULL}, - { (char *)"PySession_end_allow_threads", _wrap_PySession_end_allow_threads, METH_VARARGS, NULL}, - { (char *)"PySession_run_dtmf_callback", _wrap_PySession_run_dtmf_callback, METH_VARARGS, NULL}, - { (char *)"PySession_swigregister", PySession_swigregister, METH_VARARGS, NULL}, + { (char *)"new_Session", _wrap_new_Session, METH_VARARGS, NULL}, + { (char *)"delete_Session", _wrap_delete_Session, METH_VARARGS, NULL}, + { (char *)"Session_begin_allow_threads", _wrap_Session_begin_allow_threads, METH_VARARGS, NULL}, + { (char *)"Session_end_allow_threads", _wrap_Session_end_allow_threads, METH_VARARGS, NULL}, + { (char *)"Session_check_hangup_hook", _wrap_Session_check_hangup_hook, METH_VARARGS, NULL}, + { (char *)"Session_run_dtmf_callback", _wrap_Session_run_dtmf_callback, METH_VARARGS, NULL}, + { (char *)"Session_setInputCallback", _wrap_Session_setInputCallback, METH_VARARGS, NULL}, + { (char *)"Session_setHangupHook", _wrap_Session_setHangupHook, METH_VARARGS, NULL}, + { (char *)"Session_ready", _wrap_Session_ready, METH_VARARGS, NULL}, + { (char *)"Session_cb_function_set", _wrap_Session_cb_function_set, METH_VARARGS, NULL}, + { (char *)"Session_cb_function_get", _wrap_Session_cb_function_get, METH_VARARGS, NULL}, + { (char *)"Session_cb_arg_set", _wrap_Session_cb_arg_set, METH_VARARGS, NULL}, + { (char *)"Session_cb_arg_get", _wrap_Session_cb_arg_get, METH_VARARGS, NULL}, + { (char *)"Session_hangup_func_set", _wrap_Session_hangup_func_set, METH_VARARGS, NULL}, + { (char *)"Session_hangup_func_get", _wrap_Session_hangup_func_get, METH_VARARGS, NULL}, + { (char *)"Session_hangup_func_arg_set", _wrap_Session_hangup_func_arg_set, METH_VARARGS, NULL}, + { (char *)"Session_hangup_func_arg_get", _wrap_Session_hangup_func_arg_get, METH_VARARGS, NULL}, + { (char *)"Session_setPython", _wrap_Session_setPython, METH_VARARGS, NULL}, + { (char *)"Session_setSelf", _wrap_Session_setSelf, METH_VARARGS, NULL}, + { (char *)"Session_swigregister", Session_swigregister, METH_VARARGS, NULL}, { NULL, NULL, 0, NULL } }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ -static void *_p_PySessionTo_p_CoreSession(void *x, int *newmemory) { - return (void *)((CoreSession *) ((PySession *) x)); +static void *_p_PYTHON__SessionTo_p_CoreSession(void *x, int *newmemory) { + return (void *)((CoreSession *) ((PYTHON::Session *) 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_DTMF = {"_p_DTMF", "DTMF *", 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_EventConsumer = {"_p_EventConsumer", "EventConsumer *", 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_PYTHON__Session = {"_p_PYTHON__Session", "PYTHON::Session *", 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_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}; 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}; @@ -8650,20 +9327,21 @@ static swig_type_info _swigt__p_switch_priority_t = {"_p_switch_priority_t", "sw static swig_type_info _swigt__p_switch_queue_t = {"_p_switch_queue_t", "switch_queue_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_uint32_t = {"_p_uint32_t", "uint32_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_DTMF, &_swigt__p_Event, &_swigt__p_EventConsumer, &_swigt__p_IVRMenu, - &_swigt__p_PySession, + &_swigt__p_PYTHON__Session, &_swigt__p_Stream, &_swigt__p_char, &_swigt__p_input_callback_state, &_swigt__p_session_flag_t, - &_swigt__p_swap_state_t, &_swigt__p_switch_channel_state_t, &_swigt__p_switch_channel_t, &_swigt__p_switch_core_session_t, @@ -8676,20 +9354,21 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_switch_queue_t, &_swigt__p_switch_status_t, &_swigt__p_switch_stream_handle_t, + &_swigt__p_uint32_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_CoreSession[] = { {&_swigt__p_CoreSession, 0, 0, 0}, {&_swigt__p_PYTHON__Session, _p_PYTHON__SessionTo_p_CoreSession, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_DTMF[] = { {&_swigt__p_DTMF, 0, 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_EventConsumer[] = { {&_swigt__p_EventConsumer, 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_PYTHON__Session[] = { {&_swigt__p_PYTHON__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}}; static swig_cast_info _swigc__p_session_flag_t[] = { {&_swigt__p_session_flag_t, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_swap_state_t[] = { {&_swigt__p_swap_state_t, 0, 0, 0},{0, 0, 0, 0}}; 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}}; @@ -8702,20 +9381,21 @@ static swig_cast_info _swigc__p_switch_priority_t[] = { {&_swigt__p_switch_prio static swig_cast_info _swigc__p_switch_queue_t[] = { {&_swigt__p_switch_queue_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_uint32_t[] = { {&_swigt__p_uint32_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_DTMF, _swigc__p_Event, _swigc__p_EventConsumer, _swigc__p_IVRMenu, - _swigc__p_PySession, + _swigc__p_PYTHON__Session, _swigc__p_Stream, _swigc__p_char, _swigc__p_input_callback_state, _swigc__p_session_flag_t, - _swigc__p_swap_state_t, _swigc__p_switch_channel_state_t, _swigc__p_switch_channel_t, _swigc__p_switch_core_session_t, @@ -8728,6 +9408,7 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_switch_queue_t, _swigc__p_switch_status_t, _swigc__p_switch_stream_handle_t, + _swigc__p_uint32_t, _swigc__p_void, }; @@ -9261,7 +9942,6 @@ SWIGEXPORT void SWIG_init(void) { SWIG_Python_SetConstant(d, "S_HUP",SWIG_From_int(static_cast< int >(S_HUP))); SWIG_Python_SetConstant(d, "S_FREE",SWIG_From_int(static_cast< int >(S_FREE))); SWIG_Python_SetConstant(d, "S_RDLOCK",SWIG_From_int(static_cast< int >(S_RDLOCK))); - SWIG_Python_SetConstant(d, "S_SWAPPED_IN",SWIG_From_int(static_cast< int >(S_SWAPPED_IN))); - SWIG_Python_SetConstant(d, "S_SWAPPED_OUT",SWIG_From_int(static_cast< int >(S_SWAPPED_OUT))); } +#include "mod_python_extra.c" diff --git a/src/mod/languages/mod_python/switch_swig_wrap.c b/src/mod/languages/mod_python/switch_swig_wrap.c deleted file mode 100644 index 57cd854511..0000000000 --- a/src/mod/languages/mod_python/switch_swig_wrap.c +++ /dev/null @@ -1,2948 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 1.3.27 - * - * 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 - * changes to this file unless you know what you are doing--modify the SWIG - * interface file instead. - * ----------------------------------------------------------------------------- */ - -#define SWIGPYTHON -/*********************************************************************** - * - * This section contains generic SWIG labels for method/variable - * declarations/attributes, and other compiler dependent labels. - * - ************************************************************************/ - -/* template workaround for compilers that cannot correctly implement the C++ standard */ -#ifndef SWIGTEMPLATEDISAMBIGUATOR -# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) -# define SWIGTEMPLATEDISAMBIGUATOR template -# else -# define SWIGTEMPLATEDISAMBIGUATOR -# endif -#endif - -/* inline attribute */ -#ifndef SWIGINLINE -# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) -# define SWIGINLINE inline -# else -# define SWIGINLINE -# endif -#endif - -/* attribute recognised by some compilers to avoid 'unused' warnings */ -#ifndef SWIGUNUSED -# if defined(__GNUC__) || defined(__ICC) -# define SWIGUNUSED __attribute__ ((unused)) -# else -# define SWIGUNUSED -# endif -#endif - -/* internal SWIG method */ -#ifndef SWIGINTERN -# define SWIGINTERN static SWIGUNUSED -#endif - -/* internal inline SWIG method */ -#ifndef SWIGINTERNINLINE -# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE -#endif - -/* exporting methods for Windows DLLs */ -#ifndef SWIGEXPORT -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# if defined(STATIC_LINKED) -# define SWIGEXPORT -# else -# define SWIGEXPORT __declspec(dllexport) -# endif -# else -# define SWIGEXPORT -# endif -#endif - -/* calling conventions for Windows */ -#ifndef SWIGSTDCALL -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# define SWIGSTDCALL __stdcall -# else -# define SWIGSTDCALL -# endif -#endif - - - -#include - -/*********************************************************************** - * swigrun.swg - * - * This file contains generic CAPI SWIG runtime support for pointer - * type checking. - * - ************************************************************************/ - -/* 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 "2" - -/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ -#ifdef SWIG_TYPE_TABLE -# define SWIG_QUOTE_STRING(x) #x -# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) -# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) -#else -# define SWIG_TYPE_TABLE_NAME -#endif - -/* - You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for - creating a static or dynamic library from the swig runtime code. - In 99.9% of the cases, swig just needs to declare them as 'static'. - - But only do this if is strictly necessary, ie, if you have problems - with your compiler or so. -*/ - -#ifndef SWIGRUNTIME -# define SWIGRUNTIME SWIGINTERN -#endif - -#ifndef SWIGRUNTIMEINLINE -# define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - typedef void *(*swig_converter_func) (void *); - typedef struct swig_type_info *(*swig_dycast_func) (void **); - -/* Structure to store inforomation 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 */ - swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ - struct swig_cast_info *cast; /* linked list of types that can cast into this type */ - void *clientdata; /* language specific type data */ - } swig_type_info; - -/* Structure to store a type and conversion function used for casting */ - typedef struct swig_cast_info { - swig_type_info *type; /* pointer to type that is equivalent to this type */ - swig_converter_func converter; /* function to cast the void pointers */ - struct swig_cast_info *next; /* pointer to next cast in linked list */ - struct swig_cast_info *prev; /* pointer to the previous cast */ - } swig_cast_info; - -/* Structure used to store module information - * Each module generates one structure like this, and the runtime collects - * all of these structures and stores them in a circularly linked list.*/ - typedef struct swig_module_info { - swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ - size_t size; /* Number of types in this module */ - struct swig_module_info *next; /* Pointer to next element in circularly linked list */ - swig_type_info **type_initial; /* Array of initially generated type structures */ - swig_cast_info **cast_initial; /* Array of initially generated casting structures */ - void *clientdata; /* Language specific module data */ - } swig_module_info; - - -/* - Compare two type names skipping the space characters, therefore - "char*" == "char *" and "Class" == "Class", etc. - - Return 0 when the two name types are equivalent, as in - strncmp, but skipping ' '. -*/ - SWIGRUNTIME int - SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { - for (; (f1 != l1) && (f2 != l2); ++f1, ++f2) { - while ((*f1 == ' ') && (f1 != l1)) - ++f1; - while ((*f2 == ' ') && (f2 != l2)) - ++f2; - if (*f1 != *f2) - return (int) (*f1 - *f2); - } return (l1 - f1) - (l2 - f2); - } - -/* - Check type equivalence in a name list like ||... - Return 0 if not equal, 1 if equal -*/ - SWIGRUNTIME int - SWIG_TypeEquiv(const char *nb, const char *tb) { - int equiv = 0; - const char *te = tb + strlen(tb); - const char *ne = nb; - while (!equiv && *ne) { - for (nb = ne; *ne; ++ne) { - if (*ne == '|') - break; - } - equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; - if (*ne) - ++ne; - } - return equiv; - } - -/* - Check type equivalence in a name list like ||... - Return 0 if equal, -1 if nb < tb, 1 if nb > tb -*/ - SWIGRUNTIME int - SWIG_TypeCompare(const char *nb, const char *tb) { - int equiv = 0; - const char *te = tb + strlen(tb); - const char *ne = nb; - while (!equiv && *ne) { - for (nb = ne; *ne; ++ne) { - if (*ne == '|') - break; - } - equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; - if (*ne) - ++ne; - } - return equiv; - } - - -/* think of this as a c++ template<> or a scheme macro */ -#define SWIG_TypeCheck_Template(comparison, ty) \ - if (ty) { \ - swig_cast_info *iter = ty->cast; \ - while (iter) { \ - if (comparison) { \ - if (iter == ty->cast) return iter; \ - /* Move iter to the top of the linked list */ \ - iter->prev->next = iter->next; \ - if (iter->next) \ - iter->next->prev = iter->prev; \ - iter->next = ty->cast; \ - iter->prev = 0; \ - if (ty->cast) ty->cast->prev = iter; \ - ty->cast = iter; \ - return iter; \ - } \ - iter = iter->next; \ - } \ - } \ - return 0 - -/* - Check the typename -*/ - SWIGRUNTIME swig_cast_info *SWIG_TypeCheck(const char *c, swig_type_info * ty) { - SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty); - } - -/* Same as previous function, except strcmp is replaced with a pointer comparison */ - SWIGRUNTIME swig_cast_info *SWIG_TypeCheckStruct(swig_type_info * from, swig_type_info * into) { - SWIG_TypeCheck_Template(iter->type == from, into); - } - -/* - 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); - } - -/* - Dynamic pointer casting. Down an inheritance hierarchy -*/ - SWIGRUNTIME swig_type_info *SWIG_TypeDynamicCast(swig_type_info * ty, void **ptr) { - swig_type_info *lastty = ty; - if (!ty || !ty->dcast) - return ty; - while (ty && (ty->dcast)) { - ty = (*ty->dcast) (ptr); - if (ty) - lastty = ty; - } - return lastty; - } - -/* - Return the name associated with this type -*/ - SWIGRUNTIMEINLINE const char *SWIG_TypeName(const swig_type_info * ty) { - return ty->name; - } - -/* - Return the pretty name associated with this type, - that is an unmangled type name in a form presentable to the user. -*/ - SWIGRUNTIME const char *SWIG_TypePrettyName(const swig_type_info * type) { - /* The "str" field contains the equivalent pretty names of the - type, separated by vertical-bar characters. We choose - to print the last name, as it is often (?) the most - specific. */ - if (type->str != NULL) { - const char *last_name = type->str; - const char *s; - for (s = type->str; *s; s++) - if (*s == '|') - last_name = s + 1; - return last_name; - } else - return type->name; - } - -/* - Set the clientdata field for a type -*/ - SWIGRUNTIME void - SWIG_TypeClientData(swig_type_info * ti, void *clientdata) { - swig_cast_info *cast = ti->cast; - /* if (ti->clientdata == clientdata) return; */ - ti->clientdata = clientdata; - - while (cast) { - if (!cast->converter) { - swig_type_info *tc = cast->type; - if (!tc->clientdata) { - SWIG_TypeClientData(tc, clientdata); - } - } - cast = cast->next; - } - } - -/* - Search for a swig_type_info structure only by mangled name - Search is a O(log #types) - - We start searching at module start, and finish searching when start == end. - Note: if start == end at the beginning of the function, we go all the way around - the circular list. -*/ - SWIGRUNTIME swig_type_info *SWIG_MangledTypeQueryModule(swig_module_info * start, swig_module_info * end, const char *name) { - swig_module_info *iter = start; - do { - if (iter->size) { - register size_t l = 0; - register size_t r = iter->size - 1; - do { - /* since l+r >= 0, we can (>> 1) instead (/ 2) */ - register size_t i = (l + r) >> 1; - const char *iname = iter->types[i]->name; - if (iname) { - register int compare = strcmp(name, iname); - if (compare == 0) { - return iter->types[i]; - } else if (compare < 0) { - if (i) { - r = i - 1; - } else { - break; - } - } else if (compare > 0) { - l = i + 1; - } - } else { - break; /* should never happen */ - } - } while (l <= r); - } - iter = iter->next; - } while (iter != end); - return 0; - } - -/* - Search for a swig_type_info structure for either a mangled name or a human readable name. - It first searches the mangled names of the types, which is a O(log #types) - If a type is not found it then searches the human readable names, which is O(#types). - - We start searching at module start, and finish searching when start == end. - Note: if start == end at the beginning of the function, we go all the way around - the circular list. -*/ - SWIGRUNTIME swig_type_info *SWIG_TypeQueryModule(swig_module_info * start, swig_module_info * end, const char *name) { - /* STEP 1: Search the name field using binary search */ - swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); - if (ret) { - return ret; - } else { - /* STEP 2: If the type hasn't been found, do a complete search - of the str field (the human readable name) */ - swig_module_info *iter = start; - do { - register size_t i = 0; - for (; i < iter->size; ++i) { - if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) - return iter->types[i]; - } - iter = iter->next; - } while (iter != end); - } - - /* neither found a match */ - return 0; - } - - -/* - Pack binary data into a string -*/ - SWIGRUNTIME char *SWIG_PackData(char *c, void *ptr, size_t sz) { - static const char hex[17] = "0123456789abcdef"; - register const unsigned char *u = (unsigned char *) ptr; - register const unsigned char *eu = u + sz; - for (; u != eu; ++u) { - register unsigned char uu = *u; - *(c++) = hex[(uu & 0xf0) >> 4]; - *(c++) = hex[uu & 0xf]; - } - return c; - } - -/* - Unpack binary data from a string -*/ - SWIGRUNTIME const char *SWIG_UnpackData(const char *c, void *ptr, size_t sz) { - register unsigned char *u = (unsigned char *) ptr; - register const unsigned char *eu = u + sz; - for (; u != eu; ++u) { - register char d = *(c++); - register unsigned char uu = 0; - if ((d >= '0') && (d <= '9')) - uu = ((d - '0') << 4); - else if ((d >= 'a') && (d <= 'f')) - uu = ((d - ('a' - 10)) << 4); - else - return (char *) 0; - d = *(c++); - if ((d >= '0') && (d <= '9')) - uu |= (d - '0'); - else if ((d >= 'a') && (d <= 'f')) - uu |= (d - ('a' - 10)); - else - return (char *) 0; - *u = uu; - } - return c; - } - -/* - Pack 'void *' into a string buffer. -*/ - SWIGRUNTIME char *SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { - char *r = buff; - if ((2 * sizeof(void *) + 2) > bsz) - return 0; - *(r++) = '_'; - r = SWIG_PackData(r, &ptr, sizeof(void *)); - if (strlen(name) + 1 > (bsz - (r - buff))) - return 0; - strcpy(r, name); - return buff; - } - - SWIGRUNTIME const char *SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { - if (*c != '_') { - if (strcmp(c, "NULL") == 0) { - *ptr = (void *) 0; - return name; - } else { - return 0; - } - } - return SWIG_UnpackData(++c, ptr, sizeof(void *)); - } - - SWIGRUNTIME char *SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { - char *r = buff; - size_t lname = (name ? strlen(name) : 0); - if ((2 * sz + 2 + lname) > bsz) - return 0; - *(r++) = '_'; - r = SWIG_PackData(r, ptr, sz); - if (lname) { - strncpy(r, name, lname + 1); - } else { - *r = 0; - } - return buff; - } - - SWIGRUNTIME const char *SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { - if (*c != '_') { - if (strcmp(c, "NULL") == 0) { - memset(ptr, 0, sz); - return name; - } else { - return 0; - } - } - return SWIG_UnpackData(++c, ptr, sz); - } - -#ifdef __cplusplus -} -#endif - -/* ----------------------------------------------------------------------------- - * SWIG API. Portion that goes into the runtime - * ----------------------------------------------------------------------------- */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ----------------------------------------------------------------------------- - * for internal method declarations - * ----------------------------------------------------------------------------- */ - -#ifndef SWIGINTERN -# define SWIGINTERN static SWIGUNUSED -#endif - -#ifndef SWIGINTERNINLINE -# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE -#endif - -/* - Exception handling in wrappers -*/ -#define SWIG_fail goto fail -#define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg) -#define SWIG_append_errmsg(msg) SWIG_Python_AddErrMesg(msg,0) -#define SWIG_preppend_errmsg(msg) SWIG_Python_AddErrMesg(msg,1) -#define SWIG_type_error(type,obj) SWIG_Python_TypeError(type,obj) -#define SWIG_null_ref(type) SWIG_Python_NullRef(type) - -/* - Contract support -*/ -#define SWIG_contract_assert(expr, msg) \ - if (!(expr)) { PyErr_SetString(PyExc_RuntimeError, (char *) msg ); goto fail; } else - -/* ----------------------------------------------------------------------------- - * Constant declarations - * ----------------------------------------------------------------------------- */ - -/* Constant Types */ -#define SWIG_PY_INT 1 -#define SWIG_PY_FLOAT 2 -#define SWIG_PY_STRING 3 -#define SWIG_PY_POINTER 4 -#define SWIG_PY_BINARY 5 - -/* Constant information structure */ - typedef struct swig_const_info { - int type; - char *name; - long lvalue; - double dvalue; - void *pvalue; - swig_type_info **ptype; - } swig_const_info; - - -/* ----------------------------------------------------------------------------- - * Alloc. memory flags - * ----------------------------------------------------------------------------- */ -#define SWIG_OLDOBJ 1 -#define SWIG_NEWOBJ SWIG_OLDOBJ + 1 -#define SWIG_PYSTR SWIG_NEWOBJ + 1 - -#ifdef __cplusplus -} -#endif -/*********************************************************************** - * pyrun.swg - * - * This file contains the runtime support for Python modules - * and includes code for managing global variables and pointer - * type checking. - * - * Author : David Beazley (beazley@cs.uchicago.edu) - ************************************************************************//* Common SWIG API */ -#define SWIG_ConvertPtr(obj, pp, type, flags) SWIG_Python_ConvertPtr(obj, pp, type, flags) -#define SWIG_NewPointerObj(p, type, flags) SWIG_Python_NewPointerObj(p, type, flags) -#define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags) -/* Python-specific SWIG API */ -#define SWIG_ConvertPacked(obj, ptr, sz, ty, flags) SWIG_Python_ConvertPacked(obj, ptr, sz, ty, flags) -#define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) -/* Runtime API */ -#define SWIG_GetModule(clientdata) SWIG_Python_GetModule() -#define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) -/* ----------------------------------------------------------------------------- - * Pointer declarations - * ----------------------------------------------------------------------------- *//* - Use SWIG_NO_COBJECT_TYPES to force the use of strings to represent - C/C++ pointers in the python side. Very useful for debugging, but - not always safe. - */ -#if !defined(SWIG_NO_COBJECT_TYPES) && !defined(SWIG_COBJECT_TYPES) -# define SWIG_COBJECT_TYPES -#endif -/* Flags for pointer conversion */ -#define SWIG_POINTER_EXCEPTION 0x1 -#define SWIG_POINTER_DISOWN 0x2 -/* Add PyOS_snprintf for old Pythons */ -#if PY_VERSION_HEX < 0x02020000 -#define PyOS_snprintf snprintf -#endif -#ifdef __cplusplus -extern "C" { -#endif - -/* ----------------------------------------------------------------------------- - * Create a new pointer string - * ----------------------------------------------------------------------------- */ -#ifndef SWIG_BUFFER_SIZE -#define SWIG_BUFFER_SIZE 1024 -#endif - -/* A crude PyString_FromFormat implementation for old Pythons */ -#if PY_VERSION_HEX < 0x02020000 - static PyObject *PyString_FromFormat(const char *fmt, ...) { - va_list ap; - char buf[SWIG_BUFFER_SIZE * 2]; - int res; - va_start(ap, fmt); - res = vsnprintf(buf, sizeof(buf), fmt, ap); - va_end(ap); - return (res < 0 || res >= sizeof(buf)) ? 0 : PyString_FromString(buf); - } -#endif -#if PY_VERSION_HEX < 0x01060000 -#define PyObject_Del(op) PyMem_DEL((op)) -#endif -#if defined(SWIG_COBJECT_TYPES) -#if !defined(SWIG_COBJECT_PYTHON) -/* ----------------------------------------------------------------------------- - * Implements a simple Swig Object type, and use it instead of PyCObject - * ----------------------------------------------------------------------------- */ typedef struct { - PyObject_HEAD void *ptr; - const char *desc; - } PySwigObject; - -/* Declarations for objects of type PySwigObject */ - - SWIGRUNTIME int - PySwigObject_print(PySwigObject * v, FILE * fp, int flags) { - char result[SWIG_BUFFER_SIZE]; - flags = flags; - if (SWIG_PackVoidPtr(result, v->ptr, v->desc, sizeof(result))) { - fputs("", fp); - return 0; - } else { - return 1; - } - } - - SWIGRUNTIME PyObject *PySwigObject_repr(PySwigObject * v) { - char result[SWIG_BUFFER_SIZE]; - return SWIG_PackVoidPtr(result, v->ptr, v->desc, sizeof(result)) ? PyString_FromFormat("", result) : 0; - } - - SWIGRUNTIME PyObject *PySwigObject_str(PySwigObject * v) { - char result[SWIG_BUFFER_SIZE]; - return SWIG_PackVoidPtr(result, v->ptr, v->desc, sizeof(result)) ? PyString_FromString(result) : 0; - } - - SWIGRUNTIME PyObject *PySwigObject_long(PySwigObject * v) { - return PyLong_FromVoidPtr(v->ptr); - } - - SWIGRUNTIME PyObject *PySwigObject_format(const char *fmt, PySwigObject * v) { - PyObject *res = NULL; - PyObject *args = PyTuple_New(1); - if (args && (PyTuple_SetItem(args, 0, PySwigObject_long(v)) == 0)) { - PyObject *ofmt = PyString_FromString(fmt); - if (ofmt) { - res = PyString_Format(ofmt, args); - Py_DECREF(ofmt); - } - Py_DECREF(args); - } - return res; - } - - SWIGRUNTIME PyObject *PySwigObject_oct(PySwigObject * v) { - return PySwigObject_format("%o", v); - } - - SWIGRUNTIME PyObject *PySwigObject_hex(PySwigObject * v) { - return PySwigObject_format("%x", v); - } - - SWIGRUNTIME int - PySwigObject_compare(PySwigObject * v, PySwigObject * w) { - int c = strcmp(v->desc, w->desc); - if (c) { - return (c > 0) ? 1 : -1; - } else { - void *i = v->ptr; - void *j = w->ptr; - return (i < j) ? -1 : ((i > j) ? 1 : 0); - } - } - - SWIGRUNTIME void - PySwigObject_dealloc(PySwigObject * self) { - PyObject_Del(self); - } - - SWIGRUNTIME PyTypeObject *PySwigObject_type(void) { - static char pyswigobject_type__doc__[] = "Swig object carries a C/C++ instance pointer"; - - static PyNumberMethods PySwigObject_as_number = { - (binaryfunc) 0, /*nb_add */ - (binaryfunc) 0, /*nb_subtract */ - (binaryfunc) 0, /*nb_multiply */ - (binaryfunc) 0, /*nb_divide */ - (binaryfunc) 0, /*nb_remainder */ - (binaryfunc) 0, /*nb_divmod */ - (ternaryfunc) 0, /*nb_power */ - (unaryfunc) 0, /*nb_negative */ - (unaryfunc) 0, /*nb_positive */ - (unaryfunc) 0, /*nb_absolute */ - (inquiry) 0, /*nb_nonzero */ - 0, /*nb_invert */ - 0, /*nb_lshift */ - 0, /*nb_rshift */ - 0, /*nb_and */ - 0, /*nb_xor */ - 0, /*nb_or */ - (coercion) 0, /*nb_coerce */ - (unaryfunc) PySwigObject_long, /*nb_int */ - (unaryfunc) PySwigObject_long, /*nb_long */ - (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 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* nb_inplace_add -> nb_inplace_or */ -#endif - }; - - static PyTypeObject pyswigobject_type -#if !defined(__cplusplus) - ; - static int type_init = 0; - if (!type_init) { - PyTypeObject tmp -#endif - = { - PyObject_HEAD_INIT(&PyType_Type) - 0, /*ob_size */ - (char *) "PySwigObject", /*tp_name */ - sizeof(PySwigObject), /*tp_basicsize */ - 0, /*tp_itemsize */ - /* methods */ - (destructor) PySwigObject_dealloc, /*tp_dealloc */ - (printfunc) PySwigObject_print, /*tp_print */ - (getattrfunc) 0, /*tp_getattr */ - (setattrfunc) 0, /*tp_setattr */ - (cmpfunc) PySwigObject_compare, /*tp_compare */ - (reprfunc) PySwigObject_repr, /*tp_repr */ - &PySwigObject_as_number, /*tp_as_number */ - 0, /*tp_as_sequence */ - 0, /*tp_as_mapping */ - (hashfunc) 0, /*tp_hash */ - (ternaryfunc) 0, /*tp_call */ - (reprfunc) PySwigObject_str, /*tp_str */ - /* Space for future expansion */ - 0, 0, 0, 0, - pyswigobject_type__doc__, /* Documentation string */ -#if PY_VERSION_HEX >= 0x02000000 - 0, /* tp_traverse */ - 0, /* tp_clear */ -#endif -#if PY_VERSION_HEX >= 0x02010000 - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ -#endif -#if PY_VERSION_HEX >= 0x02020000 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* tp_iter -> tp_weaklist */ -#endif -#if PY_VERSION_HEX >= 0x02030000 - 0, /* tp_del */ -#endif -#ifdef COUNT_ALLOCS - 0, 0, 0, 0 /* tp_alloc -> tp_next */ -#endif - }; -#if !defined(__cplusplus) - pyswigobject_type = tmp; - type_init = 1; - } -#endif - return &pyswigobject_type; - } - - SWIGRUNTIME PyObject *PySwigObject_FromVoidPtrAndDesc(void *ptr, const char *desc) { - PySwigObject *self = PyObject_NEW(PySwigObject, PySwigObject_type()); - if (self) { - self->ptr = ptr; - self->desc = desc; - } - return (PyObject *) self; - } - - SWIGRUNTIMEINLINE void *PySwigObject_AsVoidPtr(PyObject * self) { - return ((PySwigObject *) self)->ptr; - } - - SWIGRUNTIMEINLINE const char *PySwigObject_GetDesc(PyObject * self) { - return ((PySwigObject *) self)->desc; - } - - SWIGRUNTIMEINLINE int - PySwigObject_Check(PyObject * op) { - return ((op)->ob_type == PySwigObject_type()) - || (strcmp((op)->ob_type->tp_name, "PySwigObject") == 0); - } - -/* ----------------------------------------------------------------------------- - * Implements a simple Swig Packed type, and use it instead of string - * ----------------------------------------------------------------------------- */ - - typedef struct { - PyObject_HEAD void *pack; - const char *desc; - size_t size; - } PySwigPacked; - - SWIGRUNTIME int - PySwigPacked_print(PySwigPacked * v, FILE * fp, int flags) { - char result[SWIG_BUFFER_SIZE]; - flags = flags; - fputs("pack, v->size, 0, sizeof(result))) { - fputs("at ", fp); - fputs(result, fp); - } - fputs(v->desc, fp); - fputs(">", fp); - return 0; - } - - SWIGRUNTIME PyObject *PySwigPacked_repr(PySwigPacked * v) { - char result[SWIG_BUFFER_SIZE]; - if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { - return PyString_FromFormat("", result, v->desc); - } else { - return PyString_FromFormat("", v->desc); - } - } - - SWIGRUNTIME PyObject *PySwigPacked_str(PySwigPacked * v) { - char result[SWIG_BUFFER_SIZE]; - if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { - return PyString_FromFormat("%s%s", result, v->desc); - } else { - return PyString_FromString(v->desc); - } - } - - SWIGRUNTIME int - PySwigPacked_compare(PySwigPacked * v, PySwigPacked * w) { - int c = strcmp(v->desc, w->desc); - if (c) { - return (c > 0) ? 1 : -1; - } else { - size_t i = v->size; - size_t j = w->size; - int s = (i < j) ? -1 : ((i > j) ? 1 : 0); - return s ? s : strncmp((char *) v->pack, (char *) w->pack, 2 * v->size); - } - } - - SWIGRUNTIME void - PySwigPacked_dealloc(PySwigPacked * self) { - free(self->pack); - PyObject_Del(self); - } - - SWIGRUNTIME PyTypeObject *PySwigPacked_type(void) { - static char pyswigpacked_type__doc__[] = "Swig object carries a C/C++ instance pointer"; - static PyTypeObject pyswigpacked_type -#if !defined(__cplusplus) - ; - static int type_init = 0; - if (!type_init) { - PyTypeObject tmp -#endif - = { - PyObject_HEAD_INIT(&PyType_Type) - 0, /*ob_size */ - (char *) "PySwigPacked", /*tp_name */ - sizeof(PySwigPacked), /*tp_basicsize */ - 0, /*tp_itemsize */ - /* methods */ - (destructor) PySwigPacked_dealloc, /*tp_dealloc */ - (printfunc) PySwigPacked_print, /*tp_print */ - (getattrfunc) 0, /*tp_getattr */ - (setattrfunc) 0, /*tp_setattr */ - (cmpfunc) PySwigPacked_compare, /*tp_compare */ - (reprfunc) PySwigPacked_repr, /*tp_repr */ - 0, /*tp_as_number */ - 0, /*tp_as_sequence */ - 0, /*tp_as_mapping */ - (hashfunc) 0, /*tp_hash */ - (ternaryfunc) 0, /*tp_call */ - (reprfunc) PySwigPacked_str, /*tp_str */ - /* Space for future expansion */ - 0, 0, 0, 0, - pyswigpacked_type__doc__, /* Documentation string */ -#if PY_VERSION_HEX >= 0x02000000 - 0, /* tp_traverse */ - 0, /* tp_clear */ -#endif -#if PY_VERSION_HEX >= 0x02010000 - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ -#endif -#if PY_VERSION_HEX >= 0x02020000 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* tp_iter -> tp_weaklist */ -#endif -#if PY_VERSION_HEX >= 0x02030000 - 0, /* tp_del */ -#endif -#ifdef COUNT_ALLOCS - 0, 0, 0, 0 /* tp_alloc -> tp_next */ -#endif - }; -#if !defined(__cplusplus) - pyswigpacked_type = tmp; - type_init = 1; - } -#endif - return &pyswigpacked_type; - } - - SWIGRUNTIME PyObject *PySwigPacked_FromDataAndDesc(void *ptr, size_t size, const char *desc) { - PySwigPacked *self = PyObject_NEW(PySwigPacked, PySwigPacked_type()); - if (self == NULL) { - return NULL; - } else { - void *pack = malloc(size); - if (pack) { - memcpy(pack, ptr, size); - self->pack = pack; - self->desc = desc; - self->size = size; - return (PyObject *) self; - } - return NULL; - } - } - - SWIGRUNTIMEINLINE const char *PySwigPacked_UnpackData(PyObject * obj, void *ptr, size_t size) { - PySwigPacked *self = (PySwigPacked *) obj; - if (self->size != size) - return 0; - memcpy(ptr, self->pack, size); - return self->desc; - } - - SWIGRUNTIMEINLINE const char *PySwigPacked_GetDesc(PyObject * self) { - return ((PySwigPacked *) self)->desc; - } - - SWIGRUNTIMEINLINE int - PySwigPacked_Check(PyObject * op) { - return ((op)->ob_type == PySwigPacked_type()) - || (strcmp((op)->ob_type->tp_name, "PySwigPacked") == 0); - } - -#else -/* ----------------------------------------------------------------------------- - * Use the old Python PyCObject instead of PySwigObject - * ----------------------------------------------------------------------------- */ -#define PySwigObject_GetDesc(obj) PyCObject_GetDesc(obj) -#define PySwigObject_Check(obj) PyCObject_Check(obj) -#define PySwigObject_AsVoidPtr(obj) PyCObject_AsVoidPtr(obj) -#define PySwigObject_FromVoidPtrAndDesc(p, d) PyCObject_FromVoidPtrAndDesc(p, d, NULL) -#endif -#endif -/* ----------------------------------------------------------------------------- - * errors manipulation - * ----------------------------------------------------------------------------- */ SWIGRUNTIME void - SWIG_Python_TypeError(const char *type, PyObject * obj) { - if (type) { -#if defined(SWIG_COBJECT_TYPES) - if (obj && PySwigObject_Check(obj)) { - const char *otype = (const char *) PySwigObject_GetDesc(obj); - if (otype) { - PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'PySwigObject(%s)' is received", type, otype); - return; - } - } else -#endif - { - const char *otype = (obj ? obj->ob_type->tp_name : 0); - if (otype) { - PyObject *str = PyObject_Str(obj); - const char *cstr = str ? PyString_AsString(str) : 0; - if (cstr) { - PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", type, otype, cstr); - } else { - PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", type, otype); - } - Py_XDECREF(str); - return; - } - } - PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); - } else { - PyErr_Format(PyExc_TypeError, "unexpected type is received"); - } - } - - SWIGRUNTIMEINLINE void - SWIG_Python_NullRef(const char *type) { - if (type) { - PyErr_Format(PyExc_TypeError, "null reference of type '%s' was received", type); - } else { - PyErr_Format(PyExc_TypeError, "null reference was received"); - } - } - - SWIGRUNTIME int - SWIG_Python_AddErrMesg(const char *mesg, int infront) { - if (PyErr_Occurred()) { - PyObject *type = 0; - PyObject *value = 0; - PyObject *traceback = 0; - PyErr_Fetch(&type, &value, &traceback); - if (value) { - PyObject *old_str = PyObject_Str(value); - Py_XINCREF(type); - PyErr_Clear(); - if (infront) { - PyErr_Format(type, "%s %s", mesg, PyString_AsString(old_str)); - } else { - PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg); - } - Py_DECREF(old_str); - } - return 1; - } else { - return 0; - } - } - - SWIGRUNTIME int - SWIG_Python_ArgFail(int argnum) { - if (PyErr_Occurred()) { - /* add information about failing argument */ - char mesg[256]; - PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum); - return SWIG_Python_AddErrMesg(mesg, 1); - } else { - return 0; - } - } - - -/* ----------------------------------------------------------------------------- - * pointers/data manipulation - * ----------------------------------------------------------------------------- */ - -/* Convert a pointer value */ - SWIGRUNTIME int - SWIG_Python_ConvertPtr(PyObject * obj, void **ptr, swig_type_info * ty, int flags) { - swig_cast_info *tc; - const char *c = 0; - static PyObject *SWIG_this = 0; - int newref = 0; - PyObject *pyobj = 0; - void *vptr; - - if (!obj) - return 0; - if (obj == Py_None) { - *ptr = 0; - return 0; - } -#ifdef SWIG_COBJECT_TYPES - if (!(PySwigObject_Check(obj))) { - if (!SWIG_this) - SWIG_this = PyString_FromString("this"); - pyobj = obj; - obj = PyObject_GetAttr(obj, SWIG_this); - newref = 1; - if (!obj) - goto type_error; - if (!PySwigObject_Check(obj)) { - Py_DECREF(obj); - goto type_error; - } - } - vptr = PySwigObject_AsVoidPtr(obj); - c = (const char *) PySwigObject_GetDesc(obj); - if (newref) { - Py_DECREF(obj); - } - goto type_check; -#else - if (!(PyString_Check(obj))) { - if (!SWIG_this) - SWIG_this = PyString_FromString("this"); - pyobj = obj; - obj = PyObject_GetAttr(obj, SWIG_this); - newref = 1; - if (!obj) - goto type_error; - if (!PyString_Check(obj)) { - Py_DECREF(obj); - goto type_error; - } - } - c = PyString_AsString(obj); - /* Pointer values must start with leading underscore */ - c = SWIG_UnpackVoidPtr(c, &vptr, ty->name); - if (newref) { - Py_DECREF(obj); - } - if (!c) - goto type_error; -#endif - - type_check: - if (ty) { - tc = SWIG_TypeCheck(c, ty); - if (!tc) - goto type_error; - *ptr = SWIG_TypeCast(tc, vptr); - } else { - *ptr = vptr; - } - if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) { - PyObject_SetAttrString(pyobj, (char *) "thisown", Py_False); - } - return 0; - - type_error: - PyErr_Clear(); - if (pyobj && !obj) { - obj = pyobj; - if (PyCFunction_Check(obj)) { - /* here we get the method pointer for callbacks */ - char *doc = (((PyCFunctionObject *) obj)->m_ml->ml_doc); - c = doc ? strstr(doc, "swig_ptr: ") : 0; - if (c) { - c = ty ? SWIG_UnpackVoidPtr(c + 10, &vptr, ty->name) : 0; - if (!c) - goto type_error; - goto type_check; - } - } - } - if (flags & SWIG_POINTER_EXCEPTION) { - if (ty) { - SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); - } else { - SWIG_Python_TypeError("C/C++ pointer", obj); - } - } - return -1; - } - -/* Convert a pointer value, signal an exception on a type mismatch */ - SWIGRUNTIME void *SWIG_Python_MustGetPtr(PyObject * obj, swig_type_info * ty, int argnum, int flags) { - void *result; - if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { - PyErr_Clear(); - if (flags & SWIG_POINTER_EXCEPTION) { - SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); - SWIG_Python_ArgFail(argnum); - } - } - return result; - } - -/* Convert a packed value value */ - SWIGRUNTIME int - SWIG_Python_ConvertPacked(PyObject * obj, void *ptr, size_t sz, swig_type_info * ty, int flags) { - swig_cast_info *tc; - const char *c = 0; - -#if defined(SWIG_COBJECT_TYPES) && !defined(SWIG_COBJECT_PYTHON) - c = PySwigPacked_UnpackData(obj, ptr, sz); -#else - if ((!obj) || (!PyString_Check(obj))) - goto type_error; - c = PyString_AsString(obj); - /* Pointer values must start with leading underscore */ - c = SWIG_UnpackDataName(c, ptr, sz, ty->name); -#endif - if (!c) - goto type_error; - if (ty) { - tc = SWIG_TypeCheck(c, ty); - if (!tc) - goto type_error; - } - return 0; - - type_error: - PyErr_Clear(); - if (flags & SWIG_POINTER_EXCEPTION) { - if (ty) { - SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); - } else { - SWIG_Python_TypeError("C/C++ packed data", obj); - } - } - return -1; - } - -/* Create a new array object */ - SWIGRUNTIME PyObject *SWIG_Python_NewPointerObj(void *ptr, swig_type_info * type, int own) { - PyObject *robj = 0; - if (!type) { - if (!PyErr_Occurred()) { - PyErr_Format(PyExc_TypeError, "Swig: null type passed to NewPointerObj"); - } - return robj; - } - if (!ptr) { - Py_INCREF(Py_None); - return Py_None; - } -#ifdef SWIG_COBJECT_TYPES - robj = PySwigObject_FromVoidPtrAndDesc((void *) ptr, (char *) type->name); -#else - { - char result[SWIG_BUFFER_SIZE]; - robj = SWIG_PackVoidPtr(result, ptr, type->name, sizeof(result)) ? PyString_FromString(result) : 0; - } -#endif - if (!robj || (robj == Py_None)) - return robj; - if (type->clientdata) { - PyObject *inst; - PyObject *args = Py_BuildValue((char *) "(O)", robj); - Py_DECREF(robj); - inst = PyObject_CallObject((PyObject *) type->clientdata, args); - Py_DECREF(args); - if (inst) { - if (own) { - PyObject_SetAttrString(inst, (char *) "thisown", Py_True); - } - robj = inst; - } - } - return robj; - } - - SWIGRUNTIME PyObject *SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info * type) { - PyObject *robj = 0; - if (!ptr) { - Py_INCREF(Py_None); - return Py_None; - } -#if defined(SWIG_COBJECT_TYPES) && !defined(SWIG_COBJECT_PYTHON) - robj = PySwigPacked_FromDataAndDesc((void *) ptr, sz, (char *) type->name); -#else - { - char result[SWIG_BUFFER_SIZE]; - robj = SWIG_PackDataName(result, ptr, sz, type->name, sizeof(result)) ? PyString_FromString(result) : 0; - } -#endif - return robj; - } - -/* -----------------------------------------------------------------------------* - * Get type list - * -----------------------------------------------------------------------------*/ - -#ifdef SWIG_LINK_RUNTIME - void *SWIG_ReturnGlobalTypeList(void *); -#endif - - SWIGRUNTIME swig_module_info *SWIG_Python_GetModule(void) { - static void *type_pointer = (void *) 0; - /* first check if module already created */ - if (!type_pointer) { -#ifdef SWIG_LINK_RUNTIME - type_pointer = SWIG_ReturnGlobalTypeList((void *) 0); -#else - type_pointer = PyCObject_Import((char *) "swig_runtime_data" SWIG_RUNTIME_VERSION, (char *) "type_pointer" SWIG_TYPE_TABLE_NAME); - if (PyErr_Occurred()) { - PyErr_Clear(); - type_pointer = (void *) 0; - } -#endif - } - return (swig_module_info *) type_pointer; - } - -#if PY_MAJOR_VERSION < 2 -/* PyModule_AddObject function was introduced in Python 2.0. The following function -is copied out of Python/modsupport.c in python version 2.3.4 */ - SWIGINTERN int - PyModule_AddObject(PyObject * m, char *name, PyObject * o) { - PyObject *dict; - if (!PyModule_Check(m)) { - PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); - return -1; - } - if (!o) { - PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); - return -1; - } - - dict = PyModule_GetDict(m); - if (dict == NULL) { - /* Internal error -- modules must have a dict! */ - PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__", PyModule_GetName(m)); - return -1; - } - if (PyDict_SetItemString(dict, name, o)) - return -1; - Py_DECREF(o); - return 0; - } -#endif - - SWIGRUNTIME void - SWIG_Python_SetModule(swig_module_info * swig_module) { - static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} }; /* Sentinel */ - - PyObject *module = Py_InitModule((char *) "swig_runtime_data" SWIG_RUNTIME_VERSION, - swig_empty_runtime_method_table); - PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, NULL); - if (pointer && module) { - PyModule_AddObject(module, (char *) "type_pointer" SWIG_TYPE_TABLE_NAME, pointer); - } - } - -#ifdef __cplusplus -} -#endif - - -/* -------- TYPES TABLE (BEGIN) -------- */ - -#define SWIGTYPE_p_char swig_types[0] -#define SWIGTYPE_p_p_switch_core_session_t swig_types[1] -#define SWIGTYPE_p_switch_channel_state_t swig_types[2] -#define SWIGTYPE_p_switch_channel_t swig_types[3] -#define SWIGTYPE_p_switch_core_session_t swig_types[4] -#define SWIGTYPE_p_switch_file_handle_t swig_types[5] -#define SWIGTYPE_p_switch_input_callback_function_t swig_types[6] -#define SWIGTYPE_ptrdiff_t swig_types[7] -#define SWIGTYPE_size_t swig_types[8] -static swig_type_info *swig_types[10]; -static swig_module_info swig_module = { swig_types, 9, 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) - -/* -------- TYPES TABLE (END) -------- */ - - -/*----------------------------------------------- - @(target):= _freeswitch.so - ------------------------------------------------*/ -#define SWIG_init init_freeswitch - -#define SWIG_name "_freeswitch" - -/* returns SWIG_OLDOBJ if the input is a raw char*, SWIG_PYSTR if is a PyString */ -SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject * obj, char **cptr, size_t *psize) -{ - static swig_type_info *pchar_info = 0; - char *vptr = 0; - if (!pchar_info) - pchar_info = SWIG_TypeQuery("char *"); - if (SWIG_ConvertPtr(obj, (void **) &vptr, pchar_info, 0) != -1) { - if (cptr) - *cptr = vptr; - if (psize) - *psize = vptr ? (strlen(vptr) + 1) : 0; - return SWIG_OLDOBJ; - } else { - PyErr_Clear(); - if (PyString_Check(obj)) { - if (cptr) { - *cptr = PyString_AS_STRING(obj); - if (psize) { - *psize = PyString_GET_SIZE(obj) + 1; - } - } - return SWIG_PYSTR; - } - } - if (cptr) { - SWIG_type_error("char *", obj); - } - return 0; -} - - -SWIGINTERNINLINE int SWIG_AsCharPtr(PyObject * obj, char **val) -{ - if (SWIG_AsCharPtrAndSize(obj, val, (size_t *) (0))) { - return 1; - } - if (val) { - PyErr_Clear(); - SWIG_type_error("char *", obj); - } - return 0; -} - - - /*@/usr/share/swig1.3/python/pymacros.swg,72,SWIG_define@ */ -#define SWIG_From_int PyInt_FromLong -/*@@*/ - - -#include - - -SWIGINTERNINLINE int SWIG_CheckUnsignedLongInRange(unsigned long value, unsigned long max_value, const char *errmsg) -{ - if (value > max_value) { - if (errmsg) { - PyErr_Format(PyExc_OverflowError, "value %lu is greater than '%s' minimum %lu", value, errmsg, max_value); - } - return 0; - } - return 1; -} - - -SWIGINTERN int SWIG_AsVal_unsigned_SS_long(PyObject * obj, unsigned long *val) -{ - if (PyLong_Check(obj)) { - unsigned long v = PyLong_AsUnsignedLong(obj); - if (!PyErr_Occurred()) { - if (val) - *val = v; - return 1; - } else { - if (!val) - PyErr_Clear(); - return 0; - } - } - if (PyInt_Check(obj)) { - long v = PyInt_AsLong(obj); - if (v >= 0) { - if (val) - *val = v; - return 1; - } - } - if (val) { - SWIG_type_error("unsigned long", obj); - } - return 0; -} - - -#if UINT_MAX != ULONG_MAX -SWIGINTERN int SWIG_AsVal_unsigned_SS_int(PyObject * obj, unsigned int *val) -{ - const char *errmsg = val ? "unsigned int" : (char *) 0; - unsigned long v; - if (SWIG_AsVal_unsigned_SS_long(obj, &v)) { - if (SWIG_CheckUnsignedLongInRange(v, INT_MAX, errmsg)) { - if (val) - *val = (unsigned int) (v); - return 1; - } - } else { - PyErr_Clear(); - } - if (val) { - SWIG_type_error(errmsg, obj); - } - return 0; -} -#else -SWIGINTERNINLINE unsigned int SWIG_AsVal_unsigned_SS_int(PyObject * obj, unsigned int *val) -{ - return SWIG_AsVal_unsigned_SS_long(obj, (unsigned long *) val); -} -#endif - - -SWIGINTERNINLINE unsigned int SWIG_As_unsigned_SS_int(PyObject * obj) -{ - unsigned int v; - if (!SWIG_AsVal_unsigned_SS_int(obj, &v)) { - /* - this is needed to make valgrind/purify happier. - */ - memset((void *) &v, 0, sizeof(unsigned int)); - } - return v; -} - - -SWIGINTERNINLINE int SWIG_Check_unsigned_SS_int(PyObject * obj) -{ - return SWIG_AsVal_unsigned_SS_int(obj, (unsigned int *) 0); -} - - -SWIGINTERN PyObject *SWIG_FromCharPtr(const char *cptr) -{ - if (cptr) { - size_t size = strlen(cptr); - if (size > INT_MAX) { - return SWIG_NewPointerObj((char *) (cptr), SWIG_TypeQuery("char *"), 0); - } else { - if (size != 0) { - return PyString_FromStringAndSize(cptr, size); - } else { - return PyString_FromString(cptr); - } - } - } - Py_INCREF(Py_None); - return Py_None; -} - - -#include "switch.h" - -#ifdef __cplusplus -extern "C" { -#endif - static PyObject *_wrap_fs_core_set_globals(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - - if (!PyArg_ParseTuple(args, (char *) ":fs_core_set_globals")) - goto fail; - fs_core_set_globals(); - - Py_INCREF(Py_None); - resultobj = Py_None; - return resultobj; - fail:return NULL; - } static PyObject *_wrap_fs_core_init(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - char *arg1 = (char *) 0; - int result; - PyObject *obj0 = 0; - - if (!PyArg_ParseTuple(args, (char *) "O:fs_core_init", &obj0)) - goto fail; - if (!SWIG_AsCharPtr(obj0, (char **) &arg1)) { - SWIG_arg_fail(1); - SWIG_fail; - } - result = (int) fs_core_init(arg1); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_core_destroy(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - int result; - - if (!PyArg_ParseTuple(args, (char *) ":fs_core_destroy")) - goto fail; - result = (int) fs_core_destroy(); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_loadable_module_init(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - int result; - - if (!PyArg_ParseTuple(args, (char *) ":fs_loadable_module_init")) - goto fail; - result = (int) fs_loadable_module_init(); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_loadable_module_shutdown(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - int result; - - if (!PyArg_ParseTuple(args, (char *) ":fs_loadable_module_shutdown")) - goto fail; - result = (int) fs_loadable_module_shutdown(); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_console_loop(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - int result; - - if (!PyArg_ParseTuple(args, (char *) ":fs_console_loop")) - goto fail; - result = (int) fs_console_loop(); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_console_log(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - char *arg1 = (char *) 0; - char *arg2 = (char *) 0; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OO:fs_console_log", &obj0, &obj1)) - goto fail; - if (!SWIG_AsCharPtr(obj0, (char **) &arg1)) { - SWIG_arg_fail(1); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - fs_console_log(arg1, arg2); - - Py_INCREF(Py_None); - resultobj = Py_None; - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_console_clean(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - char *arg1 = (char *) 0; - PyObject *obj0 = 0; - - if (!PyArg_ParseTuple(args, (char *) "O:fs_console_clean", &obj0)) - goto fail; - if (!SWIG_AsCharPtr(obj0, (char **) &arg1)) { - SWIG_arg_fail(1); - SWIG_fail; - } - fs_console_clean(arg1); - - Py_INCREF(Py_None); - resultobj = Py_None; - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_core_session_locate(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - char *arg1 = (char *) 0; - switch_core_session_t *result; - PyObject *obj0 = 0; - - if (!PyArg_ParseTuple(args, (char *) "O:fs_core_session_locate", &obj0)) - goto fail; - if (!SWIG_AsCharPtr(obj0, (char **) &arg1)) { - SWIG_arg_fail(1); - SWIG_fail; - } - result = (switch_core_session_t *) fs_core_session_locate(arg1); - - resultobj = SWIG_NewPointerObj((void *) (result), SWIGTYPE_p_switch_core_session_t, 0); - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_channel_answer(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - PyObject *obj0 = 0; - - if (!PyArg_ParseTuple(args, (char *) "O:fs_channel_answer", &obj0)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - fs_channel_answer(arg1); - - Py_INCREF(Py_None); - resultobj = Py_None; - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_channel_pre_answer(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - PyObject *obj0 = 0; - - if (!PyArg_ParseTuple(args, (char *) "O:fs_channel_pre_answer", &obj0)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - fs_channel_pre_answer(arg1); - - Py_INCREF(Py_None); - resultobj = Py_None; - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_channel_hangup(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - char *arg2 = (char *) 0; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OO:fs_channel_hangup", &obj0, &obj1)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - fs_channel_hangup(arg1, arg2); - - Py_INCREF(Py_None); - resultobj = Py_None; - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_channel_set_variable(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - char *arg2 = (char *) 0; - char *arg3 = (char *) 0; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - PyObject *obj2 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OOO:fs_channel_set_variable", &obj0, &obj1, &obj2)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj2, (char **) &arg3)) { - SWIG_arg_fail(3); - SWIG_fail; - } - fs_channel_set_variable(arg1, arg2, arg3); - - Py_INCREF(Py_None); - resultobj = Py_None; - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_channel_get_variable(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - char *arg2 = (char *) 0; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OO:fs_channel_get_variable", &obj0, &obj1)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - fs_channel_get_variable(arg1, arg2); - - Py_INCREF(Py_None); - resultobj = Py_None; - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_channel_set_state(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - char *arg2 = (char *) 0; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OO:fs_channel_set_state", &obj0, &obj1)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - fs_channel_set_state(arg1, arg2); - - Py_INCREF(Py_None); - resultobj = Py_None; - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_ivr_play_file(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - char *arg2 = (char *) 0; - char *arg3 = (char *) 0; - switch_input_callback_function_t arg4; - void *arg5 = (void *) 0; - unsigned int arg6; - int result; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - PyObject *obj2 = 0; - PyObject *obj3 = 0; - PyObject *obj4 = 0; - PyObject *obj5 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OOOOOO:fs_ivr_play_file", &obj0, &obj1, &obj2, &obj3, &obj4, &obj5)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj2, (char **) &arg3)) { - SWIG_arg_fail(3); - SWIG_fail; - } - { - switch_input_callback_function_t *argp; - SWIG_Python_ConvertPtr(obj3, (void **) &argp, SWIGTYPE_p_switch_input_callback_function_t, SWIG_POINTER_EXCEPTION); - if (SWIG_arg_fail(4)) - SWIG_fail; - if (argp == NULL) { - SWIG_null_ref("switch_input_callback_function_t"); - } - if (SWIG_arg_fail(4)) - SWIG_fail; - arg4 = *argp; - } - { - if ((SWIG_ConvertPtr(obj4, (void **) (&arg5), 0, SWIG_POINTER_EXCEPTION | 0)) == -1) { - SWIG_arg_fail(5); - SWIG_fail; - } - } - { - arg6 = (unsigned int) (SWIG_As_unsigned_SS_int(obj5)); - if (SWIG_arg_fail(6)) - SWIG_fail; - } - result = (int) fs_ivr_play_file(arg1, arg2, arg3, arg4, arg5, arg6); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_switch_ivr_record_file(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - switch_file_handle_t *arg2 = (switch_file_handle_t *) 0; - char *arg3 = (char *) 0; - switch_input_callback_function_t arg4; - void *arg5 = (void *) 0; - unsigned int arg6; - int result; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - PyObject *obj2 = 0; - PyObject *obj3 = 0; - PyObject *obj4 = 0; - PyObject *obj5 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OOOOOO:fs_switch_ivr_record_file", &obj0, &obj1, &obj2, &obj3, &obj4, &obj5)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - SWIG_Python_ConvertPtr(obj1, (void **) &arg2, SWIGTYPE_p_switch_file_handle_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(2)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj2, (char **) &arg3)) { - SWIG_arg_fail(3); - SWIG_fail; - } - { - switch_input_callback_function_t *argp; - SWIG_Python_ConvertPtr(obj3, (void **) &argp, SWIGTYPE_p_switch_input_callback_function_t, SWIG_POINTER_EXCEPTION); - if (SWIG_arg_fail(4)) - SWIG_fail; - if (argp == NULL) { - SWIG_null_ref("switch_input_callback_function_t"); - } - if (SWIG_arg_fail(4)) - SWIG_fail; - arg4 = *argp; - } - { - if ((SWIG_ConvertPtr(obj4, (void **) (&arg5), 0, SWIG_POINTER_EXCEPTION | 0)) == -1) { - SWIG_arg_fail(5); - SWIG_fail; - } - } - { - arg6 = (unsigned int) (SWIG_As_unsigned_SS_int(obj5)); - if (SWIG_arg_fail(6)) - SWIG_fail; - } - result = (int) fs_switch_ivr_record_file(arg1, arg2, arg3, arg4, arg5, arg6); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_switch_ivr_sleep(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - unsigned int arg2; - int result; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OO:fs_switch_ivr_sleep", &obj0, &obj1)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - { - arg2 = (unsigned int) (SWIG_As_unsigned_SS_int(obj1)); - if (SWIG_arg_fail(2)) - SWIG_fail; - } - result = (int) fs_switch_ivr_sleep(arg1, arg2); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_ivr_play_file2(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - char *arg2 = (char *) 0; - int result; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OO:fs_ivr_play_file2", &obj0, &obj1)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - result = (int) fs_ivr_play_file2(arg1, arg2); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_switch_ivr_collect_digits_callback(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - switch_input_callback_function_t arg2; - void *arg3 = (void *) 0; - unsigned int arg4; - unsigned int arg5; - int result; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - PyObject *obj2 = 0; - PyObject *obj3 = 0; - PyObject *obj4 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OOOOO:fs_switch_ivr_collect_digits_callback", &obj0, &obj1, &obj2, &obj3, &obj4)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - { - switch_input_callback_function_t *argp; - SWIG_Python_ConvertPtr(obj1, (void **) &argp, SWIGTYPE_p_switch_input_callback_function_t, SWIG_POINTER_EXCEPTION); - if (SWIG_arg_fail(2)) - SWIG_fail; - if (argp == NULL) { - SWIG_null_ref("switch_input_callback_function_t"); - } - if (SWIG_arg_fail(2)) - SWIG_fail; - arg2 = *argp; - } - { - if ((SWIG_ConvertPtr(obj2, (void **) (&arg3), 0, SWIG_POINTER_EXCEPTION | 0)) == -1) { - SWIG_arg_fail(3); - SWIG_fail; - } - } - { - arg4 = (unsigned int) (SWIG_As_unsigned_SS_int(obj3)); - if (SWIG_arg_fail(4)) - SWIG_fail; - } - { - arg5 = (unsigned int) (SWIG_As_unsigned_SS_int(obj4)); - if (SWIG_arg_fail(5)) - SWIG_fail; - } - result = (int) fs_switch_ivr_collect_digits_callback(arg1, arg2, arg3, arg4, arg5); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_switch_ivr_collect_digits_count(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - char *arg2 = (char *) 0; - unsigned int arg3; - unsigned int arg4; - char *arg5 = (char *) 0; - char *arg6 = (char *) 0; - unsigned int arg7; - int result; - 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:fs_switch_ivr_collect_digits_count", &obj0, &obj1, &obj2, &obj3, &obj4, &obj5, &obj6)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - { - arg3 = (unsigned int) (SWIG_As_unsigned_SS_int(obj2)); - if (SWIG_arg_fail(3)) - SWIG_fail; - } - { - arg4 = (unsigned int) (SWIG_As_unsigned_SS_int(obj3)); - if (SWIG_arg_fail(4)) - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj4, (char **) &arg5)) { - SWIG_arg_fail(5); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj5, (char **) &arg6)) { - SWIG_arg_fail(6); - SWIG_fail; - } - { - arg7 = (unsigned int) (SWIG_As_unsigned_SS_int(obj6)); - if (SWIG_arg_fail(7)) - SWIG_fail; - } - result = (int) fs_switch_ivr_collect_digits_count(arg1, arg2, arg3, arg4, (char const *) arg5, arg6, arg7); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_switch_ivr_originate(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - switch_core_session_t **arg2 = (switch_core_session_t **) 0; - char *arg3 = (char *) 0; - unsigned int arg4; - int result; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - PyObject *obj2 = 0; - PyObject *obj3 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OOOO:fs_switch_ivr_originate", &obj0, &obj1, &obj2, &obj3)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - SWIG_Python_ConvertPtr(obj1, (void **) &arg2, SWIGTYPE_p_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(2)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj2, (char **) &arg3)) { - SWIG_arg_fail(3); - SWIG_fail; - } - { - arg4 = (unsigned int) (SWIG_As_unsigned_SS_int(obj3)); - if (SWIG_arg_fail(4)) - SWIG_fail; - } - result = (int) fs_switch_ivr_originate(arg1, arg2, arg3, arg4); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_switch_ivr_session_transfer(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - char *arg2 = (char *) 0; - char *arg3 = (char *) 0; - char *arg4 = (char *) 0; - int result; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - PyObject *obj2 = 0; - PyObject *obj3 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OOOO:fs_switch_ivr_session_transfer", &obj0, &obj1, &obj2, &obj3)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj2, (char **) &arg3)) { - SWIG_arg_fail(3); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj3, (char **) &arg4)) { - SWIG_arg_fail(4); - SWIG_fail; - } - result = (int) fs_switch_ivr_session_transfer(arg1, arg2, arg3, arg4); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_switch_ivr_speak_text(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - char *arg2 = (char *) 0; - char *arg3 = (char *) 0; - char *arg4 = (char *) 0; - unsigned int arg5; - switch_input_callback_function_t arg6; - char *arg7 = (char *) 0; - void *arg8 = (void *) 0; - unsigned int arg9; - int result; - 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; - - if (!PyArg_ParseTuple(args, (char *) "OOOOOOOOO:fs_switch_ivr_speak_text", &obj0, &obj1, &obj2, &obj3, &obj4, &obj5, &obj6, &obj7, &obj8)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj2, (char **) &arg3)) { - SWIG_arg_fail(3); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj3, (char **) &arg4)) { - SWIG_arg_fail(4); - SWIG_fail; - } - { - arg5 = (unsigned int) (SWIG_As_unsigned_SS_int(obj4)); - if (SWIG_arg_fail(5)) - SWIG_fail; - } - { - switch_input_callback_function_t *argp; - SWIG_Python_ConvertPtr(obj5, (void **) &argp, SWIGTYPE_p_switch_input_callback_function_t, SWIG_POINTER_EXCEPTION); - if (SWIG_arg_fail(6)) - SWIG_fail; - if (argp == NULL) { - SWIG_null_ref("switch_input_callback_function_t"); - } - if (SWIG_arg_fail(6)) - SWIG_fail; - arg6 = *argp; - } - if (!SWIG_AsCharPtr(obj6, (char **) &arg7)) { - SWIG_arg_fail(7); - SWIG_fail; - } - { - if ((SWIG_ConvertPtr(obj7, (void **) (&arg8), 0, SWIG_POINTER_EXCEPTION | 0)) == -1) { - SWIG_arg_fail(8); - SWIG_fail; - } - } - { - arg9 = (unsigned int) (SWIG_As_unsigned_SS_int(obj8)); - if (SWIG_arg_fail(9)) - SWIG_fail; - } - result = (int) fs_switch_ivr_speak_text(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_switch_ivr_speak_text2(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_core_session_t *arg1 = (switch_core_session_t *) 0; - char *arg2 = (char *) 0; - char *arg3 = (char *) 0; - char *arg4 = (char *) 0; - int result; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - PyObject *obj2 = 0; - PyObject *obj3 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OOOO:fs_switch_ivr_speak_text2", &obj0, &obj1, &obj2, &obj3)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_core_session_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj2, (char **) &arg3)) { - SWIG_arg_fail(3); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj3, (char **) &arg4)) { - SWIG_arg_fail(4); - SWIG_fail; - } - result = (int) fs_switch_ivr_speak_text2(arg1, arg2, arg3, arg4); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_switch_channel_get_variable(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_channel_t *arg1 = (switch_channel_t *) 0; - char *arg2 = (char *) 0; - char *result; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OO:fs_switch_channel_get_variable", &obj0, &obj1)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_channel_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - result = (char *) fs_switch_channel_get_variable(arg1, arg2); - - resultobj = SWIG_FromCharPtr(result); - return resultobj; - fail: - return NULL; - } - - - static PyObject *_wrap_fs_switch_channel_set_variable(PyObject * self, PyObject * args) { - PyObject *resultobj = NULL; - switch_channel_t *arg1 = (switch_channel_t *) 0; - char *arg2 = (char *) 0; - char *arg3 = (char *) 0; - int result; - PyObject *obj0 = 0; - PyObject *obj1 = 0; - PyObject *obj2 = 0; - - if (!PyArg_ParseTuple(args, (char *) "OOO:fs_switch_channel_set_variable", &obj0, &obj1, &obj2)) - goto fail; - SWIG_Python_ConvertPtr(obj0, (void **) &arg1, SWIGTYPE_p_switch_channel_t, SWIG_POINTER_EXCEPTION | 0); - if (SWIG_arg_fail(1)) - SWIG_fail; - if (!SWIG_AsCharPtr(obj1, (char **) &arg2)) { - SWIG_arg_fail(2); - SWIG_fail; - } - if (!SWIG_AsCharPtr(obj2, (char **) &arg3)) { - SWIG_arg_fail(3); - SWIG_fail; - } - result = (int) fs_switch_channel_set_variable(arg1, arg2, arg3); - - { - resultobj = SWIG_From_int((int) (result)); - } - return resultobj; - fail: - return NULL; - } - - - static PyMethodDef SwigMethods[] = { - {(char *) "fs_core_set_globals", _wrap_fs_core_set_globals, METH_VARARGS, NULL}, - {(char *) "fs_core_init", _wrap_fs_core_init, METH_VARARGS, NULL}, - {(char *) "fs_core_destroy", _wrap_fs_core_destroy, METH_VARARGS, NULL}, - {(char *) "fs_loadable_module_init", _wrap_fs_loadable_module_init, METH_VARARGS, NULL}, - {(char *) "fs_loadable_module_shutdown", _wrap_fs_loadable_module_shutdown, METH_VARARGS, NULL}, - {(char *) "fs_console_loop", _wrap_fs_console_loop, METH_VARARGS, NULL}, - {(char *) "fs_console_log", _wrap_fs_console_log, METH_VARARGS, NULL}, - {(char *) "fs_console_clean", _wrap_fs_console_clean, METH_VARARGS, NULL}, - {(char *) "fs_core_session_locate", _wrap_fs_core_session_locate, METH_VARARGS, NULL}, - {(char *) "fs_channel_answer", _wrap_fs_channel_answer, METH_VARARGS, NULL}, - {(char *) "fs_channel_pre_answer", _wrap_fs_channel_pre_answer, METH_VARARGS, NULL}, - {(char *) "fs_channel_hangup", _wrap_fs_channel_hangup, METH_VARARGS, NULL}, - {(char *) "fs_channel_set_variable", _wrap_fs_channel_set_variable, METH_VARARGS, NULL}, - {(char *) "fs_channel_get_variable", _wrap_fs_channel_get_variable, METH_VARARGS, NULL}, - {(char *) "fs_channel_set_state", _wrap_fs_channel_set_state, METH_VARARGS, NULL}, - {(char *) "fs_ivr_play_file", _wrap_fs_ivr_play_file, METH_VARARGS, NULL}, - {(char *) "fs_switch_ivr_record_file", _wrap_fs_switch_ivr_record_file, METH_VARARGS, NULL}, - {(char *) "fs_switch_ivr_sleep", _wrap_fs_switch_ivr_sleep, METH_VARARGS, NULL}, - {(char *) "fs_ivr_play_file2", _wrap_fs_ivr_play_file2, METH_VARARGS, NULL}, - {(char *) "fs_switch_ivr_collect_digits_callback", _wrap_fs_switch_ivr_collect_digits_callback, METH_VARARGS, - NULL}, - {(char *) "fs_switch_ivr_collect_digits_count", _wrap_fs_switch_ivr_collect_digits_count, METH_VARARGS, NULL}, - {(char *) "fs_switch_ivr_originate", _wrap_fs_switch_ivr_originate, METH_VARARGS, NULL}, - {(char *) "fs_switch_ivr_session_transfer", _wrap_fs_switch_ivr_session_transfer, METH_VARARGS, NULL}, - {(char *) "fs_switch_ivr_speak_text", _wrap_fs_switch_ivr_speak_text, METH_VARARGS, NULL}, - {(char *) "fs_switch_ivr_speak_text2", _wrap_fs_switch_ivr_speak_text2, METH_VARARGS, NULL}, - {(char *) "fs_switch_channel_get_variable", _wrap_fs_switch_channel_get_variable, METH_VARARGS, NULL}, - {(char *) "fs_switch_channel_set_variable", _wrap_fs_switch_channel_set_variable, METH_VARARGS, NULL}, - {NULL, NULL, 0, NULL} - }; - - -/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ - - static swig_type_info _swigt__p_char = { "_p_char", "char *", 0, 0, 0 }; - static swig_type_info _swigt__p_p_switch_core_session_t = { "_p_p_switch_core_session_t", "switch_core_session_t **", 0, 0, 0 }; - static swig_type_info _swigt__p_switch_channel_state_t = - { "_p_switch_channel_state_t", "enum switch_channel_state_t *|switch_channel_state_t *", 0, 0, 0 }; - static swig_type_info _swigt__p_switch_channel_t = { "_p_switch_channel_t", "switch_channel_t *", 0, 0, 0 }; - static swig_type_info _swigt__p_switch_core_session_t = { "_p_switch_core_session_t", "switch_core_session_t *", 0, 0, 0 }; - static swig_type_info _swigt__p_switch_file_handle_t = { "_p_switch_file_handle_t", "switch_file_handle_t *", 0, 0, 0 }; - static swig_type_info _swigt__p_switch_input_callback_function_t = - { "_p_switch_input_callback_function_t", "switch_input_callback_function_t *", 0, 0, 0 }; - static swig_type_info _swigt__ptrdiff_t = { "_ptrdiff_t", "ptrdiff_t", 0, 0, 0 }; - static swig_type_info _swigt__size_t = { "_size_t", "size_t", 0, 0, 0 }; - - static swig_type_info *swig_type_initial[] = { - &_swigt__p_char, - &_swigt__p_p_switch_core_session_t, - &_swigt__p_switch_channel_state_t, - &_swigt__p_switch_channel_t, - &_swigt__p_switch_core_session_t, - &_swigt__p_switch_file_handle_t, - &_swigt__p_switch_input_callback_function_t, - &_swigt__ptrdiff_t, - &_swigt__size_t, - }; - - static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0}, {0, 0, 0, 0} }; - static swig_cast_info _swigc__p_p_switch_core_session_t[] = { {&_swigt__p_p_switch_core_session_t, 0, 0, 0}, {0, 0, 0, 0} }; - 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_file_handle_t[] = { {&_swigt__p_switch_file_handle_t, 0, 0, 0}, {0, 0, 0, 0} }; - static swig_cast_info _swigc__p_switch_input_callback_function_t[] = { {&_swigt__p_switch_input_callback_function_t, 0, 0, 0}, {0, 0, 0, 0} }; - static swig_cast_info _swigc__ptrdiff_t[] = { {&_swigt__ptrdiff_t, 0, 0, 0}, {0, 0, 0, 0} }; - static swig_cast_info _swigc__size_t[] = { {&_swigt__size_t, 0, 0, 0}, {0, 0, 0, 0} }; - - static swig_cast_info *swig_cast_initial[] = { - _swigc__p_char, - _swigc__p_p_switch_core_session_t, - _swigc__p_switch_channel_state_t, - _swigc__p_switch_channel_t, - _swigc__p_switch_core_session_t, - _swigc__p_switch_file_handle_t, - _swigc__p_switch_input_callback_function_t, - _swigc__ptrdiff_t, - _swigc__size_t, - }; - - -/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ - - static swig_const_info swig_const_table[] = { - {0, 0, 0, 0.0, 0, 0} - }; - -#ifdef __cplusplus -} -#endif -/************************************************************************* - * Type initialization: - * This problem is tough by the requirement that no dynamic - * memory is used. Also, since swig_type_info structures store pointers to - * swig_cast_info structures and swig_cast_info structures store pointers back - * to swig_type_info structures, we need some lookup code at initialization. - * The idea is that swig generates all the structures that are needed. - * The runtime then collects these partially filled structures. - * The SWIG_InitializeModule function takes these initial arrays out of - * swig_module, and does all the lookup, filling in the swig_module.types - * array with the correct data and linking the correct swig_cast_info - * structures together. - - * The generated swig_type_info structures are assigned staticly to an initial - * array. We just loop though that array, and handle each type individually. - * First we lookup if this type has been already loaded, and if so, use the - * loaded structure instead of the generated one. Then we have to fill in the - * cast linked list. The cast data is initially stored in something like a - * two-dimensional array. Each row corresponds to a type (there are the same - * number of rows as there are in the swig_type_initial array). Each entry in - * a column is one of the swig_cast_info structures for that type. - * The cast_initial array is actually an array of arrays, because each row has - * a variable number of columns. So to actually build the cast linked list, - * we find the array of casts associated with the type, and loop through it - * adding the casts to the list. The one last trick we need to do is making - * sure the type pointer in the swig_cast_info struct is correct. - - * First off, we lookup the cast->type name to see if it is already loaded. - * There are three cases to handle: - * 1) If the cast->type has already been loaded AND the type we are adding - * casting info to has not been loaded (it is in this module), THEN we - * replace the cast->type pointer with the type pointer that has already - * been loaded. - * 2) If BOTH types (the one we are adding casting info to, and the - * cast->type) are loaded, THEN the cast info has already been loaded by - * the previous module so we just ignore it. - * 3) Finally, if cast->type has not already been loaded, then we add that - * swig_cast_info to the linked list (because the cast->type) pointer will - * be correct. -**/ - -#ifdef __cplusplus -extern "C" { -#endif - - SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { - swig_type_info *type, *ret; - swig_cast_info *cast; - size_t i; - swig_module_info *module_head; - static int init_run = 0; - - clientdata = clientdata; - - if (init_run) - return; - init_run = 1; - - /* Initialize the swig_module */ - swig_module.type_initial = swig_type_initial; - swig_module.cast_initial = swig_cast_initial; - - /* Try and load any already created modules */ - module_head = SWIG_GetModule(clientdata); - if (module_head) { - swig_module.next = module_head->next; - module_head->next = &swig_module; - } else { - /* This is the first module loaded */ - swig_module.next = &swig_module; - SWIG_SetModule(clientdata, &swig_module); - } - - /* Now work on filling in swig_module.types */ - for (i = 0; i < swig_module.size; ++i) { - type = 0; - - /* if there is another module already loaded */ - if (swig_module.next != &swig_module) { - type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); - } - if (type) { - /* Overwrite clientdata field */ - if (swig_module.type_initial[i]->clientdata) - type->clientdata = swig_module.type_initial[i]->clientdata; - } else { - type = swig_module.type_initial[i]; - } - - /* Insert casting types */ - cast = swig_module.cast_initial[i]; - while (cast->type) { - /* Don't need to add information already in the list */ - ret = 0; - if (swig_module.next != &swig_module) { - ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); - } - if (ret && type == swig_module.type_initial[i]) { - cast->type = ret; - ret = 0; - } - - if (!ret) { - if (type->cast) { - type->cast->prev = cast; - cast->next = type->cast; - } - type->cast = cast; - } - - cast++; - } - - /* Set entry in modules->types array equal to the type */ - swig_module.types[i] = type; - } - swig_module.types[i] = 0; - } - - /* This function will propagate the clientdata field of type to - * any new swig_type_info structures that have been added into the list - * of equivalent types. It is like calling - * SWIG_TypeClientData(type, clientdata) a second time. - */ - SWIGRUNTIME void SWIG_PropagateClientData(void) { - size_t i; - swig_cast_info *equiv; - static int init_run = 0; - - if (init_run) - return; - init_run = 1; - - for (i = 0; i < swig_module.size; i++) { - if (swig_module.types[i]->clientdata) { - equiv = swig_module.types[i]->cast; - while (equiv) { - if (!equiv->converter) { - if (equiv->type && !equiv->type->clientdata) - SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); - } - equiv = equiv->next; - } - } - } - } - -#ifdef __cplusplus -} -#endif - - - -#ifdef __cplusplus -extern "C" { -#endif - - /* Python-specific SWIG API */ -#define SWIG_newvarlink() SWIG_Python_newvarlink() -#define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr) -#define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants) - - /* ----------------------------------------------------------------------------- - * global variable support code. - * ----------------------------------------------------------------------------- */ - - typedef struct swig_globalvar { - char *name; /* Name of global variable */ - PyObject *(*get_attr) (void); /* Return the current value */ - int (*set_attr) (PyObject *); /* Set the value */ - struct swig_globalvar *next; - } swig_globalvar; - - typedef struct swig_varlinkobject { - PyObject_HEAD swig_globalvar *vars; - } swig_varlinkobject; - - SWIGINTERN PyObject *swig_varlink_repr(swig_varlinkobject * v) { - v = v; - return PyString_FromString(""); - } SWIGINTERN int swig_varlink_print(swig_varlinkobject * v, FILE * fp, int flags) { - swig_globalvar *var; - flags = flags; - fprintf(fp, "Swig global variables { "); - for (var = v->vars; var; var = var->next) { - fprintf(fp, "%s", var->name); - if (var->next) - fprintf(fp, ", "); - } - fprintf(fp, " }\n"); - return 0; - } - - SWIGINTERN PyObject *swig_varlink_getattr(swig_varlinkobject * v, char *n) { - swig_globalvar *var = v->vars; - while (var) { - if (strcmp(var->name, n) == 0) { - return (*var->get_attr) (); - } - var = var->next; - } - PyErr_SetString(PyExc_NameError, "Unknown C global variable"); - return NULL; - } - - SWIGINTERN int swig_varlink_setattr(swig_varlinkobject * v, char *n, PyObject * p) { - swig_globalvar *var = v->vars; - while (var) { - if (strcmp(var->name, n) == 0) { - return (*var->set_attr) (p); - } - var = var->next; - } - PyErr_SetString(PyExc_NameError, "Unknown C global variable"); - return 1; - } - - SWIGINTERN PyTypeObject *swig_varlink_type(void) { - static char varlink__doc__[] = "Swig var link object"; - static PyTypeObject varlink_type -#if !defined(__cplusplus) - ; - static int type_init = 0; - if (!type_init) { - PyTypeObject tmp -#endif - = { - PyObject_HEAD_INIT(&PyType_Type) - 0, /* Number of items in variable part (ob_size) */ - (char *) "swigvarlink", /* Type name (tp_name) */ - sizeof(swig_varlinkobject), /* Basic size (tp_basicsize) */ - 0, /* Itemsize (tp_itemsize) */ - 0, /* Deallocator (tp_dealloc) */ - (printfunc) swig_varlink_print, /* Print (tp_print) */ - (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */ - (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */ - 0, /* tp_compare */ - (reprfunc) swig_varlink_repr, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - 0, /* tp_hash */ - 0, /* tp_call */ - 0, /* tp_str */ - 0, /* tp_getattro */ - 0, /* tp_setattro */ - 0, /* tp_as_buffer */ - 0, /* tp_flags */ - varlink__doc__, /* tp_doc */ -#if PY_VERSION_HEX >= 0x02000000 - 0, /* tp_traverse */ - 0, /* tp_clear */ -#endif -#if PY_VERSION_HEX >= 0x02010000 - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ -#endif -#if PY_VERSION_HEX >= 0x02020000 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* tp_iter -> tp_weaklist */ -#endif -#if PY_VERSION_HEX >= 0x02030000 - 0, /* tp_del */ -#endif -#ifdef COUNT_ALLOCS - 0, 0, 0, 0 /* tp_alloc -> tp_next */ -#endif - }; -#if !defined(__cplusplus) - varlink_type = tmp; - type_init = 1; - } -#endif - return &varlink_type; - } - - /* Create a variable linking object for use later */ - SWIGINTERN PyObject *SWIG_Python_newvarlink(void) { - swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type()); - if (result) { - result->vars = 0; - } - return ((PyObject *) result); - } - - SWIGINTERN void SWIG_Python_addvarlink(PyObject * p, char *name, PyObject * (*get_attr) (void), int (*set_attr) (PyObject * p)) { - swig_varlinkobject *v = (swig_varlinkobject *) p; - swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); - if (gv) { - size_t size = strlen(name) + 1; - gv->name = (char *) malloc(size); - if (gv->name) { - strncpy(gv->name, name, size); - gv->get_attr = get_attr; - gv->set_attr = set_attr; - gv->next = v->vars; - } - } - v->vars = gv; - } - - /* ----------------------------------------------------------------------------- - * constants/methods manipulation - * ----------------------------------------------------------------------------- */ - - /* Install Constants */ - SWIGINTERN void SWIG_Python_InstallConstants(PyObject * d, swig_const_info constants[]) { - PyObject *obj = 0; - size_t i; - for (i = 0; constants[i].type; ++i) { - switch (constants[i].type) { - case SWIG_PY_INT: - obj = PyInt_FromLong(constants[i].lvalue); - break; - case SWIG_PY_FLOAT: - obj = PyFloat_FromDouble(constants[i].dvalue); - break; - case SWIG_PY_STRING: - if (constants[i].pvalue) { - obj = PyString_FromString((char *) constants[i].pvalue); - } else { - Py_INCREF(Py_None); - obj = Py_None; - } - break; - case SWIG_PY_POINTER: - obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype, 0); - break; - case SWIG_PY_BINARY: - obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); - break; - default: - obj = 0; - break; - } - if (obj) { - PyDict_SetItemString(d, constants[i].name, obj); - Py_DECREF(obj); - } - } - } - - /* ----------------------------------------------------------------------------- */ - /* Fix SwigMethods to carry the callback ptrs when needed */ - /* ----------------------------------------------------------------------------- */ - - SWIGINTERN void SWIG_Python_FixMethods(PyMethodDef * methods, swig_const_info * const_table, swig_type_info ** types, swig_type_info ** types_initial) { - size_t i; - for (i = 0; methods[i].ml_name; ++i) { - char *c = methods[i].ml_doc; - if (c && (c = strstr(c, "swig_ptr: "))) { - int j; - swig_const_info *ci = 0; - char *name = c + 10; - for (j = 0; const_table[j].type; ++j) { - if (strncmp(const_table[j].name, name, strlen(const_table[j].name)) == 0) { - ci = &(const_table[j]); - break; - } - } - if (ci) { - size_t shift = (ci->ptype) - types; - swig_type_info *ty = types_initial[shift]; - size_t ldoc = (c - methods[i].ml_doc); - size_t lptr = strlen(ty->name) + 2 * sizeof(void *) + 2; - char *ndoc = (char *) malloc(ldoc + lptr + 10); - if (ndoc) { - char *buff = ndoc; - void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; - if (ptr) { - strncpy(buff, methods[i].ml_doc, ldoc); - buff += ldoc; - strncpy(buff, "swig_ptr: ", 10); - buff += 10; - SWIG_PackVoidPtr(buff, ptr, ty->name, lptr); - methods[i].ml_doc = ndoc; - } - } - } - } - } - } - - /* -----------------------------------------------------------------------------* - * Initialize type list - * -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -} -#endif - -/* -----------------------------------------------------------------------------* - * Partial Init method - * -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -#endif - SWIGEXPORT void SWIG_init(void) -{ - static PyObject *SWIG_globals = 0; - PyObject *m, *d; - if (!SWIG_globals) - SWIG_globals = SWIG_newvarlink(); - - /* Fix SwigMethods to carry the callback ptrs when needed */ - SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial); - - m = Py_InitModule((char *) SWIG_name, SwigMethods); - d = PyModule_GetDict(m); - - SWIG_InitializeModule(0); - SWIG_InstallConstants(d, swig_const_table); - - { - PyDict_SetItemString(d, "CS_NEW", SWIG_From_int((int) (CS_NEW))); - } - { - PyDict_SetItemString(d, "CS_INIT", SWIG_From_int((int) (CS_INIT))); - } - { - PyDict_SetItemString(d, "CS_ROUTING", SWIG_From_int((int) (CS_ROUTING))); - } - { - 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_EXCHANGE_MEDIA", SWIG_From_int((int) (CS_EXCHANGE_MEDIA))); - } - { - PyDict_SetItemString(d, "CS_CONSUME_MEDIA", SWIG_From_int((int) (CS_CONSUME_MEDIA))); - } - { - PyDict_SetItemString(d, "CS_HIBERNATE", SWIG_From_int((int) (CS_HIBERNATE))); - } - { - PyDict_SetItemString(d, "CS_HANGUP", SWIG_From_int((int) (CS_HANGUP))); - } - { - PyDict_SetItemString(d, "CS_DONE", SWIG_From_int((int) (CS_DONE))); - } -} diff --git a/src/mod/languages/mod_python/switch_swig_wrap.c.bkp b/src/mod/languages/mod_python/switch_swig_wrap.c.bkp deleted file mode 100644 index e6a53db127..0000000000 --- a/src/mod/languages/mod_python/switch_swig_wrap.c.bkp +++ /dev/null @@ -1,1336 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 1.3.21 - * - * 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 - * changes to this file unless you know what you are doing--modify the SWIG - * interface file instead. - * ----------------------------------------------------------------------------- */ - -#define SWIGPYTHON - -#include "Python.h" - -/*************************************************************** -*- c -*- - * python/precommon.swg - * - * Rename all exported symbols from common.swg, to avoid symbol - * clashes if multiple interpreters are included - * - ************************************************************************/ - -#define SWIG_TypeRegister SWIG_Python_TypeRegister -#define SWIG_TypeCheck SWIG_Python_TypeCheck -#define SWIG_TypeCast SWIG_Python_TypeCast -#define SWIG_TypeDynamicCast SWIG_Python_TypeDynamicCast -#define SWIG_TypeName SWIG_Python_TypeName -#define SWIG_TypeQuery SWIG_Python_TypeQuery -#define SWIG_TypeClientData SWIG_Python_TypeClientData -#define SWIG_PackData SWIG_Python_PackData -#define SWIG_UnpackData SWIG_Python_UnpackData - - -/*********************************************************************** - * common.swg - * - * This file contains generic SWIG runtime support for pointer - * type checking as well as a few commonly used macros to control - * external linkage. - * - * Author : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (c) 1999-2000, The University of Chicago - * - * This file may be freely redistributed without license or fee provided - * this copyright message remains intact. - ************************************************************************/ - -#include - -#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# if defined(_MSC_VER) || defined(__GNUC__) -# if defined(STATIC_LINKED) -# define SWIGEXPORT(a) a -# define SWIGIMPORT(a) extern a -# else -# define SWIGEXPORT(a) __declspec(dllexport) a -# define SWIGIMPORT(a) extern a -# endif -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# define SWIGIMPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# define SWIGIMPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -# define SWIGIMPORT(a) a -#endif - -#ifdef SWIG_GLOBAL -# define SWIGRUNTIME(a) SWIGEXPORT(a) -#else -# define SWIGRUNTIME(a) static a -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef void *(*swig_converter_func)(void *); -typedef struct swig_type_info *(*swig_dycast_func)(void **); - -typedef struct swig_type_info { - const char *name; - swig_converter_func converter; - const char *str; - void *clientdata; - swig_dycast_func dcast; - struct swig_type_info *next; - struct swig_type_info *prev; -} swig_type_info; - -#ifdef SWIG_NOINCLUDE - -SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *); -SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *); -SWIGIMPORT(void *) SWIG_TypeCast(swig_type_info *, void *); -SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **); -SWIGIMPORT(const char *) SWIG_TypeName(const swig_type_info *); -SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *); -SWIGIMPORT(void) SWIG_TypeClientData(swig_type_info *, void *); -SWIGIMPORT(char *) SWIG_PackData(char *, void *, int); -SWIGIMPORT(char *) SWIG_UnpackData(char *, void *, int); - -#else - -static swig_type_info *swig_type_list = 0; - -/* Register a type mapping with the type-checking */ -SWIGRUNTIME(swig_type_info *) -SWIG_TypeRegister(swig_type_info *ti) { - swig_type_info *tc, *head, *ret, *next; - /* Check to see if this type has already been registered */ - tc = swig_type_list; - while (tc) { - if (strcmp(tc->name, ti->name) == 0) { - /* Already exists in the table. Just add additional types to the list */ - if (tc->clientdata) ti->clientdata = tc->clientdata; - head = tc; - next = tc->next; - goto l1; - } - tc = tc->prev; - } - head = ti; - next = 0; - - /* Place in list */ - ti->prev = swig_type_list; - swig_type_list = ti; - - /* Build linked lists */ - l1: - ret = head; - tc = ti + 1; - /* Patch up the rest of the links */ - while (tc->name) { - head->next = tc; - tc->prev = head; - head = tc; - tc++; - } - if (next) next->prev = head; - head->next = next; - return ret; -} - -/* Check the typename */ -SWIGRUNTIME(swig_type_info *) -SWIG_TypeCheck(char *c, swig_type_info *ty) { - swig_type_info *s; - if (!ty) return 0; /* Void pointer */ - s = ty->next; /* First element always just a name */ - do { - if (strcmp(s->name,c) == 0) { - if (s == ty->next) return s; - /* Move s to the top of the linked list */ - s->prev->next = s->next; - if (s->next) { - s->next->prev = s->prev; - } - /* Insert s as second element in the list */ - s->next = ty->next; - if (ty->next) ty->next->prev = s; - ty->next = s; - s->prev = ty; - return s; - } - s = s->next; - } while (s && (s != ty->next)); - return 0; -} - -/* Cast a pointer up an inheritance hierarchy */ -SWIGRUNTIME(void *) -SWIG_TypeCast(swig_type_info *ty, void *ptr) { - if ((!ty) || (!ty->converter)) return ptr; - return (*ty->converter)(ptr); -} - -/* Dynamic pointer casting. Down an inheritance hierarchy */ -SWIGRUNTIME(swig_type_info *) -SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { - swig_type_info *lastty = ty; - if (!ty || !ty->dcast) return ty; - while (ty && (ty->dcast)) { - ty = (*ty->dcast)(ptr); - if (ty) lastty = ty; - } - return lastty; -} - -/* Return the name associated with this type */ -SWIGRUNTIME(const char *) -SWIG_TypeName(const swig_type_info *ty) { - return ty->name; -} - -/* Search for a swig_type_info structure */ -SWIGRUNTIME(swig_type_info *) -SWIG_TypeQuery(const char *name) { - swig_type_info *ty = swig_type_list; - while (ty) { - if (ty->str && (strcmp(name,ty->str) == 0)) return ty; - if (ty->name && (strcmp(name,ty->name) == 0)) return ty; - ty = ty->prev; - } - return 0; -} - -/* Set the clientdata field for a type */ -SWIGRUNTIME(void) -SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { - swig_type_info *tc, *equiv; - if (ti->clientdata == clientdata) return; - ti->clientdata = clientdata; - equiv = ti->next; - while (equiv) { - if (!equiv->converter) { - tc = swig_type_list; - while (tc) { - if ((strcmp(tc->name, equiv->name) == 0)) - SWIG_TypeClientData(tc,clientdata); - tc = tc->prev; - } - } - equiv = equiv->next; - } -} - -/* Pack binary data into a string */ -SWIGRUNTIME(char *) -SWIG_PackData(char *c, void *ptr, int sz) { - static char hex[17] = "0123456789abcdef"; - int i; - unsigned char *u = (unsigned char *) ptr; - register unsigned char uu; - for (i = 0; i < sz; i++,u++) { - uu = *u; - *(c++) = hex[(uu & 0xf0) >> 4]; - *(c++) = hex[uu & 0xf]; - } - return c; -} - -/* Unpack binary data from a string */ -SWIGRUNTIME(char *) -SWIG_UnpackData(char *c, void *ptr, int sz) { - register unsigned char uu = 0; - register int d; - unsigned char *u = (unsigned char *) ptr; - int i; - for (i = 0; i < sz; i++, u++) { - d = *(c++); - if ((d >= '0') && (d <= '9')) - uu = ((d - '0') << 4); - else if ((d >= 'a') && (d <= 'f')) - uu = ((d - ('a'-10)) << 4); - d = *(c++); - if ((d >= '0') && (d <= '9')) - uu |= (d - '0'); - else if ((d >= 'a') && (d <= 'f')) - uu |= (d - ('a'-10)); - *u = uu; - } - return c; -} - -#endif - -#ifdef __cplusplus -} -#endif - -/*********************************************************************** - * python.swg - * - * This file contains the runtime support for Python modules - * and includes code for managing global variables and pointer - * type checking. - * - * Author : David Beazley (beazley@cs.uchicago.edu) - ************************************************************************/ - -#include "Python.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define SWIG_PY_INT 1 -#define SWIG_PY_FLOAT 2 -#define SWIG_PY_STRING 3 -#define SWIG_PY_POINTER 4 -#define SWIG_PY_BINARY 5 - -/* Flags for pointer conversion */ - -#define SWIG_POINTER_EXCEPTION 0x1 -#define SWIG_POINTER_DISOWN 0x2 - -/* Exception handling in wrappers */ -#define SWIG_fail goto fail - -/* Constant information structure */ -typedef struct swig_const_info { - int type; - char *name; - long lvalue; - double dvalue; - void *pvalue; - swig_type_info **ptype; -} swig_const_info; - -/* Common SWIG API */ -#define SWIG_ConvertPtr(obj, pp, type, flags) \ - SWIG_Python_ConvertPtr(obj, pp, type, flags) -#define SWIG_NewPointerObj(p, type, flags) \ - SWIG_Python_NewPointerObj(p, type, flags) -#define SWIG_MustGetPtr(p, type, argnum, flags) \ - SWIG_Python_MustGetPtr(p, type, argnum, flags) - -/* Python-specific SWIG API */ -#define SWIG_newvarlink() \ - SWIG_Python_newvarlink() -#define SWIG_addvarlink(p, name, get_attr, set_attr) \ - SWIG_Python_addvarlink(p, name, get_attr, set_attr) -#define SWIG_ConvertPacked(obj, ptr, sz, ty, flags) \ - SWIG_Python_ConvertPacked(obj, ptr, sz, ty, flags) -#define SWIG_NewPackedObj(ptr, sz, type) \ - SWIG_Python_NewPackedObj(ptr, sz, type) -#define SWIG_InstallConstants(d, constants) \ - SWIG_Python_InstallConstants(d, constants) - -#ifdef SWIG_NOINCLUDE - -SWIGIMPORT(int) SWIG_Python_ConvertPtr(PyObject *, void **, swig_type_info *, int); -SWIGIMPORT(PyObject *) SWIG_Python_NewPointerObj(void *, swig_type_info *,int own); -SWIGIMPORT(void *) SWIG_Python_MustGetPtr(PyObject *, swig_type_info *, int, int); -SWIGIMPORT(PyObject *) SWIG_Python_newvarlink(void); -SWIGIMPORT(void) SWIG_Python_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -SWIGIMPORT(int) SWIG_Python_ConvertPacked(PyObject *, void *, int sz, swig_type_info *, int); -SWIGIMPORT(PyObject *) SWIG_Python_NewPackedObj(void *, int sz, swig_type_info *); -SWIGIMPORT(void) SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]); - -#else - -/* ----------------------------------------------------------------------------- - * global variable support code. - * ----------------------------------------------------------------------------- */ - -typedef struct swig_globalvar { - char *name; /* Name of global variable */ - PyObject *(*get_attr)(void); /* Return the current value */ - int (*set_attr)(PyObject *); /* Set the value */ - struct swig_globalvar *next; -} swig_globalvar; - -typedef struct swig_varlinkobject { - PyObject_HEAD - swig_globalvar *vars; -} swig_varlinkobject; - -static PyObject * -swig_varlink_repr(swig_varlinkobject *v) { - v = v; - return PyString_FromString(""); -} - -static int -swig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) { - swig_globalvar *var; - flags = flags; - fprintf(fp,"Global variables { "); - for (var = v->vars; var; var=var->next) { - fprintf(fp,"%s", var->name); - if (var->next) fprintf(fp,", "); - } - fprintf(fp," }\n"); - return 0; -} - -static PyObject * -swig_varlink_getattr(swig_varlinkobject *v, char *n) { - swig_globalvar *var = v->vars; - while (var) { - if (strcmp(var->name,n) == 0) { - return (*var->get_attr)(); - } - var = var->next; - } - PyErr_SetString(PyExc_NameError,"Unknown C global variable"); - return NULL; -} - -static int -swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { - swig_globalvar *var = v->vars; - while (var) { - if (strcmp(var->name,n) == 0) { - return (*var->set_attr)(p); - } - var = var->next; - } - PyErr_SetString(PyExc_NameError,"Unknown C global variable"); - return 1; -} - -statichere PyTypeObject varlinktype = { - PyObject_HEAD_INIT(0) - 0, - (char *)"swigvarlink", /* Type name */ - sizeof(swig_varlinkobject), /* Basic size */ - 0, /* Itemsize */ - 0, /* Deallocator */ - (printfunc) swig_varlink_print, /* Print */ - (getattrfunc) swig_varlink_getattr, /* get attr */ - (setattrfunc) swig_varlink_setattr, /* Set attr */ - 0, /* tp_compare */ - (reprfunc) swig_varlink_repr, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_mapping*/ - 0, /* tp_hash */ -}; - -/* Create a variable linking object for use later */ -SWIGRUNTIME(PyObject *) -SWIG_Python_newvarlink(void) { - swig_varlinkobject *result = 0; - result = PyMem_NEW(swig_varlinkobject,1); - varlinktype.ob_type = &PyType_Type; /* Patch varlinktype into a PyType */ - result->ob_type = &varlinktype; - result->vars = 0; - result->ob_refcnt = 0; - Py_XINCREF((PyObject *) result); - return ((PyObject*) result); -} - -SWIGRUNTIME(void) -SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { - swig_varlinkobject *v; - swig_globalvar *gv; - v= (swig_varlinkobject *) p; - gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); - gv->name = (char *) malloc(strlen(name)+1); - strcpy(gv->name,name); - gv->get_attr = get_attr; - gv->set_attr = set_attr; - gv->next = v->vars; - v->vars = gv; -} - -/* Convert a pointer value */ -SWIGRUNTIME(int) -SWIG_Python_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) { - swig_type_info *tc; - char *c = 0; - static PyObject *SWIG_this = 0; - int newref = 0; - PyObject *pyobj = 0; - - if (!obj) return 0; - if (obj == Py_None) { - *ptr = 0; - return 0; - } -#ifdef SWIG_COBJECT_TYPES - if (!(PyCObject_Check(obj))) { - if (!SWIG_this) - SWIG_this = PyString_FromString("this"); - pyobj = obj; - obj = PyObject_GetAttr(obj,SWIG_this); - newref = 1; - if (!obj) goto type_error; - if (!PyCObject_Check(obj)) { - Py_DECREF(obj); - goto type_error; - } - } - *ptr = PyCObject_AsVoidPtr(obj); - c = (char *) PyCObject_GetDesc(obj); - if (newref) Py_DECREF(obj); - goto cobject; -#else - if (!(PyString_Check(obj))) { - if (!SWIG_this) - SWIG_this = PyString_FromString("this"); - pyobj = obj; - obj = PyObject_GetAttr(obj,SWIG_this); - newref = 1; - if (!obj) goto type_error; - if (!PyString_Check(obj)) { - Py_DECREF(obj); - goto type_error; - } - } - c = PyString_AsString(obj); - /* Pointer values must start with leading underscore */ - if (*c != '_') { - *ptr = (void *) 0; - if (strcmp(c,"NULL") == 0) { - if (newref) { Py_DECREF(obj); } - return 0; - } else { - if (newref) { Py_DECREF(obj); } - goto type_error; - } - } - c++; - c = SWIG_UnpackData(c,ptr,sizeof(void *)); - if (newref) { Py_DECREF(obj); } -#endif - -#ifdef SWIG_COBJECT_TYPES -cobject: -#endif - - if (ty) { - tc = SWIG_TypeCheck(c,ty); - if (!tc) goto type_error; - *ptr = SWIG_TypeCast(tc,(void*) *ptr); - } - - if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) { - PyObject *zero = PyInt_FromLong(0); - PyObject_SetAttrString(pyobj,(char*)"thisown",zero); - Py_DECREF(zero); - } - return 0; - -type_error: - if (flags & SWIG_POINTER_EXCEPTION) { - if (ty && c) { - char *temp = (char *) malloc(64+strlen(ty->name)+strlen(c)); - sprintf(temp,"Type error. Got %s, expected %s", c, ty->name); - PyErr_SetString(PyExc_TypeError, temp); - free((char *) temp); - } else { - PyErr_SetString(PyExc_TypeError,"Expected a pointer"); - } - } - return -1; -} - -/* Convert a pointer value, signal an exception on a type mismatch */ -SWIGRUNTIME(void *) -SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) { - void *result; - SWIG_Python_ConvertPtr(obj, &result, ty, flags | SWIG_POINTER_EXCEPTION); - return result; -} - -/* Convert a packed value value */ -SWIGRUNTIME(int) -SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, int sz, swig_type_info *ty, int flags) { - swig_type_info *tc; - char *c = 0; - - if ((!obj) || (!PyString_Check(obj))) goto type_error; - c = PyString_AsString(obj); - /* Pointer values must start with leading underscore */ - if (*c != '_') goto type_error; - c++; - c = SWIG_UnpackData(c,ptr,sz); - if (ty) { - tc = SWIG_TypeCheck(c,ty); - if (!tc) goto type_error; - } - return 0; - -type_error: - - if (flags) { - if (ty && c) { - char *temp = (char *) malloc(64+strlen(ty->name)+strlen(c)); - sprintf(temp,"Type error. Got %s, expected %s", c, ty->name); - PyErr_SetString(PyExc_TypeError, temp); - free((char *) temp); - } else { - PyErr_SetString(PyExc_TypeError,"Expected a pointer"); - } - } - return -1; -} - -/* Create a new pointer object */ -SWIGRUNTIME(PyObject *) -SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int own) { - PyObject *robj; - if (!ptr) { - Py_INCREF(Py_None); - return Py_None; - } -#ifdef SWIG_COBJECT_TYPES - robj = PyCObject_FromVoidPtrAndDesc((void *) ptr, (char *) type->name, NULL); -#else - { - char result[1024]; - char *r = result; - *(r++) = '_'; - r = SWIG_PackData(r,&ptr,sizeof(void *)); - strcpy(r,type->name); - robj = PyString_FromString(result); - } -#endif - if (!robj || (robj == Py_None)) return robj; - if (type->clientdata) { - PyObject *inst; - PyObject *args = Py_BuildValue((char*)"(O)", robj); - Py_DECREF(robj); - inst = PyObject_CallObject((PyObject *) type->clientdata, args); - Py_DECREF(args); - if (inst) { - if (own) { - PyObject *n = PyInt_FromLong(1); - PyObject_SetAttrString(inst,(char*)"thisown",n); - Py_DECREF(n); - } - robj = inst; - } - } - return robj; -} - -SWIGRUNTIME(PyObject *) -SWIG_Python_NewPackedObj(void *ptr, int sz, swig_type_info *type) { - char result[1024]; - char *r = result; - if ((2*sz + 1 + strlen(type->name)) > 1000) return 0; - *(r++) = '_'; - r = SWIG_PackData(r,ptr,sz); - strcpy(r,type->name); - return PyString_FromString(result); -} - -/* Install Constants */ -SWIGRUNTIME(void) -SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { - int i; - PyObject *obj; - for (i = 0; constants[i].type; i++) { - switch(constants[i].type) { - case SWIG_PY_INT: - obj = PyInt_FromLong(constants[i].lvalue); - break; - case SWIG_PY_FLOAT: - obj = PyFloat_FromDouble(constants[i].dvalue); - break; - case SWIG_PY_STRING: - obj = PyString_FromString((char *) constants[i].pvalue); - break; - case SWIG_PY_POINTER: - obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); - break; - case SWIG_PY_BINARY: - obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); - break; - default: - obj = 0; - break; - } - if (obj) { - PyDict_SetItemString(d,constants[i].name,obj); - Py_DECREF(obj); - } - } -} - -#endif - -/* Contract support */ - -#define SWIG_contract_assert(expr, msg) if (!(expr)) { PyErr_SetString(PyExc_RuntimeError, (char *) msg ); goto fail; } else - -#ifdef __cplusplus -} -#endif - - -/* -------- TYPES TABLE (BEGIN) -------- */ - -#define SWIGTYPE_p_switch_channel_t swig_types[0] -#define SWIGTYPE_p_switch_file_handle_t swig_types[1] -#define SWIGTYPE_p_switch_core_session_t swig_types[2] -#define SWIGTYPE_p_p_switch_core_session_t swig_types[3] -#define SWIGTYPE_p_uint32_t swig_types[4] -#define SWIGTYPE_p_switch_input_callback_function_t swig_types[5] -static swig_type_info *swig_types[7]; - -/* -------- TYPES TABLE (END) -------- */ - - -/*----------------------------------------------- - @(target):= _freeswitch.so - ------------------------------------------------*/ -#define SWIG_init init_freeswitch - -#define SWIG_name "_freeswitch" -/* -extern void fs_core_set_globals(void); -extern int fs_core_init(char *); -extern int fs_core_destroy(void); -extern int fs_loadable_module_init(void); -extern int fs_loadable_module_shutdown(void); -extern int fs_console_loop(void); -extern void fs_consol_log(char *,char *); -extern void fs_consol_clean(char *); -extern switch_core_session_t *fs_core_session_locate(char *); -extern void fs_channel_answer(switch_core_session_t *); -extern void fs_channel_pre_answer(switch_core_session_t *); -extern void fs_channel_hangup(switch_core_session_t *,char *); -extern void fs_channel_set_variable(switch_core_session_t *,char *,char *); -extern void fs_channel_get_variable(switch_core_session_t *,char *); -extern void fs_channel_set_state(switch_core_session_t *,char *); -extern int fs_ivr_play_file(switch_core_session_t *,char *,char *,switch_input_callback_function_t,void *,unsigned int); -extern int fs_switch_ivr_record_file(switch_core_session_t *,switch_file_handle_t *,char *,switch_input_callback_function_t,void *,unsigned int); -extern int fs_switch_ivr_sleep(switch_core_session_t *,uint32_t); -extern int fs_ivr_play_file2(switch_core_session_t *,char *); -extern int fs_switch_ivr_collect_digits_callback(switch_core_session_t *,switch_input_callback_function_t,void *,unsigned int,unsigned int); -extern int fs_switch_ivr_collect_digits_count(switch_core_session_t *,char *,unsigned int,unsigned int,char const *,char *,unsigned int); -extern int fs_switch_ivr_originate(switch_core_session_t *,switch_core_session_t **,char *,uint32_t); -extern int fs_switch_ivr_session_transfer(switch_core_session_t *,char *,char *,char *); -extern int fs_switch_ivr_speak_text(switch_core_session_t *,char *,char *,char *,uint32_t,switch_input_callback_function_t,char *,void *,unsigned int); -extern char *fs_switch_channel_get_variable(switch_channel_t *,char *); -extern int fs_switch_channel_set_variable(switch_channel_t *,char *,char *); -*/ -#include "switch.h" - -#ifdef __cplusplus -extern "C" { -#endif -static PyObject *_wrap_fs_core_set_globals(PyObject *self, PyObject *args) { - PyObject *resultobj; - - if(!PyArg_ParseTuple(args,(char *)":fs_core_set_globals")) goto fail; - fs_core_set_globals(); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_core_init(PyObject *self, PyObject *args) { - PyObject *resultobj; - char *arg1 ; - int result; - - if(!PyArg_ParseTuple(args,(char *)"s:fs_core_init",&arg1)) goto fail; - result = (int)fs_core_init(arg1); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_core_destroy(PyObject *self, PyObject *args) { - PyObject *resultobj; - int result; - - if(!PyArg_ParseTuple(args,(char *)":fs_core_destroy")) goto fail; - result = (int)fs_core_destroy(); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_loadable_module_init(PyObject *self, PyObject *args) { - PyObject *resultobj; - int result; - - if(!PyArg_ParseTuple(args,(char *)":fs_loadable_module_init")) goto fail; - result = (int)fs_loadable_module_init(); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_loadable_module_shutdown(PyObject *self, PyObject *args) { - PyObject *resultobj; - int result; - - if(!PyArg_ParseTuple(args,(char *)":fs_loadable_module_shutdown")) goto fail; - result = (int)fs_loadable_module_shutdown(); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_console_loop(PyObject *self, PyObject *args) { - PyObject *resultobj; - int result; - - if(!PyArg_ParseTuple(args,(char *)":fs_console_loop")) goto fail; - result = (int)fs_console_loop(); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_consol_log(PyObject *self, PyObject *args) { - PyObject *resultobj; - char *arg1 ; - char *arg2 ; - - if(!PyArg_ParseTuple(args,(char *)"ss:fs_consol_log",&arg1,&arg2)) goto fail; - fs_consol_log(arg1,arg2); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_consol_clean(PyObject *self, PyObject *args) { - PyObject *resultobj; - char *arg1 ; - - if(!PyArg_ParseTuple(args,(char *)"s:fs_consol_clean",&arg1)) goto fail; - fs_consol_clean(arg1); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_core_session_locate(PyObject *self, PyObject *args) { - PyObject *resultobj; - char *arg1 ; - switch_core_session_t *result; - - if(!PyArg_ParseTuple(args,(char *)"s:fs_core_session_locate",&arg1)) goto fail; - result = (switch_core_session_t *)fs_core_session_locate(arg1); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_switch_core_session_t, 0); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_channel_answer(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:fs_channel_answer",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - fs_channel_answer(arg1); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_channel_pre_answer(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:fs_channel_pre_answer",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - fs_channel_pre_answer(arg1); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_channel_hangup(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - char *arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Os:fs_channel_hangup",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - fs_channel_hangup(arg1,arg2); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_channel_set_variable(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - char *arg2 ; - char *arg3 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Oss:fs_channel_set_variable",&obj0,&arg2,&arg3)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - fs_channel_set_variable(arg1,arg2,arg3); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_channel_get_variable(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - char *arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Os:fs_channel_get_variable",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - fs_channel_get_variable(arg1,arg2); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_channel_set_state(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - char *arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Os:fs_channel_set_state",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - fs_channel_set_state(arg1,arg2); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_ivr_play_file(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - char *arg2 ; - char *arg3 ; - switch_input_callback_function_t arg4 ; - void *arg5 = (void *) 0 ; - unsigned int arg6 ; - int result; - switch_input_callback_function_t *argp4 ; - PyObject * obj0 = 0 ; - PyObject * obj3 = 0 ; - PyObject * obj4 = 0 ; - PyObject * obj5 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OssOOO:fs_ivr_play_file",&obj0,&arg2,&arg3,&obj3,&obj4,&obj5)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj3,(void **) &argp4, SWIGTYPE_p_switch_input_callback_function_t,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; - arg4 = *argp4; - if ((SWIG_ConvertPtr(obj4,(void **) &arg5, 0, SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - arg6 = (unsigned int) PyInt_AsLong(obj5); - if (PyErr_Occurred()) SWIG_fail; - result = (int)fs_ivr_play_file(arg1,arg2,arg3,arg4,arg5,arg6); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_switch_ivr_record_file(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - switch_file_handle_t *arg2 = (switch_file_handle_t *) 0 ; - char *arg3 ; - switch_input_callback_function_t arg4 ; - void *arg5 = (void *) 0 ; - unsigned int arg6 ; - int result; - switch_input_callback_function_t *argp4 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj3 = 0 ; - PyObject * obj4 = 0 ; - PyObject * obj5 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OOsOOO:fs_switch_ivr_record_file",&obj0,&obj1,&arg3,&obj3,&obj4,&obj5)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_switch_file_handle_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj3,(void **) &argp4, SWIGTYPE_p_switch_input_callback_function_t,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; - arg4 = *argp4; - if ((SWIG_ConvertPtr(obj4,(void **) &arg5, 0, SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - arg6 = (unsigned int) PyInt_AsLong(obj5); - if (PyErr_Occurred()) SWIG_fail; - result = (int)fs_switch_ivr_record_file(arg1,arg2,arg3,arg4,arg5,arg6); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_switch_ivr_sleep(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - uint32_t arg2 ; - int result; - uint32_t *argp2 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OO:fs_switch_ivr_sleep",&obj0,&obj1)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_uint32_t,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; - arg2 = *argp2; - result = (int)fs_switch_ivr_sleep(arg1,arg2); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_ivr_play_file2(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - char *arg2 ; - int result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Os:fs_ivr_play_file2",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (int)fs_ivr_play_file2(arg1,arg2); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_switch_ivr_collect_digits_callback(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - switch_input_callback_function_t arg2 ; - void *arg3 = (void *) 0 ; - unsigned int arg4 ; - unsigned int arg5 ; - int result; - switch_input_callback_function_t *argp2 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - PyObject * obj4 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OOOOO:fs_switch_ivr_collect_digits_callback",&obj0,&obj1,&obj2,&obj3,&obj4)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_switch_input_callback_function_t,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; - arg2 = *argp2; - if ((SWIG_ConvertPtr(obj2,(void **) &arg3, 0, SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - arg4 = (unsigned int) PyInt_AsLong(obj3); - if (PyErr_Occurred()) SWIG_fail; - arg5 = (unsigned int) PyInt_AsLong(obj4); - if (PyErr_Occurred()) SWIG_fail; - result = (int)fs_switch_ivr_collect_digits_callback(arg1,arg2,arg3,arg4,arg5); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_switch_ivr_collect_digits_count(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - char *arg2 ; - unsigned int arg3 ; - unsigned int arg4 ; - char *arg5 ; - char *arg6 ; - unsigned int arg7 ; - int result; - PyObject * obj0 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - PyObject * obj6 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OsOOssO:fs_switch_ivr_collect_digits_count",&obj0,&arg2,&obj2,&obj3,&arg5,&arg6,&obj6)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - arg3 = (unsigned int) PyInt_AsLong(obj2); - if (PyErr_Occurred()) SWIG_fail; - arg4 = (unsigned int) PyInt_AsLong(obj3); - if (PyErr_Occurred()) SWIG_fail; - arg7 = (unsigned int) PyInt_AsLong(obj6); - if (PyErr_Occurred()) SWIG_fail; - result = (int)fs_switch_ivr_collect_digits_count(arg1,arg2,arg3,arg4,(char const *)arg5,arg6,arg7); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_switch_ivr_originate(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - switch_core_session_t **arg2 = (switch_core_session_t **) 0 ; - char *arg3 ; - uint32_t arg4 ; - int result; - uint32_t *argp4 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj3 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OOsO:fs_switch_ivr_originate",&obj0,&obj1,&arg3,&obj3)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj3,(void **) &argp4, SWIGTYPE_p_uint32_t,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; - arg4 = *argp4; - result = (int)fs_switch_ivr_originate(arg1,arg2,arg3,arg4); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_switch_ivr_session_transfer(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - char *arg2 ; - char *arg3 ; - char *arg4 ; - int result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Osss:fs_switch_ivr_session_transfer",&obj0,&arg2,&arg3,&arg4)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (int)fs_switch_ivr_session_transfer(arg1,arg2,arg3,arg4); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_switch_ivr_speak_text(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_core_session_t *arg1 = (switch_core_session_t *) 0 ; - char *arg2 ; - char *arg3 ; - char *arg4 ; - uint32_t arg5 ; - switch_input_callback_function_t arg6 ; - char *arg7 ; - void *arg8 = (void *) 0 ; - unsigned int arg9 ; - int result; - uint32_t *argp5 ; - switch_input_callback_function_t *argp6 ; - PyObject * obj0 = 0 ; - PyObject * obj4 = 0 ; - PyObject * obj5 = 0 ; - PyObject * obj7 = 0 ; - PyObject * obj8 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OsssOOsOO:fs_switch_ivr_speak_text",&obj0,&arg2,&arg3,&arg4,&obj4,&obj5,&arg7,&obj7,&obj8)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj4,(void **) &argp5, SWIGTYPE_p_uint32_t,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; - arg5 = *argp5; - if ((SWIG_ConvertPtr(obj5,(void **) &argp6, SWIGTYPE_p_switch_input_callback_function_t,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; - arg6 = *argp6; - if ((SWIG_ConvertPtr(obj7,(void **) &arg8, 0, SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - arg9 = (unsigned int) PyInt_AsLong(obj8); - if (PyErr_Occurred()) SWIG_fail; - result = (int)fs_switch_ivr_speak_text(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_switch_channel_get_variable(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_channel_t *arg1 = (switch_channel_t *) 0 ; - char *arg2 ; - char *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Os:fs_switch_channel_get_variable",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_channel_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (char *)fs_switch_channel_get_variable(arg1,arg2); - - resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)""); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_fs_switch_channel_set_variable(PyObject *self, PyObject *args) { - PyObject *resultobj; - switch_channel_t *arg1 = (switch_channel_t *) 0 ; - char *arg2 ; - char *arg3 ; - int result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Oss:fs_switch_channel_set_variable",&obj0,&arg2,&arg3)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_channel_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (int)fs_switch_channel_set_variable(arg1,arg2,arg3); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyMethodDef SwigMethods[] = { - { (char *)"fs_core_set_globals", _wrap_fs_core_set_globals, METH_VARARGS }, - { (char *)"fs_core_init", _wrap_fs_core_init, METH_VARARGS }, - { (char *)"fs_core_destroy", _wrap_fs_core_destroy, METH_VARARGS }, - { (char *)"fs_loadable_module_init", _wrap_fs_loadable_module_init, METH_VARARGS }, - { (char *)"fs_loadable_module_shutdown", _wrap_fs_loadable_module_shutdown, METH_VARARGS }, - { (char *)"fs_console_loop", _wrap_fs_console_loop, METH_VARARGS }, - { (char *)"fs_consol_log", _wrap_fs_consol_log, METH_VARARGS }, - { (char *)"fs_consol_clean", _wrap_fs_consol_clean, METH_VARARGS }, - { (char *)"fs_core_session_locate", _wrap_fs_core_session_locate, METH_VARARGS }, - { (char *)"fs_channel_answer", _wrap_fs_channel_answer, METH_VARARGS }, - { (char *)"fs_channel_pre_answer", _wrap_fs_channel_pre_answer, METH_VARARGS }, - { (char *)"fs_channel_hangup", _wrap_fs_channel_hangup, METH_VARARGS }, - { (char *)"fs_channel_set_variable", _wrap_fs_channel_set_variable, METH_VARARGS }, - { (char *)"fs_channel_get_variable", _wrap_fs_channel_get_variable, METH_VARARGS }, - { (char *)"fs_channel_set_state", _wrap_fs_channel_set_state, METH_VARARGS }, - { (char *)"fs_ivr_play_file", _wrap_fs_ivr_play_file, METH_VARARGS }, - { (char *)"fs_switch_ivr_record_file", _wrap_fs_switch_ivr_record_file, METH_VARARGS }, - { (char *)"fs_switch_ivr_sleep", _wrap_fs_switch_ivr_sleep, METH_VARARGS }, - { (char *)"fs_ivr_play_file2", _wrap_fs_ivr_play_file2, METH_VARARGS }, - { (char *)"fs_switch_ivr_collect_digits_callback", _wrap_fs_switch_ivr_collect_digits_callback, METH_VARARGS }, - { (char *)"fs_switch_ivr_collect_digits_count", _wrap_fs_switch_ivr_collect_digits_count, METH_VARARGS }, - { (char *)"fs_switch_ivr_originate", _wrap_fs_switch_ivr_originate, METH_VARARGS }, - { (char *)"fs_switch_ivr_session_transfer", _wrap_fs_switch_ivr_session_transfer, METH_VARARGS }, - { (char *)"fs_switch_ivr_speak_text", _wrap_fs_switch_ivr_speak_text, METH_VARARGS }, - { (char *)"fs_switch_channel_get_variable", _wrap_fs_switch_channel_get_variable, METH_VARARGS }, - { (char *)"fs_switch_channel_set_variable", _wrap_fs_switch_channel_set_variable, METH_VARARGS }, - { NULL, NULL } -}; - - -/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ - -static swig_type_info _swigt__p_switch_channel_t[] = {{"_p_switch_channel_t", 0, "switch_channel_t *", 0},{"_p_switch_channel_t"},{0}}; -static swig_type_info _swigt__p_switch_file_handle_t[] = {{"_p_switch_file_handle_t", 0, "switch_file_handle_t *", 0},{"_p_switch_file_handle_t"},{0}}; -static swig_type_info _swigt__p_switch_core_session_t[] = {{"_p_switch_core_session_t", 0, "switch_core_session_t *", 0},{"_p_switch_core_session_t"},{0}}; -static swig_type_info _swigt__p_p_switch_core_session_t[] = {{"_p_p_switch_core_session_t", 0, "switch_core_session_t **", 0},{"_p_p_switch_core_session_t"},{0}}; -static swig_type_info _swigt__p_uint32_t[] = {{"_p_uint32_t", 0, "uint32_t *", 0},{"_p_uint32_t"},{0}}; -static swig_type_info _swigt__p_switch_input_callback_function_t[] = {{"_p_switch_input_callback_function_t", 0, "switch_input_callback_function_t *", 0},{"_p_switch_input_callback_function_t"},{0}}; - -static swig_type_info *swig_types_initial[] = { -_swigt__p_switch_channel_t, -_swigt__p_switch_file_handle_t, -_swigt__p_switch_core_session_t, -_swigt__p_p_switch_core_session_t, -_swigt__p_uint32_t, -_swigt__p_switch_input_callback_function_t, -0 -}; - - -/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ - -static swig_const_info swig_const_table[] = { -{0}}; - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void) SWIG_init(void) { - static PyObject *SWIG_globals = 0; - static int typeinit = 0; - PyObject *m, *d; - int i; - if (!SWIG_globals) SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule((char *) SWIG_name, SwigMethods); - d = PyModule_GetDict(m); - - if (!typeinit) { - for (i = 0; swig_types_initial[i]; i++) { - swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]); - } - typeinit = 1; - } - SWIG_InstallConstants(d,swig_const_table); - -} - diff --git a/src/switch_cpp.cpp b/src/switch_cpp.cpp index e7170c1bde..0731c0e552 100644 --- a/src/switch_cpp.cpp +++ b/src/switch_cpp.cpp @@ -367,6 +367,24 @@ SWITCH_DECLARE(const char *)Event::getType(void) return (char *) "invalid"; } + +SWITCH_DECLARE_CONSTRUCTOR DTMF::DTMF(char idigit, uint32_t iduration) +{ + digit = idigit; + + if (iduration == 0) { + iduration == SWITCH_DEFAULT_DTMF_DURATION; + } + + duration = iduration; +} + +SWITCH_DECLARE_CONSTRUCTOR DTMF::~DTMF() +{ + +} + + SWITCH_DECLARE_CONSTRUCTOR Stream::Stream() { SWITCH_STANDARD_STREAM(mystream); @@ -457,8 +475,6 @@ SWITCH_DECLARE_CONSTRUCTOR CoreSession::~CoreSession() } switch_core_session_rwunlock(session); } - - } SWITCH_DECLARE(char *) CoreSession::getXMLCDR() @@ -602,11 +618,6 @@ SWITCH_DECLARE(int) CoreSession::speak(char *text) this_check(-1); sanity_check(-1); - // create and store an empty filehandle in callback args - // to workaround a bug in the presumptuous process_callback_result() - switch_file_handle_t fh = { 0 }; - store_file_handle(&fh); - if (!tts_name) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "No TTS engine specified\n"); return SWITCH_STATUS_FALSE; @@ -793,13 +804,12 @@ SWITCH_DECLARE(int) CoreSession::streamFile(char *file, int starting_sample_coun } } - - store_file_handle(&local_fh); - begin_allow_threads(); status = switch_ivr_play_file(session, fhp, file, ap); end_allow_threads(); + fhp = NULL; + return status == SWITCH_STATUS_SUCCESS ? 1 : 0; } @@ -895,18 +905,22 @@ SWITCH_DECLARE(int) CoreSession::originate(CoreSession *a_leg_session, char *des 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; this_check(-1); sanity_check(-1); - fh.thresh = silence_threshold; - fh.silence_hits = silence_secs; - store_file_handle(&fh); + memset(&local_fh, 0, sizeof(local_fh)); + fhp = &local_fh; + local_fh.thresh = silence_threshold; + local_fh.silence_hits = silence_secs; + begin_allow_threads(); - status = switch_ivr_record_file(session, &fh, file_name, &args, max_len); + status = switch_ivr_record_file(session, &local_fh, file_name, &args, max_len); end_allow_threads(); + + fhp = NULL; + return status == SWITCH_STATUS_SUCCESS ? 1 : 0; } @@ -1012,22 +1026,6 @@ SWITCH_DECLARE(void) CoreSession::setHangupHook(void *hangup_func) { switch_core_event_hook_add_state_change(session, hanguphook); } -/** \brief Store a file handle in the callback args - * - * In a few of the methods like playFile and streamfile, - * an empty switch_file_handle_t is created and passed - * to core, and stored in callback args so that the callback - * handler can retrieve it for pausing, ff, rewinding file ptr. - * - * \param fh - a switch_file_handle_t - */ -void CoreSession::store_file_handle(switch_file_handle_t *fh) { - cb_state.extra = fh; // set a file handle so callback handler can pause - args.buf = &cb_state; - ap = &args; -} - - /* ---- methods not bound to CoreSession instance ---- */ SWITCH_DECLARE(void) consoleLog(char *level_str, char *msg) @@ -1137,13 +1135,6 @@ SWITCH_DECLARE(switch_status_t) CoreSession::process_callback_result(char *resul 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; }