Gajim - 2024-04-26


  1. rukmon

    > the triangle is next to _your_ name? In that case, go to Accounts>Modify Accounts>your account>Privacy>Ignore Unknown Contacts, and see if that is turned on. it's toggled off, however I'm looking to reach out to someone and I hope they were able to receive my message. can I try sending you a PM to see if it works?

  2. rukmon

    just as a test

  3. fjklp

    Was that setting turned on in the first place?

  4. rukmon

    > Was that setting turned on in the first place? was turned off since account creation

  5. fjklp

    hmm, I'm not sure what that icon means

  6. fjklp

    this just seems to be what you can expect with xmpp

  7. fjklp

    confusion

  8. fjklp

    it seems we need this notification to be expanded to be fully unambiguous so users know what's going on

  9. fjklp

    but that still doesn't solve the fact that servers blocking strangers is no (usually? always?) communicated to clients, so they never know that a message doesn't go through in those cases.

  10. fjklp

    but that still doesn't solve the fact that servers blocking strangers is not (usually? always?) communicated to clients, so they never know that a message doesn't go through in those cases.

  11. fjklp

    I'd report an issue on this but I don't know how to reproduce the notification

  12. Aedil

    It would be nice if NetBSD could bump the Gajim XMPP messenger software to a recent version, like v1.7 or v1.8. NetBSD still comes with the old v1.3 Gajim. I wrote a PR for this: https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=57356

  13. cal0pteryx

    Aedil: Gajim devs don't maintain NetBSD repos. But thanks for your PR :)

  14. Aedil

    cal0pteryx Ok. Thank you.

  15. Aedil

    The newer versions of Gajim have become a very well made software. I very much enjoy using Gajim.

  16. MarsIronPI

    > The newer versions of Gajim have become a very well made software. I very much enjoy using Gajim. I agree. However, does anyone know how well calls work these days? It'd be nice to not have to use Dino

  17. cal0pteryx

    Aedil: thanks!

  18. cal0pteryx

    MarsIronPI: calls don't work with gajim

  19. MarsIronPI

    cal0pteryx, because it uses an older XEP?

  20. MarsIronPI

    which ones do modern clients use?

  21. cal0pteryx

    Gajim uses a set of older xeps + the implementation hasn't been maintained for years. Newer clients use dtls-srtp plus some more xeps

  22. MarsIronPI

    cal0pteryx: ah. Isn't there a PR for dtls-srtp?

  23. cal0pteryx

    MarsIronPI, yes. but that does not mean: merge and it's done

  24. MarsIronPI

    cal0pteryx, yeah.

  25. MarsIronPI

    since I run Gentoo I might try it out (since it's easy to do that sort of thing on gentoo)

  26. toms

    Hi everyone, over the past several days, I've been developing a Gajim plugin to integrate LDAP into the application (I can elaborate on my use-case if someone is interested). The basic functionality of the plugin is working (resolving contact nicknames via LDAP), and I am planning on adding contact search. I was wondering if this plugin would be useful for anyone else, and if I should upstream it. Any thoughts?

  27. lovetox

    i dont want to talk your effort down, but why did you not intergrate this on the server?

  28. lovetox

    ejabberd for example has already a module with ldap support, but it uses old vcard-temp to distribute the data, this probably needs very little effort to migrate it to VCard4

  29. lovetox

    and then the server can distribute all kinds of data to all xmpp clients, not just ones with a plugin installed

  30. lovetox

    further this means you have only one server that needs to access these data from the ldap server

  31. toms

    @lovetox Integrating it on the server is probably the correct way to go. However I am using this for my company's network which uses some Cisco solution which does not support VCard4 :( Instead, the client (Cisco Jabber) does the LDAP queries itself, which is what my plugin imitates. Changing the server is not an option. I could maybe setup a proxy server that seamlessly integrates LDAP, but would would require much more work than writing this plugin.

  32. lovetox

    do you have the code on some public repository? I would be interested to look what exactly you did

  33. lovetox

    nothing but the xmpp client would need to support Vcard, think it like the client issues to the server a request, that could be a request for its roster, or for a vcard of a specific contact, and the server translates that request, requests itself data from ldap and translates the answer into a vcard

  34. lovetox

    thats how this usualy works

  35. toms

    I was planning on forking the plugins repo, but when I try on GitLab, I get this error: "You cannot create projects in your personal namespace. Contact your GitLab administrator." Should I create a separate repo instead?

  36. lovetox

    no i can give you permission, please tell me your gitlab username

  37. toms

    Yeah I agree that this is the sensible way to go. Cisco's client however does manual LDAP queries (and the server does not). Confirmed on my windows machine.

  38. toms

    My username on gitlab is @tom.shnayder

  39. lovetox

    yes i believe you. Are you saying you use Gajim with a Cisco Jabber Server?

  40. lovetox

    i gave your account permission, try now

  41. toms

    Yeah, the server is actually called "Cisco Unified Communications Manager" (just a fancy XMPP server), and the client is Cisco Jabber. Gajim mostly works with that server.

  42. lovetox

    so then i understand you decision to not do this on the server side, as it probably is not open source and easily extendable

  43. lovetox

    im happy to hear Gajim still works with that server

  44. lovetox

    there was a time where users reported the server ends their session all the time, we never found the issue, because no user could provide any debug logging from the actual server that gave us a clue about the reason

  45. toms

    Pushed the code here: https://dev.gajim.org/tom.shnayder/gajim-plugins/-/tree/ldap/ldap_search?ref_type=heads

  46. toms

    I never encountered such issue. If I will I will be happy to debug it :)

  47. toms

    It should be pretty simple, however the is one major hack in `roster_hack.py` - this code essentially disables those lines in Gajim's core: https://dev.gajim.org/gajim/gajim/-/blob/master/gajim/common/modules/contacts.py#L483-485 This was required because the Roster module always returned an item whose name is the JID. There is probably a better way to solve this, still as WIP.

  48. lovetox

    hmm .. but it should not be necessary ..

  49. lovetox

    ahhh

  50. lovetox

    ok so the cisco jabber server sets the name attribute in the roster to the JID

  51. lovetox

    which is ... just wrong ..

  52. toms

    Yep

  53. lovetox

    because roster item name, is usally a custom name the user decides for his contacts, and should trump everything, but because cisco jabber fills it with a useless default

  54. lovetox

    this functionality is basically destroyed ..

  55. lovetox

    so what you would actually need is a global "ignore "name" attr data from roster" kind of switch in Gajim

  56. toms

    Yeah that would be good, or check for cases where roster == JID and ignore them

  57. lovetox

    i think your way to replace get_item() is the best way, i cannot come up with something more elegant

  58. lovetox

    though i wonder, though , the code could be much simpler

  59. lovetox

    ```python def get_item(self, jid: JID) -> RosterItem | None: item = self._roster.get(jid) if item is None: return item if item.name == item.jid: item.name = None return item ```

  60. lovetox

    could you not just monkey patch the module method with this

  61. lovetox

    at least i dont see the benefit why you inspecting the stack, and only doing that if the contacts module asks for this information

  62. lovetox

    because its simply a general rule, if jid == name you want it to set to None, like the user does not have a custom name set for this contact

  63. lovetox

    anyway, i dont see any obvious problems with your plugin

  64. lovetox

    considering that we have zero documentation, you did a very good job :D

  65. lovetox

    hm if i think about it, would it not easier to always hook into the contact.name property?

  66. lovetox

    instead of message-received or doing something on account-enabled

  67. lovetox

    because whenever the Gajim displays somewhere a nickname, it does it via this property

  68. toms

    Thank you! The plugin is still a work-in-progress and needs more testing, but it already makes my life easier :) The next thing I want to add is a way for the user to find contacts (JID) by their name. I thought that a good way to integrate it is to add another button next to the globe button in the "Start / Join Chat" dialog. What do you think?

  69. lovetox

    so if you start your request then, this should be enough

  70. toms

    You are correct that hooking the name property is easier, but then I would have to re-implement it's logic

  71. lovetox

    no, just a thin wrapper around it, just as a info for you to query async data

  72. lovetox

    dont replace what the property returns

  73. lovetox

    you later update the contact storage, and update via the contact signal

  74. toms

    Oh are you talking about the trigger to an LDAP search? Yes it might be better than message-received

  75. lovetox

    yes ! because then you can also spare the querying of all contacts at the start

  76. lovetox

    because gajim simply tells you exactly the contacts it displays currently

  77. toms

    Thats actually a cool idea, ill change it

  78. toms

    I think that it might be useful yo add something like `app.ged.raise_event(ContactNameQuery(...))`, so we can subscribe to that event.

  79. lovetox

    i think about some extension points, im still a bit hesitant, because this is an attribute thats very often called ..

  80. zsolt

    anyone knows how to make audio/video calls working in linux mint 21.3 with gajim 1.8.4 flatpak?

  81. cal0pteryx

    zsolt: a/v calls do not work in current gajim versions

  82. zt

    too bad as it nice app, at least it works with dino-im

  83. lovetox

    > The next thing I want to add is a way for the user to find contacts (JID) by their name. > I thought that a good way to integrate it is to add another button next to the globe button in the "Start / Join Chat" dialog. What do you think?

  84. lovetox

    > The next thing I want to add is a way for the user to find contacts (JID) by their name. > I thought that a good way to integrate it is to add another button next to the globe button in the "Start / Join Chat" dialog. What do you think? yes, toms, i think thats the way to go

  85. lovetox

    And if you want we can add your plugin to the gajim plugin repository, and publish it that way also

  86. lovetox

    you would still be the maintainer though

  87. toms

    Sounds good, Ill update you when it is ready to be published :) Thx

  88. MarsIronPI

    Does Gajim support typing notifications in MUCs?

  89. lovetox

    yes

  90. lovetox

    though .. not sure if this is released already

  91. lovetox

    at least in nightly it does

  92. MarsIronPI

    lovetox, nice

  93. MarsIronPI

    I just installed Gajim from intelfx's branch with DTLS-SRTP support and the first message in the log is "AV DTLS not available". Anyone know what dependencies are required OTOH?

  94. MarsIronPI

    Looking at the code it seems that it's that my farstream doesn't support a certain feature. Anyone know anything about farstream and DTLS-SRTP?

  95. cal0pteryx

    MarsIronPI: it requires a patched version. There is a flatpak install you can use

  96. MarsIronPI

    cal0pteryx, I'd rather not use flatpak. I installed the same source from git, but farstream isn't cooperating

  97. cal0pteryx

    MarsIronPI: I can't help you with that.

  98. MarsIronPI

    it should be working, since SRTP has been in farstream for a long time now

  99. MarsIronPI

    Whoops, I missed some links in the PR that point to some upstream patches that are required

  100. MarsIronPI

    I'll go install those too

  101. lovetox

    you make your life very hard, simply install a flatpak, its sandbox, all dependencies are shipped with it, if you remove the app everything is gone without a trace