From 12f01067c56bd00d08952f32de9912bed6bcbb1c Mon Sep 17 00:00:00 2001 From: Brian West Date: Thu, 14 Aug 2008 17:35:46 +0000 Subject: [PATCH] fix lua originate git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9297 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/languages/mod_lua/freeswitch_lua.cpp | 11 ++++++++--- src/mod/languages/mod_lua/freeswitch_lua.h | 2 +- src/mod/languages/mod_lua/mod_lua_wrap.cpp | 5 +++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/mod/languages/mod_lua/freeswitch_lua.cpp b/src/mod/languages/mod_lua/freeswitch_lua.cpp index 4a23b9b4de..44238757be 100644 --- a/src/mod/languages/mod_lua/freeswitch_lua.cpp +++ b/src/mod/languages/mod_lua/freeswitch_lua.cpp @@ -59,10 +59,15 @@ void Session::setLUA(lua_State * state) } -void Session::originate(CoreSession *a_leg_session, char *dest, int timeout) +int Session::originate(CoreSession *a_leg_session, char *dest, int timeout) { - CoreSession::originate(a_leg_session, dest, timeout); - setLUA(L); + int x = CoreSession::originate(a_leg_session, dest, timeout); + + if (x) { + setLUA(L); + } + + return x; } lua_State *Session::getLUA() diff --git a/src/mod/languages/mod_lua/freeswitch_lua.h b/src/mod/languages/mod_lua/freeswitch_lua.h index ad5f37697c..b992bd62a8 100644 --- a/src/mod/languages/mod_lua/freeswitch_lua.h +++ b/src/mod/languages/mod_lua/freeswitch_lua.h @@ -33,7 +33,7 @@ class Session : public CoreSession { void setInputCallback(char *cbfunc, char *funcargs = NULL); void setHangupHook(char *func, char *arg = NULL); bool ready(); - void originate(CoreSession *a_leg_session, char *dest, int timeout); + int originate(CoreSession *a_leg_session, char *dest, int timeout); char *cb_function; char *cb_arg; diff --git a/src/mod/languages/mod_lua/mod_lua_wrap.cpp b/src/mod/languages/mod_lua/mod_lua_wrap.cpp index 0b3e0d2c08..c13d3140fb 100644 --- a/src/mod/languages/mod_lua/mod_lua_wrap.cpp +++ b/src/mod/languages/mod_lua/mod_lua_wrap.cpp @@ -7438,6 +7438,7 @@ static int _wrap_Session_originate(lua_State* L) { CoreSession *arg2 = (CoreSession *) 0 ; char *arg3 = (char *) 0 ; int arg4 ; + int result; SWIG_check_num_args("originate",4,4) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("originate",1,"LUA::Session *"); @@ -7456,9 +7457,9 @@ static int _wrap_Session_originate(lua_State* L) { arg3 = (char *)lua_tostring(L, 3); arg4 = (int)lua_tonumber(L, 4); - (arg1)->originate(arg2,arg3,arg4); + result = (int)(arg1)->originate(arg2,arg3,arg4); SWIG_arg=0; - + lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail;