# Attendee cannot unmute

**URL:** <https://devforum.zoom.us/t/attendee-cannot-unmute/5806>\
**Category:** iOS\
**Created:** [September 6, 2019, 3:24pm UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806 "2019-09-06T15:24:04Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![xiao.yao](https://avatars.discourse-cdn.com/v4/letter/x/3ab097/32.png) [@xiao.yao](https://devforum.zoom.us/u/xiao.yao)\
**Post date:** [September 6, 2019, 3:24pm UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/1 "2019-09-06T15:24:04Z")

</div>

Hi,

I wanted to get some clarity about some of the API on the MobileRTCMeetingService class when using custom UI.

As a host, I disable all user audio and prevent users from starting audio (muteAllUserAudio:NO). I then enable all user audio using unmuteAllUserAudio. At this point, should a participant be able to enable audio from their app? Currently an alert displays with the message: You cannot unmute yourself because the host muted all attendees.

**Which version?**  
4.4.55183.0725

**Smartphone (please complete the following information):**

- Device: iPad Pro
- OS: iOS 12.4.1

---

<div class="post-metadata">

**Author:** ![carson.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/carson.zoom/32/785_2.png) [@carson.zoom](https://devforum.zoom.us/u/carson.zoom)\
**Post date:** [September 6, 2019, 6:58pm UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/2 "2019-09-06T18:58:27Z")

</div>

Hi Xiao,

Thanks for the post. I will verify this behavior and get back to you as soon as possible.

Thanks

---

<div class="post-metadata">

**Author:** ![xiao.yao](https://avatars.discourse-cdn.com/v4/letter/x/3ab097/32.png) [@xiao.yao](https://devforum.zoom.us/u/xiao.yao)\
**Post date:** [September 10, 2019, 2:38pm UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/3 "2019-09-10T14:38:09Z")

</div>

Hi Carson,

Were you able to verify this behavior?

Thanks,  
Xiao

---

<div class="post-metadata">

**Author:** ![carson.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/carson.zoom/32/785_2.png) [@carson.zoom](https://devforum.zoom.us/u/carson.zoom)\
**Post date:** [September 11, 2019, 12:53am UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/4 "2019-09-11T00:53:56Z")

</div>

Hi Xiao,

Thanks for the reply. When the host unmutes all participants, any participant should be able to mute/unmute themselves. I tried the scenario you described with our demo app but I am not able to reproduce this behavior. The demo app(in Custom UI mode) is using the Zoom’s default participant UI so I will need to further verify this behavior with the non-default participant UI. Could you have a try with our demo app and see if the problem occurs as well?

Thanks!

---

<div class="post-metadata">

**Author:** ![xiao.yao](https://avatars.discourse-cdn.com/v4/letter/x/3ab097/32.png) [@xiao.yao](https://devforum.zoom.us/u/xiao.yao)\
**Post date:** [September 11, 2019, 11:28am UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/5 "2019-09-11T11:28:21Z")

</div>

Hi Carson -

I was not able to start a meeting using the demo application, but I did use the Zoom application. This does not occur. Please do let me know if there is a specific implementation detail for the non-default participant UI that needs to happen.

Thanks,  
Xiao

---

<div class="post-metadata">

**Author:** ![carson.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/carson.zoom/32/785_2.png) [@carson.zoom](https://devforum.zoom.us/u/carson.zoom)\
**Post date:** [September 12, 2019, 12:37am UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/6 "2019-09-12T00:37:34Z")

</div>

Hi Xiao,

Thanks for the reply. We are using a similar implementation like the following in our demo:

```auto
[meetingService muteAlluserAudio:NO]
[meetingService unmuteAllUserAudio]

```

This implementation is not done explicitly in our demo app, but the methods that have been called to mute/unmute in the default participant UI is exactly the same as the above methods. I tried to implement the above 2 method in our demo app and try to reproduce this issue, but I am not able to reproduce this.

The message “You cannot unmute yourself because the host muted all attendees” is not implemented in our demo app under Custom UI mode([https://github.com/zoom/zoom-sdk-ios/blob/master/MobileRTCSample/MobileRTCSample/SDKPresenters/how\_to\_use\_inmeeting\_function/how\_to\_use\_customized\_inmeeting\_ui/how\_to\_use\_customized\_audio/SDKAudioPresenter.m#L25](https://github.com/zoom/zoom-sdk-ios/blob/master/MobileRTCSample/MobileRTCSample/SDKPresenters/how_to_use_inmeeting_function/how_to_use_customized_inmeeting_ui/how_to_use_customized_audio/SDKAudioPresenter.m#L25)). And it is not handled by SDK as well. (In Zoom default UI, we do handle this message in SDK)

Thus please have a look at our Custom UI implementation in our demo app and hope that can be helpful. If you find out anyway to reproduce the issue you are facing with our demo app, please let me know.

Thanks!

---

<div class="post-metadata">

**Author:** ![xiao.yao](https://avatars.discourse-cdn.com/v4/letter/x/3ab097/32.png) [@xiao.yao](https://devforum.zoom.us/u/xiao.yao)\
**Post date:** [September 12, 2019, 1:35pm UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/7 "2019-09-12T13:35:09Z")

</div>

Hi Carson,

Thanks for the information. I did find something interesting in two scenarios:

**Scenario 1:**

Mute all attendee audio with [meetingService muteAllUserAudio:YES]  
Unmute all attendee audio with [meetingService unmuteAllUserAudio]

However in this scenario the attendee can unmute him / herself after the host has muted all attendee audio.

**Scenario 2:**  
Mute all attendee audio with [meetingService muteAllUserAudio:NO]  
Unmute all attendee audio with [meetingService muteAllUserAudio:YES] and then [meetingService unmuteAllUserAudio]

In this scenario, the attendee cannot unmute after the host has muted audio. The attendee can mute / unmute after the host has unmuted audio (desired behavior).

It seems like the difference is passing a YES or NO to the muteAllUserAudio method.

---

<div class="post-metadata">

**Author:** ![carson.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/carson.zoom/32/785_2.png) [@carson.zoom](https://devforum.zoom.us/u/carson.zoom)\
**Post date:** [September 12, 2019, 8:15pm UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/8 "2019-09-12T20:15:48Z")

</div>

Hi Xiao,

Thanks for the reply. Here is the definition of the method `muteAllUserAudio`([https://zoom.github.io/zoom-sdk-ios/category\_mobile\_r\_t\_c\_meeting\_service\_07\_audio\_08.html#a0609ab2e53f927b7842d3e98b9669375](https://zoom.github.io/zoom-sdk-ios/category_mobile_r_t_c_meeting_service_07_audio_08.html#a0609ab2e53f927b7842d3e98b9669375)):

```auto
/*!
 @brief Set to mute audio of all attendees.
 @param allowSelfUnmute YES means that attendee can unmute the audio himself, otherwise not.
 @return YES means that the method is called successfully, otherwise not.
 @warning Only meeting host can run the function.
 */
- (BOOL)muteAllUserAudio:(BOOL)allowSelfUnmute;

```

So the boolean value passes is for allowing the attendee to unmute themselves.

For Scenario 1, since `allowSelfUnmute = YES`, then the attendee would be allowed to unmute themselves, what you observed is the expected result.  
For Scenario 2, since `allowSelfUnmute = NO`, then the attendee would not be allowed to unmute themselves, when you unmute the attendees, you don’t need to call `[meetingService muteAllUserAudio:YES]`, you can just call the `[meetingService unmuteAllUserAudio]` method.

Seems like what you have observed for both scenarios are working as expected. Pardon the misleading interface name for the `muteAllUserAudio`, I think the original confusion was because of the name comes with a boolean name, and it could be misleading to be treated as turning mute all audio on/off.

Hope this helps. Thanks!

---

<div class="post-metadata">

**Author:** ![xiao.yao](https://avatars.discourse-cdn.com/v4/letter/x/3ab097/32.png) [@xiao.yao](https://devforum.zoom.us/u/xiao.yao)\
**Post date:** [September 13, 2019, 12:56pm UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/9 "2019-09-13T12:56:19Z")

</div>

Hi Carson,

My apologies for the confusion. For scenario 2, if [meetingService muteAllUserAudio:YES] is not called, the attendee is not able to unmute him or herself. This is the original situation.

Thanks,  
Xiao

---

<div class="post-metadata">

**Author:** ![carson.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/carson.zoom/32/785_2.png) [@carson.zoom](https://devforum.zoom.us/u/carson.zoom)\
**Post date:** [September 13, 2019, 5:30pm UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/10 "2019-09-13T17:30:40Z")

</div>

Hi Xiao,

Thanks for the info. Mmmm…it is very strange that: without calling the `[meetingService muteAllUserAudio:YES]` before calling `[meetingService unmuteAllUserAudio]` in our demo app, the attendee will still be able to mute/unmute themselves afterward. Glad to hear that this workaround works, I have compared the way you are implementing with the way in our demo app and I found no difference. Still not sure why you are facing that issue. We will continue to investigate this issue.

Thanks!

---

<div class="post-metadata">

**Author:** ![DeveloperBot](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/developerbot/32/12632_2.png) [@DeveloperBot](https://devforum.zoom.us/u/DeveloperBot)\
**Post date:** [August 21, 2020, 6:41pm UTC](https://devforum.zoom.us/t/attendee-cannot-unmute/5806/11 "2020-08-21T18:41:25Z")

</div>

Closed on August 21, 2020, 6:41pm UTC


