Revision
17162
Author
mikej
Date
2010-04-01 15:15:19 -0500 (Thu, 01 Apr 2010)

Log Message

skypopen: making XEvents to works when EARLYMEDIA, and correctly manage threads death

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/endpoints/mod_skypopen/mod_skypopen.c (17161 => 17162)


--- freeswitch/trunk/src/mod/endpoints/mod_skypopen/mod_skypopen.c	2010-04-01 20:15:11 UTC (rev 17161)
+++ freeswitch/trunk/src/mod/endpoints/mod_skypopen/mod_skypopen.c	2010-04-01 20:15:19 UTC (rev 17162)
@@ -1191,6 +1191,7 @@
 			}
 		}
 	}
+	tech_pvt->skypopen_signaling_thread=NULL;
 	DEBUGA_SKYPE("EXITING\n", SKYPOPEN_P_LOG);
 	return NULL;
 }
@@ -1703,6 +1704,8 @@
 				switch_file_write(tech_pvt->SkypopenHandles.fdesc[1], "sciutati", &howmany);	// let's the controldev_thread die
 
 #else /* WIN32 */
+				skypopen_signaling_write(tech_pvt, "DIE");
+				switch_sleep(10000);
 				howmany = write(tech_pvt->SkypopenHandles.fdesc[1], "sciutati", howmany);
 #endif /* WIN32 */
 			}

Modified: freeswitch/trunk/src/mod/endpoints/mod_skypopen/skypopen_protocol.c (17161 => 17162)


--- freeswitch/trunk/src/mod/endpoints/mod_skypopen/skypopen_protocol.c	2010-04-01 20:15:11 UTC (rev 17161)
+++ freeswitch/trunk/src/mod/endpoints/mod_skypopen/skypopen_protocol.c	2010-04-01 20:15:19 UTC (rev 17162)
@@ -584,6 +584,7 @@
 						skypopen_sleep(1000);
 						sprintf(msg_to_skype, "ALTER CALL %s SET_INPUT PORT=\"%d\"", id, tech_pvt->tcp_cli_port);
 						skypopen_signaling_write(tech_pvt, msg_to_skype);
+						skypopen_sleep(1000);
 						sprintf(msg_to_skype, "#output ALTER CALL %s SET_OUTPUT PORT=\"%d\"", id, tech_pvt->tcp_srv_port);
 						skypopen_signaling_write(tech_pvt, msg_to_skype);
 
@@ -1408,6 +1409,7 @@
 			win32_DeInitialize_DestroyWindowClass(tech_pvt);
 		}
 	}
+	tech_pvt->skypopen_api_thread=NULL;
 	DEBUGA_SKYPE("EXITING\n", SKYPOPEN_P_LOG);
 	return NULL;
 }
@@ -1707,8 +1709,9 @@
 	} else {
 		ERRORA("Skype is not running, maybe crashed. Please run/restart Skype and relaunch Skypopen\n", SKYPOPEN_P_LOG);
 		running = 0;
-		return NULL;
 	}
+	tech_pvt->skypopen_api_thread=NULL;
+	NOTICA("EXITING\n", SKYPOPEN_P_LOG);
 	return NULL;
 
 }