aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-02-12 11:56:51 +0100
committerHarald Welte <laforge@gnumonks.org>2018-02-12 11:56:51 +0100
commit329588721f8f6afe5de7bc890bc007e0cecf674d (patch)
treeeb6e5ce9a6beb64f58b1e1d563eceb3df6a2619b
parent474e5a768ac162f92ab289ea581865d4c59d704d (diff)
MT Calls: Copy bearer capabilities from NNCC primitive to trans
When we receive a MNCC_SETUP_REQ primitive from the external MNCC handler, we must not only encode it into the TS 04.08 CC SETUP, but also keep it around in the "trans" structure representing this voice call, as it is needed e.g. at BSSMAP ASSIGNMENT time. Change-Id: Ib6919d148ff6687112e8166dbde947be19e70a76 Related: OS#2322 Closes: OS#2929
-rw-r--r--src/libmsc/gsm_04_08.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index 7b6e94a58..6c9548867 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -1767,8 +1767,12 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg)
gsm48_start_cc_timer(trans, 0x303, GSM48_T303);
/* bearer capability */
- if (setup->fields & MNCC_F_BEARER_CAP)
+ if (setup->fields & MNCC_F_BEARER_CAP) {
+ /* Create a copy of the bearer capability in the transaction struct, so we
+ * can use this information later */
+ memcpy(&trans->bearer_cap, &setup->bearer_cap, sizeof(trans->bearer_cap));
gsm48_encode_bearer_cap(msg, 0, &setup->bearer_cap);
+ }
/* facility */
if (setup->fields & MNCC_F_FACILITY)
gsm48_encode_facility(msg, 0, &setup->facility);