Skip to content

How a call flows

Wetel’s telephony capability lets an AI agent talk to people over a real phone call. This page explains the architecture for integrators.

Current status: Telephony is a test-environment capability available on request. It is not in production.

CapabilityStatus
Calls to a demo phone number (test environment)✅ Wetel-run demo, arranged on request
Outbound calls (Wetel-run internal tests)✅ Internal test only
Customer outbound calling🟡 Planned — not available
Production calls❌ Not available
Live transfer to a person❌ Not available (verbal offer only)
Call recording❌ Off by default
sequenceDiagram
participant Caller
participant PSTN as Phone Network
participant SIP as SIP Service (Cloud)
participant Dispatch as Dispatch Rule
participant Room as Voice Room
participant Agent as Voice Agent (Worker)
participant STT as Speech-to-Text
participant Brain as Wetel Agent Workflow
participant TTS as Text-to-Speech
Caller->>PSTN: Dials the test phone number
PSTN->>SIP: SIP INVITE
SIP->>Dispatch: Route
Dispatch->>Room: Create room, dispatch agent
Room->>Agent: Join
Agent->>TTS: Greeting (AI disclosure, offer a person)
TTS-->>Room: Audio
Room-->>SIP: Audio
SIP-->>PSTN: Audio
PSTN-->>Caller: Hears greeting
loop Each conversational turn (barge-in supported)
Caller->>PSTN: Speech
PSTN->>SIP: Audio
SIP->>Room: Audio
Room->>Agent: Audio
Agent->>STT: Utterance
STT-->>Agent: Text
Agent->>Brain: Message
Brain-->>Agent: Reply
Agent->>TTS: Text
TTS-->>Agent: Audio
Agent->>Room: Audio
Room->>SIP: Audio
SIP->>PSTN: Audio
PSTN->>Caller: Hears reply
end
Caller->>PSTN: Hang up
PSTN->>SIP: BYE
SIP->>Room: End session

This shows how Wetel engineers verify the system. Customer outbound calling is planned, not yet available.

sequenceDiagram
participant Eng as Tester
participant Script as Test Script
participant SIPProvider as A SIP Provider
participant Phone as Tester's Phone
participant SIPService as SIP Service (Cloud)
participant Trunk as Inbound Trunk
participant Dispatch as Dispatch Rule
participant Room as Voice Room
participant Agent as Voice Agent (Worker)
Eng->>Script: Start (with consent, daytime only)
Script->>SIPProvider: Place call to tester's own verified number
SIPProvider->>Phone: Ring
Phone->>SIPProvider: Answer
SIPProvider->>Phone: Provider notice (trial)
Phone->>SIPProvider: Acknowledge
SIPProvider->>SIPService: SIP INVITE (via trunk credentials)
SIPService->>Trunk: Match
Trunk->>Dispatch: Route
Dispatch->>Room: Create room, dispatch agent
Room->>Agent: Join
Agent->>Room: AI disclosure + conversation
Note over Phone,Agent: Same per-turn loop as inbound.<br/>Hard stop 300 seconds.
flowchart TB
subgraph Phone["Phone Network"]
CallerPhone["Caller's phone"]
end
subgraph Cloud["Cloud SIP + Rooms"]
SIPService["SIP Service"]
DispatchRule["Dispatch Rule<br/>(one room per caller)"]
VoiceRoom["Voice Room"]
end
subgraph Worker["Voice Agent Worker"]
AgentProcess["Agent process<br/>(one call at a time)"]
end
subgraph Services["AI Services"]
STT["Speech-to-Text<br/>(multi-language)"]
TTS["Text-to-Speech"]
Brain["Wetel Agent Workflow<br/>(staging)"]
end
subgraph SIPProv["A SIP Provider<br/>(outbound test only)"]
OutboundAPI["Outbound call API"]
end
CallerPhone <-->|"PSTN"| SIPService
SIPService --> DispatchRule --> VoiceRoom
VoiceRoom <--> AgentProcess
AgentProcess --> STT
STT --> AgentProcess
AgentProcess --> Brain
Brain --> AgentProcess
AgentProcess --> TTS
TTS --> AgentProcess
OutboundAPI -->|"SIP INVITE"| SIPService
ComponentRole
SIP ServiceBridges the phone network to the cloud voice room.
Dispatch RuleRoutes an incoming SIP call to a new voice room and assigns an agent.
Voice RoomReal-time audio session between the caller and the agent.
Voice Agent WorkerOrchestrates each turn: listens, transcribes, thinks, speaks. Currently handles one call at a time.
Speech-to-TextConverts each utterance to text (supports English and Malay).
Wetel Agent WorkflowThe “brain” — runs the agent’s logic and returns a reply.
Text-to-SpeechConverts the agent’s reply to audio.
A SIP providerUsed only in the outbound test lane to originate a call to a verified tester phone.
  • A demo call. On request, Wetel can arrange a test call to a demo phone number. Dial it and speak to the AI agent. The agent discloses it is AI and offers to connect a person (verbal offer only — live transfer is not yet built). Barge-in (interrupting the agent mid-sentence) is supported.
  • Observe a Wetel-run outbound test. A Wetel engineer can demonstrate the outbound path by calling their own verified number with their consent, during daytime hours only.

Every call creates a session with a transcript, similar to chat.

FeatureNotes
Production callsThe agent workflow runs on the staging environment only.
Customer outbound callingDesigned; not built. Requires a SIP provider with local numbers, legal review of consent and recording requirements, and opt-in controls (off by default).
Live transfer to a humanThe agent verbally offers it; the transfer itself is not implemented.
Local (Malaysian) phone numbersRequires a SIP provider with Malaysian numbers; not available yet.
WhatsApp / Meta voice callingNot part of this system.
Call recordingOff by default.
MetricCurrentTarget
Per-turn reply time~3.5–5 seconds (workflow or prompt agent); ~1.4–1.8 seconds (speech-to-speech option, no workflow)1.5 seconds
Speech-to-text per utterance0.65–1.8 seconds—

Phone audio is 8 kHz, which can reduce transcription accuracy for some accents. Latency improvements (streaming transcription, shorter replies, faster models, closer hosting) are on the roadmap.

  • The agent discloses it is AI at the start of every call.
  • Outbound calls require explicit consent from the recipient.
  • No recording by default.
  • Per-key daily call caps are enforced in the staging environment.
  • Customer-facing outbound calling, when built, will be off by default and require owner approval.