GPT-Live 1
gpt-live-1 + gpt-5.6-lunaOpenAI's full-duplex voice model. It listens while it speaks and handles interruptions naturally. Detailed instructions run on a background model.
- Voices
- 14
- Speed
- Fixed
- Languages
- 4 + 26 experimental
Voice agents for phone and web
Build an agent, talk to it from your browser, then connect it to your numbers. Every call is recorded with a transcript, a cost breakdown and a measurement of how the audio actually reached the other side.
30 conversation languages · 4 engines · DIDWW, Twilio or your own SIP trunk
Each engine sounds different, responds at a different speed and costs a different amount per minute. Keep the same instructions, switch engines, and compare the calls side by side.
OpenAI's full-duplex voice model. It listens while it speaks and handles interruptions naturally. Detailed instructions run on a background model.
Google's speech-to-speech model with a wide range of voices. Tone is part of the instructions.
Speech-to-speech with adjustable speaking speed. Billed by audio tokens.
Deepgram transcribes, an OpenAI LLM replies, OpenAI TTS speaks. Every stage can be tuned on its own.
Measured on our server · 5 November 2026
Four engines, ten scripted web-call scenarios each (browser connection), run against the production server. It is a single run, so read the values as a snapshot rather than a guarantee.
Seconds from the end of the caller's turn to the agent's first audio, measured on the caller's side.
| Engine | Response time by engine | Median | 90th percentile |
|---|---|---|---|
| Gemini Live | 1.45 s | 2.28 s | |
| GPT-Live 1 | 1.76 s | 2.56 s | |
| OpenAI Realtime | 2.08 s | 4.14 s | |
| Classic | 3.23 s | 4.02 s |
Source: 4 engines × 10 scenarios × 1 run on voice.telrics.io, 5 November 2026. Every call record carries the same measurements, see audio quality.
Capabilities
Some of these are live, some are in development. The ones marked coming soon are not yet available in accounts.
A score from 1.0 to 4.5 for every call, with the reason when it drops: network, model stream or delay.
Details →Turkish date expressions worked out in code, numbers read back in groups, names spelled letter by letter.
Details →HubSpot, Pipedrive, monday.com, Slack, Telegram, and n8n work today. Coming soon: Zapier and Make.
Integrations →A cold or warm transfer to a colleague on phone calls, with a short summary first.
Details →Call a contact list within set hours, with retries and a do-not-call list.
Details →Integrations
Recognises callers in your CRM by their number, logs each call on the contact with its summary, and sends the messages your agent takes to your team's channel.
Coming soon: Zapier and Make.
Until the Zapier and Make connectors are ready, send the call.ended webhook to a webhook trigger there.
Call quality measurement
When a call sounds bad, the model is often not the problem; the path is. The browser measures the agent's audio in 2-second windows, and the agent records every moment its own audio fell behind real time. Both land on the same timeline.
< 0.5% goodAudio packets lost on the network.< 1% goodHow much of the speech the browser had to fill in because audio arrived too late.< 30 ms · < 120 msHow unevenly packets arrive, and how large the playout buffer grows.TCP: watchFalling back to TCP adds delay. Tracked for the whole call.[second, ms]Moments where the model's audio stream stalled. Independent of the network.Loss means the network.
No loss but gaps means the audio arrived late. If the agent saw a gap too, it was the source; if not, it was the transport.
Call quality score
Every call gets a score from 1.0 to 4.5 on the MOS scale that telephone networks use for perceived voice quality. It is calculated from what was measured during the call, not from a survey, and it comes with the reasons.
The calculation follows the ITU-T G.107 E-model. Scores are worked out when a call is read, so if the formula improves, older calls are shown with the new one too.
The first row is a real call; the others are calculated cases from our test suite.
≥ 4.3≥ 4.0≥ 3.6≥ 3.1< 3.1Calls below the threshold are flagged
Each organization sets its own threshold, 3.6 by default. Calls below it are marked in the call list and counted on the overview. A call.quality_low webhook is sent once for each such call.
On phone calls we cannot see the caller's network, so the score uses the agent-side measurements only, and the record says so.
Getting the details right
An appointment or a callback is only useful if the date, the number and the name are right. These are the details voice agents get wrong most often, so they are handled by explicit rules and code instead of being left to the model.
Expressions such as "next Tuesday", "the day after tomorrow" or "the Friday after the 15th" are resolved in code, in the agent's time zone. The time the caller gave stays with the date in every confirmation.
Asked on Thursday 5 November: "Next Tuesday at half past two in the afternoon?" The agent confirms Tuesday 10 November, 14:30.
Phone numbers are read back in the groups people use when they say them, and the agent asks again if it is not sure. On the Classic engine in Turkish, amounts, dates and times are spoken as words while the transcript keeps the digits.
The number is saved as digits, 05324567890, in the message for your team.
When a caller spells or corrects a name ("not C, with Ç"), the agent uses the latest version, keeps letters such as ç, ş, ğ and ı, and spells it back once to confirm.
The corrected spelling is what goes into the message or the booking.
Date expressions are understood in Turkish and English. Number read-back and name spelling have been tested in Turkish and English calls.
Telephony
Incoming calls are answered by the agent assigned to the number that was dialed. The agent you tested in the browser talks on the phone with the same instructions and voice.
From DIDWW, Twilio or your own PBX over SIP.
The agent assigned to the dialed number is picked.
With the engine, voice and instructions you chose.
Transcript and cost, in the dashboard and the API.
Connect your DID numbers over a SIP trunk.
Route Twilio numbers through Elastic SIP Trunking.
Running your own PBX? Your numbers stay where they are; point a SIP trunk at us.
Outbound works too: start a call from one of your numbers with POST /v1/calls, and the agent speaks when it is answered.
Transfer to a personComing soon
On phone calls the agent can pass the caller to a colleague or a team. You describe when each transfer target should be used; the agent never sees the number it dials.
In development. Not yet available in accounts.
The call goes straight to a phone number or a SIP address.
The agent calls your colleague first and reads a short summary, then connects the caller. The caller hears silence, not the briefing.
The agent asks the caller to confirm before it transfers the call.
No answer, busy or declined: the agent comes back to the caller, apologises and takes a message.
Phone calls only. Every attempt and its result is written to the call record.
Outbound campaignsComing soon
Upload a CSV of contacts and the agent calls them from your number, using the values in each row in its greeting and instructions.
In development. Not yet available in accounts.
Days and hours in the campaign's time zone, a limit on simultaneous calls, and retries for busy or unanswered numbers.
Columns such as a name or a plate number become placeholders like {{name}} in the agent's instructions.
Numbers on your organization's list are never called, by a campaign or any other outbound call. If someone asks not to be called again, the agent adds them once they confirm.
Every attempt is logged: answered, no answer, busy, and how the call ended.
Turkish numbers: we do not check İYS consent records for you. Before a campaign to +90 numbers starts, you are reminded to confirm İYS consent yourself.
01
Instructions, greeting, language, engine, voice and speaking style. In the dashboard or through the API.
02
Try changes without saving. See the transcript, the cost, how long the greeting took and the audio quality right away.
03
Assign it to a phone number, or embed the web call on your own site.
Tools
Turn on the built-in tools or connect your own systems through a webhook. The same tool definition works on all four engines.
Built-in end_call and take_message: the agent ends the call politely, or writes a message and a callback request into the call record.
Describe an endpoint and its parameters once. The agent calls it with a signed HTTPS request when the conversation needs it.
Tools that change data run only after the agent has read the details back and the caller has said yes.
Answers and bookings
Give the agent what it needs to be useful on the phone: your own information and access to your calendar.
Upload PDF, Word, text or Markdown files, paste text or add a web page. During the call the agent searches them and answers from what it finds.
Connect Google Calendar in the dashboard. The agent checks free slots within your working hours and can book or cancel.
MCP
The Model Context Protocol is an open standard for connecting AI applications to tools and data. voice.telrics supports it on both sides.
Connect an MCP server and choose which of its tools the agent may use during calls. Tools that change data go through the same confirmation step as other write tools.
Connect Claude, Cursor or another MCP client with an API key to list agents, read call summaries or update an agent. The key's scopes decide what it may do.
Live console
A supervisor can join any call that is in progress, on the web or on the phone, from the dashboard. The agent keeps the conversation unless someone takes over.
Hear the call and follow the live transcript. The caller does not know you are there.
Send the agent a note it takes into account in its next reply. The caller does not hear it.
The agent stops talking and the caller hears you. The transcript keeps running where the engine supports it.
Return the call to the agent, with an optional note. It picks up from what was said.
Available to organization admins by default; it can be opened to members. Every join, whisper and takeover is recorded in the call record.
After the call
When a call ends, the agent writes a short summary from the transcript. A webhook can deliver the full record to your CRM or helpdesk.
A few sentences, an outcome such as resolved or message taken, the caller's sentiment, topics and follow-up actions.
A signed HTTPS request with the call record, summary and transcript. Failed deliveries are retried for about two and a half hours.
Every attempt is logged with its status, so you can see what arrived and resend what did not.
Recording and privacy
Call recording is off by default. When you turn it on, you also decide how long recordings and transcripts are kept.
When recording is on, the agent tells the caller before the greeting, in the caller's language. Recordings can be played back from the call record.
Set how many days recordings and transcripts are kept; they are deleted automatically afterwards. Optionally mask phone numbers, emails, ID, IBAN and card numbers in transcripts and summaries.
Delete a call's recording and transcript at once, for example when someone asks under KVKK or GDPR.
Day to day
Write scenarios with a simulated caller and the rules a good call must meet. Run them against the draft before you publish; each rule is checked and explained.
Add a call button to your site with one script tag and a public key limited to your domains.
Define fields such as appointment date or interest. After each call they are filled from the conversation and sent with the call record.
Calls, minutes, cost, latency, outcomes and audio quality by day, agent or outcome. Export calls as CSV.
TOTP codes for the dashboard, an organization setting to require them, session list and an audit log.
Which languages each engine can hold a conversation in. An agent's language is set with the lang field, using the codes below.
| Language | lang | GPT-Live 1 | Gemini Live | OpenAI Realtime | Classic |
|---|---|---|---|---|---|
TurkishTürkçetr | tr | Experimental | Supported | Experimental | Supported |
Englishen | en | Supported | Supported | Experimental | Supported |
GermanDeutschde | de | Supported | Supported | Experimental | Supported |
FrenchFrançaisfr | fr | Supported | Supported | Experimental | Supported |
SpanishEspañoles | es | Experimental | Supported | Experimental | Supported |
ItalianItalianoit | it | Experimental | Supported | Experimental | Supported |
PortuguesePortuguêspt | pt | Supported | Supported | Experimental | Supported |
DutchNederlandsnl | nl | Experimental | Supported | Experimental | Supported |
RussianРусскийru | ru | Experimental | Supported | Experimental | Supported |
UkrainianУкраїнськаuk | uk | Experimental | Supported | Experimental | Supported |
PolishPolskipl | pl | Experimental | Supported | Experimental | Supported |
RomanianRomânăro | ro | Experimental | Supported | Experimental | Supported |
GreekΕλληνικάel | el | Experimental | Supported | Experimental | Supported |
BulgarianБългарскиbg | bg | Experimental | Supported | Experimental | Supported |
CzechČeštinacs | cs | Experimental | Supported | Experimental | Supported |
SlovakSlovenčinask | sk | Experimental | Supported | Experimental | Supported |
HungarianMagyarhu | hu | Experimental | Supported | Experimental | Supported |
CroatianHrvatskihr | hr | Experimental | Supported | Experimental | Supported |
SerbianСрпскиsr | sr | Experimental | Supported | Experimental | Supported |
BosnianBosanskibs | bs | Experimental | Supported | Experimental | Supported |
SlovenianSlovenščinasl | sl | Experimental | Supported | Experimental | Supported |
MacedonianМакедонскиmk | mk | Experimental | Supported | Experimental | Supported |
SwedishSvenskasv | sv | Experimental | Supported | Experimental | Supported |
DanishDanskda | da | Experimental | Supported | Experimental | Supported |
NorwegianNorskno | no | Experimental | Supported | Experimental | Supported |
FinnishSuomifi | fi | Experimental | Supported | Experimental | Supported |
EstonianEestiet | et | Experimental | Supported | Experimental | Supported |
LatvianLatviešulv | lv | Experimental | Supported | Experimental | Supported |
LithuanianLietuviųlt | lt | Experimental | Supported | Experimental | Supported |
CatalanCatalàca | ca | Experimental | Supported | Experimental | Supported |
Experimental languages are worth testing in the browser before you put them on a phone line.
Developers
Whatever you can do in the dashboard, you can do through the API: create agents, assign numbers, open web calls, place outbound calls, read call records and usage.
curl -X POST "https://voice.telrics.io/v1/web-calls" \
-H "Authorization: Bearer $VT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "front-desk"
}' const res = await fetch("https://voice.telrics.io/v1/web-calls", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VT_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"agent_id": "front-desk"
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${res.status}: ${data.detail}`);
console.log(data); import os
import requests
resp = requests.post(
"https://voice.telrics.io/v1/web-calls",
headers={"Authorization": f"Bearer {os.environ['VT_API_KEY']}"},
json={
"agent_id": "front-desk",
},
timeout=30,
)
if not resp.ok:
raise RuntimeError(f"{resp.status_code}: {resp.json()['detail']}")
print(resp.json()) What we are working on next. We will announce each one here and in the docs when it ships.
Tell us what you have in mind. We will open an account and set up the first agent with you.