aboutsummaryrefslogtreecommitdiffstats
path: root/src/gsm_04_08.c
diff options
context:
space:
mode:
authorHolger Freyther <zecke@selfish.org>2008-12-29 06:42:17 +0000
committerHolger Freyther <zecke@selfish.org>2008-12-29 06:42:17 +0000
commit2eafef599cc400cd8942cb2a9ed5e295f424405a (patch)
tree72aa08ae9432377d1776905c5a17f10deaa9f292 /src/gsm_04_08.c
parentabade7af88843abc041144fcbfcc525e65a66e94 (diff)
Up on call released release the channel and take the next item
Once a call is released, release the gsm_lchan and move to the next item in pending_stations or wait for more work.
Diffstat (limited to 'src/gsm_04_08.c')
-rw-r--r--src/gsm_04_08.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index 918116db1..4bdc5f77f 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -537,6 +537,7 @@ static int gsm0408_rcv_cc(struct msgb *msg)
struct gsm48_hdr *gh = msgb_l3(msg);
u_int8_t msg_type = gh->msg_type & 0xbf;
struct gsm_call *call = &msg->lchan->call;
+ struct gsm_network *network = msg->lchan->ts->trx->bts->network;
int rc = 0;
switch (msg_type) {
@@ -548,6 +549,8 @@ static int gsm0408_rcv_cc(struct msgb *msg)
/* Answer from MS to RELEASE */
DEBUGP(DCC, "RELEASE COMPLETE (state->NULL)\n");
call->state = GSM_CSTATE_NULL;
+ if (network->call_released)
+ (*network->call_released)(msg->lchan);
break;
case GSM48_MT_CC_ALERTING:
DEBUGP(DCC, "ALERTING\n");