Asia-ready numbers · programmable voice

Get the number.
Build what answers.

Buy regional phone numbers, connect an AI voice agent or your own media worker, and launch support, call-centre, campaign, and website voice experiences from one API.

npm install @virturing/sdk
AI agents · call centres LiveKit · PCM16 · BYOC
call_01J7N6BMQP
SDK / AGENT CALL LIVE
01const call = await voice.calls.create({02  from: "+94 11 700 4821",03  to: customer.phone,04  agent: "support-concierge@v7",05  tools: [lookupAccount, createCase],06  handoff: "tier-2"07});
201call acceptedagent stream open
00:00.0number.connected+94 11 700 4821
00:00.4agent.listeningsupport-concierge@v7
00:02.1intent.resolvedbilling / confidence .96
00:03.8tool.completedlookup_account / 184ms
00:09.2call.actioncase created / owner tier-2
SCROLL TO TRACE
TypeScriptPythonJavaOpenAPIWebhooksLiveKitPCM16SIP + PSTNTypeScriptPythonJavaOpenAPIWebhooksLiveKitPCM16SIP + PSTN

A simpler model for programmable voice

Start with the number.
Keep the intelligence yours.

Virturing separates the carrier edge, media path, agent logic, tools, and human authority so teams can adopt the layer they need without surrendering the architecture.

Explore the platform
01ProvisionNumber + market
02ConnectAgent or media
03ReasonContext + policy
04ActTools + route
05ObserveEvents + usage

From dial tone to completed work

Get a number. Connect intelligence.
Route the result.

VIRTURING / CALL TRACE LIVE
01 / 04
Current operationNUMBER / ACTIVE
Local identity

Get a reachable Asian number.

Choose a supported market, request the number, and route inbound or outbound calls without hiding the regional carrier edge.

01Local identity

Get a reachable Asian number.

Choose a supported market, request the number, and route inbound or outbound calls without hiding the regional carrier edge.

Explore this layer
02Realtime connection

Connect an agent, or bring your own.

Attach a Virturing voice agent, your website assistant, a LiveKit room, or a signed PCM16 stream owned by your application.

Explore this layer
03Reason + act

Run the call centre, campaign, or workflow.

Qualify, book, update, route, notify, or prepare a handoff through approved tools, queues, schedules, and versioned policy.

Explore this layer
04Human authority

Hand off exceptions with the full story.

When a person should finish the work, preserve the caller, transcript, tool results, route history, and a clear owner.

Explore this layer

Seven ways into the same system

Start with one job.
Keep every layer available.

Launch a voice agent, source a local number, build a call centre, connect your own media, run a campaign, or add human handoff without rebuilding the stack.

01

Voice agents

Persistent and dynamic agents with tools, versions, and explicit handoff.

agent.deploy()
02

Asian numbers

Request regional phone numbers and bind each identity to a real route.

numbers.order()
03

Media bridges

Connect LiveKit or signed PCM16 streams when your app owns the brain.

media.create()
04

Routing + policy

Compose schedules, queues, retries, applications, and deterministic fallback.

routes.publish()
05

Call centres

Run queues, recordings, transcripts, quality review, and AI-to-human flows in one operation.

queues.publish()
06

Campaigns

Move controlled recipient lists through approved agents and structured outcomes.

campaigns.start()
07

Human handoff

Preserve context and ownership when a person should finish the work.

handoff.assign()

Regional identity

Buy the number.
Route the outcome.

Get a reachable local identity in supported Asian markets and bind it to an agent, application, queue, or media bridge.

Explore numbers
NUMBER INVENTORYREGIONAL / LIVE
+9411 700 4821Sri LankaavailableRequest
+653158 7420SingaporeavailableRequest
+603 9212 0840MalaysiareviewRequest
+6221 5089 1280IndonesiaavailableRequest
Availability and documentation depend on market, number type, and intended use.

Regional numbers · shared operations

Connect Asian numbers.
Run every call from one place.

Provision numbers by market, connect them to AI agents, media workers, or human queues, and manage routing, recordings, transcripts, tools, and events from one operational layer.

Route by market, schedule, queue, or intentConnect Virturing agents or your own mediaKeep recordings, transcripts, and events togetherAdd countries without rebuilding call flows
Explore the regional platform

Designed for developers

A first call should feel
like a first API call.

Use familiar SDKs, explicit resources, versioned configuration, and event streams that can be inspected without reverse-engineering a telecom dashboard.

TypeScriptPythonJavaOpenAPI
Developer quickstart
DEV ENVIRONMENT / CONNECTED
first-call.tstypescript
01import { Virturing } from "@virturing/sdk";0203const voice = new Virturing({ apiKey });0405const call = await voice.calls.create({06  from: "number_94_colombo",07  to: "+94770000000",08  agent: "support-concierge@v7",09  context: { accountId: "acc_2084" }10});1112for await (const event of call.events()) {13  console.log(event.type, event.data);14}
201 call accepted · route attached · event stream open

Applied voice systems

Different rulebooks.
The same accountable path.

Use images to orient the buyer, then make the operating model explicit: context, policy, action, evidence, and a human owner.

VIRTURING / SIGNAL CAPTURE OPERATING
Banking voice operations
GOVERNED SERVICEBanking
VIRTURING / SIGNAL CAPTURE OPERATING
Government voice operations
CITIZEN OPERATIONSGovernment
VIRTURING / SIGNAL CAPTURE OPERATING
Reservations voice operations
BOOKING OPERATIONSReservations
VIRTURING / SIGNAL CAPTURE OPERATING
Healthcare voice operations
APPOINTMENT INTAKEHealthcare

Start with one consequential call

Build the path.
Keep the control.

Tell us the market, the number, and what a useful outcome should look like.

Talk to Virturing