| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- local stanza = require "util.stanza";
-
- -- For all received presence messages, if the jitsi_meet_context_(user|group)
- -- values are set in the session, then insert them into the presence messages
- -- for that session.
- function on_message(event)
- if event and event["stanza"] then
- if event.origin and event.origin.jitsi_meet_context_user then
- -- First remove any 'identity' element if it already
- -- exists
- event.stanza:maptags(
- function(tag)
- for k, v in pairs(tag) do
- if k == "name" and v == "identity" then
- return nil
- end
- end
- return tag
- end
- )
- module:log("debug", "Presence after previous identity stripped: %s", tostring(event.stanza))
-
- event.stanza:tag("identity"):tag("user")
- for k, v in pairs(event.origin.jitsi_meet_context_user) do
- event.stanza:tag(k):text(v):up()
- end
- event.stanza:up()
-
- -- Add the group information if it is present
- if event.origin.jitsi_meet_context_group then
- event.stanza:tag("group"):text(event.origin.jitsi_meet_context_group)
- end
-
- module:log("debug", "Sending presence with identity inserted %s", tostring(event.stanza))
- end
- end
- end
-
- module:hook("pre-presence/bare", on_message);
- module:hook("pre-presence/full", on_message);
|