This is an archived personal project I wrote to download and transcribe voicemails on my VOIP service Voip.ms using "serverless" AWS services including AWS Lambda. Voip.ms now has a built-in transcription feature, so this project is obsolete.
I used this project to test a few things:
- The Voip.ms API (pretty rough)
- AWS CodeStar (worked OK for a personal project like this; I wouldn't want to use it for professional work)
- AWS Transcribe (worked adequately, but the new built-in Voip.MS transcriptions feature is more accurate)
- The strategy of breaking down work into small, single-purpose Lambda functions (more overhead for a small project like this, but easier to monitor and much more robust for a production project)
- AWS CloudWatch Embedded Metrics Format (will be using this everywhere from now on!)
- AWS SAM second try (I wanted to like this but I couldn't - I'll be using AWS CDK for future projects)
I tried to make this as secure as possible, within the limitations of the Voip.ms API.
- Voicemail audio is downloaded from voip.ms via HTTPS instead of delivered by Voip.ms via email
- Transcripts are emailed via PGP-encrypted emails
- If this project had been taken further, voip.ms credentials could have been stored in AWS Secrets Manager or encrypted with KMS if cost were an issue.
Being a personal project, not all "todos" were ever finished and not all best practices were applied, but it did successfully transcribe all my voicemails for about two years.