mirror of
https://github.com/jambonz/sbc-inbound.git
synced 2026-10-04 02:04:22 +00:00
Feature/tcp to fs (#72)
* add env var K8S_FEATURE_SERVER_TRANSPORT * add Contact with private address when using tcp to FS on K8S * further refinement
This commit is contained in:
@@ -28,6 +28,7 @@ const {
|
|||||||
commitInterval: 'test' === process.env.NODE_ENV ? 7 : 20
|
commitInterval: 'test' === process.env.NODE_ENV ? 7 : 20
|
||||||
});
|
});
|
||||||
const StatsCollector = require('@jambonz/stats-collector');
|
const StatsCollector = require('@jambonz/stats-collector');
|
||||||
|
const CIDRMatcher = require('cidr-matcher');
|
||||||
const stats = new StatsCollector(logger);
|
const stats = new StatsCollector(logger);
|
||||||
const {equalsIgnoreOrder, createHealthCheckApp, systemHealth} = require('./lib/utils');
|
const {equalsIgnoreOrder, createHealthCheckApp, systemHealth} = require('./lib/utils');
|
||||||
const {LifeCycleEvents} = require('./lib/constants');
|
const {LifeCycleEvents} = require('./lib/constants');
|
||||||
@@ -129,7 +130,6 @@ const {
|
|||||||
const CallSession = require('./lib/call-session');
|
const CallSession = require('./lib/call-session');
|
||||||
|
|
||||||
if (process.env.DRACHTIO_HOST && !process.env.K8S) {
|
if (process.env.DRACHTIO_HOST && !process.env.K8S) {
|
||||||
const CIDRMatcher = require('cidr-matcher');
|
|
||||||
const cidrs = process.env.JAMBONES_NETWORK_CIDR
|
const cidrs = process.env.JAMBONES_NETWORK_CIDR
|
||||||
.split(',')
|
.split(',')
|
||||||
.map((s) => s.trim());
|
.map((s) => s.trim());
|
||||||
@@ -164,6 +164,23 @@ else {
|
|||||||
logger.info(`listening in outbound mode on port ${process.env.DRACHTIO_PORT}`);
|
logger.info(`listening in outbound mode on port ${process.env.DRACHTIO_PORT}`);
|
||||||
});
|
});
|
||||||
srf.listen({port: process.env.DRACHTIO_PORT, secret: process.env.DRACHTIO_SECRET});
|
srf.listen({port: process.env.DRACHTIO_PORT, secret: process.env.DRACHTIO_SECRET});
|
||||||
|
srf.on('connect', (err, hp) => {
|
||||||
|
if (err) return this.logger.error({err}, 'Error connecting to drachtio server');
|
||||||
|
logger.info(`connected to drachtio listening on ${hp}`);
|
||||||
|
|
||||||
|
if (process.env.K8S_FEATURE_SERVER_TRANSPORT === 'tcp') {
|
||||||
|
const matcher = new CIDRMatcher(['192.168.0.0/24', '172.16.0.0/16', '10.0.0.0/8']);
|
||||||
|
const hostports = hp.split(',');
|
||||||
|
for (const hp of hostports) {
|
||||||
|
const arr = /^(.*)\/(.*):(\d+)$/.exec(hp);
|
||||||
|
if (arr && matcher.contains(arr[2])) {
|
||||||
|
const hostport = `${arr[2]}:${arr[3]}`;
|
||||||
|
logger.info(`using sbc private address when sending to feature-server: ${hostport}`);
|
||||||
|
srf.locals.privateSipAddress = hostport;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (process.env.NODE_ENV === 'test') {
|
if (process.env.NODE_ENV === 'test') {
|
||||||
srf.on('error', (err) => {
|
srf.on('error', (err) => {
|
||||||
|
|||||||
+3
-1
@@ -15,7 +15,9 @@ module.exports = (srf, logger) => {
|
|||||||
return async() => {
|
return async() => {
|
||||||
try {
|
try {
|
||||||
if (process.env.K8S) {
|
if (process.env.K8S) {
|
||||||
return process.env.K8S_FEATURE_SERVER_SERVICE_NAME;
|
return process.env.K8S_FEATURE_SERVER_TRANSPORT ?
|
||||||
|
`${process.env.K8S_FEATURE_SERVER_SERVICE_NAME};transport=${process.env.K8S_FEATURE_SERVER_TRANSPORT}` :
|
||||||
|
process.env.K8S_FEATURE_SERVER_SERVICE_NAME;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const fs = await retrieveSet(setName);
|
const fs = await retrieveSet(setName);
|
||||||
|
|||||||
Reference in New Issue
Block a user