Change in mncc-python[master]: mncc_sock.py: distinguish traffic frames

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Sun Sep 30 12:30:39 UTC 2018


Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/11156 )

Change subject: mncc_sock.py: distinguish traffic frames
......................................................................

mncc_sock.py: distinguish traffic frames

Change-Id: I996513e433bb57f12a4030391697f4e87e6ff938
---
M mncc_sock.py
M mncc_test.py
2 files changed, 33 insertions(+), 0 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved; Verified



diff --git a/mncc_sock.py b/mncc_sock.py
index 1c4f6be..e71a39a 100644
--- a/mncc_sock.py
+++ b/mncc_sock.py
@@ -26,6 +26,10 @@
     def is_rtp(self):
         return self.msg_type in (mncc.MNCC_RTP_CREATE,
             mncc.MNCC_RTP_CONNECT, mncc.MNCC_RTP_FREE)
+    def is_frame(self):
+        return self.msg_type in (mncc.GSM_TCHF_FRAME,
+            mncc.GSM_TCHH_FRAME, mncc.GSM_TCHF_FRAME_EFR,
+            mncc.GSM_TCH_FRAME_AMR, mncc.GSM_BAD_FRAME)
 
 class mncc_msg(mncc.gsm_mncc, mncc_msg_common):
     def __str__(self):
@@ -39,6 +43,28 @@
     def __unicode__(self):
         return u'mncc_hello_msg(version=0x%04x)' % (self.version)
 
+class mncc_data_frame_msg(mncc.gsm_data_frame, mncc_msg_common):
+    def __str__(self):
+        return 'mncc_data_frame(type=0x%04x, codec=%s, callref=%u)' \
+            % (self.msg_type, self.codec_str(), self.callref)
+    def __unicode__(self):
+        return u'mncc_data_frame(type=0x%04x, codec=%s, callref=%u)' \
+            % (self.msg_type, self.codec_str(), self.callref)
+
+    def codec_str(self):
+        if self.msg_type == mncc.GSM_TCHF_FRAME:
+            return "FR"
+        elif self.msg_type == mncc.GSM_TCHH_FRAME:
+            return "HR"
+        elif self.msg_type == mncc.GSM_TCHF_FRAME_EFR:
+            return "EFR"
+        elif self.msg_type == mncc.GSM_TCH_FRAME_AMR:
+            return "AMR"
+        elif self.msg_type == mncc.GSM_BAD_FRAME:
+            return "(BFI)"
+        else:
+            return "(???)"
+
 class mncc_rtp_msg(mncc.gsm_mncc_rtp, mncc_msg_common):
     def __str__(self):
         return 'mncc_rtp_msg(type=0x%04x, callref=%u, ip=%x, port=%u)' % (self.msg_type, self.callref, self.ip, self.port)
@@ -83,6 +109,9 @@
         if ms.is_rtp():
                ms = mncc_rtp_msg()
                ms.receive(data)
+        elif ms.is_frame():
+               ms = mncc_data_frame_msg()
+               ms.receive(data)
         elif ms.msg_type == mncc.MNCC_SOCKET_HELLO:
                ms = mncc_hello_msg()
                ms.receive(data)
diff --git a/mncc_test.py b/mncc_test.py
index de35fe6..df66efb 100755
--- a/mncc_test.py
+++ b/mncc_test.py
@@ -35,6 +35,10 @@
 def mncc_rx_thread(mncc_sock):
     while 1:
         msg = mncc_sock.recv()
+        if msg.is_frame():
+            print("Dropping traffic frame: %s" % msg)
+            continue
+
         print "MnccActor RxMNCC %s, broadcasting to Call FSMs" % msg
         # we simply broadcast to all calls
         pykka.ActorRegistry.broadcast({'type': 'mncc', 'msg': msg}, GsmCallFsm)

-- 
To view, visit https://gerrit.osmocom.org/11156
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: mncc-python
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I996513e433bb57f12a4030391697f4e87e6ff938
Gerrit-Change-Number: 11156
Gerrit-PatchSet: 1
Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180930/3b43127e/attachment.htm>


More information about the gerrit-log mailing list