diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-12-20 02:57:56 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-12-21 01:46:36 +0100 |
commit | 2615c175f11d1254990997b4ae78c972e7e39583 (patch) | |
tree | 460ef1c0dc4a03daea8133ab63647ab37934d466 /src/libmsc/gsm_04_08_cc.c | |
parent | 732848a05d48d47f0eed243962e4a1a8f17901db (diff) |
remove code dup: add msc_mgcp_try_call_assignment()
Various places in the code check a flag whether assignment was started and
launch it. To fix incoming-call-during-ongoing-call, I will tweak that logic.
To be able to do that only in one place, remove code dup.
Cosmetic preparation for I1f8746e7babfcd3028a4d2c0ba260c608c686c76 and
I0ba216b737909e92080a722db26e3577726c63cb/
Change-Id: I11c0b7dc3f1a747028629b48e522bb3b864884ba
Diffstat (limited to 'src/libmsc/gsm_04_08_cc.c')
-rw-r--r-- | src/libmsc/gsm_04_08_cc.c | 26 |
1 files changed, 3 insertions, 23 deletions
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c index 5567da9d0..be9a451a3 100644 --- a/src/libmsc/gsm_04_08_cc.c +++ b/src/libmsc/gsm_04_08_cc.c @@ -736,12 +736,7 @@ static int gsm48_cc_rx_call_conf(struct gsm_trans *trans, struct msgb *msg) new_cc_state(trans, GSM_CSTATE_MO_TERM_CALL_CONF); /* Assign call (if not done yet) */ - if (trans->assignment_done == false) { - rc = msc_mgcp_call_assignment(trans); - trans->assignment_done = true; - } - else - rc = 0; + rc = msc_mgcp_try_call_assignment(trans); /* don't continue, if there were problems with * the call assignment. */ @@ -780,14 +775,7 @@ static int gsm48_cc_tx_call_proc_and_assign(struct gsm_trans *trans, void *arg) return rc; /* Assign call (if not done yet) */ - if (trans->assignment_done == false) { - rc = msc_mgcp_call_assignment(trans); - trans->assignment_done = true; - } - else - rc = 0; - - return rc; + return msc_mgcp_try_call_assignment(trans); } static int gsm48_cc_rx_alerting(struct gsm_trans *trans, struct msgb *msg) @@ -1706,7 +1694,6 @@ static void mncc_recv_rtp_err(struct gsm_network *net, uint32_t callref, int cmd static int tch_rtp_create(struct gsm_network *net, uint32_t callref) { struct gsm_trans *trans; - int rc; /* Find callref */ trans = trans_find_by_callref(net, callref); @@ -1737,14 +1724,7 @@ static int tch_rtp_create(struct gsm_network *net, uint32_t callref) trans->tch_rtp_create = true; /* Assign call (if not done yet) */ - if (trans->assignment_done == false) { - rc = msc_mgcp_call_assignment(trans); - trans->assignment_done = true; - } - else - rc = 0; - - return rc; + return msc_mgcp_try_call_assignment(trans); } /* Trigger TCH_RTP_CREATE acknowledgement */ |