Ctrl K
ring2all.com

Conferences Module Documentation

Table of Contents

  1. Module Overview (Technical)
  2. Module Overview (Commercial/Business)
  3. Module Overview (End User/Administrator)
  4. Configuration Fields Reference
  5. Call Flow / Logic Explanation
  6. Common Scenarios & Examples
  7. Limitations & Important Notes
  8. Troubleshooting Tips
  9. Glossary
  10. Suggested UI Improvements

---

1. Module Overview (Technical)

What Are Conferences?

The Conferences module provides audio and video conferencing capabilities within the PBX. It consists of two main components:

  1. Conference Rooms — Virtual meeting spaces with specific extensions, PINs, and behaviors
  2. Conference Profiles — Reusable templates defining audio/video settings and DTMF controls

Architecture

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│                    Conference System                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │              CONFERENCE PROFILES                         │   │
│  │  (Reusable templates for audio/video/DTMF settings)     │   │
│  │  ├─ default                                              │   │
│  │  ├─ video-enabled                                        │   │
│  │  └─ moderator-only                                       │   │
│  └──────────────────────────────────────────────────────────┘   │
│                           │                                     │
│                           ▼                                     │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │              CONFERENCE ROOMS                            │   │
│  │  (Individual meeting spaces)                             │   │
│  │  ├─ Extension: 8000 → Sales Weekly                       │   │
│  │  ├─ Extension: 8001 → Engineering Standup                │   │
│  │  └─ Extension: 8002 → Board Meeting                      │   │
│  └──────────────────────────────────────────────────────────┘   │
│                           │                                     │
│                           ▼                                     │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │              FreeSWITCH mod_conference                   │   │
│  │  ├─ Audio mixing                                         │   │
│  │  ├─ Video layout                                         │   │
│  │  ├─ Recording                                            │   │
│  │  └─ DTMF controls                                        │   │
│  └──────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Key Tables

TablePurpose
public.conferencesConference room definitions (extension, name, settings)
public.conference_profilesReusable profile templates
public.conference_membersActive participants (runtime)
public.conference_recordingsRecording metadata

FreeSWITCH Integration

  • Module: mod_conference
  • Dialplan: Conference extension triggers conference application
  • Commands: conference list, conference [name] kick all, etc.
  • Events: Conference events published via ESL for real-time monitoring

Key Files

FileDescription
admin/apps/api/src/modules/telephony/conferences/services/conferencesService.tsBackend service for rooms
admin/apps/api/src/modules/telephony/conference-profiles/services/conferenceProfileService.tsBackend service for profiles
admin/apps/web/src/modules/conferences/ConferenceFormView.tsxRoom configuration form
admin/apps/web/src/i18n/en/conferences.jsonEnglish translations
admin/apps/web/src/i18n/en/conferenceProfiles.jsonProfile translations
---

2. Module Overview (Commercial/Business)

Business Value

Integrated conferencing eliminates the need for third-party services:

External ServiceBuilt-In Conferences
Monthly fees per user/roomNo additional cost
Separate dial-in numbersUses PBX extensions
Limited integrationFull CDR, recording, presence
Data leaves your networkEverything stays internal

Use Cases

  1. Recurring Team Meetings
- Permanent room with extension 8000

- Wait for moderator to start

- Auto-record for minutes

  1. Customer Calls
- Participant PIN for security

- Announce participant count

- End when moderator leaves

  1. Webinars & Training
- Mute on entry for attendees

- Moderator controls for Q&A

- Video layouts for presentations

  1. Executive Board Meetings
- Separate moderator/participant PINs

- Recording to secure location

- Lock conference after start

Feature Highlights

FeatureBenefit
Moderator PINControl who can start/manage meetings
Wait for ModeratorHold participants in music until host joins
Mute on EntryReduce background noise in large meetings
Video ModesSupport for video conferences with layouts
RecordingAutomatic or on-demand recording
DTMF ControlsParticipants can mute/unmute via keypad
---

3. Module Overview (End User/Administrator)

What Can You Do?

Conference Rooms:
  • Create permanent or scheduled conference rooms
  • Assign extension numbers for dialing
  • Set moderator and participant PINs
  • Configure audio, video, and recording settings

Conference Profiles:
  • Create reusable templates for common settings
  • Define DTMF key mappings (0=mute, #=hangup, etc.)
  • Set default audio quality and video layouts
  • System profiles cannot be deleted

User Workflow

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│                 Creating a Conference Room                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Step 1: Basic Information                                      │
│  ├─ Extension: 8000                                            │
│  ├─ Name: "Weekly Sales Meeting"                               │
│  ├─ Description: "Every Monday 9 AM"                           │
│  └─ Language: English                                          │
│                                                                 │
│  Step 2: Access & Security                                      │
│  ├─ Moderator PIN: 1234                                        │
│  ├─ Participant PIN: 5678                                      │
│  └─ Wait for Moderator: ✓                                      │
│                                                                 │
│  Step 3: Audio & Behavior                                       │
│  ├─ Max Participants: 25                                       │
│  ├─ Mute on Entry: ✓                                           │
│  ├─ Announce Name: ✓                                           │
│  └─ End on Moderator Exit: ✓                                   │
│                                                                 │
│  Step 4: Recording                                              │
│  ├─ Recording Enabled: ✓                                       │
│  ├─ Format: WAV                                                │
│  └─ Announce Recording: ✓                                      │
│                                                                 │
│  Step 5: Save → Extension 8000 is ready                        │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                      Joining a Conference                       │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  User dials 8000                                                │
│      │                                                          │
│      ▼                                                          │
│  "Enter your PIN, followed by pound"                            │
│      │                                                          │
│      ▼                                                          │
│  User enters 1234# (moderator PIN)                              │
│      │                                                          │
│      ├─ If first → Conference starts, music stops               │
│      └─ If not first → Joins existing conference                │
│      │                                                          │
│      ▼                                                          │
│  "There are now 3 people in this conference"                    │
│      │                                                          │
│      ▼                                                          │
│  User is now in the conference                                  │
│      ├─ Press 0 to mute/unmute                                 │
│      ├─ Press # to leave                                       │
│      └─ Press * to access menu                                 │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Quick Tips

TIP
Use Profiles: Create a profile for common settings (audio quality, DTMF keys) and apply it to multiple rooms.
TIP
Moderator PIN Only: If you only set a moderator PIN (no participant PIN), anyone can join but only PIN holders can moderate.
CAUTION
Max Members = 0: A value of 0 means unlimited—be careful with resource usage for large conferences.

---

4. Configuration Fields Reference

Conference Room — Basic Tab

FieldDescriptionExampleNotes
ExtensionDialable number for the conference8000Must be unique
NameIdentifier for the roomSales MeetingUsed in announcements
DescriptionInternal notesWeekly team syncOptional
LanguageAudio prompt languageen-us-emmaAffects all voice prompts
ProfileConference profile to applydefaultInherits profile settings

Conference Room — Access & Security Tab

FieldDescriptionExampleNotes
Moderator PINPIN for moderator access1234Grants control features
Participant PINPIN for regular attendees5678Leave empty for no PIN
Wait for ModeratorHold callers until moderator joinsOn/OffMusic plays while waiting
End on Moderator ExitTerminate when moderator leavesOn/OffKicks all participants
Lock ConferencePrevent new participantsOn/OffManually lockable via DTMF

Conference Room — Audio & Behavior Tab

FieldDescriptionDefaultNotes
Max MembersMaximum participants0 (unlimited)Rejects additional callers
Announce CountSay participant count on joinOn"There are now 5 people..."
Announce NameRecord and play joiner's nameOffPrompts user to say name
Mute on EntryAuto-mute new participantsOffGreat for large meetings
Deaf on EntryBlock audio to new participantsOffAdmin-only use case
Enter SoundAudio when someone joinstoneSet to "none" to disable
Exit SoundAudio when someone leavestoneSet to "none" to disable
Energy LevelVoice activation threshold300Higher = less background noise
Music on HoldAudio while waiting alone$${hold_music}Variable or file path

Conference Room — Recording Tab

FieldDescriptionDefaultNotes
Recording EnabledEnable conference recordingOffCreates audio file
Record FormatAudio file formatWAVWAV, MP3
Recording PathWhere to save files/recordings/With filename template
Announce RecordingTell participants recording is onOnCompliance requirement
On-Demand RecordingAllow moderator to start/stopOffVia DTMF key
Record Moderator OnlyOnly record moderator's audioOffSpecific use cases

Conference Room — Video Tab

FieldDescriptionOptionsNotes
Video ModeVideo handling modeNone, Conference, Mux, TranscodeNone = audio only
Video LayoutHow participants are arrangedGrid, Speaker, FilmstripConfigurable layouts
Video CodecVideo encodingVP8, VP9, H.264Compatibility varies
Video ResolutionQuality level480p, 720p, 1080pBandwidth tradeoff
Max Video ParticipantsVisible video streams4, 9Layout dependent
Record VideoInclude video in recordingOn/OffLarger files

Conference Room — Advanced Tab

FieldDescriptionNotes
Conference FlagsComma-separated behavior flagsmintwo, moderator
Presence IDBLF status identifierAllows phone LEDs to show activity
DTMF Menu KeyKey to access menuDefault:
API ControlAllow ESL/API commandsFor external integrations
Database LoggingLog events to databaseFor CDR/analytics
Conference TimeoutAuto-end after X seconds0 = never
Member TimeoutMax time per participant0 = unlimited

Conference Profile Fields

FieldDescriptionDefaultNotes
RateAudio sample rate (Hz)8000Higher = better quality
ChannelsAudio channels1 (mono)2 = stereo
Comfort NoiseBackground noise during silenceOnPrevents "dead air"
Enter/Exit SoundsJoin/leave audioTonesCustomizable
DTMF KeysKeypad mappings0=mute, #=hangup, etc.Per-digit configuration
---

5. Call Flow / Logic Explanation

Conference Join Flow

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│                   Conference Join Flow                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. User dials conference extension (8000)                      │
│     │                                                           │
│     ▼                                                           │
│  2. Dialplan matches: conference [name] [profile]               │
│     │                                                           │
│     ▼                                                           │
│  3. Check if participant PIN is required                        │
│     ├─ Yes → Prompt for PIN                                     │
│     │        ├─ Correct → Continue                              │
│     │        └─ Wrong → "Goodbye" + Hangup                      │
│     └─ No → Continue                                            │
│     │                                                           │
│     ▼                                                           │
│  4. Check if moderator PIN provided matches                     │
│     ├─ Yes → Mark as moderator                                  │
│     └─ No → Mark as participant                                 │
│     │                                                           │
│     ▼                                                           │
│  5. Check wait_for_moderator flag                               │
│     ├─ Yes + No moderator yet → Play MOH, wait                  │
│     └─ No or Moderator exists → Join conference                 │
│     │                                                           │
│     ▼                                                           │
│  6. Apply member settings                                       │
│     ├─ Mute on entry?                                          │
│     ├─ Deaf on entry?                                          │
│     └─ Announce name?                                          │
│     │                                                           │
│     ▼                                                           │
│  7. Play enter sound / announce count                           │
│     │                                                           │
│     ▼                                                           │
│  8. User is now in conference                                   │
│     ├─ Audio mixed with other participants                      │
│     └─ DTMF controls active                                    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

DTMF Control Reference

KeyDefault ActionBehavior
0Mute/UnmuteToggle microphone
1Volume down (talk)Decrease your mic level
2Volume reset (talk)Reset mic to default
3Volume up (talk)Increase your mic level
4Volume down (listen)Decrease speaker level
5Volume reset (listen)Reset speaker to default
6Volume up (listen)Increase speaker level
7Energy downMore sensitive to voice
8Energy resetDefault sensitivity
9Energy upLess sensitive to voice
Deaf + MuteCan't hear or be heard
#HangupLeave conference
---

6. Common Scenarios & Examples

Scenario 1: Weekly Team Meeting

Setup:

Plaintext
Extension: 8000
Name: Engineering Standup
Moderator PIN: 1234 (team lead)
Participant PIN: (none - anyone can join)
Wait for Moderator: Yes
Mute on Entry: No (small team)
End on Moderator Exit: Yes

Experience:
  • Team members dial 8000, hear music until lead joins
  • Lead enters 1234#, meeting starts
  • When lead hangs up, all participants are disconnected

Scenario 2: Large Webinar

Setup:

Plaintext
Extension: 9000
Name: Product Launch Webinar
Max Members: 200
Moderator PIN: 4567
Participant PIN: 7890
Mute on Entry: Yes
Announce Name: Off
Recording: Enabled

Experience:
  • Attendees join muted (can't interrupt)
  • Moderator can unmute for Q&A
  • Recording saved automatically

Scenario 3: Board Meeting (Secure)

Setup:

Plaintext
Extension: 8888
Name: Board Meeting
Moderator PIN: 9999 (CEO only)
Participant PIN: 1111
Wait for Moderator: Yes
Recording: Enabled (to secure path)
Lock Conference: (manual via DTMF)

Experience:
  • Members wait for CEO
  • CEO can lock conference after all join
  • Recording goes to restricted folder

---

7. Limitations & Important Notes

Technical Limitations

WARNING
Video Conferencing Resources: Video conferences use significant CPU. Plan for ~1 CPU core per 4-6 video participants.
WARNING
Recording Storage: Large conferences can generate significant disk usage. Monitor storage and implement rotation.
IMPORTANT
Codec Compatibility: Not all endpoints support video codecs. VP8 has widest compatibility; H.264 may require licensing.

Best Practices

  1. Use Profiles: Don't duplicate settings across rooms—use profiles
  2. Set Max Members: Prevent resource exhaustion by setting realistic limits
  3. PIN Security: Use different PINs for different access levels
  4. Test Recording: Verify recording path is writable before go-live
  5. Announce Recording: Many jurisdictions require recording notification

Security Considerations

CAUTION
PIN Disclosure: Treat moderator PINs like passwords—they grant control of the conference.
CAUTION
Recording Path: Ensure recording directory has proper permissions and is not publicly accessible.

---

8. Troubleshooting Tips

Common Issues

SymptomPossible CauseSolution
"Conference not found"Extension not in dialplanVerify conference exists and is enabled
Music plays foreverNo moderator + wait_for_moderatorHave moderator join with correct PIN
Recording not createdPath not writableCheck directory permissions
Video not workingProfile video mode = noneEnable video mode in room or profile
DTMF not workingWrong caller_controls profileVerify DTMF mappings in profile
Echo issuesMultiple devices in same roomMute all but one physical device

Diagnostic Commands

Check active conferences:

Bash
fs_cli -x "conference list"

See conference members:

Bash
fs_cli -x "conference 8000 list"

Mute a participant:

Bash
fs_cli -x "conference 8000 mute [member_id]"

Kick all participants:

Bash
fs_cli -x "conference 8000 kick all"

Start/stop recording:

Bash
fs_cli -x "conference 8000 record /path/to/file.wav"
fs_cli -x "conference 8000 stop"

Diagnostic SQL

List conferences:

Sql
SELECT extension, name, enabled, moderator_pin, participant_pin 
FROM public.conferences 
WHERE domain_id = [domain_id]
ORDER BY extension;

Check conference profile:

Sql
SELECT name, is_system, enabled 
FROM public.conference_profiles
WHERE id = [profile_id];

---

9. Glossary

TermDefinition
Conference RoomVirtual meeting space identified by an extension number
Conference ProfileReusable template defining audio/video/DTMF settings
ModeratorParticipant with control rights (entered moderator PIN)
ParticipantRegular attendee (entered participant PIN or no PIN)
Wait for ModeratorHold participants in music until a moderator joins
Mute on EntryAutomatically mute microphone when joining
Deaf on EntryBlock audio to participant (they can't hear)
Energy LevelVoice activation threshold—higher means less sensitivity to quiet sounds
DTMFDual-Tone Multi-Frequency—keypad tones for in-call control
Video LayoutVisual arrangement of participant video streams (grid, spotlight, etc.)
MOHMusic on Hold—audio played while waiting
mod_conferenceFreeSWITCH module providing conferencing functionality
ESLEvent Socket Library—API for external conference control
---

10. Suggested UI Improvements

The i18n tooltips in this module are already comprehensive. Minor enhancements:

FieldSuggested Improvement
maxMembersAdd warning: "0 = unlimited (use with caution)"
energyLevelAdd: "300 is recommended. Lower = more sensitive (picks up noise)"
recordPathAdd: "Ensure path exists and has write permissions"

UX Enhancements

  1. Conference Activity Widget: Show active conferences in dashboard with participant count

  1. Quick Actions: Add "Start Conference" button that dials the extension from WebRTC

  1. Recording Status: Icon in conference list showing if recording is enabled

  1. Profile Preview: When selecting a profile, show summary of key settings

  1. Conflict Detection: Warn if extension conflicts with existing extensions

Profile Wizard

Consider adding a wizard for common profile types:

  • "Audio Only (Low Bandwidth)"
  • "Small Team (Video Enabled)"
  • "Webinar (Presentation Mode)"
  • "Open Room (No Controls)"



Lua Script Status ℹ️

Integration Module

ComponentStatusNotes
Conferencesℹ️ Configuration moduleConference sessions managed natively by FreeSWITCH mod_conference
--- Documentation last updated: January 2026
AI Assistant

👋 Hello! I'm your Ring2All documentation assistant. I can help you find information about configuring and using the Ring2All PBX platform.

How can I help you today?