设置EjabberD XMPP VCard昵称

时间:2019-01-23 14:36:46

标签: xmpp ejabberd

我正在尝试在Ejabberd服务器上设置VCard,并且出现以下错误。

<iq type="error" xml:lang="en" xmlns="jabber:client" id="PLLMV88my7zc" from="XXXXXXX334@ejabber.CCCC.com" to="XXXXXXX334@ejabber.CCCC.com/CCCC.nY4z">
    <vcard xmlns="vcard-temp">
        <NICKNAME xmlns="vcard-temp">Ar [CCCC]</NICKNAME>
    </vcard>
    <error type="modify" code="400" xmlns="jabber:client">
        <bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
        <text xml:lang="en" xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Unknown tag &lt;vcard/&gt; qualified by namespace &apos;vcard-temp&apos;
       </text>
    </error>
</iq>

还将vcard命名空间更改为urn:ietf:params:xml:ns:vcard-4.0 哪个返回

<iq type="error" xml:lang="en" xmlns="jabber:client" id="vVsKxiCW2l-o" from="XXXXXXX334@ejabber.CCCC.com" to="XXXXXXX334@ejabber.CCCC.com/CCCC.nY4z">
    <vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0">
        <NICKNAME xmlns="urn:ietf:params:xml:ns:vcard-4.0">Ar [CCCC]</NICKNAME>
    </vcard>
    <error type="cancel" code="503" xmlns="jabber:client">
        <service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
        <text xml:lang="en" xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">No module is handling this query</text>
    </error>
</iq>

我的请求数据包如下所示,是从XEP 0054提取的

已发送精确数据包

<iq type="set" id="Ie9IID3Xc82E" from="XXXXXXX334@ejabber.CCCC.com/CCCC.nY4z">
    <vcard xmlns="vcard-temp">
        <NICKNAME>Ar [CCCCC]</NICKNAME>
    </vcard>
</iq>

有人可以指出我该如何解决此问题。 服务器配置-Ejabberd [docker] 客户端-Java自定义代码。

1 个答案:

答案 0 :(得分:0)

找出问题所在而不是vcard,我需要将该节点设置为vCard 使用的xmlns是xmlns =“ vcard-temp”

请注意,上述请求需要vcard中所有可用的元素,因为它的工作原理是替换(而不是更新)。