'N@mgw' number translation uses base-16 which will break for decimal endpoint IDs near the number of reserved endpoints
osmo-mgw parses the endpoint IDs like
gw = strtoul(mgcp, &endptr, 16);
i.e. as base-16 numbers. But OsmoMSC and OsmoBSC pass in decimal endpoint numbers. The consequence is, for example:
- I configure 32 endpoints in osmo-mgw
- I tell OsmoBSC to use endpoint range 1-32
- At some point OsmoBSC may pass in, say, "30@mgw"
- "30" is parsed base-16 and ends up being endpoint index 48, instead of 32.
- OsmoMGW sees that 48 > number_endpoints and barfs.