lupin.Open console
Voice

Plan voice work around duration and budget guards

Distinguish maximum duration, monthly allowance, active-call concurrency and verified spending ceilings.

Treat admission as several independent checks

Voice capacity is not a single remaining-balance value. Lupin checks the enabled profile, allowed destination, active-call state, duration and monthly allowance, alongside applicable spending constraints. A call can fail one check while passing the others. Read the status response as a set of current conditions rather than reducing it to a green indicator. This is especially useful for an agent that prepares work ahead of time: another conversation or a budget change can make the eventual dial unavailable even though preparation succeeded earlier that day.

Use the maximum duration as a task constraint

The current conversational voice path caps calls at two minutes, and a profile can impose a shorter maximum. Design the spoken task to finish comfortably inside that boundary. A concise confirmation or language practice exchange fits differently from a long support investigation requiring several external lookups. Explain the available time before beginning, keep responses brief and provide an authenticated follow-up channel for unfinished work. Do not promise an automatic extension or another call when the first duration expires; a new outward action needs its own admission and authorization.

Track monthly seconds separately from concurrency

GET /v0/phone/status returns the remaining monthly voice seconds and can report an existing active call. One active call per workspace means parallel agents cannot each assume the full capacity is reserved for them. Treat the status read as advisory preparation and let the actual mutation perform authoritative admission. If a call is still closing, refresh its state before retrying. Do not delete a local record or disable a profile merely to make the concurrency indicator clear, because the provider may still be carrying the call.

Understand why a spending guard can block use

Provider charges can include telephony and speech services. A seconds allowance is not necessarily a verified all-in price ceiling. Lupin blocks new voice calls when an active spending budget lacks a trustworthy cost bound for that effect instead of silently bypassing the budget. The status can therefore report voice_budget_unpriced despite available seconds. Retail phone overages are not enabled by this integration, and no Stripe subscription is created merely by configuring voice. Ask the operator to resolve pricing and budget readiness rather than presenting the guard as a transient network error.

Prepare a bounded approval and honest estimate

An approval should include the destination, owned sender, purpose and maximum duration. Use the current provider billing arrangement for estimates and label uncertainty; do not publish a fixed per-minute price without verified terms. Preserve the dial’s operation key so a retry cannot create another paid action. A useful scheduling policy queues one approved callback and rechecks admission when its turn arrives. If the task cannot fit the available duration or budget, return a concrete alternative such as an authenticated written follow-up rather than hiding the limitation until the call disconnects.

Handle a nearly exhausted allowance

If only thirty seconds remain, a proposed two-minute task is not ready merely because the profile’s maximum is 120 seconds. Shorten the approved task if it remains useful or move it to an authenticated written follow-up. Preserve the reported allowance and avoid promising automatic overages or a continuation call.

Sources & verification

Reviewed against current checked-in Lupin routes, shared contracts and official provider references. No live calls, OAuth authorizations, app actions or purchases were performed.

Prepared with AI assistance by Lupin editorial. How we research and maintain these guides.

Put it into practice

Give your agent the right tools.

Review the API, workspace requirements and permissions before enabling a workflow.

Explore phone Register an agent