Commit Graph
278 Commits
Author SHA1 Message Date
Hoan Luu HuuandClaude Opus 5 baf80cb84c fix: speechmatics credential test ignored the configured region (#563)
The speechmatics branch of the /test route destructured only api_key out of the
decrypted credential, so testSpeechmaticsStt() passed realtimeUrl: undefined to
the sdk. ConnectionConfigFull only applies an override when the value is truthy,
so every credential was silently tested against wss://eu2.rt.speechmatics.com/v2
no matter which region was stored - a neu or wus key was judged by whatever eu2
happened to answer.

- pass speechmatics_stt_uri through from the route
- normalize it before handing it to the sdk. The field holds a bare hostname,
  which the sdk cannot use as-is: it appends the language, yielding
  "eu2.rt.speechmatics.com/en" and ERR_INVALID_URL. At call time the same value
  goes to mod_speechmatics_transcribe as SPEECHMATICS_HOST, which always
  connects over wss on port 443 with a path of /v2, so build exactly that url.
  Anything else - a full ws url, a port - now fails the test with an actionable
  message rather than passing against an endpoint only the test can reach, and a
  credential that has lost the field fails too: the feature server omits
  SPEECHMATICS_HOST when it is unset and the module refuses the session, so
  defaulting to a hosted region here would show a green check on a dead
  credential.
- record the speechmatics STT result with sttTestResult(), not ttsTestResult(),
  which is what every other STT vendor in this file does; the tts column was
  being stamped for an STT-only vendor

Adds coverage for the url building to the main test suite - it is the part of
this that can be exercised without an api key.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 11:06:28 -04:00
Sam Machin 53279a59c0 check account sid on client delete (#560) 2026-07-28 12:51:41 -04:00
Sam Machin 24621f79dd Remove smpp (#559)
* remove smpp

* update db-helpers
2026-07-28 10:32:42 -04:00
Dave HortonandClaude Opus 4.5 bff9314622 fix(security): add authorization checks to prevent cross-account access (CWE-639) (#558)
- Add precondition support to decorate.js retrieve function
- Fix google-custom-voices.js typo and add delete precondition
- Check ownership via speech_credential for google-custom-voices
- Add retrieve/delete preconditions to lcr-carrier-set-entries.js
- Add retrieve precondition to sip-gateways.js and smpp-gateways.js
- Add scope check to lcr-routes.js custom GET handler
- Add full authorization to tenants.js for all CRUD operations
- Add scoped query methods to tenant model

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-06-27 15:53:51 -04:00
Hoan Luu Huu 3bb33f24c2 fix microsoft SST endpoint id is failed on validating speech credential (#554) 2026-06-01 08:38:21 -04:00
Sam Machin e0a9035d38 prvent 0.0.0.0 & /0 gateways (#553) 2026-05-29 09:07:10 -04:00
Sam Machin fb54f562f7 Update recent-calls.js (#549) 2026-04-14 08:19:42 -04:00
Sam MachinandDave Horton 4c6ad12a7f fix query sp alerts & bump time-series (#547)
* fix query sp alerts & bump time-series

* add package-lock.json back

* fix: use shared parseAccountSid/parseServiceProviderSid from utils in alerts and recent-calls routes

* fix/update tests

* fix tests

---------

Co-authored-by: Dave Horton <daveh@beachdognet.com>
2026-03-30 10:25:45 -04:00
Dave Horton 9875686f92 Fix/carrier entry data (#542)
* protect against invalid carrier data entry

* sec fixes
2026-02-09 10:40:59 -05:00
Sam Machin f5fa3bdffb allow startrecording without siprec url for cloud (#530)
* allow startrecording without siprecm url for cloud

* update dependencies
2026-01-29 18:21:31 -05:00
Hoan Luu Huu 27addfa543 support google gemini tts (#534)
* support google gemini tts

* wip

* wip

* wip

* wip

* wip

* support speech utils
2026-01-22 08:24:05 -05:00
Matt HertogsandClaude Sonnet 4.5 0bf68b6a9b Fix: Allow media_path updates from REST API (#533)
Added media_path to the list of allowed properties for call updates via REST API.
Includes validation to ensure media_path values are one of: no-media, partial-media, or full-media.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-09 15:52:23 -05:00
Sam Machin 69046ab5d2 Feat/admin numbers carriers (#532)
* add JAMBONES_ADMIN_CARRIER check to limit creating carriers and numbers

* fix logic
2026-01-07 08:01:44 -05:00
Sam Machin 4201ebbe9c Fix/526 (#528)
* calidate webhook urls on update

* don't remove webhooks if not updated

* valid if object exists
2025-12-19 07:32:20 -05:00
Hoan Luu Huu dd79813229 cannot fetch voice_call_session (#525) 2025-12-17 07:27:01 -05:00
Hoan Luu Huu 15f2d92f71 subscription update-quantities validate min voice call sessions (#521)
* subscription update-quantities validate min voice call sessions

* subscription update-quantities validate min voice call sessions

* fixed review comment
2025-12-08 08:12:35 -05:00
Hoan Luu Huu 6ef40a648c allow boostAudioSignal from updateCall (#523) 2025-12-07 08:37:38 -05:00
Hoan Luu Huu 40754deb3e soundhound speech credential support audio endpoint (#520)
* soundhound speech credential support audio endpoint

* soundhound speech credential support audio endpoint

* wip

* wip
2025-11-28 21:47:40 -05:00
Sam Machin eb681f9ddf force account sip_realm to lowercase (#519) 2025-11-20 07:18:17 -05:00
Sam Machin 486428727a remove activation code from response (#513) 2025-11-12 13:13:09 -05:00
Hoan Luu Huu 42f4318a17 support gladia stt (#503)
* support gladia stt

* wip

* update verb specification
2025-10-20 04:47:17 -04:00
Hoan Luu Huu bcff9b35a6 support houndify stt (#498)
* support houndify stt

* wip

* test houdify stt credential

* wip

* wip

* update verb specification
2025-10-14 00:52:49 -04:00
Hoan Luu Huu 8267ddaffd support elevenlabs different endpoint (#502)
* support elevenlabs different endpoint

* wip

* wip

* wip
2025-10-09 08:20:11 -04:00
Hoan Luu Huu c3d12fafee support deeepgram influx (#501)
* support deeepgram influx

* update verb specification
2025-10-03 10:09:19 -04:00
Sam Machin 2e0ea56925 Fix API for Carriers & SIP Gateways (#492)
* allow account api keys to get/post sip gateways

* require sp sid when creating carriers

* allow account level api keys to query carriers

* lookup and set the service_provider_sid on account create carrier
2025-08-28 08:46:42 -04:00
Dave Horton 035458ad3c logging 2025-08-13 20:33:40 -04:00
Hoan Luu Huu fd9dc77a58 support resemble TTS (#488)
* support resemble TTS

* wip

* wip

* update speech utils version

* update resemble voice list
2025-08-13 08:18:08 -04:00
Hoan Luu Huu 3a6d10e725 support deepgram river (#481)
* support deepgram river

* update verb specification version
2025-07-29 13:51:36 -04:00
Sam Machin 9854666d4f add new /Callcount endpoint (#480)
* add new /Callcount endpoint

* update db-helpers

* update endpoint
2025-07-03 11:49:27 -04:00
Hoan Luu Huu 0ba69e872b support assemblyai v3 (#475)
* support assemblyai v3

* update verb specification
2025-07-01 15:48:00 -04:00
Sam Machin 542ccfca79 check for whitespace in gateways and phone numbers (#477) 2025-07-01 07:16:27 -04:00
Hoan Luu Huu 5421f1421f support inworld tts (#472)
* support inworld tts

* inworld tts voices
2025-06-27 11:12:00 -04:00
Sam Machin 0842793aea Update users.js (#474)
* Update users.js

* Update users.js
2025-06-27 07:13:14 -04:00
Sam Machin 781179bf0e fix unhandled exception (#473)
* handle error and return 400

* Update accounts.js

* Update accounts.js

* new test passing
2025-06-26 13:09:42 -04:00
Hoan Luu Huu e2fc0216e1 support mod cartesia transcribe (#463) 2025-06-17 20:53:22 +02:00
Sam Machin fcff3d4b32 add proxy detail from registered client (#458) 2025-06-02 08:08:48 -04:00
Hoan Luu Huu 579a586a03 fixed filter for carriers for an account (#460)
* fixed filter for carriers for an account

* wip

* wip
2025-05-30 07:24:55 -04:00
Hoan Luu Huu c51b7bab82 admin can create call on behalf of account (#446)
* admin and service provider can create call on behalf of account

* wip

* admin and service provider can create call on behalf of account

* wip

* wip

* wip
2025-05-28 10:22:52 -04:00
Hoan Luu Huu bb5dba7c20 support fetch tts/stt deepgram models from rest api (#457) 2025-05-28 09:59:02 -04:00
Hoan Luu Huu c7e279d0ee support S3 compatible region (#453)
* support S3 compatible region

* wip
2025-05-28 08:04:15 -04:00
Hoan Luu Huu 6700ff35be support fetching application with pagination (#450)
* support fetching application with pagination

* pagination for voip carrier

* wip

* wip

* wip

* support phone number pagination

* wip

* wip

* wip
2025-05-28 07:28:48 -04:00
Hoan Luu Huu f23c4fbd48 forward updateCall error response from feature server to client (#454)
* forward updateCall error response from feature server to client

* wip

* wip

* update review comment
2025-05-23 06:27:12 -04:00
Hoan Luu Huu 0c2f5becdc fixed updateCall cannot response 202 Accepted (#451) 2025-05-21 08:13:04 -04:00
Hoan Luu Huu cd6772c10f wip (#449) 2025-05-19 09:51:06 -04:00
Hoan Luu Huu 431cc9e4f4 support filter phone numbers (#447) 2025-05-14 07:54:48 -04:00
Dave Horton e506fc8b66 fix bug updating application with env vars (#440) 2025-05-13 10:15:55 -04:00
Hoan Luu Huu 27c3664391 fixed API server crash when admin query voip-carrier (#442) 2025-05-09 07:42:24 -04:00
Vasudev Anubroluandvasudevan-Kore 3cad5219b4 feat/864 playht on prem (#432)
* feat/864 playht on prem

* feat/864 update speech utils version

---------

Co-authored-by: vasudevan-Kore <vasudev.anubrolu@kore.com>
2025-05-08 10:00:07 -04:00
30a799030c Feat/app env vars (#430)
* initial changes for env var support

* WIP

* Update applications.js

* JSON stringify before encrypting

* use call_hook.url

* env vars working

GET /v1/AppEnv?url=[URL] to trigger options request to URL and return app-schema
POST /v1/Applications with {env_vars: [OBJECT} to create app with env vars
PUT /v1/Applications/[SID] with {env_vars: [OBJECT} to change env vars
GET returns env vars

POST and PUT will also trigger an OPTIONS request to the call_hook url to get schema and then validate the env_vars against it

* update appenv cannot finish request.

* wip

* wip

* wip

* wip

---------

Co-authored-by: Dave Horton <daveh@beachdognet.com>
Co-authored-by: Quan HL <quan.luuhoang8@gmail.com>
Co-authored-by: Hoan Luu Huu <110280845+xquanluu@users.noreply.github.com>
2025-05-08 08:41:50 -04:00
Anton Voylenko 217c11a5e1 fix: missing token update and missing return (#435) 2025-05-07 14:14:40 -04:00