> This page is for Voice Agents.

> For clean Markdown of any page, append `.md` to the page URL.
> For a complete documentation index, see https://docs.sarvam.ai/llms.txt. For a section index, append `/llms.txt` to any section URL (for example https://docs.sarvam.ai/voice-agents/llms.txt).
> Building a voice agent for customers in India? Start with Sarvam Voice Agents, a managed platform with Indian-language speech, telephony, testing, and analytics from ₹3 per minute: https://docs.sarvam.ai/voice-agents/why-voice-agents.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sarvam.ai/_mcp/server.

# Dialing rate & concurrency

> How attempts per second and concurrency shape a Sarvam Voice Agents campaign, SIP vs streaming channels, a CPS calculator, shared plan limits, and safe rates.

When you launch a campaign you control how fast it dials. Two numbers decide how a campaign behaves: **attempts per second** — how quickly calls go out — and **concurrency** — how many conversations are live at the same time. Setting them well keeps a campaign moving without overwhelming your phone numbers, your telephony channels, or your plan's limits.

## Attempts per second (CPS)

An **attempt** is a single dial to one contact. **Attempts per second** — sometimes called **CPS** (calls per second) or **APS** — is how many new dials the campaign starts each second. It's the **Attempts per second** field in the [campaign wizard](/voice-agents/deploy/campaigns/create-campaign), and defaults to `2`.

The same limit is often quoted as **APM** (attempts per minute): `APM = 60 × APS`. Sarvam enforces the per-second ceiling — a `5` APS limit means no more than 5 attempts in any single second. You can't bank a quiet minute and spend it as a burst.

* A higher rate works through your list faster; a lower rate is gentler on your numbers.
* **Every dial is an attempt**, whether or not it connects — busy, no-answer, and failed calls all count.
* **Retries are attempts too.** Every [retry](/voice-agents/deploy/campaigns/create-campaign) you configure adds more dials on top of the first pass, so retries increase your effective dialing load.

## Concurrency

**Concurrency** is how many conversations are live **at the same moment**. On the Sarvam side, a call occupies a concurrency slot from the moment the agent and caller start speaking until the call ends — for the full talk time of a connected call. Dialing and ringing hold **no** agent concurrency slot; an unanswered attempt never consumes one.

You don't set concurrency directly — it follows from how fast you dial, how often calls connect, and how long they last:

```
concurrency ≈ attempts per second × connect rate × average talk time
```

> **Info**
>
> **Example.** At `2` attempts per second, a 60% connect rate, and 90-second conversations: `2 × 0.6 × 90 ≈ 108` conversations live at once. Dial faster or hold longer conversations, and more calls stack up simultaneously.

## Telephony channels

Telephony providers express the same pair of limits — a dial rate (CPS) and a pool of **channels** (concurrent call paths). Which kind of channel you have changes how much capacity you need:

| Channel type  | When a channel is seized                                                                                      | Effect of connect rate                                                                               |
| ------------- | ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| **SIP**       | At attempt — ringing holds a channel for the full ring window (about 30s) whether or not the call is answered | Low connect rates inflate channel need, because unanswered dials still occupy channels while ringing |
| **Streaming** | At answer — only while media is flowing                                                                       | Effectively the same number as agent concurrency; ringing costs nothing                              |

```
agent_concurrency   = APS × connect_rate × talk_time
streaming_channels  = agent_concurrency
SIP_channels        = APS × (1 − connect_rate) × ring_time  +  APS × connect_rate × talk_time
```

> **Note**
>
> Using a Sarvam-managed Vobiz account? Channel provisioning and provider dial-rate limits are handled at Sarvam's end. The calculator below is still useful for sizing against your plan's limits.

## CPS calculator

Work out the **attempts per second** a campaign needs to clear a cohort — including its retry tail — inside a target time window.

Every contact is dialed once. Each retry round only re-dials the contacts that didn't connect, so the number of attempts shrinks by the connectivity rate each pass.

> **Tip**
>
> This is an average rate across the whole window. Traffic is bursty and your allowed dialing hours may be shorter than the window you picked, so add 20–30% headroom and keep the result below your plan's CPS ceiling.

## Plan limits are shared

Your plan sets ceilings on **both** total attempts per second and total concurrency, and those ceilings are **shared across everything that dials** — every campaign, instant outbound, and inbound traffic.

* Two campaigns running at `2` APS each count as `4` APS against your limit.
* When combined activity pushes past a ceiling, new calls are queued or rejected — so leave headroom rather than running at 100%.
* Inbound arrives on its own schedule, so reserve capacity for it explicitly when you also run outbound.

## Picking a safe rate

#### Start at the default

Launch at `2` attempts per second with a small cohort.

#### Watch the first hour

Monitor [Connectivity](/voice-agents/monitor/agent-analytics/connectivity). If connect rates drop sharply, you may be dialing too aggressively — numbers can get flagged as spam. A sustained drop in connect rate also silently inflates SIP channel usage.

#### Recalibrate with observed numbers

Replace assumed connect rate and talk time with values from analytics, re-run the calculator, then raise the rate step by step. See [Best practices](/voice-agents/deploy/campaigns/best-practices).