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


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

Questions to answer