mncc: Use the default codec from the built-in mncc mode
In case of the RTP bridge mode we need to select the codec
ourselves. Rely on the same (incomplete) codec selection that
can be done using the mncc-int configuration node. This might
gain bearer capabilities support.
In case of a SDCCH a TCH/F will be attempted to be assigned.
This is an open issue for both modes and there should be a
preference for full or half-rate channels somewhere.
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index 4cfba1c..7db7586 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -52,6 +52,7 @@
#include <openbsc/bsc_api.h>
#include <openbsc/osmo_msc.h>
#include <openbsc/handover.h>
+#include <openbsc/mncc_int.h>
#include <osmocom/abis/e1_input.h>
#include <osmocom/core/bitvec.h>
@@ -3033,13 +3034,13 @@
/*
* *sigh* we need to pick a codec now. Pick the most generic one
* right now and hope we could fix that later on. This is very
- * similiar to the above routine.
- * TODO: Use the default codec version...
+ * similiar to the routine above.
+ * Fallback to the internal MNCC mode to select a route.
*/
if (lchan->tch_mode == GSM48_CMODE_SIGN) {
trans->conn->mncc_rtp_create_pending = 1;
- /* TODO... transport or fix the default type... */
- return gsm0808_assign_req(trans->conn, GSM48_CMODE_SPEECH_V1,
+ return gsm0808_assign_req(trans->conn,
+ mncc_codec_for_mode(lchan->type),
lchan->type != GSM_LCHAN_TCH_H);
}