Revision
14739
Author
anthm
Date
2009-09-02 11:24:00 -0500 (Wed, 02 Sep 2009)

Log Message

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

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/languages/mod_lua/mod_lua.cpp (14738 => 14739)


--- freeswitch/trunk/src/mod/languages/mod_lua/mod_lua.cpp	2009-09-02 15:40:01 UTC (rev 14738)
+++ freeswitch/trunk/src/mod/languages/mod_lua/mod_lua.cpp	2009-09-02 16:24:00 UTC (rev 14739)
@@ -386,8 +386,7 @@
 		return;
 	}
 
-	snprintf(code, sizeof(code), "~session = freeswitch.Session(\"%s\");", switch_core_session_get_uuid(session));
-	error = lua_parse_and_execute(L, code);
+	mod_lua_conjure_session(L, session, "session", 1);
 
 	mycmd = strdup((char *) data);
 	switch_assert(mycmd);
@@ -425,6 +424,11 @@
 
 		mycmd = strdup(cmd);
 		switch_assert(mycmd);
+
+		if (session) {
+			mod_lua_conjure_session(L, session, "session", 1);
+		}
+
 		mod_lua_conjure_stream(L, stream, "stream", 1);
 
 		if (stream->param_event) {

Modified: freeswitch/trunk/src/mod/languages/mod_lua/mod_lua_extra.c (14738 => 14739)


--- freeswitch/trunk/src/mod/languages/mod_lua/mod_lua_extra.c	2009-09-02 15:40:01 UTC (rev 14738)
+++ freeswitch/trunk/src/mod/languages/mod_lua/mod_lua_extra.c	2009-09-02 16:24:00 UTC (rev 14739)
@@ -1,3 +1,5 @@
+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)
 {
 	Event *result = new Event(event);
@@ -14,5 +16,14 @@
 }
 
 
+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

Modified: freeswitch/trunk/src/mod/languages/mod_lua/mod_lua_extra.h (14738 => 14739)


--- freeswitch/trunk/src/mod/languages/mod_lua/mod_lua_extra.h	2009-09-02 15:40:01 UTC (rev 14738)
+++ freeswitch/trunk/src/mod/languages/mod_lua/mod_lua_extra.h	2009-09-02 16:24:00 UTC (rev 14739)
@@ -4,6 +4,7 @@
 
 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_session(lua_State * L, switch_core_session_t *session, const char *name, int destroy_me);
 
 SWITCH_END_EXTERN_C
 #endif