open_voice_bridge
Open a phone call you drive one turn at a time: we dial, transcribe what the other side says, and speak whatever text you send. You call voice_bridge_say to talk, poll_voice_bridge to read transcripts, end_voice_bridge to hang up. ⚠ NOT real-time conversation. Each turn costs an HTTP round trip plus your own model's thinking plus speech synthesis — measured at 2.5-4 seconds before audio starts, against the ~0.8s a natural back-and-forth needs, and nothing signals you when the other side stops talking, so you are polling and guessing. Good for: leaving a spoken message, navigating an IVR, reading something out, a slow exchange where a pause is fine. For a real conversation with a human, use ai_call — we run the agent at conversational speed and return the transcript. Unused deposit time is refunded automatically when the call ends — including when the callee hangs up. Pass refundAddress (a Lightning address) and the remainder is SENT there with no further action; without it the refund is held as a claimable LNURL-withdraw link returned by end_voice_bridge. Use this when the content of the call must never leave your side, and the pace can tolerate a pause between turns. When NOT to use: not for fully-managed agent-style calls where we handle the brain (use ai_call). Not for one-shot TTS broadcasts or IVR playback (use place_call). Not when live transcript polling adds no value — the per-turn overhead isn't worth it. Privacy: transcripts held in memory only, garbage-collected 30 minutes after the call ends; call audio is never persisted. Pay with Bitcoin Lightning — no telecom account, no signup. Requires create_payment with toolName='voice_bridge_open', phoneNumber, durationMinutes. Deposit is priced per destination off the carrier rate sheet and is BTC-pegged, so call create_payment for the exact figure; premium-rate and satellite ranges are refused.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| codec | No | PCMU 8kHz (default, universal) or L16_16000 for HD voice when both endpoints support it | |
| greeting | No | Spoken the instant the callee answers (max 500 chars). Synthesized while the phone rings, so there is no pause before the first word — without it the callee hears silence until your first voice_bridge_say lands. Strongly recommended for any call a human answers. | |
| language | No | BCP-47 language tag (default en-US). See /api/l402/voice-bridge/coverage for the matrix. | |
| paymentId | Yes | Valid payment ID from create_payment (toolName=voice_bridge_open) | |
| sttEnabled | No | Default true. Set false for TTS-only broadcast calls. | |
| ttsEnabled | No | Default true. Set false to bring-your-own-audio via voice_bridge_say. | |
| phoneNumber | Yes | Destination phone number in E.164 format (e.g., +14155550100) | |
| refundAddress | No | Lightning address (e.g. you@wallet.com). Strongly recommended: the unused deposit is sent here automatically when the call ends, so nobody has to claim anything. Without it the refund waits as an LNURL-withdraw link. | |
| durationMinutes | No | Deposit for N minutes, 2-30 (default 3). Unused time refunded. |