add support for speechmatics asr (#920)

* update to verb specs with speechmatics support

* discover local ip using os module
This commit is contained in:
Dave Horton
2024-10-11 09:24:36 -04:00
committed by GitHub
parent c67499e38b
commit 84b7456c2d
3 changed files with 24 additions and 23 deletions

View File

@@ -1,5 +1,5 @@
const Mrf = require('drachtio-fsmrf'); const Mrf = require('drachtio-fsmrf');
const ip = require('ip'); const os = require('os');
const { const {
JAMBONES_MYSQL_HOST, JAMBONES_MYSQL_HOST,
JAMBONES_MYSQL_USER, JAMBONES_MYSQL_USER,
@@ -18,6 +18,19 @@ const {
const Registrar = require('@jambonz/mw-registrar'); const Registrar = require('@jambonz/mw-registrar');
const assert = require('assert'); const assert = require('assert');
function getLocalIp() {
const interfaces = os.networkInterfaces();
for (const interfaceName in interfaces) {
const interface = interfaces[interfaceName];
for (const iface of interface) {
if (iface.family === 'IPv4' && !iface.internal) {
return iface.address;
}
}
}
return '127.0.0.1'; // Fallback to localhost if no suitable interface found
}
function initMS(logger, wrapper, ms) { function initMS(logger, wrapper, ms) {
Object.assign(wrapper, {ms, active: true, connects: 1}); Object.assign(wrapper, {ms, active: true, connects: 1});
logger.info(`connected to freeswitch at ${ms.address}`); logger.info(`connected to freeswitch at ${ms.address}`);
@@ -195,8 +208,8 @@ function installSrfLocals(srf, logger) {
let localIp; let localIp;
try { try {
// Either use the configured IP address or call ip.address() to find it // Either use the configured IP address or discover it
localIp = HTTP_IP || ip.address(); localIp = HTTP_IP || getLocalIp();
} catch (err) { } catch (err) {
logger.error({err}, 'installSrfLocals - error detecting local ipv4 address'); logger.error({err}, 'installSrfLocals - error detecting local ipv4 address');
} }

25
package-lock.json generated
View File

@@ -18,7 +18,7 @@
"@jambonz/speech-utils": "^0.1.18", "@jambonz/speech-utils": "^0.1.18",
"@jambonz/stats-collector": "^0.1.10", "@jambonz/stats-collector": "^0.1.10",
"@jambonz/time-series": "^0.2.9", "@jambonz/time-series": "^0.2.9",
"@jambonz/verb-specifications": "^0.0.81", "@jambonz/verb-specifications": "^0.0.82",
"@opentelemetry/api": "^1.8.0", "@opentelemetry/api": "^1.8.0",
"@opentelemetry/exporter-jaeger": "^1.23.0", "@opentelemetry/exporter-jaeger": "^1.23.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.50.0", "@opentelemetry/exporter-trace-otlp-http": "^0.50.0",
@@ -35,7 +35,6 @@
"drachtio-srf": "^4.5.35", "drachtio-srf": "^4.5.35",
"express": "^4.19.2", "express": "^4.19.2",
"express-validator": "^7.0.1", "express-validator": "^7.0.1",
"ip": "^2.0.1",
"moment": "^2.30.1", "moment": "^2.30.1",
"parse-url": "^9.2.0", "parse-url": "^9.2.0",
"pino": "^8.20.0", "pino": "^8.20.0",
@@ -1575,9 +1574,9 @@
} }
}, },
"node_modules/@jambonz/verb-specifications": { "node_modules/@jambonz/verb-specifications": {
"version": "0.0.81", "version": "0.0.82",
"resolved": "https://registry.npmjs.org/@jambonz/verb-specifications/-/verb-specifications-0.0.81.tgz", "resolved": "https://registry.npmjs.org/@jambonz/verb-specifications/-/verb-specifications-0.0.82.tgz",
"integrity": "sha512-lufYMLpwaejF3zl8FNy1SvmsxFHXNXU8p7I+GoiwbgOHmFeOX4bQla4RD7bNLFvfjSXPRc2u9h5fceicVa9dcg==", "integrity": "sha512-jgbu0nUXQOGz9Kd0h7gBOrykl2FoZkS7fg5MdNbvnMGO+D4bboBsNTYwGk0k+OSm0D8I7JUQoaFbuKBo8Cj0RA==",
"dependencies": { "dependencies": {
"debug": "^4.3.4", "debug": "^4.3.4",
"pino": "^8.8.0" "pino": "^8.8.0"
@@ -5632,11 +5631,6 @@
"url": "https://opencollective.com/ioredis" "url": "https://opencollective.com/ioredis"
} }
}, },
"node_modules/ip": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz",
"integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ=="
},
"node_modules/ip6addr": { "node_modules/ip6addr": {
"version": "0.2.5", "version": "0.2.5",
"resolved": "https://registry.npmjs.org/ip6addr/-/ip6addr-0.2.5.tgz", "resolved": "https://registry.npmjs.org/ip6addr/-/ip6addr-0.2.5.tgz",
@@ -10538,9 +10532,9 @@
} }
}, },
"@jambonz/verb-specifications": { "@jambonz/verb-specifications": {
"version": "0.0.81", "version": "0.0.82",
"resolved": "https://registry.npmjs.org/@jambonz/verb-specifications/-/verb-specifications-0.0.81.tgz", "resolved": "https://registry.npmjs.org/@jambonz/verb-specifications/-/verb-specifications-0.0.82.tgz",
"integrity": "sha512-lufYMLpwaejF3zl8FNy1SvmsxFHXNXU8p7I+GoiwbgOHmFeOX4bQla4RD7bNLFvfjSXPRc2u9h5fceicVa9dcg==", "integrity": "sha512-jgbu0nUXQOGz9Kd0h7gBOrykl2FoZkS7fg5MdNbvnMGO+D4bboBsNTYwGk0k+OSm0D8I7JUQoaFbuKBo8Cj0RA==",
"requires": { "requires": {
"debug": "^4.3.4", "debug": "^4.3.4",
"pino": "^8.8.0" "pino": "^8.8.0"
@@ -13645,11 +13639,6 @@
"standard-as-callback": "^2.1.0" "standard-as-callback": "^2.1.0"
} }
}, },
"ip": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz",
"integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ=="
},
"ip6addr": { "ip6addr": {
"version": "0.2.5", "version": "0.2.5",
"resolved": "https://registry.npmjs.org/ip6addr/-/ip6addr-0.2.5.tgz", "resolved": "https://registry.npmjs.org/ip6addr/-/ip6addr-0.2.5.tgz",

View File

@@ -34,7 +34,7 @@
"@jambonz/speech-utils": "^0.1.18", "@jambonz/speech-utils": "^0.1.18",
"@jambonz/stats-collector": "^0.1.10", "@jambonz/stats-collector": "^0.1.10",
"@jambonz/time-series": "^0.2.9", "@jambonz/time-series": "^0.2.9",
"@jambonz/verb-specifications": "^0.0.81", "@jambonz/verb-specifications": "^0.0.82",
"@opentelemetry/api": "^1.8.0", "@opentelemetry/api": "^1.8.0",
"@opentelemetry/exporter-jaeger": "^1.23.0", "@opentelemetry/exporter-jaeger": "^1.23.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.50.0", "@opentelemetry/exporter-trace-otlp-http": "^0.50.0",
@@ -51,7 +51,6 @@
"drachtio-srf": "^4.5.35", "drachtio-srf": "^4.5.35",
"express": "^4.19.2", "express": "^4.19.2",
"express-validator": "^7.0.1", "express-validator": "^7.0.1",
"ip": "^2.0.1",
"moment": "^2.30.1", "moment": "^2.30.1",
"parse-url": "^9.2.0", "parse-url": "^9.2.0",
"pino": "^8.20.0", "pino": "^8.20.0",