]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
OPENZAP-22 add configuration settable debug levels for isdn trunks
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 3 Oct 2008 21:57:57 +0000 (21:57 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 3 Oct 2008 21:57:57 +0000 (21:57 +0000)
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@580 a93c3328-9c30-0410-af19-c9cd2b2d52af

libs/openzap/.update
libs/openzap/conf/openzap.conf.xml
libs/openzap/mod_openzap/mod_openzap.c
libs/openzap/src/isdn/Q921.c
libs/openzap/src/isdn/Q931.c
libs/openzap/src/isdn/include/Q921.h
libs/openzap/src/isdn/include/Q931.h
libs/openzap/src/ozmod/ozmod_isdn/ozmod_isdn.c

index 5009a80d3aa12a9089671218899c8c5c67bde9de..e9475b68ed8666fe4d30bb71cff8af632f28ba6b 100644 (file)
@@ -1 +1 @@
-Tue Jun  3 17:09:07 EDT 2008
+Fri Oct  3 17:54:41 EDT 2008
index 8326505177ba2c210f5d65a3f674bbff9ea6c0b9..bfa2bc0391df12f62066e8367bdd3c32f4505d8d 100644 (file)
@@ -5,6 +5,25 @@
     <!--<param name="enable-analog-option" value="call-swap"/>-->
     <!--<param name="enable-analog-option" value="3-way"/>-->
   </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 -->
   <analog_spans>
     <span id="1">
index 5ea4e7728da852c0946c2069f9f0464b561b0c53..1fa56ea3934c8c1baffca4e1902a99eb2e025a8b 100644 (file)
@@ -1794,7 +1794,9 @@ static switch_status_t load_config(void)
                        zap_span_t *span = NULL;
                        char *tonegroup = NULL;
                        uint32_t opts = 0;
-                       
+                       int q921loglevel = -1;
+                       int q931loglevel = -1;
+
                        for (param = switch_xml_child(myspan, "param"); param; param = param->next) {
                                char *var = (char *) switch_xml_attr_soft(param, "name");
                                char *val = (char *) switch_xml_attr_soft(param, "value");
@@ -1805,6 +1807,14 @@ static switch_status_t load_config(void)
                                        mode = val;
                                } else if (!strcasecmp(var, "dialect")) {
                                        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")) {
                                        context = val;
                                } else if (!strcasecmp(var, "suggest-channel") && switch_true(val)) {
@@ -1813,8 +1823,7 @@ static switch_status_t load_config(void)
                                        dialplan = val;
                                } 
                        }
-
-                               
+       
                        if (!id && !name) {
                                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "span missing required param 'id'\n");
                                continue;
@@ -1849,6 +1858,8 @@ static switch_status_t load_config(void)
                        if (zap_configure_span("isdn", span, on_clear_channel_signal, 
                                                                   "mode", mode, 
                                                                   "dialect", dialect,
+                                                                  "q921loglevel", q921loglevel,
+                                                                  "q931loglevel", q931loglevel,
                                                                   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);
                                continue;
index a3e5ec37833534355cd565b61e3bc58ce58664bf..7667203227534e0370639355c479bc1e06260d7f 100644 (file)
@@ -2993,6 +2993,12 @@ void Q921SetLogLevel(L2TRUNK trunk, Q921LogLevel_t level)
        if(!trunk)
                return;
 
+    if (level < Q921_LOG_NONE) {
+        level = Q921_LOG_NONE;
+    } else if (level > Q921_LOG_DEBUG) {
+        level = Q921_LOG_DEBUG;
+    }
+
        trunk->loglevel = level;
 }
 
index b29bcf97dda1bb4a271668dea13110c239d67178..a235253c3a7c1172cdbd5bff942c421f115d5c75 100644 (file)
@@ -860,6 +860,15 @@ void Q931SetLogCB(Q931_TrunkInfo_t *trunk, Q931LogCB_t func, void *priv)
  */
 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;
 }
 
index f09fa7577c5d12d8bc6e2dcb6a87cb3b79ec1ad4..cb21a157eaffdace50f2f53660b661dc5b2f8b2e 100644 (file)
@@ -119,7 +119,10 @@ typedef enum                       /* Type of connection           */
 
 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_WARNING,
        Q921_LOG_NOTICE,
index e05c7e9dcefe87cd5889301948486426fed69c4f..9877912f797ada719fce0f4c9e8003e9b19de318 100644 (file)
@@ -634,12 +634,15 @@ typedef struct {
 typedef struct Q931_TrunkInfo Q931_TrunkInfo_t;
 
 typedef enum {
-       Q931_LOG_NONE = 0,
-       Q931_LOG_ERROR,
-       Q931_LOG_WARNING,
-       Q931_LOG_NOTICE,
-       Q931_LOG_INFO,
-       Q931_LOG_DEBUG
+    Q931_LOG_NONE = -1,
+    Q931_LOG_EMERG,
+    Q931_LOG_ALERT,
+    Q931_LOG_CRIT,
+    Q931_LOG_ERROR,
+    Q931_LOG_WARNING,
+    Q931_LOG_NOTICE,
+    Q931_LOG_INFO,
+    Q931_LOG_DEBUG
 } Q931LogLevel_t;
 
 typedef L3INT (*Q931Tx34CB_t) (void *,L3UCHAR *, L3INT);
index a9170d0d2b6edc2cbbbf7a397070d8139e01dd4a..87d0cf595ff53373dfed075832e01ef732524d09 100644 (file)
@@ -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)
 {
        zap_span_t *span = (zap_span_t *) pvt;
-       int loglevel = ZAP_LOG_LEVEL_DEBUG;
 
-       switch(level) {
-       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);
+       zap_log("Span", "Q.921", span->span_id, (int)level, "%s", msg);
        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_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;
 }
 
@@ -1697,6 +1671,8 @@ static ZIO_SIG_CONFIGURE_FUNCTION(zap_isdn_configure_span)
        char *var, *val;
        Q931Dialect_t dialect = Q931_Dialect_National;
        uint32_t opts = 0;
+    int q921loglevel = 0;
+    int q931loglevel = 0;
 
        if (span->signal_type) {
                snprintf(span->last_error, sizeof(span->last_error), "Span is already configured for signalling [%d].", span->signal_type);
@@ -1760,9 +1736,23 @@ static ZIO_SIG_CONFIGURE_FUNCTION(zap_isdn_configure_span)
                                break;
                        }
                        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;
+            }
                }
        }
-
+                                       
        span->start = zap_isdn_start;
        isdn_data->sig_cb = sig_cb;
        isdn_data->dchans[0] = dchans[0];
@@ -1781,7 +1771,7 @@ static ZIO_SIG_CONFIGURE_FUNCTION(zap_isdn_configure_span)
                                   &isdn_data->q931);
 
        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,
                                          dialect,
@@ -1794,7 +1784,7 @@ static ZIO_SIG_CONFIGURE_FUNCTION(zap_isdn_configure_span)
                                          span);
 
        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.autoConnectAck = 0;