disable options ping on defined errors

This commit is contained in:
Sam Machin
2025-04-01 11:12:59 +01:00
parent 2cabf29e6f
commit f335836dc5
2 changed files with 20 additions and 1 deletions

View File

@@ -31,6 +31,8 @@ const JAMBONES_REGBOT_CONTACT_USE_IP = process.env.JAMBONES_REGBOT_CONTACT_USE_I
const JAMBONES_REGBOT_MIN_EXPIRES_INTERVAL = process.env.JAMBONES_REGBOT_MIN_EXPIRES_INTERVAL;
const JAMBONES_REGBOT_DEFAULT_EXPIRES_INTERVAL = process.env.JAMBONES_REGBOT_DEFAULT_EXPIRES_INTERVAL;
const JAMBONES_REGBOT_INITIAL_DELAY_MS = process.env.JAMBONES_REGBOT_INITIAL_DELAY_MS || 250;
const OPTIONS_RESPONSE_REMOVE = process.env.OPTIONS_RESPONSE_REMOVE || [];
const REGISTER_RESPONSE_REMOVE = process.env.REGISTER_RESPONSE_REMOVE || [];
module.exports = {
JAMBONES_MYSQL_HOST,
@@ -57,5 +59,7 @@ module.exports = {
JAMBONES_REGBOT_CONTACT_USE_IP,
JAMBONES_REGBOT_MIN_EXPIRES_INTERVAL,
JAMBONES_REGBOT_DEFAULT_EXPIRES_INTERVAL,
JAMBONES_REGBOT_INITIAL_DELAY_MS
JAMBONES_REGBOT_INITIAL_DELAY_MS,
OPTIONS_RESPONSE_REMOVE,
REGISTER_RESPONSE_REMOVE
};

View File

@@ -1,4 +1,5 @@
const { addSipGatewayToBlacklist, removeSipGatewayFromBlacklist, isSipGatewayBlacklisted } = require('./utils');
const {OPTIONS_RESPONSE_REMOVE} = require('./lib/config');
const send_options_gateways = [];
const send_options_bots = [];
@@ -50,6 +51,20 @@ class OptionsBot {
});
}
}
if (OPTIONS_RESPONSE_REMOVE.includes(res.status)) {
const { updateSipGatewayBySid } = srf.locals.dbHelpers;
await updateSipGatewayBySid(this.voip_carrier_sid, {send_options_ping: false});
const carrier = await lookupCarrierBySid(this.voip_carrier_sid);
if (carrier) {
writeAlerts({
account_sid: carrier.account_sid,
service_provider_sid: carrier.service_provider_sid,
// eslint-disable-next-line max-len
message: `Disabling Options ping for ${this.ipv4} in carrier ${carrier.name}(${carrier.voip_carrier_sid})`
});
}
}
} else {
// If the gateway is blacklisted, remove it from the blacklist as we have successfully pinged it
if (await isSipGatewayBlacklisted(realtimeDbHelpers.client, logger, this.sip_gateway_sid)) {