Open-Source Unified Communications Companion for FreeSWITCH-Based PBX Systems
CrystalQore bridges the gap between your PBX phone system and modern team collaboration. It provides real-time chat, call detail records, fax management, click-to-dial, call pop, presence monitoring, and more -- all in a single, self-hosted web application.
CrystalQore integrates with PBX systems built on FreeSWITCH.
Currently supported:
- FusionPBX (current stable and master branch)
Planned support:
- FS PBX
- Other FreeSWITCH-based platforms
| Module | Description |
|---|---|
| Dashboard | At-a-glance overview of calls, messages, and system status |
| Chat | Real-time 1:1 and group messaging with file sharing, reactions, and threads |
| Call Detail Records | Searchable CDR with filters, export, and call recording playback |
| Call Pop | Real-time screen pop with caller info on incoming and outgoing calls |
| Fax | Send, receive, and manage faxes with PDF preview |
| Click2Dial | One-click dialing from contacts, CDR, or any phone number |
| Presence | Live phone and chat presence across your organization |
| Contacts | Centralized directory synced from your PBX |
| Calendar | Team calendar with event scheduling |
| Notes | Personal and shared notes |
| Unified inbox with Gmail, Outlook, and IMAP account integration | |
| Files | Secure file storage and sharing |
| Desktop App | Electron-based companion with system tray, hotkeys, and native notifications |
- Frontend: Next.js 15 (App Router), React 19, Tailwind CSS, Radix UI
- Backend: Next.js API Routes, Prisma ORM, PostgreSQL
- Real-time: Server-Sent Events for presence and WebRTC signaling
- PBX Integration: Direct PBX database access + FreeSWITCH ESL
- Auth: NextAuth.js with role-based access (Superadmin / Admin / User)
See ARCHITECTURE.md for the full technical deep-dive.
- Node.js 18+ and npm
- PostgreSQL 14+
- A running PBX instance with database access
git clone https://github.com/ClearConverse/crystalqore.git
cd crystalqore
npm installcp .env.example .envEdit .env with your database URL, NextAuth secret, and PBX credentials.
See CONFIGURATION.md for all options.
npx prisma generate
npx prisma migrate deploynpx tsx scripts/create-superadmin.ts# Development
npm run dev
# Production
npm run build && npm startOpen http://localhost:3000 and log in with your superadmin credentials.
Navigate to Superadmin > PBX Instances and add your PBX connection details.
CrystalQore follows an open-core model. The community edition includes everything you need for single-PBX unified communications. Premium plugins extend the platform for enterprise use:
| Plugin | Capability |
|---|---|
| Multi-PBX | Connect and manage multiple PBX instances |
| External API | REST API with key-based access for third-party integrations |
| SMS Gateway | Two-way SMS through Twilio, Vonage, or custom providers |
| Video Meetings | Scheduled and ad-hoc video conferencing |
| AI Assist | Call transcription, sentiment analysis, and smart summaries |
| Advanced Analytics | Dashboards, KPIs, and custom reports |
| Security Suite | Audit logs, IP allowlists, and 2FA enforcement |
| White Label | Full branding control including domain and email templates |
| Enterprise | SLA support, SSO (SAML/OIDC), data retention policies |
Manage plugins at Superadmin > Plugins. Visit clearconverse.com for licensing.
Production deployment guides for PM2, systemd, Nginx, and Docker are in DEPLOYMENT.md.
The Electron-based desktop companion lives in the desktop/ directory. It provides system tray integration, global hotkeys, native notifications, and protocol handlers (tel:, sip:, crystalqore://).
See desktop/README.md for build instructions.
The backend fully supports mobile clients via JWT authentication and Firebase push notifications. We welcome community contributions for a React Native (Expo) mobile app.
See mobile/README.md for the contributor guide and API reference.
We welcome contributions of all kinds -- bug reports, feature requests, documentation improvements, and code. Please read CONTRIBUTING.md before submitting a pull request.
If you discover a security vulnerability, please report it responsibly by emailing [email protected]. Do not open a public issue.
See SECURITY.md for our full security policy.
Copyright 2025-2026 ClearConverse Corporation <[email protected]>
Licensed under the Apache License, Version 2.0. See LICENSE for the full text.
FusionPBX is a trademark of its respective owner. CrystalQore is an independent project and is not affiliated with or endorsed by the FusionPBX project.