ConfBridge Profiles -- User, Bridge, and Menu
ConfBridge Profiles: User, Bridge, and Menu
ConfBridge uses three profile types to control conference behavior: user profiles (per-participant settings), bridge profiles (room-level settings), and menus (DTMF key mappings). These are defined in confbridge.conf and referenced by name in the dialplan.
User Profiles (confbridge.conf)
[default_user]
type = user
admin = no
startmuted = no
announce_user_count = yes
announce_join_leave = yes
music_on_hold_when_empty = yes
music_on_hold_class = default
dtmf_passthrough = no
wait_marked = no
end_marked = no
[admin_user]
type = user
admin = yes
marked = yes
announce_user_count = yes
announce_join_leave = yes
Bridge Profiles (confbridge.conf)
[default_bridge]
type = bridge
max_members = 50
record_conference = no
internal_sample_rate = auto
mixing_interval = 20
video_mode = none
; sound_join = confbridge-join
; sound_leave = confbridge-leave
[recorded_bridge]
type = bridge
max_members = 20
record_conference = yes
record_file_timestamp = yes
mixing_interval = 20
DTMF Menu Profiles (confbridge.conf)
[user_menu]
type = menu
*1 = toggle_mute
*4 = decrease_listening_volume
*6 = increase_listening_volume
*7 = decrease_talking_volume
*9 = increase_talking_volume
*8 = leave_conference
* = playback_and_continue(conf-usermenu)
[admin_menu]
type = menu
*1 = toggle_mute
*2 = admin_toggle_conference_lock
*3 = admin_kick_last
*4 = decrease_listening_volume
*6 = increase_listening_volume
*7 = decrease_talking_volume
*9 = increase_talking_volume
9 = participant_count
Using Profiles in Dialplan
[conferences]
; Basic conference: default user, default bridge, user menu
exten => *85,1,Answer()
same => n,ConfBridge(${EXTEN:1},default_bridge,default_user,user_menu)
same => n,Hangup()
; Admin joins with admin profile and admin menu
exten => *86,1,Answer()
same => n,ConfBridge(${EXTEN:1},default_bridge,admin_user,admin_menu)
same => n,Hangup()
How it works
- ConfBridge(room,bridge_profile,user_profile,menu): All four arguments are optional. If omitted,
default_bridgeanddefault_userare used. The room name can be anything. rooms are created on first join and destroyed when empty. - User profiles:
admin = yesgrants admin privileges (kick users, lock conference).marked = yesdesignates the user as a "marked" participant. Other users withwait_marked = yeswill hear music on hold until a marked user joins. - Bridge profiles:
max_memberscaps the room size.record_conference = yesauto-records from the first join to the last leave.video_modecontrols video distribution (follow_talker,sfufor multi-stream,noneto disable). - Menu profiles: Map DTMF sequences to actions. Actions include
toggle_mute,admin_kick_last,admin_toggle_conference_lock,leave_conference,playback(),dialplan_exec(), and volume controls. playback_and_continue: Plays a prompt while continuing to collect DTMF input. Use this for a "help" key that reads the menu options without interrupting DTMF detection.
Tips
- Enable
dsp_drop_silence = yesin the user profile for large conferences: it cuts CPU usage by not mixing silent participants. - Monitor active conferences:
confbridge listshows all rooms,confbridge list <room>shows participants. - Use
record_file_timestamp = yesto auto-append the start time to recording filenames, preventing overwrites. - For WebRTC video conferencing, set
video_mode = sfu(Selective Forwarding Unit) on the bridge profile and ensure endpoints allow video codecs (VP8/VP9/H.264). - The
dialplan_exec(context,exten,priority)menu action lets participants escape to the dialplan temporarily (e.g., to check voicemail) and return to the conference. - Reload conference profiles:
module reload app_confbridge.so.
User Notes
No notes yet. Be the first to contribute a tip or example.
Contribute a note
Share a tip, gotcha, or practical example. Keep it under 2000 characters. No questions (use the Asterisk community forums for support). Wrap code in backticks.