ao2_lock(conference);
+ /* Determine if the new user should join the conference muted. */
+ if (ast_test_flag(&user->u_profile, USER_OPT_STARTMUTED)
+ || (!ast_test_flag(&user->u_profile, USER_OPT_ADMIN) && conference->muted)) {
+ /* Set user level mute request. */
+ user->muted = 1;
+ }
+
/*
* Suspend any MOH until the user actually joins the bridge of
* the conference. This way any pre-join file playback does not
}
}
- /* If the caller should be joined already muted, set the flag before we join. */
- if (ast_test_flag(&user.u_profile, USER_OPT_STARTMUTED)) {
- /* Set user level mute request. */
- user.muted = 1;
- }
-
/* Look for a conference bridge matching the provided name */
if (!(conference = join_conference_bridge(args.conf_name, &user))) {
pbx_builtin_setvar_helper(chan, "CONFBRIDGE_RESULT", "FAILED");
; upon release of the video src.
; admin_toggle_mute_participants ; This action allows an administrator to toggle the mute
- ; state for all non-admins within a conference. All
- ; admin users are unaffected by this option. Note that all
- ; users, regardless of their admin status, are notified
- ; that the conference is muted.
+ ; state for all non-admins within a conference.
+ ; Subsequent non-admins joining a muted conference will
+ ; start muted. All admin users are unaffected by this
+ ; option. Note that all users, regardless of their admin
+ ; status, are notified that the conference is muted when
+ ; the state is toggled.
; participant_count ; This action plays back the number of participants currently
; in a conference