- Quick Diagnostics
- Phone Number Issues
- For ElevenLabs - Check API key
- Navigate to Settings → Integrations
- Ensure ElevenLabs API key is configured
- Instead of this
- Do this
- Via API - Check provisioning status
- Look for "status" and "error_message" fields
- Don't start with campaigns
- Test single outbound call via API
- Check latency to SIP server
- Should be < 100ms for good quality
- > 200ms may cause issues
- Ensure first message is configured
- From OpenAI Platform
- Should return 200 OK
- Check your domain's SSL
- Should show valid certificate
- No SSL errors
- Test reachability
- Should show: Connection succeeded
- Test VoxPria API
- Should return: HTTP 200 OK
- Test your webhook endpoint
- Should return: 200 OK
Common issues and solutions for VoxPria SIP trunks. Find quick fixes for the most frequent problems you might encounter.
Quick Diagnostics #
System Status Check #
Before troubleshooting, verify system status:
- Check VoxPria Status Page
- Review your SIP provider’s status page
- Verify your internet connection
- Check call logs for error messages
Common Signs and Causes #
| Symptom | Likely Cause | Quick Fix |
|———|————–|———–|
| Import fails | Invalid format or rate limit | Check E.164 format, wait 1 minute |
| No inbound calls | Provisioning or routing issue | Verify trunk credentials, check status |
| Poor audio | Network or codec issue | Switch to TLS, test connection |
| Agent silent | Configuration problem | Check agent assignment and prompt |
| Webhook errors | Security misconfiguration | Verify webhook secret |
Phone Number Issues #
Phone Number Import Fails #
Symptoms:
- Import returns error message
- Number doesn’t appear in list
- “Invalid phone number” error
Solutions:
Check Number Format:
- Must use E.164 format:
+[country code][number] - ✓ Correct:
+12125551234 - ✗ Wrong:
2125551234,+1-212-555-1234,(212) 555-1234
Verify API Configuration:
`bash
For ElevenLabs – Check API key #
Navigate to Settings → Integrations #
Ensure ElevenLabs API key is configured #
`
Check Rate Limits:
- Maximum 10 imports per minute
- If exceeded, wait 60 seconds
- Check response for rate limit headers
Confirm Provider Ownership:
- Number must exist in your provider account
- Verify number is active and not ported away
- Check provider dashboard for number status
Example Fix:
`bash
Instead of this #
curl -X POST /phone-numbers/import \
-d ‘{“phone_number”: “2125551234”}’ # Wrong format
Do this #
curl -X POST /phone-numbers/import \
-d ‘{“phone_number”: “+12125551234”}’ # Correct format
`
Provisioning Stuck or Failing #
Symptoms:
- Status shows “provisioning” indefinitely
- Provision button doesn’t work
- Error: “Provisioning failed”
Solutions:
For ElevenLabs Numbers:
- Verify trunk credentials are correct
- Check ElevenLabs dashboard shows number
- Try deleting and re-importing
- Ensure using
sip.rtc.elevenlabs.io(not old address) - Verify plan includes SIP features
For OpenAI Numbers:
- Provision at trunk level, not per-number
- Verify OpenAI Project ID is correct
- Check API key has Realtime permissions
- Ensure webhook secret is configured
- Provision entire project via trunk settings
Force Re-provision:
- Edit the phone number
- Click “Re-provision”
- Wait 30 seconds
- Refresh page to check status
Check Logs:
`bash
Via API – Check provisioning status #
curl -X GET /phone-numbers/{phone_id} \
-H “Authorization: Bearer YOUR_API_KEY”
Look for “status” and “error_message” fields #
`
Number Appears But Calls Don’t Connect #
Symptoms:
- Number imported and provisioned
- Status shows “active”
- Inbound calls don’t reach agent
Solutions:
Verify Agent Assignment:
- Go to Phone Numbers list
- Click Edit on your number
- Confirm an agent is selected
- Save if needed
Check SIP Routing:
- Log into your SIP provider
- Verify number routing points to correct destination
- For ElevenLabs: Check termination settings
- For OpenAI: Verify routing to OpenAI endpoints
Test With Provider:
- Some providers have test numbers
- Make test call through provider interface
- Check provider’s call logs
- Verify SIP registration
Connection and Audio Issues #
Inbound Calls Not Connecting #
Symptoms:
- Calls ring but never answer
- Immediate disconnect
- “Call failed” in logs
Solutions:
Verify Trunk Credentials:
- Go to SIP Trunks
- Edit your trunk
- Verify username and password
- Update if needed
- Click “Re-provision All Numbers”
Check Transport Settings:
- Ensure transport matches provider requirement
- TLS (port 5061) recommended
- TCP (port 5060) as fallback
- Must match on both ends
For ElevenLabs:
`
Server: sip.rtc.elevenlabs.io
Port: 5061 (TLS) or 5060 (TCP)
Transport: TLS recommended
OLD ADDRESS (DON’T USE): sip.elevenlabs.io
`
For OpenAI:
- Verify webhook URL is publicly accessible
- Check webhook secret is configured
- Test webhook with curl:
`bash
curl -X POST YOUR_WEBHOOK_URL \
-H “Content-Type: application/json” \
-d ‘{“test”: “data”}’
`
Check Firewall:
- Allow inbound SIP traffic (ports 5060-5061)
- Allow RTP media ports (typically 10000-20000)
- Check cloud provider security groups
- Verify no corporate firewall blocking
Outbound Calls Failing (ElevenLabs Only) #
Symptoms:
- Campaign calls don’t connect
- API calls return errors
- “Outbound not enabled” error
Solutions:
Enable Outbound:
- Edit phone number in VoxPria
- Check “Outbound Enabled” checkbox
- Save changes
Verify Credits:
- Log into ElevenLabs dashboard
- Check account balance
- Add credits if needed
- Verify billing is current
Check Number Capabilities:
- Not all numbers support outbound
- Verify in ElevenLabs dashboard
- May need different number type
Test Single Call First:
`bash
Don’t start with campaigns #
Test single outbound call via API #
curl -X POST /calls/create \
-d ‘{
“from”: “+12125551234”,
“to”: “+13035559876”,
“agent_id”: “agent_abc123”
}’
`
Poor Audio Quality #
Symptoms:
- Choppy or robotic audio
- Echo or feedback
- Delayed responses
- Audio cuts out
Solutions:
Switch to TLS:
- Edit your trunk
- Change transport to TLS
- Update port to 5061
- Re-provision numbers
- Test again
Check Codec Settings:
- VoxPria uses G.711 (default)
- Verify provider supports G.711
- Check for codec mismatches in logs
Test Network:
`bash
Check latency to SIP server #
ping sip.rtc.elevenlabs.io
Should be < 100ms for good quality #
> 200ms may cause issues #
`
Verify Bandwidth:
- Minimum: 100 Kbps per concurrent call
- Recommended: 200 Kbps per call
- Test from: fast.com or speedtest.net
Location Matters:
- Test from different locations
- Closer to provider = better quality
- Consider CDN or edge locations
Provider-Specific:
- Check provider’s network status
- Review provider’s best practices
- Contact provider support if persistent
Audio One-Way or Silent #
Symptoms:
- Caller can’t hear agent
- Agent can’t hear caller
- Complete silence
Solutions:
Check NAT/Firewall:
- Configure SIP ALG if available
- Open RTP port range (10000-20000)
- Use STUN/TURN if behind NAT
Verify Media Settings:
- Check trunk configuration
- Ensure media encryption matches provider
- Verify SRTP settings if using TLS
Test From Different Network:
- Try from mobile data (bypass network)
- Test from different location
- Isolates network vs config issue
Agent and Webhook Issues #
Agent Not Responding #
Symptoms:
- Call connects but agent silent
- No greeting message
- Agent doesn’t interact
Solutions:
Verify Agent Configuration:
- Check agent is assigned to number
- Verify agent has system prompt
- Test agent in VoxPria interface first
- Check agent type (Natural for OpenAI)
Check First Message:
`bash
Ensure first message is configured #
{
“config”: {
“first_message”: “Hello! How can I help you today?”
}
}
`
Review Agent Logs:
- Navigate to Call Logs
- Find the call
- Check for error messages
- Look for agent initialization errors
For OpenAI Agents:
- Must be “Natural” type agent
- Structured/workflow agents won’t work
- Check agent type in agent settings
Test Agent Separately:
- Use VoxPria’s web interface
- Test conversation with agent
- Verify responses work
- Then test via phone
OpenAI Webhook Not Receiving Events #
Symptoms:
- Calls don’t trigger VoxPria
- No entries in call logs
- Webhook delivery logs show failures
Solutions:
Verify Webhook URL:
`
Should be: https://your-domain.com/api/v1/sip/openai/webhook
NOT: http:// (must use HTTPS)
NOT: localhost or 127.0.0.1
`
Check Webhook Secret:
- Must match between OpenAI and VoxPria
- Case-sensitive
- No extra spaces when copying
- Update in VoxPria trunk settings
Test Webhook Manually:
`bash
From OpenAI Platform #
curl -X POST YOUR_WEBHOOK_URL \
-H “X-OpenAI-Signature: test_signature” \
-d ‘{“event”: “call.started”}’
Should return 200 OK #
`
Verify SSL Certificate:
`bash
Check your domain’s SSL #
curl -v https://your-domain.com
Should show valid certificate #
No SSL errors #
`
Check Firewall:
- Allow HTTPS (443) inbound
- OpenAI’s IP ranges must be allowed
- No rate limiting on webhook endpoint
Review OpenAI Logs:
- Go to OpenAI Platform
- Check webhook delivery logs
- Look for error messages
- Note response codes
Webhook Signature Validation Failing #
Symptoms:
- HTTP 401 errors in webhook logs
- “Invalid signature” in VoxPria logs
- Events not processing
Solutions:
Update Webhook Secret:
- Copy secret from OpenAI Platform
- Edit OpenAI trunk in VoxPria
- Paste secret exactly (no spaces)
- Save changes
- Re-provision project
Regenerate Secret:
- In OpenAI Platform, regenerate secret
- Update VoxPria immediately
- Test with new secret
Verify Implementation:
`javascript
// Correct signature verification
const crypto = require(‘crypto’);
function verifySignature(payload, signature, secret) {
const hmac = crypto.createHmac(‘sha256’, secret);
const computed = hmac.update(payload).digest(‘hex’);
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(computed)
);
}
`
Campaign Issues #
Campaign Calls Not Going Out #
Symptoms:
- Campaign shows “running” but no calls
- No entries in call logs
- Recipients not receiving calls
Solutions:
Check Number Requirements:
- Only works with ElevenLabs numbers
- Outbound must be enabled
- OpenAI numbers don’t support campaigns
Verify Campaign Configuration:
- Check phone number is selected
- Verify recipient list is uploaded
- Ensure campaign is started (not paused)
- Check scheduled time hasn’t passed
Review Recipient Format:
`json
// Correct format
[
{
“phone”: “+13035559876”,
“name”: “John Doe”
}
]
// Numbers must be E.164 format
`
Check Account Limits:
- Verify concurrent call limits
- Check ElevenLabs credit balance
- Review daily/monthly quotas
Test Single Call:
- Try single outbound call first
- Verify that works
- Then try small campaign (5-10 calls)
- Scale up gradually
High Campaign Failure Rate #
Symptoms:
- Many calls show “failed” status
- Low answer rate
- Frequent disconnects
Solutions:
Timing Optimization:
- Avoid early morning (before 9 AM)
- Avoid late evening (after 8 PM)
- Respect time zones
- Test different times
Number Reputation:
- New numbers may be flagged
- Build reputation gradually
- Start with low volume
- Increase over time
Check Recipient Numbers:
- Verify numbers are valid
- Remove disconnected numbers
- Check for typos in E.164 format
- Test with your own number first
Adjust Settings:
`json
{
“retry_failed”: true,
“retry_delay”: 3600,
“max_retries”: 2,
“call_timeout”: 30
}
`
Billing and Limits #
“Feature Not Available” Error #
Symptoms:
- Can’t create trunks
- Import limits restricted
- API returns 403 Forbidden
Solutions:
Verify Plan:
- Check your VoxPria plan
- Ensure SIP features included
- Upgrade if necessary
Check Usage Limits:
- Free plans may have trunk limits
- Pro plans have higher limits
- Enterprise has custom limits
Contact Support:
- If features should be available
- Provide account details
- Request feature enablement
Rate Limit Exceeded #
Symptoms:
- HTTP 429 responses
- “Too many requests” errors
- Operations timing out
Solutions:
Respect Rate Limits:
- Phone imports: 10 per minute
- General API: 1000 per hour
- Implement exponential backoff
Implement Retry Logic:
`javascript
async function importWithBackoff(number, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await importNumber(number);
} catch (error) {
if (error.status === 429) {
const delay = Math.pow(2, i) * 1000; // Exponential
await sleep(delay);
continue;
}
throw error;
}
}
}
`
Batch Operations:
- Use bulk import for multiple numbers
- Don’t loop rapid individual imports
- Space out API calls
Diagnostic Tools #
Test Your Configuration #
SIP Server Connectivity:
`bash
Test reachability #
nc -zv sip.rtc.elevenlabs.io 5061
Should show: Connection succeeded #
`
API Connectivity:
`bash
Test VoxPria API #
curl -I https://api.voxpria.com/v1/health
Should return: HTTP 200 OK #
`
Webhook Testing:
`bash
Test your webhook endpoint #
curl -X POST https://your-domain.com/webhook \
-H “Content-Type: application/json” \
-d ‘{“test”: “data”}’
Should return: 200 OK #
`
Logging and Monitoring #
Enable Detailed Logging:
- Go to Settings → Developer
- Enable debug logging
- Reproduce issue
- Download logs
- Review for errors
Monitor Call Quality:
- Check call logs regularly
- Track success rates
- Monitor audio quality metrics
- Set up alerts for failures
Review Provider Logs:
- Most providers have call detail records
- Compare with VoxPria logs
- Identify where failures occur
- Cross-reference timestamps
Getting Help #
Before Contacting Support #
Gather this information:
- Trunk Details:
- Trunk ID
- Provider type
- Creation date
- Phone Number:
- Full number (E.164)
- Import date
- Current status
- Call Details:
- Call ID
- Date and time
- Duration
- Error messages
- What You’ve Tried:
- Steps already taken
- Results of each attempt
- Any error codes
- Environment:
- VoxPria plan type
- SIP provider
- Network configuration
Support Channels #
VoxPria Support:
- Email: support@voxpria.com
- Dashboard: Help → Contact Support
- Community: community.voxpria.com
Provider Support:
- ElevenLabs: support@elevenlabs.io
- OpenAI: help.openai.com
- Your SIP provider’s support
Emergency Issues:
- Use “Urgent” priority
- Include impact assessment
- Provide call logs
- Note business impact
Common Error Codes #
SIP Error Codes #
| Code | Meaning | Solution |
|——|———|———-|
| 401 | Unauthorized | Check credentials |
| 403 | Forbidden | Verify permissions |
| 404 | Not Found | Check number exists |
| 408 | Timeout | Network/connectivity issue |
| 480 | Temp Unavailable | Retry later |
| 486 | Busy | Recipient busy, retry |
| 503 | Service Unavailable | Provider issue |
API Error Codes #
| Code | Meaning | Solution |
|——|———|———-|
| 400 | Bad Request | Check request format |
| 401 | Unauthorized | Verify API key |
| 403 | Forbidden | Check plan/permissions |
| 404 | Not Found | Resource doesn’t exist |
| 409 | Conflict | Resource already exists |
| 429 | Rate Limited | Slow down requests |
| 500 | Server Error | Contact support |
Preventive Measures #
Best Practices #
Regular Maintenance:
- Test trunks monthly
- Verify numbers weekly
- Update credentials regularly
- Monitor call quality metrics
Configuration Management:
- Document your setup
- Keep credential backup (secure)
- Note successful configurations
- Track changes
Monitoring:
- Set up alerts for failures
- Monitor success rates
- Track audio quality
- Review logs regularly
Testing:
- Test after any changes
- Use test numbers for new configs
- Validate before production
- Document test results
Avoiding Common Mistakes #
✗ Don’t:
- Skip webhook secret configuration
- Use old ElevenLabs server address
- Import numbers too quickly (rate limits)
- Forget to provision after import
- Use HTTP for production webhooks
✓ Do:
- Use TLS transport in production
- Configure webhook secrets immediately
- Respect rate limits
- Test thoroughly before going live
- Keep credentials secure
Next Steps #
- Review Security Best Practices for production hardening
- Check API Reference for automation options
- Visit FAQ for additional questions
- Join Community Forum for tips
Still having issues? Contact VoxPria support with your diagnostic information for personalized help.
