2525use BigBlueButton \Enum \Feature ;
2626use BigBlueButton \Enum \GuestPolicy ;
2727use BigBlueButton \Enum \MeetingLayout ;
28+ use BigBlueButton \Util \SimpleXMLElementExtended ;
2829
2930/**
3031 * @method string getName()
157158 * @method $this setPluginManifestsFetchUrl(string $pluginManifestsFetchUrl)
158159 * @method bool|null isPresentationConversionCacheEnabled()
159160 * @method $this setPresentationConversionCacheEnabled(bool $presentationConversionCacheEnabled)
161+ * @method bool|null isAllowOverrideClientSettingsOnCreateCall()
162+ * @method $this setAllowOverrideClientSettingsOnCreateCall(bool $allowOverrideClientSettingsOnCreateCall)
163+ * @method string getClientSettingsOverride()
164+ * @method $this setClientSettingsOverride(string $clientSettingsOverride)
160165 */
161166class CreateMeetingParameters extends MetaParameters
162167{
@@ -239,6 +244,8 @@ class CreateMeetingParameters extends MetaParameters
239244 protected ?string $ pluginManifests = null ;
240245 protected ?string $ pluginManifestsFetchUrl = null ;
241246 protected ?bool $ presentationConversionCacheEnabled = null ;
247+ protected ?bool $ allowOverrideClientSettingsOnCreateCall = null ;
248+ protected ?string $ clientSettingsOverride = null ;
242249
243250 /**
244251 * @var array<string,string>
@@ -249,7 +256,7 @@ public function __construct(protected string $meetingID, protected string $name)
249256 {
250257 $ this ->guestPolicy = GuestPolicy::ALWAYS_ACCEPT ;
251258
252- $ this ->ignoreProperties = ['disabledFeatures ' , 'disabledFeaturesExclude ' ];
259+ $ this ->ignoreProperties = ['disabledFeatures ' , 'disabledFeaturesExclude ' , ' clientSettingsOverride ' ];
253260 }
254261
255262 public function setEndCallbackUrl (string $ endCallbackUrl ): self
@@ -381,12 +388,26 @@ public function getPresentations(): array
381388 return $ this ->presentations ;
382389 }
383390
384- public function getPresentationsAsXML (): string | false
391+ public function getModules (): string
385392 {
386- $ result = '' ;
393+ $ xml = new SimpleXMLElementExtended ('<?xml version="1.0" encoding="UTF-8"?><modules/> ' );
394+ $ this ->addPresentationsModule ($ xml );
395+ $ this ->addClientSettingsOverrideModule ($ xml );
387396
397+ return $ xml ->asXML ();
398+ }
399+
400+ public function addClientSettingsOverrideModule (SimpleXMLElementExtended $ xml ): void
401+ {
402+ if (!empty ($ this ->clientSettingsOverride )) {
403+ $ module = $ xml ->addChildWithCData ('module ' , $ this ->clientSettingsOverride );
404+ $ module ->addAttribute ('name ' , 'clientSettingsOverride ' );
405+ }
406+ }
407+
408+ public function addPresentationsModule (SimpleXMLElementExtended $ xml ): void
409+ {
388410 if (!empty ($ this ->presentations )) {
389- $ xml = new \SimpleXMLElement ('<?xml version="1.0" encoding="UTF-8"?><modules/> ' );
390411 $ module = $ xml ->addChild ('module ' );
391412 $ module ->addAttribute ('name ' , 'presentation ' );
392413
@@ -404,10 +425,7 @@ public function getPresentationsAsXML(): string|false
404425 $ document [0 ] = $ content ;
405426 }
406427 }
407- $ result = $ xml ->asXML ();
408428 }
409-
410- return $ result ;
411429 }
412430
413431 public function getHTTPQuery (): string
0 commit comments