# Release v0.8.4
#### Info
- Release Date: July 2, 2023
- Deployed in Helm chart release 0.1.30

#### New Features
- The ability to record calls and listen to them from within the jambonz portal was added.  Call recording is configured at the account level and recordings can be saved in either wav or mp3 format to the account users own S3 bucket.
- Add support for cassandra to persist jaeger span data; as part of this instead of running jaeger-all-in-one we now run jaeger-collector and jaeger-query.
- Added support for Redis sentinel (a highly-available redis cluster)
- SIP credentials can be provisioned directly in the portal, as an alternative to using an authentication webhook to validate webrtc and sip clients.
- The jambonz portal now shows the number of cached TTS prompts at the account and global level, and allows the cache to be flushed.
- Added support for priority queues
- Added support for websocket ping requests to keep connections alive for long-lasting calls
- Added opentelemetry spans for transcribe verb 

#### Bug fixes
- allow identical phone_numbers to exist from different carriers [#186](https://github.com/jambonz/jambonz-api-server/pull/186)
- fix selection of outbound carrier based on calling number
- fix queue length in account event hook
- add X-Application-Sid in outdials so it ends up in cdr
- update to aws-sdk v3
- fixes for outbound registration


#### SQL changes

The following schema changes were made in this release:
```
alter table accounts add column record_all_calls BOOLEAN NOT NULL DEFAULT false;
alter table accounts add column bucket_credential VARCHAR(8192);
alter table accounts add column record_format VARCHAR(16) NOT NULL DEFAULT 'mp3';
alter table applications add column record_all_calls BOOLEAN NOT NULL DEFAULT false;
alter table phone_numbers DROP INDEX number;
create unique index phone_numbers_unique_idx_voip_carrier_number ON phone_numbers (number,voip_carrier_sid);
CREATE TABLE clients
(
client_sid CHAR(36) NOT NULL UNIQUE ,
account_sid CHAR(36) NOT NULL,
is_active BOOLEAN NOT NULL DEFAULT 1,
username VARCHAR(64),
password VARCHAR(1024),
PRIMARY KEY (client_sid)
);
CREATE INDEX client_sid_idx ON clients (client_sid);
ALTER TABLE clients ADD CONSTRAINT account_sid_idxfk_13 FOREIGN KEY account_sid_idxfk_13 (account_sid) REFERENCES accounts (account_sid);
ALTER TABLE sip_gateways ADD COLUMN protocol ENUM('udp','tcp','tls', 'tls/srtp') DEFAULT 'udp';
```

#### Environment variables
In order to enable the new call recording feature, new environment variables are necessary for jambonz-api-server and jambonz-feature server:

**jambonz-api-server**
```
JAMBONZ_RECORD_WS_USERNAME: 'foobar'
JAMBONZ_RECORD_WS_PASSWORD: 'bazzle'
```
These values secure the recording endpoint in jambonz-api-server using HTTP Basic authentication.  They can be any values you like, but those same values must be provided as environment variables to the jambonz feature-server(s), along with one other:

***jambonz-feature-server**
```
JAMBONZ_RECORD_WS_USERNAME: 'foobar',
JAMBONZ_RECORD_WS_PASSWORD: 'bazzle',
JAMBONZ_RECORD_WS_BASE_URL: 'ws://127.0.0.1:3002/api/v1',
```
The `JAMBONZ_RECORD_WS_BASE_URL` refers to the jambonz-api-server endpoint; this is where the feature-server will stream audio to.

>> Note: if you wish to disable call recording in the portal, you can do so by setting the env var `DISABLE_CALL_RECORDING` to true for the jambonz-webapp.


#### Availability
- Available shortly on AWS Marketplace
- Deploy to Kubernetes using [this Helm chart](https://github.com/jambonz/helm-charts)

**Questions?** Contact us at <a href="mailto:support@jambonz.org">support@jambonz.org</a>