diff --git a/openbsc/include/openbsc/mncc.h b/openbsc/include/openbsc/mncc.h
index 46ba237..2a170cd 100644
--- a/openbsc/include/openbsc/mncc.h
+++ b/openbsc/include/openbsc/mncc.h
@@ -191,7 +191,7 @@
 	uint32_t	payload_msg_type;
 };
 
-char *get_mncc_name(int value);
+const char *get_mncc_name(int value);
 void mncc_set_cause(struct gsm_mncc *data, int loc, int val);
 void cc_tx_to_mncc(struct gsm_network *net, struct msgb *msg);
 
diff --git a/openbsc/src/libmsc/mncc.c b/openbsc/src/libmsc/mncc.c
index 2767faa..8110ead 100644
--- a/openbsc/src/libmsc/mncc.c
+++ b/openbsc/src/libmsc/mncc.c
@@ -26,85 +26,76 @@
 #include <string.h>
 #include <errno.h>
 
+#include <osmocom/core/talloc.h>
+#include <osmocom/core/utils.h>
+
 #include <openbsc/gsm_04_08.h>
 #include <openbsc/debug.h>
 #include <openbsc/mncc.h>
-#include <osmocom/core/talloc.h>
 #include <openbsc/gsm_data.h>
 #include <openbsc/transaction.h>
 #include <openbsc/rtp_proxy.h>
 
-static struct mncc_names {
-	char *name;
-	int value;
-} mncc_names[] = {
-	{"MNCC_SETUP_REQ",	0x0101},
-	{"MNCC_SETUP_IND",	0x0102},
-	{"MNCC_SETUP_RSP",	0x0103},
-	{"MNCC_SETUP_CNF",	0x0104},
-	{"MNCC_SETUP_COMPL_REQ",0x0105},
-	{"MNCC_SETUP_COMPL_IND",0x0106},
-	{"MNCC_CALL_CONF_IND",	0x0107},
-	{"MNCC_CALL_PROC_REQ",	0x0108},
-	{"MNCC_PROGRESS_REQ",	0x0109},
-	{"MNCC_ALERT_REQ",	0x010a},
-	{"MNCC_ALERT_IND",	0x010b},
-	{"MNCC_NOTIFY_REQ",	0x010c},
-	{"MNCC_NOTIFY_IND",	0x010d},
-	{"MNCC_DISC_REQ",	0x010e},
-	{"MNCC_DISC_IND",	0x010f},
-	{"MNCC_REL_REQ",	0x0110},
-	{"MNCC_REL_IND",	0x0111},
-	{"MNCC_REL_CNF",	0x0112},
-	{"MNCC_FACILITY_REQ",	0x0113},
-	{"MNCC_FACILITY_IND",	0x0114},
-	{"MNCC_START_DTMF_IND",	0x0115},
-	{"MNCC_START_DTMF_RSP",	0x0116},
-	{"MNCC_START_DTMF_REJ",	0x0117},
-	{"MNCC_STOP_DTMF_IND",	0x0118},
-	{"MNCC_STOP_DTMF_RSP",	0x0119},
-	{"MNCC_MODIFY_REQ",	0x011a},
-	{"MNCC_MODIFY_IND",	0x011b},
-	{"MNCC_MODIFY_RSP",	0x011c},
-	{"MNCC_MODIFY_CNF",	0x011d},
-	{"MNCC_MODIFY_REJ",	0x011e},
-	{"MNCC_HOLD_IND",	0x011f},
-	{"MNCC_HOLD_CNF",	0x0120},
-	{"MNCC_HOLD_REJ",	0x0121},
-	{"MNCC_RETRIEVE_IND",	0x0122},
-	{"MNCC_RETRIEVE_CNF",	0x0123},
-	{"MNCC_RETRIEVE_REJ",	0x0124},
-	{"MNCC_USERINFO_REQ",	0x0125},
-	{"MNCC_USERINFO_IND",	0x0126},
-	{"MNCC_REJ_REQ",	0x0127},
-	{"MNCC_REJ_IND",	0x0128},
 
-	{"MNCC_BRIDGE",		0x0200},
-	{"MNCC_FRAME_RECV",	0x0201},
-	{"MNCC_FRAME_DROP",	0x0202},
-	{"MNCC_LCHAN_MODIFY",	0x0203},
-	{"MNCC_RTP_CREATE",	0x0204},
-	{"MNCC_RTP_CONNECT",	0x0205},
-	{"MNCC_RTP_FREE",	0x0206},
+static const struct value_string mncc_names[] = {
+	{ MNCC_SETUP_REQ, "MNCC_SETUP_REQ" },
+	{ MNCC_SETUP_IND, "MNCC_SETUP_IND" },
+	{ MNCC_SETUP_RSP, "MNCC_SETUP_RSP" },
+	{ MNCC_SETUP_CNF, "MNCC_SETUP_CNF" },
+	{ MNCC_SETUP_COMPL_REQ, "MNCC_SETUP_COMPL_REQ" },
+	{ MNCC_SETUP_COMPL_IND, "MNCC_SETUP_COMPL_IND" },
+	{ MNCC_CALL_CONF_IND, "MNCC_CALL_CONF_IND" },
+	{ MNCC_CALL_PROC_REQ, "MNCC_CALL_PROC_REQ" },
+	{ MNCC_PROGRESS_REQ, "MNCC_PROGRESS_REQ" },
+	{ MNCC_ALERT_REQ, "MNCC_ALERT_REQ" },
+	{ MNCC_ALERT_IND, "MNCC_ALERT_IND" },
+	{ MNCC_NOTIFY_REQ, "MNCC_NOTIFY_REQ" },
+	{ MNCC_NOTIFY_IND, "MNCC_NOTIFY_IND" },
+	{ MNCC_DISC_REQ, "MNCC_DISC_REQ" },
+	{ MNCC_DISC_IND, "MNCC_DISC_IND" },
+	{ MNCC_REL_REQ, "MNCC_REL_REQ" },
+	{ MNCC_REL_IND, "MNCC_REL_IND" },
+	{ MNCC_REL_CNF, "MNCC_REL_CNF" },
+	{ MNCC_FACILITY_REQ, "MNCC_FACILITY_REQ" },
+	{ MNCC_FACILITY_IND, "MNCC_FACILITY_IND" },
+	{ MNCC_START_DTMF_IND, "MNCC_START_DTMF_IND" },
+	{ MNCC_START_DTMF_RSP, "MNCC_START_DTMF_RSP" },
+	{ MNCC_START_DTMF_REJ, "MNCC_START_DTMF_REJ" },
+	{ MNCC_STOP_DTMF_IND, "MNCC_STOP_DTMF_IND" },
+	{ MNCC_STOP_DTMF_RSP, "MNCC_STOP_DTMF_RSP" },
+	{ MNCC_MODIFY_REQ, "MNCC_MODIFY_REQ" },
+	{ MNCC_MODIFY_IND, "MNCC_MODIFY_IND" },
+	{ MNCC_MODIFY_RSP, "MNCC_MODIFY_RSP" },
+	{ MNCC_MODIFY_CNF, "MNCC_MODIFY_CNF" },
+	{ MNCC_MODIFY_REJ, "MNCC_MODIFY_REJ" },
+	{ MNCC_HOLD_IND, "MNCC_HOLD_IND" },
+	{ MNCC_HOLD_CNF, "MNCC_HOLD_CNF" },
+	{ MNCC_HOLD_REJ, "MNCC_HOLD_REJ" },
+	{ MNCC_RETRIEVE_IND, "MNCC_RETRIEVE_IND" },
+	{ MNCC_RETRIEVE_CNF, "MNCC_RETRIEVE_CNF" },
+	{ MNCC_RETRIEVE_REJ, "MNCC_RETRIEVE_REJ" },
+	{ MNCC_USERINFO_REQ, "MNCC_USERINFO_REQ" },
+	{ MNCC_USERINFO_IND, "MNCC_USERINFO_IND" },
+	{ MNCC_REJ_REQ, "MNCC_REJ_REQ" },
+	{ MNCC_REJ_IND, "MNCC_REJ_IND" },
+	{ MNCC_BRIDGE, "MNCC_BRIDGE" },
+	{ MNCC_FRAME_RECV, "MNCC_FRAME_RECV" },
+	{ MNCC_FRAME_DROP, "MNCC_FRAME_DROP" },
+	{ MNCC_LCHAN_MODIFY, "MNCC_LCHAN_MODIFY" },
+	{ MNCC_RTP_CREATE, "MNCC_RTP_CREATE" },
+	{ MNCC_RTP_CONNECT, "MNCC_RTP_CONNECT" },
+	{ MNCC_RTP_FREE, "MNCC_RTP_FREE" },
+	{ GSM_TCHF_FRAME, "GSM_TCHF_FRAME" },
+	{ GSM_TCHF_FRAME_EFR, "GSM_TCHF_FRAME_EFR" },
+	{ GSM_TCHH_FRAME, "GSM_TCHH_FRAME" },
+	{ GSM_TCH_FRAME_AMR, "GSM_TCH_FRAME_AMR" },
+	{ GSM_BAD_FRAME, "GSM_BAD_FRAME" },
+	{ 0, NULL },
+};
 
-	{"GSM_TCHF_FRAME",	0x0300},
-	{"GSM_TCHF_FRAME_EFR",	0x0301},
-	{"GSM_TCHH_FRAME",	0x0302},
-	{"GSM_TCH_FRAME_AMR",	0x0303},
-	{"GSM_BAD_FRAME",	0x03ff},
-
-	{NULL, 0} };
-
-char *get_mncc_name(int value)
+const char *get_mncc_name(int value)
 {
-	int i;
-
-	for (i = 0; mncc_names[i].name; i++) {
-		if (mncc_names[i].value == value)
-			return mncc_names[i].name;
-	}
-
-	return "MNCC_Unknown";
+	return get_value_string(mncc_names, value);
 }
 
 void mncc_set_cause(struct gsm_mncc *data, int loc, int val)
