mgcp: We want to count trunks starting from one.
diff --git a/openbsc/src/mgcp/mgcp_protocol.c b/openbsc/src/mgcp/mgcp_protocol.c
index f9d723a..32f467b 100644
--- a/openbsc/src/mgcp/mgcp_protocol.c
+++ b/openbsc/src/mgcp/mgcp_protocol.c
@@ -272,14 +272,14 @@
int trunk, endp, mgcp_endp;
trunk = strtoul(mgcp + 6, &rest, 10);
- if (rest == NULL || rest[0] != '/') {
+ if (rest == NULL || rest[0] != '/' || trunk < 1) {
LOGP(DMGCP, LOGL_ERROR, "Wrong trunk name '%s'\n", mgcp);
return NULL;
}
endp = strtoul(rest + 1, &rest, 10);
if (rest == NULL || rest[0] != '@') {
- LOGP(DMGCP, LOGL_ERROR, "Wrong trunk name '%s'\n", mgcp);
+ LOGP(DMGCP, LOGL_ERROR, "Wrong endpoint name '%s'\n", mgcp);
return NULL;
}
@@ -287,7 +287,7 @@
if (endp == 1)
return NULL;
- mgcp_endp = mgcp_timeslot_to_endpoint(trunk, endp);
+ mgcp_endp = mgcp_timeslot_to_endpoint(trunk - 1, endp);
if (mgcp_endp < 1 || mgcp_endp >= cfg->number_endpoints) {
LOGP(DMGCP, LOGL_ERROR, "Failed to find endpoint '%s'\n", mgcp);
}
diff --git a/openbsc/tests/mgcp/mgcp_test.c b/openbsc/tests/mgcp/mgcp_test.c
index 558fbff..c039365 100644
--- a/openbsc/tests/mgcp/mgcp_test.c
+++ b/openbsc/tests/mgcp/mgcp_test.c
@@ -27,7 +27,7 @@
struct msgb *msg;
msg = msgb_alloc_headroom(4096, 128, "MGCP msg");
- int len = sprintf((char *)msg->data, "AUEP 158663169 ds/e1-0/2@172.16.6.66 MGCP 1.0\r\n");
+ int len = sprintf((char *)msg->data, "AUEP 158663169 ds/e1-1/2@172.16.6.66 MGCP 1.0\r\n");
msg->l2h = msgb_put(msg, len);
return msg;
}
@@ -37,7 +37,7 @@
struct msgb *msg;
msg = msgb_alloc_headroom(4096, 128, "MGCP msg");
- int len = sprintf((char *)msg->data, "AUEP 18983213 ds/e1-1/1@172.16.6.66 MGCP 1.0\r\n");
+ int len = sprintf((char *)msg->data, "AUEP 18983213 ds/e1-2/1@172.16.6.66 MGCP 1.0\r\n");
msg->l2h = msgb_put(msg, len);
return msg;
}