feat: update tls and wss port for sbc-addresses

This commit is contained in:
Quan HL
2023-05-04 13:37:12 +07:00
parent 786b6a1182
commit f34e0bf241
2 changed files with 32 additions and 11 deletions

41
app.js
View File

@@ -94,22 +94,43 @@ srf.on('connect', (err, hp) => {
logger.info(`connected to drachtio listening on ${hp}`);
// Add SBC Public IP to Database
const map = new Map();
const hostports = hp.split(',');
for (const hp of hostports) {
const arr = /^(.*)\/(.*):(\d+)$/.exec(hp);
if (arr && 'udp' === arr[1]) {
logger.info(`adding sbc public address to database: ${arr[2]}`);
srf.locals.sbcPublicIpAddress = `${arr[2]}:${arr[3]}`;
addSbcAddress(arr[2]);
cleanSbcAddresses();
// keep alive for this SBC
setTimeout(() => {
addSbcAddress(arr[2]);
cleanSbcAddresses();
}, interval);
if (arr ) {
const ipv4 = arr[2];
const port = arr[3];
const addr = map.get(ipv4) || {ipv4};
switch(arr[1]) {
case 'udp':
srf.locals.sbcPublicIpAddress = `${ipv4}:${port}`;
map.set(ipv4, {...addr, port: port})
break;
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 */
require('./lib/sip-trunk-register')(logger, srf);
});