# Release v0.8.5 #### Info - Release Date: Nov 10, 2023 - Deployed in Helm chart release 0.1.33 #### New Features - Add new speech vendors: Cobalt (STT), AssemblyAI (STT), Whisper (TTS), ElevenLabs (TTS) - Support Docker containers for Azure speech - Support custom voices on google - Add ability to use a fallback speech vendor in case of error. - Add support for speechSegmentationSilenceTimeoutMs for Microsoft Azure STT - Optionally trim silence from Azure TTS - Implement fastRecognitionTimeout to enable overriding speech vendor silence timeout used when determining the end of an utterance [448](https://github.com/jambonz/jambonz-feature-server/issues/448) - Add support for deepgram options [smartFormatting](https://developers.deepgram.com/docs/smart-format) and utteranceEndMs - Calculate and [show speech recognition latency](https://youtu.be/tg07JEqnVuI) in call recording view - Add API to generate audio file from text using saved speech vendors [252](https://github.com/jambonz/jambonz-api-server/pull/252) - Additional storage options for call recording: AWS compatible, Google cloud storage, Azure cloud storageq - Add ability to pause and resume transcribe - Add support for sending SIPREC to multiple SIPREC servers simultaneously - Add continuous ASR support to transcribe verb. - Allow an account to use multiple instances of the same speech vendor by assigning a unique label to each. - Enable customized music on hold - Allow use of tag in SIPREC application - Allow custom headers to be passed when using SIPREC for recording - Transcribe verb supports custom speech vendor - Add option to prevent forwarding of P-Asserted-Identity header [460](https://github.com/jambonz/jambonz-feature-server/pull/460) - Add support for sending webhook requests through http proxy - referHook on dial can now return an application which will be executed on the other leg (e.g. receive a REFER from A leg and run an application to dial the B leg to a new party C) - Allow tag verb in waitHook response - Allow pause verb in confirmHook on dial - Integration with webrtc chrome extension to allow direct calling to apps, users, and queues - Add option for padding crypto attributes in SDP when outdialing using SRTP - Add support for speciyfing a redis sentinel password [239](https://github.com/jambonz/jambonz-api-server/pull/239) #### Bug fixes - fix background listen request used for recording [#391](https://github.com/jambonz/jambonz-feature-server/pull/391) - execute status callback async [394](https://github.com/jambonz/jambonz-feature-server/pull/394) - fix exception that appears in logs if session ends before last call status update - fix snake case issue on customer data in webhooks [409](https://github.com/jambonz/jambonz-feature-server/pull/409) - outdial failure causes session to hang [411](https://github.com/jambonz/jambonz-feature-server/pull/411) - call status event was delayed when stopping background listen [413](https://github.com/jambonz/jambonz-feature-server/pull/413) - disable bi-directional audio on listen verbs used for call recording [415](https://github.com/jambonz/jambonz-feature-server/pull/415) - generate trace id before outdial so we can include it in custom header [418](https://github.com/jambonz/jambonz-feature-server/pull/418) - speech vendor missing in opentelemetry span [437](https://github.com/jambonz/jambonz-feature-server/pull/437) - fix bug with database caching [443](https://github.com/jambonz/jambonz-feature-server/pull/443) - caller should be able to enter more than one conference [350](https://github.com/jambonz/jambonz-feature-server/pull/350) - fixes from deepgram testing - fix dialogflow TTS bug [518](https://github.com/jambonz/jambonz-feature-server/pull/518) - better logging of DNS errors - Allow sip port to be null on outbound sip gateways, since this will trigger a DNS SRV request to determine ip and port - Allow a top-level FQDN as an outbound sip gateway host [336](https://github.com/jambonz/jambonz-webapp/pull/336) #### SQL changes The following schema changes were made in this release: ``` DROP INDEX speech_credentials_idx_1 ON speech_credentials; ALTER TABLE speech_credentials ADD COLUMN label VARCHAR(64); ALTER TABLE applications ADD COLUMN speech_synthesis_label VARCHAR(64); ALTER TABLE applications ADD COLUMN speech_recognizer_label VARCHAR(64); ALTER TABLE applications ADD COLUMN use_for_fallback_speech BOOLEAN DEFAULT false; ALTER TABLE applications ADD COLUMN fallback_speech_synthesis_vendor VARCHAR(64); ALTER TABLE applications ADD COLUMN fallback_speech_synthesis_language VARCHAR(12); ALTER TABLE applications ADD COLUMN fallback_speech_synthesis_voice VARCHAR(64); ALTER TABLE applications ADD COLUMN fallback_speech_synthesis_label VARCHAR(64); ALTER TABLE applications ADD COLUMN fallback_speech_recognizer_vendor VARCHAR(64); ALTER TABLE applications ADD COLUMN fallback_speech_recognizer_language VARCHAR(64); ALTER TABLE applications ADD COLUMN fallback_speech_recognizer_label VARCHAR(64); ALTER TABLE sip_gateways ADD COLUMN pad_crypto BOOLEAN NOT NULL DEFAULT 0; ALTER TABLE sip_gateways MODIFY port INTEGER; CREATE TABLE google_custom_voices ( google_custom_voice_sid CHAR(36) NOT NULL UNIQUE , speech_credential_sid CHAR(36) NOT NULL, model VARCHAR(512) NOT NULL, reported_usage ENUM('REPORTED_USAGE_UNSPECIFIED','REALTIME','OFFLINE') DEFAULT 'REALTIME', name VARCHAR(64) NOT NULL, PRIMARY KEY (google_custom_voice_sid) ); CREATE INDEX google_custom_voice_sid_idx ON google_custom_voices (google_custom_voice_sid); CREATE INDEX speech_credential_sid_idx ON google_custom_voices (speech_credential_sid); ALTER TABLE google_custom_voices ADD FOREIGN KEY speech_credential_sid_idxfk (speech_credential_sid) REFERENCES speech_credentials (speech_credential_sid) ON DELETE CASCADE; ALTER TABLE clients ADD COLUMN allow_direct_queue_calling BOOLEAN NOT NULL DEFAULT 1; ALTER TABLE clients ADD COLUMN allow_direct_user_calling BOOLEAN NOT NULL DEFAULT 1; ALTER TABLE clients ADD COLUMN allow_direct_app_calling BOOLEAN NOT NULL DEFAULT 1; ``` #### Availability - Available shortly on AWS Marketplace - Deploy to Kubernetes using [this Helm chart](https://github.com/jambonz/helm-charts) **Questions?** Contact us at support@jambonz.org