<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/12935">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Harald Welte: Looks good to me, approved
  daniel: Looks good to me, but someone else must approve
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND<br><br>When a CSFB voice call is cleared by the MSC, it must include the<br>CSFB INDICATOR in order to trigger the BSC to perform actions<br>required for Fast Return to LTE.<br><br>This patch changes TC_sgsap_lu_and_mt_call() and<br>TC_bssap_lu_sgsap_lu_and_mt_call() to ensure the CSFB INDICATOR IE<br>is present as expected.<br><br>Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395<br>---<br>M library/BSSMAP_Templates.ttcn<br>M msc/BSC_ConnectionHandler.ttcn<br>M msc/MSC_Tests.ttcn<br>3 files changed, 23 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn</span><br><span>index a30b8e7..b538095 100644</span><br><span>--- a/library/BSSMAP_Templates.ttcn</span><br><span>+++ b/library/BSSMAP_Templates.ttcn</span><br><span>@@ -638,6 +638,21 @@</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+template PDU_BSSAP tr_BSSMAP_ClearCommandCSFB modifies tr_BSSAP_BSSMAP := {</span><br><span style="color: hsl(120, 100%, 40%);">+       pdu := {</span><br><span style="color: hsl(120, 100%, 40%);">+              bssmap := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   clearCommand := {</span><br><span style="color: hsl(120, 100%, 40%);">+                             messageType := '20'O,   /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                             layer3HeaderInfo := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                                cause := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                           cSFB_Indication := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                  elementIdentifier := '8F'O</span><br><span style="color: hsl(120, 100%, 40%);">+                            }</span><br><span style="color: hsl(120, 100%, 40%);">+                     }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> template (value) PDU_BSSAP ts_BSSMAP_ClearComplete</span><br><span> modifies ts_BSSAP_BSSMAP := {</span><br><span>        pdu := {</span><br><span>diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn</span><br><span>index 7b88192..b041007 100644</span><br><span>--- a/msc/BSC_ConnectionHandler.ttcn</span><br><span>+++ b/msc/BSC_ConnectionHandler.ttcn</span><br><span>@@ -646,13 +646,18 @@</span><br><span>        setverdict(pass);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_call_hangup(inout CallParameters cpars, boolean release_by_ms)</span><br><span style="color: hsl(120, 100%, 40%);">+function f_call_hangup(inout CallParameters cpars, boolean release_by_ms, boolean is_csfb := false)</span><br><span> runs on BSC_ConnHdlr {</span><br><span> </span><br><span>       var MobileIdentityLV mi;</span><br><span>     var MNCC_PDU mncc;</span><br><span>   var MgcpCommand mgcp_cmd;</span><br><span>    var boolean respond_to_dlcx;</span><br><span style="color: hsl(120, 100%, 40%);">+  var template PDU_BSSAP t_clear := tr_BSSMAP_ClearCommand;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (is_csfb) {</span><br><span style="color: hsl(120, 100%, 40%);">+                t_clear := tr_BSSMAP_ClearCommandCSFB;</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span> </span><br><span>        MNCC.send(ts_MNCC_DISC_req(cpars.mncc_callref, valueof(ts_MNCC_cause(23))));</span><br><span>         BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id)));</span><br><span>@@ -673,7 +678,7 @@</span><br><span> </span><br><span>    /* clearing of radio channel */</span><br><span>      interleave {</span><br><span style="color: hsl(0, 100%, 40%);">-    [] BSSAP.receive(tr_BSSMAP_ClearCommand) {</span><br><span style="color: hsl(120, 100%, 40%);">+    [] BSSAP.receive(t_clear) {</span><br><span>          BSSAP.send(ts_BSSMAP_ClearComplete);</span><br><span>                 BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND);</span><br><span>               }</span><br><span>diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn</span><br><span>index 00f9bec..7129f81 100644</span><br><span>--- a/msc/MSC_Tests.ttcn</span><br><span>+++ b/msc/MSC_Tests.ttcn</span><br><span>@@ -4471,7 +4471,7 @@</span><br><span>       /* Complete the call, hold it for some time and then tear it down */</span><br><span>         f_mt_call_complete(cpars);</span><br><span>   f_sleep(3.0);</span><br><span style="color: hsl(0, 100%, 40%);">-   f_call_hangup(cpars, true);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_call_hangup(cpars, true, is_csfb := true);</span><br><span> </span><br><span>     /* Make sure that subscriber is still present and the SGs association is in tact (ref-counting) */</span><br><span>   f_ctrl_get_exp(IPA_CTRL, "fsm.SGs-UE.id.imsi:" & hex2str(g_pars.imsi) & ".state", "SGs-ASSOCIATED");</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12935">change 12935</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/12935"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 </div>
<div style="display:none"> Gerrit-Change-Number: 12935 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: daniel <dwillmann@sysmocom.de> </div>