aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/bsc/gsm_data.h2
-rw-r--r--src/osmo-bsc/handover_fsm.c2
-rw-r--r--src/osmo-bsc/lchan_fsm.c1
3 files changed, 4 insertions, 1 deletions
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index a5fe1f1bd..867a46c9a 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -578,6 +578,8 @@ struct gsm_lchan {
/* AMR bits */
uint8_t mr_ms_lv[7];
uint8_t mr_bts_lv[7];
+ /* AMR bits were based on these rate bits: */
+ uint16_t s15_s0;
/* Established data link layer services */
uint8_t sapis[8];
diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c
index 35f2e5553..578cff351 100644
--- a/src/osmo-bsc/handover_fsm.c
+++ b/src/osmo-bsc/handover_fsm.c
@@ -715,7 +715,7 @@ static void send_handover_performed(struct gsm_subscriber_connection *conn)
if (gscon_is_aoip(conn)) {
/* Extrapolate speech codec from speech mode */
gsm0808_speech_codec_from_chan_type(&sc, ho_perf_params.speech_version_chosen);
- sc.cfg = conn->assignment.req.s15_s0;
+ sc.cfg = conn->lchan->s15_s0;
memcpy(&ho_perf_params.speech_codec_chosen, &sc, sizeof(sc));
ho_perf_params.speech_codec_chosen_present = true;
}
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c
index f344cf990..70f762225 100644
--- a/src/osmo-bsc/lchan_fsm.c
+++ b/src/osmo-bsc/lchan_fsm.c
@@ -544,6 +544,7 @@ static void lchan_fsm_wait_ts_ready_onenter(struct osmo_fsm_inst *fi, uint32_t p
lchan_fail("Can not generate multirate configuration IE\n");
return;
}
+ lchan->s15_s0 = info->s15_s0;
}
switch (info->chan_mode) {