[Freeswitch-svn] [commit] r3585 - in freeswitch/branches/jkr888/trunk: scripts src/mod/languages/mod_python

Freeswitch SVN jkr888 at freeswitch.org
Fri Dec 8 17:11:17 EST 2006


Author: jkr888
Date: Fri Dec  8 17:11:16 2006
New Revision: 3585

Modified:
   freeswitch/branches/jkr888/trunk/scripts/mytest.py
   freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch.py
   freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch_python.cpp
   freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch_python.h
   freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/mod_python.i
   freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/mod_python_wrap.cpp

Log:


Modified: freeswitch/branches/jkr888/trunk/scripts/mytest.py
==============================================================================
--- freeswitch/branches/jkr888/trunk/scripts/mytest.py	(original)
+++ freeswitch/branches/jkr888/trunk/scripts/mytest.py	Fri Dec  8 17:11:16 2006
@@ -1,6 +1,15 @@
 import sys, time 
 from freeswitch import *
 
+loop = 1
+
+def DTMFscanner(input, itype, buf, buflen):
+    print "input=",input
+    print "itype=",itype
+    print "buf=",buf
+    print "buflen",buflen
+    return 0
+
 print "Hello World"
 print sys.path
 print dir()
@@ -16,11 +25,14 @@
 newSession.console_clean_log("My uuid is " + uuid + "\n")
 
 newSession.answer()
+newSession.set_dtmf_callback(DTMFscanner)
+newSession.set_tts_parms("cepstral", "david")
 
 #fs_switch_ivr_session_transfer(session, "1234", "XML", "default")
 newSession.play_file("/root/test.gsm", "")
 
 #fs_switch_ivr_speak_text2(session, "cepstral", "david", "<break time='1s' />Welcome to my first python scripts running from <emphasis level='strong'>free switch </emphasis>application.")
+newSession.speak_text("The first of Europe's gamers got their hands on Nintendo's new video-game console on Friday after stores across the continent opened their doors at midnight to end die-hard fans long wait for a Wii.") 
 
 #fs_switch_ivr_speak_text(session, 
 #                "cepstral",

Modified: freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch.py
==============================================================================
--- freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch.py	(original)
+++ freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch.py	Fri Dec  8 17:11:16 2006
@@ -63,6 +63,8 @@
     def set_state(*args): return _freeswitch.SessionContainer_set_state(*args)
     def play_file(*args): return _freeswitch.SessionContainer_play_file(*args)
     def set_dtmf_callback(*args): return _freeswitch.SessionContainer_set_dtmf_callback(*args)
+    def speak_text(*args): return _freeswitch.SessionContainer_speak_text(*args)
+    def set_tts_parms(*args): return _freeswitch.SessionContainer_set_tts_parms(*args)
 
 class SessionContainerPtr(SessionContainer):
     def __init__(self, this):

Modified: freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch_python.cpp
==============================================================================
--- freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch_python.cpp	(original)
+++ freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch_python.cpp	Fri Dec  8 17:11:16 2006
@@ -1,9 +1,13 @@
 #include "freeswitch_python.h"
 
+void *globalDTMFCallbackFunction;
+
 SessionContainer::SessionContainer(char *nuuid)
 {
     uuid = nuuid;
     dtmfCallbackFunction = NULL;
+    tts_name = NULL;
+    voice_name = NULL;
     if ((session = switch_core_session_locate(uuid))) {
         switch_core_session_rwunlock(session);
         channel = switch_core_session_get_channel(session);
@@ -74,7 +78,7 @@
         status = switch_ivr_play_file(session, NULL, file, timer_name, NULL, NULL, 0);
     } 
     else {
-        globalDTMFCallBackFunction = dtmfCallbackFunction;
+        globalDTMFCallbackFunction = dtmfCallbackFunction;
         status = switch_ivr_play_file(session, NULL, file, timer_name, PythonDTMFCallback, NULL, 0);
     }
 
@@ -93,3 +97,23 @@
     }
 }
 
+int SessionContainer::speak_text(char *text)
+{
+    switch_status_t status;
+
+    if (!dtmfCallbackFunction) {
+        status = switch_ivr_speak_text(session, tts_name, voice_name, NULL, 0, NULL, text, NULL, 0);
+    }
+    else {
+        globalDTMFCallbackFunction = dtmfCallbackFunction;
+        status = switch_ivr_speak_text(session, tts_name, voice_name, NULL, 0, PythonDTMFCallback, text, NULL, 0);
+    }
+
+    return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
+}
+
+void SessionContainer::set_tts_parms(char *tts_name_p, char *voice_name_p)
+{
+    tts_name = tts_name_p;
+    voice_name = voice_name_p;
+}

Modified: freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch_python.h
==============================================================================
--- freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch_python.h	(original)
+++ freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/freeswitch_python.h	Fri Dec  8 17:11:16 2006
@@ -1,3 +1,6 @@
+#ifndef FREESWITCH_PYTHON_H 
+#define FREESWITCH_PYTHON_H
+
 #include <Python.h>
 
 #ifdef __cplusplus
@@ -6,7 +9,7 @@
 
 #include <switch.h>
 
-extern void *globalDTMFCallBackFunction = NULL;
+extern void *globalDTMFCallbackFunction;
 extern switch_status_t PythonDTMFCallback(switch_core_session *session, 
                                     void *input, 
                                     switch_input_type_t itype,
@@ -19,6 +22,8 @@
         switch_channel_t *channel;
         char *uuid;
         PyObject *dtmfCallbackFunction;
+        char *tts_name;
+        char *voice_name;
     public:
         SessionContainer(char *uuid);
         ~SessionContainer();
@@ -32,6 +37,8 @@
         void set_state(char *state);
         int  play_file(char *file, char *timer_name);
         void set_dtmf_callback(PyObject *pyfunc);
+        int  speak_text(char *text);
+        void set_tts_parms(char *tts_name, char *voice_name);
     protected:
 };
 
@@ -39,3 +46,4 @@
 }
 #endif
 
+#endif

Modified: freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/mod_python.i
==============================================================================
--- freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/mod_python.i	(original)
+++ freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/mod_python.i	Fri Dec  8 17:11:16 2006
@@ -7,7 +7,7 @@
 
 %{
 
-extern switch_status_t PythonDTMFCallback(switch_core_session_t *session, 
+switch_status_t PythonDTMFCallback(switch_core_session_t *session, 
                                         void *input, 
                                         switch_input_type_t itype, 
                                         void *buf, 
@@ -17,7 +17,7 @@
    PyObject *result;
    switch_status_t dres = SWITCH_STATUS_FALSE;
    
-   func = (PyObject *) globalDTMFCallBackFunction;               // Get Python function
+   func = (PyObject *) globalDTMFCallbackFunction;               // Get Python function
    arglist = Py_BuildValue("(sisi)",input,itype,buf,buflen);             // Build argument list
    result = PyEval_CallObject(func,arglist);     // Call Python
    Py_DECREF(arglist);                           // Trash arglist

Modified: freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/mod_python_wrap.cpp
==============================================================================
--- freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/mod_python_wrap.cpp	(original)
+++ freeswitch/branches/jkr888/trunk/src/mod/languages/mod_python/mod_python_wrap.cpp	Fri Dec  8 17:11:16 2006
@@ -1605,7 +1605,7 @@
 
 
 
-extern switch_status_t PythonDTMFCallback(switch_core_session_t *session, 
+switch_status_t PythonDTMFCallback(switch_core_session_t *session, 
                                         void *input, 
                                         switch_input_type_t itype, 
                                         void *buf, 
@@ -1615,7 +1615,7 @@
    PyObject *result;
    switch_status_t dres = SWITCH_STATUS_FALSE;
    
-   func = (PyObject *) globalDTMFCallBackFunction;               // Get Python function
+   func = (PyObject *) globalDTMFCallbackFunction;               // Get Python function
    arglist = Py_BuildValue("(sisi)",input,itype,buf,buflen);             // Build argument list
    result = PyEval_CallObject(func,arglist);     // Call Python
    Py_DECREF(arglist);                           // Trash arglist
@@ -1630,24 +1630,24 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-static int _wrap_globalDTMFCallBackFunction_set(PyObject *_val) {
+static int _wrap_globalDTMFCallbackFunction_set(PyObject *_val) {
     {
         void * temp;
         if ((SWIG_ConvertPtr(_val, static_cast<void ** >(&temp), 0,
         SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN)) == -1) {
-            SWIG_append_errmsg("C/C++ variable 'globalDTMFCallBackFunction'");
+            SWIG_append_errmsg("C/C++ variable 'globalDTMFCallbackFunction'");
             return 1;
         }
-        globalDTMFCallBackFunction = (void *) temp;
+        globalDTMFCallbackFunction = (void *) temp;
     }
     return 0;
 }
 
 
-static PyObject *_wrap_globalDTMFCallBackFunction_get(void) {
+static PyObject *_wrap_globalDTMFCallbackFunction_get(void) {
     PyObject *pyobj = NULL;
     
-    pyobj = SWIG_NewPointerObj((void *)(globalDTMFCallBackFunction), SWIGTYPE_p_void, 0);
+    pyobj = SWIG_NewPointerObj((void *)(globalDTMFCallbackFunction), SWIGTYPE_p_void, 0);
     return pyobj;
 }
 
@@ -1973,6 +1973,58 @@
 }
 
 
+static PyObject *_wrap_SessionContainer_speak_text(PyObject *, PyObject *args) {
+    PyObject *resultobj = NULL;
+    SessionContainer *arg1 = (SessionContainer *) 0 ;
+    char *arg2 = (char *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OO:SessionContainer_speak_text",&obj0,&obj1)) goto fail;
+    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_SessionContainer, 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)(arg1)->speak_text(arg2);
+    
+    {
+        resultobj = SWIG_From_int(static_cast<int >(result)); 
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_SessionContainer_set_tts_parms(PyObject *, PyObject *args) {
+    PyObject *resultobj = NULL;
+    SessionContainer *arg1 = (SessionContainer *) 0 ;
+    char *arg2 = (char *) 0 ;
+    char *arg3 = (char *) 0 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    PyObject * obj2 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OOO:SessionContainer_set_tts_parms",&obj0,&obj1,&obj2)) goto fail;
+    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_SessionContainer, 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;
+    }
+    (arg1)->set_tts_parms(arg2,arg3);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject * SessionContainer_swigregister(PyObject *, PyObject *args) {
     PyObject *obj;
     if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
@@ -1994,6 +2046,8 @@
 	 { (char *)"SessionContainer_set_state", _wrap_SessionContainer_set_state, METH_VARARGS, NULL},
 	 { (char *)"SessionContainer_play_file", _wrap_SessionContainer_play_file, METH_VARARGS, NULL},
 	 { (char *)"SessionContainer_set_dtmf_callback", _wrap_SessionContainer_set_dtmf_callback, METH_VARARGS, NULL},
+	 { (char *)"SessionContainer_speak_text", _wrap_SessionContainer_speak_text, METH_VARARGS, NULL},
+	 { (char *)"SessionContainer_set_tts_parms", _wrap_SessionContainer_set_tts_parms, METH_VARARGS, NULL},
 	 { (char *)"SessionContainer_swigregister", SessionContainer_swigregister, METH_VARARGS, NULL},
 	 { NULL, NULL, 0, NULL }
 };
@@ -2484,6 +2538,6 @@
     SWIG_InstallConstants(d,swig_const_table);
     
     PyDict_SetItemString(d,(char*)"cvar", SWIG_globals);
-    SWIG_addvarlink(SWIG_globals,(char*)"globalDTMFCallBackFunction",_wrap_globalDTMFCallBackFunction_get, _wrap_globalDTMFCallBackFunction_set);
+    SWIG_addvarlink(SWIG_globals,(char*)"globalDTMFCallbackFunction",_wrap_globalDTMFCallbackFunction_get, _wrap_globalDTMFCallbackFunction_set);
 }
 



More information about the Freeswitch-svn mailing list