提交 4bfa2a21 authored 作者: Anthony Minessale's avatar Anthony Minessale

add conjure-session code and make session available in api commands

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14739 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 33c3ad8d
...@@ -386,8 +386,7 @@ SWITCH_STANDARD_APP(lua_function) ...@@ -386,8 +386,7 @@ SWITCH_STANDARD_APP(lua_function)
return; return;
} }
snprintf(code, sizeof(code), "~session = freeswitch.Session(\"%s\");", switch_core_session_get_uuid(session)); mod_lua_conjure_session(L, session, "session", 1);
error = lua_parse_and_execute(L, code);
mycmd = strdup((char *) data); mycmd = strdup((char *) data);
switch_assert(mycmd); switch_assert(mycmd);
...@@ -425,6 +424,11 @@ SWITCH_STANDARD_API(lua_api_function) ...@@ -425,6 +424,11 @@ SWITCH_STANDARD_API(lua_api_function)
mycmd = strdup(cmd); mycmd = strdup(cmd);
switch_assert(mycmd); switch_assert(mycmd);
if (session) {
mod_lua_conjure_session(L, session, "session", 1);
}
mod_lua_conjure_stream(L, stream, "stream", 1); mod_lua_conjure_stream(L, stream, "stream", 1);
if (stream->param_event) { if (stream->param_event) {
......
using namespace LUA;
SWITCH_BEGIN_EXTERN_C void mod_lua_conjure_event(lua_State * L, switch_event_t *event, const char *name, int destroy_me) SWITCH_BEGIN_EXTERN_C void mod_lua_conjure_event(lua_State * L, switch_event_t *event, const char *name, int destroy_me)
{ {
Event *result = new Event(event); Event *result = new Event(event);
...@@ -14,5 +16,14 @@ void mod_lua_conjure_stream(lua_State * L, switch_stream_handle_t *stream, const ...@@ -14,5 +16,14 @@ void mod_lua_conjure_stream(lua_State * L, switch_stream_handle_t *stream, const
} }
void mod_lua_conjure_session(lua_State * L, switch_core_session_t *session, const char *name, int destroy_me)
{
Session *result = new Session(session);
SWIG_NewPointerObj(L, result, SWIGTYPE_p_CoreSession, destroy_me);
lua_setglobal(L, name);
}
SWITCH_END_EXTERN_C SWITCH_END_EXTERN_C
...@@ -4,6 +4,7 @@ SWITCH_BEGIN_EXTERN_C ...@@ -4,6 +4,7 @@ SWITCH_BEGIN_EXTERN_C
void mod_lua_conjure_event(lua_State *L, switch_event_t *event, const char *name, int destroy_me); void mod_lua_conjure_event(lua_State *L, switch_event_t *event, const char *name, int destroy_me);
void mod_lua_conjure_stream(lua_State *L, switch_stream_handle_t *stream, const char *name, int destroy_me); void mod_lua_conjure_stream(lua_State *L, switch_stream_handle_t *stream, const char *name, int destroy_me);
void mod_lua_conjure_session(lua_State * L, switch_core_session_t *session, const char *name, int destroy_me);
SWITCH_END_EXTERN_C SWITCH_END_EXTERN_C
#endif #endif
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论