From dea13352a7bc13c21fd9f10ee6100a176d545d14 Mon Sep 17 00:00:00 2001 From: Giovanni Maruzzelli Date: Thu, 25 Feb 2010 18:38:41 +0000 Subject: [PATCH] skypiax: cleaning git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16826 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_skypiax/mod_skypiax.c | 260 +------------------- 1 file changed, 7 insertions(+), 253 deletions(-) diff --git a/src/mod/endpoints/mod_skypiax/mod_skypiax.c b/src/mod/endpoints/mod_skypiax/mod_skypiax.c index fe4427e9d7..61b6f413c2 100644 --- a/src/mod/endpoints/mod_skypiax/mod_skypiax.c +++ b/src/mod/endpoints/mod_skypiax/mod_skypiax.c @@ -36,7 +36,6 @@ #include "skypiax.h" #define MDL_CHAT_PROTO "skype" -#define TIMER_WRITE #ifdef WIN32 /***************/ @@ -95,10 +94,8 @@ SWITCH_STANDARD_API(skypiax_function); SWITCH_STANDARD_API(skypiax_chat_function); #define SKYPIAX_CHAT_SYNTAX "interface_name remote_skypename TEXT" -/* BEGIN: Changes here */ #define FULL_RELOAD 0 #define SOFT_RELOAD 1 -/* END: Changes heres */ char *interface_status[] = { /* should match SKYPIAX_STATE_xxx in skypiax.h */ "IDLE", @@ -147,23 +144,12 @@ char *skype_callflow[] = { /* should match CALLFLOW_XXX in skypiax.h */ static struct { int debug; - //char *ip; - //int port; char *dialplan; char *destination; char *context; - //char *codec_string; - //char *codec_order[SWITCH_MAX_CODECS]; - //int codec_order_last; - //char *codec_rates_string; - //char *codec_rates[SWITCH_MAX_CODECS]; - //int codec_rates_last; - //unsigned int flags; - //int fd; int calls; int real_interfaces; int next_interface; - //char hold_music[256]; private_t SKYPIAX_INTERFACES[SKYPIAX_MAX_INTERFACES]; switch_mutex_t *mutex; private_t *sk_console; @@ -177,13 +163,9 @@ int running = 0; SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_dialplan, globals.dialplan); SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_context, globals.context); SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_destination, globals.destination); -//SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_codec_string, globals.codec_string); -//SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_codec_rates_string, globals.codec_rates_string); -/* BEGIN: Changes here */ static switch_status_t interface_exists(char *the_interface); static switch_status_t remove_interface(char *the_interface); -/* END: Changes here */ static switch_status_t channel_on_init(switch_core_session_t *session); static switch_status_t channel_on_hangup(switch_core_session_t *session); @@ -258,25 +240,6 @@ switch_status_t skypiax_tech_init(private_t * tech_pvt, switch_core_session_t *s ERRORA("skypiax_codec FAILED\n", SKYPIAX_P_LOG); return SWITCH_STATUS_FALSE; } -#if 0 - if (switch_core_timer_init(&tech_pvt->timer_read, "soft", 20, tech_pvt->read_codec.implementation->samples_per_packet, skypiax_module_pool) != - SWITCH_STATUS_SUCCESS) { - ERRORA("setup timer failed\n", SKYPIAX_P_LOG); - return SWITCH_STATUS_FALSE; - } - - switch_core_timer_sync(&tech_pvt->timer_read); - -#ifdef TIMER_WRITE - if (switch_core_timer_init(&tech_pvt->timer_write, "soft", 10, tech_pvt->write_codec.implementation->samples_per_packet, skypiax_module_pool) != - SWITCH_STATUS_SUCCESS) { - ERRORA("setup timer failed\n", SKYPIAX_P_LOG); - return SWITCH_STATUS_FALSE; - } - - switch_core_timer_sync(&tech_pvt->timer_write); -#endif // TIMER_WRITE -#endif dtmf_rx_init(&tech_pvt->dtmf_state, NULL, NULL); dtmf_rx_parms(&tech_pvt->dtmf_state, 0, 10, 10, -99); @@ -286,7 +249,6 @@ switch_status_t skypiax_tech_init(private_t * tech_pvt, switch_core_session_t *s return SWITCH_STATUS_SUCCESS; } -/* BEGIN: Changes here */ static switch_status_t interface_exists(char *the_interface) { int i; @@ -333,8 +295,6 @@ static switch_status_t remove_interface(char *the_interface) private_t *tech_pvt = NULL; switch_status_t status; - //running = 0; - if (*the_interface == '#') { /* remove by interface id or interface name */ the_interface++; @@ -376,6 +336,8 @@ static switch_status_t remove_interface(char *the_interface) if (globals.SKYPIAX_INTERFACES[interface_id].skypiax_signaling_thread) { #ifdef WIN32 + skypiax_signaling_write(tech_pvt, "DIE"); + switch_sleep(10000); switch_file_write(tech_pvt->SkypiaxHandles.fdesc[1], "sciutati", &howmany); // let's the controldev_thread die #else /* WIN32 */ howmany = write(tech_pvt->SkypiaxHandles.fdesc[1], "sciutati", howmany); @@ -432,11 +394,9 @@ static switch_status_t remove_interface(char *the_interface) DEBUGA_SKYPE("interface '%s' deleted successfully\n", SKYPIAX_P_LOG, the_interface); globals.SKYPIAX_INTERFACES[interface_id].running = 1; end: - //running = 1; return SWITCH_STATUS_SUCCESS; } -/* END: Changes here */ /* State methods they get called when the state changes to the specific state @@ -454,7 +414,6 @@ static switch_status_t channel_on_init(switch_core_session_t *session) channel = switch_core_session_get_channel(session); switch_assert(channel != NULL); switch_channel_set_variable(channel, "skype_user", tech_pvt->skype_user); - //ERRORA("%s CHANNEL INIT\n", SKYPIAX_P_LOG, tech_pvt->name); switch_set_flag(tech_pvt, TFLAG_IO); /* Move channel's state machine to ROUTING. This means the call is trying @@ -490,10 +449,8 @@ static switch_status_t channel_on_destroy(switch_core_session_t *session) } switch_core_timer_destroy(&tech_pvt->timer_read); -#ifdef TIMER_WRITE switch_core_timer_destroy(&tech_pvt->timer_write); -#endif // TIMER_WRITE switch_buffer_destroy(&tech_pvt->read_buffer); switch_buffer_destroy(&tech_pvt->write_buffer); @@ -535,7 +492,6 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session) switch_clear_flag(tech_pvt, TFLAG_IO); switch_clear_flag(tech_pvt, TFLAG_VOICE); - //switch_set_flag(tech_pvt, TFLAG_HANGUP); tech_pvt->interface_state = SKYPIAX_STATE_HANGUP_REQUESTED; @@ -544,19 +500,13 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session) sprintf(msg_to_skype, "ALTER CALL %s HANGUP", tech_pvt->skype_call_id); skypiax_signaling_write(tech_pvt, msg_to_skype); } - //memset(tech_pvt->session_uuid_str, '\0', sizeof(tech_pvt->session_uuid_str)); - //*tech_pvt->session_uuid_str = '\0'; if (tech_pvt->tcp_cli_thread) { switch_thread_join(&status, tech_pvt->tcp_cli_thread); } - //if(status!=SWITCH_STATUS_SUCCESS) - //ERRORA("%s cli_join HANGUP\n", SKYPIAX_P_LOG, tech_pvt->name); if (tech_pvt->tcp_srv_thread) { switch_thread_join(&status, tech_pvt->tcp_srv_thread); } - //if(status!=SWITCH_STATUS_SUCCESS) - //ERRORA("%s srv_join HANGUP\n", SKYPIAX_P_LOG, tech_pvt->name); DEBUGA_SKYPE("%s CHANNEL HANGUP\n", SKYPIAX_P_LOG, tech_pvt->name); switch_mutex_lock(globals.mutex); globals.calls--; @@ -641,7 +591,6 @@ static switch_status_t channel_kill_channel(switch_core_session_t *session, int break; case SWITCH_SIG_BREAK: DEBUGA_SKYPE("%s CHANNEL got SWITCH_SIG_BREAK\n", SKYPIAX_P_LOG, switch_channel_get_name(channel)); - //switch_set_flag(tech_pvt, TFLAG_BREAK); switch_mutex_lock(tech_pvt->flag_mutex); switch_set_flag(tech_pvt, TFLAG_BREAK); switch_mutex_unlock(tech_pvt->flag_mutex); @@ -713,12 +662,9 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch if (!switch_channel_ready(channel) || !switch_test_flag(tech_pvt, TFLAG_IO)) { ERRORA("channel not ready \n", SKYPIAX_P_LOG); - //TODO: kill the bastard return SWITCH_STATUS_FALSE; } - - if (!tech_pvt->read_buffer) { int32_t max_len = 640 * 10; @@ -726,19 +672,14 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch switch_assert(tech_pvt->read_buffer); switch_buffer_zero(tech_pvt->read_buffer); tech_pvt->begin_to_read = 1; - //switch_sleep(40000); } - - - tech_pvt->read_frame.flags = SFF_NONE; *frame = NULL; switch_core_timer_next(&tech_pvt->timer_read); - switch_mutex_lock(tech_pvt->mutex_audio_srv); if (switch_buffer_inuse(tech_pvt->read_buffer)) { bytes_read = switch_buffer_read(tech_pvt->read_buffer, tech_pvt->read_frame.data, 640); @@ -746,7 +687,6 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch } switch_mutex_unlock(tech_pvt->mutex_audio_srv); - if (!bytes_read) { //NOTICA("skypiax_audio_read Silence\n", SKYPIAX_P_LOG); memset(tech_pvt->read_frame.data, 255, SAMPLES_PER_FRAME * sizeof(short)); @@ -786,10 +726,8 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch i++; a++; } - //DEBUGA_SKYPE("a=%d i=%d\n", SKYPIAX_P_LOG, a, i); memset(digit_str, 0, sizeof(digit_str)); - //dtmf_rx(&tech_pvt->dtmf_state, (int16_t *) tech_pvt->read_frame.data,tech_pvt->read_frame.datalen/sizeof(short) ); dtmf_rx(&tech_pvt->dtmf_state, (int16_t *) frame_8_khz, 160); dtmf_rx_get(&tech_pvt->dtmf_state, digit_str, sizeof(digit_str)); @@ -820,10 +758,8 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch #endif return SWITCH_STATUS_SUCCESS; } - DEBUGA_SKYPE("CHANNEL READ no TFLAG_IO\n", SKYPIAX_P_LOG); return SWITCH_STATUS_FALSE; - } DEBUGA_SKYPE("CHANNEL READ FALSE\n", SKYPIAX_P_LOG); @@ -853,7 +789,6 @@ static switch_status_t channel_write_frame(switch_core_session_t *session, switc if (!switch_channel_ready(channel) || !switch_test_flag(tech_pvt, TFLAG_IO)) { ERRORA("channel not ready \n", SKYPIAX_P_LOG); - //TODO: kill the bastard return SWITCH_STATUS_FALSE; } #if SWITCH_BYTE_ORDER == __BIG_ENDIAN @@ -861,7 +796,6 @@ static switch_status_t channel_write_frame(switch_core_session_t *session, switc switch_swap_linear(frame->data, (int) frame->datalen / 2); } #endif - if (!tech_pvt->write_buffer) { int32_t max_len = 640 * 3; @@ -914,31 +848,21 @@ static switch_status_t channel_receive_message(switch_core_session_t *session, s case SWITCH_MESSAGE_INDICATE_ANSWER: { DEBUGA_SKYPE("MSG_ID=%d, TO BE ANSWERED!\n", SKYPIAX_P_LOG, msg->message_id); - switch_core_timer_sync(&tech_pvt->timer_read); -#ifdef TIMER_WRITE switch_core_timer_sync(&tech_pvt->timer_write); -#endif // TIMER_WRITE channel_answer_channel(session); } break; case SWITCH_MESSAGE_INDICATE_AUDIO_SYNC: DEBUGA_SKYPE("%s CHANNEL got SWITCH_MESSAGE_INDICATE_AUDIO_SYNC\n", SKYPIAX_P_LOG, switch_channel_get_name(channel)); - switch_core_timer_sync(&tech_pvt->timer_read); -#ifdef TIMER_WRITE switch_core_timer_sync(&tech_pvt->timer_write); -#endif // TIMER_WRITE break; case SWITCH_MESSAGE_INDICATE_BRIDGE: - DEBUGA_SKYPE("%s CHANNEL got SWITCH_MESSAGE_INDICATE_BRIDGE\n", SKYPIAX_P_LOG, switch_channel_get_name(channel)); - switch_core_timer_sync(&tech_pvt->timer_read); -#ifdef TIMER_WRITE switch_core_timer_sync(&tech_pvt->timer_write); -#endif // TIMER_WRITE break; default: @@ -1020,12 +944,6 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi switch_mutex_lock(globals.mutex); if (strncmp("ANY", interface_name, strlen(interface_name)) == 0 || strncmp("RR", interface_name, strlen(interface_name)) == 0) { - /* we've been asked for the "ANY" interface, let's find the first idle interface */ - //DEBUGA_SKYPE("Finding one available skype interface\n", SKYPIAX_P_LOG); - //tech_pvt = find_available_skypiax_interface(NULL); - //if (tech_pvt) - //found = 1; - //} else if (strncmp("RR", interface_name, strlen(interface_name)) == 0) { /* Find the first idle interface using Round Robin */ DEBUGA_SKYPE("Finding one available skype interface RR\n", SKYPIAX_P_LOG); tech_pvt = find_available_skypiax_interface_rr(NULL); @@ -1066,7 +984,6 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi DEBUGA_SKYPE("2 SESSION_DESTROY %s\n", SKYPIAX_P_LOG, switch_core_session_get_uuid(*new_session)); switch_core_session_destroy(new_session); switch_mutex_unlock(globals.mutex); - //return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER; return SWITCH_CAUSE_NORMAL_CIRCUIT_CONGESTION; } @@ -1077,7 +994,6 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi switch_mutex_unlock(globals.mutex); return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER; } - //switch_channel_set_variable(channel, "send_silence_when_idle", "1500"); switch_channel_set_variable(channel, "waste", "false"); if (skypiax_tech_init(tech_pvt, *new_session) != SWITCH_STATUS_SUCCESS) { ERRORA("Doh! no tech_init?\n", SKYPIAX_P_LOG); @@ -1098,8 +1014,6 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number); } - //snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number); - //snprintf(name, sizeof(name), "skypiax/%s", tech_pvt->name); switch_channel_set_name(channel, name); caller_profile = switch_caller_profile_clone(*new_session, outbound_profile); switch_channel_set_caller_profile(channel, caller_profile); @@ -1116,8 +1030,6 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi rdest = strchr(caller_profile->destination_number, '/'); *rdest++ = '\0'; - //skypiax_call(tech_pvt, rdest, 30); - switch_copy_string(tech_pvt->session_uuid_str, switch_core_session_get_uuid(*new_session), sizeof(tech_pvt->session_uuid_str)); caller_profile = tech_pvt->caller_profile; caller_profile->destination_number = rdest; @@ -1156,7 +1068,7 @@ static void *SWITCH_THREAD_FUNC skypiax_signaling_thread_func(switch_thread_t * if (res == CALLFLOW_INCOMING_HANGUP || tech_pvt->skype_callflow == CALLFLOW_INCOMING_HANGUP) { switch_core_session_t *session = NULL; switch_channel_t *channel = NULL; - //private_t *tech_pvt = NULL; + DEBUGA_SKYPE("skype call ended\n", SKYPIAX_P_LOG); if (tech_pvt) { @@ -1183,11 +1095,7 @@ static void *SWITCH_THREAD_FUNC skypiax_signaling_thread_func(switch_thread_t * *tech_pvt->initial_skype_user = '\0'; switch_mutex_unlock(globals.mutex); - //ERRORA("LET'S WAIT\n", SKYPIAX_P_LOG); switch_sleep(300000); //0.3 sec - //ERRORA("WAIT'S OVER\n", SKYPIAX_P_LOG); - //tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED; - //switch_sleep(30000); //0.03 sec switch_mutex_lock(globals.mutex); tech_pvt->skype_callflow = CALLFLOW_CALL_IDLE; tech_pvt->interface_state = SKYPIAX_STATE_IDLE; @@ -1201,9 +1109,7 @@ static void *SWITCH_THREAD_FUNC skypiax_signaling_thread_func(switch_thread_t * return NULL; } -/* BEGIN: Changes heres */ static switch_status_t load_config(int reload_type) -/* END: Changes heres */ { char *cf = "skypiax.conf"; switch_xml_t cfg, xml, global_settings, param, interfaces, myinterface; @@ -1227,19 +1133,6 @@ static switch_status_t load_config(int reload_type) DEBUGA_SKYPE("globals.debug=%d\n", SKYPIAX_P_LOG, globals.debug); globals.debug = atoi(val); DEBUGA_SKYPE("globals.debug=%d\n", SKYPIAX_P_LOG, globals.debug); -#if 0 - } else if (!strcasecmp(var, "hold-music")) { - switch_set_string(globals.hold_music, val); - DEBUGA_SKYPE("globals.hold_music=%s\n", SKYPIAX_P_LOG, globals.hold_music); - } else if (!strcmp(var, "port")) { - globals.port = atoi(val); - DEBUGA_SKYPE("globals.port=%d\n", SKYPIAX_P_LOG, globals.port); - } else if (!strcmp(var, "codec-master")) { - if (!strcasecmp(val, "us")) { - switch_set_flag(&globals, GFLAG_MY_CODEC_PREFS); - } - DEBUGA_SKYPE("codec-master globals.debug=%d\n", SKYPIAX_P_LOG, globals.debug); -#endif //0 } else if (!strcmp(var, "dialplan")) { set_global_dialplan(val); DEBUGA_SKYPE("globals.dialplan=%s\n", SKYPIAX_P_LOG, globals.dialplan); @@ -1249,16 +1142,6 @@ static switch_status_t load_config(int reload_type) } else if (!strcmp(var, "context")) { set_global_context(val); DEBUGA_SKYPE("globals.context=%s\n", SKYPIAX_P_LOG, globals.context); -#if 0 - } else if (!strcmp(var, "codec-prefs")) { - set_global_codec_string(val); - DEBUGA_SKYPE("globals.codec_string=%s\n", SKYPIAX_P_LOG, globals.codec_string); - globals.codec_order_last = switch_separate_string(globals.codec_string, ',', globals.codec_order, SWITCH_MAX_CODECS); - } else if (!strcmp(var, "codec-rates")) { - set_global_codec_rates_string(val); - DEBUGA_SKYPE("globals.codec_rates_string=%s\n", SKYPIAX_P_LOG, globals.codec_rates_string); - globals.codec_rates_last = switch_separate_string(globals.codec_rates_string, ',', globals.codec_rates, SWITCH_MAX_CODECS); -#endif //0 } } @@ -1283,8 +1166,6 @@ static switch_status_t load_config(int reload_type) char *fail_dial_regex = NULL; char *enable_callerid = "true"; char *X11_display = NULL; - //char *tcp_cli_port = "45000"; - //char *tcp_srv_port = "45001"; char *skype_user = NULL; char *report_incoming_chatmessages = "true"; char *silent_mode = "false"; @@ -1321,12 +1202,6 @@ static switch_status_t load_config(int reload_type) report_incoming_chatmessages = val; } else if (!strcasecmp(var, "silent_mode")) { silent_mode = val; -#if 0 - } else if (!strcasecmp(var, "tcp_cli_port")) { - tcp_cli_port = val; - } else if (!strcasecmp(var, "tcp_srv_port")) { - tcp_srv_port = val; -#endif //0 } else if (!strcasecmp(var, "X11-display") || !strcasecmp(var, "X11_display")) { X11_display = val; } else if (!strcasecmp(var, "max_digits") || !strcasecmp(var, "max-digits")) { @@ -1341,7 +1216,6 @@ static switch_status_t load_config(int reload_type) continue; } - /* BEGIN: Changes here */ if (reload_type == SOFT_RELOAD) { char the_interface[256]; sprintf(the_interface, "#%s", name); @@ -1350,25 +1224,12 @@ static switch_status_t load_config(int reload_type) continue; } } - /* END: Changes here */ - #ifndef WIN32 if (!X11_display) { ERRORA("interface missing REQUIRED param 'X11_display'\n", SKYPIAX_P_LOG); continue; } #endif -#if 0 - if (!tcp_cli_port) { - ERRORA("interface missing REQUIRED param 'tcp_cli_port'\n", SKYPIAX_P_LOG); - continue; - } - - if (!tcp_srv_port) { - ERRORA("interface missing REQUIRED param 'tcp_srv_port'\n", SKYPIAX_P_LOG); - continue; - } -#endif //0 if (!id) { ERRORA("interface missing REQUIRED param 'id'\n", SKYPIAX_P_LOG); continue; @@ -1428,15 +1289,7 @@ static switch_status_t load_config(int reload_type) switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].name, "N/A"); } DEBUGA_SKYPE("CONFIGURING interface_id=%d\n", SKYPIAX_P_LOG, interface_id); -#if 0 -#ifdef WIN32 - globals.SKYPIAX_INTERFACES[interface_id].tcp_cli_port = (unsigned short) atoi(tcp_cli_port); - globals.SKYPIAX_INTERFACES[interface_id].tcp_srv_port = (unsigned short) atoi(tcp_srv_port); -#else /* WIN32 */ - globals.SKYPIAX_INTERFACES[interface_id].tcp_cli_port = atoi(tcp_cli_port); - globals.SKYPIAX_INTERFACES[interface_id].tcp_srv_port = atoi(tcp_srv_port); -#endif /* WIN32 */ -#endif //0 + switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].X11_display, X11_display); switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].skype_user, skype_user); switch_set_string(globals.SKYPIAX_INTERFACES[interface_id].context, context); @@ -1464,14 +1317,6 @@ static switch_status_t load_config(int reload_type) DEBUGA_SKYPE ("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].skype_user=%s\n", SKYPIAX_P_LOG, interface_id, globals.SKYPIAX_INTERFACES[interface_id].skype_user); -#if 0 - DEBUGA_SKYPE - ("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].tcp_cli_port=%d\n", - SKYPIAX_P_LOG, interface_id, globals.SKYPIAX_INTERFACES[interface_id].tcp_cli_port); - DEBUGA_SKYPE - ("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].tcp_srv_port=%d\n", - SKYPIAX_P_LOG, interface_id, globals.SKYPIAX_INTERFACES[interface_id].tcp_srv_port); -#endif //0 DEBUGA_SKYPE("interface_id=%d globals.SKYPIAX_INTERFACES[interface_id].name=%s\n", SKYPIAX_P_LOG, interface_id, globals.SKYPIAX_INTERFACES[interface_id].name); DEBUGA_SKYPE @@ -1613,9 +1458,7 @@ static switch_status_t load_config(int reload_type) static switch_status_t chat_send(const char *proto, const char *from, const char *to, const char *subject, const char *body, const char *type, const char *hint) { - //char *user, *host, *f_user = NULL, *ffrom = NULL, *f_host = NULL, *f_resource = NULL; char *user = NULL, *host, *f_user = NULL, *f_host = NULL, *f_resource = NULL; - //mdl_profile_t *profile = NULL; private_t *tech_pvt = NULL; int i = 0, found = 0, tried = 0; char skype_msg[1024]; @@ -1648,7 +1491,6 @@ static switch_status_t chat_send(const char *proto, const char *from, const char if ((host = strchr(user, '@'))) { *host++ = '\0'; } - //if (!strcmp(proto, MDL_CHAT_PROTO)) { DEBUGA_SKYPE("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=%s, hint=%s)\n", SKYPIAX_P_LOG, proto, from, to, subject, body, type, hint ? hint : "NULL"); @@ -1685,18 +1527,6 @@ static switch_status_t chat_send(const char *proto, const char *from, const char skypiax_signaling_write(tech_pvt, skype_msg); switch_sleep(1000); } - //} else { - //FIXME don't know how to do here, let's hope this is correct - //char *p; - //ffrom = switch_mprintf("%s+%s", proto, from); - //from = ffrom; - //if ((p = strchr(from, '/'))) { - //*p = '\0'; - //} - //NOTICA("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=%s, hint=%s)\n", SKYPIAX_P_LOG, proto, from, to, subject, body, type, hint?hint:"NULL"); - //switch_core_chat_send(proto, proto, from, to, subject, body, type, hint); - //return SWITCH_STATUS_SUCCESS; - //} found = 0; @@ -1796,9 +1626,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skypiax_shutdown) #ifdef WIN32 if (SendMessage(tech_pvt->SkypiaxHandles.win32_hInit_MainWindowHandle, WM_DESTROY, 0, 0) == FALSE) { // let's the skypiax_api_thread_func die DEBUGA_SKYPE("got FALSE here, thread probably was already dead. GetLastError returned: %d\n", SKYPIAX_P_LOG, GetLastError()); - //globals.SKYPIAX_INTERFACES[interface_id].skypiax_api_thread = NULL; } -//cicopet #else if (tech_pvt->SkypiaxHandles.disp) { XEvent e; @@ -1854,8 +1682,6 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skypiax_shutdown) switch_safe_free(globals.dialplan); switch_safe_free(globals.context); switch_safe_free(globals.destination); - //switch_safe_free(globals.codec_string); - //switch_safe_free(globals.codec_rates_string); return SWITCH_STATUS_SUCCESS; } @@ -1900,7 +1726,6 @@ int dtmf_received(private_t * tech_pvt, char *value) switch_dtmf_t dtmf = { (char) value[0], switch_core_default_dtmf_duration(0) }; DEBUGA_SKYPE("received DTMF %c on channel %s\n", SKYPIAX_P_LOG, dtmf.digit, switch_channel_get_name(channel)); switch_mutex_lock(tech_pvt->flag_mutex); - //FIXME: why sometimes DTMFs from here do not seems to be get by FS? switch_channel_queue_dtmf(channel, &dtmf); switch_set_flag(tech_pvt, TFLAG_DTMF); switch_mutex_unlock(tech_pvt->flag_mutex); @@ -1919,7 +1744,7 @@ int start_audio_threads(private_t * tech_pvt) tech_pvt->begin_to_write = 0; tech_pvt->begin_to_read = 0; -#if 1 + if (switch_core_timer_init(&tech_pvt->timer_read, "soft", 20, 320, skypiax_module_pool) != SWITCH_STATUS_SUCCESS) { ERRORA("setup timer failed\n", SKYPIAX_P_LOG); return SWITCH_STATUS_FALSE; @@ -1927,17 +1752,13 @@ int start_audio_threads(private_t * tech_pvt) switch_core_timer_sync(&tech_pvt->timer_read); -#ifdef TIMER_WRITE - //if (switch_core_timer_init(&tech_pvt->timer_write, "soft", 10, 320, skypiax_module_pool) != if (switch_core_timer_init(&tech_pvt->timer_write, "soft", 20, 320, skypiax_module_pool) != SWITCH_STATUS_SUCCESS) { ERRORA("setup timer failed\n", SKYPIAX_P_LOG); return SWITCH_STATUS_FALSE; } switch_core_timer_sync(&tech_pvt->timer_write); -#endif // TIMER_WRITE -#endif switch_threadattr_create(&thd_attr, skypiax_module_pool); switch_threadattr_detach_set(thd_attr, 0); switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE); @@ -1981,7 +1802,6 @@ int new_inbound_channel(private_t * tech_pvt) switch_core_session_destroy(&session); return 0; } - //switch_channel_set_variable(channel, "send_silence_when_idle", "1500"); switch_channel_set_variable(channel, "waste", "false"); if (skypiax_tech_init(tech_pvt, session) != SWITCH_STATUS_SUCCESS) { ERRORA("Doh! no tech_init?\n", SKYPIAX_P_LOG); @@ -1994,7 +1814,6 @@ int new_inbound_channel(private_t * tech_pvt) tech_pvt->dialplan, tech_pvt->callid_name, tech_pvt->callid_number, NULL, NULL, NULL, NULL, "mod_skypiax", tech_pvt->context, tech_pvt->destination)) != 0) { char name[128]; - //switch_snprintf(name, sizeof(name), "skypiax/%s/%s", tech_pvt->name, tech_pvt->caller_profile->destination_number); switch_snprintf(name, sizeof(name), "skypiax/%s", tech_pvt->name); switch_channel_set_name(channel, name); switch_channel_set_caller_profile(channel, tech_pvt->caller_profile); @@ -2056,7 +1875,6 @@ int remote_party_is_early_media(private_t * tech_pvt) session = switch_core_session_locate(tech_pvt->session_uuid_str); } else { ERRORA("No session???\n\n\n", SKYPIAX_P_LOG); - //TODO: kill the bastard goto done; } if (session) { @@ -2064,7 +1882,6 @@ int remote_party_is_early_media(private_t * tech_pvt) switch_core_session_add_stream(session, NULL); } else { ERRORA("No session???\n", SKYPIAX_P_LOG); - //TODO: kill the bastard goto done; } if (channel) { @@ -2072,7 +1889,6 @@ int remote_party_is_early_media(private_t * tech_pvt) DEBUGA_SKYPE("skype_call: REMOTE PARTY EARLY MEDIA\n", SKYPIAX_P_LOG); } else { ERRORA("No channel???\n", SKYPIAX_P_LOG); - //TODO: kill the bastard } switch_core_session_rwunlock(session); @@ -2100,7 +1916,6 @@ int outbound_channel_answered(private_t * tech_pvt) } if (channel) { switch_channel_mark_answered(channel); - //DEBUGA_SKYPE("skype_call: %s, answered\n", SKYPIAX_P_LOG, id); } else { ERRORA("No channel???\n", SKYPIAX_P_LOG); } @@ -2117,8 +1932,6 @@ private_t *find_available_skypiax_interface_rr(private_t * tech_pvt_calling) { private_t *tech_pvt = NULL; int i; - //int num_interfaces = SKYPIAX_MAX_INTERFACES; - //int num_interfaces = globals.real_interfaces; switch_mutex_lock(globals.mutex); @@ -2130,7 +1943,6 @@ private_t *find_available_skypiax_interface_rr(private_t * tech_pvt_calling) int interface_id; interface_id = globals.next_interface; - //interface_id = interface_id < SKYPIAX_MAX_INTERFACES ? interface_id : interface_id - SKYPIAX_MAX_INTERFACES + 1; globals.next_interface = interface_id + 1 < SKYPIAX_MAX_INTERFACES ? interface_id + 1 : 0; if (strlen(globals.SKYPIAX_INTERFACES[interface_id].name)) { @@ -2144,8 +1956,6 @@ private_t *find_available_skypiax_interface_rr(private_t * tech_pvt_calling) || 0 == tech_pvt->skype_callflow)) { DEBUGA_SKYPE("returning as available skype interface name: %s, state: %d callflow: %d\n", SKYPIAX_P_LOG, tech_pvt->name, skype_state, tech_pvt->skype_callflow); - /*set to Dialing state to avoid other thread fint it, don't know if it is safe */ - //XXX no, it's not safe if (tech_pvt_calling == NULL) { tech_pvt->interface_state = SKYPIAX_STATE_SELECTED; } @@ -2153,9 +1963,7 @@ private_t *find_available_skypiax_interface_rr(private_t * tech_pvt_calling) switch_mutex_unlock(globals.mutex); return tech_pvt; } - } // else { - //DEBUGA_SKYPE("Skype interface: %d blank!! A hole here means we cannot hunt the last interface.\n", SKYPIAX_P_LOG, interface_id); - //} + } } switch_mutex_unlock(globals.mutex); @@ -2246,7 +2054,6 @@ SWITCH_STANDARD_API(sk_function) } else if (!strcasecmp(argv[0], "ciapalino")) { -/* BEGIN: Changes heres */ } else if (!strcasecmp(argv[0], "reload")) { if (load_config(SOFT_RELOAD) != SWITCH_STATUS_SUCCESS) { stream->write_function(stream, "sk reload failed\n"); @@ -2266,7 +2073,6 @@ SWITCH_STANDARD_API(sk_function) stream->write_function(stream, "-ERR Usage: sk remove interface_name\n"); goto end; } -/* END: Changes heres */ } else { if (globals.sk_console) @@ -2347,7 +2153,6 @@ int skypiax_answer(private_t * tech_pvt, char *id, char *value) if (strlen(globals.SKYPIAX_INTERFACES[i].name)) { giovatech = &globals.SKYPIAX_INTERFACES[i]; - //NOTICA("interface=%d, name=%s, giovatech->skype_call_id=%s, giovatech->interface_state=%d, giovatech->skype_user=%s, tech_pvt->skype_user=%s, giovatech->callid_number=%s, value=%s, delta=%ld 500000\n", SKYPIAX_P_LOG, i, giovatech->name, giovatech->skype_call_id, giovatech->interface_state, giovatech->skype_user, tech_pvt->skype_user, giovatech->callid_number, value, (((timenow.tv_sec - giovatech->answer_time.tv_sec) * 1000000) + (timenow.tv_usec - giovatech->answer_time.tv_usec)) ); if (strlen(giovatech->skype_call_id) && (giovatech->interface_state != SKYPIAX_STATE_DOWN) && (!strcmp(giovatech->skype_user, tech_pvt->skype_user)) && (!strcmp(giovatech->callid_number, value)) && ((((timenow.tv_sec - giovatech->answer_time.tv_sec) * 1000000) + (timenow.tv_usec - giovatech->answer_time.tv_usec)) < 1000000)) { //XXX 1.5sec - can have a max of 1 call coming from the same skypename to the same skypename each 1.5 seconds found = 1; DEBUGA_SKYPE @@ -2367,9 +2172,6 @@ int skypiax_answer(private_t * tech_pvt, char *id, char *value) } if (found) { - //tech_pvt->callid_number[0]='\0'; - //sprintf(msg_to_skype, "ALTER CALL %s END HANGUP", id); - //skypiax_signaling_write(tech_pvt, msg_to_skype); switch_mutex_unlock(globals.mutex); return 0; } @@ -2387,7 +2189,6 @@ int skypiax_answer(private_t * tech_pvt, char *id, char *value) sprintf(msg_to_skype, "ALTER CALL %s ANSWER", id); skypiax_signaling_write(tech_pvt, msg_to_skype); DEBUGA_SKYPE("We answered a Skype RING on skype_call %s\n", SKYPIAX_P_LOG, id); - //FIXME write a timestamp here gettimeofday(&tech_pvt->answer_time, NULL); switch_copy_string(tech_pvt->skype_call_id, id, sizeof(tech_pvt->skype_call_id) - 1); @@ -2422,8 +2223,6 @@ int skypiax_transfer(private_t * tech_pvt, char *id, char *value) if (strlen(globals.SKYPIAX_INTERFACES[i].name)) { giovatech = &globals.SKYPIAX_INTERFACES[i]; - //NOTICA("skype interface: %d, name: %s, state: %d, value=%s, giovatech->callid_number=%s, giovatech->skype_user=%s\n", SKYPIAX_P_LOG, i, giovatech->name, giovatech->interface_state, value, giovatech->callid_number, giovatech->skype_user); - //FIXME check a timestamp here if (strlen(giovatech->skype_call_id) && (giovatech->interface_state != SKYPIAX_STATE_DOWN) && (!strcmp(giovatech->skype_user, tech_pvt->skype_user)) && (!strcmp(giovatech->callid_number, value)) && ((((timenow.tv_sec - giovatech->answer_time.tv_sec) * 1000000) + (timenow.tv_usec - giovatech->answer_time.tv_usec)) < 500000)) { //0.5sec found = 1; DEBUGA_SKYPE @@ -2436,9 +2235,6 @@ int skypiax_transfer(private_t * tech_pvt, char *id, char *value) } if (found) { - //tech_pvt->callid_number[0]='\0'; - //sprintf(msg_to_skype, "ALTER CALL %s END HANGUP", id); - //skypiax_signaling_write(tech_pvt, msg_to_skype); switch_mutex_unlock(globals.mutex); return 0; } @@ -2451,7 +2247,7 @@ int skypiax_transfer(private_t * tech_pvt, char *id, char *value) } else { - /* we're owned, we're in a call, let's try to transfer */ + /* we're in a call, let's try to transfer */ /************************** TODO Checking here if it is possible to transfer this call to Test2 -> GET CALL 288 CAN_TRANSFER Test2 @@ -2465,8 +2261,6 @@ int skypiax_transfer(private_t * tech_pvt, char *id, char *value) if (strlen(globals.SKYPIAX_INTERFACES[i].name)) { giovatech = &globals.SKYPIAX_INTERFACES[i]; - //NOTICA("skype interface: %d, name: %s, state: %d, value=%s, giovatech->callid_number=%s, giovatech->skype_user=%s\n", SKYPIAX_P_LOG, i, giovatech->name, giovatech->interface_state, value, giovatech->callid_number, giovatech->skype_user); - //FIXME check a timestamp here if (strlen(giovatech->skype_transfer_call_id) && (giovatech->interface_state != SKYPIAX_STATE_DOWN) && (!strcmp(giovatech->skype_user, tech_pvt->skype_user)) && (!strcmp(giovatech->transfer_callid_number, value)) && ((((timenow.tv_sec - giovatech->transfer_time.tv_sec) * 1000000) + (timenow.tv_usec - giovatech->transfer_time.tv_usec)) < 1000000)) { //1.0 sec found = 1; DEBUGA_SKYPE @@ -2479,9 +2273,6 @@ int skypiax_transfer(private_t * tech_pvt, char *id, char *value) } if (found) { - //tech_pvt->callid_number[0]='\0'; - //sprintf(msg_to_skype, "ALTER CALL %s END HANGUP", id); - //skypiax_signaling_write(tech_pvt, msg_to_skype); switch_mutex_unlock(globals.mutex); return 0; } @@ -2502,8 +2293,6 @@ int skypiax_transfer(private_t * tech_pvt, char *id, char *value) ("Let's transfer the skype_call %s to %s interface (with skype_user: %s), because we are already in a skypiax call(%s)\n", SKYPIAX_P_LOG, tech_pvt->skype_call_id, available_skypiax_interface->name, available_skypiax_interface->skype_user, id); - //FIXME why this? the inbound call will come, eventually, on that other interface - //available_skypiax_interface->ib_calls++; sprintf(msg_to_skype, "ALTER CALL %s TRANSFER %s", id, available_skypiax_interface->skype_user); skypiax_signaling_write(tech_pvt, msg_to_skype); @@ -2604,10 +2393,8 @@ SWITCH_STANDARD_API(skypiax_chat_function) char *mycmd = NULL, *argv[10] = { 0 }; int argc = 0; private_t *tech_pvt = NULL; - //int tried =0; int i; int found = 0; - //char skype_msg[1024]; if (!zstr(cmd) && (mycmd = strdup(cmd))) { argc = switch_separate_string(mycmd, ' ', argv, (sizeof(argv) / sizeof(argv[0]))); @@ -2640,51 +2427,18 @@ SWITCH_STANDARD_API(skypiax_chat_function) goto end; } else { - //chat_send(const char *proto, const char *from, const char *to, const char *subject, const char *body, const char *type, const char *hint); - //chat_send(p*roto, const char *from, const char *to, const char *subject, const char *body, const char *type, const char *hint); - //chat_send(MDL_CHAT_PROTO, tech_pvt->skype_user, argv[1], "SIMPLE MESSAGE", switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), NULL, hint); - NOTICA("chat_send(proto=%s, from=%s, to=%s, subject=%s, body=%s, type=NULL, hint=%s)\n", SKYPIAX_P_LOG, MDL_CHAT_PROTO, tech_pvt->skype_user, argv[1], "SIMPLE MESSAGE", switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), tech_pvt->name); chat_send(MDL_CHAT_PROTO, tech_pvt->skype_user, argv[1], "SIMPLE MESSAGE", switch_str_nil((char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]), NULL, tech_pvt->name); - //NOTICA("TEXT is: %s\n", SKYPIAX_P_LOG, (char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1] ); - //snprintf(skype_msg, sizeof(skype_msg), "CHAT CREATE %s", argv[1]); - //skypiax_signaling_write(tech_pvt, skype_msg); - //switch_sleep(100); } } else { stream->write_function(stream, "ERROR, usage: %s", SKYPIAX_CHAT_SYNTAX); goto end; } -#ifdef NOTDEF - - found = 0; - - while (!found) { - for (i = 0; i < MAX_CHATS; i++) { - if (!strcmp(tech_pvt->chats[i].dialog_partner, argv[1])) { - snprintf(skype_msg, sizeof(skype_msg), "CHATMESSAGE %s %s", tech_pvt->chats[i].chatname, - (char *) &cmd[strlen(argv[0]) + 1 + strlen(argv[1]) + 1]); - skypiax_signaling_write(tech_pvt, skype_msg); - found = 1; - break; - } - } - if (found) { - break; - } - if (tried > 1000) { - stream->write_function(stream, "ERROR: no chat with dialog_partner='%s' was found\n", argv[1]); - break; - } - switch_sleep(1000); - } -#endif //NOTDEF - end: switch_safe_free(mycmd);