diff --git a/src/lower_mac/tetra_lower_mac.c b/src/lower_mac/tetra_lower_mac.c
index 08d301e..aef2ec7 100644
--- a/src/lower_mac/tetra_lower_mac.c
+++ b/src/lower_mac/tetra_lower_mac.c
@@ -39,6 +39,9 @@
 #include "tetra_upper_mac.h"
 #include <lower_mac/viterbi.h>
 
+extern int ssi;
+extern int tsn;
+
 struct tetra_blk_param {
 	const char *name;
 	uint16_t type345_bits;
@@ -198,7 +201,7 @@ void tp_sap_udata_ind(enum tp_sap_data_type type, const uint8_t *bits, unsigned
 		/* Open target file */
 		//snprintf(fname, 100, "traffic_%d_%d.out", tcd->time.tn, tms->cur_burst.is_traffic);
 		//snprintf(fname, 100, "traffic_%d.out", tcd->time.tn);
-		snprintf(fname, 199, "%s/traffic_%d.out", dumpdir, 666	/*tms->cur_burst.is_traffic*/);
+		snprintf(fname, 199, "%s/traffic_%d_%d.out", dumpdir, tms->cur_burst.is_traffic, tsn);
 		f = fopen(fname, "ab");
 
 		/* Generate a block */
@@ -224,13 +227,13 @@ void tp_sap_udata_ind(enum tp_sap_data_type type, const uint8_t *bits, unsigned
 		/* Close */
 		fclose(f);
 		memset(fname, 0x0, sizeof(char)*200);
-		//snprintf(fname, 199, "%s/traffic_%d.txt", dumpdir, tms->cur_burst.is_traffic);
+		snprintf(fname, 199, "%s/traffic_%d_%d.txt", dumpdir, tms->cur_burst.is_traffic, tsn);
 		/* Write used ssi */
-		/*f=fopen(fname, "a");
+		f=fopen(fname, "a");
 		memset(fname, 0x0, sizeof(char)*200);
 		snprintf(fname, 199, "%d\n", ssi);
 		fwrite(fname, sizeof(char), strlen(fname), f);
-		fclose(f);*/
+		fclose(f);
 	}
 
 	/* end traffic dump patch */
diff --git a/src/tetra-rx.c b/src/tetra-rx.c
index 6d87b1f..e5797b2 100644
--- a/src/tetra-rx.c
+++ b/src/tetra-rx.c
@@ -42,6 +42,8 @@ char *dumpdir;
 
 char *pcap_file_path;
 int arfcn;
+int ssi;
+int tsn;
 
 static int process_sym_fl(float fl)
 {
diff --git a/src/tetra_gsmtap.c b/src/tetra_gsmtap.c
index 020c9b7..4edf20e 100644
--- a/src/tetra_gsmtap.c
+++ b/src/tetra_gsmtap.c
@@ -21,6 +21,7 @@ static struct gsmtap_inst *g_gti = NULL;
 FILE *pcap_file;
 extern char *pcap_file_path;
 extern int arfcn;
+extern int tsn;
 
 static const uint8_t lchan2gsmtap[] = {
 	[TETRA_LC_SCH_F]	= GSMTAP_TETRA_SCH_F,
@@ -52,6 +53,7 @@ struct msgb *tetra_gsmtap_makemsg(struct tetra_tdma_time *tm, enum tetra_log_cha
 	gh->hdr_len = sizeof(*gh)/4;
 	gh->type = GSMTAP_TYPE_TETRA_I1;
 	gh->timeslot = ts;
+  tsn = ts;
 	gh->sub_slot = ss;
 	gh->snr_db = snr;
 	gh->arfcn = htons(arfcn);
diff --git a/src/tetra_upper_mac.c b/src/tetra_upper_mac.c
index f93113e..eba9d6e 100644
--- a/src/tetra_upper_mac.c
+++ b/src/tetra_upper_mac.c
@@ -38,6 +38,8 @@
 #include "tetra_mle_pdu.h"
 #include "tetra_gsmtap.h"
 
+extern int ssi;
+
 static int rx_tm_sdu(struct tetra_mac_state *tms, struct msgb *msg, unsigned int len);
 
 static void rx_bcast(struct tetra_tmvsap_prim *tmvp, struct tetra_mac_state *tms)
@@ -181,6 +183,8 @@ static void rx_resrc(struct tetra_tmvsap_prim *tmvp, struct tetra_mac_state *tms
 		rx_tm_sdu(tms, msg, len_bits);
 	}
 
+  ssi = rsd.addr.ssi;
+
 out:
 	printf("\n");
 }
