BTConference Documentation
Self-hosted video meetings, bookings, polls, collaborative notes, and more for any PHP website. Powered by JaaS.
Overview
BTConference is a standalone, self-hosted PHP application that brings video meetings, bookings, polls, and collaborative notes to any website. Unlike WPConference (which requires WordPress), BTConference runs on any server with PHP and MySQL — no CMS needed.
It uses Jitsi Meet (via JaaS / 8x8.vc) as the video engine — completely free with no per-host fees, no per-minute charges, and no credit card required. Upload the files, run the installer, and you have a full-featured meeting platform.
8x8.vc. You need a free JaaS account (25 free monthly active users). Sign up here.
Key Features
- Instant & scheduled meetings with room designer and custom themes
- Booking system with availability schedule, Stripe and PayPal payments
- Live polls and collaborative notes during meetings
- Calendar sync with .ics downloads for Google, Outlook, and Apple Calendar
- SMTP email for invitations, confirmations, and reminders
- Theme customizer and custom branding
- Desktop app (Electron, Windows) and PWA mobile support
- Own user system — no WordPress accounts needed
Installation
BTConference includes a one-click web installer. No command-line access required.
Requirements
- PHP 7.4 or higher
- MySQL 5.7+ or MariaDB 10.3+
- A web server (Apache, Nginx, LiteSpeed, etc.)
- HTTPS recommended for video/audio permissions
Steps
- Download the BTConference ZIP from your account dashboard
- Extract and upload the files to your server (e.g.,
/btconference/or the root) - Visit
yourdomain.com/btconference/install.phpin your browser - Enter your database host, name, username, and password
- Set your admin username, email, and password
- Click Install — the installer creates all tables and your admin account
- Delete
install.phpafter installation for security
install.php file from your server to prevent unauthorized re-installation.
JaaS Setup (Required)
- Go to jaas.8x8.vc and create a free account
- Your App ID is shown on the dashboard (e.g.,
vpaas-magic-cookie-xxxxxxxx) - Click Add API Key to generate a key pair
- Copy the API Key ID (just the short ID, not the full string)
- Download the Private Key file (.pk)
- In BTConference: Settings › JaaS Configuration — paste App ID, API Key ID, and private key contents
- Click Save
Dashboard
After logging in, the dashboard shows:
- Stats cards — total meetings, upcoming meetings, total bookings, and registered users
- Recent meetings — list of the last 10 meetings with status and join links
- Instant Meeting button — one click to start a meeting immediately
- Quick actions — links to create a meeting, view bookings, manage users, and settings
Creating Meetings
Go to Meetings › Create Meeting from the admin panel. You can configure:
- Title — the meeting name shown to participants
- Password — optional password required to join
- Schedule — set a date and time for future meetings
- Recurrence — daily, weekly, or monthly repeating meetings with optional end date
- Invite participants — enter email addresses to send invitation emails with join links and .ics calendar files
- Room Designer — customize the meeting room appearance
Room Designer
Check "Customize room appearance" to open the Room Designer:
- Theme Presets — one-click themes like Midnight, Ocean, Sunset, Forest, Slate, Corporate
- Custom Colors — toolbar color, accent color, background color with live preview
- Scene Backgrounds — photo backgrounds (Beach, Tropical, Ocean, Mountains, etc.)
- Gradient Backgrounds — gradient presets
- Room Logo — per-meeting logo
- Welcome Message — banner shown when participants first join
Meeting Room
The meeting room runs full-screen with Jitsi Meet embedded. The toolbar provides quick access to meeting features:
- Copy Link — copy the meeting join URL to clipboard for sharing
- Calendar — download a .ics file to add the meeting to your calendar
- Polls — create and launch live polls during the meeting
- Notes — open the shared collaborative notes panel
- Fullscreen — toggle fullscreen mode
- Leave — end or leave the meeting
Participants join via a direct link: yourdomain.com/btconference/meeting/room-id. No downloads or accounts needed — works in Chrome, Firefox, Edge, and Safari.
Meeting Agenda
Create a structured agenda when scheduling a meeting. Add numbered items to keep your meeting on track and ensure all topics are covered.
Creating an Agenda
When creating or editing a meeting, you will see an Agenda section. Click "Add Item" to add agenda items. Items are automatically numbered and can be reordered or removed before saving.
During the Meeting
Click the Agenda button in the meeting toolbar to open the agenda sidebar panel. Each item appears as a checkbox that any participant can check off as topics are completed. Progress is synced across all participants in real time.
In Invite Emails
When you invite participants by email, the agenda is automatically included in the invitation so attendees can prepare in advance.
Calendar Sync
BTConference generates .ics calendar files for every meeting. These work with:
- Google Calendar — click the .ics link to auto-add
- Microsoft Outlook — open the .ics file to import
- Apple Calendar — click to add on macOS or iOS
Calendar files are included in invitation emails and available as a download button in the meeting details. For scheduled meetings, the .ics file includes the correct date, time, duration, title, and join link.
Action Items
Create tasks during meetings and track them to completion. Action items keep your team accountable by turning discussion points into trackable tasks.
Creating Tasks
Click the Tasks button in the meeting toolbar to open the action items panel. Add a task by entering a title and optionally assigning it to a participant. Tasks are synced across all participants in real time.
During the Meeting
All participants see the shared task list. Items appear as a checkable list that anyone can mark as complete. New tasks can be added at any time during the meeting.
Dashboard Tracking
After the meeting, all action items appear on the admin dashboard. Filter by pending or completed status to see what still needs attention. Each task shows its title, assignee, and completion state.
Meeting Timer
Every meeting includes a visible countdown timer in the toolbar so participants always know how much time is left.
How It Works
- The timer appears in the meeting toolbar and counts down the remaining time
- Default duration is 60 minutes (configurable when creating a meeting)
- Color shifts from green to orange to flashing red as time runs out
- When the timer reaches zero, a "Time's up!" alert is displayed
Meeting Analytics
BTConference automatically tracks meeting activity and presents key metrics on the admin dashboard. No configuration needed — analytics begin recording as soon as participants join.
What's Tracked
- Attendance — automatic participant logging when users join a meeting
- Duration — average meeting duration across all meetings
- Peak Hours — chart showing which hours of the day have the most meetings
- Most Active Rooms — rooms ranked by total participants and meeting count
- Recent Participants — list of the latest participants with join timestamps
How It Works
When a participant joins a meeting, BTConference logs their name, email (if available), and join time. A real-time heartbeat keeps the participant list accurate by detecting when users leave. All data is displayed on the Analytics tab in the admin panel.
Participant Tracking
Click the participant count on any meeting in the admin meetings table to open the full participant detail view for that meeting.
Stats Cards
- Total Joins — the total number of times participants joined the meeting (includes rejoins)
- Unique Participants — distinct participants based on identity
- Avg Duration — average time each participant spent in the meeting
- Longest Session — the single longest participant session
Participant Table
The detail view shows a table of every participant who joined the meeting. Each row includes:
- Name and email (if available)
- Masked IP — IP addresses are partially masked for privacy (e.g.,
192.168.*.***) - Join time and duration
- Status — a green dot indicates the participant is currently active in the meeting
SMS Notifications
BTConference can send meeting reminders and booking confirmations via SMS using Twilio. You bring your own Twilio account — BTConference connects to it.
Setup
- Create a free account at twilio.com and get a phone number
- In BTConference: Settings › SMS Notifications (Twilio)
- Enter your Account SID, Auth Token, and Twilio Phone Number
- Enable SMS for meeting reminders and/or booking confirmations
- Click Send Test SMS to verify your setup
How It Works
- When SMS is configured, a phone number field appears on the public booking form (optional)
- Customers who enter their phone number receive text messages for booking confirmations and meeting reminders
- Works with any Twilio phone number — local, toll-free, or short code
Webhooks
BTConference can send real-time notifications to external services when key events occur. Webhooks POST JSON payloads to a URL you configure, with HMAC-SHA256 signatures for security.
Setup
- Go to Settings
- Enter your Webhook URL — the endpoint that will receive POST requests
- Enter a Webhook Secret — used to generate the HMAC-SHA256 signature
- Click Save
Event Types
- meeting.created — fired when a new meeting is started or scheduled
- meeting.ended — fired when a meeting ends
- booking.created — fired when a booking is made through the booking system
Payload Format
Each webhook sends a JSON payload via HTTP POST:
HMAC-SHA256 Signature
Every webhook request includes a X-BTConference-Signature header containing an HMAC-SHA256 hash of the request body, signed with your webhook secret. Verify this on your server to ensure the request is authentic.
Test Webhook
After configuring your URL and secret, click the Test Webhook button in Settings to send a test payload and verify your endpoint is receiving requests correctly.
REST API
BTConference includes a REST API that lets you connect your meetings, bookings, tasks, and analytics to external tools like Zapier, Make.com, or any custom integration. All endpoints use API key authentication and return JSON.
Generating an API Key
- Go to Settings
- Scroll to the REST API section
- Click Generate API Key
- Copy the key and store it securely — it is shown only once
Authentication
Include your API key as a Bearer token in the Authorization header:
Endpoints
All endpoints are relative to your BTConference installation URL: https://example.com/btconference/api/v1/
- GET /api/v1/meetings — list all meetings
- POST /api/v1/meetings — create a new meeting
- GET /api/v1/meetings/{id} — get a single meeting
- GET /api/v1/bookings — list all bookings
- POST /api/v1/bookings — create a new booking
- GET /api/v1/bookings/{id} — get a single booking
- GET /api/v1/participants — list participants across meetings
- GET /api/v1/participants/{meeting_id} — list participants for a specific meeting
- GET /api/v1/tasks — list all action items
- POST /api/v1/tasks — create a new action item
- GET /api/v1/tasks/{id} — get a single action item
- GET /api/v1/stats — get meeting analytics summary
Example: List Meetings
Example: Create a Meeting
Rate Limiting
The API is rate-limited to 60 requests per minute per API key. If you exceed this limit, the API returns a 429 Too Many Requests response with a Retry-After header indicating how many seconds to wait.
Team Members
BTConference includes a built-in team system so you can add other users and control what they can access. The Team page is available in the admin sidebar (admin users only).
Managing Team Members
From the Team page you can add, edit, and delete team members. Each member has a name, email, password, and a role that determines their access level.
Roles
- Admin — full access to all features: meetings, bookings, settings, analytics, team management, and theme customization
- Host — can create and manage meetings, start instant meetings, and invite participants. Cannot access settings, analytics, or team management
- Viewer — can join meetings only. Cannot create, edit, or delete meetings. Cannot access any admin pages except the meeting room
Role-Based Restrictions
Pages in the admin sidebar are shown or hidden based on the user's role. Hosts see the Dashboard, Meetings, and Bookings pages. Viewers see only the Dashboard with their upcoming meetings. Admins see everything including Settings, Analytics, and Team.
User Registration
BTConference supports public user registration so visitors can create their own accounts without being manually added by an admin.
Enabling Registration
Go to Settings and toggle Enable Public Registration to on. When enabled, the login page displays a "Create an account" link that takes visitors to the registration form. When disabled, the link is hidden and the registration page returns users to login.
Registration Form
The public registration form collects a name, email, and password. After submitting, the user is logged in automatically and redirected to the dashboard.
Default Role
All users who register through the public form are assigned the viewer role by default. Viewers can join meetings but cannot create, edit, or delete them. An admin can promote a user to host or admin from the Team page.
My Meetings
Registered users see a My Meetings page on their dashboard that shows:
- Hosted meetings — meetings the user created (if promoted to host or admin)
- Participations — meetings the user has joined as a participant
- Bookings — meetings the user booked through the public booking page
Bookings
BTConference includes a public booking page where clients can schedule meetings with you.
Setup
- Go to Settings › Bookings
- Set your Availability Schedule — choose which days and hours you are available
- Set Slot Duration (15, 30, 45, 60, or 120 minutes) and buffer time between slots
- For paid bookings: enter your Stripe publishable/secret keys and/or PayPal client ID/secret
- Share your booking page URL with clients
How Bookings Work
Clients visit the booking page, select a date from the calendar, pick an available time slot, and enter their name and email. For free bookings, the meeting is created instantly and a confirmation email is sent. For paid bookings, the client is redirected to Stripe Checkout or PayPal, and the meeting auto-creates on successful payment.
Polls & Notes
Live Polls
Click Polls in the meeting toolbar. The host creates a poll with a question and 2-6 answer options, then clicks "Launch Poll." All participants can vote, and results update live with animated bar charts.
- Polls sync across all participants in real time
- Close a poll to lock voting and display final results
- Poll results are saved and accessible from the admin panel after the meeting
Collaborative Notes
Click Notes in the meeting toolbar to open the shared notes panel. All participants see and edit the same document in real-time. Notes auto-save when the meeting ends and are accessible from the meeting details in the admin panel.
Dark/Light Mode
BTConference includes a dark/light mode toggle in the admin panel header. Click the moon/sun icon to switch between dark and light themes instantly. Your preference is saved to your browser and persists across sessions.
Meeting Templates
Save your Room Designer settings as reusable templates so you can quickly apply them when creating new meetings.
- Save Template — after configuring the Room Designer, click "Save as Template" and give it a name. All theme, color, background, logo, and welcome message settings are stored.
- Load Template — when creating a new meeting, select a saved template from the "Load Template" dropdown to apply all its settings instantly.
- Delete Template — remove templates you no longer need from the template dropdown menu.
Settings
Configure BTConference from the Settings page:
JaaS Configuration
- Jitsi Server — defaults to
8x8.vc(JaaS) - App ID — your JaaS application ID
- API Key ID — the short key ID from your JaaS dashboard
- Private Key — contents of the .pk file downloaded from JaaS
Meeting Defaults
- Start with Audio Muted / Start with Video Off
- Pre-join Screen — preview audio/video before entering
- Default meeting duration
Booking Settings
- Availability schedule — days and hours
- Slot duration and buffer time
- Booking price (0 for free bookings)
SMTP Email
- SMTP Host, Port, Username, Password
- Encryption — TLS or SSL
- From Name and From Address
- SMTP passwords are stored encrypted in the database
Payment Keys
- Stripe — publishable key and secret key
- PayPal — client ID and secret (sandbox or live)
Theme Customization
- Primary color, accent color, background color
- Font family selection
- Dark/light mode preference
Email Templates
- Meeting invitation — sent when inviting participants
- Booking confirmation — sent after a booking is made
- Meeting reminder — sent before a scheduled meeting
- Templates support variables like
{meeting_title},{join_link},{date},{time}
Site Branding
- Site title and tagline
- Logo upload — shown in the header, emails, and meeting rooms
- Favicon upload
License
BTConference requires a valid license key to operate. Your license key is included in the order confirmation email sent after purchase, and is also available in your account dashboard.
Activating Your License
- Log in to BTConference as an admin
- Go to Settings and scroll to the License section at the bottom
- Enter your license key and click Activate
- A green Active badge confirms the license is valid
Deactivating Your License
To move your license to a different server, click Deactivate in the License section. This releases the domain so you can activate on a new install. Only admin users can see or manage the license.
One-Click Updates
BTConference checks for new versions automatically and notifies you right inside the dashboard — no FTP, no manual file uploads required.
How It Works
- When a new version is available, a yellow pulsing button appears in the top navigation bar showing the new version number
- A yellow banner also appears below the header as a secondary notice
- Click the button and confirm to start the update
- BTConference downloads the update package, extracts it, and copies the new files over your installation automatically
- Your config.php, uploads, and license files are never overwritten during an update
Protected Files
The following files and folders are always skipped during an update to preserve your configuration and data:
includes/config.php— your database credentials and site settingsuploads/— all uploaded files and mediaincludes/.license-data.json— your license key
Desktop App
BTConference includes standalone desktop applications for Windows and macOS. No browser needed — meetings run in a native window.
Download & Install (Windows)
- Download the BTConference Desktop app for Windows from your account downloads
- Extract the ZIP and run Setup.exe
- Click Install — creates shortcuts and registers the app
- Launch from your Desktop shortcut
- Go to Settings and enter your JaaS App ID
Download & Install (Mac)
- Download the BTConference Desktop app for Mac from your account downloads
- Double-click the downloaded file to extract
- Drag BTConference.app to your Applications folder
- Launch and go to Settings to enter your JaaS App ID
Features
- Native window — full video meetings without a browser
- System tray — minimize to tray, right-click for quick meeting
- Keyboard shortcuts — Ctrl+N (new), Ctrl+J (join), Ctrl+, (settings)
- Meeting history — recent meetings with one-click rejoin
- Desktop notifications — alerts when meetings start
- Auto-launch — optional start on system boot
Mobile App (PWA)
BTConference also works as a Progressive Web App on mobile devices. When participants visit a meeting link on their phone, they can install the app to their home screen. It opens in a standalone window like a native app.
- Works on Android (Chrome) and iOS (Safari — Add to Home Screen)
- No app store needed — installs directly from the browser
- Runs in a standalone window without browser UI
Security
BTConference includes several security measures out of the box:
- .htaccess protection — configuration files and sensitive directories are protected from direct access
- Rate limiting — login attempts and API calls are rate-limited to prevent brute-force attacks
- CSRF tokens — all forms include CSRF protection to prevent cross-site request forgery
- Encrypted SMTP passwords — SMTP credentials are stored encrypted in the database, not in plain text
- Password hashing — user passwords are hashed with bcrypt
- Prepared statements — all database queries use prepared statements to prevent SQL injection
- XSS protection — all user output is escaped to prevent cross-site scripting