diff --git a/openbsc/src/mgcp/mgcp_protocol.c b/openbsc/src/mgcp/mgcp_protocol.c index f9d723ad7..32f467b5a 100644 --- a/openbsc/src/mgcp/mgcp_protocol.c +++ b/openbsc/src/mgcp/mgcp_protocol.c @@ -272,14 +272,14 @@ static struct mgcp_endpoint *find_e1_endpoint(struct mgcp_config *cfg, 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 @@ static struct mgcp_endpoint *find_e1_endpoint(struct mgcp_config *cfg, 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 558fbff5e..c03936521 100644 --- a/openbsc/tests/mgcp/mgcp_test.c +++ b/openbsc/tests/mgcp/mgcp_test.c @@ -27,7 +27,7 @@ static struct msgb *create_auep1() 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 @@ static struct msgb *create_auep2() 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; }