Move DTX settings to BTS

* Add per-BTS DTX settings
* Configure Uplink and Downlink DTX separately
* Deprecate global DTX option (it was never tested/used anyway)
* Use libosmocore function for DTX indicator in System
  Information (previously it was incorrectly assigned for half-rate
  channels)

Related: OS#22
Change-Id: I3d55168475ad47044b6238b55846ea22bdd518a4
Reviewed-on: https://gerrit.osmocom.org/40
Tested-by: Jenkins Builder
Reviewed-by: Holger Freyther <holger@freyther.de>
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c
index df76788..6cf4e0b 100644
--- a/openbsc/src/libbsc/abis_rsl.c
+++ b/openbsc/src/libbsc/abis_rsl.c
@@ -35,6 +35,8 @@
 #include <openbsc/bsc_rll.h>
 #include <openbsc/debug.h>
 #include <osmocom/gsm/tlv.h>
+#include <osmocom/gsm/protocol/gsm_04_08.h>
+#include <osmocom/gsm/protocol/gsm_08_58.h>
 #include <openbsc/paging.h>
 #include <openbsc/signal.h>
 #include <openbsc/meas_rep.h>
@@ -345,10 +347,11 @@
 	memset(cm, 0, sizeof(*cm));
 
 	/* FIXME: what to do with data calls ? */
-	if (lchan->ts->trx->bts->network->dtx_enabled)
-		cm->dtx_dtu = 0x03;
-	else
-		cm->dtx_dtu = 0x00;
+	cm->dtx_dtu = 0;
+	if (lchan->ts->trx->bts->dtxu != GSM48_DTX_SHALL_NOT_BE_USED)
+		cm->dtx_dtu |= RSL_CMOD_DTXu;
+	if (lchan->ts->trx->bts->dtxd)
+		cm->dtx_dtu |= RSL_CMOD_DTXd;
 
 	/* set TCH Speech/Data */
 	cm->spd_ind = lchan->rsl_cmode;