> ## Documentation Index
> Fetch the complete documentation index at: https://plivo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Voice API

> Common questions about making, receiving, and managing voice calls

Frequently asked questions about Voice API concepts, CPS limits, geo permissions, caller ID, STIR/SHAKEN, and call management.

***

## Calls Per Second (CPS)

### What are CPS limits and how do they work?

CPS limits control how many calls your account can initiate or receive per second.

| Type         | Default | Description                                        |
| ------------ | ------- | -------------------------------------------------- |
| Outbound CPS | 2       | API-initiated calls                                |
| Inbound CPS  | 10      | Incoming calls + outbound from SIP/browser clients |

***

### What happens when calls exceed outbound CPS?

Calls are queued rather than dropped and dispatched when the rate decreases.

**Example:** With a 10 CPS limit, initiating 12 calls results in the first 10 executing immediately while the remaining 2 queue for the next interval.

***

### How are inbound calls handled when CPS limits are exceeded?

Incoming calls surpassing the inbound CPS threshold are rejected with SIP code 486.

***

### What's the difference between CPS and concurrent calls?

| Metric     | Definition                                        |
| ---------- | ------------------------------------------------- |
| CPS        | Rate of new call initiation per second            |
| Concurrent | Total active calls at any moment (no fixed limit) |

***

### How can I increase my CPS limit?

Contact [Plivo Support](https://support.plivo.com) to request a CPS increase for your account.

***

## Geo Permissions

### What are geo permissions and which regions are enabled by default?

Geo permissions control international calling destinations. Only the US or India is enabled by default (based on your account currency). Enabling other countries requires an Enterprise account.

***

### How do I configure geo permissions?

1. Navigate to **Voice > Geo Permissions** in the console
2. Enable countries where you need to make calls
3. Keep unused countries disabled for security

***

### What error occurs when calling to restricted countries?

Calls fail with the hangup cause `destination_country_barred` when the destination country isn't enabled in geo permissions.

***

### Can I manage geo permissions programmatically?

Yes, use the [Voice Geo Permissions API](https://www.plivo.com/docs/voice/api/voice-settings/) to manage permissions programmatically.

***

## Caller ID

### What is verified caller ID and why is it important?

Verified caller ID authenticates numbers before using as outbound caller ID. Verification ensures compliance with carrier requirements and prevents calls from failing due to unverified caller ID.

Verification can be done through the Plivo Console, APIs, or SDKs.

***

### What is the Do Not Originate (DNO) list?

Calls using numbers on the US Telecom DNO list fail with the `dno_caller_id` hangup cause. These numbers, reserved for government agencies and financial institutions, are inbound-only.

***

## STIR/SHAKEN

### What is STIR/SHAKEN and why does it matter?

STIR/SHAKEN is the FCC-mandated call authentication framework to combat spoofing and robocalls.

***

### What are the three STIR/SHAKEN attestation levels?

| Level       | Meaning                                                             |
| ----------- | ------------------------------------------------------------------- |
| A (Full)    | Carrier verified caller identity and authorization                  |
| B (Partial) | Carrier verified the customer but not specific number authorization |
| C (Gateway) | Call originated from a gateway with no customer verification        |

***

### What KYC information does Plivo need for STIR/SHAKEN?

* Company name and website
* Business registration number/documents
* Nature of business
* Use case for Plivo

**Note:** STIR/SHAKEN applies only to US businesses.

***

## Voice Alerts

### How do I set up voice alerts?

1. Navigate to **Voice > Settings > Alerts** in the console
2. Configure thresholds for:
   * Invalid XML responses
   * Call failure rates
   * Unusual traffic patterns

***

## Making Calls

### How do I initiate outbound calls?

Use the [Make Call API](https://www.plivo.com/docs/voice/api/call/#make-a-call) with key parameters:

* `from`: Your Plivo number for caller ID
* `to`: Destination number
* `answer_url`: URL returning XML instructions

***

### How do I cancel queued calls?

Use the [Hangup API](https://www.plivo.com/docs/voice/api/call/#hangup-a-call) with the `request_uuid` from the queued call to cancel it.

***

### What is PreAnswer functionality?

PreAnswer allows playing audio before a call is answered (early media).

**Supported elements:** `<Speak>`, `<Play>`, `<Wait>`

**Limitations:**

* Variable carrier support
* No WebRTC SDK support
* Destination-dependent accuracy

***

## Call Hangup Causes

### Where can I find hangup cause information?

Hangup information is available in:

* Call Detail Records (CDR) via API or Console
* Callback payloads to `hangup_url`
* Dial XML `callbackUrl` for DialHangup events

***

### What are common hangup causes and their solutions?

| Cause                        | Solution                       |
| ---------------------------- | ------------------------------ |
| `destination_country_barred` | Enable the country in settings |
| `unknown_caller_id`          | Use a Plivo number             |
| `dno_caller_id`              | Use a different caller ID      |
| `violates_media_anchoring`   | Keep media within India        |

See [Hangup Causes Reference](https://www.plivo.com/docs/voice/troubleshooting/hangup-causes/) for complete list.

***

## Call Detail Records (CDR)

### How do I export recent CDRs?

1. Navigate to **Voice > Logs > Calls**
2. Apply filters
3. Select CDRs
4. Click **Export > Export Filtered Results**

Large exports are emailed to your registered address.

***

### How do I access historical CDRs?

1. Go to **Voice > Logs > Calls**
2. Click **Export > Export Historical Data**
3. Select account/subaccount and date range

***

### What information is included in CDRs?

CDR fields include: Call UUID, From/To numbers, direction, duration, billed amount, hangup cause, and more.

**Note:** Numbers in CDRs older than 90 days are redacted.

***

## Audio File Caching

### How does Plivo cache audio files?

Plivo caches audio files used in `<Play>` XML and Play API. Each media server maintains its own cache, and first requests always result in a cache miss.

***

### How can I control caching behavior?

| Header                             | Behavior                     |
| ---------------------------------- | ---------------------------- |
| `Cache-Control: no-store`          | Never cache                  |
| `Cache-Control: no-cache`          | Always check for updates     |
| `Cache-Control: max-age=<seconds>` | Cache for specified duration |
| `ETag`                             | Enable conditional requests  |

***

## Applications

### How do I create an application?

1. Navigate to **Voice > XML > Add New Application**
2. Enter the application name
3. Configure the answer URL and other settings
4. Click **Create Application**

***

### How do I assign a number to an application?

1. Go to **Phone Numbers > Active**
2. Click the number
3. Select **XML Application**
4. Choose your application
5. Save

***

## Call Quality

### What causes common call quality issues and how do I fix them?

| Issue         | Cause                           | Solution                           |
| ------------- | ------------------------------- | ---------------------------------- |
| Echo          | Acoustic feedback/network delay | Check endpoint audio settings      |
| Choppy audio  | Congestion/packet loss          | Check connection, reduce bandwidth |
| One-way audio | Firewall blocking               | Whitelist Plivo IP ranges          |
| Latency       | Distance/routing                | Use nearest Plivo PoP              |

***

### How do I monitor application health?

Check for 4xx/5xx status codes indicating invalid XML responses, API request failures, or configuration errors. Set up Voice Alerts to proactively detect issues.

***

## Country-Specific Restrictions

### What caller ID restrictions exist in Australia?

Per ACMA regulations, blocked CLI prefixes include `+6113`, `+611300`, `+611800`, and `+611900`. CLI modifications or spoofing are flagged by spam detection.

***

### What restrictions apply to calls in China?

**Prohibited:**

* Gambling, financial services, cryptocurrency
* Marketing/spam calls
* Fraudulent calls
* Politically sensitive content

**Requirements:**

* Average call duration over 3 minutes
* Avoid high unanswered rates
* No toll-free caller IDs

Contact [Plivo Support](https://support.plivo.com) to enable China calling.

***

## Related Resources

* [SIP Trunking (Zentrunk)](/docs/voice/sip-trunking)
* [Voice Features](/docs/voice/voice-features)
* [India Calling](/docs/voice/india-calling)
* [Voice API Reference](https://www.plivo.com/docs/voice/api/)
* [XML Reference](https://www.plivo.com/docs/voice/xml/)
* [Voice Quickstart](https://www.plivo.com/docs/voice/quickstart/)
* [Hangup Causes](https://www.plivo.com/docs/voice/troubleshooting/hangup-causes/)
