summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/host/layer23/src/mobile/gsm48_rr.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c
index c074323f..a4cc28a0 100644
--- a/src/host/layer23/src/mobile/gsm48_rr.c
+++ b/src/host/layer23/src/mobile/gsm48_rr.c
@@ -5502,7 +5502,19 @@ int gsm48_rr_init(struct osmocom_ms *ms)
start_rr_t_meas(rr, 1, 0);
- rr->audio_mode = AUDIO_TX_MICROPHONE | AUDIO_RX_SPEAKER;
+ /* Determine TCH frame I/O target */
+ switch (ms->settings.audio.io_target) {
+ case AUDIO_IO_HARDWARE: /* L1 hardware (e.g. Calypso DSP) */
+ rr->audio_mode = AUDIO_RX_SPEAKER | AUDIO_TX_MICROPHONE;
+ break;
+ case AUDIO_IO_SOCKET: /* External MNCC application (e.g. LCR) */
+ case AUDIO_IO_GAPK: /* Built-in GAPK-based back-end */
+ rr->audio_mode = AUDIO_RX_TRAFFIC_IND | AUDIO_TX_TRAFFIC_REQ;
+ break;
+ case AUDIO_IO_NONE: /* Nothing, don't care about TCH */
+ default:
+ rr->audio_mode = 0x00;
+ }
return 0;
}