avstack / gst-meet

Connect GStreamer pipelines to Jitsi Meet conferences
Apache License 2.0
70 stars 25 forks source link

Make room name comparison case agnostic #47

Open ChefdeCambuse opened 2 years ago

ChefdeCambuse commented 2 years ago

When providing the room name as shown by Jitsi - e.g. "DarkSignsMobilizeExpectantly" - gst-meet will connect to the room but never proceed as the response(s) to send_presence contain the room name in lower case.

linkmauve commented 1 year ago

This isn’t the only transformation Jitsi Meet does, it converts PascalCase titles to kebab-case localparts.

Additionally, localparts comparisons after stringprep are case insensitive so your operation is a noop.

jbg commented 1 year ago

it converts PascalCase titles to kebab-case localparts

In what situation does it do that? I haven't seen it do that.

Anyway, there is indeed a problem here, because we compare as a string, so the room name comparison fails if gst-meet is given a non-lowercase room name. I'm inclined to fold to lowercase when first configuring the room, though, rather than in this specific test. Alternatively, and probably preferably, we could ensure the use of jid types everywhere and avoid string comparison.

linkmauve commented 1 year ago

Hi, since !200 and !204 there is now a NodePart type which has always had nodeprep applied, and is thus normalized. We haven’t released yet, but this issue will be fixed by using it everywhere. As a bonus, there won’t be any stringprep being done again when creating the BareJid of the room from it, only a string concatenation as we know it’s normalized already.