<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/18971">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">rtp_fsm, vty: check with is_ipaccess_bts() before using IPACC<br><br>The IPACC protocol is an extension to the conventional RSL protocol<br>negotiate ip address and port for RTP/VoIP. This protocol is BTS<br>specific (sysmobts, ip-access nanobts) and not used with E1 BTSs, not<br>all locations in osmo-bts check the bts type before using IPACC, lets<br>add checks to prevent IPACC messages to be sent to E1 or otherwise<br>incompatible BTSs models.<br><br>Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468<br>Related: OS#2547<br>---<br>M src/osmo-bsc/bsc_vty.c<br>M src/osmo-bsc/lchan_rtp_fsm.c<br>2 files changed, 20 insertions(+), 14 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/18971/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c</span><br><span>index 9896bff..e8c9ece 100644</span><br><span>--- a/src/osmo-bsc/bsc_vty.c</span><br><span>+++ b/src/osmo-bsc/bsc_vty.c</span><br><span>@@ -5044,7 +5044,8 @@</span><br><span>              }</span><br><span>            vty_out(vty, "%% activating lchan %s%s", gsm_lchan_name(lchan), VTY_NEWLINE);</span><br><span>              rsl_tx_chan_activ(lchan, RSL_ACT_TYPE_INITIAL, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-              rsl_tx_ipacc_crcx(lchan);</span><br><span style="color: hsl(120, 100%, 40%);">+             if (is_ipaccess_bts(lchan->ts->trx->bts))</span><br><span style="color: hsl(120, 100%, 40%);">+                    rsl_tx_ipacc_crcx(lchan);</span><br><span>    } else {</span><br><span>             if (!lchan->fi) {</span><br><span>                         vty_out(vty, "%% Cannot release: Channel not initialized%s", VTY_NEWLINE);</span><br><span>@@ -5134,7 +5135,8 @@</span><br><span>                 inet_ntoa(ia), port, VTY_NEWLINE);</span><br><span>   lchan->abis_ip.connect_ip = ia.s_addr;</span><br><span>    lchan->abis_ip.connect_port = port;</span><br><span style="color: hsl(0, 100%, 40%);">-  rsl_tx_ipacc_mdcx(lchan);</span><br><span style="color: hsl(120, 100%, 40%);">+     if (is_ipaccess_bts(lchan->ts->trx->bts))</span><br><span style="color: hsl(120, 100%, 40%);">+            rsl_tx_ipacc_mdcx(lchan);</span><br><span>    return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/osmo-bsc/lchan_rtp_fsm.c b/src/osmo-bsc/lchan_rtp_fsm.c</span><br><span>index 25aca14..c1de222 100644</span><br><span>--- a/src/osmo-bsc/lchan_rtp_fsm.c</span><br><span>+++ b/src/osmo-bsc/lchan_rtp_fsm.c</span><br><span>@@ -280,12 +280,14 @@</span><br><span>    lchan->abis_ip.rtp_payload = val;</span><br><span> </span><br><span>     /* recv-only */</span><br><span style="color: hsl(0, 100%, 40%);">- ipacc_speech_mode_set_direction(&lchan->abis_ip.speech_mode, false);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     rc = rsl_tx_ipacc_crcx(lchan);</span><br><span style="color: hsl(0, 100%, 40%);">-  if (rc)</span><br><span style="color: hsl(0, 100%, 40%);">-         lchan_rtp_fail("Failure to transmit IPACC CRCX to BTS (rc=%d, %s)",</span><br><span style="color: hsl(0, 100%, 40%);">-                      rc, strerror(-rc));</span><br><span style="color: hsl(120, 100%, 40%);">+        if (is_ipaccess_bts(lchan->ts->trx->bts)) {</span><br><span style="color: hsl(120, 100%, 40%);">+          ipacc_speech_mode_set_direction(&lchan->abis_ip.speech_mode, false);</span><br><span style="color: hsl(120, 100%, 40%);">+           rc = rsl_tx_ipacc_crcx(lchan);</span><br><span style="color: hsl(120, 100%, 40%);">+                if (rc) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     lchan_rtp_fail("Failure to transmit IPACC CRCX to BTS (rc=%d, %s)",</span><br><span style="color: hsl(120, 100%, 40%);">+                                rc, strerror(-rc));</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> }</span><br><span> </span><br><span> static void lchan_rtp_fsm_wait_ipacc_crcx_ack(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -342,12 +344,14 @@</span><br><span>    lchan->abis_ip.connect_port = mgw_rtp->port;</span><br><span> </span><br><span>       /* send-recv */</span><br><span style="color: hsl(0, 100%, 40%);">- ipacc_speech_mode_set_direction(&lchan->abis_ip.speech_mode, true);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      rc = rsl_tx_ipacc_mdcx(lchan);</span><br><span style="color: hsl(0, 100%, 40%);">-  if (rc)</span><br><span style="color: hsl(0, 100%, 40%);">-         lchan_rtp_fail("Failure to transmit IPACC MDCX to BTS (rc=%d, %s)",</span><br><span style="color: hsl(0, 100%, 40%);">-                      rc, strerror(-rc));</span><br><span style="color: hsl(120, 100%, 40%);">+        if (is_ipaccess_bts(lchan->ts->trx->bts)) {</span><br><span style="color: hsl(120, 100%, 40%);">+          ipacc_speech_mode_set_direction(&lchan->abis_ip.speech_mode, true);</span><br><span style="color: hsl(120, 100%, 40%);">+            rc = rsl_tx_ipacc_mdcx(lchan);</span><br><span style="color: hsl(120, 100%, 40%);">+                if (rc) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     lchan_rtp_fail("Failure to transmit IPACC MDCX to BTS (rc=%d, %s)",</span><br><span style="color: hsl(120, 100%, 40%);">+                                rc, strerror(-rc));</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> </span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/18971">change 18971</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/c/osmo-bsc/+/18971"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468 </div>
<div style="display:none"> Gerrit-Change-Number: 18971 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>