fix seg src/mod/languages/mod_python
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8924 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
3003ead20f
commit
36852b399e
|
@ -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_320,10.0.1.242,1002
|
||||||
Snom_360,10.0.1.243,1006
|
Snom_360,10.0.1.243,1006
|
||||||
Snom_370,10.0.1.244,1007
|
Snom_370,10.0.1.244,1007
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
|
|
||||||
#include <switch.h>
|
#include <switch.h>
|
||||||
#include <pocketsphinx.h>
|
#include <pocketsphinx.h>
|
||||||
#define MODELDIR "/usr/local/share/pocketsphinx/model"
|
|
||||||
|
|
||||||
SWITCH_MODULE_LOAD_FUNCTION(mod_pocketsphinx_load);
|
SWITCH_MODULE_LOAD_FUNCTION(mod_pocketsphinx_load);
|
||||||
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_pocketsphinx_shutdown);
|
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_pocketsphinx_shutdown);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "freeswitch_python.h"
|
#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)
|
#define py_init_vars() do { caller_profile.source = "mod_python"; swapstate = S_SWAPPED_IN; } while(0)
|
||||||
|
|
||||||
PySession::PySession():CoreSession()
|
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)
|
void PySession::setDTMFCallback(PyObject * pyfunc, char *funcargs)
|
||||||
{
|
{
|
||||||
sanity_check();
|
py_sanity_check();
|
||||||
|
|
||||||
if (!PyCallable_Check(pyfunc)) {
|
if (!PyCallable_Check(pyfunc)) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "DTMF function is not a python function.\n");
|
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()
|
void PySession::check_hangup_hook()
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
PyObject *func;
|
PyObject *func;
|
||||||
PyObject *result;
|
PyObject *result;
|
||||||
char *resultStr;
|
char *resultStr;
|
||||||
bool did_swap_in = false;
|
bool did_swap_in = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
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");
|
"check_hangup_hook has been DISABLED, please do not use hangup hooks in python code until further notice!\n");
|
||||||
|
|
|
@ -249,40 +249,11 @@ SWITCH_STANDARD_API(launch_python)
|
||||||
return SWITCH_STATUS_SUCCESS;
|
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)
|
SWITCH_MODULE_LOAD_FUNCTION(mod_python_load)
|
||||||
{
|
{
|
||||||
/* connect my internal structure to the blank pointer passed to me */
|
switch_api_interface_t *api_interface;
|
||||||
*module_interface = &python_module_interface;
|
switch_application_interface_t *app_interface;
|
||||||
|
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Python Framework Loading...\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Python Framework Loading...\n");
|
||||||
|
|
||||||
if (!Py_IsInitialized()) {
|
if (!Py_IsInitialized()) {
|
||||||
|
@ -305,6 +276,13 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_python_load)
|
||||||
PyEval_ReleaseLock();
|
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 */
|
/* indicate that the module should continue to be loaded */
|
||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue