Plivo Voice + Audio Streaming
Low-cost telephony with bidirectional WebSocket audio streaming included in the call price, supporting 8 kHz mu-law or 16 kHz linear PCM, for connecting your own AI pipeline.
Overview
Best for: Cheapest DIY phone transport for your own AI pipeline, with optional 16 kHz audio.
At a glance
Audio streaming, noise cancellation and recording are included in call price (inbound local $0.0055/min). Free trial terms not verified.
mu-law 8 kHz or L16 8/16 kHz over WebSocket
playAudio events with base64 audio, 8000 or 16000 Hz
Your models.
Not applicable (transport).
Global carrier coverage (not detailed).
Not verified in this research.
Features
- telephony
- audio streaming included
- noise cancellation included
- 16 kHz streams
- free call recording (storage free 90 days)
- AMD at $0
Pricing
| What | Price | Unit |
|---|---|---|
| Inbound local | $0.0055 | per minute |
| Outbound local | $0.0115 | per minute |
| Browser SDK / SIP | $0.0033 | per minute |
| Local number | $0.50 | per month |
| Call recording | $0.00 | per minute |
$0.0055-$0.0115 telephony + your own STT/LLM/TTS ($0.02-$0.09). Not a vendor figure.
Free tier: Not verified.
Source: plivo.com
Setup
- Buy a Plivo number and set its answer URL to an endpoint returning Plivo XML with <Stream>.
- Accept the WebSocket; decode incoming audio; run your pipeline.
- Send playAudio events back; use clearAudio on barge-in and checkpoint to know when playback finished.
Endpoint
Answer URL returning XML; your wss:// server
Authentication
Plivo Auth ID / Auth Token
Quick start javascript
// Plivo answer URL: bidirectional 16 kHz stream to your AI server
import express from "express";
const app = express();
app.all("/answer", (req, res) => {
res.type("application/xml").send(
'<Response>' +
'<Stream bidirectional="true" keepCallAlive="true" ' +
'contentType="audio/x-l16;rate=16000">wss://ai.example.com/plivo</Stream>' +
'</Response>');
});
app.listen(3000);
// On the socket, send audio back as:
// { "event": "playAudio", "media": { "contentType": "audio/x-l16", "sampleRate": 16000, "payload": "<base64>" } }
Written from the current docs. Check the vendor's SDK version before you ship.
Warnings
Default content type is inconsistent in docs
One page says the default is mu-law 8 kHz, the XML reference says L16 8 kHz. Always set contentType explicitly and match sampleRate in playAudio.
keepCallAlive defaults to false
If the stream ends the call hangs up unless keepCallAlive="true".
Bidirectional limits audioTrack
With bidirectional=true, audioTrack cannot be outbound or both.
AI agent product pricing not on this page
Plivo's own AI agent offering was not priced on the voice pricing page; check the AI Agents page or sales.
Plus 12 warnings that apply to all platforms and telephony APIs. See category warnings.
Limits
- Not published in sources reviewed
Models and products
| Name | Status |
|---|---|
| Audio Streaming (<Stream>) | GA |
Docs and sources
Docs
Sources used
- plivo.com/voice/pricing/us/
- docs.plivo.com/docs/voice/xml/the-stream-element
- plivo.com/docs/voice/concepts/audio-streaming/
Free trial terms, concurrency limits, compliance.