MNCC: do not send REL_IND twice

Add trans.cc.mncc_release_sent and skip MNCC_REL_IND if already true.

Related: SYS#5066
Change-Id: I449e1e4139af5f41da08ba9f6815ef74d8e13897
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index b206a8c..b3415f6 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -237,6 +237,22 @@
 	struct msgb *msg;
 	unsigned char *data;
 
+	switch (msg_type) {
+	case MNCC_DISC_IND:
+	case MNCC_REL_IND:
+		if (trans) {
+			if (trans->cc.mncc_release_sent) {
+				LOG_TRANS_CAT_SRC(trans, DMNCC, file, line, LOGL_DEBUG,
+						  "Already released, skipping tx %s\n", get_mncc_name(msg_type));
+				return 0;
+			}
+			trans->cc.mncc_release_sent = true;
+		}
+		break;
+	default:
+		break;
+	}
+
 	LOG_TRANS_CAT_SRC(trans, DMNCC, file, line, LOGL_DEBUG, "tx %s\n", get_mncc_name(msg_type));
 
 	mncc->msg_type = msg_type;