[Freeswitch-branches] [commit] r10284 - freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax

Freeswitch SVN gmaruzz at freeswitch.org
Fri Nov 7 11:42:18 PST 2008


Author: gmaruzz
Date: Fri Nov  7 04:39:44 2008
New Revision: 10284

Modified:
   freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c

Log:
skypiax: gets X11 DISPLAY from config file

Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c
==============================================================================
--- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c	(original)
+++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c	Fri Nov  7 04:39:44 2008
@@ -2336,6 +2336,8 @@
 	char fail_dial_regex[256];
 	char hold_music[256];
 	char type[256];
+	char X11_display[256];
+	struct AsteriskHandles AsteriskHandlesAst;
 };
 
 typedef struct skypiax_config skypiax_config_t;
@@ -2730,7 +2732,7 @@
 	/*.receive_event */ channel_receive_event
 };
 #define SKYPE_THREAD
-  struct AsteriskHandles ciapa;
+  //struct AsteriskHandles ciapa;
 #ifdef SKYPE_THREAD
 #define SKYPE_X11_BUF_SIZE 512
 Window skype_win = (Window) - 1;
@@ -2866,19 +2868,17 @@
 static void *SWITCH_THREAD_FUNC do_skype_thread(switch_thread_t *thread, void *data)
 {
 
-//  struct skypiax_pvt *p;
+  struct skypiax_config *p;
   struct AsteriskHandles *AsteriskHandlesAst;
   char buf[SKYPE_X11_BUF_SIZE];
   Display *disp = NULL;
   Window root = -1;
   Window win = -1;
 
-  /*
   p = data;
 
-  if (option_debug > 10) {
     DEBUGA_PBX("ENTERING FUNC\n", SKYPIAX_P_LOG);
-  }
+/*
   if (pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL)) {
     ERRORA("Unable to set cancel type to deferred\n", SKYPIAX_P_LOG);
     if (option_debug > 10) {
@@ -2886,16 +2886,17 @@
     }
     return NULL;
   }
+*/
 
   AsteriskHandlesAst = &p->AsteriskHandlesAst;
-*/
-  AsteriskHandlesAst = &ciapa;
-  disp = XOpenDisplay(getenv("DISPLAY"));
+  //AsteriskHandlesAst = &ciapa;
+  //disp = XOpenDisplay(getenv("DISPLAY"));
+  disp = XOpenDisplay(p->X11_display);
   if (!disp) {
-	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot open X Display, exiting skype thread\n");
+	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot open X Display '%s', exiting skype thread\n", p->X11_display);
     return NULL;
   } else {
-	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "X Display opened\n");
+	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "X Display '%s' opened\n", p->X11_display);
   }
 
   int xfd;
@@ -3076,6 +3077,7 @@
 			char *hold_music = NULL;
 			char *fail_dial_regex = NULL;
 			char *enable_callerid = "true";
+			char *X11_display = NULL;
 
 			uint32_t span_id = 0, to = 0, max = 0;
 			
@@ -3099,6 +3101,8 @@
 					fail_dial_regex = val;
 				} else if (!strcasecmp(var, "hold-music")) {
 					hold_music = val;
+				} else if (!strcasecmp(var, "X11-display") || !strcasecmp(var, "X11_display")) {
+					X11_display = val;
 				} else if (!strcasecmp(var, "max_digits") || !strcasecmp(var, "max-digits")) {
 					max_digits = val;
 				} else if (!strcasecmp(var, "hotline")) {
@@ -3106,7 +3110,12 @@
 				} 
 				
 			}
-				
+
+			if (!X11_display) {
+				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "span missing REQUIRED param 'X11_display'\n");
+				continue;
+			}
+			
 			if (!id) {
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "span missing REQUIRED param 'id'\n");
 				continue;
@@ -3151,8 +3160,10 @@
 				} else {
 					switch_set_string(SKYPIAX_CONFIGS[span_id].name, "N/A");
 				}
+				switch_set_string(SKYPIAX_CONFIGS[span_id].X11_display, X11_display);
 				switch_set_string(SKYPIAX_CONFIGS[span_id].context, context);
 				switch_set_string(SKYPIAX_CONFIGS[span_id].dialplan, dialplan);
+				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d SKYPIAX_CONFIGS[span_id].X11_display=%s\n", span_id, SKYPIAX_CONFIGS[span_id].X11_display);
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d SKYPIAX_CONFIGS[span_id].name=%s\n", span_id, SKYPIAX_CONFIGS[span_id].name);
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d SKYPIAX_CONFIGS[span_id].context=%s\n", span_id, SKYPIAX_CONFIGS[span_id].context);
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d SKYPIAX_CONFIGS[span_id].dialplan=%s\n", span_id, SKYPIAX_CONFIGS[span_id].dialplan);
@@ -3179,6 +3190,7 @@
 		for(i=0; i < SKYPIAX_MAX_INTERFACES; i++) {
 			if(strlen(SKYPIAX_CONFIGS[i].name)) {
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "i=%d SKYPIAX_CONFIGS[i].span_id=%s\n", i, SKYPIAX_CONFIGS[i].span_id);
+				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "i=%d SKYPIAX_CONFIGS[i].X11_display=%s\n", i, SKYPIAX_CONFIGS[i].X11_display);
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "i=%d SKYPIAX_CONFIGS[i].name=%s\n", i, SKYPIAX_CONFIGS[i].name);
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "i=%d SKYPIAX_CONFIGS[i].context=%s\n", i, SKYPIAX_CONFIGS[i].context);
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "i=%d SKYPIAX_CONFIGS[i].dialplan=%s\n", i, SKYPIAX_CONFIGS[i].dialplan);
@@ -3188,7 +3200,6 @@
 
 	switch_xml_free(xml);
 
-	//do_skype_thread(NULL);
 
 //static void unicall_thread_launch(uc_t *uc)
 
@@ -3206,6 +3217,7 @@
   } else {
 	DEBUGA_SKYPE("Initialized XInitThreads!\n", SKYPIAX_P_LOG);
   }
+usleep(10000); //FIXME
 #endif /* _WINDOWS_ */
 
 



More information about the Freeswitch-branches mailing list