mirror of
https://github.com/jambonz/sbc-outbound.git
synced 2026-10-04 02:04:19 +00:00
Compare commits
7
Commits
v0.9.2-rc1
..
v0.9.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c22104fbe2 | ||
|
|
3701e20295 | ||
|
|
821275cb67 | ||
|
|
f5ac51a8f7 | ||
|
|
0cf90f37b8 | ||
|
|
62fb716236 | ||
|
|
b8fdf9f429 |
@@ -198,6 +198,10 @@ if ('test' !== process.env.NODE_ENV) {
|
||||
logger.info(`updating private network cidr from ${srf.locals.privateNetworkCidr} to ${r.private_network_cidr}`);
|
||||
srf.locals.privateNetworkCidr = r.private_network_cidr;
|
||||
}
|
||||
// Update system log level
|
||||
if (r.log_level) {
|
||||
logger.level = r.log_level;
|
||||
}
|
||||
}
|
||||
}, 20000);
|
||||
}
|
||||
|
||||
+10
-2
@@ -13,6 +13,7 @@ const createBLegFromHeader = ({
|
||||
logger,
|
||||
req,
|
||||
host,
|
||||
fromUser,
|
||||
register_from_domain,
|
||||
transport,
|
||||
teams = false,
|
||||
@@ -22,9 +23,9 @@ const createBLegFromHeader = ({
|
||||
const uri = parseUri(from.uri);
|
||||
const transportParam = transport ? `;transport=${transport}` : '';
|
||||
|
||||
logger.debug({from, uri, host, scheme, transport, teams}, 'createBLegFromHeader');
|
||||
logger.debug({from, fromUser, uri, host, scheme, transport, teams}, 'createBLegFromHeader');
|
||||
/* user */
|
||||
const user = req.get('X-Preferred-From-User') || uri.user || 'anonymous';
|
||||
const user = fromUser || req.get('X-Preferred-From-User') || uri.user || 'anonymous';
|
||||
|
||||
/* host */
|
||||
if (!host) {
|
||||
@@ -70,6 +71,7 @@ const initCdr = (req, invite) => {
|
||||
account_sid: req.get('X-Account-Sid'),
|
||||
call_sid: req.get('X-Call-Sid'),
|
||||
sip_callid: invite.get('Call-ID'),
|
||||
...(req.has('X-CID') && {sip_parent_callid: req.get('X-CID')}),
|
||||
...(applicationSid && {application_sid: applicationSid}),
|
||||
from,
|
||||
to,
|
||||
@@ -456,6 +458,7 @@ class CallSession extends Emitter {
|
||||
Contact: createBLegFromHeader({
|
||||
logger: this.logger,
|
||||
req: this.req,
|
||||
...(gw.auth?.username && {fromUser: gw.auth?.username}),
|
||||
scheme,
|
||||
transport,
|
||||
...(private_network && {host: this.privateSipAddress})
|
||||
@@ -519,6 +522,11 @@ class CallSession extends Emitter {
|
||||
'-Allow',
|
||||
'-Session-Expires'
|
||||
],
|
||||
// Add X-CID header to feature server response.
|
||||
// to allow calling/status hooks contains sbc_callid.
|
||||
responseHeaders: (uacRes, headers) => {
|
||||
headers['X-CID'] = uacRes.get('Call-ID');
|
||||
},
|
||||
headers: hdrs,
|
||||
auth: gw ? gw.auth : undefined,
|
||||
localSdpB: response.sdp,
|
||||
|
||||
+9
-2
@@ -77,7 +77,11 @@ module.exports = (srf, logger, redisClient) => {
|
||||
});
|
||||
|
||||
try {
|
||||
req.locals.account = await lookupAccountBySid(req.locals.account_sid);
|
||||
const account = await lookupAccountBySid(req.locals.account_sid);
|
||||
req.locals.account = account;
|
||||
if (account.enable_debug_log) {
|
||||
req.locals.logger.level = 'debug';
|
||||
}
|
||||
req.locals.service_provider_sid = req.locals.account.service_provider_sid;
|
||||
} catch (err) {
|
||||
req.locals.logger.error({err}, `Error looking up account sid ${req.locals.account_sid}`);
|
||||
@@ -223,7 +227,10 @@ module.exports = (srf, logger, redisClient) => {
|
||||
/* redirect to the correct SBC where this user is connected */
|
||||
const proxyAddress = selectHostPort(reg.sbcAddress, 'tcp');
|
||||
const redirectUri = `<sip:${proxyAddress[1]}>`;
|
||||
logger.info(`redirecting call to SBC at ${redirectUri}`);
|
||||
logger.info({
|
||||
myHostPort: req.server.hostport,
|
||||
registeredHostPort: reg.sbcAddress,
|
||||
}, `redirecting call to SBC at ${redirectUri}`);
|
||||
return res.send(302, {headers: {Contact: redirectUri}});
|
||||
}
|
||||
req.locals.registration = reg;
|
||||
|
||||
Generated
+8
-7
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "sbc-outbound",
|
||||
"version": "0.9.0",
|
||||
"version": "0.9.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "sbc-outbound",
|
||||
"version": "0.9.0",
|
||||
"version": "0.9.2",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@jambonz/db-helpers": "^0.9.7",
|
||||
@@ -16,7 +16,7 @@
|
||||
"@jambonz/rtpengine-utils": "^0.4.4",
|
||||
"@jambonz/siprec-client-utils": "^0.2.7",
|
||||
"@jambonz/stats-collector": "^0.1.10",
|
||||
"@jambonz/time-series": "^0.2.8",
|
||||
"@jambonz/time-series": "^0.2.10",
|
||||
"cidr-matcher": "^2.1.1",
|
||||
"debug": "^4.3.4",
|
||||
"drachtio-fn-b2b-sugar": "^0.1.0",
|
||||
@@ -33,7 +33,7 @@
|
||||
"tape": "^5.7.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
"node": ">= 18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@ampproject/remapping": {
|
||||
@@ -646,9 +646,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@jambonz/time-series": {
|
||||
"version": "0.2.8",
|
||||
"resolved": "https://registry.npmjs.org/@jambonz/time-series/-/time-series-0.2.8.tgz",
|
||||
"integrity": "sha512-iFSKPAEElb3NXVAKYlr+2Q08zNhv8SlsS4I1Bwg4gFIj4Tku0vHzoXk6WTCzMRY1hE4YbBPbImNYLW9BfzMJjw==",
|
||||
"version": "0.2.10",
|
||||
"resolved": "https://registry.npmjs.org/@jambonz/time-series/-/time-series-0.2.10.tgz",
|
||||
"integrity": "sha512-Y7Ih2ej6SxK2kZzI1BRLL5ytaxicmIPI/uZB5Sf02kl1/O/ddJ45/xI7OipSu8SPkTuRLRJwkFgTmYekBiUHfw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"debug": "^4.3.1",
|
||||
"influx": "^5.9.3"
|
||||
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"name": "sbc-outbound",
|
||||
"version": "0.9.0",
|
||||
"version": "0.9.2",
|
||||
"main": "app.js",
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
"node": ">= 18.0.0"
|
||||
},
|
||||
"keywords": [
|
||||
"sip",
|
||||
@@ -34,7 +34,7 @@
|
||||
"@jambonz/rtpengine-utils": "^0.4.4",
|
||||
"@jambonz/siprec-client-utils": "^0.2.7",
|
||||
"@jambonz/stats-collector": "^0.1.10",
|
||||
"@jambonz/time-series": "^0.2.8",
|
||||
"@jambonz/time-series": "^0.2.10",
|
||||
"cidr-matcher": "^2.1.1",
|
||||
"debug": "^4.3.4",
|
||||
"drachtio-fn-b2b-sugar": "^0.1.0",
|
||||
|
||||
@@ -358,7 +358,9 @@ CREATE TABLE system_information
|
||||
(
|
||||
domain_name VARCHAR(255),
|
||||
sip_domain_name VARCHAR(255),
|
||||
monitoring_domain_name VARCHAR(255)
|
||||
monitoring_domain_name VARCHAR(255),
|
||||
private_network_cidr VARCHAR(8192),
|
||||
log_level ENUM('info', 'debug') NOT NULL DEFAULT 'info'
|
||||
);
|
||||
|
||||
CREATE TABLE users
|
||||
@@ -552,6 +554,7 @@ siprec_hook_sid CHAR(36),
|
||||
record_all_calls BOOLEAN NOT NULL DEFAULT false,
|
||||
record_format VARCHAR(16) NOT NULL DEFAULT 'mp3',
|
||||
bucket_credential VARCHAR(8192) COMMENT 'credential used to authenticate with storage service',
|
||||
enable_debug_log BOOLEAN NOT NULL DEFAULT false,
|
||||
PRIMARY KEY (account_sid)
|
||||
) COMMENT='An enterprise that uses the platform for comm services';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user