Skip to content

ClearConverse/crystalqore

CrystalQore

CrystalQore

Open-Source Unified Communications Companion for FreeSWITCH-Based PBX Systems

License Node.js Next.js PRs Welcome


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.

Supported PBX Systems

CrystalQore integrates with PBX systems built on FreeSWITCH.

Currently supported:

  • FusionPBX (current stable and master branch)

Planned support:

  • FS PBX
  • Other FreeSWITCH-based platforms

Features

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
Email 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

Architecture

  • 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.

Quick Start

Prerequisites

  • Node.js 18+ and npm
  • PostgreSQL 14+
  • A running PBX instance with database access

1. Clone and install

git clone https://github.com/ClearConverse/crystalqore.git
cd crystalqore
npm install

2. Configure environment

cp .env.example .env

Edit .env with your database URL, NextAuth secret, and PBX credentials. See CONFIGURATION.md for all options.

3. Initialize the database

npx prisma generate
npx prisma migrate deploy

4. Create the superadmin account

npx tsx scripts/create-superadmin.ts

5. Start the application

# Development
npm run dev

# Production
npm run build && npm start

Open http://localhost:3000 and log in with your superadmin credentials.

6. Connect your PBX

Navigate to Superadmin > PBX Instances and add your PBX connection details.

Plugin Marketplace

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.

Deployment

Production deployment guides for PM2, systemd, Nginx, and Docker are in DEPLOYMENT.md.

Desktop Application

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.

Mobile Application

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.

Contributing

We welcome contributions of all kinds -- bug reports, feature requests, documentation improvements, and code. Please read CONTRIBUTING.md before submitting a pull request.

Security

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.

License

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.

About

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.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages