Add support for configuring the IP address that is advertised to the API server. (#875)

This is needed when running in fargate as ip.address() will return the wrong ip address.
This commit is contained in:
RJ Burnham
2024-08-23 13:33:16 +01:00
committed by GitHub
parent 2790e6d9ad
commit eccef54b04
3 changed files with 6 additions and 1 deletions

View File

@@ -21,6 +21,7 @@ Configuration is provided via environment variables:
|ENCRYPTION_SECRET| secret for credential encryption(JWT_SECRET is deprecated) |yes| |ENCRYPTION_SECRET| secret for credential encryption(JWT_SECRET is deprecated) |yes|
|GOOGLE_APPLICATION_CREDENTIALS| path to gcp service key file|yes| |GOOGLE_APPLICATION_CREDENTIALS| path to gcp service key file|yes|
|HTTP_PORT| tcp port to listen on for API requests from jambonz-api-server|yes| |HTTP_PORT| tcp port to listen on for API requests from jambonz-api-server|yes|
|HTTP_IP| IP Address for API requests from jambonz-api-server |no|
|JAMBONES_GATHER_EARLY_HINTS_MATCH| if true and hints are provided, gather will opportunistically review interim transcripts if possible to reduce ASR latency |no| |JAMBONES_GATHER_EARLY_HINTS_MATCH| if true and hints are provided, gather will opportunistically review interim transcripts if possible to reduce ASR latency |no|
|JAMBONES_FREESWITCH| IP:port:secret for Freeswitch server (e.g. '127.0.0.1:8021:JambonzR0ck$'|yes| |JAMBONES_FREESWITCH| IP:port:secret for Freeswitch server (e.g. '127.0.0.1:8021:JambonzR0ck$'|yes|
|JAMBONES_LOGLEVEL| log level for application, 'info' or 'debug'|no| |JAMBONES_LOGLEVEL| log level for application, 'info' or 'debug'|no|

View File

@@ -73,6 +73,7 @@ const JAMBONES_LOGLEVEL = process.env.JAMBONES_LOGLEVEL || 'info';
const JAMBONES_INJECT_CONTENT = process.env.JAMBONES_INJECT_CONTENT; const JAMBONES_INJECT_CONTENT = process.env.JAMBONES_INJECT_CONTENT;
const PORT = parseInt(process.env.HTTP_PORT, 10) || 3000; const PORT = parseInt(process.env.HTTP_PORT, 10) || 3000;
const HTTP_IP = process.env.HTTP_IP;
const HTTP_PORT_MAX = parseInt(process.env.HTTP_PORT_MAX, 10); const HTTP_PORT_MAX = parseInt(process.env.HTTP_PORT_MAX, 10);
const K8S = process.env.K8S; const K8S = process.env.K8S;
@@ -170,6 +171,7 @@ module.exports = {
JAMBONES_CLUSTER_ID, JAMBONES_CLUSTER_ID,
PORT, PORT,
HTTP_PORT_MAX, HTTP_PORT_MAX,
HTTP_IP,
K8S, K8S,
K8S_SBC_SIP_SERVICE_NAME, K8S_SBC_SIP_SERVICE_NAME,
JAMBONES_SUBNET, JAMBONES_SUBNET,

View File

@@ -12,6 +12,7 @@ const {
JAMBONES_TIME_SERIES_HOST, JAMBONES_TIME_SERIES_HOST,
JAMBONES_ESL_LISTEN_ADDRESS, JAMBONES_ESL_LISTEN_ADDRESS,
PORT, PORT,
HTTP_IP,
NODE_ENV, NODE_ENV,
} = require('../config'); } = require('../config');
const Registrar = require('@jambonz/mw-registrar'); const Registrar = require('@jambonz/mw-registrar');
@@ -193,7 +194,8 @@ function installSrfLocals(srf, logger) {
let localIp; let localIp;
try { try {
localIp = ip.address(); // Either use the configured IP address or call ip.address() to find it
localIp = HTTP_IP || ip.address();
} catch (err) { } catch (err) {
logger.error({err}, 'installSrfLocals - error detecting local ipv4 address'); logger.error({err}, 'installSrfLocals - error detecting local ipv4 address');
} }