Programmierbare Sprachtelefonie in JSON. Anrufe, IVR, Aufzeichnung, TTS.
Voice für Entwickler: 140+ Länder mit Sprachabdeckung, 1.500+ Rufnummernvorwahlen, maskierte Anrufe, virtuelle Nummern. Dieselbe API-Oberfläche wie bei Email und SMS: Anrufe sind einfach eine weitere Ressource.
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
Starten Sie einen Anruf in der Sprache, die Sie bereits verwenden.
SDKs für jede gängige Laufzeitumgebung. Der erste Anruf geht an eine freigegebene Testnummer (+15005550010), sodass Sie einen CI-Check ausliefern können, bevor Sie eine echte Nummer einrichten.
Code samples arrive when this API ships. The SDKs already cover the live channels.
Zehn Voice-Komponenten, die Sie lieber nicht selbst programmieren möchten.
Carrier-Routing, Anrufsteuerung und Observability-Primitive – benannt und auditierbar.
- 01
Ausgehende und eingehende Anrufe
Anrufe tätigen und empfangen über REST oder SIP: dasselbe Auth-Modell, derselbe Idempotenz-Vertrag.
- 02
Deklarative Anrufabläufe in JSON
Kombinieren Sie say, play, gather, record, transfer und dial als flaches JSON-Array.
- 03
Aufzeichnung mit Transkription
Optionale Aufzeichnung für jede Verbindung; Transkripte werden automatisch in über 40 Sprachen generiert.
- 04
Streaming-TTS, unter 250 ms
First-Byte-Audio über HTTP Chunked Transfer oder WebSocket, abgerechnet pro Zeichen.
- 05
Sprach-OTP über Verifikationen
Dieselbe bird.verifications-Ressource wie bei SMS OTP; einfach das channel-Feld ändern.
- 06
Virtuelle Nummern in über 100 Ländern
Stellen Sie Langwahlnummern über das Dashboard oder die Numbers-API in Sekunden bereit.
- 07
Maskierte Anrufe
Anrufer- und Empfängernummern werden einander nie offengelegt: Datenschutz durch Routing.
- 08
SmartRouting pro Anruf
Günstigster Carrier wird in Echtzeit für jede Verbindung ausgewählt, mit automatischer Routenumleitung bei Fehlern.
- 09
Webhook-Events pro Anruf
call.ringing, call.answered, call.completed und mehr: HMAC-signiert, Replay-geschützt.
- 10
WebRTC-Client-SDK
Browser-zu-PSTN-Bridges aus einem einzigen npm-Paket; funktioniert in jeder modernen Laufzeitumgebung.
Warum wir Voice entwickeln
Voice ist der Kanal, den alle als Nebensache behandeln. Wir nicht.
Voice ist anspruchsvoll — Sub-Sekunden-Latenz, echtes Carrier-Routing, Aufzeichnungs-Compliance — und genau deshalb geben die meisten Anbieter dem Kanal eine eigene Auth, ein eigenes SDK, einen eigenen Webhook-Vertrag. Wir haben uns die Zeit genommen, ihn wie jeden anderen Bird-Endpunkt aufzubauen: gleiche Auth, gleiche Idempotenz, gleicher Fehler-Envelope. Anrufsteuerung ist einfach JSON.
Jede Statusänderung ist ein Webhook.
HMAC-signierte Payloads, Replay-geschützt, idempotent. Dasselbe Envelope auf jedem Bird-Kanal: einen lernen, alle beherrschen.
Retry-Zeitplan: 5s, 30s, 5m, 30m, 2h, 6h, 12h. Dead-Letter nach dem letzten Versuch; jedes Dead-Letter-Event kann über das Dashboard oder die API erneut abgespielt werden.
call.queuedVon der API akzeptiert und für den Verbindungsaufbau in die Warteschlange gestellt.call.ringingDie Empfangsleitung klingelt: Pre-Answer-Status.call.answeredDer Angerufene hat abgenommen; die Abrechnung beginnt mit diesem Event.call.completedDer Anruf wurde normal beendet: Dauer und Preis im Payload.call.failedPermanenter Fehler (besetzt, keine Antwort, Carrier-Ablehnung) mit typisiertem Grund.call.recording.readyAufzeichnung ist kodiert und unter der signierten URL im Payload verfügbar.call.transcript.readyTranskription abgeschlossen; Payload enthält Sprache und Segmente.
Sprach-OTP ist dieselbe Ressource wie SMS OTP.
Einen individuellen Anruf tätigen oder die Verifizierung an die Runtime übergeben. Gleiche Auth, gleiche Idempotenz, gleiches Error-Envelope: Das Channel-Feld ist das Einzige, was sich ändert.
Benutzerdefinierter Anruf.
Erstellen Sie beliebige Abläufe — say, gather, transfer — für die Fälle, in denen Sie das Skript in Ihrem Code haben möchten.
Verifikationen.
Eine Zeile. Bird wählt die Route, führt die Betrugsprüfung durch und sendet den Audio-Prompt. Derselbe Code auf jedem Kanal.