mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-05 18:13:27 +00:00
OPENZAP-22 add configuration settable debug levels for isdn trunks
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@580 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
parent
086decc2d6
commit
41184317d0
@ -1 +1 @@
|
|||||||
Tue Jun 3 17:09:07 EDT 2008
|
Fri Oct 3 17:54:41 EDT 2008
|
||||||
|
@ -5,6 +5,25 @@
|
|||||||
<!--<param name="enable-analog-option" value="call-swap"/>-->
|
<!--<param name="enable-analog-option" value="call-swap"/>-->
|
||||||
<!--<param name="enable-analog-option" value="3-way"/>-->
|
<!--<param name="enable-analog-option" value="3-way"/>-->
|
||||||
</settings>
|
</settings>
|
||||||
|
<pri_spans>
|
||||||
|
<span name="PRI_1">
|
||||||
|
<!-- Log Levels: none, alert, crit, err, warning, notice, info, debug -->
|
||||||
|
<param name="q921loglevel" value="alert"/>
|
||||||
|
<param name="q931loglevel" value="alert"/>
|
||||||
|
<param name="mode" value="user"/>
|
||||||
|
<param name="dialect" value="5ess"/>
|
||||||
|
<param name="dialplan" value="XML"/>
|
||||||
|
<param name="context" value="default"/>
|
||||||
|
</span>
|
||||||
|
<span name="PRI_2">
|
||||||
|
<param name="q921loglevel" value="alert"/>
|
||||||
|
<param name="q931loglevel" value="alert"/>
|
||||||
|
<param name="mode" value="user"/>
|
||||||
|
<param name="dialect" value="5ess"/>
|
||||||
|
<param name="dialplan" value="XML"/>
|
||||||
|
<param name="context" value="default"/>
|
||||||
|
</span>
|
||||||
|
</pri_spans>
|
||||||
<!-- one entry here per openzap span -->
|
<!-- one entry here per openzap span -->
|
||||||
<analog_spans>
|
<analog_spans>
|
||||||
<span id="1">
|
<span id="1">
|
||||||
|
@ -1794,6 +1794,8 @@ static switch_status_t load_config(void)
|
|||||||
zap_span_t *span = NULL;
|
zap_span_t *span = NULL;
|
||||||
char *tonegroup = NULL;
|
char *tonegroup = NULL;
|
||||||
uint32_t opts = 0;
|
uint32_t opts = 0;
|
||||||
|
int q921loglevel = -1;
|
||||||
|
int q931loglevel = -1;
|
||||||
|
|
||||||
for (param = switch_xml_child(myspan, "param"); param; param = param->next) {
|
for (param = switch_xml_child(myspan, "param"); param; param = param->next) {
|
||||||
char *var = (char *) switch_xml_attr_soft(param, "name");
|
char *var = (char *) switch_xml_attr_soft(param, "name");
|
||||||
@ -1805,6 +1807,14 @@ static switch_status_t load_config(void)
|
|||||||
mode = val;
|
mode = val;
|
||||||
} else if (!strcasecmp(var, "dialect")) {
|
} else if (!strcasecmp(var, "dialect")) {
|
||||||
dialect = val;
|
dialect = val;
|
||||||
|
} else if (!strcasecmp(var, "q921loglevel")) {
|
||||||
|
if ((q921loglevel = switch_log_str2level(val)) == SWITCH_LOG_INVALID) {
|
||||||
|
q921loglevel = -1;
|
||||||
|
}
|
||||||
|
} else if (!strcasecmp(var, "q931loglevel")) {
|
||||||
|
if ((q931loglevel = switch_log_str2level(val)) == SWITCH_LOG_INVALID) {
|
||||||
|
q931loglevel = -1;
|
||||||
|
}
|
||||||
} else if (!strcasecmp(var, "context")) {
|
} else if (!strcasecmp(var, "context")) {
|
||||||
context = val;
|
context = val;
|
||||||
} else if (!strcasecmp(var, "suggest-channel") && switch_true(val)) {
|
} else if (!strcasecmp(var, "suggest-channel") && switch_true(val)) {
|
||||||
@ -1814,7 +1824,6 @@ static switch_status_t load_config(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!id && !name) {
|
if (!id && !name) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "span missing required param 'id'\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "span missing required param 'id'\n");
|
||||||
continue;
|
continue;
|
||||||
@ -1849,6 +1858,8 @@ static switch_status_t load_config(void)
|
|||||||
if (zap_configure_span("isdn", span, on_clear_channel_signal,
|
if (zap_configure_span("isdn", span, on_clear_channel_signal,
|
||||||
"mode", mode,
|
"mode", mode,
|
||||||
"dialect", dialect,
|
"dialect", dialect,
|
||||||
|
"q921loglevel", q921loglevel,
|
||||||
|
"q931loglevel", q931loglevel,
|
||||||
TAG_END) != ZAP_SUCCESS) {
|
TAG_END) != ZAP_SUCCESS) {
|
||||||
zap_log(ZAP_LOG_ERROR, "Error starting OpenZAP span %d mode: %d dialect: %d error: %s\n", span_id, mode, dialect, span->last_error);
|
zap_log(ZAP_LOG_ERROR, "Error starting OpenZAP span %d mode: %d dialect: %d error: %s\n", span_id, mode, dialect, span->last_error);
|
||||||
continue;
|
continue;
|
||||||
|
@ -2993,6 +2993,12 @@ void Q921SetLogLevel(L2TRUNK trunk, Q921LogLevel_t level)
|
|||||||
if(!trunk)
|
if(!trunk)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (level < Q921_LOG_NONE) {
|
||||||
|
level = Q921_LOG_NONE;
|
||||||
|
} else if (level > Q921_LOG_DEBUG) {
|
||||||
|
level = Q921_LOG_DEBUG;
|
||||||
|
}
|
||||||
|
|
||||||
trunk->loglevel = level;
|
trunk->loglevel = level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -860,6 +860,15 @@ void Q931SetLogCB(Q931_TrunkInfo_t *trunk, Q931LogCB_t func, void *priv)
|
|||||||
*/
|
*/
|
||||||
void Q931SetLogLevel(Q931_TrunkInfo_t *trunk, Q931LogLevel_t level)
|
void Q931SetLogLevel(Q931_TrunkInfo_t *trunk, Q931LogLevel_t level)
|
||||||
{
|
{
|
||||||
|
if(!trunk)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (level < Q931_LOG_NONE) {
|
||||||
|
level = Q931_LOG_NONE;
|
||||||
|
} else if (level > Q931_LOG_DEBUG) {
|
||||||
|
level = Q931_LOG_DEBUG;
|
||||||
|
}
|
||||||
|
|
||||||
trunk->loglevel = level;
|
trunk->loglevel = level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,10 @@ typedef enum /* Type of connection */
|
|||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
Q921_LOG_NONE = 0,
|
Q921_LOG_NONE = -1,
|
||||||
|
Q921_LOG_EMERG = 0,
|
||||||
|
Q921_LOG_ALERT,
|
||||||
|
Q921_LOG_CRIT,
|
||||||
Q921_LOG_ERROR,
|
Q921_LOG_ERROR,
|
||||||
Q921_LOG_WARNING,
|
Q921_LOG_WARNING,
|
||||||
Q921_LOG_NOTICE,
|
Q921_LOG_NOTICE,
|
||||||
|
@ -634,7 +634,10 @@ typedef struct {
|
|||||||
typedef struct Q931_TrunkInfo Q931_TrunkInfo_t;
|
typedef struct Q931_TrunkInfo Q931_TrunkInfo_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
Q931_LOG_NONE = 0,
|
Q931_LOG_NONE = -1,
|
||||||
|
Q931_LOG_EMERG,
|
||||||
|
Q931_LOG_ALERT,
|
||||||
|
Q931_LOG_CRIT,
|
||||||
Q931_LOG_ERROR,
|
Q931_LOG_ERROR,
|
||||||
Q931_LOG_WARNING,
|
Q931_LOG_WARNING,
|
||||||
Q931_LOG_NOTICE,
|
Q931_LOG_NOTICE,
|
||||||
|
@ -1518,34 +1518,8 @@ static int q931_rx_32(void *pvt, Q921DLMsg_t ind, L3UCHAR tei, L3UCHAR *msg, L3I
|
|||||||
static int zap_isdn_q921_log(void *pvt, Q921LogLevel_t level, char *msg, L2INT size)
|
static int zap_isdn_q921_log(void *pvt, Q921LogLevel_t level, char *msg, L2INT size)
|
||||||
{
|
{
|
||||||
zap_span_t *span = (zap_span_t *) pvt;
|
zap_span_t *span = (zap_span_t *) pvt;
|
||||||
int loglevel = ZAP_LOG_LEVEL_DEBUG;
|
|
||||||
|
|
||||||
switch(level) {
|
zap_log("Span", "Q.921", span->span_id, (int)level, "%s", msg);
|
||||||
case Q921_LOG_DEBUG:
|
|
||||||
loglevel = ZAP_LOG_LEVEL_DEBUG;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Q921_LOG_INFO:
|
|
||||||
loglevel = ZAP_LOG_LEVEL_INFO;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Q921_LOG_NOTICE:
|
|
||||||
loglevel = ZAP_LOG_LEVEL_NOTICE;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Q921_LOG_WARNING:
|
|
||||||
loglevel = ZAP_LOG_LEVEL_WARNING;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Q921_LOG_ERROR:
|
|
||||||
loglevel = ZAP_LOG_LEVEL_ERROR;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
zap_log("Span", "Q.921", span->span_id, loglevel, "%s", msg);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1553,7 +1527,7 @@ static L3INT zap_isdn_q931_log(void *pvt, Q931LogLevel_t level, char *msg, L3INT
|
|||||||
{
|
{
|
||||||
zap_span_t *span = (zap_span_t *) pvt;
|
zap_span_t *span = (zap_span_t *) pvt;
|
||||||
|
|
||||||
zap_log("Span", "Q.931", span->span_id, ZAP_LOG_LEVEL_DEBUG, "%s", msg);
|
zap_log("Span", "Q.931", span->span_id, (int)level, "%s", msg);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1697,6 +1671,8 @@ static ZIO_SIG_CONFIGURE_FUNCTION(zap_isdn_configure_span)
|
|||||||
char *var, *val;
|
char *var, *val;
|
||||||
Q931Dialect_t dialect = Q931_Dialect_National;
|
Q931Dialect_t dialect = Q931_Dialect_National;
|
||||||
uint32_t opts = 0;
|
uint32_t opts = 0;
|
||||||
|
int q921loglevel = 0;
|
||||||
|
int q931loglevel = 0;
|
||||||
|
|
||||||
if (span->signal_type) {
|
if (span->signal_type) {
|
||||||
snprintf(span->last_error, sizeof(span->last_error), "Span is already configured for signalling [%d].", span->signal_type);
|
snprintf(span->last_error, sizeof(span->last_error), "Span is already configured for signalling [%d].", span->signal_type);
|
||||||
@ -1760,6 +1736,20 @@ static ZIO_SIG_CONFIGURE_FUNCTION(zap_isdn_configure_span)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
tonemap = (const char *)val;
|
tonemap = (const char *)val;
|
||||||
|
} else if (!strcasecmp(var, "q921loglevel")) {
|
||||||
|
q921loglevel = va_arg(ap, int);
|
||||||
|
if (q921loglevel < Q921_LOG_NONE) {
|
||||||
|
q921loglevel = Q921_LOG_NONE;
|
||||||
|
} else if (q921loglevel > Q921_LOG_DEBUG) {
|
||||||
|
q921loglevel = Q921_LOG_DEBUG;
|
||||||
|
}
|
||||||
|
} else if (!strcasecmp(var, "q931loglevel")) {
|
||||||
|
q931loglevel = va_arg(ap, int);
|
||||||
|
if (q931loglevel < Q931_LOG_NONE) {
|
||||||
|
q931loglevel = Q931_LOG_NONE;
|
||||||
|
} else if (q931loglevel > Q931_LOG_DEBUG) {
|
||||||
|
q931loglevel = Q931_LOG_DEBUG;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1781,7 +1771,7 @@ static ZIO_SIG_CONFIGURE_FUNCTION(zap_isdn_configure_span)
|
|||||||
&isdn_data->q931);
|
&isdn_data->q931);
|
||||||
|
|
||||||
Q921SetLogCB(&isdn_data->q921, &zap_isdn_q921_log, isdn_data);
|
Q921SetLogCB(&isdn_data->q921, &zap_isdn_q921_log, isdn_data);
|
||||||
Q921SetLogLevel(&isdn_data->q921, Q921_LOG_NONE);
|
Q921SetLogLevel(&isdn_data->q921, (Q921LogLevel_t)q921loglevel);
|
||||||
|
|
||||||
Q931Api_InitTrunk(&isdn_data->q931,
|
Q931Api_InitTrunk(&isdn_data->q931,
|
||||||
dialect,
|
dialect,
|
||||||
@ -1794,7 +1784,7 @@ static ZIO_SIG_CONFIGURE_FUNCTION(zap_isdn_configure_span)
|
|||||||
span);
|
span);
|
||||||
|
|
||||||
Q931SetLogCB(&isdn_data->q931, &zap_isdn_q931_log, isdn_data);
|
Q931SetLogCB(&isdn_data->q931, &zap_isdn_q931_log, isdn_data);
|
||||||
Q931SetLogLevel(&isdn_data->q931, Q931_LOG_DEBUG);
|
Q931SetLogLevel(&isdn_data->q931, (Q931LogLevel_t)q931loglevel);
|
||||||
|
|
||||||
isdn_data->q931.autoRestartAck = 1;
|
isdn_data->q931.autoRestartAck = 1;
|
||||||
isdn_data->q931.autoConnectAck = 0;
|
isdn_data->q931.autoConnectAck = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user