Docs refreshed for Astervis v1 — now covering AI call analytics. What’s new
Astervis Docsv1.0
AI Analytics

AI & Privacy

Exactly what leaves your server when AI is enabled — and what never does.

Astervis runs entirely on your own server. Your call records, your recordings, and your database never leave it. The one and only exception is the AI tier: when you enable it, the audio or text of a call is sent to Google Gemini on Vertex AI to be analysed, and the result comes straight back to you. That single inference call is the complete extent of what goes out — and even that only happens if you turn AI on.

This page is deliberately specific. If you're evaluating Astervis for a bank, a clinic, or anywhere with strict data rules, you should be able to point at exactly which bytes cross the boundary and which never do.

The one-line version

Stays on your server, always: the database, every CDR, every call recording, every transcript, every embedding, every dashboard, and all of your users and settings. None of this is ever sent anywhere.

Leaves your server, only when AI is enabled: the audio (or text) of a call, sent to Google Gemini on Vertex AI for one analysis request. The structured result returns over a webhook and is stored locally. Nothing else is transmitted.

Why this is the honest answer

The whole product is on-premise. The installer deploys it with Docker Compose on your PBX server, and the moment of ingestion is local: Astervis reads the Asterisk MySQL binlog through litcdc, streams every Call Detail Record into a local TimescaleDB store, and mounts your recordings read-only from /var/spool/asterisk/monitor. Your analytics — call volume, missed calls, operator performance, wait times, trunk load — are all computed on data that has never moved off the machine.

The single outbound path is the AI analysis call. When a recorded call lands and AI is enabled, the on-prem queue submits the recording to the AI gateway, which performs one multimodal Gemini call on Google Vertex AI that does transcription, diarization, and analysis together. The gateway returns a structured result and the queue writes it into your ai_transcripts table. That's the boundary. There is no analytics telemetry, no "phone home", and no background sync of your data to Astervis or anyone else.

What is never done with your data

A few things worth stating plainly, because security reviews always ask:

  • Your data is not used to train any model. The audio sent for analysis is used to produce your result and nothing more.
  • Nothing is shared beyond the inference call. There is no aggregation, resale, profiling, or secondary use of your calls. The request goes to Vertex AI, the answer comes back, and that's the end of it.
  • No data is sent for calls you don't analyse. Analysis only runs on calls that have a recording, and only while AI is enabled. A call with no recording never produces an outbound request.
  • Your database is never exposed. Only port 8443 (nginx) is reachable from outside; every other service binds to 127.0.0.1. The AI gateway is something your server reaches out to — it has no inbound access to your database.

Running fully offline (no AI at all)

If your policy is that no call content may leave the building, you don't lose the product — you lose only the AI layer. The analytics platform works completely without AI. Dashboards, CDR replication, Excel export, the phone blacklist, CRM integrations, work schedules — all of it runs on local data with no outbound inference.

To run this way, simply don't enable the AI tier. With no AI license active, the queue never submits a recording anywhere, and nothing about call content is transmitted.

Choosing not to enable AI is a supported, first-class way to run Astervis — not a degraded mode. Every plan is on-premise; the AI tier is an optional add-on on top of an analytics product that is fully useful on its own.

How AI is gated

AI is never on by accident. It's controlled by a separate AI license tier, enforced by the gateway on every request. Three things have to line up before a single call is analysed:

An AI license tier is active

Without an active AI tier, no analysis jobs are submitted. The analytics product keeps working; the AI pipeline simply stays idle.

The request is within your rate limit and quota

Each tier carries a requests-per-minute limit and a monthly token quota. Jobs that hit the rate limit back off and retry on their own rather than failing or burning their attempt count.

The feature flag allows it

Capabilities like rubric QA scoring are gated by their own flag (qa_scoring) on the license. If the flag is off, that capability doesn't run even when transcription does.

Practically, that means turning AI on or off, dialing usage up or down, and enabling or disabling specific features is a licensing decision — there's a clear, auditable control over exactly how much (if any) call content is ever sent out.

What is stored locally after analysis

Everything the AI produces comes back home and lives in your TimescaleDB database, right next to the rest of your data:

  • Transcripts — the full text of each analysed call, plus diarized turns (agent / customer, per-turn text, timing, and language), the summary, sentiment, category, topics, key quotes, QA score, and recommended next actions. All in ai_transcripts and its related tables.
  • Embeddings — after diarization, transcripts are embedded with gemini-embedding-001 (1536-dimensional vectors) and stored in pgvector, inside the same PostgreSQL database. These power semantic search and the AI assistant. Generating an embedding is itself a Vertex AI call; the resulting vectors are stored only on your server.

Because these results are local, you keep full control of retention and deletion. There's no external copy to chase down — if you remove a transcript or an embedding from your database, it's gone.

cdr — replicated call records
ai_transcripts — transcripts, sentiment, QA, summaries
ai_transcript_chunks — pgvector embeddings (1536-dim)

Common questions

In short

Astervis is on-premise: your calls, recordings, and database stay on your server. The single thing that ever leaves is the audio or text of a call sent to Google Gemini on Vertex AI for analysis — and only when you choose to enable the AI tier. Turn AI off and the product runs fully offline.

Last updated on

On this page