Skip to main content
This guide covers call recording, transcription, conference calling, speech recognition, text-to-speech, answering machine detection, audio streaming, and number masking.

Call Recording

Record Outbound Calls

Use the record parameter in the Make Call API.

Record Inbound Calls

Use the <Record> XML element in your answer URL response.

Record Both Legs

For calls bridged with <Dial>, use the record attribute on the Dial element.

Recording Storage

  • Recordings stored on Plivo servers
  • Access via API or console
  • Download URLs provided in callbacks

Delete Recordings

Use the Recording API with the recording ID:
DELETE /v1/Account/{auth_id}/Recording/{recording_id}/

Transcription

Plivo can automatically transcribe recordings.
FeatureSupport
LanguagesEnglish only
Other languagesNot transcribed
Blank transcriptionMay occur for short recordings (<19 seconds)

Text-to-Speech (TTS)

Convert text to spoken audio using the <Speak> XML element.

Supported Features

  • Multiple languages and voices
  • SSML markup for pronunciation control
  • Speed and pitch adjustments

Usage

<Response>
  <Speak>Hello, welcome to our service.</Speak>
</Response>
See Speak XML Reference for voice options.

Speech-to-Text (STT) / ASR

Automatic Speech Recognition transcribes caller speech in real-time.

Use Cases

  • IVR systems with voice commands
  • Voice search
  • Transcription during calls

Supported Languages

Check ASR documentation for current language support.

Integration

Configure ASR in your application’s XML response or via streaming.

Answering Machine Detection (AMD)

Detect whether a call is answered by a human or machine (voicemail, IVR).

Detection Types

ResultMeaning
HumanLive person answered
MachineVoicemail or automated system
UnknownDetection inconclusive

Configuration

Enable AMD in the Make Call API with:
  • machine_detection: Enable/disable
  • machine_detection_time: Detection window (ms)
  • machine_detection_url: Callback URL for results

Best Practices

  • Use async mode to avoid call delays
  • Handle “unknown” results gracefully
  • Test with your specific call patterns

Conference Calling

Create multi-party audio conferences.

Create a Conference

Use the <Conference> XML element:
<Response>
  <Conference>MyConference</Conference>
</Response>

Conference Features

FeatureDescription
Mute/UnmuteControl participant audio
HoldPlace participants on hold
RecordingRecord entire conference
CallbacksEvents for join, leave, speak

Manage Conferences

Use the Conference API to:
  • List active conferences
  • Kick participants
  • Mute/unmute members
  • Play audio to conference

Audio Streaming

Stream real-time call audio to external services.

Use Cases

  • Live transcription services
  • Real-time analytics
  • AI/ML processing
  • Custom recording solutions

Setup

Use the <Stream> XML element to connect to a WebSocket endpoint:
<Response>
  <Stream bidirectional="true">wss://your-server.com/audio</Stream>
</Response>

Stream Data

  • Audio format: PCM (configurable)
  • Bidirectional streaming supported
  • Metadata included in stream
See Audio Stream documentation for integration details.

Number Masking (Sessions)

Connect two parties without revealing their phone numbers.

How It Works

  1. Create a session with two parties (Party A and Party B)
  2. Plivo assigns a virtual number
  3. When Party A calls the virtual number, it connects to Party B
  4. Neither party sees the other’s real number

Use Cases

  • Ride-sharing (driver ↔ passenger)
  • Delivery services (courier ↔ customer)
  • Marketplaces (buyer ↔ seller)
  • Dating apps

Session Management

Create and manage sessions via the Sessions API.

Key Parameters

ParameterDescription
virtual_numberPlivo number used as proxy
first_partyPhone number of Party A
second_partyPhone number of Party B
session_expirySession duration
virtual_number_cooloff_periodTime before number can be reused
force_pin_authenticationRequire PIN to connect

Session with Single Party

Create sessions where only one party is defined initially—the second party can be added later.

Update Party Details

Modify party information in active sessions via API.

Costs

Replacing sub-optimal numbers or extending sessions may incur additional charges.

Voice Alerts

Monitor call traffic and application health.

Alert Types

AlertTrigger
Call failure spikeUnusual increase in failed calls
Invalid XMLApplication returning malformed XML
High latencyResponse time exceeds threshold
Traffic anomalyUnusual call patterns

Configure Alerts

  1. Navigate to Voice > Settings > Alerts
  2. Enable alert types
  3. Configure thresholds
  4. Set notification preferences

DTMF

Dual-Tone Multi-Frequency tones for IVR navigation.

Capture DTMF Input

Use the <GetDigits> XML element:
<Response>
  <GetDigits action="/handle-input" timeout="10">
    <Speak>Press 1 for sales, 2 for support.</Speak>
  </GetDigits>
</Response>

Send DTMF

Use the DTMF API to send tones during a call.

Limitations

  • DTMF not supported in China
  • Supported format: RFC-2833