jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/33605 )
Change subject: ASCI: Do not release channel, if SAPI 0 is released
......................................................................
ASCI: Do not release channel, if SAPI 0 is released
A VGCS channel must not release, if all SAPIs (including 0) are
released. lchan FSM will ignore this.
Change-Id: Ief1e1894362c4917f6e0092268690f68c8193750
Related: OS#4852
---
M include/osmocom/bsc/lchan_fsm.h
M src/osmo-bsc/lchan_fsm.c
2 files changed, 29 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/05/33605/1
diff --git a/include/osmocom/bsc/lchan_fsm.h b/include/osmocom/bsc/lchan_fsm.h
index b179a7f..cf9f20f 100644
--- a/include/osmocom/bsc/lchan_fsm.h
+++ b/include/osmocom/bsc/lchan_fsm.h
@@ -78,6 +78,8 @@
bool lchan_may_receive_data(struct gsm_lchan *lchan);
+bool lchan_is_asci(struct gsm_lchan *lchan);
+
void lchan_forget_conn(struct gsm_lchan *lchan);
void lchan_fsm_skip_error(struct gsm_lchan *lchan);
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c
index 33ae6cf..8e9d698 100644
--- a/src/osmo-bsc/lchan_fsm.c
+++ b/src/osmo-bsc/lchan_fsm.c
@@ -69,6 +69,13 @@
}
}
+bool lchan_is_asci(struct gsm_lchan *lchan)
+{
+ if (lchan->activate.info.vgcs || lchan->activate.info.vbs)
+ return true;
+ return false;
+}
+
static void lchan_on_mode_modify_success(struct gsm_lchan *lchan)
{
lchan->modify.concluded = true;
@@ -1228,8 +1235,11 @@
/* Releasing SAPI 0 means the conn becomes invalid; but not if the link_id contains a SACCH flag. */
if (lchan->conn && sapi == 0 && !(link_id & 0xc0)) {
- LOG_LCHAN(lchan, LOGL_DEBUG, "lchan is releasing\n");
- gscon_lchan_releasing(lchan->conn, lchan);
+ /* A VGCS channel may have all SAPIs (including SAPI 0) released.. */
+ if (!lchan_is_asci(lchan)) {
+ LOG_LCHAN(lchan, LOGL_DEBUG, "lchan is releasing\n");
+ gscon_lchan_releasing(lchan->conn, lchan);
+ }
/* if SAPI=0 is gone, it makes no sense if other SAPIs are still around,
* this is not a valid configuration and we should forget about them.
@@ -1257,7 +1267,8 @@
case LCHAN_EV_RLL_REL_IND:
case LCHAN_EV_RLL_REL_CONF:
handle_rll_rel_ind_or_conf(fi, event, data);
- if (!lchan_active_sapis(lchan, 0))
+ /* Only release channel, if there is no SAPI and this channel is not a VGCS channel. */
+ if (!lchan_active_sapis(lchan, 0) && !lchan_is_asci(lchan))
lchan_fsm_state_chg(LCHAN_ST_WAIT_RLL_RTP_RELEASED);
return;
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/33605
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ief1e1894362c4917f6e0092268690f68c8193750
Gerrit-Change-Number: 33605
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-MessageType: newchange
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/33606 )
Change subject: ASCI: Do not wait for RLL establishment
......................................................................
ASCI: Do not wait for RLL establishment
A VGCS channel is established, even if there is no RLL establishmnt.
RLL connection can be established or released by the talker, while
the channel is kept in established state all the time.
Change-Id: I96390924736029b92e54590157e38093be749dd9
Related: OS#4852
---
M src/osmo-bsc/lchan_fsm.c
1 file changed, 19 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/06/33606/1
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c
index 8e9d698..816d4b5 100644
--- a/src/osmo-bsc/lchan_fsm.c
+++ b/src/osmo-bsc/lchan_fsm.c
@@ -1040,9 +1040,10 @@
else if (requires_rtp_stream)
lchan_rtp_fsm_start(lchan);
- /* When activating a channel for VTY, skip waiting for activity from
+ /* When activating a channel for VTY or VGCS/VBS, skip waiting for activity from
* lchan_rtp_fsm, but only if no rtp stream is required. */
- if (lchan->activate.info.activ_for == ACTIVATE_FOR_VTY && !requires_rtp_stream) {
+ if ((lchan->activate.info.activ_for == ACTIVATE_FOR_VTY
+ || lchan->activate.info.activ_for == ACTIVATE_FOR_VGCS_CHANNEL) && !requires_rtp_stream) {
lchan_fsm_state_chg(LCHAN_ST_ESTABLISHED);
}
}
@@ -1065,7 +1066,8 @@
return;
case LCHAN_EV_RTP_READY:
- if (lchan->sapis[0] != LCHAN_SAPI_UNUSED)
+ /* If RLL was established or if it does not need to be establised, because of VGCS/VBS channel. */
+ if (lchan->sapis[0] != LCHAN_SAPI_UNUSED || lchan->activate.info.activ_for == ACTIVATE_FOR_VGCS_CHANNEL)
lchan_fsm_state_chg(LCHAN_ST_ESTABLISHED);
return;
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/33606
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I96390924736029b92e54590157e38093be749dd9
Gerrit-Change-Number: 33606
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-MessageType: newchange
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/33609 )
Change subject: ASCI: Send UPLINK RELEASE on dedicated channel to MSC
......................................................................
ASCI: Send UPLINK RELEASE on dedicated channel to MSC
If the phone is (still) on a dedicated channel, it may release the
uplink in case of a voice group call. It depends on the MSC how to
handle the situation. Currently it releases the call.
Generally the phone is assigned to the VGCS/VBS channel before it
releases the uplink.
Change-Id: Ib91c282ed36e82b38c0e738533e3a421de81a9a8
Related: OS#4852
---
M src/osmo-bsc/gsm_04_08_rr.c
1 file changed, 23 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/09/33609/1
diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c
index 6d74e43..78a4f45 100644
--- a/src/osmo-bsc/gsm_04_08_rr.c
+++ b/src/osmo-bsc/gsm_04_08_rr.c
@@ -1170,6 +1170,12 @@
* according to spec */
bsc_dtap(conn, link_id, msg);
break;
+ case GSM48_MT_RR_UPLINK_RELEASE:
+ /* When the calling phone releases the uplink before it has been assigned to the group
+ * channel, it will send an UPLINK RELEASE message on the dedicated channel. The MSC
+ * has to take care of it. (assigning the phone to the group channel) */
+ bsc_dtap(conn, link_id, msg);
+ break;
default:
/* Drop unknown RR message */
LOG_LCHAN(msg->lchan, LOGL_NOTICE, "Unknown RR message: %s\n",
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/33609
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ib91c282ed36e82b38c0e738533e3a421de81a9a8
Gerrit-Change-Number: 33609
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-MessageType: newchange