From 36852b399e09b1be8cc9ef035a5267aecc254a28 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Tue, 8 Jul 2008 06:59:02 +0000 Subject: [PATCH] fix seg src/mod/languages/mod_python git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8924 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- scripts/scenario/phones.cfg | 2 +- .../mod_pocketsphinx/mod_pocketsphinx.c | 1 - .../mod_python/freeswitch_python.cpp | 6 ++- src/mod/languages/mod_python/mod_python.c | 42 +++++-------------- 4 files changed, 15 insertions(+), 36 deletions(-) diff --git a/scripts/scenario/phones.cfg b/scripts/scenario/phones.cfg index ef86948906..a3dbf2855c 100644 --- a/scripts/scenario/phones.cfg +++ b/scripts/scenario/phones.cfg @@ -1,4 +1,4 @@ -Snom_300,10.0.1.241,1000 +Snom_300,10.0.1.17,1000 Snom_320,10.0.1.242,1002 Snom_360,10.0.1.243,1006 Snom_370,10.0.1.244,1007 diff --git a/src/mod/asr_tts/mod_pocketsphinx/mod_pocketsphinx.c b/src/mod/asr_tts/mod_pocketsphinx/mod_pocketsphinx.c index 2f52443199..ae83e1ddcf 100644 --- a/src/mod/asr_tts/mod_pocketsphinx/mod_pocketsphinx.c +++ b/src/mod/asr_tts/mod_pocketsphinx/mod_pocketsphinx.c @@ -32,7 +32,6 @@ #include #include -#define MODELDIR "/usr/local/share/pocketsphinx/model" SWITCH_MODULE_LOAD_FUNCTION(mod_pocketsphinx_load); SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_pocketsphinx_shutdown); diff --git a/src/mod/languages/mod_python/freeswitch_python.cpp b/src/mod/languages/mod_python/freeswitch_python.cpp index 4a3afc5a0e..44b0d8c0c5 100644 --- a/src/mod/languages/mod_python/freeswitch_python.cpp +++ b/src/mod/languages/mod_python/freeswitch_python.cpp @@ -1,6 +1,6 @@ #include "freeswitch_python.h" -#define 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_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) PySession::PySession():CoreSession() @@ -21,7 +21,7 @@ PySession::PySession(switch_core_session_t *new_session):CoreSession(new_session void PySession::setDTMFCallback(PyObject * pyfunc, char *funcargs) { - sanity_check(); + py_sanity_check(); if (!PyCallable_Check(pyfunc)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "DTMF function is not a python function.\n"); @@ -51,10 +51,12 @@ void PySession::setHangupHook(PyObject * pyfunc) void PySession::check_hangup_hook() { +#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"); diff --git a/src/mod/languages/mod_python/mod_python.c b/src/mod/languages/mod_python/mod_python.c index 35740ac553..2f70ba4a39 100644 --- a/src/mod/languages/mod_python/mod_python.c +++ b/src/mod/languages/mod_python/mod_python.c @@ -249,40 +249,11 @@ SWITCH_STANDARD_API(launch_python) return SWITCH_STATUS_SUCCESS; } -static switch_application_interface_t python_application_interface = { - /*.interface_name */ "python", - /*.application_function */ python_function, - NULL, NULL, NULL, - /* flags */ SAF_NONE, - /* should we support no media mode here? If so, we need to detect the mode, and either disable the media functions or indicate media if/when we need */ - /*.next */ NULL -}; - -static switch_api_interface_t python_run_interface = { - /*.interface_name */ "python", - /*.desc */ "run a python script", - /*.function */ launch_python, - /*.syntax */ "python ", - /*.next */ NULL -}; - -static switch_loadable_module_interface_t python_module_interface = { - /*.module_name */ modname, - /*.endpoint_interface */ NULL, - /*.timer_interface */ NULL, - /*.dialplan_interface */ NULL, - /*.codec_interface */ NULL, - /*.application_interface */ &python_application_interface, - /*.api_interface */ &python_run_interface, - /*.file_interface */ NULL, - /*.speech_interface */ NULL, - /*.directory_interface */ NULL -}; - SWITCH_MODULE_LOAD_FUNCTION(mod_python_load) { - /* connect my internal structure to the blank pointer passed to me */ - *module_interface = &python_module_interface; + switch_api_interface_t *api_interface; + switch_application_interface_t *app_interface; + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Python Framework Loading...\n"); if (!Py_IsInitialized()) { @@ -305,6 +276,13 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_python_load) PyEval_ReleaseLock(); } + + /* connect my internal structure to the blank pointer passed to me */ + *module_interface = switch_loadable_module_create_module_interface(pool, modname); + SWITCH_ADD_API(api_interface, "python", "run a python script", launch_python, "python "); + SWITCH_ADD_APP(app_interface, "python", "Launch python ivr", "Run a python ivr on a channel", python_function, "