Skip to main content

Welcome to OPBX

OPBX is an open-source, multi-tenant business PBX platform built on top of the Cloudonix CPaaS. It provides a complete phone system for organizations of any size, combining a Laravel 12 backend, a React 18 frontend, a Go dialer worker for outbound campaigns, and a Java/Vert.x 5 AMD worker for stream-based voicemail detection.

Key Features

  • Multi-tenant organizations with complete data isolation between tenants
  • Role-based access control supporting Owner, PBX Admin, PBX User, and Reporter roles
  • Extension management with automatic Cloudonix SIP subscriber synchronization
  • DID phone number routing to extensions, ring groups, IVRs, business hours, conference rooms, AI assistants, and AI load balancers
  • Ring groups with simultaneous, round-robin, and sequential distribution strategies
  • IVR menus supporting audio files, remote URLs, and text-to-speech prompts
  • Business hours with weekly schedules, holiday exceptions, and timezone support
  • Conference rooms with optional PIN protection, host controls, and recording
  • AI assistants with registry-based provider configuration (SIP and WebSocket protocols)
  • AI load balancers for distributing calls across multiple AI providers with follow-through failover
  • Auto Dialer for outbound campaigns with CAC/CPS rate limiting, scheduling, AMD, and retry logic
  • Call recordings and CDR reporting for compliance and analysis
  • Inbound blacklist and outbound whitelist for call security
  • Real-time call monitoring with live call tracking and WebSocket updates
  • Call notifications with per-organization webhook configuration, event filtering, and retry logic
  • Platform management tools for service providers hosting multiple organizations

Architecture Overview

The browser interacts with a React single-page application served through Nginx. API requests route to the Laravel backend, which manages data in MySQL, caches state in Redis, and stores files in MinIO. Real-time updates flow through Soketi. All VoIP functionality delegates to Cloudonix CPaaS via REST API and webhooks. The Go dialer worker executes outbound campaigns, and the Java AMD worker analyzes audio streams for voicemail detection.

Technology Stack

ComponentTechnologyPurpose
BackendLaravel 12 (PHP 8.4)REST API and business logic
FrontendReact 18 + TypeScriptUser interface
DatabaseMySQL 8Persistent data storage
Cache/QueueRedis 7Caching, sessions, job queues, locks
StorageMinIOS3-compatible object storage for recordings
Real-timeSoketi WebSocketLive updates and notifications
VoIPCloudonix CPaaSCall handling and SIP services
DialerGo WorkerOutbound campaign execution
AMDJava/Vert.x 5 WorkerStream-based voicemail detection

Role Hierarchy

OPBX implements a hierarchical permission system. Each user belongs to exactly one organization and has one of the following roles:

RoleDescriptionKey Capabilities
OwnerOrganization creatorFull access to all features, can manage all users including other owners, configure system-wide settings
PBX AdminSystem administratorManage extensions, routing rules, users (except owners), view all reports
PBX UserRegular userView assigned resources, update own extension settings, view personal call history
ReporterRead-only accessView call logs, generate reports, access dashboards without modification rights
Role Assignment

Only Owners can assign the Owner role. PBX Admins cannot create or modify other PBX Admins or Owners.

API Documentation

The OPBX REST API is documented with OpenAPI 3.1.0. You can explore the endpoints at the OPBX REST API reference.

Quick Start

Ready to get started? Follow these steps:

  1. Install OPBX using Docker Compose
  2. Complete your first login and organization setup
  3. Configure Cloudonix integration for telephony
  4. Learn the core concepts before configuring your PBX
New to PBX Systems?

If you are unfamiliar with PBX terminology, start with the Core Concepts guide. It explains extensions, DIDs, ring groups, and other essential concepts you will need to configure your phone system.