freetdm: add configurable boost trace level
This commit is contained in:
parent
2efa471c3b
commit
f974cea841
|
@ -169,7 +169,7 @@ static void null_logger(const char *file, const char *func, int line, int level,
|
|||
}
|
||||
|
||||
|
||||
static const char *LEVEL_NAMES[] = {
|
||||
const char *FTDM_LEVEL_NAMES[9] = {
|
||||
"EMERG",
|
||||
"ALERT",
|
||||
"CRIT",
|
||||
|
@ -181,7 +181,7 @@ static const char *LEVEL_NAMES[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
static int ftdm_log_level = 7;
|
||||
static int ftdm_log_level = FTDM_LOG_LEVEL_DEBUG;
|
||||
|
||||
static void default_logger(const char *file, const char *func, int line, int level, const char *fmt, ...)
|
||||
{
|
||||
|
@ -203,7 +203,7 @@ static void default_logger(const char *file, const char *func, int line, int lev
|
|||
vsnprintf(data, sizeof(data), fmt, ap);
|
||||
|
||||
|
||||
fprintf(stderr, "[%s] %s:%d %s() %s", LEVEL_NAMES[level], file, line, func, data);
|
||||
fprintf(stderr, "[%s] %s:%d %s() %s", FTDM_LEVEL_NAMES[level], file, line, func, data);
|
||||
|
||||
va_end(ap);
|
||||
|
||||
|
|
|
@ -2010,7 +2010,7 @@ static void ftdm_cli_span_state_cmd(ftdm_span_t *span, char *state)
|
|||
ftdm_log(FTDM_LOG_CRIT, "Total Channel Cnt %i\n",cnt);
|
||||
}
|
||||
|
||||
#define FTDM_BOOST_SYNTAX "list sigmods | <sigmod_name> <command>"
|
||||
#define FTDM_BOOST_SYNTAX "list sigmods | <sigmod_name> <command> | tracelevel <span> <level>"
|
||||
/**
|
||||
* \brief API function to kill or debug a sangoma_boost span
|
||||
* \param stream API stream handler
|
||||
|
@ -2041,7 +2041,45 @@ static FIO_API_FUNCTION(ftdm_sangoma_boost_api)
|
|||
print_request_ids();
|
||||
goto done;
|
||||
}
|
||||
|
||||
} else if (!strcasecmp(argv[0], "tracelevel")) {
|
||||
ftdm_status_t status;
|
||||
const char *levelname = NULL;
|
||||
int dbglevel;
|
||||
ftdm_sangoma_boost_data_t *sangoma_boost_data;
|
||||
ftdm_span_t *span;
|
||||
|
||||
if (argc <= 2) {
|
||||
stream->write_function(stream, "-ERR usage: tracelevel <span> <level>\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
status = ftdm_span_find_by_name(argv[1], &span);
|
||||
if (FTDM_SUCCESS != status) {
|
||||
stream->write_function(stream, "-ERR failed to find span by name %s\n", argv[1]);
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (span->signal_type != FTDM_SIGTYPE_SANGOMABOOST) {
|
||||
stream->write_function(stream, "-ERR span %s is not of boost type\n", argv[1]);
|
||||
goto done;
|
||||
}
|
||||
|
||||
for (dbglevel = 0; (levelname = FTDM_LEVEL_NAMES[dbglevel]); dbglevel++) {
|
||||
if (!strcasecmp(levelname, argv[2])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!levelname) {
|
||||
stream->write_function(stream, "-ERR invalid log level %s\n", argv[2]);
|
||||
goto done;
|
||||
}
|
||||
|
||||
sangoma_boost_data = span->signal_data;
|
||||
sangoma_boost_data->pcon.debuglevel = dbglevel;
|
||||
sangoma_boost_data->mcon.debuglevel = dbglevel;
|
||||
stream->write_function(stream, "+OK span %s has now trace level %s\n", argv[1], FTDM_LEVEL_NAMES[dbglevel]);
|
||||
goto done;
|
||||
#ifndef __WINDOWS__
|
||||
#if 0
|
||||
/* NC: This code crashes the kernel due to fork on heavy fs load */
|
||||
|
@ -2673,6 +2711,8 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_sangoma_boost_configure_span)
|
|||
span->get_span_sig_status = sangoma_boost_get_span_sig_status;
|
||||
span->set_span_sig_status = sangoma_boost_set_span_sig_status;
|
||||
span->state_map = &boost_state_map;
|
||||
sangoma_boost_data->mcon.debuglevel = FTDM_LOG_LEVEL_DEBUG;
|
||||
sangoma_boost_data->pcon.debuglevel = FTDM_LOG_LEVEL_DEBUG;
|
||||
ftdm_clear_flag(span, FTDM_SPAN_SUGGEST_CHAN_ID);
|
||||
ftdm_set_flag(span, FTDM_SPAN_USE_CHAN_QUEUE);
|
||||
if (sigmod_iface) {
|
||||
|
|
|
@ -77,7 +77,7 @@ static void sangomabc_print_event_call(sangomabc_connection_t *mcon, sangomabc_e
|
|||
if (event->event_id == SIGBOOST_EVENT_HEARTBEAT)
|
||||
return;
|
||||
|
||||
ftdm_log(file, func, line, FTDM_LOG_LEVEL_WARNING, "%s EVENT (%s): %s:(%X) [w%dg%d] CSid=%i Seq=%i Cn=[%s] Cd=[%s] Ci=[%s] Rdnis=[%s]\n",
|
||||
ftdm_log(file, func, line, mcon->debuglevel, "%s EVENT (%s): %s:(%X) [w%dg%d] CSid=%i Seq=%i Cn=[%s] Cd=[%s] Ci=[%s] Rdnis=[%s]\n",
|
||||
dir ? "TX":"RX",
|
||||
priority ? "P":"N",
|
||||
sangomabc_event_id_name(event->event_id),
|
||||
|
@ -96,7 +96,7 @@ static void sangomabc_print_event_short(sangomabc_connection_t *mcon, sangomabc_
|
|||
{
|
||||
if (event->event_id == SIGBOOST_EVENT_HEARTBEAT)
|
||||
return;
|
||||
ftdm_log(file, func, line, FTDM_LOG_LEVEL_WARNING, "%s EVENT (%s): %s:(%X) [s%dc%d] Rc=%i CSid=%i Seq=%i \n",
|
||||
ftdm_log(file, func, line, mcon->debuglevel, "%s EVENT (%s): %s:(%X) [s%dc%d] Rc=%i CSid=%i Seq=%i \n",
|
||||
dir ? "TX":"RX",
|
||||
priority ? "P":"N",
|
||||
sangomabc_event_id_name(event->event_id),
|
||||
|
|
|
@ -110,6 +110,7 @@ struct sangomabc_connection {
|
|||
ftdm_queue_t *boost_queue;
|
||||
ftdm_interrupt_t *sock_interrupt;
|
||||
ftdm_span_t *span;
|
||||
int debuglevel;
|
||||
};
|
||||
|
||||
typedef struct sangomabc_connection sangomabc_connection_t;
|
||||
|
|
|
@ -564,6 +564,8 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_open_chan(ftdm_channel_t *ftdmchan);
|
|||
#define ftdm_log_chan(fchan, level, format, ...) ftdm_log(level, "s%dc%d " format, fchan->span_id, fchan->chan_id, __VA_ARGS__)
|
||||
#define ftdm_log_chan_msg(fchan, level, msg) ftdm_log(level, "s%dc%d " msg, fchan->span_id, fchan->chan_id)
|
||||
|
||||
extern const char *FTDM_LEVEL_NAMES[9];
|
||||
|
||||
static __inline__ void ftdm_abort(void)
|
||||
{
|
||||
#ifdef __cplusplus
|
||||
|
|
Loading…
Reference in New Issue