Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

mod_presence_identity.lua 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. local stanza = require "util.stanza";
  2. -- For all received presence messages, if the jitsi_meet_context_(user|group)
  3. -- values are set in the session, then insert them into the presence messages
  4. -- for that session.
  5. function on_message(event)
  6. if event and event["stanza"] then
  7. if event.origin and event.origin.jitsi_meet_context_user then
  8. -- First remove any 'identity' element if it already
  9. -- exists
  10. event.stanza:maptags(
  11. function(tag)
  12. for k, v in pairs(tag) do
  13. if k == "name" and v == "identity" then
  14. return nil
  15. end
  16. end
  17. return tag
  18. end
  19. )
  20. module:log("debug", "Presence after previous identity stripped: %s", tostring(event.stanza))
  21. event.stanza:tag("identity"):tag("user")
  22. for k, v in pairs(event.origin.jitsi_meet_context_user) do
  23. event.stanza:tag(k):text(v):up()
  24. end
  25. event.stanza:up()
  26. -- Add the group information if it is present
  27. if event.origin.jitsi_meet_context_group then
  28. event.stanza:tag("group"):text(event.origin.jitsi_meet_context_group)
  29. end
  30. module:log("debug", "Sending presence with identity inserted %s", tostring(event.stanza))
  31. end
  32. end
  33. end
  34. module:hook("pre-presence/bare", on_message);
  35. module:hook("pre-presence/full", on_message);