From 1590727b64c89679fe9a84368c5afa54d95512cd Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Fri, 25 Jan 2013 08:38:29 +0100 Subject: CC: mncc_release_ind() must send MNCC_REL_CNF in state N19 If transaction is destroyed, but callref still exists, the mncc_release_ind function is called. If the upper layer already sent an MNCC_REL_REQ, the state N19 was entered. In this case it expects an MNCC_REL_CNF. --- openbsc/src/libmsc/gsm_04_08.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'openbsc/src/libmsc') diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index 1f26cdd48..1ac4b92fa 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -1291,6 +1291,8 @@ int mncc_release_ind(struct gsm_network *net, struct gsm_trans *trans, memset(&rel, 0, sizeof(rel)); rel.callref = callref; mncc_set_cause(&rel, location, value); + if (trans && trans->cc.state == GSM_CSTATE_RELEASE_REQ) + return mncc_recvmsg(net, trans, MNCC_REL_CNF, &rel); return mncc_recvmsg(net, trans, MNCC_REL_IND, &rel); } -- cgit v1.2.3