跳转到内容

Telephony (Voice Calls)

此内容尚不支持你的语言。

Wetel Telephony is a live voice call between a caller (a browser or an app) and a Wetel agent, carried over WebRTC with LiveKit. The caller talks, the agent talks back, and either side can interrupt.

On a call, the agent:

  • speaks first, says it is an AI, and offers to hand over to a person;
  • listens while it talks, so a caller can interrupt it (barge-in);
  • answers with the agent’s published workflow, the same rules, guardrails, hard-locked response nodes and tools as the chat version of that agent;
  • uses the same session and memory model as chat: a call is a session, and its text is stored like a chat transcript.

Under the hood each call is three steps in a loop: streaming speech recognition turns the caller’s speech into text, the agent’s workflow answers that text, and streaming speech synthesis speaks the reply. The recognition, language-model and voice providers are Wetel’s choice behind the agent and can be replaced; this documentation does not commit to any vendor for them.

A workspace owner can make an AI employee phone their own number with the startOutboundCall mutation. It is a self-test: the destination must be the number on the owner’s profile (allowed prefixes +1 and +60 by default), it is off unless both the platform and the workspace switch are on, and every call has a hard maximum length of 15 to 300 seconds. Calls to other people are not available. See the reference for the call states and the errors.

Teams that already have, or are building, a Wetel agent and want to try it by voice: an inbound enquiry line, a callback desk, a “talk to us” button in a web page or app. It is a pilot-stage capability for integrators who will test it with us, not yet a product to put in front of the public unattended.

What works today, what does not, what is next

Section titled “What works today, what does not, what is next”

One table, three answers. “Staging” means the test environment, enabled on request; nothing in this section is in production.

CapabilityNotes
Browser or app voice call to an agent over WebRTC (LiveKit)A Wetel person runs the voice worker for an arranged test session
Partner call-start API, sdkStartVoiceCallIn production the same call answers FORBIDDEN (“Voice calls are not enabled on this environment”)
Agent speaks first, says it is an AI, offers a personThe words come from the agent’s workflow, so they are only as good as the workflow you publish
Handing over to a personSpoken offer only: the agent says someone will call back. There is no live transfer of the call
Barge-in: caller interrupts, agent stops, interrupted turn is cancelled
Answers from the agent’s published workflow, with session and memory like chat
TranscriptLive captions on the caller’s page; the conversation text is stored in the session, like a chat transcript
Per-key daily call cap and cleanup of calls nobody joined1,000 call requests per API key per UTC day by default; an unjoined call is closed as EXPIRED within about 15 minutes
Usage meteringMetered with the session (speech and model usage), as for chat
EnglishThe only language tested on live calls so far
CapabilityPlain answer
Voice calls in productionNot available. Staging only, on request
Ordinary phone calls, inbound or outbound, including Malaysian (+60) numbersNot available. Wetel has no phone number, no carrier connection and no phone-call (SIP) service running today. See the FAQ
WhatsApp callsNot available. In preparation; it needs a media component that is not built yet
Joining a Google Meet, Zoom or Teams meeting as an AI participantNot available. Research and design only. See the FAQ
Outbound calls to other peopleNot available. Consented follow-ups and requested callbacks are at specification stage; cold sales calls are not offered (see controls and compliance). A self-test call to the owner’s own number is a pilot, see Calls from an AI employee
Call recordingOff. Wetel does not record call audio
Call records and per-call reports (duration, end reason, cost per call)Not available to you yet. The session transcript and session usage are what you have
Per-call spending limits (longest call, calls at once, daily and monthly spend)Not available to you yet
Malay, Chinese and mixed-language live callsNot tested yet. Speech recognition and synthesis for English, Malay and Mandarin exist for voice messages; live calls have only been tested in English
A published per-minute priceNone yet
Self-service: switching voice on for your workspace yourself, an always-on workerNot available. Voice is enabled per test, with Wetel
  1. An always-on hosted voice worker, so a test does not need a Wetel person.
  2. Faster replies: faster speech and model providers and a streaming workflow path.
  3. Call records, per-call reports and per-call spending limits.
  4. WhatsApp calling through your own WhatsApp Business number.
  5. Ordinary inbound phone calls through a licensed telecom provider.
  6. Consented follow-ups and callbacks the person asked for (specification stage).

The order can change with what pilots show. See the roadmap for what each item needs.

Measured on 2026-10-18 and 2026-10-19 from a laptop in Malaysia against the nearest LiveKit region (India South), with synthetic speech. Run-to-run noise is about 0.5 s. Real callers on real networks will differ.

MeasureTodayTarget for a human-feeling call
Reply time, prompt-only agent (end of caller speech to first agent audio)about 2.6 to 3.7 sabout 1.5 s
Reply time through the partner API with a published workflowabout 3 to 5 sabout 1.5 s
Workflow turn alone, with fast models on its llm nodesabout 1 to 2.8 s, median about 1.9 sn/a
Speech-to-speech option (Gemini Live, no Wetel workflow on that call)about 1.4 to 1.8 s (staging, 2026-11-04)about 1.5 s

The 1.5 s target is met only by the speech-to-speech option, which gives up the Wetel workflow for that call (instructions only: no workflow guardrail nodes, no tools, no Wetel session transcript; a preview model). With the workflow or the prompt-only agent it is not met today. The tuned prompt-only agent on the Malaysian demo worker now measures about 3.5 s (faster speech recognition and voice, 200 ms end-of-turn wait).

For the workflow and prompt-only paths the 1.5 s target is not met. A call feels like a slightly slow phone line, not like talking to a person. Where the time goes:

StepAbout
End-of-turn detection (floor)0.6 s
Language model, first token0.7 to 1.1 s
Speech synthesis, first audio byte0.35 s
Networkthe rest

Tuning the turn-taking settings barely changed the result. What did help was setting a fast modelOverride on the workflow’s llm nodes: a workflow whose nodes ran on the slower default provider took 2 to 12 s per turn; on a fast model it took about 2 s.

A media server in Malaysia (a measurement, not a product). On 2026-10-23 we measured a self-hosted media server in Malaysia against the LiveKit Cloud region in India, from a Malaysian laptop on Wi-Fi with synthetic traffic: the round trip through the media server was about 12 to 20 ms in our tests, against about 73 to 77 ms for LiveKit Cloud in India. That is roughly 60 ms saved per round trip, which is small next to a 3 to 5 s reply, so it does not by itself make calls feel faster. Calls today still go through LiveKit Cloud, and this is not offered as a service.

sequenceDiagram
participant S as Your server
participant W as Wetel API
participant P as Caller's page or app
participant L as LiveKit
participant V as Voice worker
S->>W: sdkStartVoiceCall (X-Api-Key)
W-->>S: livekitUrl, livekitToken, sessionId
S-->>P: livekitUrl, livekitToken
P->>L: join the room, publish microphone
L->>V: dispatch worker into the room
V-->>P: greeting (says it is an AI)
loop each caller turn
P->>V: caller speech
V->>V: transcribe, run the agent's workflow
V-->>P: reply, spoken sentence by sentence
end
Note over P,V: If the caller speaks while the agent talks, the agent stops and that turn is cancelled

Step by step code is in the quickstart.

Not set yet. Usage is metered with the session (speech and model usage), as for chat. A per-minute voice price will be published later; there are no numbers to quote today.

Ask for a test session. We enable voice on your staging workspace, agree a time window, and run the worker for it. Send us the agent you want to test and a workflow you have made voice-safe (see the authoring guide).

Request a test session

  • The join token’s contents are readable by the caller’s browser (see security).
  • Reply time is about 3 to 5 s today, well above the 1.5 s target.
  • The 30-starts-a-minute workspace ceiling is counted per server process, so with several API instances the effective ceiling can be higher.
  • A call that is started but never joined is closed as EXPIRED within about 15 minutes of the request; until then its session shows as active.
  • Each API key can start at most 1,000 calls per UTC day by default (see limits).
  • There are no call records or per-call reports yet; the session transcript is what you have.
  • English first; Malay, Chinese and code-switching on live calls are not tested yet.
  • Replies reach the voice layer per workflow turn, not token by token.
  • A request for a person is a spoken offer of a callback; the call is not transferred.
  • No phone number, no SIP, no WhatsApp calling and no meeting participation is offered.

Is it in production? No. Staging only, on request.

Can I call it from my own backend and web page without Wetel’s help? The API is self-service once voice is enabled for you, but a voice worker must be running for the room. Today Wetel runs it for arranged test sessions.

Can I call a phone number? Only as a Wetel-run demo on the test environment: Wetel can arrange a test call to a demo number so you can talk to an agent (see How a call flows). Phone numbers of your own, Malaysian numbers and production calls are not available yet. See the roadmap for WhatsApp and SIP.

Can my customers phone a Malaysian (+60) number and reach the agent, or can the agent call a +60 number? Not today, in either direction. Wetel does not hold phone numbers, has no connection to a telecom carrier, and runs no phone-call (SIP) service. Ordinary phone calls are planned to come through a licensed telecom provider, inbound first; there is no date. Until then, a voice call reaches the agent from a browser or an app.

Can the agent join our Google Meet, Zoom or Teams meeting? Not today. It is at research and design stage. The meeting platforms limit how a third-party AI can join and speak (some allow listening only, some need the host’s approval or put bots in the lobby), and everyone in the meeting would need to be told an AI is present and agree to it. We will not promise a meeting feature until those questions are settled.

Which languages work on a call? Live calls have been tested in English only. Speech recognition and synthesis for English, Malay and Mandarin are available for voice messages; live-call tests in Malay and Chinese have not been done yet.

Which agent answers? Any agent in your workspace with a published workflow. Make it voice-safe first.

Do you record calls? Not by default. See controls and compliance.

What does it cost? Metered with the session; no per-minute price is published yet.

Does it make outbound calls? Only as a pilot self-test on staging: an AI employee can phone the workspace owner’s own number (see Calls from an AI employee); nothing to other people. Wetel’s policy: no cold outbound sales calls, that is, calls to people who did not ask to hear from you. Follow-ups and callbacks for people who already have a relationship with you and agreed to be called (for example, someone who enquired and asked to be called back) are planned, at specification stage, with no date. See controls and compliance.