ConfBridge Conference Bridge Example
ConfBridge Conference Bridge Example
ConfBridgeThe Asterisk conference bridge application for multi-party audio conferences, configured with user, bridge, and menu profiles in confbridge.conf. is Asterisk's modern built-in conference bridge. It is the usual choice for staff conference rooms, support bridges, training calls, and small hosted meeting bridges where you want dialplanThe core call-routing configuration of Asterisk, written mostly in extensions.conf as contexts, extensions, and priorities that decide how every call is handled. Full definition → control instead of an external conferencing service.
This example builds a complete bridge with regular users, marked admin users, a DTMFDual-Tone Multi-Frequency, the touch-tone signals phones send for digit input during a call, used by IVRs and feature codes. menu, entry and exit prompts, and optional recording.
Files used
confbridge.conf, bridge, user, and menu profilesextensions.conf, dialplanThe core call-routing configuration of Asterisk, written mostly in extensions.conf as contexts, extensions, and priorities that decide how every call is handled. Full definition → entry points- Optional recording storage under
/var/spool/asterisk/monitor
confbridge.conf
[default_bridge]
type=bridge
max_members=25
record_conference=yes
sound_has_joined=conf-hasjoin
sound_has_left=conf-hasleft
sound_only_person=conf-onlyperson
sound_there_are=conf-thereare
sound_other_in_party=conf-otherinparty
[default_user]
type=user
music_on_hold_when_empty=yes
announce_user_count=yes
announce_only_user=no
wait_marked=no
end_marked=no
quiet=no
[admin_user]
type=user
marked=yes
admin=yes
music_on_hold_when_empty=yes
announce_user_count=yes
wait_marked=no
end_marked=yes
[default_menu]
type=menu
*=playback_and_continue(conf-usermenu)
1=toggle_mute
2=decrease_listening_volume
3=increase_listening_volume
4=decrease_talking_volume
5=increase_talking_volume
9=leave_conference
[admin_menu]
type=menu
*=playback_and_continue(conf-adminmenu)
1=toggle_mute
2=decrease_listening_volume
3=increase_listening_volume
4=decrease_talking_volume
5=increase_talking_volume
6=admin_kick_last
8=admin_toggle_conference_lock
9=leave_conference
Dialplan
[conference]
; Regular participant entry
exten => 7000,1,NoOp(ConfBridge room 7000 user)
same => n,Answer()
same => n,ConfBridge(7000,default_bridge,default_user,default_menu)
same => n,Hangup()
; Admin entry with marked user privileges
exten => 7001,1,NoOp(ConfBridge room 7000 admin)
same => n,Answer()
same => n,Authenticate(1234)
same => n,ConfBridge(7000,default_bridge,admin_user,admin_menu)
same => n,Hangup()
How the profiles fit together
ConfBridge(room,bridge_profile,user_profile,menu_profile) combines three pieces:
- The bridge profile controls the room itself, including maximum members and recording.
- The user profile controls participant behavior, such as whether the user is an admin or marked user.
- The menu profile maps DTMF keys to in-conference actions.
A marked admin is useful when attendees should wait for a host. Set wait_marked=yes for regular users and marked=yes for admins if you want a host-required meeting room.
Recording notes
record_conference=yes records the mixed conference audio. With no record_file in the bridge profile, Asterisk generates a unique filename in its monitor directory. To choose the path yourself, set record_file in the bridge profile or start recording with confbridge record start <conference> <file>. Store recordings on a filesystem with enough space and apply the same retention policy you use for MixMonitor files.
Troubleshooting
- If callers hear silence, confirm that the bridge profile and user profile names match the names in
confbridge.conf. - If DTMF menu keys do nothing, confirm the fourth ConfBridge argument names a menu profile.
- If recordings are missing, check directory permissions for the Asterisk user.
- If users should wait for a host, set
wait_marked=yeson the normal user profile andmarked=yeson the admin profile.
See Also
User Notes
Know a tip or gotcha for this topic? Share it below and help others.
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.