aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2019-02-04 16:46:55 +0100
committerPhilipp Maier <pmaier@sysmocom.de>2019-02-07 10:01:46 +0100
commit896950ab82729e7ef5b57057aff797519d603b7f (patch)
treeebf9c3be4416b4ce6186eb89eee5d4f0ff48e1a8
parent845285077d28825da11cdfe845e3bf1e9bd5b23f (diff)
a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND
When a call ends that has been established in an CSFB context, we should add a CSFB Indication IE to the BSSMAP CLEAR COMMAND to instruct the BSC to add further CSFB related IEs into the RR RELEASE. - Check if an SGs association exists and add CSFB Indication IE Change-Id: I6cfa4b3becdd0138d74e2e1eddd83a0b1568c1de Related: OS#3778
-rw-r--r--src/libmsc/a_iface.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c
index 0811734..3a7690d 100644
--- a/src/libmsc/a_iface.c
+++ b/src/libmsc/a_iface.c
@@ -416,10 +416,15 @@ int a_iface_tx_assignment(const struct gsm_trans *trans)
int a_iface_tx_clear_cmd(struct ran_conn *conn)
{
struct msgb *msg;
+ struct vlr_subscr *vsub = conn->vsub;
+ bool csfb_ind = false;
LOGPCONN(conn, LOGL_INFO, "Tx BSSMAP CLEAR COMMAND to BSC\n");
- msg = gsm0808_create_clear_command(GSM0808_CAUSE_CALL_CONTROL);
+ if (vsub && vsub->sgs_fsm->state == SGS_UE_ST_ASSOCIATED)
+ csfb_ind = true;
+
+ msg = gsm0808_create_clear_command2(GSM0808_CAUSE_CALL_CONTROL, csfb_ind);
return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg);
}