graph TD
A[Next.js Frontend] -->|WebSocket| B[Rails Backend]
B -->|HTTP/WebSocket| C[Mini-Omni API]
B -->|SIP| D[FreeSWITCH]
D -->|SIP| E[SIP Client/Phone]
F[User] -->|Audio| E
E -->|Audio| F
D -->|RTP| B
B -->|Audio Stream| C
C -->|Audio Stream| B
graph TD
A[User] -->|Initiates call| B[Next.js Frontend]
B <-->|WebSocket| C[Ruby on Rails Backend]
C <-->|API Calls| D[Mini-Omni LLM API]
C <-->|SIP| E[FreeSWITCH]
E <-->|SIP| F[SIP Client/Phone]
A -->|Receives call| F
Phonify - Simulated Telephony Environment
Overview
Phonify is a simulated telephony environment designed to facilitate the development and testing of the ISS Appointment Setter. It leverages FreeSWITCH to create a mock phone system, allowing for realistic testing of AI-driven conversations without incurring real-world telephony costs. This system integrates with our existing Next.js frontend, Ruby on Rails backend, and the Mini-Omni LLM API to provide a complete end-to-end testing environment for our AI appointment setting service.
User Story
AS A developer working on the ISS Appointment Setter I WANT a simulated phone system that integrates with our AI backend SO THAT I can test and refine our AI-driven appointment setting conversations without incurring real-world call costs
Acceptance Criteria
- FreeSwitch Server - MVP critical, refining, and enterprise-production documentation and files
- Set up Default FreeSWITCH config in Docker
- Integrate FreeSWITCH with Rails backend
- Implement SIP client in Next.js frontend
- Create mock call initiation and receiving interface
- Integrate Mini-Omni processing into mock call flow
- Implement audio streaming between components
- Set up logging and monitoring for mock calls
- Create automated test suite for common conversation scenarios
- Document usage and testing procedures for the team
Important Resources
Before deploying to production
freeswitch virtualization guide ⇐ read before deploying to production cloud
Important claude conversations
freeswitch examples and our app context in a full stack paradigm