/
meeting.proto
1699 lines (1564 loc) · 89.2 KB
/
meeting.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
package com.saasbee.webapp.proto;
option java_package = "com.saasbee.webapp.proto";
option java_outer_classname = "MeetingProtos";
option optimize_for = LITE_RUNTIME;
message AttendeeProto {
optional string email = 1;
optional string displayName = 2;
optional string picUrl = 3;
optional string userId = 4;
}
message AttendeeListProto {
repeated AttendeeProto attendee = 1;
}
message InterpreterProto {
required string email = 1;
required string firstLanguage = 2;
required string secondLanguage = 3;
}
message InterpreterListProto{
repeated InterpreterProto interpreters = 1;
}
message CountryCodeProto {
optional string id = 1; // country id, such as 'CA' for Canada
optional string name = 2; // country name, such as 'Canada'
optional string code = 3; // country code, such as '+1'
optional string number = 4; // call-in number (not formatted as zoomconference page), such as '+1 6475580588'
optional string displayNumber = 5; // call-in display number (formatted as zoomconference page), such as '+1 647 558 0588', new client should use this
optional int32 callType = 6; //0: toll, 1: toll-free, 10: premium, 999: internal call out
optional string areaCodes =7; //area code,such as '684,264', multiple codes are separated by comma
}
message CountryCodeListProto {
repeated CountryCodeProto countryCode = 1;
}
message H323DeviceProto{
enum DeviceType {
H323 = 1;
SIP = 2;
BOTH = 3;
}
enum EncryptType {
NO = 0;
YES = 1;
AUTO = 2;
}
required string deviceName=1;
required string deviceIp=2;
required DeviceType deviceType=3; //1 H.323 2 SIP 3 Both
optional EncryptType encryptType=4; //0 NO 1 Yes 2 Auto
optional string e164number=5;
}
message RCProto{
required string ip =1;
required string token=2;
}
message PreAssignBoItemProto {
optional string BoName = 1;
repeated string email = 2;
}
message MeetingProto {
enum Status {
NOT_START = 0;
IN_PROCESS = 1;
FINISHED = 2;
}
enum MeetingType {
PRE_SCHEDULE = 0;
INSTANT = 1;
SCHEDULE = 2;
REPEAT = 3;
}
enum ExtendMeetingType {
NORMAL = 0;
PMI = 1;
WEBINAR = 2;
SIMULIVEWEBINAR = 3;
}
enum CalloutType {
NONE = 0;
US_ONLY = 1;
INTERNATIONAL = 2;
}
enum WaitMeetingStatus {
NO_WAITING = 0;
OUT_12_HOURS = 1;
IN_12_HOURS = 2;
IN_PRACTICE_SESSION = 3;
}
optional string id = 1;
optional string hostId = 2;
optional string hostName = 3;
optional string topic = 4;
optional string password = 5;
optional Status status = 6;
optional int64 startTime = 7; // scheduled start time, not actual start time
optional int32 duration = 8;
optional int64 options = 9; // client options, not used in web backend
optional string pingServer = 10; // ping zc list
optional string token = 11;
optional int64 meetingNumber = 12;
optional AttendeeListProto attendees = 13;
optional string agenda = 14;
optional int64 lastModified = 15;
optional int32 phoneId = 16; // attendee ID for teleconference
optional string callinNumber = 17; // US call in number if enabled PSTN
optional string hostZC = 18;
optional string topMMR = 19;
optional MeetingType type = 20;
optional int32 hasPassword = 21;
optional string googleCalendarUrl = 22;
optional string gmailUrl = 23;
optional string yahooUrl = 24;
optional string inviteEmail = 25; // doesn't include meeting time
optional string inviteEmailWithTime = 26; // include meeting time
optional int32 isInternal = 27; // internal meeting to start in hybrid cloud
optional string joinUrl = 28; // meeting join url
optional int64 scheduleOptions = 29; // schedule options
repeated string inprogressMeetingId = 30; // inprogress meeting ids
optional int32 repeatType = 31; // repeat type: daily, weekly, bi-weekly, monthly, etc
optional int64 repeatEndTime = 32; // end time of repeat meeting
optional string timezone = 33; // client's local timezone
optional int32 hostType = 34; // host sns type, default value -1
optional string hostEmail = 35; // host email address, default value is EMPTY
optional string h323Gateway = 36; // h323 gateway, delimiter: ";", default value is EMPTY
optional int32 enablePSTN = 37; // enablePSTN, 0/1, default value is 0
optional string assistantId = 38; // assistant user id
optional int32 isViewOnlyJoin = 39; // is view-only join, default value is 0
optional int32 isSupportTollFree = 40; // default value is 0
optional string tollFreeCallInNumber = 41; // toll free numbers, delimiter: ";", default value is EMPTY
optional ExtendMeetingType exType = 42; // extend meeting type for PMI, Webinar
optional string h323Password = 43; // pure digit password for H323 gateway join
optional string teleConfUrl = 44; // teleconference page url
optional int32 meetingCapacity = 45;
optional string inviteEmailSubject = 46; // branded invite email subject
optional int32 pstnOptions = 47; // pstn options: bit0-if need to confirm 1 to join meeting or not, bit1-check the account is an enterprise or not
optional int32 needRegWebinar = 48; // need to register webinar as attendee
optional string webinarRegUrl = 49; // webinar registration url
optional string backupPingServer = 50; // backup AWS ping zc list for Paid account
optional int32 backupPingDelay = 51; // backup AWS ping delay time in milliseconds
optional string webinarJID = 52; // webinar QA group JID
optional int32 enableH323 = 53; // enable H323 join, 0/1, default 0
optional CalloutType supportCallout = 54; // support call-out type
optional CountryCodeListProto calloutCountry = 55; // call-out country list
optional CountryCodeListProto callinCountry = 56; // call-in country and number list
optional string otherTeleConfInfo = 57; // other teleconference info
optional int32 isAutoApprovalWebinar = 58; // auto approve register webinar attendee flag. 1 means auto approval.
optional int64 originalMtgNumber = 59; // original meeting number which replaced by PMI
optional string webinarToken = 60; // webinar token
repeated H323DeviceProto deviceList = 61; //h323/sip room list
repeated RCProto crclist = 62;
repeated RCProto vrclist = 63;
optional string rawPassword = 64; // raw plain meeting password
repeated CountryCodeProto tollFreeCallInNumberList = 65; // tollfree callin numbers
optional string hostKey = 66; //Host key for PSTN/H323 gateway, it is md5 string
optional string tunnelServer = 67; // ping tunnel server list, delimiter: ";"
optional string expressTunnelServer = 68; // ping express tunnel server list, delimiter: ";"
optional WaitMeetingStatus statusExt = 69; // when meeting status is waiting or webinar session practice is close. return 1 means scheduleTime - now > 12 hours.
optional string defaultCallInCountry = 70; // default call in country ID in user profile, default is US
optional string restrictJoinUserDomains = 71; // Only signed-in users with specified domains can join meetings, delimiter: ";"
optional string listenOnlyPassword = 72; // pure digit listen only password for PAC meeting.
repeated AlternativeHost alternativeHost = 73; // alternative hostEmails and hostIds
optional string feedBackUrl = 74; // Webinar feed back url for attendees.
optional int32 hostUserType = 75; // host user type: 1-basic,2-pro,3-corp
optional int32 hostAccountType = 76; // host account type: 1-free cc,2-free,3-pro,4-active host,5-api,6-edu,7-biz,8-free trial,9-vip,10-bulk license,11-zoomrooms
optional string p2pPortRange = 77; // peer to peer port range.if value "5000;5020" indicate port range is 5000 to 5020
optional int64 scheduleOptions2 = 78; // schedule option2 from web
optional string inviteHtmlEmail = 79; // html format template outlook plugin
optional string vanityJoinUrl = 80; // use PVU for PMI meeting
repeated TrackingField trackingField = 81; // meeting tracking field
optional string customized_audio_files = 82; // account customized_audio_files
optional TSPProto tsp = 83; // TSP Info
optional string tspCallInInfo = 84; // MC:xxx;Conference Code:xxxx;Pin:xxxx;Merge Code:xxx
optional int64 pingOptions = 85; // start/join ping options
optional BroadcastMeetingItem broadcast = 86; // broadcast item
optional MeetingSettingForH323 mSettingsForH323 = 87;
optional string firstTimeUpgradeToken = 88; // for free user to upgrade to unlimited meeting for the first time
optional string customDSCPVal = 89; //for custom dscp value,55;41 means custom audio value is 55,custom video is 41
optional string closedCaptionUrl = 90; // the url for 3rd party CC to send closed caption to client
repeated CalloutSIPTrunk calloutSIPTrunks = 91;
optional int64 identityOptions = 92; // user identity option, e.g: one bit is: isGuestJoin
optional string customAccountTag = 93; // special custom account tag, currently it's for Huawei: huawei
optional AvailableDialinCountry availableDialinCountry= 94; // contains all countries, selected countries, is include Tollfree
optional string extInfo = 95; //For outlook plugin save special info in web.
optional SplashPageForWaitingRoom splashPageForWaitingRoom = 97; // splash Page For waiting Room
optional int32 linkedinSalesNavState = 98; // Support Linkedin Sales Navigator Wedgit Plugin
optional string linkedinSalesNavUrl = 99; // Linkedin Sales Navigator Wedgit URL
repeated TSPAccountProto tspAccount = 100; // tsp account info
optional string selectedTspAccount = 101; // tsp1 tsp2
optional int32 usedUnlimitedMeetingCountForFreeUser = 102; // the used unlimited meeting count for free user to upgrade
optional string freeUserUpgradeUrl = 103; // https://zoom.us/buy
optional int32 billedType = 104; // billed type 0 for billed annually 1 for billed monthy
optional int32 isRegistrationMeeting = 105; // 1-Yes 0-NO default value is 0
optional string registrationUrl = 106;
optional string registrationEmail = 107;
optional int32 isReturnInvitation = 108; // 1-Yes 0-NO default value is 0;
optional ExtendMeetingType newExtType = 109; // extend meeting type for PMI, Webinar,
optional string tgBridgeId = 110; // USTB EUTB. Tg bridge for each host,ZOOM-66757
optional string launchDropboxShareInMeetingUrl = 111; // DEPRECATED!! dropbox share in meeting url for launch
optional FileIntegrationList shareFileInMeetingIntegrations = 112; //ZOOM-64503 deep link to share from dropbox
optional string removeNumberLeading0Codes =113; // ZOOM-78993, country codes which need remove leading 0 for account
optional string attendeeToken = 114; //ZOOM-72051 webinar attendees in TG join mmr with this token
repeated KeyValOption launchExtParameters = 115; // ZOOM-75897 Add dropbox file id to the share url - initiated from Dropbox surface
optional int64 scheduleOptions3 = 116; // schedule option3 from web
optional string userIdentifyToken = 117; // client use this token to send API request to servers like CRC, and pass to Web for some function authentication
optional string breakoutRoomInfo = 118; // breakout room if empty (this meeting don't have bo, else breakoutRoomInfo will be a link , can download bo configuration)
optional FileIntegrationList shareFileInChatIntegrations = 119; // ZOOM-83814
optional FileIntegrationList saveFileInChatIntegrations = 120; // ZOOM-83814
optional InterpreterListProto interpreters = 121; // interpreter list
repeated KeyValOption zoomTunnelServer = 122; // ZOOM-84982
optional string participantSecretKey256 = 123; //ZOOM-87204
optional int32 asyncLoadOptions = 124; //ZOOM-87204
optional RecordingReminderProto recordingReminderProto = 125;// ZOOM-99848 conf/j¡¢conf/i response, recording reminder custom text
optional string pluginIntegrationUrl = 126; //ZOOM-92273 the url for redirecting to the download-extension-plugins page
//miss some items, keep be consistent with web in ep branch
optional string smsuuid = 129;
repeated KeyValOption keyValOption = 130; //This is for key value options features, please ensure every key is unique
repeated KeyValOption sdkCommonOptions = 132; //ZOOM-119841 sdk common options
optional int32 jbhPriorMeetingStart = 133; //unit:minutes //ZOOM-41183 JBH - Only 15 minutes prior to meeting starting;
}
message RecordingReminderProto {
optional string language = 1;
optional string title = 2;
optional string description = 3;
optional string link_url = 4;
optional string link_text = 5;
}
message PreAssignBoListProto {
repeated PreAssignBoItemProto PreAssignBoList = 1;
}
message CalloutSIPTrunk {
optional string name = 1;
optional int32 trunkId = 2;
optional string sipServerAddr = 3;
optional string sipPort = 4;
optional string dnis = 5;
optional string numPrefix = 6;
optional int32 weight = 7;
optional string outboundCallID = 8;
optional int64 options = 9; //OPTIONA_SUPPORT_DELAY_OFFER = 0x2;
}
message MeetingSettingForH323 {
optional string dtmfcmd = 1;
optional int32 displayNameMode = 2; //1) Only Display Active user, 2) Display All, 3) Hide All
optional int32 layoutMode = 3; //1) Gallay View, 2) Full Screen, 3) Active View
}
message MeetingListProto {
repeated MeetingProto meeting = 1;
}
message FriendProto {
optional string friendId = 1; // sns (facebook) user id
optional int32 friendType = 2; // 0 - facebook, 1 - ...
}
message FriendListProto {
repeated FriendProto friend = 1;
}
message UserGroup {
required string groupId = 1;
required string name = 2;
}
message BrandingInfo {
optional string backgroundImgUrl = 1;
optional string zrpBackgroundImgUrl = 2;
optional string backgroundImgUrlOnFileServer = 3;
optional string zrpBackgroundImgUrlOnFileServer = 4;
}
message FileIntegration {
required string type = 1; // dropbox, sharepoint, box, gdrive, onedrive
required string name = 2; // Dropbox, Microsoft SharePoint, Box, Google Drive, One Drive
optional string icon = 3;
optional int32 techType = 4; // 1 for previewLink
}
message FileIntegrationList {
required string launchUrl = 1;
repeated FileIntegration instances = 2;
}
message E2EKMSInfo {
optional string alias = 1;
optional string serviceUrl = 2;
}
message BandwidthLimitation {
optional int32 bandwidth_limit_type = 1;
optional string bandwidth_limit_name = 2;
optional string bandwidth_limit_ip_range = 3;
optional int32 bandwidth_limit_up = 4;
optional int32 bandwidth_limit_down = 5;
optional int32 config_option = 6; //for other config option, ex: video/audio on or off, and so on
}
message BandwidthLimitationList {
repeated BandwidthLimitation bandwidthLimitList = 1;
}
message UserProfile {
required string id = 1;
optional string name = 2;
optional string credential = 3;
optional string email = 4;
optional string picUrl = 5;
optional string snsId = 6; // sns id
optional int32 snsType = 7; // sns type: 0-facebook, 1/2-google, 100-work email, 101-sso
optional string accountId = 8; // account id
optional int32 role = 9; // user role
optional int32 userType = 10; // user type: 1-basic,2-paid,3-corp
optional int32 accountType = 11; // account type: 1-free cc,2-free,3-pro,4-active host,5-api,6-edu,7-biz,8-free trial,9-vip,10-bulk license,11-zoomrooms
optional int32 canUpgrade = 12; // can upgrade to paid user/account: 0/1
optional int64 pmi = 13; // PMI meeting number
optional string vanityUrl = 14; // PMI vanity Url
optional string firstName = 15;
optional string lastName = 16;
optional int32 enableColocation = 17;
optional string coRegion = 18; // attendee's assigned dc region, such as SC (always return SC for US attendees), CN, HK
optional string roomName = 19; // ZoomPresence resource name, such as "Room 403"
optional int32 bindWithMobile = 20; // bind with mobile devices for XMPP
optional string zoomJID = 21; // mobile messenger or desktop IM JID for client, or webinar QA JID
optional string zoomXmppToken = 22; // mobile messenger or desktop IM token for client, or webinar QA token
repeated UserGroup group = 23; // user groups for XMPP
optional string roomAddr = 24; // ZoomPresnece address, including protocol, IP and port, such as "tcp|pkg|rlb://10.110.6.8:9090"
optional string roomToken = 25; // ZoomPresence control token
optional string addBuddyUrl = 26; // add-buddy URL
optional string addBuddyEmail = 27; // add-buddy email body
optional string addBuddySubject = 28; // add-buddy email subject
optional string roomPassword = 29; // ZoomPresence password
optional int32 disablePSTN = 30; // disable PSTN, default 0
optional int64 featureOptions = 31; // features enable/disable flag, use bit
optional string roomResourceEmail = 32; // ZoomPresence Resource Email
optional string timezone = 33; // user timezone, empty if user hasn't set on page
optional string otherTeleConfInfo = 34; // other teleconference info
optional string passcode = 35; // passcode for BSC client
repeated Rooms room = 36; // ZoomPresence Room list of the user
optional string zpGoogleAccessToken = 37; // ZP access token for service account
optional string exchangeRoomEmail = 38; //email address of room/resource in Exchange system
optional string exchangeEMSURL = 39; //URL of Exchange Web Service
optional string exchangePassword = 40; //password of the email in Exchange system, not password of the work email in Zoom system
optional string defaultCallinTollCountry = 41; //default call in country for toll numbers
optional string exchangeDomain = 42; //domain in Exchange System
optional BrandingInfo brandingInfo = 43;
optional string restrictJoinUserDomains = 44; // The account level restrict domains, use this for default value if user first time enable this option on schedule.
optional int32 e2eLogoffTime = 45; //e2e chat log off time
optional string userHostKey = 46; //user host key
optional int64 featureOptions2 = 47; // features2 enable/disable flag, use bit
optional RoomRendererOptions roomRendererOptions = 48;
repeated VirtualBackground virtualBackground = 49; //Virtual background img list
optional string siteVanityUrl = 50; //sso vanity url
optional ClientSettings clientSettings = 51; // More profile fields, currently for Zoom Rooms management settings, but may be used for normal client in the future.
repeated TrackingField trackingField = 52;
optional string roomSupportEmail = 53;
optional string roomSupportPhone = 54;
optional int32 ssoEnforceLogoutTime = 55;//sso enforce logout time, second granularity
optional OperationTime operationTime = 56;// Zoom rooms operation time
optional MessengerOptions messengerOptions = 57; //Zoom messenger options
repeated ZRAlertOptions alertOptions = 58;
optional int64 zrOptions1 = 59; // options1 for ZR settings, enable/disable flag, use bit
optional int64 zrOptions2 = 60; // options2 for ZR settings, enable/disable flag, use bit
optional string zrCalenderResourseId = 61; //Only for Google service calendar
optional string customDSCPVal = 62; //for custom dscp value,55;41 means custom audio value is 55,custom video is 41
optional string exchangeManageEmail = 63;
optional int32 zpGoogleAccessTokenRefreshInterval = 64; //client need refresh zpGoogleAccessToken after xx seconds
optional string attendeeLocation = 65; // attendee's ip location country code, such as US, CN, HK
optional string attendeeEventLog = 66;
repeated KeyValOption keyValOptions = 67;
optional int64 featureOptions3 = 68; // features3 enable/disable flag, use bit
optional int64 featureOptions4 = 69; // features4 feature lock flag, use bit
optional int64 featureOptions5 = 70; // features5 enable/disable flag, use bit
optional BillingStatus billingStatus = 71;
optional LedHZ ledHZ = 72; // ZRP use it to indicate room free or busy status
optional CheckInInfo roomCheckInInfo = 73; // for zoom room client
optional UpgradeInfo upgradeInfo = 74;
optional string defaultMeetingTopic = 75; //email subject from email template for outlook plugin
optional int64 opClientOptions = 76; //Client options that configured in op web system properties, key: op_client_options. Web pass it to client directly.
optional TSPProto tsp = 77; // TSP Info
repeated TSPAccountProto tspAccount = 78; // tsp account info
optional string ewsAccessToken = 79; //office oauth2 accessToken
optional int32 ewsAccessTokenRefreshInterval = 80;
optional ZREncryptionInfo zrEncryption = 81; // ZOOM-46999 - Encryption information for zr and zrc communication
optional string zrSecretKey = 82; // zoom room secret key for multi-share
optional string publicEventListUrl = 83; //public event list url
optional int32 userRegistrationType = 84; // ZOOM-44755 - Web API: Client can schedule meeting with "Registration" 0-disable 1-enable
optional FileIntegrationList shareFileInChatIntegrations = 85; // ZOOM-71079 Web Integration-File storage integrations (Dropbox)
optional FileIntegrationList saveFileInChatIntegrations = 86; // ZOOM-71079 Web Integration-File storage integrations (Dropbox)
optional int32 releaseNotesRefreshInterval = 87; // unit: second, for zr
optional BandwidthLimitationList bandwidthLimitList = 88; //ZOOM-79851 Zoom Desktop Client - Bandwidth Limit Option New
optional ZREncryptionInfo zrEncForDirectShare = 90; // return aesKey, aesIV to client for direct share encryption
optional bool isZRSupportEncForDirectShare = 91; // return whether zr support direct share encryption
optional string serviceEmail = 92; // service email for user email/calendar/contacts integration
optional string supportInterpretationLanguages = 93; // return support languageId list
optional ZRVirtualBackgroundList zrVirtualBackgroundList = 94; //Virtual Background for ZR
optional string clientPassphrase = 95; // Provide passphrase in web login response
repeated RoomProfileTemplate roomProfileTemplate = 96;
optional E2EKMSInfo e2eKmsInfo = 97;
optional int32 calendarType = 98; // None = 0; Google = 1; Exchange_Online = 2; Exchange_On_Premise = 3;
optional int32 calendarRefreshInterval = 99; // ZOOM-113578: in seconds, valid range [60, 15*60], only used for Exchange_On_Premise
}
message ZREncryptionInfo {
optional string aesKey = 1;
optional string aesIV = 2;
}
message UpgradeInfo{
optional int32 isShowUpgradeLink = 1;
optional string upgradeLink = 2;
optional string contactName = 3;
optional string contactEmail = 4;
}
message LedHZ{
optional bool status = 1; // enabled or disabled this function
optional int32 free_hz = 2; // frequency to show color for free status, like green
optional int32 busy_hz = 3; // frequency to show color for busy status, like red
optional int32 off_hz = 4; // frequency to trun off the led
}
message CheckInInfo {
optional bool status = 1; // enabled or disabled this function
optional int32 timeForPriorCheckIn = 2; // allow participants to check in {} min prior to meeting start time in seconds
optional int32 timeForNoCheckInRelease = 3; // release room after {} min of no check in in seconds
optional bool enableNotification = 4; // enabled or disabled check-in notifications on the TV screen
optional int32 countForReleaseRecurringMeetings = 5; // remove recurring meeting after {} instances
}
message BillingStatus{
required int32 status = 1; // 0: paid, 1 in freeTrial, 2: Join Only
optional int32 freeTrialDays = 2;
}
message KeyValOption{
//key: zrapi_passcode, digital_signage_playlist, digital_signage_settings, calendar_config_url
//key: app_es(es = encrypted sed)
optional string key = 1;
optional string val = 2;
optional int32 amendmentFlag = 3; // null or 0: update; 1: remove
}
message MessengerOptions{
optional int32 e2e_cert_expire_time = 1; //im_certificate_expire_time, in minutes
optional int32 e2e_key_expire_time = 2; //im_ciphered_key_expire_time, in minutes
optional string emoji_version = 3; //emoji package version in json format
optional string giphy_key = 4; //giphy key
optional string giphy_preload_list = 5; //giphy preload list
optional string local_storage_time = 6; //local storage period of time.
optional int64 im_options = 7; //IM options, enable/disable flag, use bit
optional string announcementInfo = 8; //AnnouncementInfo
optional int32 e2e_kms_key_expire_time = 9; //im_ciphered_key_expire_time, in minutes
}
message OperationTime {
//options
//0x01 : on/off this feature
//0x02 : Turn on/off TV
//0x04 : Dim Controller
//0x08 : Camera
//0x10 : Microphone
//0x20 : Speaker
//0x40 : Ignore High CPU
//0x80 : ZRC disconnection
//0x100 : ZRC Power
//days
//0x01 : Every Sunday
//0x02 : Every Monday
//0x04 : Every Tuesday
//0x08 : Every Wednesday
//0x10 : Every Thursday
//0x20 : Every Friday
//0x40 : Every Saturday
optional int64 start = 1; // ms
optional int64 end = 2; // ms
optional int64 options = 3; // enable/disable flag, use bit
optional int32 days = 4; // days flag, use bit
}
message ClientSettings {
optional int64 bitOptions = 1; // enable/disable flag, use bit
optional SipPhoneIntegration sipPhoneIntegration = 2; // if enabled, bitOptions set 0x1L
optional CloudPBX cloudPBX = 3; // CloudPBX info, if enabled, bitOptions set 0x2L
}
message SipPhoneIntegration {
optional string userName = 1;
optional string domain = 2; // example: zoom.us
optional string password = 3;
optional string authoriztionName = 4;
optional string registerServer = 5; // ip address like 10.100.1.1
optional string proxyServer = 6; // ip address like 10.100.1.1
optional int32 status = 7; // 0: init, 1: register success, 2: connection failed
optional int32 errorCode = 8; // 0: init, 1: register success, 2: connection failed
optional string errorString = 9;
optional int32 protocol = 10;//0: UDP, 1: TCP, 2: TLS, default is 0 UDP
optional int32 registrationExpiry = 11;//Registration Expiry in minutes
optional string voiceMail = 12;
optional int32 dtmfPayloadType = 13;
optional string registerServer2 = 14; // ip address like 10.100.1.1
optional string proxyServer2 = 15; // ip address like 10.100.1.1
optional int32 protocol2 = 16; // 0: UDP, 1: TCP, 2: TLS, default is 0 UDP
optional string registerServer3 = 17;
optional string proxyServer3 = 18;
optional int32 protocol3 = 19;
optional string activeRegisterServer = 20;
optional string activeProxyServer = 21;
optional int32 activeProtocol = 22;
}
message TrackingField {
optional string id = 1;
optional bool required = 2;
optional string trackField = 3;
optional string trackValue = 4;
optional string mtValue = 5;
}
message ProfileAmendment {
required string amendmentId = 1;
required int64 amendmentTime = 2; // milliseconds
optional UserProfile userProfile = 3; // Only include Id and updated fields
repeated MediaDeviceSetting deviceSetting = 4;
repeated ChangedBits changedBits = 5;
optional int64 changedRepeats = 6; // Set bit for changed repeated fields. 0x1: changedBits, 0x2: deviceSetting etc
optional MeetingProto meeting = 7;
repeated AlternativeHost altHost = 8; // schedule for alternative hosts
}
message ChangedBits {
// 1: UserProfile.featureOptions, 2: UserProfile.featureOptions2, 3: UserProfile.ClientSettings.bitOptions,
// 4: UserProfile.zrOptions1, 5: UserProfile.zrOptions2
// 20: MeetingProto.scheduleOptions, 21: MeetingProto.scheduleOptions2, 22: MeetingProto.identityOptions, 23: MeetingProto.scheduleOptions3
required int32 field = 1;
required int64 changedBit = 2; // long, bit, example 0x80000000000L
required bool newValue = 3; // true: set the bit, false: unset the bit
}
message MediaDeviceSetting {
// enum DeviceType {
// MICROPHONE = 0;
// SPEAKER = 1;
// CAMERA = 2;
// }
// enum OperationType { // Operation type will transfer to type 'ZP_PT_SETTING_OPERATION_TYPE'
// SET_VOLUME = 0;
// SELECT_DEVICE = 1;
// DISABLE_AEC = 2;
// START_TEST_DEVICE = 3;
// STOP_TEST_DEVICE = 4;
// DISABLE_AGC = 5;
// CONFIRM_MIC_COUNT = 6;
// ENABLE_HRR = 7;
// SET_PTZ_COM_ID = 8; // web not support
// TEST_RECORD_START = 9; // web not support
// TEST_RECORD_END = 10; // web not support
// DISABLE_SUPPRESS_NOISE = 11;
// SET_MIC_PICKUP_RANGE = 12;
// SET_DEVICE_DISPLAY_NAME = 13; // web not support
// }
optional string device_id = 1; //in client to web id-1
optional string device_name = 2; //in client to web id-2
optional int32 device_type = 3; //DeviceType
optional int32 operation_type = 4; //OperationType
optional int32 volume = 5; //Only for microphone&speaker volume settings
optional bool is_aec_disabled = 6;
optional bool is_agc_disabled = 7;
optional string device_alias_name = 8; //maybe in client to web, depends on device, camera has, other do not have. id-3
optional bool selected_device = 9; //in client to web
optional bool manually_selected_device = 10;//in client to web, if false, warning to user
optional bool is_combined_device = 11;
optional int32 combined_device_count = 12;
optional bool is_hrr_enabled = 13; //Highly reverberant room
optional bool is_suppress_noise_disable = 14; // suppress excessive noise.
optional int32 mic_pickup_range = 15; // 0 = none, 1 = small, 2 = middle, 3 = big.
optional string device_display_name = 16; //in client to web, now renamed camera have, other device do not have.
optional int32 advanced_noise_suppression_state = 17; //0: moderate 1: aggressive 2:disable
}
message RoomProfileTemplate{
optional string templateID = 1;
optional bool isSelected = 2;
optional string templateName = 3;
optional RoomRendererOptions renderContent = 4;
optional MediaDeviceSetting microphoneSetting = 5;
optional MediaDeviceSetting speakerSetting = 6;
optional MediaDeviceSetting cameraSetting = 7;
}
message RemoteControlRequestProto {
// enum ControlEvent {
// RC_LEAVE_MEETING = 1;
// RC_RESTART_ZR = 2;
// RC_UPLOAD_LOGS = 3;
// RC_JOIN_DIRECT_SHARE_MEETING = 4;
// RC_PROFILE_AMENDMENT = 5; // 1: call back /pamendment API in a random delay in 10-70 seconds, return pAmendment in Response
// RC_CALENDAR_EVENT = 6;
// RC_JOIN_MEETING = 7;
// RC_CALL_A_CONTACT = 8; // Start an instant meeting and invite contact, if already in meeting, do invite.
// RC_SCHEDULE_MEETING = 9;
// RC_CANCEL_MEETING = 10;
// RC_SET_AUTO_LOGIN = 11;
// RC_RESTART_OS = 12;
// RC_UPGRADE_A_DOWNGRADE = 13;
// RC_UPGRADE_ROM = 14; // Upgrade third party device ROM. eg. DTEN D7
// }
required string rcRequestId = 1;
required int32 cEvent = 2; //ControlEvent
optional RestartZRREQ restart_zr = 3;
optional LeaveMeetingREQ leave_meeting = 4;
optional UploadZoomLogsREQ upload_logs = 5;
optional JoinDirectShareMeetingREQ join_share_meeting = 6;
optional ProfileAmendmentREQ profile_amendment = 7;
optional CalendarEvent calendar_event = 8;
optional JoinMeetingREQ join_meeting = 9;
optional InviteContactREQ invite_contact = 10;
optional MeetingREQ schedule_meeting = 11;
optional MeetingREQ cancel_meeting = 12;
optional int64 options = 13; //0x1: need_response_when_received, 0x2: need_response_when_handled
optional AutoLoginREQ auto_login = 14;
optional RestartOSREQ restart_os = 15;
optional UpgradeDowngradeREQ upgrade_downgrade = 16;
optional UpgradeRomREQ upgrade_rom = 17;
optional DeviceInfo to_device = 18; //need device_id and app_type here
}
message UpgradeRomREQ {
optional string package_url = 1;
optional string package_version = 2;
optional string rom_device_id = 3;
optional int32 when_to_upgrade = 4; // 0: idle time; 1: at night
optional int32 random_delay_second_min = 5;
optional int32 random_delay_second_max = 6;
}
message UpgradeDowngradeREQ {
optional int32 action = 1; // 1:upgrade, 2:downgrade, 3: cancel
}
message RestartOSREQ {
optional bool restart = 1;
}
//res_code: 200: success, other failed, set res_message
//Error_UsernamePassword = 1001, Error_DiskEncrypted = 1002, Error_NoPrivelege = 1003, 500 other unknown error.
message AutoLoginREQ {
optional string user_name = 1;
optional string password = 2; //encrypted
optional string osec_password = 3; //base64(encrypted password followd OS)
optional bool disable_os_auto_login = 4; //remove client data for set OS auto login
}
message RemoteControlResponseProto {
required string rcRequestId = 1;
//JoinMeetingREQ, InviteContactREQ: 486 Busy Here , 500 Server Internal Error
required int32 res_code = 2; // 1: sent by web, 2: recieved by ZR, 200: success, 200+ others are defined by each request event self
optional string res_message = 3;
optional MeetingREQ meeting = 4;
optional int32 err_code = 5; // client detail error code
}
message MeetingREQ {
optional string meeting_number = 1;
optional string meeting_name = 2;
optional string password = 3;
optional int64 start_time = 4;
optional int32 duration = 5; //minutes
optional int64 options = 6;
}
message InviteContactREQ {
repeated string jid = 1;
}
message JoinMeetingREQ {
//If no meeting number, means start an instant meeting (maybe PMI if enabled Use PMI for instant meeting)
optional int64 meeting_number = 1;
optional string password = 2;
// When ZR client is already in meeting, if force, it leave inprogress meeting and join this meeting, if not force, return busy.
// Default value is false
optional bool force_accept = 3;
}
message CalendarEvent {
optional bool doRefreshMeeting = 1;
}
message ProfileAmendmentREQ {
required int32 randomDelaySecondMin = 1;
required int32 randomDelaySecondMax = 2;
repeated int64 longParamsCallAPI = 3; //bit set for fields changed
repeated string stringParamsCallAPI = 4; //string name of fields changed
repeated ChangedField changedFields = 5; //Replace stringParamsCallAPI and longParamsCallAPI for changed fileds
}
message ChangedField {
optional string name = 1; // name of the changed filed, and may include the prefix for account, location, profile etc.
optional int64 bit = 2; // long, bit, example 0x80000000000L
}
message RestartZRREQ {
optional bool restart = 1;
optional int32 delay_time = 2; // add for delay restart, unit is seconds.
}
message LeaveMeetingREQ {
optional bool leave_meeting = 1;
optional bool end_meeting = 2; // default false, true means end the meeting if host is self
}
message JoinDirectShareMeetingREQ {
optional string meetingNumber = 1;
}
//Log File Type define
// #define TYPE_ZR_RELATED_LOG_FILES 0x0001
// #define TYPE_SYSTEM_LOG_FILE 0x0002
// #define TYPE_INSTALL_LOG_FILE 0x0004
// #define TYPE_AUTO_UPGRADE_LOG_FILE 0x0008
// #define TYPE_ZRDAEMON_LOG_FILES 0x0010
// #define TYPE_SIPCALL_RELATED_LOG_FILES 0x0020
// #define TYPE_OS_RES_LOG_FILE 0x0040
// #define TYPE_ZAAPI_RELATED_LOG_FILES 0X0100
// #define TYPE_ALL_BASIC_ZRLOGS_FILES 0xFFFF
// #define TYPE_AUDIO_RELATED_LOG_FILES 0X10000
// #define TYPE_AIRHOST_RELATED_LOG_FILES 0X20000
// #define TYPE_CRASH_DUMP_LOG_FILEs 0X40000
// #define TYPE_ALL_ZRLOGS_FILES 0x7FFFFFFF
message UploadZoomLogsREQ {
optional string email = 1; //default ZRC.PR@zoom.us, not for customer, only for login from OP
optional string subject = 2;
optional string body = 3;
optional int32 logType = 4; //only for login from OP, used by developer
}
//ZR infos update to Web when logged in or something change
message ZRInfos {
optional int32 display_num = 1;
optional ZRSettingsDeviceInfos devices_info = 2;
optional SipPhoneIntegration sipPhoneIntegration = 3;
repeated ChangedBits changedBits = 4;
repeated ZRMeetingPeopleCount zrMeetingPeopleCount = 5; // max people count in one meeting
optional string selectedRoomProfileTemplateID = 6;
}
message ZRMeetingPeopleCount {
required string meeting_id = 1;
required int32 count = 2;
}
message ZRSettingsDeviceInfos { //Return all device infos together, client to web
repeated MediaDeviceSetting microphone = 1;
repeated MediaDeviceSetting speaker = 2;
repeated MediaDeviceSetting camera = 3;
optional float mic_volume = 4;
optional float speaker_volume = 5;
optional bool is_aec_disabled = 6;
optional bool can_control_camera = 7;
optional bool is_self_video_mirrored = 8; // default true
optional bool is_mic_volume_adjustable = 9; //
optional bool is_speaker_volume_adjustable = 10;
optional bool is_agc_disabled = 11; //default
optional bool can_switch_camera_for_video = 12; //switch camera in meeting, only for in meeting
optional bool is_hrr_enabled = 13; //Highly reverberant room
optional bool is_suppress_noise_disable = 14;
optional int32 mic_pickup_range = 15; // 0 = none, 1 = small, 2 = middle, 3 = big.
optional int32 advanced_noise_suppression_state = 16; //0: moderate 1: aggressive 2:disable
}
//APP device, which should login with Zoom APP, like ZRC/ZRP, ZR/ZOOM etc.
message DeviceInfo {
optional string device_id = 1; // UDID
optional string device_name = 2; // ?
optional string os = 3; // iOS
optional string os_version = 4; // 10.3.1
optional int32 app_type = 5; // 0: ZR; 1: ZRC ; 2: ZRP; 3: Automation Controller
optional string app_version = 6; // 4.1.12345.0525
optional string extJson = 7;
optional string device_model = 8; //Computer model, for example Dell 7050, mac mini 2014
optional string gpu_info = 9;
optional string cpu_info = 10; //CPU info string, for example: intel i7 7700T
optional int32 cpu_cores = 11;
optional float cpu_frequency_GHz = 12; //For example: 2.66
optional float total_memory_GB = 13; //Total memory capacity, in GB
optional int32 memory_bank = 14; //Count of memory banks
optional float total_disk_GB = 15; //In GB
optional float used_disk_GB = 16; //In GB
optional int32 network_type = 17; //0: unknown, 1: wired, 2: wifi, 3: both
optional string displays_info = 18; //"{{0, 0}, {1920, 1080}}, {{0, 0}, {3840, 2160}}"
optional string serial_number = 19;
optional int32 is_iot_device = 20; // 0: normal device; 1: IoT device
optional string app_display_version = 21; //4.1.1 (12345.0525)
optional string os_build_number = 22; //17D47
optional string mac_addr = 23; // split by ","
optional bool with_internal_zrc = 24; //
optional string patches_info = 25; // Data format for Windows OS is
// {
// "patches": [
// {
// "Caption":"http://support.microsoft.com/?kbid=4100347",
// "CSName":"REED-DELL",
// "Description":"Update",
// "FixComments":"",
// "HotFixID":"KB4100347",
// "InstallDate":"",
// "InstalledBy":"NT AUTHORITY\SYSTEM",
// "InstalledOn":"3/4/2019",
// "Name":"",
// "ServicePackInEffect":"",
// "Status":""
// },
// {
// "Caption":"http://support.microsoft.com/?kbid=4343669",
// "CSName":"REED-DELL",
// "Description":"Update",
// "FixComments":"",
// "HotFixID":"KB4343669",
// "InstallDate":"",
// "InstalledBy":"NT AUTHORITY\SYSTEM",
// "InstalledOn":"7/11/2018",
// "Name":"",
// "ServicePackInEffect":"",
// "Status":""
// }
// ]
// }
optional string computer_name = 26; //ZR computer name, now only maczr/winzr fill value
optional string rom_device_id = 27;
optional string rom_version = 28;
}
message MDMDeviceInfo {
optional string device_id = 1; //mdm device id
}
message VirtualBackground {
optional string url = 1; //virtual background img url(cdn)
optional string zoomUrl = 2; //virtual background img url(zoom)
optional string name = 3; //virtual background img name
optional int32 type = 4; //virtual background img type 0:default,1:custom
}
message ZRVirtualBackground {
optional string id = 1; //img id
optional string big_img_url = 2; //big image for ZR
optional string small_img_url = 3; //small image for ZRC
optional string name = 4; //virtual background img name
optional bool is_default = 5;
}
message ZRVirtualBackgroundList{
repeated ZRVirtualBackground zr_virtual_background = 1;
}
message Rooms {
optional string roomName = 1; //zoom presence room name
optional string roomEmail = 2; //zoom presence room email address
optional string displayName = 3; //profile first name
}
message CallProto {
optional string id = 1;
optional string meetingId = 2; // not used, web will get it from token
optional string callingNumber = 3;
optional string calledNumber = 4;
optional int64 startTime = 5;
optional int64 endTime = 6;
optional string sipCallId = 7;
optional string topMMR = 8;
optional int64 callType = 9;
optional string originalSBC = 10;
optional string meetingNumber = 11; // not used, web will get it from token
optional string telGWAddr = 12;
optional string hostId = 13; // not used, web will get it from token
optional string reqId = 14; // request uuid, should be a unique uuid
optional string msSipCallId = 15;
optional string userInputMN = 16;
optional int32 endReason = 17;
optional string userData = 18;
}
message MeetingStatusProto {
enum Status {
NOT_START = 0;
IN_PROCESS = 1;
FINISHED = 2;
}
enum Sender {
MMZ = 0; // sender by MMZ ZC
BCZ = 1; // sender by BCS
}
required Status status = 1;
required string token = 2;
optional int32 attendees = 3; // meeting attendees #
optional int32 minutes = 4; // meeting duration
optional string topMMR = 5;
optional int32 meetingMinutes = 6; // actual meeting minutes
repeated string attendeeList = 7; // attendee list: {"id":"userid","name":"username","join":132413413243,"duration":55}, join is unix timestamp (seconds), duration is seconds
repeated int32 sessions = 8; // 1-audio, 2-AS, 3-video
optional int32 createByHost = 9; // meeting is create by host or not, 1-host create, 2-attendee create
optional int32 attendeesViewOnly = 10; // unused
optional Sender sender = 11; // event sender
optional string bcMtgInstanceId = 12; // bc meeting instance uuid
}
message MeetingStatusListProto {
enum Event {
NORMAL = 0; // normal status event
ZONE_FAILOVER = 1; // zone failover event
MMR_FAILOVER = 2; // mmr failover event
SUBZONE = 3; // sub zone join/leave event
NO_LICENCE = 4; //onprem licence expired
NO_CC = 5; //zc cannot connect CC service
}
repeated MeetingStatusProto status = 1; // meeting list to sync status
optional string zc = 2; // zc address
optional Event event = 3; // event type
optional string zone = 4; // zone name
optional string mmr = 5; // top mmr address
optional string accountId = 6; // account id of hybrid cloud
optional string signer = 7; // ZCWebToken signer: hmac(zc+zone)
}
message TeleConfBridge {
required string address = 1;
repeated string tollCallInNumbers = 2;
optional string tollFreeCallInNumber = 3;
}
message TeleConfParams {
repeated TeleConfBridge teleConfBridges = 1;
}
message CreateTeleConfResult {
required int32 result = 1;
required string tollCallInNumbers = 2;
optional string tollFreeCallInNumber = 3;
}
message MeetingToken {
required string uuid = 1; // meeting uuid
required int64 createTime = 2; // token create time
required int32 timeToLive = 3; // token ttl
required string hostId = 4; // host user id
optional string hostName = 6; // host user name
optional string topic = 5; // meeting topic
optional int64 options = 7; // meeting options
optional int32 meetingType = 8; // meeting type: 0-free, 1-paid, ...
optional int32 role = 9; // user role: 0-attendee, 1-host
optional int64 meetingNumber = 10; // meeting number
optional int32 enablePSTN = 11; // 0-disable PSTN, 1-enable PSTN
optional string teleConfParams = 12; // tele conf params in protobuf format
optional int32 meetingCapacity = 13; // capacity for max attendees per meeting, default is 25
}
/////////////////////////////
// deprecated
message UICommandProto {
required string cmdType = 1; // p1
required string action = 2; // p2
optional string p3 = 3;
}
message UICommandListProto {
optional string fid = 1;
repeated UICommandProto cmd = 2;
}
/////////////////////////////
message LogProto {
required string logTime = 1;
optional string fid = 2;
required string cmd = 3;
required string source = 4;
optional string p1 = 5;
optional string p2 = 6;
optional string p3 = 7;
optional string p4 = 8;
optional string p5 = 9;
optional string p6 = 10;
optional int32 count = 11; //repeat count, default value is 0.
optional int32 clientSendState = 12; //client use only
}
message LogListProto {
repeated LogProto log = 1;
}