Files
xquanluuandClaude Opus 5 024d658200 fix(stt/google): honor googleOptions.recognizerId for Speech v2
`rOpts.sgoogleOptions?.recognizerId` (note the stray `s`) is always
undefined, so GOOGLE_SPEECH_RECOGNIZER_ID was never set on the channel.
The media server therefore fell back to the wildcard recognizer "_" with a
full inline config, and every caller passing a recognizerId silently got the
stock v2 model instead of their custom recognizer. Present since 8999c85, so
in v0.9.7-rc1 and v0.9.8.

Also in the same v2 path:

- Accept a full resource path in `recognizerId`, not just a bare id. The
  media server builds <parent>/recognizers/<id>, so a full path would be
  concatenated onto the parent into a nonsense recognizer name. A parent
  embedded in the path now also wins over `parentPath` and feeds the
  regional-endpoint derivation.

- Add the four v2-only vars to google's stickyVars. Without them a v2 gather
  leaks its recognizer, endpoint and service version into a later v1 (or
  wildcard) gather on the same call. Clearing a sticky var sends "", which
  FreeSWITCH treats as a delete (switch_channel.c: zstr(value) ->
  switch_event_del_header), so the media server sees the var as absent.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 11:04:42 +07:00
..
2026-03-29 16:07:08 -04:00
2026-03-29 16:07:08 -04:00