diff --git a/openbsc/src/osmo-bsc/Makefile.am b/openbsc/src/osmo-bsc/Makefile.am
index 9a7619b..f32705c 100644
--- a/openbsc/src/osmo-bsc/Makefile.am
+++ b/openbsc/src/osmo-bsc/Makefile.am
@@ -15,4 +15,5 @@
 		 $(top_builddir)/src/libabis/libabis.a \
 		 $(top_builddir)/src/libtrau/libtrau.a \
 		 $(top_builddir)/src/libcommon/libcommon.a \
+		 $(top_builddir)/src/libctrl/libctrl.a \
 		 $(LIBOSMOSCCP_LIBS)
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c
index 42c74cc..6deed30 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_main.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c
@@ -50,6 +50,8 @@
 extern const char *openbsc_copyright;
 static int daemonize = 0;
 
+extern void controlif_setup(struct gsm_network *gsmnet, uint16_t port);
+
 static void print_usage()
 {
 	printf("Usage: osmo-bsc\n");
@@ -204,6 +206,8 @@
 	}
 	bsc_api_init(bsc_gsmnet, osmo_bsc_api());
 
+	controlif_setup(bsc_gsmnet, 4249);
+
 	data = bsc_gsmnet->msc_data;
 	if (rf_ctl)
 		bsc_replace_string(data, &data->rf_ctrl_name, rf_ctl);
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_msc.c b/openbsc/src/osmo-bsc/osmo_bsc_msc.c
index 445ce12..f4d6cf2 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_msc.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_msc.c
@@ -21,12 +21,15 @@
  */
 
 #include <openbsc/bsc_nat.h>
+#include <openbsc/control_cmd.h>
 #include <openbsc/debug.h>
 #include <openbsc/gsm_data.h>
 #include <openbsc/ipaccess.h>
 #include <openbsc/osmo_msc_data.h>
 #include <openbsc/signal.h>
 
+#include <osmocom/core/talloc.h>
+
 #include <osmocom/gsm/gsm0808.h>
 
 #include <osmocom/sccp/sccp.h>
@@ -189,6 +192,35 @@
 	return ret;
 }
 
+static void handle_ctrl(struct osmo_msc_data *msc, struct msgb *msg)
+{
+	int ret;
+	struct ctrl_cmd *cmd;
+
+	cmd = ctrl_cmd_parse(msc->msc_con, msg);
+	if (!cmd) {
+		LOGP(DMSC, LOGL_ERROR, "Failed to parse control message.\n");
+		cmd = talloc_zero(msc->msc_con, struct ctrl_cmd);
+		if (!cmd) {
+			LOGP(DMSC, LOGL_ERROR, "OOM!\n");
+			return;
+		}
+		cmd->type = CTRL_TYPE_ERROR;
+		cmd->id = "err";
+		cmd->reply = "Failed to parse control message.";
+
+		ctrl_cmd_send(&msc->msc_con->write_queue, cmd);
+		talloc_free(cmd);
+
+		return;
+	}
+
+	ret = ctrl_cmd_handle(cmd, msc->network);
+	if (ret != CTRL_CMD_HANDLED)
+		ctrl_cmd_send(&msc->msc_con->write_queue, cmd);
+	talloc_free(cmd);
+}
+
 static void osmo_ext_handle(struct osmo_msc_data *msc, struct msgb *msg)
 {
 	struct ipaccess_head *hh;
@@ -206,6 +238,8 @@
 		mgcp_forward(msc, msg);
 	else if (hh_ext->proto == IPAC_PROTO_EXT_LAC)
 		send_lacs(msc->network, msc->msc_con);
+	else if (hh_ext->proto == IPAC_PROTO_EXT_CTRL)
+		handle_ctrl(msc, msg);
 }
 
 static int ipaccess_a_fd_cb(struct osmo_fd *bfd)
