Passed
Pull Request — master (#189)
by Ghazi
10:24
created

isLockSettingsLockOnJoinConfigurable()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
/*
4
 * BigBlueButton open source conferencing system - https://www.bigbluebutton.org/.
5
 *
6
 * Copyright (c) 2016-2022 BigBlueButton Inc. and by respective authors (see below).
7
 *
8
 * This program is free software; you can redistribute it and/or modify it under the
9
 * terms of the GNU Lesser General Public License as published by the Free Software
10
 * Foundation; either version 3.0 of the License, or (at your option) any later
11
 * version.
12
 *
13
 * BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
14
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
15
 * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public License along
18
 * with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
19
 */
20
21
namespace BigBlueButton\Parameters;
22
23
/**
24
 * Class CreateMeetingParameters.
25
 */
26
class CreateMeetingParameters extends MetaParameters
27
{
28
    use DocumentableTrait;
29
30
    /**
31
     * @var string
32
     */
33
    private $meetingId;
34
35
    /**
36
     * @var string
37
     */
38
    private $meetingName;
39
40
    /**
41
     * @var string
42
     *
43
     * @deprecated
44
     */
45
    private $attendeePassword;
46
47
    /**
48
     * @var string
49
     *
50
     * @deprecated
51
     */
52
    private $moderatorPassword;
53
54
    /**
55
     * @var string
56
     */
57
    private $dialNumber;
58
59
    /**
60
     * @var int
61
     */
62
    private $voiceBridge;
63
64
    /**
65
     * @var string
66
     */
67
    private $webVoice;
68
69
    /**
70
     * @var string
71
     */
72
    private $logoutUrl;
73
74
    /**
75
     * @var int
76
     */
77
    private $maxParticipants;
78
79
    /**
80
     * @var bool
81
     */
82
    private $record;
83
84
    /**
85
     * @var bool
86
     */
87
    private $autoStartRecording;
88
89
    /**
90
     * @var bool
91
     */
92
    private $allowStartStopRecording;
93
94
    /**
95
     * @var int
96
     */
97
    private $duration;
98
99
    /**
100
     * @var string
101
     */
102
    private $welcomeMessage;
103
104
    /**
105
     * @var string
106
     */
107
    private $moderatorOnlyMessage;
108
109
    /**
110
     * @var bool
111
     */
112
    private $webcamsOnlyForModerator;
113
114
    /**
115
     * @var string
116
     */
117
    private $logo;
118
119
    /**
120
     * @var string
121
     */
122
    private $copyright;
123
124
    /**
125
     * @var bool
126
     */
127
    private $muteOnStart;
128
129
    /**
130
     * @var bool
131
     */
132
    private $lockSettingsDisableCam;
133
134
    /**
135
     * @var bool
136
     */
137
    private $lockSettingsDisableMic;
138
139
    /**
140
     * @var bool
141
     */
142
    private $lockSettingsDisablePrivateChat;
143
144
    /**
145
     * @var bool
146
     */
147
    private $lockSettingsDisablePublicChat;
148
149
    /**
150
     * @var bool
151
     */
152
    private $lockSettingsDisableNote;
153
154
    /**
155
     * @var bool
156
     */
157
    private $lockSettingsHideUserList;
158
159
    /**
160
     * @var bool
161
     */
162
    private $lockSettingsLockedLayout;
163
164
    /**
165
     * @var bool
166
     */
167
    private $lockSettingsLockOnJoin = true;
168
169
    /**
170
     * @var bool
171
     */
172
    private $lockSettingsLockOnJoinConfigurable;
173
174
    /**
175
     * @var bool
176
     */
177
    private $lockSettingsHideViewersCursor;
178
179
    /**
180
     * @var bool
181
     */
182
    private $allowModsToUnmuteUsers;
183
184
    /**
185
     * @var bool
186
     */
187
    private $allowModsToEjectCameras;
188
189
    /**
190
     * @var bool
191
     */
192
    private $allowRequestsWithoutSession;
193
194
    /**
195
     * @var bool
196
     */
197
    private $isBreakout;
198
199
    /**
200
     * @var string
201
     */
202
    private $parentMeetingId;
203
204
    /**
205
     * @var int
206
     */
207
    private $sequence;
208
209
    /**
210
     * @var bool
211
     */
212
    private $freeJoin;
213
214
    /**
215
     * @var string
216
     */
217
    private $guestPolicy;
218
219
    /**
220
     * @var string
221
     */
222
    private $bannerText;
223
224
    /**
225
     * @var string
226
     */
227
    private $bannerColor;
228
229
    /**
230
     * @deprecated
231
     *
232
     * @var bool
233
     */
234
    private $learningDashboardEnabled;
235
236
    /**
237
     * @deprecated
238
     *
239
     * @var bool
240
     */
241
    private $virtualBackgroundsDisabled;
242
243
    /**
244
     * @var int
245
     */
246
    private $learningDashboardCleanupDelayInMinutes;
247
248
    /**
249
     * @var int
250
     */
251
    private $endWhenNoModeratorDelayInMinutes;
252
253
    /**
254
     * @var bool
255
     */
256
    private $endWhenNoModerator;
257
258
    /**
259
     * @var bool
260
     */
261
    private $meetingKeepEvents;
262
263
    /**
264
     * @deprecated
265
     *
266
     * @var bool
267
     */
268
    private $breakoutRoomsEnabled;
269
270
    /**
271
     * @var bool
272
     */
273
    private $breakoutRoomsRecord;
274
275
    /**
276
     * @var bool
277
     */
278
    private $breakoutRoomsPrivateChatEnabled;
279
280
    /**
281
     * @var string
282
     */
283
    private $meetingEndedURL;
284
285
    /**
286
     * @var string
287
     */
288
    private $meetingLayout;
289
290
    /**
291
     * @var int
292
     */
293
    private $userCameraCap;
294
295
    /**
296
     * @var int
297
     */
298
    private $meetingCameraCap;
299
300
    /**
301
     * @var int
302
     */
303
    private $meetingExpireIfNoUserJoinedInMinutes;
304
305
    /**
306
     * @var int
307
     */
308
    private $meetingExpireWhenLastUserLeftInMinutes;
309
310
    /**
311
     * @var bool
312
     */
313
    private $preUploadedPresentationOverrideDefault;
314
315
    /**
316
     * @var array
317
     */
318
    private $disabledFeatures = [];
319
320
    /**
321
     * @var array
322
     */
323
    private $breakoutRoomsGroups = [];
324
325
    /**
326
     * CreateMeetingParameters constructor.
327
     *
328
     * @param $meetingId
329
     * @param $meetingName
330
     */
331
    public function __construct($meetingId, $meetingName)
332
    {
333
        $this->meetingId   = $meetingId;
334
        $this->meetingName = $meetingName;
335
    }
336
337
    /**
338
     * @return string
339
     */
340
    public function getMeetingId()
341
    {
342
        return $this->meetingId;
343
    }
344
345
    /**
346
     * @param string $meetingId
347
     *
348
     * @return CreateMeetingParameters
349
     */
350
    public function setMeetingId($meetingId)
351
    {
352
        $this->meetingId = $meetingId;
353
354
        return $this;
355
    }
356
357
    /**
358
     * @return string
359
     */
360
    public function getMeetingName()
361
    {
362
        return $this->meetingName;
363
    }
364
365
    /**
366
     * @param string $meetingName
367
     *
368
     * @return CreateMeetingParameters
369
     */
370
    public function setMeetingName($meetingName)
371
    {
372
        $this->meetingName = $meetingName;
373
374
        return $this;
375
    }
376
377
    /**
378
     * @return string
379
     *
380
     * @deprecated
381
     */
382
    public function getAttendeePassword()
383
    {
384
        return $this->attendeePassword;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ters::$attendeePassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

384
        return /** @scrutinizer ignore-deprecated */ $this->attendeePassword;
Loading history...
385
    }
386
387
    /**
388
     * @param string $attendeePassword
389
     *
390
     * @return CreateMeetingParameters
391
     *
392
     * @deprecated
393
     */
394
    public function setAttendeePassword($attendeePassword)
395
    {
396
        $this->attendeePassword = $attendeePassword;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ters::$attendeePassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

396
        /** @scrutinizer ignore-deprecated */ $this->attendeePassword = $attendeePassword;
Loading history...
397
398
        return $this;
399
    }
400
401
    /**
402
     * @return string
403
     *
404
     * @deprecated
405
     */
406
    public function getModeratorPassword()
407
    {
408
        return $this->moderatorPassword;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ers::$moderatorPassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

408
        return /** @scrutinizer ignore-deprecated */ $this->moderatorPassword;
Loading history...
409
    }
410
411
    /**
412
     * @param string $moderatorPassword
413
     *
414
     * @return CreateMeetingParameters
415
     *
416
     * @deprecated
417
     */
418
    public function setModeratorPassword($moderatorPassword)
419
    {
420
        $this->moderatorPassword = $moderatorPassword;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ers::$moderatorPassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

420
        /** @scrutinizer ignore-deprecated */ $this->moderatorPassword = $moderatorPassword;
Loading history...
421
422
        return $this;
423
    }
424
425
    /**
426
     * @return string
427
     */
428
    public function getDialNumber()
429
    {
430
        return $this->dialNumber;
431
    }
432
433
    /**
434
     * @param string $dialNumber
435
     *
436
     * @return CreateMeetingParameters
437
     */
438
    public function setDialNumber($dialNumber)
439
    {
440
        $this->dialNumber = $dialNumber;
441
442
        return $this;
443
    }
444
445
    /**
446
     * @return int
447
     */
448
    public function getVoiceBridge()
449
    {
450
        return $this->voiceBridge;
451
    }
452
453
    /**
454
     * @param int $voiceBridge
455
     *
456
     * @return CreateMeetingParameters
457
     */
458
    public function setVoiceBridge($voiceBridge)
459
    {
460
        $this->voiceBridge = $voiceBridge;
461
462
        return $this;
463
    }
464
465
    /**
466
     * @return string
467
     */
468
    public function getWebVoice()
469
    {
470
        return $this->webVoice;
471
    }
472
473
    /**
474
     * @param string $webVoice
475
     *
476
     * @return CreateMeetingParameters
477
     */
478
    public function setWebVoice($webVoice)
479
    {
480
        $this->webVoice = $webVoice;
481
482
        return $this;
483
    }
484
485
    /**
486
     * @return string
487
     */
488
    public function getLogoutUrl()
489
    {
490
        return $this->logoutUrl;
491
    }
492
493
    /**
494
     * @param string $logoutUrl
495
     *
496
     * @return CreateMeetingParameters
497
     */
498
    public function setLogoutUrl($logoutUrl)
499
    {
500
        $this->logoutUrl = $logoutUrl;
501
502
        return $this;
503
    }
504
505
    /**
506
     * @return int
507
     */
508
    public function getMaxParticipants()
509
    {
510
        return $this->maxParticipants;
511
    }
512
513
    /**
514
     * @param int $maxParticipants
515
     *
516
     * @return CreateMeetingParameters
517
     */
518
    public function setMaxParticipants($maxParticipants)
519
    {
520
        $this->maxParticipants = $maxParticipants;
521
522
        return $this;
523
    }
524
525
    /**
526
     * @return null|bool
527
     */
528
    public function isRecorded()
529
    {
530
        return $this->record;
531
    }
532
533
    /**
534
     * @param bool $record
535
     *
536
     * @return CreateMeetingParameters
537
     */
538
    public function setRecord($record)
539
    {
540
        $this->record = $record;
541
542
        return $this;
543
    }
544
545
    /**
546
     * @return null|bool
547
     */
548
    public function isAutoStartRecording()
549
    {
550
        return $this->autoStartRecording;
551
    }
552
553
    /**
554
     * @param bool $autoStartRecording
555
     *
556
     * @return CreateMeetingParameters
557
     */
558
    public function setAutoStartRecording($autoStartRecording)
559
    {
560
        $this->autoStartRecording = $autoStartRecording;
561
562
        return $this;
563
    }
564
565
    /**
566
     * @return null|bool
567
     */
568
    public function isAllowStartStopRecording()
569
    {
570
        return $this->allowStartStopRecording;
571
    }
572
573
    /**
574
     * @param bool $allowStartStopRecording
575
     *
576
     * @return CreateMeetingParameters
577
     */
578
    public function setAllowStartStopRecording($allowStartStopRecording)
579
    {
580
        $this->allowStartStopRecording = $allowStartStopRecording;
581
582
        return $this;
583
    }
584
585
    /**
586
     * @return int
587
     */
588
    public function getDuration()
589
    {
590
        return $this->duration;
591
    }
592
593
    /**
594
     * @param int $duration
595
     *
596
     * @return CreateMeetingParameters
597
     */
598
    public function setDuration($duration)
599
    {
600
        $this->duration = $duration;
601
602
        return $this;
603
    }
604
605
    /**
606
     * @return string
607
     */
608
    public function getWelcomeMessage()
609
    {
610
        return $this->welcomeMessage;
611
    }
612
613
    /**
614
     * @param string $welcomeMessage
615
     *
616
     * @return CreateMeetingParameters
617
     */
618
    public function setWelcomeMessage($welcomeMessage)
619
    {
620
        $this->welcomeMessage = $welcomeMessage;
621
622
        return $this;
623
    }
624
625
    /**
626
     * @return string
627
     */
628
    public function getModeratorOnlyMessage()
629
    {
630
        return $this->moderatorOnlyMessage;
631
    }
632
633
    /**
634
     * @param string $message
635
     *
636
     * @return CreateMeetingParameters
637
     */
638
    public function setModeratorOnlyMessage($message)
639
    {
640
        $this->moderatorOnlyMessage = $message;
641
642
        return $this;
643
    }
644
645
    /**
646
     * @return null|bool
647
     */
648
    public function isWebcamsOnlyForModerator()
649
    {
650
        return $this->webcamsOnlyForModerator;
651
    }
652
653
    /**
654
     * @param bool $webcamsOnlyForModerator
655
     *
656
     * @return CreateMeetingParameters
657
     */
658
    public function setWebcamsOnlyForModerator($webcamsOnlyForModerator)
659
    {
660
        $this->webcamsOnlyForModerator = $webcamsOnlyForModerator;
661
662
        return $this;
663
    }
664
665
    /**
666
     * @return string
667
     */
668
    public function getLogo()
669
    {
670
        return $this->logo;
671
    }
672
673
    /**
674
     * @param string $logo
675
     *
676
     * @return CreateMeetingParameters
677
     */
678
    public function setLogo($logo)
679
    {
680
        $this->logo = $logo;
681
682
        return $this;
683
    }
684
685
    /**
686
     * @return string
687
     */
688
    public function getBannerText()
689
    {
690
        return $this->bannerText;
691
    }
692
693
    /**
694
     * @param string $bannerText
695
     *
696
     * @return CreateMeetingParameters
697
     */
698
    public function setBannerText($bannerText)
699
    {
700
        $this->bannerText = $bannerText;
701
702
        return $this;
703
    }
704
705
    /**
706
     * @return string
707
     */
708
    public function getBannerColor()
709
    {
710
        return $this->bannerColor;
711
    }
712
713
    /**
714
     * @param string $bannerColor
715
     *
716
     * @return CreateMeetingParameters
717
     */
718
    public function setBannerColor($bannerColor)
719
    {
720
        $this->bannerColor = $bannerColor;
721
722
        return $this;
723
    }
724
725
    /**
726
     * @deprecated
727
     *
728
     * @return bool
729
     */
730
    public function isLearningDashboardEnabled()
731
    {
732
        return $this->learningDashboardEnabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...earningDashboardEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

732
        return /** @scrutinizer ignore-deprecated */ $this->learningDashboardEnabled;
Loading history...
733
    }
734
735
    /**
736
     * @param bool $learningDashboardEnabled
737
     *
738
     * @deprecated
739
     *
740
     * @return CreateMeetingParameters
741
     */
742
    public function setLearningDashboardEnabled($learningDashboardEnabled)
743
    {
744
        $this->learningDashboardEnabled = $learningDashboardEnabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...earningDashboardEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

744
        /** @scrutinizer ignore-deprecated */ $this->learningDashboardEnabled = $learningDashboardEnabled;
Loading history...
745
746
        return $this;
747
    }
748
749
    /**
750
     * @deprecated
751
     */
752
    public function isVirtualBackgroundsDisabled(): bool
753
    {
754
        return $this->virtualBackgroundsDisabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...tualBackgroundsDisabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

754
        return /** @scrutinizer ignore-deprecated */ $this->virtualBackgroundsDisabled;
Loading history...
755
    }
756
757
    /**
758
     * @deprecated
759
     *
760
     * @param mixed $virtualBackgroundsDisabled
761
     */
762
    public function setVirtualBackgroundsDisabled($virtualBackgroundsDisabled)
763
    {
764
        $this->virtualBackgroundsDisabled = $virtualBackgroundsDisabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...tualBackgroundsDisabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

764
        /** @scrutinizer ignore-deprecated */ $this->virtualBackgroundsDisabled = $virtualBackgroundsDisabled;
Loading history...
765
766
        return $this;
767
    }
768
769
    /**
770
     * @return int
771
     */
772
    public function getLearningDashboardCleanupDelayInMinutes()
773
    {
774
        return $this->learningDashboardCleanupDelayInMinutes;
775
    }
776
777
    /**
778
     * @param int $learningDashboardCleanupDelayInMinutes
779
     *
780
     * @return CreateMeetingParameters
781
     */
782
    public function setLearningDashboardCleanupDelayInMinutes($learningDashboardCleanupDelayInMinutes)
783
    {
784
        $this->learningDashboardCleanupDelayInMinutes = $learningDashboardCleanupDelayInMinutes;
785
786
        return $this;
787
    }
788
789
    /**
790
     * @return int
791
     */
792
    public function getEndWhenNoModeratorDelayInMinutes()
793
    {
794
        return $this->endWhenNoModeratorDelayInMinutes;
795
    }
796
797
    /**
798
     * @param int $endWhenNoModeratorDelayInMinutes
799
     *
800
     * @return CreateMeetingParameters
801
     */
802
    public function setEndWhenNoModeratorDelayInMinutes($endWhenNoModeratorDelayInMinutes)
803
    {
804
        $this->endWhenNoModeratorDelayInMinutes = $endWhenNoModeratorDelayInMinutes;
805
806
        return $this;
807
    }
808
809
    /**
810
     * @return bool
811
     */
812
    public function isEndWhenNoModerator()
813
    {
814
        return $this->endWhenNoModerator;
815
    }
816
817
    /**
818
     * @param bool $endWhenNoModerator
819
     *
820
     * @return CreateMeetingParameters
821
     */
822
    public function setEndWhenNoModerator($endWhenNoModerator)
823
    {
824
        $this->endWhenNoModerator = $endWhenNoModerator;
825
826
        return $this;
827
    }
828
829
    /**
830
     * @return bool
831
     */
832
    public function isMeetingKeepEvents()
833
    {
834
        return $this->meetingKeepEvents;
835
    }
836
837
    /**
838
     * @param bool $meetingKeepEvents
839
     *
840
     * @return CreateMeetingParameters
841
     */
842
    public function setMeetingKeepEvents($meetingKeepEvents)
843
    {
844
        $this->meetingKeepEvents = $meetingKeepEvents;
845
846
        return $this;
847
    }
848
849
    /**
850
     * @return string
851
     */
852
    public function getCopyright()
853
    {
854
        return $this->copyright;
855
    }
856
857
    /**
858
     * @param string $copyright
859
     *
860
     * @return CreateMeetingParameters
861
     */
862
    public function setCopyright($copyright)
863
    {
864
        $this->copyright = $copyright;
865
866
        return $this;
867
    }
868
869
    /**
870
     * @return null|bool
871
     */
872
    public function isMuteOnStart()
873
    {
874
        return $this->muteOnStart;
875
    }
876
877
    /**
878
     * @param bool $muteOnStart
879
     *
880
     * @return CreateMeetingParameters
881
     */
882
    public function setMuteOnStart($muteOnStart)
883
    {
884
        $this->muteOnStart = $muteOnStart;
885
886
        return $this;
887
    }
888
889
    /**
890
     * @return null|bool
891
     */
892
    public function isLockSettingsDisableCam()
893
    {
894
        return $this->lockSettingsDisableCam;
895
    }
896
897
    /**
898
     * @param bool $lockSettingsDisableCam
899
     *
900
     * @return CreateMeetingParameters
901
     */
902
    public function setLockSettingsDisableCam($lockSettingsDisableCam)
903
    {
904
        $this->lockSettingsDisableCam = $lockSettingsDisableCam;
905
906
        return $this;
907
    }
908
909
    /**
910
     * @return null|bool
911
     */
912
    public function isLockSettingsDisableMic()
913
    {
914
        return $this->lockSettingsDisableMic;
915
    }
916
917
    /**
918
     * @param bool $lockSettingsDisableMic
919
     *
920
     * @return CreateMeetingParameters
921
     */
922
    public function setLockSettingsDisableMic($lockSettingsDisableMic)
923
    {
924
        $this->lockSettingsDisableMic = $lockSettingsDisableMic;
925
926
        return $this;
927
    }
928
929
    /**
930
     * @return null|bool
931
     */
932
    public function isLockSettingsDisablePrivateChat()
933
    {
934
        return $this->lockSettingsDisablePrivateChat;
935
    }
936
937
    /**
938
     * @param bool $lockSettingsDisablePrivateChat
939
     *
940
     * @return CreateMeetingParameters
941
     */
942
    public function setLockSettingsDisablePrivateChat($lockSettingsDisablePrivateChat)
943
    {
944
        $this->lockSettingsDisablePrivateChat = $lockSettingsDisablePrivateChat;
945
946
        return $this;
947
    }
948
949
    /**
950
     * @return null|bool
951
     */
952
    public function isLockSettingsDisablePublicChat()
953
    {
954
        return $this->lockSettingsDisablePublicChat;
955
    }
956
957
    /**
958
     * @param bool $lockSettingsDisablePublicChat
959
     *
960
     * @return CreateMeetingParameters
961
     */
962
    public function setLockSettingsDisablePublicChat($lockSettingsDisablePublicChat)
963
    {
964
        $this->lockSettingsDisablePublicChat = $lockSettingsDisablePublicChat;
965
966
        return $this;
967
    }
968
969
    /**
970
     * @return null|bool
971
     */
972
    public function isLockSettingsDisableNote()
973
    {
974
        return $this->lockSettingsDisableNote;
975
    }
976
977
    /**
978
     * @param bool $lockSettingsDisableNote
979
     *
980
     * @return CreateMeetingParameters
981
     */
982
    public function setLockSettingsDisableNote($lockSettingsDisableNote)
983
    {
984
        $this->lockSettingsDisableNote = $lockSettingsDisableNote;
985
986
        return $this;
987
    }
988
989
    /**
990
     * @return null|bool
991
     */
992
    public function isLockSettingsHideUserList()
993
    {
994
        return $this->lockSettingsHideUserList;
995
    }
996
997
    /**
998
     * @param bool $lockSettingsHideUserList
999
     *
1000
     * @return CreateMeetingParameters
1001
     */
1002
    public function setLockSettingsHideUserList($lockSettingsHideUserList)
1003
    {
1004
        $this->lockSettingsHideUserList = $lockSettingsHideUserList;
1005
1006
        return $this;
1007
    }
1008
1009
    /**
1010
     * @return null|bool
1011
     */
1012
    public function isLockSettingsLockedLayout()
1013
    {
1014
        return $this->lockSettingsLockedLayout;
1015
    }
1016
1017
    /**
1018
     * @param bool $lockSettingsLockedLayout
1019
     *
1020
     * @return CreateMeetingParameters
1021
     */
1022
    public function setLockSettingsLockedLayout($lockSettingsLockedLayout)
1023
    {
1024
        $this->lockSettingsLockedLayout = $lockSettingsLockedLayout;
1025
1026
        return $this;
1027
    }
1028
1029
    /**
1030
     * @return null|bool
1031
     */
1032
    public function isLockSettingsLockOnJoin()
1033
    {
1034
        return $this->lockSettingsLockOnJoin;
1035
    }
1036
1037
    /**
1038
     * @param bool $lockOnJoin
1039
     *
1040
     * @return CreateMeetingParameters
1041
     */
1042
    public function setLockSettingsLockOnJoin($lockOnJoin)
1043
    {
1044
        $this->lockSettingsLockOnJoin = $lockOnJoin;
1045
1046
        return $this;
1047
    }
1048
1049
    /**
1050
     * @return null|bool
1051
     */
1052
    public function isLockSettingsLockOnJoinConfigurable()
1053
    {
1054
        return $this->lockSettingsLockOnJoinConfigurable;
1055
    }
1056
1057
    /**
1058
     * @param bool $lockOnJoinConfigurable
1059
     *
1060
     * @return CreateMeetingParameters
1061
     */
1062
    public function setLockSettingsLockOnJoinConfigurable($lockOnJoinConfigurable)
1063
    {
1064
        $this->lockSettingsLockOnJoinConfigurable = $lockOnJoinConfigurable;
1065
1066
        return $this;
1067
    }
1068
1069
    public function isLockSettingsHideViewersCursor(): bool
1070
    {
1071
        return $this->lockSettingsHideViewersCursor;
1072
    }
1073
1074
    public function setLockSettingsHideViewersCursor(bool $lockSettingsHideViewersCursor)
1075
    {
1076
        $this->lockSettingsHideViewersCursor = $lockSettingsHideViewersCursor;
1077
1078
        return $this;
1079
    }
1080
1081
    /**
1082
     * @return null|bool
1083
     */
1084
    public function isAllowModsToUnmuteUsers()
1085
    {
1086
        return $this->allowModsToUnmuteUsers;
1087
    }
1088
1089
    /**
1090
     * @param bool $allowModsToUnmuteUsers
1091
     *
1092
     * @return CreateMeetingParameters
1093
     */
1094
    public function setAllowModsToUnmuteUsers($allowModsToUnmuteUsers)
1095
    {
1096
        $this->allowModsToUnmuteUsers = $allowModsToUnmuteUsers;
1097
1098
        return $this;
1099
    }
1100
1101
    public function isAllowModsToEjectCameras(): bool
1102
    {
1103
        return $this->allowModsToEjectCameras;
1104
    }
1105
1106
    /**
1107
     * @return CreateMeetingParameters
1108
     */
1109
    public function setAllowModsToEjectCameras(bool $allowModsToEjectCameras): self
1110
    {
1111
        $this->allowModsToEjectCameras = $allowModsToEjectCameras;
1112
1113
        return $this;
1114
    }
1115
1116
    /**
1117
     * @param $endCallbackUrl
1118
     *
1119
     * @return CreateMeetingParameters
1120
     */
1121
    public function setEndCallbackUrl($endCallbackUrl)
1122
    {
1123
        $this->addMeta('endCallbackUrl', $endCallbackUrl);
1124
1125
        return $this;
1126
    }
1127
1128
    /**
1129
     * @param $recordingReadyCallbackUrl
1130
     *
1131
     * @return CreateMeetingParameters
1132
     */
1133
    public function setRecordingReadyCallbackUrl($recordingReadyCallbackUrl)
1134
    {
1135
        $this->addMeta('bbb-recording-ready-url', $recordingReadyCallbackUrl);
1136
1137
        return $this;
1138
    }
1139
1140
    /**
1141
     * @return null|bool
1142
     */
1143
    public function isBreakout()
1144
    {
1145
        return $this->isBreakout;
1146
    }
1147
1148
    /**
1149
     * @param bool $isBreakout
1150
     *
1151
     * @return CreateMeetingParameters
1152
     */
1153
    public function setBreakout($isBreakout)
1154
    {
1155
        $this->isBreakout = $isBreakout;
1156
1157
        return $this;
1158
    }
1159
1160
    /**
1161
     * @return string
1162
     */
1163
    public function getParentMeetingId()
1164
    {
1165
        return $this->parentMeetingId;
1166
    }
1167
1168
    /**
1169
     * @param string $parentMeetingId
1170
     *
1171
     * @return CreateMeetingParameters
1172
     */
1173
    public function setParentMeetingId($parentMeetingId)
1174
    {
1175
        $this->parentMeetingId = $parentMeetingId;
1176
1177
        return $this;
1178
    }
1179
1180
    /**
1181
     * @return int
1182
     */
1183
    public function getSequence()
1184
    {
1185
        return $this->sequence;
1186
    }
1187
1188
    /**
1189
     * @param int $sequence
1190
     *
1191
     * @return CreateMeetingParameters
1192
     */
1193
    public function setSequence($sequence)
1194
    {
1195
        $this->sequence = $sequence;
1196
1197
        return $this;
1198
    }
1199
1200
    /**
1201
     * @return null|bool
1202
     */
1203
    public function isFreeJoin()
1204
    {
1205
        return $this->freeJoin;
1206
    }
1207
1208
    /**
1209
     * @param bool $freeJoin
1210
     *
1211
     * @return CreateMeetingParameters
1212
     */
1213
    public function setFreeJoin($freeJoin)
1214
    {
1215
        $this->freeJoin = $freeJoin;
1216
1217
        return $this;
1218
    }
1219
1220
    /**
1221
     * @return string
1222
     */
1223
    public function getGuestPolicy()
1224
    {
1225
        return $this->guestPolicy;
1226
    }
1227
1228
    /**
1229
     * @param bool $guestPolicy
1230
     *
1231
     * @return CreateMeetingParameters
1232
     */
1233
    public function setGuestPolicy($guestPolicy)
1234
    {
1235
        $this->guestPolicy = $guestPolicy;
0 ignored issues
show
Documentation Bug introduced by
The property $guestPolicy was declared of type string, but $guestPolicy is of type boolean. Maybe add a type cast?

This check looks for assignments to scalar types that may be of the wrong type.

To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.

$answer = 42;

$correct = false;

$correct = (bool) $answer;
Loading history...
1236
1237
        return $this;
1238
    }
1239
1240
    /**
1241
     * @deprecated
1242
     */
1243
    public function isBreakoutRoomsEnabled(): bool
1244
    {
1245
        return $this->breakoutRoomsEnabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...::$breakoutRoomsEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1245
        return /** @scrutinizer ignore-deprecated */ $this->breakoutRoomsEnabled;
Loading history...
1246
    }
1247
1248
    /**
1249
     * @deprecated
1250
     *
1251
     * @param mixed $breakoutRoomsEnabled
1252
     *
1253
     * @return CreateMeetingParameters
1254
     */
1255
    public function setBreakoutRoomsEnabled($breakoutRoomsEnabled)
1256
    {
1257
        $this->breakoutRoomsEnabled = $breakoutRoomsEnabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...::$breakoutRoomsEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1257
        /** @scrutinizer ignore-deprecated */ $this->breakoutRoomsEnabled = $breakoutRoomsEnabled;
Loading history...
1258
1259
        return $this;
1260
    }
1261
1262
    public function isBreakoutRoomsRecord(): bool
1263
    {
1264
        return $this->breakoutRoomsRecord;
1265
    }
1266
1267
    /**
1268
     * @param bool $breakoutRoomsRecord
1269
     *
1270
     * @return $this
1271
     */
1272
    public function setBreakoutRoomsRecord($breakoutRoomsRecord)
1273
    {
1274
        $this->breakoutRoomsRecord = $breakoutRoomsRecord;
1275
1276
        return $this;
1277
    }
1278
1279
    public function isBreakoutRoomsPrivateChatEnabled()
1280
    {
1281
        return $this->breakoutRoomsPrivateChatEnabled;
1282
    }
1283
1284
    /**
1285
     * @return CreateMeetingParameters
1286
     */
1287
    public function setBreakoutRoomsPrivateChatEnabled(bool $breakoutRoomsPrivateChatEnabled)
1288
    {
1289
        $this->breakoutRoomsPrivateChatEnabled = $breakoutRoomsPrivateChatEnabled;
1290
1291
        return $this;
1292
    }
1293
1294
    public function getMeetingEndedURL(): string
1295
    {
1296
        return $this->meetingEndedURL;
1297
    }
1298
1299
    /**
1300
     * @return CreateMeetingParameters
1301
     */
1302
    public function setMeetingEndedURL(string $meetingEndedURL)
1303
    {
1304
        $this->meetingEndedURL = $meetingEndedURL;
1305
1306
        return $this;
1307
    }
1308
1309
    /**
1310
     * @return string
1311
     */
1312
    public function getMeetingLayout()
1313
    {
1314
        return $this->meetingLayout;
1315
    }
1316
1317
    /**
1318
     * @return CreateMeetingParameters
1319
     */
1320
    public function setMeetingLayout(string $meetingLayout)
1321
    {
1322
        $this->meetingLayout = $meetingLayout;
1323
1324
        return $this;
1325
    }
1326
1327
    /**
1328
     * @return bool
1329
     */
1330
    public function isAllowRequestsWithoutSession()
1331
    {
1332
        return $this->allowRequestsWithoutSession;
1333
    }
1334
1335
    /**
1336
     * @param $allowRequestsWithoutSession
1337
     *
1338
     * @return $this
1339
     */
1340
    public function setAllowRequestsWithoutSession($allowRequestsWithoutSession)
1341
    {
1342
        $this->allowRequestsWithoutSession = $allowRequestsWithoutSession;
1343
1344
        return $this;
1345
    }
1346
1347
    /**
1348
     * @return int
1349
     */
1350
    public function getUserCameraCap()
1351
    {
1352
        return $this->userCameraCap;
1353
    }
1354
1355
    /**
1356
     * @param int $userCameraCap
1357
     *
1358
     * @return CreateMeetingParameters
1359
     */
1360
    public function setUserCameraCap($userCameraCap)
1361
    {
1362
        $this->userCameraCap = $userCameraCap;
1363
1364
        return $this;
1365
    }
1366
1367
    public function getMeetingCameraCap(): int
1368
    {
1369
        return $this->meetingCameraCap;
1370
    }
1371
1372
    public function setMeetingCameraCap(int $meetingCameraCap): CreateMeetingParameters
1373
    {
1374
        $this->meetingCameraCap = $meetingCameraCap;
1375
1376
        return $this;
1377
    }
1378
1379
    public function getMeetingExpireIfNoUserJoinedInMinutes(): int
1380
    {
1381
        return $this->meetingExpireIfNoUserJoinedInMinutes;
1382
    }
1383
1384
    public function setMeetingExpireIfNoUserJoinedInMinutes(int $meetingExpireIfNoUserJoinedInMinutes): CreateMeetingParameters
1385
    {
1386
        $this->meetingExpireIfNoUserJoinedInMinutes = $meetingExpireIfNoUserJoinedInMinutes;
1387
1388
        return $this;
1389
    }
1390
1391
    public function getMeetingExpireWhenLastUserLeftInMinutes(): int
1392
    {
1393
        return $this->meetingExpireWhenLastUserLeftInMinutes;
1394
    }
1395
1396
    public function setMeetingExpireWhenLastUserLeftInMinutes(int $meetingExpireWhenLastUserLeftInMinutes): CreateMeetingParameters
1397
    {
1398
        $this->meetingExpireWhenLastUserLeftInMinutes = $meetingExpireWhenLastUserLeftInMinutes;
1399
1400
        return $this;
1401
    }
1402
1403
    public function isPreUploadedPresentationOverrideDefault(): bool
1404
    {
1405
        return $this->preUploadedPresentationOverrideDefault;
1406
    }
1407
1408
    public function setPreUploadedPresentationOverrideDefault(bool $preUploadedPresentationOverrideDefault): CreateMeetingParameters
1409
    {
1410
        $this->preUploadedPresentationOverrideDefault = $preUploadedPresentationOverrideDefault;
1411
1412
        return $this;
1413
    }
1414
1415
    public function getDisabledFeatures(): array
1416
    {
1417
        return $this->disabledFeatures;
1418
    }
1419
1420
    public function setDisabledFeatures(array $disabledFeatures): CreateMeetingParameters
1421
    {
1422
        $this->disabledFeatures = $disabledFeatures;
1423
1424
        return $this;
1425
    }
1426
1427
    public function getBreakoutRoomsGroups(): array
1428
    {
1429
        return $this->breakoutRoomsGroups;
1430
    }
1431
1432
    /**
1433
     * @param $id
1434
     * @param $name
1435
     * @param $roster
1436
     *
1437
     * @return $this
1438
     */
1439
    public function addBreakoutRoomsGroup($id, $name, $roster)
1440
    {
1441
        $this->breakoutRoomsGroups[] = ['id' => $id, 'name' => $name, 'roster' => $roster];
1442
1443
        return $this;
1444
    }
1445
1446
    /**
1447
     * @return string
1448
     */
1449
    public function getHTTPQuery()
1450
    {
1451
        $queries = [
1452
            'name'                                   => $this->meetingName,
1453
            'meetingID'                              => $this->meetingId,
1454
            'attendeePW'                             => $this->attendeePassword,
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ters::$attendeePassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1454
            'attendeePW'                             => /** @scrutinizer ignore-deprecated */ $this->attendeePassword,
Loading history...
1455
            'moderatorPW'                            => $this->moderatorPassword,
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ers::$moderatorPassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1455
            'moderatorPW'                            => /** @scrutinizer ignore-deprecated */ $this->moderatorPassword,
Loading history...
1456
            'dialNumber'                             => $this->dialNumber,
1457
            'voiceBridge'                            => $this->voiceBridge,
1458
            'webVoice'                               => $this->webVoice,
1459
            'logoutURL'                              => $this->logoutUrl,
1460
            'record'                                 => $this->record ? 'true' : 'false',
1461
            'duration'                               => $this->duration,
1462
            'maxParticipants'                        => $this->maxParticipants,
1463
            'autoStartRecording'                     => $this->autoStartRecording ? 'true' : 'false',
1464
            'allowStartStopRecording'                => $this->allowStartStopRecording ? 'true' : 'false',
1465
            'welcome'                                => trim($this->welcomeMessage),
1466
            'moderatorOnlyMessage'                   => trim($this->moderatorOnlyMessage),
1467
            'webcamsOnlyForModerator'                => $this->webcamsOnlyForModerator ? 'true' : 'false',
1468
            'logo'                                   => $this->logo,
1469
            'copyright'                              => $this->copyright,
1470
            'muteOnStart'                            => $this->muteOnStart ? 'true' : 'false',
1471
            'guestPolicy'                            => $this->guestPolicy,
1472
            'lockSettingsDisableCam'                 => $this->lockSettingsDisableCam ? 'true' : 'false',
1473
            'lockSettingsDisableMic'                 => $this->lockSettingsDisableMic ? 'true' : 'false',
1474
            'lockSettingsDisablePrivateChat'         => $this->lockSettingsDisablePrivateChat ? 'true' : 'false',
1475
            'lockSettingsDisablePublicChat'          => $this->lockSettingsDisablePublicChat ? 'true' : 'false',
1476
            'lockSettingsDisableNote'                => $this->lockSettingsDisableNote ? 'true' : 'false',
1477
            'lockSettingsHideUserList'               => $this->lockSettingsHideUserList ? 'true' : 'false',
1478
            'lockSettingsLockedLayout'               => $this->lockSettingsLockedLayout ? 'true' : 'false',
1479
            'lockSettingsLockOnJoin'                 => $this->lockSettingsLockOnJoin ? 'true' : 'false',
1480
            'lockSettingsLockOnJoinConfigurable'     => $this->lockSettingsLockOnJoinConfigurable ? 'true' : 'false',
1481
            'lockSettingsHideViewersCursor'          => $this->lockSettingsHideViewersCursor ? 'true' : 'false',
1482
            'allowModsToUnmuteUsers'                 => $this->allowModsToUnmuteUsers ? 'true' : 'false',
1483
            'allowModsToEjectCameras'                => $this->allowModsToEjectCameras ? 'true' : 'false',
1484
            'bannerText'                             => trim($this->bannerText),
1485
            'bannerColor'                            => trim($this->bannerColor),
1486
            'learningDashboardEnabled'               => $this->learningDashboardEnabled ? 'true' : 'false',
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...earningDashboardEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1486
            'learningDashboardEnabled'               => /** @scrutinizer ignore-deprecated */ $this->learningDashboardEnabled ? 'true' : 'false',
Loading history...
1487
            'virtualBackgroundsDisabled'             => $this->virtualBackgroundsDisabled ? 'true' : 'false',
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...tualBackgroundsDisabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1487
            'virtualBackgroundsDisabled'             => /** @scrutinizer ignore-deprecated */ $this->virtualBackgroundsDisabled ? 'true' : 'false',
Loading history...
1488
            'endWhenNoModeratorDelayInMinutes'       => $this->endWhenNoModeratorDelayInMinutes,
1489
            'allowRequestsWithoutSession'            => $this->allowRequestsWithoutSession ? 'true' : 'false',
1490
            'meetingEndedURL'                        => $this->meetingEndedURL,
1491
            'breakoutRoomsEnabled'                   => $this->breakoutRoomsEnabled ? 'true' : 'false',
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...::$breakoutRoomsEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1491
            'breakoutRoomsEnabled'                   => /** @scrutinizer ignore-deprecated */ $this->breakoutRoomsEnabled ? 'true' : 'false',
Loading history...
1492
            'breakoutRoomsRecord'                    => $this->breakoutRoomsRecord ? 'true' : 'false',
1493
            'breakoutRoomsPrivateChatEnabled'        => $this->breakoutRoomsPrivateChatEnabled ? 'true' : 'false',
1494
            'endWhenNoModerator'                     => $this->endWhenNoModerator ? 'true' : 'false',
1495
            'meetingKeepEvents'                      => $this->meetingKeepEvents ? 'true' : 'false',
1496
            'meetingLayout'                          => $this->meetingLayout,
1497
            'meetingCameraCap'                       => $this->meetingCameraCap,
1498
            'meetingExpireIfNoUserJoinedInMinutes'   => $this->meetingExpireIfNoUserJoinedInMinutes,
1499
            'meetingExpireWhenLastUserLeftInMinutes' => $this->meetingExpireWhenLastUserLeftInMinutes,
1500
            'preUploadedPresentationOverrideDefault' => $this->preUploadedPresentationOverrideDefault,
1501
            'disabledFeatures'                       => join(',', $this->disabledFeatures),
1502
        ];
1503
1504
        // Add breakout rooms parameters only if the meeting is a breakout room
1505
        if ($this->isBreakout()) {
1506
            $queries = array_merge($queries, [
1507
                'isBreakout'      => $this->isBreakout ? 'true' : 'false',
1508
                'parentMeetingID' => $this->parentMeetingId,
1509
                'sequence'        => $this->sequence,
1510
                'freeJoin'        => $this->freeJoin ? 'true' : 'false',
1511
            ]);
1512
        } else {
1513
            $queries = array_merge($queries, [
1514
                'learningDashboardCleanupDelayInMinutes' => $this->learningDashboardCleanupDelayInMinutes,
1515
            ]);
1516
1517
            // Pre-defined groups to automatically assign the students to a given breakout room
1518
            if (!empty($this->breakoutRoomsGroups)) {
1519
                $queries = array_merge($queries, [
1520
                    'groups' => json_encode($this->breakoutRoomsGroups),
1521
                ]);
1522
            }
1523
        }
1524
1525
        $this->buildMeta($queries);
1526
1527
        return $this->buildHTTPQuery($queries);
1528
    }
1529
}
1530