Calls Per Second (CPS)
CPS limits control how many calls your account can initiate or receive per second.| Type | Default | Description |
|---|---|---|
| Outbound CPS | 2 | API-initiated calls (does not affect Dial XML) |
| Inbound CPS | 10 | Inbound calls + outbound from SIP/browser clients |
Outbound CPS Behavior
Calls exceeding outbound CPS are queued (not dropped) and dispatched when rate drops. Example: With 10 CPS limit, initiating 12 calls:- First 10 execute immediately
- Remaining 2 queue and execute in next interval
Inbound CPS Behavior
Calls exceeding inbound CPS are rejected with SIP code 486.CPS vs Concurrent Calls
| Metric | Definition |
|---|---|
| CPS | Rate of new call initiation per second |
| Concurrent | Total active calls at any moment (no fixed limit) |
Geo Permissions
Control which countries your account can call. By default, only US and Canada are enabled.Configure Geo Permissions
- Navigate to Voice > Geo Permissions
- Enable countries where you need to make calls
- Keep unused countries disabled for security
Common Errors
| Hangup Cause | Meaning |
|---|---|
destination_country_barred | Country not enabled in geo permissions |
API Configuration
Use the Voice Geo Permissions API to manage programmatically.Caller ID
Domestic Caller ID Support
Plivo guarantees domestic CLI presentation in:- United States
- Canada
- United Kingdom
- Australia
- Peru
Verified Caller ID
Authenticate numbers before using as outbound caller ID. Verification methods:- Plivo Console
- APIs
- SDKs
- Ensures compliance with carrier requirements
- Prevents calls from failing due to unverified caller ID
Do Not Originate (DNO) List
Calls using numbers on the US Telecom DNO list fail withdno_caller_id hangup cause. These numbers (government agencies, financial institutions) are inbound-only.
STIR/SHAKEN
STIR/SHAKEN is the FCC-mandated call authentication framework to combat spoofing and robocalls.Attestation Levels
| Level | Meaning |
|---|---|
| A (Full) | Carrier verified caller identity and right to use the number |
| B (Partial) | Carrier verified customer but not specific number authorization |
| C (Gateway) | Call originated from gateway with no customer verification |
Requirements
Plivo needs KYC information to authenticate calls:- Company name and website
- Business registration number/documents
- Nature of business
- Use case for Plivo
Voice Alerts
Set up alerts for traffic anomalies and configuration errors.- Navigate to Voice > Settings > Alerts
- Configure thresholds for:
- Invalid XML responses
- Call failure rates
- Unusual traffic patterns
Making Calls
Outbound API Calls
Initiate calls using the Make Call API. Key parameters:from: Your Plivo number (caller ID)to: Destination numberanswer_url: URL returning XML instructions
Cancel Queued Calls
Use the Hangup API with therequest_uuid from the queued call.
PreAnswer
Play audio before the call is answered (early media). Supported elements:<Speak>, <Play>, <Wait>
Limitations:
- Not supported by all carriers
- Not supported by WebRTC SDK
- Accuracy varies by destination
Call Hangup Causes
Determine Hangup Cause
Hangup information is available in:- Call Detail Records (CDR) via API or Console
- Callback payloads to
hangup_url - Dial XML
callbackUrl(DialHangup events)
Common Hangup Causes
| Cause | Description | Solution |
|---|---|---|
destination_country_barred | Geo permissions not enabled | Enable country in settings |
unknown_caller_id | Non-Plivo caller ID used | Use Plivo number |
dno_caller_id | Number on Do Not Originate list | Use different caller ID |
violates_media_anchoring | India media left the country | Keep media within India |
Export Call Detail Records (CDR)
Recent CDRs (Last 90 Days)
- Navigate to Voice > Logs > Calls
- Apply filters as needed
- Select CDRs to export
- Click Export > Export Filtered Results
Historical CDRs (Last 12 Months)
- Navigate to Voice > Logs > Calls
- Click Export > Export Historical Data
- Select account/subaccount and date range
Audio File Caching
Plivo caches audio files used in<Play> XML and Play API.
Control Caching
| 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 (304 Not Modified) |
Applications
Link phone numbers to answer/hangup URLs for call handling.Create an Application
- Navigate to Voice > XML > Add New Application
- Enter application name
- Configure answer URL and other settings
- Click Create Application
Assign Number to Application
- Go to Phone Numbers > Active
- Click on the number
- Select XML Application
- Choose your application
- Save
Call Quality Issues
Troubleshooting
| Issue | Possible Causes | Solutions |
|---|---|---|
| Echo | Acoustic feedback, network delay | Check endpoint audio settings |
| Choppy audio | Network congestion, packet loss | Check internet connection, reduce bandwidth usage |
| One-way audio | Firewall blocking media ports | Whitelist Plivo IP ranges |
| Latency | Geographic distance, routing | Use nearest Plivo PoP |
Monitor Application Health
Check for 4xx/5xx status codes indicating:- Invalid XML responses
- API request failures
- Configuration errors
Country-Specific Restrictions
Australia
Per ACMA regulations, blocked CLI prefixes:+6113,+611300,+611800,+611900
China
Prohibited:- Gambling, financial services, cryptocurrency
- Marketing/spam calls
- Fraudulent calls
- Politically sensitive content
- Average call duration > 3 minutes recommended
- Avoid high unanswered call rates
- No toll-free caller IDs
Pricing
Access pricing by country:- Console: Voice > Pricing
- API: Pricing API
- Download: CSV export from console