Here are the release notes for the iOS Meeting SDK v5.7.1

Client SDK is now officially ‘Meeting SDK’

To better reflect the functionality of the Client SDK for Android, iOS, macOS, Windows, and Web, we’re changing its name to the Meeting SDK. This does not impact any of the SDKs directly.

Using RESTful API for PreMeeting services

The RESTful API parameters and requests to perform meeting management are constantly enhanced to support the latest Zoom meeting features. The SDK services do not get updated as often. Therefore, we are removing the pre meeting services in the SDK as of this release. Please consider using the RESTful API as a replacement. Here are the API for meeting management:

Please follow the instructions in https://marketplace.zoom.us/docs/api-reference/using-zoom-apis to use Zoom RESTful APIs.

Please also consider using the following webhooks:

See the webhook reference for more details: https://marketplace.zoom.us/docs/api-reference/webhook-reference

Added

  • Consent dialog in the following scenarios(both Zoom UI and Custom UI):

    • Recording/Archiving/Live Streaming in meetings or in webinars.

    • Join webinar as a panelist.

    • Promote an attendee to panelist.

    • The host tries to unmute the current user.

  • New interfaces to retrieve legal disclaimers. See https://marketplace.zoom.us/docs/sdk/native-sdks/ui-notices for more information on how to display these in your app.

    • In MobileRTCMeetingService+InMeeting.h:

      - (BOOL)isLiveTranscriptLegalNoticeAvailable;
      - (NSString *_Nullable)getLiveTranscriptLegalNoticesPrompt;
      - (NSString *_Nullable)getLiveTranscriptLegalNoticesExplained;
    • In MobileRTCMeetingService+AppShare.h:

      - (BOOL)isWhiteboardLegalNoticeAvailable;
      - (NSString *_Nullable)getWhiteboardLegalNoticesPrompt;
      - (NSString *_Nullable)getWhiteboardLegalNoticesExplained;
    • In MobileRTCMeetingService+Chat.h:

      - (BOOL)isMeetingChatLegalNoticeAvailable;
      - (NSString *_Nullable)getChatLegalNoticesPrompt;
      - (NSString *_Nullable)getChatLegalNoticesExplained;
    • In MobileRTCMeetingService+Webinar.h:

      - (BOOL)isQALegalNoticeAvailable;
      - (NSString *_Nullable)getQALegalNoticesPrompt;
      - (NSString *_Nullable)getQALegalNoticesExplained;
    • In MobileRTCAnnotationService.h:

      - (BOOL)isAnnotationLegalNoticeAvailable;
      - (NSString *_Nullable)getAnnotationLegalNoticesPrompt;
      - (NSString *_Nullable)getAnnotationLegalNoticesExplained;
    • In MobileRTCMeetingService.h:

      - (NSString *_Nullable)getWebinarRegistrationLegalNoticesPrompt;
      - (MobileRTCWebinarRegistLegalNoticeContent *_Nullable)getWebinarRegistrationLegalNoticesExplained;
  • New interfaces to handle SSO login.

    • In MobileRTCAuthService.h:

      - (nullable NSString *)generateSSOLoginWebURL:(nonnull NSString*)vanityUrl;
      - (MobileRTCLoginFailReason)ssoLoginWithWebUriProtocol:(nonnull NSString*)uriProtocol;
  • New interfaces to enhance breakout rooms.

    • In MobileRTCMeetingService+BO.h, MobileRTCBORole.h, and MobileRTCMeetingDelegate.h:

      - (MobileRTCBOStatus)getBOStatus;
      - (BOOL)setBOOption:(MobileRTCBOOption *_Nonnull)option; // breakout room option, see note below
      - (MobileRTCBOOption * _Nullable)getBOOption;
      - (BOOL)inviteBOUserReturnToMainSession:(NSString * _Nonnull)boUserId;
      - (void)onBOStopCountDown:(NSUInteger)seconds;
      - (void)onHostInviteReturnToMainSession:(NSString *_Nullable)hostName;
      - (void)onBOStatusChanged:(MobileRTCBOStatus)status;
    • A breakout room option can be used for for the countdown functionality, for example:

      struct BOOption
      {
        BO_STOP_COUNTDOWN countdown_seconds;
        BOOption()
        {
          countdown_seconds = BO_STOP_COUNTDOWN_SECONDS_60;
        }
      };
  • A new parameter senderID to the callback that receives the broadcasted message.

    • In MobileRTCMeetingDelegate.h:

      - (void)onNewBroadcastMessageReceived:(NSString *_Nullable)broadcastMsg senderID:(NSUInteger)senderID;
  • A new callback to get the result when asking an attendee to be promoted.

    • In MobileRTCMeetingDelegate.h:

      - (void)onSinkAttendeePromoteConfirmResult:(BOOL)agree userId:(NSUInteger)userId;
  • A new interface to check if the current user has the privilege to request remote control.

    • In MobileRTCRemoteControlService.h:

      - (BOOL)isHaveRemoteControlRight;
  • A new property in meeting settings to hide the record button.

    • In MobileRTCMeetingSettings.h:

      @property (assign, nonatomic) BOOL recordButtonHidden;
  • A new property to indicate the type of virtual background.

    • In MobileRTCVirtualBGImageInfo:

      @property(nonatomic, assign) MobileRTCVBType vbType;
    • The property is defined in MobileRTCMeetingService+VirtualBackground.h.

    • The definition of the enum is in MobileRTCConstants.h.

  • A new callback when the host changes the share settings.

    • The interface in MobileRTCMeetingDelegate.h:

      - (void)onSinkShareSettingTypeChanged:(MobileRTCShareSettingType)shareSettingType;
  • A new login fail reason for the case when the user declines login consent.

    • The constant in MobileRTCConstants.h:

      MobileRTCLoginFailReason_UserDisagreeLoginDisclaimer

Changed & Fixed

  • Renamed the participant_id to customer_key in the start/join meeting parameter.

  • Fixed an issue where meetingInviteHidden was not working as expected.

  • Fixed an issue where hostLeaveHidden was not working as expected.

  • Fixed an issue where participant views turned black after dismissing the participant view.

  • Fixed an issue where the onChatMessageNotification callback was not triggered after sending a message.

  • Fixed an issue where breakout room (BO) attendees cannot go back to the main session even if the host invites the attendee to the main session.

  • Fixed an issue where the "Waiting" popup does not disappear when joining a meeting without a passcode in a meeting which requires one.

  • Fixed an issue where the minimized meeting window disappears on some iOS versions when the RootViewController is not properly configured.

  • Removed the virtual background default image in Custom UI.

  • Enhanced the SDK sample app MobileRTCSample to support ARC.

  • Split the enum MobileRTCSMSServiceErr into two to distinguish the status "Retrieve" and "Verify": MobileRTCSMSVerifyResult and MobileRTCSMSRetrieveResult. Related callbacks:

    - (void)onRetrieveSMSVerificationCodeResultNotification:(MobileRTCSMSRetrieveResult)result verifyHandle:(MobileRTCVerifySMSHandler * _Nonnull)handler;
    - (void)onVerifySMSVerificationCodeResultNotification:(MobileRTCSMSVerifyResult)result;

Removed

The following interfaces that were being announced "deprecated" in the previous releases have been removed.

  • - (MobileRTCPremeetingService * _Nullable)getPreMeetingService;

    • Resolution: Use the Zoom REST API.

  • - (BOOL)loginWithSSOToken:(nonnull NSString*)token rememberMe:(BOOL)rememberMe;

    • Resolution: Use generateSSOLoginWebURL: and ssoLoginWithWebUriProtocol:.

  • - (void)onMobileRTCLoginReturn:(NSInteger)returnValue;

  • - (void)appShareWithReplayKit;

  • - (BOOL)handleE2EMeetingKey:(nonnull NSArray <MobileRTCE2EMeetingKey *> *)keyArray withLeaveMeeting:(BOOL)leave;

  • - (BOOL)isExternalMeeting;

  • - (BOOL)isInternalMeeting;

  • - (void)onWaitExternalSessionKey:(NSData * _Nonnull)key;

  • - (BOOL)hideFullPhoneNumberForPureCallInUser:(BOOL)bHide;

  • - (MobileRTCMeetError)startMeetingWithDictionary:(nonnull NSDictionary*)dict DEPRECATED_MSG_ATTRIBUTE(“Will be deleted in the next release. Please use startMeetingWithStartParam instead");

  • - (MobileRTCMeetError)joinMeetingWithDictionary:(nonnull NSDictionary*)dict DEPRECATED_MSG_ATTRIBUTE("Will be deleted in the next release. Please use joinMeetingWithJoinParam instead");

  • @property(nonatomic, assign) BOOL isNone DEPRECATED_MSG_ATTRIBUTE("USE vbType INSTEAD");

  • MobileRTCPremeetingService.h

    - (nullable id<MobileRTCMeetingItem>)createMeetingItem;
    - (nullable id<MobileRTCMeetingItem>)cloneMeetingItem:(nonnull id<MobileRTCMeetingItem>)item;
    - (void)destroyMeetingItem:(nonnull id<MobileRTCMeetingItem>)item;
    - (nullable id<MobileRTCMeetingItem>)getMeetingItemByUniquedID:(unsigned long long)meetingUniquedID;
    - (BOOL)scheduleMeeting:(nonnull id<MobileRTCMeetingItem>)meetingItem WithScheduleFor:(nullable NSString *)userEmail;
    - (BOOL)editMeeting:(nonnull id<MobileRTCMeetingItem>)meetingItem;
    - (BOOL)deleteMeeting:(nonnull id<MobileRTCMeetingItem>)meetingItem;
    - (BOOL)listMeeting;
    - (BOOL)isDisabledPMI;
    - (nullable MobileRTCDialinCountry *)getAvailableDialInCountry;
    - (void)sinkSchedultMeeting:(PreMeetingError)result MeetingUniquedID:(unsigned long long)uniquedID;
    - (void)sinkEditMeeting:(PreMeetingError)result MeetingUniquedID:(unsigned long long)uniquedID;
    - (void)sinkDeleteMeeting:(PreMeetingError)result;
    - (void)sinkListMeeting:(PreMeetingError)result withMeetingItems:(nonnull NSArray*)array;
    - (void)sinkGetInviteEmailContent:(PreMeetingError)result content:(NSString *_Nullable)content;