[commit] r11207 - in freeswitch/branches/ctrix/mod_airpe: . config
Author: ctrix Date: Wed Jan 14 18:03:50 2009 New Revision: 11207 Log: Add option to let the client auto-auth incoming requests Modified: freeswitch/branches/ctrix/mod_airpe/airpe_api.c freeswitch/branches/ctrix/mod_airpe/airpe_if_common.c freeswitch/branches/ctrix/mod_airpe/airpe_if_x11.c freeswitch/branches/ctrix/mod_airpe/config/airpe.conf.xml freeswitch/branches/ctrix/mod_airpe/mod_airpe.c freeswitch/branches/ctrix/mod_airpe/mod_airpe.h Modified: freeswitch/branches/ctrix/mod_airpe/airpe_api.c ============================================================================== --- freeswitch/branches/ctrix/mod_airpe/airpe_api.c (original) +++ freeswitch/branches/ctrix/mod_airpe/airpe_api.c Wed Jan 14 18:03:50 2009 @@ -152,6 +152,11 @@ switch_snprintf(buf, sizeof(buf), "%-20s: %s\n", "Mood text", (airpe->mood_text ) ? airpe->mood_text : "Unknown" ); stream->write_function(stream, buf); + switch_snprintf(buf, sizeof(buf), "%-20s: %s\n", "Debug", (airpe->debug ) ? "Yes" : "No" ); + stream->write_function(stream, buf); + switch_snprintf(buf, sizeof(buf), "%-20s: %s\n", "Auto-auth", (airpe->auto_auth) ? "Yes" : "No" ); + stream->write_function(stream, buf); + done: return SWITCH_STATUS_SUCCESS; } Modified: freeswitch/branches/ctrix/mod_airpe/airpe_if_common.c ============================================================================== --- freeswitch/branches/ctrix/mod_airpe/airpe_if_common.c (original) +++ freeswitch/branches/ctrix/mod_airpe/airpe_if_common.c Wed Jan 14 18:03:50 2009 @@ -553,10 +553,10 @@ else if ( !strncmp( buf, "USER", strlen("USER")) && argc >= 2 ) { /* Updates about the users of our list or new auth requests */ if ( !strncmp(argv[2], "RECEIVEDAUTHREQUEST", strlen("RECEIVEDAUTHREQUEST") ) ) { - /* TODO add option to ignore such requests */ - char buf[SKYPE_MSG_LEN] = ""; - snprintf(buf, sizeof(buf), "SET USER %s ISAUTHORIZED TRUE", argv[1]); - airpe_cmd_write(airpe, buf); + if ( airpe->auto_auth ) { + snprintf(buf, sizeof(buf), "SET USER %s ISAUTHORIZED TRUE", argv[1]); + airpe_cmd_write(airpe, buf); + } } } else if ( !strncmp( buf, "GROUP", strlen("GROUP")) ) { @@ -583,7 +583,7 @@ else if ( !strncmp( buf, "CHAT", strlen("CHAT")) && argc >=2 ) { /* Chat status - ignored. */ if ( airpe->protocol > 6 ) { - //TODO : ALTER CHAT <chat_id> DISBAND - Doesn't seems to work on linux + /* ALTER CHAT <chat_id> DISBAND - Doesn't seems to work on linux */ char buf[SKYPE_MSG_LEN] = ""; snprintf(buf, sizeof(buf), "ALTER CHAT %s DISBAND", argv[1]); airpe_cmd_write(airpe, buf); @@ -616,13 +616,13 @@ if ( !strncmp(cmd, "DURATION", strlen("DURATION")) ) { /* Ignore the duration that is updated every second */ + /* TODO: maybe in the future we could consider this message as a keepalive signal */ if ( callid != airpe->active_call_id ) { char buf[SKYPE_MSG_LEN] = ""; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "airpe client %s: hanging up unknown call id %d\n", airpe->name, callid); snprintf(buf, sizeof(buf), "SET CALL %d STATUS FINISHED", callid); airpe_cmd_write(airpe, buf); } - //TODO: maybe we could consider this message as a keepalive signal } else if ( !strncmp(cmd, "STATUS", strlen("STATUS")) && argc >=4 ) { char *callstatus = argv[3]; @@ -734,7 +734,11 @@ /* Ignoring by now */ } else if ( !strncmp( buf, "ERROR", strlen("ERROR")) ) { - //TODO If we are in the middle of a call, hangup + /* If we are in the middle of a call, hangup */ + if ( airpe->active_call_id ) { + snprintf(buf, sizeof(buf), "ALTER CALL %d END HANGUP", airpe->active_call_id ); + airpe_cmd_write(airpe, buf); + } } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Unmanaged message\n"); Modified: freeswitch/branches/ctrix/mod_airpe/airpe_if_x11.c ============================================================================== --- freeswitch/branches/ctrix/mod_airpe/airpe_if_x11.c (original) +++ freeswitch/branches/ctrix/mod_airpe/airpe_if_x11.c Wed Jan 14 18:03:50 2009 @@ -95,8 +95,7 @@ switch_log_printf( SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "HEY! where is my skype window gone ? Restarting skype for client...\n"); /* - - TODO AND TO USE + TODO AND TO USE - Start skype client int fid; const char *args[] = { "skype", "--actiondispatch", params, 0 }; Modified: freeswitch/branches/ctrix/mod_airpe/config/airpe.conf.xml ============================================================================== --- freeswitch/branches/ctrix/mod_airpe/config/airpe.conf.xml (original) +++ freeswitch/branches/ctrix/mod_airpe/config/airpe.conf.xml Wed Jan 14 18:03:50 2009 @@ -19,6 +19,7 @@ <param name="context" value="default"/> <param name="destination" value="4321"/> + <param name="auto-auth" value="false"/> <!-- The following params won't be affected by reloading xml --> Modified: freeswitch/branches/ctrix/mod_airpe/mod_airpe.c ============================================================================== --- freeswitch/branches/ctrix/mod_airpe/mod_airpe.c (original) +++ freeswitch/branches/ctrix/mod_airpe/mod_airpe.c Wed Jan 14 18:03:50 2009 @@ -260,7 +260,6 @@ if ( switch_test_flag(tech_pvt, TFLAG_OUTBOUND) ) { airpe_originate(tech_pvt->airpe, tech_pvt->destination ); - // TODO if fail switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER); } switch_channel_set_state(channel, CS_ROUTING); @@ -509,14 +508,13 @@ switch (sig) { case SWITCH_SIG_KILL: break; - case SWITCH_SIG_BREAK: + case SWITCH_SIG_BREAK: break; - default: - //TODO Log unhandled signal - break; - } + default: + break; + } - return SWITCH_STATUS_SUCCESS; + return SWITCH_STATUS_SUCCESS; } static switch_status_t channel_send_dtmf(switch_core_session_t * session, const switch_dtmf_t * dtmf) { @@ -686,6 +684,7 @@ char *skype_password= NULL; char *cid_name = NULL; char *cid_num = NULL; + int auto_auth = 0; int debug = 0; airpe_interface_t *newconf = NULL; @@ -701,6 +700,8 @@ if (!strcasecmp(var, "debug")) { debug = switch_true(val) ? 1 : 0; + } else if (!strcasecmp(var, "auto-auth")) { + auto_auth = switch_true(val) ? 1 : 0; } else if (!strcasecmp(var, "context")) { context = val; } else if (!strcasecmp(var, "dialplan")) { @@ -765,6 +766,7 @@ newconf->dialplan = switch_core_strdup(pool, dialplan); newconf->context = switch_core_strdup(pool, context); newconf->destination = switch_core_strdup(pool, destination); + newconf->auto_auth = auto_auth; newconf->debug = debug; if ( reload ) { Modified: freeswitch/branches/ctrix/mod_airpe/mod_airpe.h ============================================================================== --- freeswitch/branches/ctrix/mod_airpe/mod_airpe.h (original) +++ freeswitch/branches/ctrix/mod_airpe/mod_airpe.h Wed Jan 14 18:03:50 2009 @@ -139,6 +139,7 @@ char *skype_user; char *skype_password; + int auto_auth; int audio_in_port; int audio_out_port; switch_socket_t *audio_in_socket;
participants (1)
-
FreeSWITCH SVN