bugfix: support looking up application by regex in addition to exact phone number match

This commit is contained in:
Dave Horton
2021-12-20 15:37:21 -05:00
parent c9e2a162c2
commit d38e77c06c
4 changed files with 22 additions and 9 deletions

View File

@@ -8,7 +8,13 @@ const normalizeJambones = require('./utils/normalize-jambones');
const dbUtils = require('./utils/db-utils'); const dbUtils = require('./utils/db-utils');
module.exports = function(srf, logger) { module.exports = function(srf, logger) {
const {lookupAppByPhoneNumber, lookupAppBySid, lookupAppByRealm, lookupAppByTeamsTenant} = srf.locals.dbHelpers; const {
lookupAppByPhoneNumber,
lookupAppByRegex,
lookupAppBySid,
lookupAppByRealm,
lookupAppByTeamsTenant
} = srf.locals.dbHelpers;
const {lookupAccountDetails} = dbUtils(logger, srf); const {lookupAccountDetails} = dbUtils(logger, srf);
function initLocals(req, res, next) { function initLocals(req, res, next) {
const callSid = req.has('X-Retain-Call-Sid') ? req.get('X-Retain-Call-Sid') : uuidv4(); const callSid = req.has('X-Retain-Call-Sid') ? req.get('X-Retain-Call-Sid') : uuidv4();
@@ -115,6 +121,11 @@ module.exports = function(srf, logger) {
else { else {
const voip_carrier_sid = req.get('X-Voip-Carrier-Sid'); const voip_carrier_sid = req.get('X-Voip-Carrier-Sid');
app = await lookupAppByPhoneNumber(req.locals.calledNumber, voip_carrier_sid); app = await lookupAppByPhoneNumber(req.locals.calledNumber, voip_carrier_sid);
if (!app) {
/* lookup by call_routes.regex */
app = await lookupAppByRegex(req.locals.calledNumber, account_sid);
}
} }
} }

View File

@@ -112,6 +112,7 @@ function installSrfLocals(srf, logger) {
const { const {
pool, pool,
lookupAppByPhoneNumber, lookupAppByPhoneNumber,
lookupAppByRegex,
lookupAppBySid, lookupAppBySid,
lookupAppByRealm, lookupAppByRealm,
lookupAppByTeamsTenant, lookupAppByTeamsTenant,
@@ -166,6 +167,7 @@ function installSrfLocals(srf, logger) {
client, client,
pool, pool,
lookupAppByPhoneNumber, lookupAppByPhoneNumber,
lookupAppByRegex,
lookupAppBySid, lookupAppBySid,
lookupAppByRealm, lookupAppByRealm,
lookupAppByTeamsTenant, lookupAppByTeamsTenant,

14
package-lock.json generated
View File

@@ -8,7 +8,7 @@
"version": "v0.7.0", "version": "v0.7.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@jambonz/db-helpers": "^0.6.15", "@jambonz/db-helpers": "^0.6.16",
"@jambonz/mw-registrar": "^0.2.1", "@jambonz/mw-registrar": "^0.2.1",
"@jambonz/realtimedb-helpers": "^0.4.10", "@jambonz/realtimedb-helpers": "^0.4.10",
"@jambonz/stats-collector": "^0.1.5", "@jambonz/stats-collector": "^0.1.5",
@@ -470,9 +470,9 @@
} }
}, },
"node_modules/@jambonz/db-helpers": { "node_modules/@jambonz/db-helpers": {
"version": "0.6.15", "version": "0.6.16",
"resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.15.tgz", "resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.16.tgz",
"integrity": "sha512-zF9bBn+VIramn24xPPoX6lYbm0gWG6Mj2puEXNb5FyJN1SbxYwnsIHm+mupm2qmi5RXt8TWKXw8oCrhKr3zusA==", "integrity": "sha512-jvQULOgoRorevFoZ4RbKIF7QvswSor5sk+THigEId7uPAlaq/GRKCWdEA1rxEizzhfOAiRT6Qg2tyisZ9eg3aA==",
"dependencies": { "dependencies": {
"cidr-matcher": "^2.1.1", "cidr-matcher": "^2.1.1",
"debug": "^4.3.3", "debug": "^4.3.3",
@@ -5556,9 +5556,9 @@
"dev": true "dev": true
}, },
"@jambonz/db-helpers": { "@jambonz/db-helpers": {
"version": "0.6.15", "version": "0.6.16",
"resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.15.tgz", "resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.16.tgz",
"integrity": "sha512-zF9bBn+VIramn24xPPoX6lYbm0gWG6Mj2puEXNb5FyJN1SbxYwnsIHm+mupm2qmi5RXt8TWKXw8oCrhKr3zusA==", "integrity": "sha512-jvQULOgoRorevFoZ4RbKIF7QvswSor5sk+THigEId7uPAlaq/GRKCWdEA1rxEizzhfOAiRT6Qg2tyisZ9eg3aA==",
"requires": { "requires": {
"cidr-matcher": "^2.1.1", "cidr-matcher": "^2.1.1",
"debug": "^4.3.3", "debug": "^4.3.3",

View File

@@ -26,7 +26,7 @@
"jslint": "eslint app.js lib" "jslint": "eslint app.js lib"
}, },
"dependencies": { "dependencies": {
"@jambonz/db-helpers": "^0.6.15", "@jambonz/db-helpers": "^0.6.16",
"@jambonz/mw-registrar": "^0.2.1", "@jambonz/mw-registrar": "^0.2.1",
"@jambonz/realtimedb-helpers": "^0.4.10", "@jambonz/realtimedb-helpers": "^0.4.10",
"@jambonz/stats-collector": "^0.1.5", "@jambonz/stats-collector": "^0.1.5",