Merge branch 'master' of ssh://stash.freeswitch.org:7999/fs/freeswitch
This commit is contained in:
commit
f5b9bef319
|
@ -4,7 +4,7 @@
|
||||||
#applications/mod_blacklist
|
#applications/mod_blacklist
|
||||||
#applications/mod_callcenter
|
#applications/mod_callcenter
|
||||||
#applications/mod_cidlookup
|
#applications/mod_cidlookup
|
||||||
applications/mod_cluechoo
|
#applications/mod_cluechoo
|
||||||
applications/mod_commands
|
applications/mod_commands
|
||||||
applications/mod_conference
|
applications/mod_conference
|
||||||
#applications/mod_curl
|
#applications/mod_curl
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
<!--<load module="mod_easyroute"/>-->
|
<!--<load module="mod_easyroute"/>-->
|
||||||
<load module="mod_esf"/>
|
<load module="mod_esf"/>
|
||||||
<load module="mod_fsv"/>
|
<load module="mod_fsv"/>
|
||||||
<load module="mod_cluechoo"/>
|
<!--<load module="mod_cluechoo"/>-->
|
||||||
<load module="mod_valet_parking"/>
|
<load module="mod_valet_parking"/>
|
||||||
<!--<load module="mod_fsk"/>-->
|
<!--<load module="mod_fsk"/>-->
|
||||||
<!--<load module="mod_spy"/>-->
|
<!--<load module="mod_spy"/>-->
|
||||||
|
|
|
@ -342,7 +342,7 @@ if test "$ax_cv_c_compiler_vendor" = "gnu"; then
|
||||||
saved_CFLAGS="$CFLAGS"
|
saved_CFLAGS="$CFLAGS"
|
||||||
AC_CACHE_CHECK([whether compiler supports -Wno-unused-result],
|
AC_CACHE_CHECK([whether compiler supports -Wno-unused-result],
|
||||||
[ac_cv_gcc_supports_w_no_unused_result], [
|
[ac_cv_gcc_supports_w_no_unused_result], [
|
||||||
CFLAGS="$CFLAGS -Wno-unused-result"
|
CFLAGS="$CFLAGS -Wno-unused-result -Wno-error=unused-result"
|
||||||
AC_TRY_COMPILE([],[return 0;],
|
AC_TRY_COMPILE([],[return 0;],
|
||||||
[ac_cv_gcc_supports_w_no_unused_result=yes],
|
[ac_cv_gcc_supports_w_no_unused_result=yes],
|
||||||
[ac_cv_gcc_supports_w_no_unused_result=no])])
|
[ac_cv_gcc_supports_w_no_unused_result=no])])
|
||||||
|
|
|
@ -15,6 +15,7 @@ avoid_mods=(
|
||||||
applications/mod_osp
|
applications/mod_osp
|
||||||
applications/mod_rad_auth
|
applications/mod_rad_auth
|
||||||
applications/mod_skel
|
applications/mod_skel
|
||||||
|
applications/mod_cluechoo
|
||||||
asr_tts/mod_cepstral
|
asr_tts/mod_cepstral
|
||||||
codecs/mod_com_g729
|
codecs/mod_com_g729
|
||||||
codecs/mod_ilbc
|
codecs/mod_ilbc
|
||||||
|
@ -433,7 +434,6 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
|
||||||
freeswitch-mod-voicemail (= \${binary:Version}),
|
freeswitch-mod-voicemail (= \${binary:Version}),
|
||||||
freeswitch-mod-esf (= \${binary:Version}),
|
freeswitch-mod-esf (= \${binary:Version}),
|
||||||
freeswitch-mod-fsv (= \${binary:Version}),
|
freeswitch-mod-fsv (= \${binary:Version}),
|
||||||
freeswitch-mod-cluechoo (= \${binary:Version}),
|
|
||||||
freeswitch-mod-valet-parking (= \${binary:Version}),
|
freeswitch-mod-valet-parking (= \${binary:Version}),
|
||||||
freeswitch-mod-httapi (= \${binary:Version}),
|
freeswitch-mod-httapi (= \${binary:Version}),
|
||||||
freeswitch-mod-dialplan-xml (= \${binary:Version}),
|
freeswitch-mod-dialplan-xml (= \${binary:Version}),
|
||||||
|
@ -564,7 +564,6 @@ Recommends:
|
||||||
freeswitch-mod-blacklist (= \${binary:Version}),
|
freeswitch-mod-blacklist (= \${binary:Version}),
|
||||||
freeswitch-mod-callcenter (= \${binary:Version}),
|
freeswitch-mod-callcenter (= \${binary:Version}),
|
||||||
freeswitch-mod-cidlookup (= \${binary:Version}),
|
freeswitch-mod-cidlookup (= \${binary:Version}),
|
||||||
freeswitch-mod-cluechoo (= \${binary:Version}),
|
|
||||||
freeswitch-mod-commands (= \${binary:Version}),
|
freeswitch-mod-commands (= \${binary:Version}),
|
||||||
freeswitch-mod-conference (= \${binary:Version}),
|
freeswitch-mod-conference (= \${binary:Version}),
|
||||||
freeswitch-mod-curl (= \${binary:Version}),
|
freeswitch-mod-curl (= \${binary:Version}),
|
||||||
|
|
|
@ -31,7 +31,7 @@ PROJECT_NAME = "FreeSWITCH API Documentation"
|
||||||
# This could be handy for archiving the generated documentation or
|
# This could be handy for archiving the generated documentation or
|
||||||
# if some version control system is used.
|
# if some version control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = 1.0.6
|
PROJECT_NUMBER = 1.5.14b
|
||||||
|
|
||||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
||||||
# base path where the generated documentation will be put.
|
# base path where the generated documentation will be put.
|
||||||
|
|
|
@ -61,6 +61,7 @@ typedef struct {
|
||||||
int log_uuid;
|
int log_uuid;
|
||||||
int log_uuid_length;
|
int log_uuid_length;
|
||||||
int quiet;
|
int quiet;
|
||||||
|
int use_history_file;
|
||||||
int batch_mode;
|
int batch_mode;
|
||||||
char prompt_color[12];
|
char prompt_color[12];
|
||||||
char input_text_color[12];
|
char input_text_color[12];
|
||||||
|
@ -1222,6 +1223,7 @@ static void read_config(const char *dft_cfile, const char *cfile) {
|
||||||
esl_set_string(profiles[pcount].prompt_color, prompt_color);
|
esl_set_string(profiles[pcount].prompt_color, prompt_color);
|
||||||
esl_set_string(profiles[pcount].input_text_color, input_text_color);
|
esl_set_string(profiles[pcount].input_text_color, input_text_color);
|
||||||
esl_set_string(profiles[pcount].output_text_color, output_text_color);
|
esl_set_string(profiles[pcount].output_text_color, output_text_color);
|
||||||
|
profiles[pcount].use_history_file = 1;
|
||||||
esl_log(ESL_LOG_DEBUG, "Found Profile [%s]\n", profiles[pcount].name);
|
esl_log(ESL_LOG_DEBUG, "Found Profile [%s]\n", profiles[pcount].name);
|
||||||
pcount++;
|
pcount++;
|
||||||
}
|
}
|
||||||
|
@ -1257,6 +1259,8 @@ static void read_config(const char *dft_cfile, const char *cfile) {
|
||||||
}
|
}
|
||||||
} else if(!strcasecmp(var, "quiet")) {
|
} else if(!strcasecmp(var, "quiet")) {
|
||||||
profiles[pcount-1].quiet = esl_true(val);
|
profiles[pcount-1].quiet = esl_true(val);
|
||||||
|
} else if(!strcasecmp(var, "no-history-file")) {
|
||||||
|
profiles[pcount-1].use_history_file = !esl_true(val);
|
||||||
} else if(!strcasecmp(var, "prompt-color")) {
|
} else if(!strcasecmp(var, "prompt-color")) {
|
||||||
esl_set_string(profiles[pcount-1].prompt_color, match_color(val));
|
esl_set_string(profiles[pcount-1].prompt_color, match_color(val));
|
||||||
} else if(!strcasecmp(var, "input-text-color")) {
|
} else if(!strcasecmp(var, "input-text-color")) {
|
||||||
|
@ -1298,6 +1302,8 @@ int main(int argc, char *argv[])
|
||||||
const char *line = NULL;
|
const char *line = NULL;
|
||||||
char cmd_str[1024] = "";
|
char cmd_str[1024] = "";
|
||||||
cli_profile_t *profile = NULL;
|
cli_profile_t *profile = NULL;
|
||||||
|
int argv_use_history_file = 1;
|
||||||
|
int use_history_file = 0;
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
char hfile[512] = "/tmp/fs_cli_history";
|
char hfile[512] = "/tmp/fs_cli_history";
|
||||||
char cfile[512] = "/etc/fs_cli.conf";
|
char cfile[512] = "/etc/fs_cli.conf";
|
||||||
|
@ -1324,6 +1330,7 @@ int main(int argc, char *argv[])
|
||||||
{"log-uuid-short", 0, 0, 'S'},
|
{"log-uuid-short", 0, 0, 'S'},
|
||||||
{"quiet", 0, 0, 'q'},
|
{"quiet", 0, 0, 'q'},
|
||||||
{"batchmode", 0, 0, 'b'},
|
{"batchmode", 0, 0, 'b'},
|
||||||
|
{"no-history-file", 0, 0, 'Q'},
|
||||||
{"retry", 0, 0, 'r'},
|
{"retry", 0, 0, 'r'},
|
||||||
{"interrupt", 0, 0, 'i'},
|
{"interrupt", 0, 0, 'i'},
|
||||||
{"reconnect", 0, 0, 'R'},
|
{"reconnect", 0, 0, 'R'},
|
||||||
|
@ -1381,6 +1388,7 @@ int main(int argc, char *argv[])
|
||||||
esl_set_string(internal_profile.prompt_color, prompt_color);
|
esl_set_string(internal_profile.prompt_color, prompt_color);
|
||||||
esl_set_string(internal_profile.input_text_color, input_text_color);
|
esl_set_string(internal_profile.input_text_color, input_text_color);
|
||||||
esl_set_string(internal_profile.output_text_color, output_text_color);
|
esl_set_string(internal_profile.output_text_color, output_text_color);
|
||||||
|
internal_profile.use_history_file = 1;
|
||||||
if (home) {
|
if (home) {
|
||||||
snprintf(hfile, sizeof(hfile), "%s/.fs_cli_history", home);
|
snprintf(hfile, sizeof(hfile), "%s/.fs_cli_history", home);
|
||||||
snprintf(cfile, sizeof(cfile), "%s/.fs_cli_conf", home);
|
snprintf(cfile, sizeof(cfile), "%s/.fs_cli_conf", home);
|
||||||
|
@ -1395,7 +1403,7 @@ int main(int argc, char *argv[])
|
||||||
esl_global_set_default_logger(6); /* default debug level to 6 (info) */
|
esl_global_set_default_logger(6); /* default debug level to 6 (info) */
|
||||||
for(;;) {
|
for(;;) {
|
||||||
int option_index = 0;
|
int option_index = 0;
|
||||||
opt = getopt_long(argc, argv, "H:P:u:p:d:x:l:USt:T:qrRhib?n", options, &option_index);
|
opt = getopt_long(argc, argv, "H:P:u:p:d:x:l:USt:T:qQrRhib?n", options, &option_index);
|
||||||
if (opt == -1) break;
|
if (opt == -1) break;
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'H':
|
case 'H':
|
||||||
|
@ -1450,6 +1458,9 @@ int main(int argc, char *argv[])
|
||||||
case 'b':
|
case 'b':
|
||||||
argv_batch = 1;
|
argv_batch = 1;
|
||||||
break;
|
break;
|
||||||
|
case 'Q':
|
||||||
|
argv_use_history_file = 0;
|
||||||
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
allow_ctl_c = 1;
|
allow_ctl_c = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -1505,6 +1516,9 @@ int main(int argc, char *argv[])
|
||||||
profile->batch_mode = 1;
|
profile->batch_mode = 1;
|
||||||
feature_level=0;
|
feature_level=0;
|
||||||
}
|
}
|
||||||
|
if (argv_use_history_file && profile->use_history_file) {
|
||||||
|
use_history_file = 1;
|
||||||
|
}
|
||||||
if (*argv_loglevel) {
|
if (*argv_loglevel) {
|
||||||
esl_set_string(profile->loglevel, argv_loglevel);
|
esl_set_string(profile->loglevel, argv_loglevel);
|
||||||
profile->quiet = 0;
|
profile->quiet = 0;
|
||||||
|
@ -1658,7 +1672,7 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
history(myhistory, &ev, H_SETSIZE, 800);
|
history(myhistory, &ev, H_SETSIZE, 800);
|
||||||
el_set(el, EL_HIST, history, myhistory);
|
el_set(el, EL_HIST, history, myhistory);
|
||||||
history(myhistory, &ev, H_LOAD, hfile);
|
if (use_history_file) history(myhistory, &ev, H_LOAD, hfile);
|
||||||
el_source(el, NULL);
|
el_source(el, NULL);
|
||||||
#endif
|
#endif
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
@ -1712,7 +1726,7 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
#ifdef HAVE_LIBEDIT
|
#ifdef HAVE_LIBEDIT
|
||||||
done:
|
done:
|
||||||
history(myhistory, &ev, H_SAVE, hfile);
|
if (use_history_file) history(myhistory, &ev, H_SAVE, hfile);
|
||||||
history_end(myhistory);
|
history_end(myhistory);
|
||||||
el_end(el);
|
el_end(el);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Wed Sep 24 01:09:42 CDT 2014
|
Thu Sep 25 21:43:53 CDT 2014
|
||||||
|
|
|
@ -332,19 +332,22 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
|
||||||
ssize_t r;
|
ssize_t r;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
|
wsh->x++;
|
||||||
|
if (wsh->x > 250) ms_sleep(1);
|
||||||
|
|
||||||
if (wsh->ssl) {
|
if (wsh->ssl) {
|
||||||
do {
|
do {
|
||||||
r = SSL_read(wsh->ssl, data, bytes);
|
r = SSL_read(wsh->ssl, data, bytes);
|
||||||
|
|
||||||
ms_sleep(10);
|
|
||||||
|
|
||||||
if (r == -1) {
|
if (r == -1) {
|
||||||
err = SSL_get_error(wsh->ssl, r);
|
err = SSL_get_error(wsh->ssl, r);
|
||||||
|
|
||||||
if (!block && err == SSL_ERROR_WANT_READ) {
|
if (!block && err == SSL_ERROR_WANT_READ) {
|
||||||
r = -2;
|
r = -2;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (block) ms_sleep(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
|
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
|
||||||
|
@ -354,10 +357,17 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
|
||||||
|
|
||||||
do {
|
do {
|
||||||
r = recv(wsh->sock, data, bytes, 0);
|
r = recv(wsh->sock, data, bytes, 0);
|
||||||
ms_sleep(10);
|
if (r == -1) {
|
||||||
|
if (!block && xp_is_blocking(xp_errno())) {
|
||||||
|
r = -2;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (block) ms_sleep(10);
|
||||||
|
}
|
||||||
} while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100);
|
} while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100);
|
||||||
|
|
||||||
if (wsh->x >= 100) {
|
if (wsh->x >= 1000 || (block && wsh->x >= 100)) {
|
||||||
r = -1;
|
r = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -332,19 +332,22 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
|
||||||
ssize_t r;
|
ssize_t r;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
|
wsh->x++;
|
||||||
|
if (wsh->x > 250) ms_sleep(1);
|
||||||
|
|
||||||
if (wsh->ssl) {
|
if (wsh->ssl) {
|
||||||
do {
|
do {
|
||||||
r = SSL_read(wsh->ssl, data, bytes);
|
r = SSL_read(wsh->ssl, data, bytes);
|
||||||
|
|
||||||
ms_sleep(10);
|
|
||||||
|
|
||||||
if (r == -1) {
|
if (r == -1) {
|
||||||
err = SSL_get_error(wsh->ssl, r);
|
err = SSL_get_error(wsh->ssl, r);
|
||||||
|
|
||||||
if (!block && err == SSL_ERROR_WANT_READ) {
|
if (!block && err == SSL_ERROR_WANT_READ) {
|
||||||
r = -2;
|
r = -2;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (block) ms_sleep(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
|
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
|
||||||
|
@ -354,10 +357,17 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
|
||||||
|
|
||||||
do {
|
do {
|
||||||
r = recv(wsh->sock, data, bytes, 0);
|
r = recv(wsh->sock, data, bytes, 0);
|
||||||
ms_sleep(10);
|
if (r == -1) {
|
||||||
|
if (!block && xp_is_blocking(xp_errno())) {
|
||||||
|
r = -2;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (block) ms_sleep(10);
|
||||||
|
}
|
||||||
} while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100);
|
} while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100);
|
||||||
|
|
||||||
if (wsh->x >= 100) {
|
if (wsh->x >= 1000 || (block && wsh->x >= 100)) {
|
||||||
r = -1;
|
r = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4203,7 +4203,11 @@ SWITCH_DECLARE(switch_status_t) switch_channel_get_variables(switch_channel_t *c
|
||||||
{
|
{
|
||||||
switch_status_t status;
|
switch_status_t status;
|
||||||
switch_mutex_lock(channel->profile_mutex);
|
switch_mutex_lock(channel->profile_mutex);
|
||||||
status = switch_event_dup(event, channel->variables);
|
if (channel->variables) {
|
||||||
|
status = switch_event_dup(event, channel->variables);
|
||||||
|
} else {
|
||||||
|
status = switch_event_create(event, SWITCH_EVENT_CHANNEL_DATA);
|
||||||
|
}
|
||||||
switch_mutex_unlock(channel->profile_mutex);
|
switch_mutex_unlock(channel->profile_mutex);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue