def sendPresence(pytrans, to, fro, show=None, status=None, priority=None, ptype=None, avatarHash=None, nickname=None, payload=[]):
# Strip the resource off any presence subscribes (as per XMPP RFC 3921 Section 5.1.6)
# Makes eJabberd behave :)
- if ptype == "subscribe":
+ if ptype in ("subscribe", "subscribed", "unsubscribe", "unsubscribed"):
to = jid.intern(to).userhost()
+ fro = jid.intern(fro).userhost()
el = Element((None, "presence"))
el.attributes["to"] = to
error.attributes["type"] = etype
error.attributes["code"] = str(utils.errorCodeMap[condition])
desc = error.addElement(condition)
- desc.attributes["xmlns"] = "urn:ietf:params:xml:ns:xmpp-stanzas"
+ desc.attributes["xmlns"] = disco.XMPP_STANZAS
text = error.addElement("text")
- text.attributes["xmlns"] = "urn:ietf:params:xml:ns:xmpp-stanzas"
+ text.attributes["xmlns"] = disco.XMPP_STANZAS
text.addContent(explanation)
if(body and len(body) > 0):
b = el.addElement("body")
show = child.__str__()
elif(child.name == "priority"):
priority = child.__str__()
- elif(child.defaultUri == disco.XVCARDUPDATE):
+ elif(child.uri == disco.XVCARDUPDATE):
avatarHash = " "
for child2 in child.elements():
if(child2.name == "photo"):