]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix seg src/mod/languages/mod_python
authorMichael Jerris <mike@jerris.com>
Tue, 8 Jul 2008 06:59:02 +0000 (06:59 +0000)
committerMichael Jerris <mike@jerris.com>
Tue, 8 Jul 2008 06:59:02 +0000 (06:59 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8924 d0543943-73ff-0310-b7d9-9358b9ac24b2

scripts/scenario/phones.cfg
src/mod/asr_tts/mod_pocketsphinx/mod_pocketsphinx.c
src/mod/languages/mod_python/freeswitch_python.cpp
src/mod/languages/mod_python/mod_python.c

index ef8694890627b8ce8820d12227c0eccf6dfdab1c..a3dbf2855ca9efb74493f5c223fc33e78fef228a 100644 (file)
@@ -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
index 2f52443199ea9cd6cd604f2dfc8ac1874ba113ee..ae83e1ddcf80c2649a518d4dd8e7c2af1fa9f9be 100644 (file)
@@ -32,7 +32,6 @@
 
 #include <switch.h>
 #include <pocketsphinx.h>
-#define MODELDIR "/usr/local/share/pocketsphinx/model"
 
 SWITCH_MODULE_LOAD_FUNCTION(mod_pocketsphinx_load);
 SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_pocketsphinx_shutdown);
index 4a3afc5a0e3d6ea1b97a9a235fb05209143aa1ab..44b0d8c0c5cc27030330e85afa7a69e7bd0a5179 100644 (file)
@@ -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");
index 35740ac5531f3b502685051e7bc8ec10e4faebba..2f70ba4a397be8f8e407c25eeddf697701459cc6 100644 (file)
@@ -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 </path/to/script>",
-       /*.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 </path/to/script>");
+       SWITCH_ADD_APP(app_interface, "python", "Launch python ivr", "Run a python ivr on a channel", python_function, "<script> [additional_vars [...]]",
+                                  SAF_SUPPORT_NOMEDIA);
+
        /* indicate that the module should continue to be loaded */
        return SWITCH_STATUS_SUCCESS;
 }