aboutsummaryrefslogtreecommitdiffstats
path: root/gsm_call_fsm.py
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2020-03-05 00:05:45 +0100
committerHarald Welte <laforge@osmocom.org>2020-03-07 21:48:08 +0100
commita765716b8c60ea0e7e2f31759f01f5e9715fdaa2 (patch)
tree29c2571095b1ec43f773d74af33654b25a765857 /gsm_call_fsm.py
parentcf8e58e5fb9e65accf4a07dae91d247b75977da9 (diff)
mncc_{test,mg_loadgen}.py: Add a manual call-release function
Diffstat (limited to 'gsm_call_fsm.py')
-rw-r--r--gsm_call_fsm.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/gsm_call_fsm.py b/gsm_call_fsm.py
index a9ad8c0..c8bcf39 100644
--- a/gsm_call_fsm.py
+++ b/gsm_call_fsm.py
@@ -90,6 +90,10 @@ class GsmCallFsm(pykka.ThreadingActor):
bearer_cap = mncc_bearer_cap(self.codecs_permitted))
self.mncc_ref.tell({'type': 'send', 'msg': msg})
+ def _onmncc_disc_req(self, e):
+ msg = mncc_msg(msg_type = mncc.MNCC_DISC_REQ, callref = self.callref)
+ self.mncc_ref.tell({'type': 'send', 'msg': msg})
+
def find_matching_codec(self, ms_codecs):
# find common denominator of permitted codecs and MS codecs
for i in self.codecs_permitted:
@@ -182,6 +186,7 @@ class GsmCallFsm(pykka.ThreadingActor):
('onmncc_call_conf_ind', self._onmncc_call_conf_ind),
('onmncc_setup_cnf', self._onmncc_setup_cnf),
('onmncc_disc_ind', self._onmncc_disc_ind),
+ ('onmncc_disc_req', self._onmncc_disc_req),
('onenterNULL', self._onenter_NULL),
],
)
@@ -302,6 +307,8 @@ class GsmCallFsm(pykka.ThreadingActor):
self.connect_rtp(message['rtp'])
elif message['type'] == 'get_callref':
return self.callref
+ elif message['type'] == 'release':
+ self.fsm.mncc_disc_req(None)
else:
raise Exception('mncc', '%s: Unknown message %s' % (self, message))
@@ -366,3 +373,6 @@ class GsmCallConnector(pykka.ThreadingActor):
self.rtp_created(message['called'], message['rtp'])
#else:
# raise Exception('mncc', 'GsmCallConnector Rx Unknown message %s' % message)
+
+ def release(self):
+ self.call_a.tell({'type':'release'})