Merge pull request #25 from jambonz/#24

feat: update tls and wss port for sbc-addresses
This commit is contained in:
Dave Horton
2023-05-05 20:10:07 -04:00
committed by GitHub
+31 -10
View File
@@ -94,22 +94,43 @@ srf.on('connect', (err, hp) => {
logger.info(`connected to drachtio listening on ${hp}`); logger.info(`connected to drachtio listening on ${hp}`);
// Add SBC Public IP to Database // Add SBC Public IP to Database
const map = new Map();
const hostports = hp.split(','); const hostports = hp.split(',');
for (const hp of hostports) { for (const hp of hostports) {
const arr = /^(.*)\/(.*):(\d+)$/.exec(hp); const arr = /^(.*)\/(.*):(\d+)$/.exec(hp);
if (arr && 'udp' === arr[1]) { if (arr) {
logger.info(`adding sbc public address to database: ${arr[2]}`); const ipv4 = arr[2];
srf.locals.sbcPublicIpAddress = `${arr[2]}:${arr[3]}`; const port = arr[3];
addSbcAddress(arr[2]); const addr = map.get(ipv4) || {ipv4};
cleanSbcAddresses(); switch (arr[1]) {
// keep alive for this SBC case 'udp':
setTimeout(() => { srf.locals.sbcPublicIpAddress = `${ipv4}:${port}`;
addSbcAddress(arr[2]); map.set(ipv4, {...addr, port: port});
cleanSbcAddresses(); break;
}, interval); case 'tls':
map.set(ipv4, {...addr, tls_port: port});
break;
case 'wss':
map.set(ipv4, {...addr, wss_port: port});
break;
}
} }
} }
map.forEach((addr) => {
addSbcAddress(addr.ipv4, addr.port, addr.tls_port, addr.wss_port);
// keep alive for this SBC
setTimeout(() => {
addSbcAddress(addr.ipv4, addr.port, addr.tls_port, addr.wss_port);
}, interval);
});
// first start up, clean sbc address
cleanSbcAddresses();
setTimeout(() => {
cleanSbcAddresses();
}, interval);
/* start regbot */ /* start regbot */
require('./lib/sip-trunk-register')(logger, srf); require('./lib/sip-trunk-register')(logger, srf);
}); });