Seamlessly Store VitalPBX Call Recordings in Amazon S3

Efficient management of call recordings has become a cornerstone for businesses leveraging VoIP systems.

This comprehensive guide unveils a game-changing solution for VitalPBX users: configuring s3fs to seamlessly store Asterisk call recordings directly in Amazon S3.

By harnessing the power of cloud storage, this integration offers unparalleled scalability, robust reliability, and optimized cost-effectiveness.

Whether you’re a small business looking to streamline operations or a large enterprise aiming to enhance data management, this step-by-step tutorial will empower you to elevate your VitalPBX system to new heights of efficiency and accessibility.

Why Use Amazon S3 for Call Recordings?

  • Scalability: S3 provides virtually unlimited storage capacity.
  • Durability: Amazon S3 is designed for 99.999999999% durability.
  • Cost-effective: Pay only for the storage you use.
  • Accessibility: Access your recordings from anywhere with an internet connection.

Step-by-Step Configuration Guide

1. Install s3fs-fuse

First, we need to install the s3fs-fuse package, which allows us to mount an S3 bucket as a local filesystem:

				
					sudo apt update
sudo apt install s3fs
				
			

2. Set Up AWS Credentials

Create a credentials file with your AWS Access Key and Secret Key:

1. Create a password file to store AWS credentials (only accessible to root): 

				
					sudo echo 'ACCESS_KEY:SECRET_KEY' > /root/.passwd-s3fs
sudo chmod 600 /root/.passwd-s3fs
				
			

Replace `ACCESS_KEY` and `SECRET_KEY` with your AWS credentials. 

3. Create the Mount Point

Create a directory where the S3 bucket will be mounted. 

				
					sudo mkdir -p /mnt/s3bucket/
				
			

4. Mount the S3 Bucket

Use s3fs to mount your S3 bucket:

Replace `YOUR_BUCKET_NAME` and `YOUR_REGION` with your S3 bucket name and AWS region. 

				
					sudo s3fs YOUR_BUCKET_NAME /mnt/s3bucket -opasswd_file=/root/.passwd-s3fs -ourl=https://s3.YOUR_REGION.amazonaws.com -o allow_other -ouse_cache=/tmp
				
			

5. Set Up Symlink for Asterisk Recordings

Create a symbolic link for Asterisk to access recordings from the S3-mounted directory:

1. Create the monitor folder in your bucket

				
					mkdir -p /mnt/s3bucket/monitor/ 
				
			

2. Backup existing recordings

				
					mv /var/spool/asterisk/monitor/* /mnt/s3bucket/monitor/ 
				
			

3. Remove any existing directory at the target location after backing up the recordings:

				
					sudo rm -rf /var/spool/asterisk/monitor 
				
			

4. Create the symbolic link to the S3 bucket:

				
					sudo ln -s /mnt/s3bucket/monitor /var/spool/asterisk/monitor 
				
			

6. Set Proper Permissions

Ensure `asterisk` has the necessary permissions to read and write to the S3-mounted directory. 

				
					sudo chown -R asterisk:asterisk /mnt/s3bucket/monitor
sudo chmod -R 770 /mnt/s3bucket/monitor
				
			

7. Configure Auto-mounting (Optional)

For automatic mounting on system boot, add this line to /etc/fstab:

1. Open /etc/fstab: 

				
					sudo nano /etc/fstab 
				
			

2. Add the following line (replacing placeholders with your values):

				
					s3fs#YOUR_BUCKET_NAME /mnt/s3bucket fuse_netdev,allow_other,passwd_file=/root/.passwd-s3fs,url=https://s3.YOUR_REGION.amazonaws.com,use_cache=/tmp 0 0
				
			

8. Verify the Setup

Restart Asterisk and test recording functionality to confirm files are stored in /mnt/s3bucket/monitor. 

				
					sudo systemctl restart asterisk
				
			

Conclusion

By following this guide, you’ve successfully configured your VitalPBX system to store call recordings in Amazon S3. This setup offers improved scalability, reliability, and accessibility for your call recordings, allowing your business to manage its communication data more effectively.

Remember to regularly check your S3 bucket usage and implement appropriate lifecycle policies to manage your storage costs efficiently. Happy recording!

Our Latest Post