I’m reaching out for guidance as I venture into a new telephony setup for my early-stage startup. We automate debt collection through AI-powered phone calls and have relied on providers like Twilio and Vonage for simplicity (e.g., start/end calls via API, audio transmission via WebSocket). However, due to limitations with pricing and advanced features, we are exploring more flexible, cost-effective solutions.
Recently, we connected with a provider offering SIP Trunking, along with parameters for connecting to their system. My goal is to use their SIP Trunk for outbound calls while building a system that integrates with our AI call service through API and WebSocket. In the future, we also hope to implement call recording storage (e.g., on an S3 bucket) and voicemail detection.
After some research, it seems Asterisk could be the right tool, but the learning curve is steep. Any advice on how to set up Asterisk to achieve these goals would be incredibly valuable.
Thank you in advance for any insights or resources you can share!
We’re working on a similar application as you’ve described. We originally used FreePBX, which is a frontend for managing Asterisk. Over time we realized we really didn’t really need most of the FreePBX features. Since all we really needed was a base configuration to build on, we used the generated config files and switched to plain Asterisk and then just made some light changes and used them as templates to build on.
Call recording can be configured in your Dialplan using MixMonitor(). You can either use AGI scripts to push the files to S3 (not sure if this blocks the thread), or just have an external process like lsyncd to watch a directory and push the files to S3.
Remember that an alternative to AGI is FastAGI. That way, instead of Asterisk controlling the creation of your process, you control its management yourself, including the handling of all communication with Asterisk and with any other processes/services/nodes.