]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: added trace type to raw traces
authorDavid Yat Sin <dyatsin@sangoma.com>
Thu, 16 Dec 2010 20:57:46 +0000 (15:57 -0500)
committerDavid Yat Sin <dyatsin@sangoma.com>
Thu, 16 Dec 2010 20:59:13 +0000 (15:59 -0500)
libs/freetdm/src/ftdm_io.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c
libs/freetdm/src/include/freetdm.h

index 1750d6d7d9e74bc9d56e6f0849cb67a5d4abab9d..8755d738750ec0abd694ca51f322e61f27a3d466 100644 (file)
@@ -281,7 +281,10 @@ FTDM_ENUM_NAMES(SIGNALING_STATUS_NAMES, SIGSTATUS_STRINGS)
 FTDM_STR2ENUM(ftdm_str2ftdm_signaling_status, ftdm_signaling_status2str, ftdm_signaling_status_t, SIGNALING_STATUS_NAMES, FTDM_SIG_STATE_INVALID)
 
 FTDM_ENUM_NAMES(TRACE_DIR_NAMES, TRACE_DIR_STRINGS)
-FTDM_STR2ENUM(ftdm_str2ftdm_trace_dir, ftdm_trace_dir2str, ftdm_trace_dir_t, TRACE_DIR_NAMES, FTDM_TRACE_INVALID)
+FTDM_STR2ENUM(ftdm_str2ftdm_trace_dir, ftdm_trace_dir2str, ftdm_trace_dir_t, TRACE_DIR_NAMES, FTDM_TRACE_DIR_INVALID)
+
+FTDM_ENUM_NAMES(TRACE_TYPE_NAMES, TRACE_TYPE_STRINGS)
+FTDM_STR2ENUM(ftdm_str2ftdm_trace_type, ftdm_trace_type2str, ftdm_trace_type_t, TRACE_TYPE_NAMES, FTDM_TRACE_TYPE_INVALID)
 
 FTDM_ENUM_NAMES(TON_NAMES, TON_STRINGS)
 FTDM_STR2ENUM(ftdm_str2ftdm_ton, ftdm_ton2str, ftdm_ton_t, TON_NAMES, FTDM_TON_INVALID)
@@ -2475,12 +2478,9 @@ FT_DECLARE(ftdm_status_t) _ftdm_channel_call_place(const char *file, const char
        UNREFERENCED_PARAMETER(func);
        UNREFERENCED_PARAMETER(line);
 #endif
-
-       ftdm_wait_for_flag_cleared(ftdmchan, FTDM_CHANNEL_STATE_CHANGE, 100);
-
        ftdm_call_set_call_id(&ftdmchan->caller_data);
+       ftdm_wait_for_flag_cleared(ftdmchan, FTDM_CHANNEL_STATE_CHANGE, 100);
        ftdm_channel_unlock(ftdmchan);
-
        return status;
 }
 
index 3afdaa599e9946910b096b51510ee1d0a90fd955..a90968f64bd353f8db012db6881e23c2ce729901 100644 (file)
@@ -790,9 +790,9 @@ void sngisdn_rcv_q931_trace(InMngmt *trc, Buffer *mBuf)
        mlen = ((SsMsgInfo*)(mBuf->b_rptr))->len;
        
        if (trc->t.trc.evnt == TL3PKTTX) {
-               dir = FTDM_TRACE_OUTGOING;
+               dir = FTDM_TRACE_DIR_OUTGOING;
        } else {
-               dir = FTDM_TRACE_INCOMING;
+               dir = FTDM_TRACE_DIR_INCOMING;
        }
        
        if (mlen) {
@@ -837,9 +837,9 @@ void sngisdn_rcv_q921_trace(BdMngmt *trc, Buffer *mBuf)
        }
 
        if (trc->t.trc.evnt == TL2FRMTX) {
-               dir = FTDM_TRACE_OUTGOING;
+               dir = FTDM_TRACE_DIR_OUTGOING;
        } else {
-               dir = FTDM_TRACE_INCOMING;
+               dir = FTDM_TRACE_DIR_INCOMING;
        }
        
        ftdm_assert(mBuf != NULLP, "Received a Q921 trace with no buffer");
index c03976a1c29f1e8b0eac24f6a7386fcfcce66a4d..fd9edeba8dfa80b70181f9e045d924fa70cc7e97 100644 (file)
@@ -118,8 +118,8 @@ void sngisdn_trace_raw_q921(sngisdn_span_data_t *signal_data, ftdm_trace_dir_t d
        sigev.channel = signal_data->dchan;
        sigev.event_id = FTDM_SIGEVENT_TRACE_RAW;
        
-       sigev.ev_data.logevent.dir = dir;
-       sigev.ev_data.logevent.level = 2;
+       sigev.ev_data.trace.dir = dir;
+       sigev.ev_data.trace.type = FTDM_TRACE_TYPE_Q921;
        
        /* TODO: Map trace to call ID here */
        sigev.call_id = 0;
@@ -226,8 +226,8 @@ void sngisdn_trace_raw_q931(sngisdn_span_data_t *signal_data, ftdm_trace_dir_t d
        sigev.channel = signal_data->dchan;
        sigev.event_id = FTDM_SIGEVENT_TRACE_RAW;
 
-       sigev.ev_data.logevent.dir = dir;
-       sigev.ev_data.logevent.level = 3;
+       sigev.ev_data.trace.dir = dir;
+       sigev.ev_data.trace.type = FTDM_TRACE_TYPE_Q931;
        
        /* TODO: Map trace to call ID here */
        
index 41bf819a1cb6cde7cc58ec1ac92934a327449511..b75df1eca173628d5f0e870f9b76403a5ee3ac2c 100644 (file)
@@ -390,21 +390,31 @@ typedef struct {
 
 typedef enum {
        /* This is an received frame */
-       FTDM_TRACE_INCOMING,
+       FTDM_TRACE_DIR_INCOMING,
        /* This is a transmitted frame */
-       FTDM_TRACE_OUTGOING,
+       FTDM_TRACE_DIR_OUTGOING,
        /* Invalid */
-       FTDM_TRACE_INVALID,
+       FTDM_TRACE_DIR_INVALID,
 } ftdm_trace_dir_t;
 #define TRACE_DIR_STRINGS "INCOMING", "OUTGOING", "INVALID"
 
 /*! \brief Move string to ftdm_trace_dir_t and viceversa */
 FTDM_STR2ENUM_P(ftdm_str2ftdm_trace_dir, ftdm_trace_dir2str, ftdm_trace_dir_t)
 
+typedef enum {
+       FTDM_TRACE_TYPE_Q931,
+       FTDM_TRACE_TYPE_Q921,
+       FTDM_TRACE_TYPE_INVALID,
+} ftdm_trace_type_t;
+#define TRACE_TYPE_STRINGS "Q931", "Q921", "INVALID"
+
+/*! \brief Move string to ftdm_trace_type_t and viceversa */
+FTDM_STR2ENUM_P(ftdm_str2ftdm_trace_type, ftdm_trace_type2str, ftdm_trace_type_t)
+
 typedef struct {
        /* Direction - incoming or outgoing */
        ftdm_trace_dir_t dir;
-       uint8_t level; /* 1 for phy layer, 2 for q921/mtp2, 3 for q931/mtp3 */
+       ftdm_trace_type_t type;
 } ftdm_event_trace_t;
 
 /*! \brief Generic signaling message */
@@ -418,7 +428,7 @@ struct ftdm_sigmsg {
        uint32_t call_id; /*!< unique call id for this call */
        union {
                ftdm_event_sigstatus_t sigstatus; /*!< valid if event_id is FTDM_SIGEVENT_SIGSTATUS_CHANGED */
-               ftdm_event_trace_t logevent;    /*!< valid if event_id is FTDM_SIGEVENT_TRACE or FTDM_SIGEVENT_TRACE_RAW */
+               ftdm_event_trace_t trace;       /*!< valid if event_id is FTDM_SIGEVENT_TRACE or FTDM_SIGEVENT_TRACE_RAW */
        }ev_data;
 };