add mncc_rtp_msg() class for RTP messages on MNCC interface
parent
4f3762e793
commit
20523c7fd2
|
@ -5,7 +5,7 @@ import ctypes
|
|||
import pykka
|
||||
|
||||
from fysom import Fysom
|
||||
from mncc_sock import mncc_msg, mncc_number
|
||||
from mncc_sock import mncc_msg, mncc_number, mncc_rtp_msg
|
||||
|
||||
class GsmCallFsm(pykka.ThreadingActor):
|
||||
last_callref = 0
|
||||
|
|
15
mncc_sock.py
15
mncc_sock.py
|
@ -17,6 +17,18 @@ class mncc_msg(mncc.gsm_mncc):
|
|||
def __unicode__(self):
|
||||
return u'mncc_msg(type=0x%04x, callref=%u, fields=0x%04x)' % (self.msg_type, self.callref, self.fields)
|
||||
|
||||
class mncc_rtp_msg(mncc.gsm_mncc_rtp):
|
||||
def send(self):
|
||||
return buffer(self)[:]
|
||||
def receive(self, bytes):
|
||||
fit = min(len(bytes), ctypes.sizeof(self))
|
||||
ctypes.memmove(ctypes.addressof(self), bytes, fit)
|
||||
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)
|
||||
def __unicode__(self):
|
||||
return u'mncc_rtp_msg(type=0x%04x, callref=%u, ip=%x, port=%u)' % (self.msg_type, self.callref, self.ip, self.port)
|
||||
|
||||
|
||||
def mncc_number(number, num_type = 0, num_plan = 0, num_present = 1, num_screen = 0):
|
||||
return mncc.gsm_mncc_number(number = number, type = num_type,
|
||||
plan = num_plan, present = num_present,
|
||||
|
@ -42,4 +54,7 @@ class MnccSocket(object):
|
|||
data = self.sock.recv(1500)
|
||||
ms = mncc_msg()
|
||||
ms.receive(data)
|
||||
if ms.msg_type == mncc.MNCC_RTP_CREATE or ms.msg_type == mncc.MNCC_RTP_CONNECT or ms.msg_type == mncc.MNCC_RTP_FREE:
|
||||
ms = mncc_rtp_msg()
|
||||
ms.receive(data)
|
||||
return ms
|
||||
|
|
Loading…
Reference in New Issue