osmux: allow to specify the Osmux port

via mgcp section from the configuration file.
diff --git a/openbsc/include/openbsc/mgcp.h b/openbsc/include/openbsc/mgcp.h
index c75637f..bf240a3 100644
--- a/openbsc/include/openbsc/mgcp.h
+++ b/openbsc/include/openbsc/mgcp.h
@@ -217,6 +217,8 @@
 	int osmux_init;
 	/* osmux batch factor: from 1 to 4 maximum */
 	int osmux_batch;
+	/* osmux port */
+	uint16_t osmux_port;
 };
 
 /* config management */
diff --git a/openbsc/src/libmgcp/mgcp_vty.c b/openbsc/src/libmgcp/mgcp_vty.c
index 8633668..f0e1703 100644
--- a/openbsc/src/libmgcp/mgcp_vty.c
+++ b/openbsc/src/libmgcp/mgcp_vty.c
@@ -1132,6 +1132,15 @@
 	return CMD_SUCCESS;
 }
 
+DEFUN(cfg_mgcp_osmux_port,
+      cfg_mgcp_osmux_port_cmd,
+      "osmux port <1-65535>",
+      OSMUX_STR "port\n" "UDP port\n")
+{
+	g_cfg->osmux_port = atoi(argv[0]);
+	return CMD_SUCCESS;
+}
+
 int mgcp_vty_init(void)
 {
 	install_element_ve(&show_mgcp_cmd);
@@ -1187,6 +1196,7 @@
 	install_element(MGCP_NODE, &cfg_mgcp_no_sdp_payload_send_ptime_cmd);
 	install_element(MGCP_NODE, &cfg_mgcp_osmux_cmd);
 	install_element(MGCP_NODE, &cfg_mgcp_osmux_batch_factor_cmd);
+	install_element(MGCP_NODE, &cfg_mgcp_osmux_port_cmd);
 
 	install_element(MGCP_NODE, &cfg_mgcp_trunk_cmd);
 	install_node(&trunk_node, config_write_trunk);
diff --git a/openbsc/src/libmgcp/osmux.c b/openbsc/src/libmgcp/osmux.c
index c9f344d..a8f5da8 100644
--- a/openbsc/src/libmgcp/osmux.c
+++ b/openbsc/src/libmgcp/osmux.c
@@ -416,7 +416,10 @@
 	}
 	osmux_fd.data = cfg;
 
-	ret = mgcp_create_bind("0.0.0.0", &osmux_fd, OSMUX_PORT);
+	if (!cfg->osmux_port)
+		cfg->osmux_port = OSMUX_PORT;
+
+	ret = mgcp_create_bind("0.0.0.0", &osmux_fd, cfg->osmux_port);
 	if (ret < 0) {
 		LOGP(DMGCP, LOGL_ERROR, "cannot bind OSMUX socket\n");
 		return ret;