add gst_ts_name() function to obtain human-readable channel name

diff --git a/include/openbsc/gsm_data.h b/include/openbsc/gsm_data.h
index 50a11fa..1179152 100644
--- a/include/openbsc/gsm_data.h
+++ b/include/openbsc/gsm_data.h
@@ -320,6 +320,7 @@
 const char *gsm_pchan_name(enum gsm_phys_chan_config c);
 const char *gsm_lchan_name(enum gsm_chan_t c);
 const char *gsm_chreq_name(enum gsm_chreq_reason_t c);
+char *gsm_ts_name(struct gsm_bts_trx_ts *ts);
 
 enum gsm_e1_event {
 	EVT_E1_NONE,
diff --git a/src/gsm_data.c b/src/gsm_data.c
index 0593f6f..dd57142 100644
--- a/src/gsm_data.c
+++ b/src/gsm_data.c
@@ -143,3 +143,13 @@
 	}
 	return net;
 }
+
+static char ts2str[255];
+
+char *gsm_ts_name(struct gsm_bts_trx_ts *ts)
+{
+	snprintf(ts2str, sizeof(ts2str), "(bts=%d,trx=%d,ts=%d)",
+		 ts->trx->bts->nr, ts->trx->nr, ts->nr);
+
+	return ts2str;
+}