diff --git a/lib/middleware.js b/lib/middleware.js index 74e2f3f1..fb04ccc1 100644 --- a/lib/middleware.js +++ b/lib/middleware.js @@ -8,7 +8,13 @@ const normalizeJambones = require('./utils/normalize-jambones'); const dbUtils = require('./utils/db-utils'); 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); function initLocals(req, res, next) { 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 { const voip_carrier_sid = req.get('X-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); + } } } diff --git a/lib/utils/install-srf-locals.js b/lib/utils/install-srf-locals.js index 2804149c..bba41c3e 100644 --- a/lib/utils/install-srf-locals.js +++ b/lib/utils/install-srf-locals.js @@ -112,6 +112,7 @@ function installSrfLocals(srf, logger) { const { pool, lookupAppByPhoneNumber, + lookupAppByRegex, lookupAppBySid, lookupAppByRealm, lookupAppByTeamsTenant, @@ -166,6 +167,7 @@ function installSrfLocals(srf, logger) { client, pool, lookupAppByPhoneNumber, + lookupAppByRegex, lookupAppBySid, lookupAppByRealm, lookupAppByTeamsTenant, diff --git a/package-lock.json b/package-lock.json index e490e008..9f241ac8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "v0.7.0", "license": "MIT", "dependencies": { - "@jambonz/db-helpers": "^0.6.15", + "@jambonz/db-helpers": "^0.6.16", "@jambonz/mw-registrar": "^0.2.1", "@jambonz/realtimedb-helpers": "^0.4.10", "@jambonz/stats-collector": "^0.1.5", @@ -470,9 +470,9 @@ } }, "node_modules/@jambonz/db-helpers": { - "version": "0.6.15", - "resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.15.tgz", - "integrity": "sha512-zF9bBn+VIramn24xPPoX6lYbm0gWG6Mj2puEXNb5FyJN1SbxYwnsIHm+mupm2qmi5RXt8TWKXw8oCrhKr3zusA==", + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.16.tgz", + "integrity": "sha512-jvQULOgoRorevFoZ4RbKIF7QvswSor5sk+THigEId7uPAlaq/GRKCWdEA1rxEizzhfOAiRT6Qg2tyisZ9eg3aA==", "dependencies": { "cidr-matcher": "^2.1.1", "debug": "^4.3.3", @@ -5556,9 +5556,9 @@ "dev": true }, "@jambonz/db-helpers": { - "version": "0.6.15", - "resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.15.tgz", - "integrity": "sha512-zF9bBn+VIramn24xPPoX6lYbm0gWG6Mj2puEXNb5FyJN1SbxYwnsIHm+mupm2qmi5RXt8TWKXw8oCrhKr3zusA==", + "version": "0.6.16", + "resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.16.tgz", + "integrity": "sha512-jvQULOgoRorevFoZ4RbKIF7QvswSor5sk+THigEId7uPAlaq/GRKCWdEA1rxEizzhfOAiRT6Qg2tyisZ9eg3aA==", "requires": { "cidr-matcher": "^2.1.1", "debug": "^4.3.3", diff --git a/package.json b/package.json index 782e5be3..5ee65d20 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "jslint": "eslint app.js lib" }, "dependencies": { - "@jambonz/db-helpers": "^0.6.15", + "@jambonz/db-helpers": "^0.6.16", "@jambonz/mw-registrar": "^0.2.1", "@jambonz/realtimedb-helpers": "^0.4.10", "@jambonz/stats-collector": "^0.1.5",