disable reg on error

This commit is contained in:
Sam Machin
2025-04-01 12:53:28 +01:00
parent 5ab2a330d6
commit c3024bffec
2 changed files with 22 additions and 4 deletions

6
app.js
View File

@@ -56,7 +56,8 @@ const {
lookupSipGatewaysByFilters,
updateSipGatewayBySid,
lookupCarrierBySid,
lookupSystemInformation
lookupSystemInformation,
updateCarrierBySid,
} = require('@jambonz/db-helpers')({
host: JAMBONES_MYSQL_HOST,
user: JAMBONES_MYSQL_USER,
@@ -104,7 +105,8 @@ srf.locals = {
lookupSipGatewaysByFilters,
updateSipGatewayBySid,
lookupCarrierBySid,
lookupSystemInformation
lookupSystemInformation,
updateCarrierBySid
},
realtimeDbHelpers: {
client,

View File

@@ -1,7 +1,8 @@
const {
JAMBONES_REGBOT_DEFAULT_EXPIRES_INTERVAL,
JAMBONES_REGBOT_MIN_EXPIRES_INTERVAL,
JAMBONES_REGBOT_CONTACT_USE_IP
JAMBONES_REGBOT_CONTACT_USE_IP,
REGISTER_RESPONSE_REMOVE
} = require('./config');
const debug = require('debug')('jambonz:sbc-registrar');
const {isValidIPv4, isValidDomainOrIP} = require('./utils');
@@ -74,6 +75,8 @@ class Regbot {
async register(srf) {
const { updateVoipCarriersRegisterStatus } = srf.locals.dbHelpers;
const { writeAlerts } = srf.locals;
try {
// transport
const transport = (this.protocol.includes('/') ? this.protocol.substring(0, this.protocol.indexOf('/')) :
@@ -120,11 +123,24 @@ class Regbot {
password: this.password
}
});
req.on('response', (res) => {
req.on('response', async(res) => {
if (res.status !== 200) {
this.status = 'fail';
this.logger.info(`${this.aor}: got ${res.status} registering to ${this.ipv4}:${this.port}`);
this.timer = setTimeout(this.register.bind(this, srf), 30 * 1000);
if (REGISTER_RESPONSE_REMOVE.includes(res.status)) {
const { updateCarrierBySid, lookupCarrierBySid } = srf.locals.dbHelpers;
await updateCarrierBySid(this.voip_carrier_sid, {requires_register: false});
this.stop(); //Remove the retry timer
const carrier = await lookupCarrierBySid(this.voip_carrier_sid);
if (carrier) {
writeAlerts({
account_sid: carrier.account_sid,
service_provider_sid: carrier.service_provider_sid,
message: `Disabling Outbound Registration for carrier ${carrier.name}(${carrier.voip_carrier_sid})`
});
}
}
}
else {