further fixes for freeswitch retry

This commit is contained in:
Dave Horton
2020-03-30 10:37:13 -04:00
parent 76bd88518a
commit 56f7a0755c

View File

@@ -4,6 +4,24 @@ const localIp = ip.address();
const PORT = process.env.HTTP_PORT || 3000;
const assert = require('assert');
function initMS(logger, wrapper, ms) {
Object.assign(wrapper, {ms, active: true, connects: 1});
logger.info(`connected to freeswitch at ${ms.address}`);
ms.conn
.on('esl::end', () => {
wrapper.active = false;
logger.info(`lost connection to freeswitch at ${ms.address}`);
})
.on('esl::ready', () => {
if (wrapper.connects > 0) {
logger.info(`connected to freeswitch at ${ms.address}`);
}
wrapper.connects = 1;
wrapper.active = true;
});
}
function installSrfLocals(srf, logger) {
assert(!srf.locals.dbHelpers);
const {getSBC, getSrf} = require('./sbc-pinger')(logger);
@@ -30,21 +48,7 @@ function installSrfLocals(srf, logger) {
mediaservers.push(val);
try {
const ms = await mrf.connect(fs);
Object.assign(val, {ms, active: true, connects: 1});
logger.info(`connected to freeswitch at ${fs.address}`);
ms.conn
.on('esl::end', () => {
val.active = false;
logger.info(`lost connection to freeswitch at ${fs.address}`);
})
.on('esl::ready', () => {
if (val.connects > 0) {
logger.info(`connected to freeswitch at ${fs.address}`);
}
val.connects = 1;
val.active = true;
});
initMS(logger, val, ms);
}
catch (err) {
logger.info(`failed connecting to freeswitch at ${fs.address}, will retry shortly`);
@@ -57,7 +61,7 @@ function installSrfLocals(srf, logger) {
try {
logger.info({mediaserver: val.opts}, 'Retrying initial connection to media server');
const ms = await mrf.connect(val.opts);
val.ms = ms;
initMS(logger, val, ms);
} catch (err) {
logger.info(`failed connecting to freeswitch at ${val.opts.address}, will retry shortly`);
}