Programmeerbare spraak in JSON. Gesprekken, IVR, opname, TTS.
Voice voor ontwikkelaars: 140+ landen met spraakdekking, 1.500+ telefoonnummerprefixen, gemaskeerde oproepen, virtuele nummers. Hetzelfde API-oppervlak als Email en SMS: oproepen zijn gewoon een andere resource.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.voice.calls.create({
to: "+15005550010",
from: "+14155550199",
flow: [
{ say: "Your verification code is..." },
{ say: "4. 2. 9. 1. 7." },
{ gather: { digits: 1, timeout: 5 } },
{ record: { transcribe: true } },
],
}).safe();
if (error) throw error;
console.log(data.id);
// → "call_7tQ04Lp2n..."
Bird Verify
+1 (500) 555-0010
Yourverificationcodeisfourtwonineoneseven.
5 minutes from npm install to first call
Start een gesprek vanuit de taal die je al gebruikt.
SDK's in elke gangbare runtime. Het eerste gesprek gaat naar een goedgekeurd testnummer (+15005550010), zodat je een CI-check kunt uitvoeren voordat je een echt nummer inricht.
Code samples arrive when this API ships. The SDKs already cover the live channels.
Tien onderdelen van voice die u liever niet zelf schrijft.
Carrier-routing, oproepbesturing en observability-primitieven, benoemd en auditeerbaar.
- 01
Uitgaande en inkomende gesprekken
Oproepen plaatsen en ontvangen via REST of SIP: hetzelfde authenticatiemodel, hetzelfde idempotency-contract.
- 02
Declaratieve gespreksflows in JSON
Combineer say, play, gather, record, transfer en dial als een platte JSON-array.
- 03
Opname met transcriptie
Optionele opname op elk gespreksonderdeel; transcripties worden automatisch gegenereerd in 40+ talen.
- 04
Streaming TTS, sub-250ms
First-byte audio via HTTP chunked transfer of WebSocket, gefactureerd per teken.
- 05
Voice OTP via verificaties
Dezelfde bird.verifications-resource als SMS OTP; wissel het channel-veld.
- 06
Virtuele nummers in 100+ landen
Richt long codes in vanuit het dashboard of de numbers API in seconden.
- 07
Gemaskeerde gesprekken
Nummers van beller en ontvanger worden nooit aan elkaar blootgesteld: privacy door routing.
- 08
SmartRouting per gesprek
Goedkoopste carrier in real time geselecteerd voor elk onderdeel, met route-herselectie bij falen.
- 09
Webhook-events per gesprek
call.ringing, call.answered, call.completed en meer: HMAC-ondertekend, replay-beschermd.
- 10
WebRTC client SDK
Browser-naar-PSTN-bridges vanuit één npm-pakket; werkt in elke moderne runtime.
Waarom we Voice bouwen
Voice is het kanaal dat iedereen als bijzaak behandelt. Wij niet.
Voice is lastig — sub-seconde latentie, echte carrier-routing, opname-compliance — en daarom geven de meeste aanbieders het een eigen auth, eigen SDK, eigen webhook-contract. Wij hebben de tijd genomen om het dezelfde vorm te geven als elk ander Bird-endpoint: dezelfde auth, dezelfde idempotency, dezelfde error-envelope. Gespreksbesturing is gewoon JSON.
Elke statuswijziging is een webhook.
HMAC-ondertekende payloads, replay-beschermd, idempotent. Dezelfde envelop op elk Bird-kanaal: leer er één, en u kent ze allemaal.
Retry-schema: 5s, 30s, 5m, 30m, 2u, 6u, 12u. Dead-letter na de laatste poging; elk dead-lettered event is opnieuw afspeelbaar vanuit het dashboard of de API.
call.queuedGeaccepteerd door de API en in de wachtrij voor uitbellen.call.ringingDe ontvangende lijn gaat over: pre-answer status.call.answeredDe gebelde heeft opgenomen; facturering start bij dit event.call.completedHet gesprek is normaal beëindigd: duur en prijs in de payload.call.failedPermanente fout (bezet, geen antwoord, carrier-weigering) met een getypeerde reden.call.recording.readyOpname is gecodeerd en beschikbaar via de gesigneerde URL in de payload.call.transcript.readyTranscriptie voltooid; payload bevat taal en segmenten.
Voice OTP is dezelfde resource als SMS OTP.
Plaats een aangepaste oproep of draag de verificatie over aan de runtime. Dezelfde authenticatie, dezelfde idempotency, dezelfde fout-envelop: het channel-veld is het enige dat verandert.
Aangepast gesprek.
Stel elke flow samen — say, gather, transfer — voor de gevallen waarin je het script in je code wilt.
Verificaties.
Eén regel. Bird kiest de route, voert de fraudecontrole uit en verstuurt de audioprompt. Dezelfde code op elk kanaal.