Breaking Changes

  • Interfaces changed:

    • In MobileRTCMeetingDelegate.h:

      • - (void)onSinkMeetingVideoQualityChanged:(MobileRTCNetworkQuality)quality userID:(NSUInteger)userID; has been deprecated, replaced by
        - (void)onSinkMeetingVideoQualityChanged:(MobileRTCVideoQuality)quality userID:(NSUInteger)userID;


  • New interfaces and callbacks for deleting in-meeting chat.

    • New enums in MobileRTCConstants.h

      typedef NS_ENUM(NSUInteger, MobileRTCChatMessageDeleteType) {
         	 /// none
         	 MobileRTCChatMessageDeleteType_By_None = 0,
         	 /// delete by self
         	 /// delete by host
          	/// delete by DLP when the message goes against the host organization's compliance policies.
    • New interfaces in MobileRTCMeetingService+Chat.h

      - (BOOL)deleteChatMessage:(nonnull NSString *)msgId;
      - (nullable NSArray <NSString *> *)getAllChatMessageID;
      - (BOOL)isChatMessageCanBeDeleted:(nonnull NSString *)msgId;
    • New callback in MobileRTCMeetingDelegate.h

      - (void)onChatMsgDeleteNotification:(NSString *_Nonnull)msgID deleteBy:(MobileRTCChatMessageDeleteType)deleteBy;
  • New callback for when the meeting video quality changes.

    • New enums in MobileRTCConstants.h

      typedef NS_ENUM(NSInteger, MobileRTCVideoQuality) {
      	    ///unknown video quality status.
      	    MobileRTCVideoQuality_Unknown       = 0,
      	    ///The video quality is poor.
      	    MobileRTCVideoQuality_Bad           = 1,
      	    ///The video quality is normal.
      	    MobileRTCVideoQuality_Normal        = 2,
      	    ///The video quality is good.
      	    MobileRTCVideoQuality_Good          = 3,
    • New callback in MobileRTCMeetingDelegate.h

      - (void)onSinkMeetingVideoQualityChanged:(MobileRTCVideoQuality)qality userID:(NSUInteger)userID;
  • Added Polish and Turkish support.


  • Made the behavior of onSinkMeetingVideoRequestUnmuteByHost the same as on other platforms.


  • Issue where the interpretation interface returned false when the interpretation started successfully.

  • Issue where the interpretation languageID was inconsistent from other platforms.

  • Issue where the interpreter and the interpretation language information was unknown due to no callback for onMeetingStatusChange.

  • Issue where the upvoteQuestion/revokeUpvoteQuestion has an inconsistent behavior compared to other platforms.

  • Issue where sharing the device audio did not work properly.

  • Issue where the user was not able to exit the join meeting UI when the meeting was locked.

  • Issue where the meeting status showed as “connecting” after successfully switching the domain.