From 1a315483eb083f81bb7b0e3c0cb3317d17a8f1da Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 2 Dec 2025 17:17:19 -0500 Subject: [PATCH] Jitsi JWT settings trying again. --- app/routers/api.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/app/routers/api.py b/app/routers/api.py index c573689..7361fe3 100644 --- a/app/routers/api.py +++ b/app/routers/api.py @@ -229,6 +229,11 @@ class JitsiTokenRequest(BaseModel): name: str = Field(..., description="The display name of the user.") email: EmailStr = Field(..., description="The email of the user.") is_moderator: bool = Field(..., description="Whether the user should be a moderator.") + # Optional settings for the Jitsi meeting + settings: Optional[Dict[str, Union[bool, int]]] = Field( + None, + description="Optional settings for the Jitsi meeting, such as startAudioMuted, startVideoMuted, etc." + ) # A simple endpoint to generate the Jitsi-specific JWT @router.post("/jitsi_token") @@ -260,17 +265,20 @@ async def create_jitsi_jwt( "email": request_data.email, "moderator": "true" if request_data.is_moderator else "false" }, - "settings": { - # "disableAudioLevels": False, - # "startAudioMuted": request_data.settings.startAudioMuted, - # "startVideoMuted": request_data.settings.startVideoMuted, - "startMuted": request_data.settings.startMuted, - "startHidden": request_data.settings.startHidden, - "followMe": request_data.settings.followMe, - "reactionsMuted": request_data.settings.reactionsMuted - }, + "settings": request_data.settings if hasattr(request_data, 'settings') else None, + + # { + # "disableAudioLevels": False, + # "startAudioMuted": request_data.settings.startAudioMuted, + # "startVideoMuted": request_data.settings.startVideoMuted, + # "startMuted": request_data.settings.startMuted, + # "startHidden": request_data.settings.startHidden, + # "followMe": request_data.settings.followMe, + # "reactionsMuted": request_data.settings.reactionsMuted + # } } } + log.debug(payload) # Sign the JWT with your secret key # The algorithm must be the same as configured in your Prosody setup (HS256)