From 56f7a0755caef8336184db3d9d00062d85d4a7d4 Mon Sep 17 00:00:00 2001 From: Dave Horton Date: Mon, 30 Mar 2020 10:37:13 -0400 Subject: [PATCH] further fixes for freeswitch retry --- lib/utils/install-srf-locals.js | 36 ++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/lib/utils/install-srf-locals.js b/lib/utils/install-srf-locals.js index 44acde9d..15a5dee7 100644 --- a/lib/utils/install-srf-locals.js +++ b/lib/utils/install-srf-locals.js @@ -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`); }