Skip to content

Commit dcfa22c

Browse files
authored
Merge branch 'main' into feat/cli_remove_fs
2 parents e0abbe0 + 658cb6a commit dcfa22c

File tree

5 files changed

+31
-18
lines changed

5 files changed

+31
-18
lines changed

app.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ const {
8888
isMemberOfSet,
8989
retrieveSet,
9090
createEphemeralGateway,
91+
deleteEphemeralGateway
9192
} = require('@jambonz/realtimedb-helpers')({}, logger);
9293

9394
const interval = SBC_PUBLIC_ADDRESS_KEEP_ALIVE_IN_MILISECOND || 900000; // Default 15 minutes
@@ -120,6 +121,7 @@ srf.locals = {
120121
retrieveKey,
121122
retrieveSet,
122123
createEphemeralGateway,
124+
deleteEphemeralGateway
123125
},
124126
writeAlerts,
125127
AlertType

lib/regbot.js

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,19 @@ class Regbot {
5050
this.register(srf);
5151
}
5252

53-
stop() {
54-
this.logger.info(`stopping regbot ${this.fromUser}@${this.sip_realm}`);
53+
stop(srf) {
54+
const { deleteEphemeralGateway } = srf.locals.realtimeDbHelpers;
5555
clearTimeout(this.timer);
56+
this.timer = null;
57+
// remove any ephemeral gateways created for this regbot
58+
if (this.addresses && this.addresses.length) {
59+
this.addresses.forEach((ip) => {
60+
deleteEphemeralGateway(ip, this.voip_carrier_sid).catch((err) => {
61+
this.logger.error({err, ip}, 'Error deleting ephemeral gateway on regbot stop');
62+
});
63+
});
64+
}
65+
5666
}
5767

5868
toJSON() {
@@ -136,7 +146,7 @@ class Regbot {
136146
if (REGISTER_RESPONSE_REMOVE.includes(res.status)) {
137147
const { updateCarrierBySid, lookupCarrierBySid } = srf.locals.dbHelpers;
138148
await updateCarrierBySid(this.voip_carrier_sid, {requires_register: false});
139-
this.stop(); //Remove the retry timer
149+
this.stop(srf); //Remove the retry timer
140150
const carrier = await lookupCarrierBySid(this.voip_carrier_sid);
141151
if (carrier) {
142152
// eslint-disable-next-line max-len
@@ -194,25 +204,25 @@ class Regbot {
194204

195205
// for reg trunks, create ephemeral set of IP addresses for inbound gateways
196206
if (this.trunk_type === 'reg') {
197-
const addresses = [];
207+
this.addresses = [];
198208
if (this.port) {
199209
const addrs = await dnsResolverA(this.logger, this.sip_realm);
200-
addresses.push(...addrs);
210+
this.addresses.push(...addrs);
201211
}
202212
else {
203213
const addrs = await dnsResolverSrv(this.logger, this.sip_realm, this.transport);
204-
addresses.push(...addrs);
214+
this.addresses.push(...addrs);
205215
}
206216

207-
if (addresses.length) {
217+
if (this.addresses.length) {
208218
try {
209219
await Promise.all(
210-
addresses.map((ip) => createEphemeralGateway(ip, this.voip_carrier_sid, expires))
220+
this.addresses.map((ip) => createEphemeralGateway(ip, this.voip_carrier_sid, expires))
211221
);
212222
} catch (err) {
213-
this.logger.error({addresses, err}, 'Error creating hash for reg-gateway');
223+
this.logger.error({addresses: this.addresses, err}, 'Error creating hash for reg-gateway');
214224
}
215-
this.logger.debug({addresses},
225+
this.logger.debug({addresses: this.addresses},
216226
`Created ephemeral gateways for registration trunk ${this.voip_carrier_sid}, ${this.sip_realm}`);
217227
}
218228
}

lib/sip-trunk-register.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,12 @@ const checkStatus = async(logger, srf) => {
154154
}
155155
else if (token && token !== myToken) {
156156
logger.info('Someone else grabbed the role! I need to stand down');
157-
regbots.forEach((rb) => rb.stop());
157+
regbots.forEach((rb) => rb.stop(srf));
158158
regbots.length = 0;
159159
}
160160
else {
161161
grabForTheWheel = true;
162-
regbots.forEach((rb) => rb.stop());
162+
regbots.forEach((rb) => rb.stop(srf));
163163
regbots.length = 0;
164164
}
165165
}
@@ -230,7 +230,7 @@ const updateCarrierRegbots = async(logger, srf) => {
230230
Array.prototype.push.apply(gateways, gws);
231231

232232
// stop / kill existing regbots
233-
regbots.forEach((rb) => rb.stop());
233+
regbots.forEach((rb) => rb.stop(srf));
234234
regbots.length = 0;
235235

236236
// start new regbots

package-lock.json

Lines changed: 5 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"@jambonz/db-helpers": "^0.9.18",
3333
"@jambonz/digest-utils": "^0.0.6",
3434
"@jambonz/mw-registrar": "^0.2.7",
35-
"@jambonz/realtimedb-helpers": "^0.8.18",
35+
"@jambonz/realtimedb-helpers": "^0.8.19",
3636
"@jambonz/stats-collector": "^0.1.10",
3737
"@jambonz/time-series": "^0.2.8",
3838
"debug": "^4.3.4",

0 commit comments

Comments
 (0)