diff --git a/openbsc/include/openbsc/bsc_nat.h b/openbsc/include/openbsc/bsc_nat.h
index 140fa68..6ca2237 100644
--- a/openbsc/include/openbsc/bsc_nat.h
+++ b/openbsc/include/openbsc/bsc_nat.h
@@ -263,7 +263,7 @@
 
 void bsc_mgcp_clear_endpoints_for(struct bsc_connection *bsc);
 int bsc_mgcp_parse_response(const char *str, int *code, char transaction[60]);
-int bsc_mgcp_extract_ci(const char *resp);
+uint32_t bsc_mgcp_extract_ci(const char *resp);
 
 
 int bsc_write(struct bsc_connection *bsc, struct msgb *msg, int id);
diff --git a/openbsc/include/openbsc/mgcp.h b/openbsc/include/openbsc/mgcp.h
index 8f59170..7f77868 100644
--- a/openbsc/include/openbsc/mgcp.h
+++ b/openbsc/include/openbsc/mgcp.h
@@ -124,7 +124,7 @@
 	void *data;
 
 	struct mgcp_endpoint *endpoints;
-	unsigned int last_call_id;
+	uint32_t last_call_id;
 };
 
 /* config management */
diff --git a/openbsc/include/openbsc/mgcp_internal.h b/openbsc/include/openbsc/mgcp_internal.h
index 19e8e3f..d7be0a2 100644
--- a/openbsc/include/openbsc/mgcp_internal.h
+++ b/openbsc/include/openbsc/mgcp_internal.h
@@ -85,7 +85,7 @@
 };
 
 struct mgcp_endpoint {
-	int ci;
+	uint32_t ci;
 	char *callid;
 	char *local_options;
 	int conn_mode;
diff --git a/openbsc/src/mgcp/mgcp_protocol.c b/openbsc/src/mgcp/mgcp_protocol.c
index 7439132..e5f9a14 100644
--- a/openbsc/src/mgcp/mgcp_protocol.c
+++ b/openbsc/src/mgcp/mgcp_protocol.c
@@ -89,7 +89,7 @@
 static struct msgb *handle_modify_con(struct mgcp_config *cfg, struct msgb *msg);
 static struct msgb *handle_rsip(struct mgcp_config *cfg, struct msgb *msg);
 
-static int generate_call_id(struct mgcp_config *cfg)
+static uint32_t generate_call_id(struct mgcp_config *cfg)
 {
 	int i;
 
@@ -170,7 +170,7 @@
 		addr = endp->cfg->source_addr;
 
 	snprintf(sdp_record, sizeof(sdp_record) - 1,
-			"I: %d\n\n"
+			"I: %u\n\n"
 			"v=0\r\n"
 			"c=IN IP4 %s\r\n"
 			"m=audio %d RTP/AVP %d\r\n"
@@ -324,11 +324,13 @@
 }
 
 static int verify_ci(const struct mgcp_endpoint *endp,
-		     const char *ci)
+		     const char *_ci)
 {
-	if (atoi(ci) != endp->ci) {
-		LOGP(DMGCP, LOGL_ERROR, "ConnectionIdentifiers do not match on 0x%x. %d != %s\n",
-			ENDPOINT_NUMBER(endp), endp->ci, ci);
+	uint32_t ci = strtoul(_ci, NULL, 10);
+
+	if (ci != endp->ci) {
+		LOGP(DMGCP, LOGL_ERROR, "ConnectionIdentifiers do not match on 0x%x. %u != %s\n",
+			ENDPOINT_NUMBER(endp), endp->ci, _ci);
 		return -1;
 	}
 
diff --git a/openbsc/src/nat/bsc_mgcp_utils.c b/openbsc/src/nat/bsc_mgcp_utils.c
index 05963d3..0455d1b 100644
--- a/openbsc/src/nat/bsc_mgcp_utils.c
+++ b/openbsc/src/nat/bsc_mgcp_utils.c
@@ -344,16 +344,16 @@
 	return sscanf(str, "%3d %59s\n", code, transaction) != 2;
 }
 
-int bsc_mgcp_extract_ci(const char *str)
+uint32_t bsc_mgcp_extract_ci(const char *str)
 {
-	int ci;
+	unsigned int ci;
 	char *res = strstr(str, "I: ");
 	if (!res) {
 		LOGP(DMGCP, LOGL_ERROR, "No CI in msg '%s'\n", str);
 		return CI_UNUSED;
 	}
 
-	if (sscanf(res, "I: %d", &ci) != 1) {
+	if (sscanf(res, "I: %u", &ci) != 1) {
 		LOGP(DMGCP, LOGL_ERROR, "Failed to parse CI in msg '%s'\n", str);
 		return CI_UNUSED;
 	}
