diff options
Diffstat (limited to 'openbsc/src/libbsc')
-rw-r--r-- | openbsc/src/libbsc/abis_rsl.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 8356bd9a5..55db87227 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -578,6 +578,9 @@ static int rsl_rf_chan_release(struct gsm_lchan *lchan, int error) { struct abis_rsl_dchan_hdr *dh; struct msgb *msg; +#ifdef ROLE_BSC + struct scall_signal_data sigdata; +#endif int rc; if (lchan->state == LCHAN_S_REL_ERR) { @@ -611,6 +614,14 @@ static int rsl_rf_chan_release(struct gsm_lchan *lchan, int error) rc = abis_rsl_sendmsg(msg); +#ifdef ROLE_BSC + /* Dispatch a S_SCALL_RELEASED signal if this was a silent call */ + if(lchan->belongs_to_silent_call) { + sigdata.data = lchan->silent_call_data; + osmo_signal_dispatch(SS_SCALL, S_SCALL_RELEASED, &sigdata); + } +#endif + /* BTS will respond by RF CHAN REL ACK */ #ifdef HSL_SR_1_0 /* The HSL Femto seems to 'forget' sending a REL ACK for TS1...TS7 */ |