2525use BigBlueButton \Enum \Feature ;
2626use BigBlueButton \Enum \GuestPolicy ;
2727use BigBlueButton \Enum \MeetingLayout ;
28+ use BigBlueButton \Util \SimpleXMLElementExtended ;
2829
2930/**
3031 * @method string getName()
147148 * @method $this setPreUploadedPresentation(string $preUploadedPresentation)
148149 * @method string getPreUploadedPresentationName()
149150 * @method $this setPreUploadedPresentationName(string $preUploadedPresentationName)
151+ * @method bool|null isAllowOverrideClientSettingsOnCreateCall()
152+ * @method $this setAllowOverrideClientSettingsOnCreateCall(bool $allowOverrideClientSettingsOnCreateCall)
153+ * @method string getClientSettingsOverride()
154+ * @method $this setClientSettingsOverride(string $clientSettingsOverride)
150155 */
151156class CreateMeetingParameters extends MetaParameters
152157{
@@ -224,6 +229,8 @@ class CreateMeetingParameters extends MetaParameters
224229 protected ?bool $ recordFullDurationMedia = null ;
225230 protected ?string $ presentationUploadExternalUrl = null ;
226231 protected ?string $ presentationUploadExternalDescription = null ;
232+ protected ?bool $ allowOverrideClientSettingsOnCreateCall = null ;
233+ protected ?string $ clientSettingsOverride = null ;
227234
228235 /**
229236 * @var array<string,string>
@@ -234,7 +241,7 @@ public function __construct(protected string $meetingID, protected string $name)
234241 {
235242 $ this ->guestPolicy = GuestPolicy::ALWAYS_ACCEPT ;
236243
237- $ this ->ignoreProperties = ['disabledFeatures ' , 'disabledFeaturesExclude ' ];
244+ $ this ->ignoreProperties = ['disabledFeatures ' , 'disabledFeaturesExclude ' , ' clientSettingsOverride ' ];
238245 }
239246
240247 public function setEndCallbackUrl (string $ endCallbackUrl ): self
@@ -366,12 +373,26 @@ public function getPresentations(): array
366373 return $ this ->presentations ;
367374 }
368375
369- public function getPresentationsAsXML (): string | false
376+ public function getModules (): string
370377 {
371- $ result = '' ;
378+ $ xml = new SimpleXMLElementExtended ('<?xml version="1.0" encoding="UTF-8"?><modules/> ' );
379+ $ this ->addPresentationsModule ($ xml );
380+ $ this ->addClientSettingsOverrideModule ($ xml );
372381
382+ return $ xml ->asXML ();
383+ }
384+
385+ public function addClientSettingsOverrideModule (SimpleXMLElementExtended $ xml ): void
386+ {
387+ if (!empty ($ this ->clientSettingsOverride )) {
388+ $ module = $ xml ->addChildWithCData ('module ' , $ this ->clientSettingsOverride );
389+ $ module ->addAttribute ('name ' , 'clientSettingsOverride ' );
390+ }
391+ }
392+
393+ public function addPresentationsModule (SimpleXMLElementExtended $ xml ): void
394+ {
373395 if (!empty ($ this ->presentations )) {
374- $ xml = new \SimpleXMLElement ('<?xml version="1.0" encoding="UTF-8"?><modules/> ' );
375396 $ module = $ xml ->addChild ('module ' );
376397 $ module ->addAttribute ('name ' , 'presentation ' );
377398
@@ -389,10 +410,7 @@ public function getPresentationsAsXML(): string|false
389410 $ document [0 ] = $ content ;
390411 }
391412 }
392- $ result = $ xml ->asXML ();
393413 }
394-
395- return $ result ;
396414 }
397415
398416 public function getHTTPQuery (): string
0 commit comments