spandsp_globals.enable_tep = 0;
spandsp_globals.total_sessions = 0;
spandsp_globals.verbose = 0;
+ spandsp_globals.verbose_log_level = SWITCH_LOG_DEBUG;
spandsp_globals.use_ecm = 1;
spandsp_globals.disable_v17 = 0;
spandsp_globals.prepend_string = switch_core_strdup(spandsp_globals.config_pool, "fax");
spandsp_globals.verbose = 1;
else
spandsp_globals.verbose = 0;
+ } else if (!strcmp(name, "verbose-log-level")) {
+ switch_log_level_t verbose_log_level = switch_log_str2level(value);
+ if (verbose_log_level != SWITCH_LOG_INVALID) {
+ spandsp_globals.verbose_log_level = verbose_log_level;
+ }
} else if (!strcmp(name, "disable-v17")) {
if (switch_true(value))
spandsp_globals.disable_v17 = 1;
int enable_colour_to_bilevel;
int enable_grayscale_to_bilevel;
int verbose;
+ switch_log_level_t verbose_log_level;
int caller;
int tx_page_start;
void mod_spandsp_log_message(void *user_data, int level, const char *msg)
{
int fs_log_level;
- switch_core_session_t *session = (switch_core_session_t *)user_data;
+ mod_spandsp_log_data_t *log_data = (mod_spandsp_log_data_t *)user_data;
+ switch_core_session_t *session = log_data ? log_data->session : NULL;
+ switch_log_level_t verbose_log_level = log_data ? log_data->verbose_log_level : spandsp_globals.verbose_log_level;
switch (level) {
case SPAN_LOG_NONE:
case SPAN_LOG_FLOW_2:
case SPAN_LOG_FLOW_3:
default: /* SPAN_LOG_DEBUG, SPAN_LOG_DEBUG_2, SPAN_LOG_DEBUG_3 */
- fs_log_level = SWITCH_LOG_DEBUG;
+ fs_log_level = verbose_log_level;
break;
}
if (!zstr(msg)) {
- switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), fs_log_level, "%s", msg);
+ switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), fs_log_level, "%s", msg);
}
}
fax_set_transmit_on_idle(fax, TRUE);
- span_log_set_message_handler(fax_get_logging_state(fax), mod_spandsp_log_message, pvt->session);
- span_log_set_message_handler(t30_get_logging_state(t30), mod_spandsp_log_message, pvt->session);
+ {
+ mod_spandsp_log_data_t *log_data = switch_core_session_alloc(pvt->session, sizeof(*log_data));
+ log_data->session = pvt->session;
+ log_data->verbose_log_level = pvt->verbose_log_level;
+ span_log_set_message_handler(fax_get_logging_state(fax), mod_spandsp_log_message, log_data);
+ span_log_set_message_handler(t30_get_logging_state(t30), mod_spandsp_log_message, log_data);
+ }
if (pvt->verbose) {
span_log_set_level(fax_get_logging_state(fax), SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
msg.message_id = SWITCH_MESSAGE_INDICATE_UDPTL_MODE;
switch_core_session_receive_message(pvt->session, &msg);
- span_log_set_message_handler(t38_terminal_get_logging_state(t38), mod_spandsp_log_message, pvt->session);
- span_log_set_message_handler(t30_get_logging_state(t30), mod_spandsp_log_message, pvt->session);
+ {
+ mod_spandsp_log_data_t *log_data = switch_core_session_alloc(pvt->session, sizeof(*log_data));
+ log_data->session = pvt->session;
+ log_data->verbose_log_level = pvt->verbose_log_level;
+ span_log_set_message_handler(t38_terminal_get_logging_state(t38), mod_spandsp_log_message, log_data);
+ span_log_set_message_handler(t30_get_logging_state(t30), mod_spandsp_log_message, log_data);
+ }
if (pvt->verbose) {
span_log_set_level(t38_terminal_get_logging_state(t38), SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
t38_gateway_set_ecm_capability(pvt->t38_gateway_state, pvt->use_ecm);
switch_channel_set_variable(channel, "fax_ecm_requested", pvt->use_ecm ? "true" : "false");
- span_log_set_message_handler(t38_gateway_get_logging_state(pvt->t38_gateway_state), mod_spandsp_log_message, pvt->session);
- span_log_set_message_handler(t38_core_get_logging_state(pvt->t38_core), mod_spandsp_log_message, pvt->session);
+ {
+ mod_spandsp_log_data_t *log_data = switch_core_session_alloc(pvt->session, sizeof(*log_data));
+ log_data->session = pvt->session;
+ log_data->verbose_log_level = pvt->verbose_log_level;
+ span_log_set_message_handler(t38_gateway_get_logging_state(pvt->t38_gateway_state), mod_spandsp_log_message, log_data);
+ span_log_set_message_handler(t38_core_get_logging_state(pvt->t38_core), mod_spandsp_log_message, log_data);
+ }
if (pvt->verbose) {
span_log_set_level(t38_gateway_get_logging_state(pvt->t38_gateway_state), SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
pvt->verbose = spandsp_globals.verbose;
}
+ pvt->verbose_log_level = spandsp_globals.verbose_log_level;
+ if ((tmp = switch_channel_get_variable(channel, "fax_verbose_log_level"))) {
+ switch_log_level_t verbose_log_level = switch_log_str2level(tmp);
+ if (verbose_log_level != SWITCH_LOG_INVALID) {
+ pvt->verbose_log_level = verbose_log_level;
+ }
+ }
+
if ((tmp = switch_channel_get_variable(channel, "fax_force_caller"))) {
if (switch_true(tmp)) {
pvt->caller = 1;