diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-02-12 11:56:51 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-02-12 11:56:51 +0100 |
commit | 329588721f8f6afe5de7bc890bc007e0cecf674d (patch) | |
tree | eb6e5ce9a6beb64f58b1e1d563eceb3df6a2619b | |
parent | 474e5a768ac162f92ab289ea581865d4c59d704d (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.c | 6 |
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); |