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)
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;
}
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) {
}
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");
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;
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 */
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 */
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;
};