Mac SDK
ZoomSDKErrors.h
1 //
2 // ZoomSDKErrors.h
3 // ZoomSDK
4 //
5 // Created by TOTTI on 7/18/16.
6 // Copyright (c) 2016 Zoom Video Communications,Inc. All rights reserved.
7 //
8 #pragma once
9 
10 //Client Key or Secret is empty
11 #define kSDKAuthKeyOrSecretEmpty 300
12 //Client Key or Secret is wrong
13 #define kSDKAuthKeyOrSecretWrong 3023
14 //Account does not support SDK feature
15 #define kSDKAuthAccountNotSupport 3024
16 //Account did not enable SDK feature
17 #define kSDKAuthAccountNotEnableSDK 3025
18 //Account does not support this SDK version
19 #define kSDKAuthAccountDonotSupportTheSDKVersion 3112
20 
24 typedef enum {
25  //User logs in with working email.
26  ZoomSDKUserType_ZoomUser = 100,
27  //Single-sign-on user.
28  ZoomSDKUserType_SSOUser = 101,
29  //Users who are not logged in
30  ZoomSDKUserType_WithoutLogin = 102,
31 }ZoomSDKUserType;
32 
33 typedef enum {
34  //API user.
35  SDKUserType_APIUser,
36  //User logs in with email.
37  SDKUserType_EmailLogin,
38  //User logs in with Facebook account.
39  SDKUserType_FaceBook,
40  //User logs in with Google authentication.
41  SDKUserType_GoogleOAuth,
42  //User logs in with SSO token.
43  SDKUserType_SSO,
44  //Unknown user type.
45  SDKUserType_Unknown,
46 }SDKUserType;
50 typedef enum {
51  //Command of leaving meeting.
52  LeaveMeetingCmd_Leave,
53  //Command of ending Meeting.
54  LeaveMeetingCmd_End,
55 }LeaveMeetingCmd;
56 
60 typedef enum{
61  //Mute the video.
62  ActionMeetingCmd_MuteVideo,
63  //Unmute the video.
64  ActionMeetingCmd_UnMuteVideo,
65  //Mute the audio.
66  ActionMeetingCmd_MuteAudio,
67  //Unmute the audio.
68  ActionMeetingCmd_UnMuteAudio,
69  //Enable the feature that user can unmute himself when muted.
70  ActionMeetingCmd_EnableUnmuteBySelf,
71  //Disable the feature that user can not unmute himself when muted.
72  ActionMeetingCmd_DisableUnmuteBySelf,
73  //Mute all participants in the meeting, available only for the host/co-host.
74  ActionMeetingCmd_MuteAll,
75  //Unmute all participants in the meeting, available only for the host/co-host.
76  ActionMeetingCmd_UnmuteAll,
77  //Lock the meeting, available only for the host/co-host. Once locked, the new participants can no longer join the meeting/co-host.
78  ActionMeetingCmd_LockMeeting,
79  //Unlock the meeting, available only for the host/co-host.
80  ActionMeetingCmd_UnLockMeeting,
81  //Send the request of remote control to the specified user
82  ActionMeetingCmd_RequestRemoteControl,
83  //Abandon remote control of the specified user.
84  ActionMeetingCmd_GiveUpRemoteControl,
85  //Give the authority of remote control to the specified user.
86  ActionMeetingCmd_GiveRemoteControlTo,
87  //Refuse the request to remote control from the specified user.
88  ActionMeetingCmd_DeclineRemoteControlRequest,
89  //Get back the authority of remote control.
90  ActionMeetingCmd_RevokeRemoteControl,
91  //Lock the share, available only for the host/co-host. Once locked, only host/co-host can share, this is unsupported from v4.4.
92  ActionMeetingCmd_LockShare,
93  //Unlock the share, available only for the host/co-host, this is unsupported from v4.4.
94  ActionMeetingCmd_UnlockShare,
95  //Put all participants' hands down, available only for the host/co-host.
96  ActionMeetingCmd_LowerAllHands,
97  //Adjust the display size fit to the window.
98  ActionMeetingCmd_ShareFitWindowMode,
99  //Share in original size.
100  ActionMeetingCmd_ShareOriginSizeMode,
101  //Pin the video of specified user. Once the video is pined, it will show fixed video in main view.
102  ActionMeetingCmd_PinVideo,
103  //Unpin the video of specified user.
104  ActionMeetingCmd_UnPinVideo,
105  //Spotlight the video of the specified user.
106  ActionMeetingCmd_SpotlightVideo,
107  //Spotlight falloff the video of the specified user.
108  ActionMeetingCmd_UnSpotlightVideo,
109  //Pause sharing.
110  ActionMeetingCmd_PauseShare,
111  //Resume sharing.
112  ActionMeetingCmd_ResumeShare,
113  //Join meeting by VoIP.
114  ActionMeetingCmd_JoinVoip,
115  //Disconnect VoIP from meeting.
116  ActionMeetingCmd_LeaveVoip,
117 
118 }ActionMeetingCmd;
119 
123 typedef enum {
124  //The topic of meeting.
125  MeetingPropertyCmd_Topic,
126  //The template of email invitation.
127  MeetingPropertyCmd_InviteEmailTemplate,
128  //The title of email invitation.
129  MeetingPropertyCmd_InviteEmailTitle,
130  //The invitation URL.
131  MeetingPropertyCmd_JoinMeetingUrl,
132  //The default path to save the recording files.
133  MeetingPropertyCmd_DefaultRecordPath,
134  //The meeting number.
135  MeetingPropertyCmd_MeetingNumber,
136  //The tag of host.
137  MeetingPropertyCmd_HostTag,
138  //Meeting ID.
139  MeetingPropertyCmd_MeetingID,
140  //Meeting password.
141  MeetingPropertyCmd_MeetingPassword
142 }MeetingPropertyCmd;
143 
147 typedef enum{
148  //Switch to mouse cursor. For initialization.
149  AnnotationToolType_None,
150  //Pen
151  AnnotationToolType_Pen,
152  //Highlighter.
153  AnnotationToolType_HighLighter,
154  //A straight line changes automatically in pace with the mouse cursor.
155  AnnotationToolType_AutoLine,
156  //A rectangle changes automatically in pace with the mouse cursor.
157  AnnotationToolType_AutoRectangle,
158  //An ellipse changes automatically in pace with the mouse cursor.
159  AnnotationToolType_AutoEllipse,
160  //An arrow changes automatically in pace with the mouse cursor.
161  AnnotationToolType_AutoArrow,
162  //A filled rectangle.
163  AnnotationToolType_AutoRectangleFill,
164  //A filled ellipse.
165  AnnotationToolType_AutoEllipseFill,
166  //Laser pointer.
167  AnnotationToolType_SpotLight,
168  //An arrow.
169  AnnotationToolType_Arrow,
170  //An eraser.
171  AnnotationToolType_ERASER,
172 }AnnotationToolType;
173 
177 typedef enum{
178  //Clear all annotations.
179  AnnotationClearType_All,
180  //Clear only your own annotations.
181  AnnotationClearType_Self,
182  //Clear only others' annotations.
183  AnnotationClearType_Other,
184 }AnnotationClearType;
185 
189 typedef enum{
190  //Meeting window.
191  MeetingComponent_MainWindow,
192  //Audio.
193  MeetingComponent_Audio,
194  //Chat.
195  MeetingComponent_Chat,
196  //Participants.
197  MeetingComponent_Participants,
198  //Main toolbar at the bottom of meeting window.
199  MeetingComponent_MainToolBar,
200  //Main toolbar for sharing on the primary view.
201  MeetingComponent_MainShareToolBar,
202  //Toolbar for sharing on the subview.
203  MeetingComponent_AuxShareToolBar,
204  //Setting components.
205  MeetingComponent_Setting,
206  //Window for joining meeting before host.
207  MeetingComponent_JBHWindow,
208  //Window for sharing options.
209  MeetingComponent_ShareOptionWindow,
210  //Thumbnail video layout.
211  MeetingComponent_ThumbnailVideo,
212  //Window for invite other into meeting.
213  MeetingComponent_InviteWindow,
214  //Window for sharing select.
215  MeetingComponent_ShareSelectWindow,
216 }MeetingComponent;
217 
221 typedef enum{
222  //Dual screen mode.
223  MeetingSettingCmd_DualScreenMode,
224  //Adjust the size of sharing content to fit the window.
225  MeetingSettingCmd_AutoFitToWindowWhenViewShare,
226  //Enter full screen mode when user joins the meeting.
227  MeetingSettingCmd_AutoFullScreenWhenJoinMeeting,
228  //Enable to mute attendees when they join the meeting.
229  MeetingSettingCmd_EnableMuteOnEntry,
230  //Enable to play chime when user joins or exits the meeting.
231  MeetingSettingCmd_EnablePlayChimeWhenEnterOrExit,
232 }MeetingSettingCmd;
233 
237 typedef enum{
238  //Success.
239  ZoomSDKError_Success,
240  //Failed.
241  ZoomSDKError_Failed,
242  //SDK is not initialize.
243  ZoomSDKError_Uninit,
244  //Service is failed.
245  ZoomSDKError_ServiceFailed,
246  //Incorrect usage of the feature.
247  ZoomSDKError_WrongUsage,
248  //Wrong parameter.
249  ZoomSDKError_InvalidPrameter,
250  //No permission.
251  ZoomSDKError_NoPermission,
252  //There is no recording in process.
253  ZoomSDKError_NoRecordingInProgress,
254  //Api calls are too frequent.
255  ZoomSDKError_TooFrequentCall,
256  //unsupported feature
257  ZoomSDKError_UnSupportedFeature,
258  //unsupport email login
259  ZoomSDKError_EmailLoginIsDisabled,
260  //Module load fail.
261  ZoomSDKError_ModuleLoadFail,
262  //No video data.
263  ZoomSDKError_NoVideoData,
264  //No audio data.
265  ZoomSDKError_NoAudioData,
266  //No share data.
267  ZoomSDKError_NoShareData,
268  //Not found video device.
269  ZoomSDKError_NoVideoDeviceFound,
270  //Device error.
271  ZoomSDKError_DeviceError,
272  //Not in meeting.
273  ZoomSDKError_NotInMeeting,
274  //Init device.
275  ZoomSDKError_initDevice,
276  //Can't chanage virtual device.
277  ZoomSDKError_CanNotChanageVirtualDevice,
278  //Preprocess rawdata error.
279  ZoomSDKError_PreprocessRawdataError,
280  //No license.
281  ZoomSDKError_NoLicense,
282  //Malloc failed.
283  ZoomSDKError_Malloc_Failed,
284  //Unknown error.
285  ZoomSDKError_UnKnow,
286 }ZoomSDKError;
287 
291 typedef enum {
292  //Authentication is successful
293  ZoomSDKAuthError_Success = 0,
294  //Key or secret is wrong
295  ZoomSDKAuthError_KeyOrSecretWrong,
296  //Client account does not support
297  ZoomSDKAuthError_AccountNotSupport,
298  //Client account does not enable SDK
299  ZoomSDKAuthError_AccountNotEnableSDK,
300  //Auth timeout
301  ZoomSDKAuthError_Timeout,
302  //Network issue
303  ZoomSDKAuthError_NetworkIssue,
304  //Client incompatible
305  ZoomSDKAuthError_Client_Incompatible,
306  //Unknown error
307  ZoomSDKAuthError_Unknown,
308 }ZoomSDKAuthError;
309 
313 typedef enum {
314  //Calls SDK successfully.
315  ZoomSDKPremeetingError_Success,
316  //Calls SDK failed.
317  ZoomSDKPremeetingError_Failed,
318  //Timeout.
319  ZoomSDKPremeetingError_TimeOut,
320  //Unknown errors.
321  ZoomSDKPremeetingError_Unknown,
322 
323 }ZoomSDKPremeetingError;
324 
328 typedef enum {
329  //Start/Join meeting successfully.
330  ZoomSDKMeetingError_Success = 0,
331  //Network issue, please check the network connection.
332  ZoomSDKMeetingError_NetworkUnavailable = 1,
333  //Failed to reconnect the meeting.
334  ZoomSDKMeetingError_ReconnectFailed = 2,
335  //MMR issue, please check MMR configuration.
336  ZoomSDKMeetingError_MMRError = 3,
337  //The meeting password is incorrect.
338  ZoomSDKMeetingError_PasswordError = 4,
339  //Failed to create video and audio data connection with MMR.
340  ZoomSDKMeetingError_SessionError = 5,
341  //Meeting is over.
342  ZoomSDKMeetingError_MeetingOver = 6,
343  //Meeting is not started.
344  ZoomSDKMeetingError_MeetingNotStart = 7,
345  //The meeting does not exist.
346  ZoomSDKMeetingError_MeetingNotExist = 8,
347  //The amount of attendees reaches the upper limit.
348  ZoomSDKMeetingError_UserFull = 9,
349  //The ZOOM SDK version is incompatible.
350  ZoomSDKMeetingError_ClientIncompatible = 10,
351  //No MMR is valid.
352  ZoomSDKMeetingError_NoMMR = 11,
353  //The meeting is locked by the host.
354  ZoomSDKMeetingError_MeetingLocked = 12,
355  //The meeting is restricted.
356  ZoomSDKMeetingError_MeetingRestricted = 13,
357  //The meeting is restricted to join before host.
358  ZoomSDKMeetingError_MeetingJBHRestricted = 14,
359  //Failed to request the web server.
360  ZoomSDKMeetingError_EmitWebRequestFailed = 15,
361  //Failed to start meeting with expired token.
362  ZoomSDKMeetingError_StartTokenExpired = 16,
363  //The user's video does not work.
364  ZoomSDKMeetingError_VideoSessionError = 17,
365  //The user's audio cannot auto-start.
366  ZoomSDKMeetingError_AudioAutoStartError = 18,
367  //The amount of webinar attendees reaches the upper limit.
368  ZoomSDKMeetingError_RegisterWebinarFull = 19,
369  //User needs to register a webinar account if he wants to start a webinar.
370  ZoomSDKMeetingError_RegisterWebinarHostRegister = 20,
371  //User needs to register an account if he wants to join the webinar by the link.
372  ZoomSDKMeetingError_RegisterWebinarPanelistRegister = 21,
373  //The host has denied your webinar registration.
374  ZoomSDKMeetingError_RegisterWebinarDeniedEmail = 22,
375  //Sign in with the specified account to join webinar.
376  ZoomSDKMeetingError_RegisterWebinarEnforceLogin = 23,
377  //The certificate of ZC has been changed.
378  ZoomSDKMeetingError_ZCCertificateChanged = 24,
379  //Vanity conference ID does not exist.
380  ZoomSDKMeetingError_vanityNotExist = 27,
381  //Join webinar with the same email.
382  ZoomSDKMeetingError_joinWebinarWithSameEmail = 28,
383  //Meeting settings is not allowed to start a meeting.
384  ZoomSDKMeetingError_disallowHostMeeting = 29,
385  //Failed to write configure file.
386  ZoomSDKMeetingError_ConfigFileWriteFailed = 50,
387  //Forbidden to join the internal meeting.
388  ZoomSDKMeetingError_forbidToJoinInternalMeeting = 60,
389  // User is removed from meeting by host.
390  ZoomSDKMeetingError_RemovedByHost = 61,
391  //Unknown error.
392  ZoomSDKMeetingError_Unknown = 100,
393  //No error.
394  ZoomSDKMeetingError_None = 101,
395 }ZoomSDKMeetingError;
396 
397 
398 
402 typedef enum {
403  //User does not login.
404  ZoomSDKLoginStatus_Idle = 0,
405  //Login successfully.
406  ZoomSDKLoginStatus_Success = 1,
407  //Login failed.
408  ZoomSDKLoginStatus_Failed = 2,
409  //Login in progress.
410  ZoomSDKLoginStatus_Processing = 3
411 }ZoomSDKLoginStatus;
412 
413 
417 typedef enum {
418  //No meeting is running.
419  ZoomSDKMeetingStatus_Idle = 0,
420  //Connecting to the meeting server.
421  ZoomSDKMeetingStatus_Connecting = 1,
422  //Waiting for the host to start the meeting.
423  ZoomSDKMeetingStatus_WaitingForHost = 2,
424  //Meeting is ready, in meeting status.
425  ZoomSDKMeetingStatus_InMeeting = 3,
426  //Disconnect the meeting server, leave meeting status.
427  ZoomSDKMeetingStatus_Disconnecting = 4,
428  //Reconnecting meeting server status.
429  ZoomSDKMeetingStatus_Reconnecting = 5,
430  //Join/Start meeting failed.
431  ZoomSDKMeetingStatus_Failed = 6,
432  //Meeting ends.
433  ZoomSDKMeetingStatus_Ended = 7,
434  //Audio is connected.
435  ZoomSDKMeetingStatus_AudioReady = 8,
436  //There is another ongoing meeting on the server.
437  ZoomSDKMeetingStatus_OtherMeetingInProgress = 9,
438  //Participants who join the meeting before the start are in the waiting room.
439  ZoomSDKMeetingStatus_InWaitingRoom = 10,
440  //End to end meeting. Available for Huawei
441  ZoomSDKMeetingStatus_WaitExternalSessionKey =11,
442  //Promote the attendees to panelist in webinar.
443  ZoomSDKMeetingStatus_Webinar_Promote = 12,
444  //Demote the attendees from the panelist.
445  ZoomSDKMeetingStatus_Webinar_Depromote = 13,
446  //Join breakout room.
447  ZoomSDKMeetingStatus_Join_Breakout_Room = 14,
448  //Leave breakout room.
449  ZoomSDKMeetingStatus_Leave_Breakout_Room = 15,
450 
451 }ZoomSDKMeetingStatus;
452 
456 typedef enum{
457  //For initialization.
458  ZoomSDKShareStatus_None,
459  //The current user begins the share.
460  ZoomSDKShareStatus_SelfBegin,
461  //The current user ends the share.
462  ZoomSDKShareStatus_SelfEnd,
463  //Other user begins the share.
464  ZoomSDKShareStatus_OtherBegin,
465  //Other user ends the share.
466  ZoomSDKShareStatus_OtherEnd,
467  //The current user is viewing the share by others.
468  ZoomSDKShareStatus_ViewOther,
469  //The share is paused.
470  ZoomSDKShareStatus_Pause,
471  //The share is resumed.
472  ZoomSDKShareStatus_Resume,
473  //The sharing content changes.
474  ZoomSDKShareStatus_ContentTypeChange,
475  //The current user begins to share the sounds of computer audio.
476  ZoomSDKShareStatus_SelfStartAudioShare,
477  //The current user stops sharing the sounds of computer audio.
478  ZoomSDKShareStatus_SelfStopAudioShare,
479  //Other user begins to share the sounds of computer audio.
480  ZoomSDKShareStatus_OtherStartAudioShare,
481  //Other user stops sharing the sounds of computer audio.
482  ZoomSDKShareStatus_OtherStopAudioShare,
483 }ZoomSDKShareStatus;
484 
488 typedef enum{
489  //For initialization.
490  ZoomSDKAudioStatus_None = 0,
491  //The audio is muted.
492  ZoomSDKAudioStatus_Muted = 1,
493  //The audio is unmuted.
494  ZoomSDKAudioStatus_UnMuted = 2,
495  //The audio is muted by the host.
496  ZoomSDKAudioStatus_MutedByHost = 3,
497  //The audio is unmuted by the host.
498  ZoomSDKAudioStatus_UnMutedByHost = 4,
499  //Host mutes all participants.
500  ZoomSDKAudioStatus_MutedAllByHost = 5,
501  //Host unmutes all participants.
502  ZoomSDKAudioStatus_UnMutedAllByHost = 6,
503 }ZoomSDKAudioStatus;
504 
505 typedef enum{
506  ZoomSDKVideoStatus_Off,
507  ZoomSDKVideoStatus_On,
508  ZoomSDKVideoStatus_MutedByHost,
509  ZoomSDKVideoStatus_None,
510 }ZoomSDKVideoStatus;
511 
512 
513 typedef enum{
514  //No audio.
515  ZoomSDKAudioType_None = 0,
516  //VoIP.
517  ZoomSDKAudioType_Voip = 1,
518  //Phone.
519  ZoomSDKAudioType_Phone = 2,
520  //Unknown audio type.
521  ZoomSDKAudioType_Unknow = 3,
522 }ZoomSDKAudioType;
526 typedef enum{
527  //For initialization.
528  ZoomSDKRemoteControlStatus_None,
529  //Viewer can request to control the sharer remotely.
530  ZoomSDKRemoteControlStatus_CanRequestFromWho,
531  //Sharer receives the request from viewer.
532  ZoomSDKRemoteControlStatus_RequestFromWho,
533  //Sharer declines your request to be remote controlled.
534  ZoomSDKRemoteControlStatus_DeclineByWho,
535  //Sharer is remote controlled by viewer
536  ZoomSDKRemoteControlStatus_RemoteControlledByWho,
537  //Notify user that controller of the shared content changes.
538  ZoomSDKRemoteControlStatus_StartRemoteControllWho,
539  //Remote control ends.
540  ZoomSDKRemoteControlStatus_EndRemoteControllWho,
541  //Viewer gets the privilege of remote control.
542  ZoomSDKRemoteControlStatus_HasPrivilegeFromWho,
543  //Viewer loses the privilege of remote control.
544  ZoomSDKRemoteControlStatus_LostPrivilegeFromWho,
545 }ZoomSDKRemoteControlStatus;
546 
550 typedef enum{
551  //For initialization.
552  ZoomSDKRecordingStatus_None,
553  //Start recording.
554  ZoomSDKRecordingStatus_Start,
555  //Stop recording.
556  ZoomSDKRecordingStatus_Stop,
557  //The space of storage is full.
558  ZoomSDKRecordingStatus_DiskFull,
559  //Pause recording.
560  ZoomSDKRecordingStatus_Pause,
561 }ZoomSDKRecordingStatus;
562 
566 typedef enum{
567  //Unknown connection status.
568  ZoomSDKConnectionQuality_Unknow,
569  //The connection quality is very poor.
570  ZoomSDKConnectionQuality_VeryBad,
571  //The connection quality is poor.
572  ZoomSDKConnectionQuality_Bad,
573  //The connection quality is not good.
574  ZoomSDKConnectionQuality_NotGood,
575  //The connection quality is normal.
576  ZoomSDKConnectionQuality_Normal,
577  //The connection quality is good.
578  ZoomSDKConnectionQuality_Good,
579  //The connection quality is excellent.
580  ZoomSDKConnectionQuality_Excellent,
581 }ZoomSDKConnectionQuality;
582 
587 typedef enum
588 {
589  //Call out successfully.
590  H323CalloutStatus_Success,
591  //In process of ringing.
592  H323CalloutStatus_Ring,
593  //Timeout.
594  H323CalloutStatus_Timeout,
595  //Failed to call out.
596  H323CalloutStatus_Failed,
597  //Unknown status.
598  H323CalloutStatus_Unknown,
599  //Busy
600  H323CalloutStatus_Busy,
601  //Decline
602  H323CalloutStatus_Decline,
603 }H323CalloutStatus;
604 
608 typedef enum
609 {
610  //Unknown status.
611  H323PairingResult_Unknown,
612  //Pairing successfully.
613  H323PairingResult_Success,
614  //Pairing meeting does not exist.
615  H323PairingResult_Meeting_Not_Exist,
616  //Pairing code does not exist.
617  H323PairingResult_Paringcode_Not_Exist,
618  //No pairing privilege.
619  H323PairingResult_No_Privilege,
620  //Other errors.
621  H323PairingResult_Other_Error,
622 }H323PairingResult;
623 
627 typedef enum
628 {
629  //Unknown types.
630  H323DeviceType_Unknown,
631  //H.323 device
632  H323DeviceType_H323,
633  //SIP
634  H323DeviceType_SIP,
635 }H323DeviceType;
636 
640 typedef enum
641 {
642  //Primary displayer.
643  ScreenType_First,
644  //Secondary displayer.
645  ScreenType_Second,
646 }ScreenType;
647 
651 typedef enum
652 {
653  //No video in the meeting.
654  MeetingUIType_None,
655  //Video wall mode..
656  MeetingUIType_VideoWall,
657  //Display the video of active user.
658  MeetingUIType_ActiveRender,
659 }MeetingUIType;
660 
664 typedef enum
665 {
666  //For initialization.
667  JoinMeetingReqInfoType_None,
668  //Join meeting with password.
669  JoinMeetingReqInfoType_Password,
670  //The password for join meeting is incorrect.
671  JoinMeetingReqInfoType_Password_Wrong,
672 }JoinMeetingReqInfoType;
673 
677 typedef enum
678 {
679  //There is no meeting.
680  MeetingType_None,
681  //Normal meeting.
682  MeetingType_Normal,
683  //Breakout meeting.
684  MeetingType_BreakoutRoom,
685  //Webinar.
686  MeetingType_Webinar,
687 }MeetingType;
688 
692 typedef enum
693 {
694  //For initialization.
695  UserRole_None,
696  //Host.
697  UserRole_Host,
698  //Co-host.
699  UserRole_CoHost,
700  //Attendee in the webinar.
701  UserRole_Attendee,
702  //Panelist.
703  UserRole_Panelist,
704  //Moderator of breakout room.
705  UserRole_BreakoutRoom_Moderator,
706 }UserRole;
707 
711 typedef enum
712 {
713  //No status.
714  PhoneStatus_None,
715  //In process of calling out.
716  PhoneStatus_Calling,
717  //In process of ringing.
718  PhoneStatus_Ringing,
719  //The call is accepted.
720  PhoneStatus_Accepted,
721  //Call successful.
722  PhoneStatus_Success,
723  //Call failed.
724  PhoneStatus_Failed,
725  //In process of canceling the response to the previous state.
726  PhoneStatus_Canceling,
727  //Cancel successfully.
728  PhoneStatus_Canceled,
729  //Failed to cancel.
730  PhoneStatus_Cancel_Failed,
731  //Timeout.
732  PhoneStatus_Timeout,
733 }PhoneStatus;
734 
738 typedef enum
739 {
740  //For initialization.
741  PhoneFailedReason_None,
742  //The telephone service is busy.
743  PhoneFailedReason_Busy,
744  //The telephone is out of service.
745  PhoneFailedReason_Not_Available,
746  //The phone is hung up.
747  PhoneFailedReason_User_Hangup,
748  //Other reasons.
749  PhoneFailedReason_Other_Fail,
750  //The call is not answered.
751  PhoneFailedReason_No_Answer,
752  //Disable the function of international callout before the host joins the meeting.
753  PhoneFailedReason_Block_No_Host,
754  //The call-out is blocked by the system due to the high cost.
755  PhoneFailedReason_Block_High_Rate,
756  //All the invitees invited by the call should press the button one(1) to join the meeting. In case that many invitees do not press the button that leads to time out, the call invitation for this meeting shall be banned.
757  PhoneFailedReason_Block_Too_Frequent,
758 }PhoneFailedReason;
759 
763 typedef enum
764 {
765  //Type unknown.
766  ZoomSDKShareContentType_UNKNOWN,
767  //Type of sharing the application.
768  ZoomSDKShareContentType_AS,
769  //Type of sharing the desktop.
770  ZoomSDKShareContentType_DS,
771  //Type of sharing the white-board.
772  ZoomSDKShareContentType_WB,
773  //Type of sharing data from the device connected WIFI.
774  ZoomSDKShareContentType_AIRHOST,
775  //Type of sharing the camera.
776  ZoomSDKShareContentType_CAMERA,
777  //Type of sharing the data.
778  ZoomSDKShareContentType_DATA,
779  //Wired device, connect Mac and iPhone.
780  ZoomSDKShareContentType_WIRED_DEVICE,
781  //Share a portion of screen in the frame.
782  ZoomSDKShareContentType_FRAME,
783  //Share a document.
784  ZoomSDKShareContentType_DOCUMENT,
785  //Share only the audio sound of computer.
786  ZoomSDKShareContentType_COMPUTER_AUDIO
787 }ZoomSDKShareContentType;
788 
792 typedef enum
793 {
794  //For initialization.
795  CallInNumberType_None,
796  //Paid.
797  CallInNumberType_Toll,
798  //Free.
799  CallInNumberType_TollFree,
800 }CallInNumberType;
801 
805 typedef enum
806 {
807  //Invitation button: invite others.not support since 4.6 version.
808  ToolBarInviteButton,
809  //Audio button: manage in-meeting audio of the current user.
810  FitBarAudioButton,
811  //Video button: manage in-meeting video of the current user.
812  FitBarVideoButton,
813  //Participant button: manage or check the participants.
814  FitBarParticipantButton,
815  //Share button: share screen or application, etc.
816  FitBarNewShareButton,
817  //Remote control button when sharing or viewing the share.
818  FitBarRemoteControlButton,
819  //Pause the share.
820  FitBarPauseShareButton,
821  //Annotation button.
822  FitBarAnnotateButton,
823  //Question and answer(QA) button. Available only in webinar.
824  FitBarQAButton,
825  //Broadcast the webinar so user can join the webinar.
826  FitBarBroadcastButton,
827  //Poll button: questionnaire.
828  FitBarPolling,
829  //More: other functions in the menu.
830  FitBarMoreButton,
831  //Exit full screen.
832  MainExitFullScreenButton,
833  //Button for getting host.
834  ClaimHostButton,
835  //Upgarde button of free meeting remain time tooltip view.
836  UpgradeButtonInFreeMeetingRemainTimeTooltip,
837  //Video button: manage in-meeting video of the current user.
838  ToolBarVideoButton,
839  //Swap share and video button: swap to display share or video.
840  SwapShareContentAndVideoButton,
841  //Chat button: manage in-meeting chat of the current user.
842  ChatButton,
843  //Question and answer(QA) button on toolbar. Available only in webinar.
844  ToolBarQandAButton,
845  //Poll button: questionnaire.
846  ToolBarPollingButton,
847  //Reaction Button on tool bar.
848  ToolBarReactionsButton,
849  //Share button on tool bar.
850  ToolBarShareButton,
851 }SDKButton;
852 
856 typedef enum
857 {
858  //Unknown component
859  SecuritySessionComponet_Unknown,
860  //Chat.
861  SecuritySessionComponet_Chat,
862  //File Transfer.
863  SecuritySessionComponet_FT,
864  //Audio.
865  SecuritySessionComponet_Audio,
866  //Video.
867  SecuritySessionComponet_Video,
868  //Share application.
869  SecuritySessionComponet_AS,
870 }SecuritySessionComponet;
871 
875 typedef enum
876 {
877  //No warnings.
878  StatisticWarningType_None,
879  //The quality of the network connection is very poor.
880  StatisticWarningType_NetworkBad,
881  //The CPU is highly occupied.
882  StatisticWarningType_CPUHigh,
883  //The system is busy.
884  StatisticWarningType_SystemBusy,
885 }StatisticWarningType;
886 
890 typedef enum{
891  //For initialization.
892  ConnectionComponent_None,
893  //Share.
894  ConnectionComponent_Share,
895  //Video.
896  ConnectionComponent_Video,
897  //Audio.
898  ConnectionComponent_Audio,
899 }ConnectionComponent;
900 
904 typedef enum{
905  //For initialization.
906  EndMeetingReason_None = 0,
907  //The user is kicked off by the host and leaves the meeting.
908  EndMeetingReason_KickByHost = 1,
909  //Host ends the meeting.
910  EndMeetingReason_EndByHost = 2,
911  //Join the meeting before host (JBH) timeout.
912  EndMeetingReason_JBHTimeOut = 3,
913  //Meeting is ended for there is no attendee joins it.
914  EndMeetingReason_NoAttendee = 4,
915  //Host ends the meeting for he will start another meeting.
916  EndMeetingReason_HostStartAnotherMeeting = 5,
917  //Meeting is ended for the free meeting timeout.
918  EndMeetingReason_FreeMeetingTimeOut = 6,
919  //Meeting is ended for network broken.
920  EndMeetingReason_NetworkBroken = 7,
921 }EndMeetingReason;
922 
926 typedef enum
927 {
928  //Meeting room system is not encrypted.
929  EncryptType_NO,
930  //Meeting room system is encrypted.
931  EncryptType_YES,
932  //Meeting room system is encrypted automatically.
933  EncryptType_Auto
934 }EncryptType;
935 
939 typedef enum{
940  //Unknown connection types.
941  SettingConnectionType_Unknow,
942  //Peer to peer.
943  SettingConnectionType_P2P,
944  //Connect to the cloud.
945  SettingConnectionType_Cloud,
946 }SettingConnectionType;
947 
951 typedef enum{
952  //Unknown network type.
953  SettingNetworkType_Unknow,
954  //Wired LAN
955  SettingNetworkType_Wired,
956  //WIFI
957  SettingNetworkType_WiFi,
958  //PPP
959  SettingNetworkType_PPP,
960  //3G
961  SettingNetworkType_3G,
962  //Other network types.
963  SettingNetworkType_Other,
964 }SettingNetworkType;
965 
969 typedef enum{
970  //For initialization.
971  VideoRenderElementType_None,
972  //Preview the video of user himself.
973  VideoRenderElementType_Preview,
974  //Render the video of active speaker.
975  VideoRenderElementType_Active,
976  //Render normal video.
977  VideoRenderElementType_Normal,
978 }VideoRenderElementType;
979 
983 typedef enum{
984  //For initialization.
985  VideoRenderDataType_None,
986  //Video data.
987  VideoRenderDataType_Video,
988  //Avatar data.
989  VideoRenderDataType_Avatar,
990 }VideoRenderDataType;
991 
995 typedef enum{
996  //The mode of shared content adaptive pattern in the view.
997  ViewShareMode_FullFill,
998  //Letterbox. It is the practice of transferring film shot in a widescreen aspect ratio to standard-width video formats while preserving the film's original aspect ratio.
999  ViewShareMode_LetterBox,
1000 }ViewShareMode;
1001 
1005 typedef enum{
1006  //Ready to annotate.
1007  AnnotationStatus_Ready,
1008  //Annotation is closed.
1009  AnnotationStatus_Close,
1010  //For initialization.
1011  AnnotationStatus_None,
1012 }AnnotationStatus;
1013 
1017 typedef enum{
1018  //Only for initialization.
1019  LiveStreamStatus_None,
1020  //Live stream in process.
1021  LiveStreamStatus_InProgress,
1022  //Be connecting.
1023  LiveStreamStatus_Connecting,
1024  //Connect timeout.
1025  LiveStreamStatus_StartFailedTimeout,
1026  //Connect failed to the live streaming.
1027  LiveStreamStatus_StartFailed,
1028  //End.
1029  LiveStreamStatus_Ended,
1030 }LiveStreamStatus;
1031 
1036 typedef enum{
1037  //Remind user that he can start the free, unlimited group meeting for two times.
1038  SDKReminderType_CanFreeTrial,
1039  //Upgrade to the priority meeting at once.
1040  SDKReminderType_CanUpgradeAccount,
1041  //The participants in the meeting receives the reminder that the free meeting will be ended for time is running out.
1042  SDKReminderType_GuestReminder,
1043  //Upgrade successfully.
1044  SDKReminderType_UpgradeSuccess,
1045  //Failed to upgrade the account.
1046  SDKReminderType_UpgradeFailed,
1047  //For initialization.
1048  SDKReminderType_None,
1049 }SDKReminderType;
1050 
1051 typedef enum{
1052  FreeMeetingNeedUpgradeType_NONE,
1053  FreeMeetingNeedUpgradeType_BY_ADMIN,
1054  FreeMeetingNeedUpgradeType_BY_GIFTURL,
1055 }FreeMeetingNeedUpgradeType;
1056 
1060 typedef enum{
1061  //For initialization.
1062  DirectShareStatus_None = 0,
1063  //Waiting for enabling the direct sharing.
1064  DirectShareStatus_Connecting = 1,
1065  //In direct sharing mode.
1066  DirectShareStatus_InProgress = 2,
1067  //End the direct sharing.
1068  DirectShareStatus_Ended = 3,
1069  //Input the meeting ID/pairing code.
1070  DirectShareStatus_NeedMeetingIDOrSharingKey = 4,
1071  //The meeting ID or pairing code is wrong.
1072  DirectShareStatus_WrongMeetingIDOrSharingKey = 5,
1073  //Network issue. Reconnect later.
1074  DirectShareStatus_NetworkError = 6,
1075  //Unknown share status.
1076  DirectShareStatus_Unknow = 7,
1077 }DirectShareStatus;
1078 
1082 typedef enum{
1083  //Normal audio type.
1084  ScheduleMeetingAudioType_None = 0,
1085  //In telephone mode.
1086  ScheduleMeetingAudioType_Telephone = 1,
1087  //In VoIP mode.
1088  ScheduleMeetingAudioType_Voip = 1<<1,
1089  //Use telephone and VoIP.
1090  ScheduleMeetingAudioType_Both = 1<<2,
1091  //Use the third party audio.
1092  ScheduleMeetingAudioType_3rd= 1<<3,
1093 }ScheduleMeetingAudioType;
1094 
1098 typedef enum{
1099  //For initialization.
1100  ScheduleMeetingRecordType_None = 0,
1101  //Local Recording
1102  ScheduleMeetingRecordType_Local = 1,
1103  //Cloud Recording
1104  ScheduleMeetingRecordType_Cloud = 1<<1,
1105 }ScheduleMeetingRecordType;
1106 
1110 typedef enum
1111 {
1112  //For initialization.
1113  WebinarRegisterType_None,
1114  //Register webinar with URL.
1115  WebinarRegisterType_URL,
1116  //Register webinar with email.
1117  WebinarRegisterType_Email,
1118 }WebinarRegisterType;
1119 
1123 typedef enum{
1124  //Normal status.
1125  testMic_Normal = 0,
1126  //Recording.
1127  testMic_Recording,
1128  //Stop recording.
1129  testMic_RecrodingStoped,
1130  //Playing.
1131  testMic_Playing,
1132 }ZoomSDKTestMicStatus;
1133 
1137 typedef enum{
1138  //Unknown device.
1139  Device_Error_Unknow,
1140  //New device is detected by the system.
1141  New_Device_Found,
1142  //The device is not found.
1143  Device_Error_Found,
1144  //No device.
1145  No_Device,
1146  //No sound can be detected from the microphone.
1147  Audio_No_Input,
1148  //The audio is muted. Press Command+Shift+A to unmute
1149  Audio_Error_Be_Muted,
1150  //The device list is updated.
1151  Device_List_Update,
1152  //The audio is disconnected once detected echo.
1153  Audio_Disconnect_As_Detected_Echo,
1154 }ZoomSDKDeviceStatus;
1155 
1159 typedef enum{
1160  //Anyone can share, but only one can share at a moment, and only the host can start sharing when another user is sharing. The previous share will be ended once the host grabs the sharing.
1161  ShareSettingType_OnlyHostCanGrab = 0,
1162  //Only host can share.
1163  ShareSettingType_OnlyHostCanShare = 1,//Only host can start sharing when someone else is sharing.
1164  //Only one participant can share at a time. And anyone can start sharing when someone else is sharing.
1165  ShareSettingType_AnyoneCanGrab = 2,
1166  //Multi participant can share at a moment.
1167  ShareSettingType_MutiShare = 3,
1168  ShareSettingType_None = 4,
1169 }ZoomSDKShareSettingType;
1170 
1174 typedef enum {
1175  //When user share screen will enter full screen
1176  shareSettingCmd_enterFullScreen,
1177  //When user to share screen will enter max window
1178  shareSettingCmd_enterMaxWindow,
1179  //When user user side to side mode
1180  shareSettingCmd_sideToSideMode,
1181 }shareSettingCmd;
1182 
1186 typedef enum {
1187  //Attendee only view the answered question.
1188  ViewType_OnlyAnswered_Question = 0,
1189  //Attendee view the all question.
1190  ViewType_All_Question,
1191 }AttendeeViewQuestionType;
1192 
1196 typedef enum {
1197  //The question state is init.
1198  QAQuestionState_Init = 0,
1199  //The question is sent.
1200  QAQuestionState_Sent,
1201  //The question is received.
1202  QAQuestionState_Received,
1203  //The question send fail.
1204  QAQuestionState_SendFail,
1205  //The question is sending.
1206  QAQuestionState_Sending,
1207  //The question state is unknow for init.
1208  QAQuestionState_Unknow,
1209 }ZoomSDKQAQuestionState;
1210 
1214 typedef enum {
1215  //The Q&A is connecting.
1216  QAConnectStatus_Connecting = 0,
1217  //The Q&A is connected.
1218  QAConnectStatus_Connected,
1219  //The Q&A is disonnected.
1220  QAConnectStatus_Disonnected,
1221  //The Q&A is disonnected conflict.
1222  QAConnectStatus_Disconnect_Conflict,
1223 }ZoomSDKQAConnectStatus;
1224 
1228 typedef enum {
1229  //The audio button action info is none.
1230  ZoomSDKAudioActionInfo_none = 0,
1231  //The audio button action info is need to join voip.
1232  ZoomSDKAudioActionInfo_needJoinVoip,
1233  //The audio button action info is need to mute/unmute audio.
1234  ZoomSDKAudioActionInfo_muteOrUnmenuAudio,
1235  //The audio button action info is no audio device connected.
1236  ZoomSDKAudioActionInfo_noAudioDeviceConnected,
1237  //The audio button action info is computer audio device error.
1238  ZoomSDKAudioActionInfo_computerAudioDeviceError,
1239 }ZoomSDKAudioActionInfo;
1240 
1244 typedef enum{
1245  //the breakout meeting status is unknow.
1246  ZoomSDKBOUserStatus_Unknow = 0,
1247  //the breakout meeting status is unassigned.
1248  ZoomSDKBOUserStatus_UnAssigned,
1249  //the breakout meeting status is not join breakout meeting.
1250  ZoomSDKBOUserStatus_Assigned_Not_Join,
1251  //the breakout meeting status is in breakout meeting.
1252  ZoomSDKBOUserStatus_InBreakOutMeeting,
1253 }ZoomSDKBOUserStatus;
1254 
1258 typedef enum{
1259  //For initialization.
1260  ZoomSDKInterpreLanguage_NONE,
1261  //English
1262  ZoomSDKInterpreLanguage_US,
1263  //Chinese
1264  ZoomSDKInterpreLanguage_CN,
1265  //Japanese
1266  ZoomSDKInterpreLanguage_JP,
1267  //German
1268  ZoomSDKInterpreLanguage_DE,
1269  //French
1270  ZoomSDKInterpreLanguage_FR,
1271  //Russian
1272  ZoomSDKInterpreLanguage_RU,
1273  //Portuguese
1274  ZoomSDKInterpreLanguage_PT,
1275  //Spanish
1276  ZoomSDKInterpreLanguage_ES,
1277  //Korean
1278  ZoomSDKInterpreLanguage_KR,
1279 } ZoomSDKInterpreLanguage;
1280 
1284 typedef enum {
1285  //The value is one.
1286  ZoomSDKFPSValue_One,
1287  //The value is two.
1288  ZoomSDKFPSValue_Two,
1289  //The value is four.
1290  ZoomSDKFPSValue_Four,
1291  //The value is six.
1292  ZoomSDKFPSValue_Six,
1293  //The value is eight.
1294  ZoomSDKFPSValue_Eight,
1295  //The value is ten.
1296  ZoomSDKFPSValue_Ten,
1297  //The value is fifteen.
1298  ZoomSDKFPSValue_Fifteen,
1299 }ZoomSDKFPSValue;
1300 
1304 typedef enum {
1305  //Host is handling other's request with the request dialog, no chance to show dialog for this request.
1306  ZoomSDKRequest4HelpResult_Busy,
1307  //Host click "later" button or close the request dialog directly.
1308  ZoomSDKRequest4HelpResult_Ignore,
1309  //Host already in your BO meeting.
1310  ZoomSDKRequest4HelpResult_HostAlreadyInBO,
1311  //For initialization (Host receive the help request and there is no other one currently requesting for help).
1312  ZoomSDKRequest4HelpResult_Idle,
1313 }ZoomSDKRequest4HelpResult;
1314 
1315 
1316 typedef enum
1317 {
1318  ZoomSDKRawDataMemoryMode_Stack,
1319  ZoomSDKRawDataMemoryMode_Heap,
1320 }ZoomSDKRawDataMemoryMode;
1321 
1322 typedef enum
1323 {
1324  ZoomSDKResolution_90P,
1325  ZoomSDKResolution_180P,
1326  ZoomSDKResolution_360P,
1327  ZoomSDKResolution_720P,
1328  ZoomSDKResolution_1080P,
1329  ZoomSDKResolution_NoUse = 100
1330 }ZoomSDKResolution;
1331 
1332 typedef enum
1333 {
1334  ZoomSDKLOCAL_DEVICE_ROTATION_ACTION_UNKnown,
1335  ZoomSDKLOCAL_DEVICE_ROTATION_ACTION_0,
1336  ZoomSDKLOCAL_DEVICE_ROTATION_ACTION_CLOCK90,
1337  ZoomSDKLOCAL_DEVICE_ROTATION_ACTION_CLOCK180,
1338  ZoomSDKLOCAL_DEVICE_ROTATION_ACTION_ANTI_CLOCK90,
1339 }ZoomSDKLocalVideoDeviceRotation;
1340 
1341 typedef enum
1342 {
1343  ZoomSDKRawDataType_Video = 1,
1344  ZoomSDKRawDataType_Share,
1345 }ZoomSDKRawDataType;
1346 
1350 typedef enum
1351 {
1352  //The file type is PNG.
1353  ZoomSDKAnnotationSavedType_PNG,
1354  //The file type is PDF.
1355  ZoomSDKAnnotationSavedType_PDF
1356 }ZoomSDKAnnotationSavedType;
1357 
1361 typedef enum
1362 {
1363  //Allow attendee to chat with everyone.[for webinar]
1364  ZoomSDKChatPriviledgeType_To_EveryOne,
1365  //Allow attendee to chat with all panelists only.[for webinar]
1366  ZoomSDKChatPriviledgeType_To_All_Panelist,
1367 }ZoomSDKChatPriviledgeType;
1368 
1372 typedef enum
1373 {
1374  //For initialize
1375  ZoomSDKChatMessageType_To_None,
1376  //Chat message is send to all.
1377  ZoomSDKChatMessageType_To_All,
1378  //Chat message is send to all panelists.
1379  ZoomSDKChatMessageType_To_All_Panelist,
1380  //Chat message is send to individual attendee and cc panelists.
1381  ZoomSDKChatMessageType_To_Individual_Panelist,
1382  //Chat message is send to individual user.
1383  ZoomSDKChatMessageType_To_Individual,
1384  //Chat message is send to waiting room user.
1385  ZoomSDKChatMessageType_To_WaitingRoomUsers,
1386 }ZoomSDKChatMessageType;
1387 
1388 typedef enum
1389 {
1390  //For initialize
1391  ZoomSDKSuppressBackgroundNoiseLevel_None,
1392  ZoomSDKSuppressBackgroundNoiseLevel_Auto,
1393  ZoomSDKSuppressBackgroundNoiseLevel_Low,
1394  ZoomSDKSuppressBackgroundNoiseLevel_Medium,
1395  ZoomSDKSuppressBackgroundNoiseLevel_High,
1396 }ZoomSDKSuppressBackgroundNoiseLevel;
1397 
1402 typedef enum
1403 {
1404  //Screen capture mode is auto.
1405  ZoomSDKScreenCaptureMode_Auto,
1406  //Screen capture mode is legacy.
1407  ZoomSDKScreenCaptureMode_Legacy,
1408  //Screen capture mode is copy with window filter.
1409  ZoomSDKScreenCaptureMode_GPU_Copy_Filter,
1410  //Screen capture mode is advanced copy with window filter.
1411  ZoomSDKScreenCaptureMode_ADA_Copy_Filter,
1412  //Screen capture mode is advanced copy without window filter.
1413  ZoomSDKScreenCaptureMode_ADA_Copy_Without_Filter,
1414 }ZoomSDKScreenCaptureMode;
1415 
1420 typedef enum
1421 {
1422  //Light adaption is none.
1423  ZoomSDKSettingVideoLightAdaptionModel_None,
1424  //Light adaption by auto.
1425  ZoomSDKSettingVideoLightAdaptionModel_Auto,
1426  //Light adaption by manual.
1427  ZoomSDKSettingVideoLightAdaptionModel_Manual,
1428 }ZoomSDKSettingVideoLightAdaptionModel;
1429 
1430 typedef enum
1431 {
1432  ZoomSDKSettingVBVideoError_None = 0,
1433  ZoomSDKSettingVBVideoError_UnknowFormat,
1434  ZoomSDKSettingVBVideoError_ResolutionBig,
1435  ZoomSDKSettingVBVideoError_ResolutionHigh720P,
1436  ZoomSDKSettingVBVideoError_ResolutionLow,
1437  ZoomSDKSettingVBVideoError_PlayError,
1438  ZoomSDKSettingVBVideoError_OpenError,
1439 }ZoomSDKSettingVBVideoError;
1440 
1441 typedef enum
1442 {
1443  ZoomSDKVideoEffectType_None = 0,
1444  ZoomSDKVideoEffectType_Filter = 1,
1445  ZoomSDKVideoEffectType_Frame = 2,
1446  ZoomSDKVideoEffectType_Sticker = 4,
1447 }ZoomSDKVideoEffectType;
1448 
1449 typedef enum
1450 {
1451  ZoomSDKUIAppearance_System,
1452  ZoomSDKUIAppearance_Light,
1453  ZoomSDKUIAppearance_Dark,
1454 }ZoomSDKUIAppearance;