<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/11156">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Harald Welte: Looks good to me, approved; Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mncc_sock.py: distinguish traffic frames<br><br>Change-Id: I996513e433bb57f12a4030391697f4e87e6ff938<br>---<br>M mncc_sock.py<br>M mncc_test.py<br>2 files changed, 33 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/mncc_sock.py b/mncc_sock.py</span><br><span>index 1c4f6be..e71a39a 100644</span><br><span>--- a/mncc_sock.py</span><br><span>+++ b/mncc_sock.py</span><br><span>@@ -26,6 +26,10 @@</span><br><span>     def is_rtp(self):</span><br><span>         return self.msg_type in (mncc.MNCC_RTP_CREATE,</span><br><span>             mncc.MNCC_RTP_CONNECT, mncc.MNCC_RTP_FREE)</span><br><span style="color: hsl(120, 100%, 40%);">+    def is_frame(self):</span><br><span style="color: hsl(120, 100%, 40%);">+        return self.msg_type in (mncc.GSM_TCHF_FRAME,</span><br><span style="color: hsl(120, 100%, 40%);">+            mncc.GSM_TCHH_FRAME, mncc.GSM_TCHF_FRAME_EFR,</span><br><span style="color: hsl(120, 100%, 40%);">+            mncc.GSM_TCH_FRAME_AMR, mncc.GSM_BAD_FRAME)</span><br><span> </span><br><span> class mncc_msg(mncc.gsm_mncc, mncc_msg_common):</span><br><span>     def __str__(self):</span><br><span>@@ -39,6 +43,28 @@</span><br><span>     def __unicode__(self):</span><br><span>         return u'mncc_hello_msg(version=0x%04x)' % (self.version)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+class mncc_data_frame_msg(mncc.gsm_data_frame, mncc_msg_common):</span><br><span style="color: hsl(120, 100%, 40%);">+    def __str__(self):</span><br><span style="color: hsl(120, 100%, 40%);">+        return 'mncc_data_frame(type=0x%04x, codec=%s, callref=%u)' \</span><br><span style="color: hsl(120, 100%, 40%);">+            % (self.msg_type, self.codec_str(), self.callref)</span><br><span style="color: hsl(120, 100%, 40%);">+    def __unicode__(self):</span><br><span style="color: hsl(120, 100%, 40%);">+        return u'mncc_data_frame(type=0x%04x, codec=%s, callref=%u)' \</span><br><span style="color: hsl(120, 100%, 40%);">+            % (self.msg_type, self.codec_str(), self.callref)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    def codec_str(self):</span><br><span style="color: hsl(120, 100%, 40%);">+        if self.msg_type == mncc.GSM_TCHF_FRAME:</span><br><span style="color: hsl(120, 100%, 40%);">+            return "FR"</span><br><span style="color: hsl(120, 100%, 40%);">+        elif self.msg_type == mncc.GSM_TCHH_FRAME:</span><br><span style="color: hsl(120, 100%, 40%);">+            return "HR"</span><br><span style="color: hsl(120, 100%, 40%);">+        elif self.msg_type == mncc.GSM_TCHF_FRAME_EFR:</span><br><span style="color: hsl(120, 100%, 40%);">+            return "EFR"</span><br><span style="color: hsl(120, 100%, 40%);">+        elif self.msg_type == mncc.GSM_TCH_FRAME_AMR:</span><br><span style="color: hsl(120, 100%, 40%);">+            return "AMR"</span><br><span style="color: hsl(120, 100%, 40%);">+        elif self.msg_type == mncc.GSM_BAD_FRAME:</span><br><span style="color: hsl(120, 100%, 40%);">+            return "(BFI)"</span><br><span style="color: hsl(120, 100%, 40%);">+        else:</span><br><span style="color: hsl(120, 100%, 40%);">+            return "(???)"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> class mncc_rtp_msg(mncc.gsm_mncc_rtp, mncc_msg_common):</span><br><span>     def __str__(self):</span><br><span>         return 'mncc_rtp_msg(type=0x%04x, callref=%u, ip=%x, port=%u)' % (self.msg_type, self.callref, self.ip, self.port)</span><br><span>@@ -83,6 +109,9 @@</span><br><span>         if ms.is_rtp():</span><br><span>                ms = mncc_rtp_msg()</span><br><span>                ms.receive(data)</span><br><span style="color: hsl(120, 100%, 40%);">+        elif ms.is_frame():</span><br><span style="color: hsl(120, 100%, 40%);">+               ms = mncc_data_frame_msg()</span><br><span style="color: hsl(120, 100%, 40%);">+               ms.receive(data)</span><br><span>         elif ms.msg_type == mncc.MNCC_SOCKET_HELLO:</span><br><span>                ms = mncc_hello_msg()</span><br><span>                ms.receive(data)</span><br><span>diff --git a/mncc_test.py b/mncc_test.py</span><br><span>index de35fe6..df66efb 100755</span><br><span>--- a/mncc_test.py</span><br><span>+++ b/mncc_test.py</span><br><span>@@ -35,6 +35,10 @@</span><br><span> def mncc_rx_thread(mncc_sock):</span><br><span>     while 1:</span><br><span>         msg = mncc_sock.recv()</span><br><span style="color: hsl(120, 100%, 40%);">+        if msg.is_frame():</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Dropping traffic frame: %s" % msg)</span><br><span style="color: hsl(120, 100%, 40%);">+            continue</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         print "MnccActor RxMNCC %s, broadcasting to Call FSMs" % msg</span><br><span>         # we simply broadcast to all calls</span><br><span>         pykka.ActorRegistry.broadcast({'type': 'mncc', 'msg': msg}, GsmCallFsm)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11156">change 11156</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/11156"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: mncc-python </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I996513e433bb57f12a4030391697f4e87e6ff938 </div>
<div style="display:none"> Gerrit-Change-Number: 11156 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>