Author: gmaruzz Date: Tue Feb 10 17:46:42 2009 New Revision: 11737 Log: skypiax: * wait for all interfaces to be connected to Skype client AND identified the correct client on cygwin Modified: freeswitch/branches/gmaruzz/mod_skypiax/asterisk/chan_skypiax.c freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c Modified: freeswitch/branches/gmaruzz/mod_skypiax/asterisk/chan_skypiax.c ============================================================================== --- freeswitch/branches/gmaruzz/mod_skypiax/asterisk/chan_skypiax.c (original) +++ freeswitch/branches/gmaruzz/mod_skypiax/asterisk/chan_skypiax.c Tue Feb 10 17:46:42 2009 @@ -783,6 +783,7 @@ struct ast_config *cfg; struct skypiax_pvt *tmp; struct skypiax_pvt *p = NULL; + struct skypiax_pvt *p2 = NULL; #ifdef ASTERISK_VERSION_1_6 struct ast_flags config_flags = { 0 }; #endif /* ASTERISK_VERSION_1_6 */ @@ -857,6 +858,28 @@ ERRORA("skypiax_restart_monitor failed, BAD\n", SKYPIAX_P_LOG); return -1; } + /* go through the interfaces list (skypiax_iflist) WITHOUT locking */ + p = skypiax_iflist; + while (p) { + int i; + /* for each interface in list */ + p2 = p->next; + NOTICA("STARTING interface %s, please be patient\n", SKYPIAX_P_LOG, p->name); + i=0; + while (p->SkypiaxHandles.api_connected == 0 && running && i < 60000) { // 60sec FIXME + usleep(1000); + i++; + } + if (p->SkypiaxHandles.api_connected){ + NOTICA("Interface %s is now STARTED\n", SKYPIAX_P_LOG, p->name); + } else { + ERRORA("Interface %s FAILED to start\n", SKYPIAX_P_LOG, p->name); + running = 0; + return -1; + } + /* next one, please */ + p = p2; + } return 0; } @@ -1832,7 +1855,6 @@ #endif - NOTICA("Here\n", SKYPIAX_P_LOG); return 0; } int outbound_channel_answered(private_t *p) { Modified: freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c ============================================================================== --- freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c (original) +++ freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c Tue Feb 10 17:46:42 2009 @@ -82,7 +82,7 @@ WARNINGA("Skype MSG without spaces: %s\n", SKYPIAX_P_LOG, message); } if (!strcasecmp(message, "ERROR")) { - WARNINGA("Skype got ERROR: |||%s|||\n", SKYPIAX_P_LOG, message); + DEBUGA_SKYPE("Skype got ERROR: |||%s|||\n", SKYPIAX_P_LOG, message); tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED; DEBUGA_SKYPE("skype_call now is DOWN\n", SKYPIAX_P_LOG); tech_pvt->skype_call_id[0] = '\0'; @@ -1062,7 +1062,7 @@ (WPARAM) tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, 0) != 0) { tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle = tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle; - while (1) { + while (running) { MSG oMessage; if (!running) break;