This commit is contained in:
Hoan HL
2025-12-01 15:52:57 +07:00
5 changed files with 20 additions and 9 deletions

View File

@@ -560,6 +560,8 @@ router.post('/', async(req, res) => {
}
delete obj[prop];
}
//force sip realm to lowercase
if (obj.sip_realm) { obj.sip_realm = obj.sip_realm.toLowerCase(); }
logger.debug(`Attempting to add account ${JSON.stringify(obj)}`);
const uuid = await Account.make(obj);
@@ -802,6 +804,9 @@ router.put('/:sid', async(req, res) => {
encryptBucketCredential(obj, storedBucketCredentials);
//force sip realm to lowercase
if (obj.sip_realm) { obj.sip_realm = obj.sip_realm.toLowerCase();}
const rowsAffected = await Account.update(sid, obj);
if (rowsAffected === 0) {
return res.status(404).end();

View File

@@ -167,6 +167,7 @@ const encryptCredential = (obj) => {
engine_version,
service_version,
api_uri,
houndify_server_uri,
options
} = obj;
@@ -332,7 +333,7 @@ const encryptCredential = (obj) => {
assert(client_id, 'invalid houndify speech credential: client_id is required');
assert(client_key, 'invalid houndify speech credential: client_key is required');
assert(user_id, 'invalid houndify speech credential: user_id is required');
const houndifyData = JSON.stringify({client_id, client_key, user_id});
const houndifyData = JSON.stringify({client_id, client_key, user_id, houndify_server_uri});
return encrypt(houndifyData);
case 'voxist':
@@ -560,7 +561,8 @@ router.put('/:sid', async(req, res) => {
speechmatics_stt_uri,
resemble_tts_use_tls,
resemble_tts_uri,
api_uri
api_uri,
houndify_server_uri
} = req.body;
const newCred = {
@@ -596,7 +598,8 @@ router.put('/:sid', async(req, res) => {
speechmatics_stt_uri,
resemble_tts_uri,
resemble_tts_use_tls,
api_uri
api_uri,
houndify_server_uri
};
logger.info({o, newCred}, 'updating speech credential with this new credential');
obj.credential = encryptCredential(newCred);

View File

@@ -715,8 +715,10 @@ const testHoundifyStt = async(logger, credentials) => {
requestInfo: {
UserID: user_id || 'test_user',
Latitude: 37.388309,
Longitude: -121.973968
Longitude: -121.973968,
},
// custom endpint is used only for feature server.
// ...(houndify_server_uri && {endpoint: houndify_server_uri}),
// Audio format configuration
sampleRate: 16000,
@@ -927,6 +929,7 @@ function decryptCredential(obj, credential, logger, isObscureKey = true) {
obj.client_key = isObscureKey ? obscureKey(o.client_key) : o.client_key;
obj.client_id = o.client_id;
obj.user_id = o.user_id;
obj.houndify_server_uri = o.houndify_server_uri;
} else if ('resemble' === obj.vendor) {
const o = JSON.parse(decrypt(credential));
obj.api_key = isObscureKey ? obscureKey(o.api_key) : o.api_key;

8
package-lock.json generated
View File

@@ -24,7 +24,7 @@
"@jambonz/realtimedb-helpers": "^0.8.15",
"@jambonz/speech-utils": "^0.2.26",
"@jambonz/time-series": "^0.2.8",
"@jambonz/verb-specifications": "^0.0.121",
"@jambonz/verb-specifications": "^0.0.122",
"@soniox/soniox-node": "^1.2.2",
"ajv": "^8.17.1",
"argon2": "^0.40.1",
@@ -4361,9 +4361,9 @@
}
},
"node_modules/@jambonz/verb-specifications": {
"version": "0.0.121",
"resolved": "https://registry.npmjs.org/@jambonz/verb-specifications/-/verb-specifications-0.0.121.tgz",
"integrity": "sha512-urM8rCJihQn+/dB+0+rlIDf36MlIfCOhCpqqBc1euET2A5fxYP6XXXpNmxuk2CqiU5xNqhsSv362fqKIHtF3dw==",
"version": "0.0.122",
"resolved": "https://registry.npmjs.org/@jambonz/verb-specifications/-/verb-specifications-0.0.122.tgz",
"integrity": "sha512-7xqaULhKFywJ2ZuyiYt77iiJwJ+8b98Zt1X4+OqZ7Cdjhfo7S6KnR66XRVJHnekXbmfVv58kB0KWUux5TG//Sw==",
"license": "MIT",
"dependencies": {
"debug": "^4.3.4",

View File

@@ -35,7 +35,7 @@
"@jambonz/realtimedb-helpers": "^0.8.15",
"@jambonz/speech-utils": "^0.2.26",
"@jambonz/time-series": "^0.2.8",
"@jambonz/verb-specifications": "^0.0.121",
"@jambonz/verb-specifications": "^0.0.122",
"@soniox/soniox-node": "^1.2.2",
"ajv": "^8.17.1",
"argon2": "^0.40.1",