Merge branch 'master' of ssh://stash.freeswitch.org:7999/fs/freeswitch

This commit is contained in:
Brian West 2014-10-16 17:03:57 -05:00
commit f1ee4ba4d7
4 changed files with 35 additions and 10 deletions

View File

@ -58,7 +58,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="ESL.2010.cs" />
<Compile Include="ESLconnection.2010.cs" />
<Compile Include="ESLconnection.cs" />
<Compile Include="ESLevent.2010.cs" />
<Compile Include="ESLPINVOKE.2010.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />

View File

@ -116,8 +116,10 @@ SWITCH_STANDARD_API(snom_command_api_function)
{
int argc;
long httpRes = 0;
char *key = NULL;
char *url = NULL;
char *argv[5] = { 0 };
char host[32];
char *argdata = NULL;
char *userpwd = NULL;
char *apiresp = NULL;
@ -135,16 +137,15 @@ SWITCH_STANDARD_API(snom_command_api_function)
goto end;
}
if (strcasecmp(argv[1],"key")) {
stream->write_function(stream, "-ERR only KEY command allowed at the moment\n");
if (strcasecmp(argv[1],"key") && strcasecmp(argv[1],"action")) {
stream->write_function(stream, "-ERR only key or action commands allowed at the moment\n");
goto end;
}
if (switch_inet_pton(AF_INET, argv[0], &ip)) {
url = switch_mprintf("http://%s/command.htm?%s=%s",argv[0],argv[1],argv[2]);
strncpy(host, argv[0], sizeof(host));
} else {
char *sql = NULL;
char buf[32];
char *ret = NULL;
switch_cache_db_handle_t *db = NULL;
switch_stream_handle_t apistream = { 0 };
@ -173,7 +174,7 @@ SWITCH_STANDARD_API(snom_command_api_function)
sql = switch_mprintf("select network_ip from registrations where url = '%s'", apiresp);
ret = switch_cache_db_execute_sql2str(db, sql, buf, sizeof(buf), NULL);
ret = switch_cache_db_execute_sql2str(db, sql, host, sizeof(host), NULL);
switch_safe_free(sql);
switch_cache_db_release_db_handle(&db);
@ -181,11 +182,34 @@ SWITCH_STANDARD_API(snom_command_api_function)
stream->write_function(stream, "%s", "-ERR Query '%s' failed!\n", sql);
goto end;
}
url = switch_mprintf("http://%s/command.htm?%s=%s",buf,argv[1],argv[2]);
}
curl_handle = curl_easy_init();
if (0 == strcasecmp(argv[1],"key")) {
key = curl_easy_escape(curl_handle, argv[2], 0);
url = switch_mprintf("http://%s/command.htm?key=%s", host, key);
curl_free(key);
}
if (0 == strcasecmp(argv[1],"action")) {
if (0 == strcasecmp(argv[2],"reboot")) {
url = switch_mprintf("http://%s/advanced_update.htm?reboot=Reboot", host);
} else if (0 == strcasecmp(argv[2],"reset")) {
url = switch_mprintf("http://%s/advanced_update.htm?reset=Reset", host);
} else if (0 == strcasecmp(argv[2],"dialeddel")) {
url = switch_mprintf("http://%s/index.htm?dialeddel=0", host);
} else if (0 == strcasecmp(argv[2],"misseddel")) {
url = switch_mprintf("http://%s/index.htm?misseddel=0", host);
} else if (0 == strcasecmp(argv[2],"receiveddel")) {
url = switch_mprintf("http://%s/index.htm?receiveddel=0", host);
} else {
stream->write_function(stream, "-ERR action '%s' not supported (supported actions are reboot, reset, dialeddel, misseddel, receiveddel)\n", argv[2]);
curl_easy_cleanup(curl_handle);
goto end;
}
}
curl_easy_setopt(curl_handle, CURLOPT_HTTPGET, 1);
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, curl_callback);
curl_easy_setopt(curl_handle, CURLOPT_URL, url);

View File

@ -2073,6 +2073,7 @@ void sofia_event_callback(nua_event_t event,
switch_mutex_lock(profile->flag_mutex);
switch_core_hash_insert(profile->chat_hash, tech_pvt->call_id, strdup(switch_core_session_get_uuid(session)));
switch_mutex_unlock(profile->flag_mutex);
nua_handle_destroy(nh);
} else {
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
}
@ -9026,8 +9027,6 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
switch_xml_free(x_user);
}
nua_handle_destroy(nh);
if (sip->sip_authorization || sip->sip_proxy_authorization) {
goto fail;
}

View File

@ -250,6 +250,8 @@ static void eval_some_python(const char *funcname, char *args, switch_core_sessi
goto done_swap_out;
}
PyRun_SimpleString("import freeswitch");
if (session) {
sp = mod_python_conjure_session(module, session);
}