🪣AWS S3 External Storage

Store your call recordings and voicemails in your own AWS S3 bucket instead of Twilio's servers. This gives you full ownership of your audio data, faster playback, and enables HIPAA-compliant workflows for healthcare organizations.
Why Use Your Own S3 Bucket?
Faster Playback
Audio streams directly from S3 to your browser via signed URLs—no middleman
Lower Storage Costs
S3 costs $0.023/GB vs Twilio's $0.0005/min ($0.03/GB at typical bitrates)
Data Ownership
You own the raw audio files in your own AWS account
HIPAA Compliance
Required for healthcare—keeps PHI off third-party servers
Flexible Archival
Use S3 Lifecycle Rules to automatically move old recordings to cheaper storage
How It Works
Call comes in → Twilio records the conversation
Recording ready → Twilio notifies Ring Tonic when recording is available
Migration → Ring Tonic downloads from Twilio and uploads to your S3 bucket
Cleanup → After successful upload, Twilio recording is deleted to avoid double storage costs
You play recordings → Audio streams directly from S3 via secure signed URLs
Setup Guide
Create an S3 Bucket

Log in to AWS Console
Go to S3 → Create bucket (If you cannot find S3, search using the header search bar)
Enter a bucket name (e.g.,
yourcompany-call-recordings)Select your preferred region (e.g.,
us-east-1)Keep Block all public access enabled
Click Create bucket
Create an IAM Policy
First, create a policy that grants access to your bucket.

Go to IAM → Policies → Create policy
Select a service: S3

Click the JSON tab and paste:
Replace
YOUR-BUCKET-NAMEwith your actual bucket name that you created in step 1Click Next → Name it
RingTonicS3Access→ Create policy
Create an IAM User
Now create a user and attach the policy.
Go to IAM → Users → Create user
Enter a name:
ringtonic-s3-access→ Click NextSelect Attach policies directly
Search for
RingTonicS3Accessand check the boxClick Next → Create user
Open the user → Security credentials tab
Click Create access key → Select Third-party service
Click Create access key → Save both keys
Configure Ring Tonic

Go to Workspace Settings → Storage tab
Enable S3 External Storage
Enter your credentials:
Access Key ID: From IAM user
Secret Access Key: From IAM user
Bucket Name: Your S3 bucket name
Region: Must match your bucket (e.g.,
us-east-1)

4. Click Test Connection
5. Click Save
6. After saving, two Deletion Settings toggles appear at the bottom of the tab. Both default to safe values — see Deletion Settings below for what each one does.
Migrate Existing Recordings (Optional)
If you have existing recordings stored in Twilio:
Go to Workspace Settings → Storage tab
Click Migrate Existing Recordings
Migration runs in the background—large accounts may take several hours
Deletion Settings
Once S3 is configured, two independent toggles appear at the bottom of the Storage tab. They control different things — make sure you know which is which.

Delete Twilio copy after migration
Default: ON. Controls what happens to the original Twilio recording once Ring Tonic finishes copying it to your S3 bucket.
ON (recommended)
After a recording is safely on S3, the Twilio copy is deleted. You only pay for storage in one place.
OFF
The recording lives in both Twilio and your S3 bucket. You'll be billed for storage on both sides.
Most people want this ON — it's the whole point of bringing your own bucket. Turn it OFF only if you have a specific reason to keep redundant copies on Twilio (e.g. a compliance policy that mandates dual storage).
Delete S3 files when call logs are deleted
Default: OFF. Controls what happens to the S3 file when you delete a call log inside Ring Tonic.
OFF (default)
Deleting a call log removes it from Ring Tonic only. The recording stays in your S3 bucket — you can still access it directly via AWS.
ON
Deleting a call log also removes the corresponding audio file from your S3 bucket. Files cannot be recovered.
This is unrelated to the toggle above. It's a separate question: "when I delete a call log in my dashboard, should the S3 file go too?" The answer depends on whether you treat S3 as an archive (keep it OFF) or as the single source of truth tied to your dashboard (turn it ON).
HIPAA Compliance
For healthcare organizations handling Protected Health Information (PHI), Ring Tonic's architecture supports HIPAA-compliant workflows.
How We Handle Compliance
Telephony (BAA)
You connect your own Twilio account and execute a BAA directly with Twilio. The transmission layer stays under your legal umbrella.
Call Recordings & Voicemails
With S3 External Storage, recordings are migrated from Twilio to your bucket. After migration, audio is stored only in your S3 bucket.
Database
All call logs and metadata are encrypted at rest.
Storage Costs & Lifecycle Rules
S3 storage is billed directly by AWS.
S3 Standard
~$0.023/GB/month
Instant
Recent recordings (< 90 days)
S3 Glacier Instant
~$0.004/GB/month
Instant
Older recordings (90+ days)
S3 Glacier Deep Archive
~$0.00099/GB/month
12-48 hours
Long-term archival (1+ years)
What Are Lifecycle Rules?
S3 Lifecycle Rules automatically move files to cheaper storage classes as they age. For example:
Day 0-90: Recording stays in S3 Standard (fast access)
Day 91-365: Automatically moves to Glacier Instant (80% cheaper, still instant access)
After 1 year: Moves to Deep Archive (95% cheaper, slower retrieval)
This saves money without manual intervention—old recordings you rarely access cost almost nothing to store.
Common Questions
Last updated

