'从' MUC历史消息的延迟元素中的属性具有占用者的jid而不是空间

时间:2015-03-08 22:45:45

标签: ejabberd multiuserchat

我观察到MUC历史消息中的延迟元素的属性具有占用者的JID而不是房间。

根据xmpp.org/extensions/xep-0045.html#enter-history:

讨论历史消息必须加盖延迟交付(XEP-0203)[14]  由  urn:xmpp:delay'命名空间来表示 他们发送延迟交付,并指定时间 他们最初发送的。

  

'来自'属性必须设置为房间本身的JID。

RoomJID = testGroup@conference.example.com
Occupant 1 = erik@example.com/desktop
Occupant 2 = cyrus@example.com/desktop


<?xml version="1.0" encoding="UTF-8"?>
<message xmlns="jabber:client" from="testGroup@conference.example.com/cyrus" to="erik@example.com/desktop" type="groupchat">
   <body>Hi</body>
   <thread>B9D31734-606D-43CD-B613-D5FF8DF7CAA3</thread>
   <subject />
   <active xmlns="http://jabber.org/protocol/chatstates" />
   <delay xmlns="urn:xmpp:delay" from="cyrus@example.com/desktop" stamp="2015-03-08T21:02:42.481Z" />
   <x xmlns="jabber:x:delay" from="cyrus@example.com/desktop" stamp="20150308T21:02:42" />
</message>

为什么设置为占用者的JID而不是房间的JID?请帮我理解。

1 个答案:

答案 0 :(得分:2)

这取决于您是否将房间配置为匿名。将该房间配置为匿名,它将按预期运行。

您提到的行为来自XEP-0045 v1.25。对于非匿名房间,应使用Extended Stanza Addressing定义原始字段。

目前尚不支持更改,但正在进行中的工作:https://github.com/processone/ejabberd/issues/465