aboutsummaryrefslogtreecommitdiffstats
path: root/src/mgcp_ss7.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2011-09-13 22:41:48 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2011-09-13 22:53:13 +0200
commite72139a6f3713869637d15dfd9858a500fbf0425 (patch)
treeb3d24a0a796a642e1237b406ccb7ed5eb1181e93 /src/mgcp_ss7.c
parentfc98ce252e7111c06e8051e0121b31913db9ff39 (diff)
mgcp: Remove the endp_offset that was introduced due coding stupidity
The endpoint offset is needed for two reasons, first the API is 0 based here while we are normally 1 based, second because of the trunks the first usable endpoint would be '2' (0 is CRC, 1 is signalling), but this endpoint offset falls apart when we would block timeslots inside this range. Remove the endpoint offset, in each endpoint we will store the HW DSP Port (1 based API) and then subtract one to get to the 0 based API for the Simple API. Print a warning when someone is using the endpoint offset.
Diffstat (limited to 'src/mgcp_ss7.c')
-rw-r--r--src/mgcp_ss7.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mgcp_ss7.c b/src/mgcp_ss7.c
index 22e1db3..30bde3a 100644
--- a/src/mgcp_ss7.c
+++ b/src/mgcp_ss7.c
@@ -79,9 +79,7 @@ static int select_voice_port(struct mgcp_endpoint *endp)
return -1;
}
- mgw_port = endp->tcfg->voice_base + 30 * multiplex;
-
- mgw_port = mgw_port + timeslot - endp->tcfg->endp_offset;
+ mgw_port = endp->hw_snmp_port - 1;
fprintf(stderr, "TEST: Going to use MGW: %d for MUL: %d TS: %d\n",
mgw_port, multiplex, timeslot);
return mgw_port;
@@ -707,6 +705,7 @@ static struct mgcp_ss7 *mgcp_ss7_init(struct mgcp_config *cfg)
}
dsp_resource += 1;
+ cfg->trunk.endpoints[i].hw_snmp_port = dsp_resource;
if (cfg->configure_trunks) {
int res;
@@ -724,7 +723,6 @@ static struct mgcp_ss7 *mgcp_ss7_init(struct mgcp_config *cfg)
}
llist_for_each_entry(trunk, &cfg->trunks, entry) {
- trunk->voice_base = dsp_resource;
for (i = 1; i < trunk->number_endpoints; ++i) {
int multiplex, timeslot;
@@ -735,6 +733,7 @@ static struct mgcp_ss7 *mgcp_ss7_init(struct mgcp_config *cfg)
}
dsp_resource += 1;
+ trunk->endpoints[i].hw_snmp_port = dsp_resource;
if (cfg->configure_trunks) {
int res;