Package xmpp :: Module protocol
[hide private]
[frames] | no frames]

Module protocol

source code

Protocol module contains tools that is needed for processing of xmpp-related data structures.

Classes [hide private]
  NodeProcessed
Exception that should be raised by handler when the handling should be stopped.
  StreamError
Base exception class for stream errors.
  BadFormat
  BadNamespacePrefix
  Conflict
  ConnectionTimeout
  HostGone
  HostUnknown
  ImproperAddressing
  InternalServerError
  InvalidFrom
  InvalidID
  InvalidNamespace
  InvalidXML
  NotAuthorized
  PolicyViolation
  RemoteConnectionFailed
  ResourceConstraint
  RestrictedXML
  SeeOtherHost
  SystemShutdown
  UndefinedCondition
  UnsupportedEncoding
  UnsupportedStanzaType
  UnsupportedVersion
  XMLNotWellFormed
  JID
JID object.
  Protocol
A "stanza" object class.
  Message
XMPP Message stanza - "push" mechanism.
  Presence
XMPP Presence object.
  Iq
XMPP Iq object - get/set dialog mechanism.
  ErrorNode
XMPP-style error element.
  Error
Used to quickly transform received stanza into error reply.
  DataField
This class is used in the DataForm class to describe the single data item.
  DataForm
DataForm class.
Functions [hide private]
 
isResultNode(node)
Returns true if the node is a positive reply.
source code
 
isErrorNode(node)
Returns true if the node is a negative reply.
source code
Variables [hide private]
  NS_ACTIVITY = 'http://jabber.org/protocol/activity'
  NS_ADDRESS = 'http://jabber.org/protocol/address'
  NS_ADMIN = 'http://jabber.org/protocol/admin'
  NS_ADMIN_ADD_USER = 'http://jabber.org/protocol/admin#add-user'
  NS_ADMIN_DELETE_USER = 'http://jabber.org/protocol/admin#delet...
  NS_ADMIN_DISABLE_USER = 'http://jabber.org/protocol/admin#disa...
  NS_ADMIN_REENABLE_USER = 'http://jabber.org/protocol/admin#ree...
  NS_ADMIN_END_USER_SESSION = 'http://jabber.org/protocol/admin#...
  NS_ADMIN_GET_USER_PASSWORD = 'http://jabber.org/protocol/admin...
  NS_ADMIN_CHANGE_USER_PASSWORD = 'http://jabber.org/protocol/ad...
  NS_ADMIN_GET_USER_ROSTER = 'http://jabber.org/protocol/admin#g...
  NS_ADMIN_GET_USER_LASTLOGIN = 'http://jabber.org/protocol/admi...
  NS_ADMIN_USER_STATS = 'http://jabber.org/protocol/admin#user-s...
  NS_ADMIN_EDIT_BLACKLIST = 'http://jabber.org/protocol/admin#ed...
  NS_ADMIN_EDIT_WHITELIST = 'http://jabber.org/protocol/admin#ed...
  NS_ADMIN_REGISTERED_USERS_NUM = 'http://jabber.org/protocol/ad...
  NS_ADMIN_DISABLED_USERS_NUM = 'http://jabber.org/protocol/admi...
  NS_ADMIN_ONLINE_USERS_NUM = 'http://jabber.org/protocol/admin#...
  NS_ADMIN_ACTIVE_USERS_NUM = 'http://jabber.org/protocol/admin#...
  NS_ADMIN_IDLE_USERS_NUM = 'http://jabber.org/protocol/admin#ge...
  NS_ADMIN_REGISTERED_USERS_LIST = 'http://jabber.org/protocol/a...
  NS_ADMIN_DISABLED_USERS_LIST = 'http://jabber.org/protocol/adm...
  NS_ADMIN_ONLINE_USERS_LIST = 'http://jabber.org/protocol/admin...
  NS_ADMIN_ACTIVE_USERS_LIST = 'http://jabber.org/protocol/admin...
  NS_ADMIN_IDLE_USERS_LIST = 'http://jabber.org/protocol/admin#g...
  NS_ADMIN_ANNOUNCE = 'http://jabber.org/protocol/admin#announce'
  NS_ADMIN_SET_MOTD = 'http://jabber.org/protocol/admin#set-motd'
  NS_ADMIN_EDIT_MOTD = 'http://jabber.org/protocol/admin#edit-motd'
  NS_ADMIN_DELETE_MOTD = 'http://jabber.org/protocol/admin#delet...
  NS_ADMIN_SET_WELCOME = 'http://jabber.org/protocol/admin#set-w...
  NS_ADMIN_DELETE_WELCOME = 'http://jabber.org/protocol/admin#de...
  NS_ADMIN_EDIT_ADMIN = 'http://jabber.org/protocol/admin#edit-a...
  NS_ADMIN_RESTART = 'http://jabber.org/protocol/admin#restart'
  NS_ADMIN_SHUTDOWN = 'http://jabber.org/protocol/admin#shutdown'
  NS_AGENTS = 'jabber:iq:agents'
  NS_AMP = 'http://jabber.org/protocol/amp'
  NS_AMP_ERRORS = 'http://jabber.org/protocol/amp#errors'
  NS_AUTH = 'jabber:iq:auth'
  NS_AVATAR = 'jabber:iq:avatar'
  NS_BIND = 'urn:ietf:params:xml:ns:xmpp-bind'
  NS_BROWSE = 'jabber:iq:browse'
  NS_BYTESTREAM = 'http://jabber.org/protocol/bytestreams'
  NS_CAPS = 'http://jabber.org/protocol/caps'
  NS_CHATSTATES = 'http://jabber.org/protocol/chatstates'
  NS_CLIENT = 'jabber:client'
  NS_COMMANDS = 'http://jabber.org/protocol/commands'
  NS_COMPONENT_ACCEPT = 'jabber:component:accept'
  NS_COMPONENT_1 = 'http://jabberd.jabberstudio.org/ns/component...
  NS_COMPRESS = 'http://jabber.org/protocol/compress'
  NS_DATA = 'jabber:x:data'
  NS_DELAY = 'jabber:x:delay'
  NS_DIALBACK = 'jabber:server:dialback'
  NS_DISCO = 'http://jabber.org/protocol/disco'
  NS_DISCO_INFO = 'http://jabber.org/protocol/disco#info'
  NS_DISCO_ITEMS = 'http://jabber.org/protocol/disco#items'
  NS_ENCRYPTED = 'jabber:x:encrypted'
  NS_EVENT = 'jabber:x:event'
  NS_FEATURE = 'http://jabber.org/protocol/feature-neg'
  NS_FILE = 'http://jabber.org/protocol/si/profile/file-transfer'
  NS_GATEWAY = 'jabber:iq:gateway'
  NS_GEOLOC = 'http://jabber.org/protocol/geoloc'
  NS_GROUPCHAT = 'gc-1.0'
  NS_HTTP_BIND = 'http://jabber.org/protocol/httpbind'
  NS_IBB = 'http://jabber.org/protocol/ibb'
  NS_INVISIBLE = 'presence-invisible'
  NS_IQ = 'iq'
  NS_LAST = 'jabber:iq:last'
  NS_MESSAGE = 'message'
  NS_MOOD = 'http://jabber.org/protocol/mood'
  NS_MUC = 'http://jabber.org/protocol/muc'
  NS_MUC_ADMIN = 'http://jabber.org/protocol/muc#admin'
  NS_MUC_OWNER = 'http://jabber.org/protocol/muc#owner'
  NS_MUC_UNIQUE = 'http://jabber.org/protocol/muc#unique'
  NS_MUC_USER = 'http://jabber.org/protocol/muc#user'
  NS_MUC_REGISTER = 'http://jabber.org/protocol/muc#register'
  NS_MUC_REQUEST = 'http://jabber.org/protocol/muc#request'
  NS_MUC_ROOMCONFIG = 'http://jabber.org/protocol/muc#roomconfig'
  NS_MUC_ROOMINFO = 'http://jabber.org/protocol/muc#roominfo'
  NS_MUC_ROOMS = 'http://jabber.org/protocol/muc#rooms'
  NS_MUC_TRAFIC = 'http://jabber.org/protocol/muc#traffic'
  NS_OFFLINE = 'http://jabber.org/protocol/offline'
  NS_PHYSLOC = 'http://jabber.org/protocol/physloc'
  NS_PRESENCE = 'presence'
  NS_PRIVACY = 'jabber:iq:privacy'
  NS_PRIVATE = 'jabber:iq:private'
  NS_PUBSUB = 'http://jabber.org/protocol/pubsub'
  NS_REGISTER = 'jabber:iq:register'
  NS_ROSTER = 'jabber:iq:roster'
  NS_ROSTERX = 'http://jabber.org/protocol/rosterx'
  NS_RPC = 'jabber:iq:rpc'
  NS_SASL = 'urn:ietf:params:xml:ns:xmpp-sasl'
  NS_SEARCH = 'jabber:iq:search'
  NS_SERVER = 'jabber:server'
  NS_SESSION = 'urn:ietf:params:xml:ns:xmpp-session'
  NS_SI = 'http://jabber.org/protocol/si'
  NS_SI_PUB = 'http://jabber.org/protocol/sipub'
  NS_SIGNED = 'jabber:x:signed'
  NS_STANZAS = 'urn:ietf:params:xml:ns:xmpp-stanzas'
  NS_STREAMS = 'http://etherx.jabber.org/streams'
  NS_TIME = 'jabber:iq:time'
  NS_TLS = 'urn:ietf:params:xml:ns:xmpp-tls'
  NS_VACATION = 'http://jabber.org/protocol/vacation'
  NS_VCARD = 'vcard-temp'
  NS_VERSION = 'jabber:iq:version'
  NS_WAITINGLIST = 'http://jabber.org/protocol/waitinglist'
  NS_XHTML_IM = 'http://jabber.org/protocol/xhtml-im'
  NS_DATA_LAYOUT = 'http://jabber.org/protocol/xdata-layout'
  NS_DATA_VALIDATE = 'http://jabber.org/protocol/xdata-validate'
  NS_XMPP_STREAMS = 'urn:ietf:params:xml:ns:xmpp-streams'
  xmpp_stream_error_conditions = '\nbad-format -- -- -- The en...
  xmpp_stanza_error_conditions = '\nbad-request -- 400 -- modify...
  sasl_error_conditions = '\naborted -- -- -- The receiving en...
  stream_exceptions = {'bad-format': <class xmpp.protocol.BadFor...
  ERRORS = {'urn:ietf:params:xml:ns:xmpp-sasl aborted': ['', '',...
  ERR_BAD_REQUEST = 'urn:ietf:params:xml:ns:xmpp-stanzas bad-req...
  ERR_CONFLICT = 'urn:ietf:params:xml:ns:xmpp-stanzas conflict'
  ERR_FEATURE_NOT_IMPLEMENTED = 'urn:ietf:params:xml:ns:xmpp-sta...
  ERR_FORBIDDEN = 'urn:ietf:params:xml:ns:xmpp-stanzas forbidden'
  ERR_GONE = 'urn:ietf:params:xml:ns:xmpp-stanzas gone'
  ERR_INTERNAL_SERVER_ERROR = 'urn:ietf:params:xml:ns:xmpp-stanz...
  ERR_ITEM_NOT_FOUND = 'urn:ietf:params:xml:ns:xmpp-stanzas item...
  ERR_JID_MALFORMED = 'urn:ietf:params:xml:ns:xmpp-stanzas jid-m...
  ERR_NOT_ACCEPTABLE = 'urn:ietf:params:xml:ns:xmpp-stanzas not-...
  ERR_NOT_ALLOWED = 'urn:ietf:params:xml:ns:xmpp-stanzas not-all...
  ERR_NOT_AUTHORIZED = 'urn:ietf:params:xml:ns:xmpp-stanzas not-...
  ERR_PAYMENT_REQUIRED = 'urn:ietf:params:xml:ns:xmpp-stanzas pa...
  ERR_RECIPIENT_UNAVAILABLE = 'urn:ietf:params:xml:ns:xmpp-stanz...
  ERR_REDIRECT = 'urn:ietf:params:xml:ns:xmpp-stanzas redirect'
  ERR_REGISTRATION_REQUIRED = 'urn:ietf:params:xml:ns:xmpp-stanz...
  ERR_REMOTE_SERVER_NOT_FOUND = 'urn:ietf:params:xml:ns:xmpp-sta...
  ERR_REMOTE_SERVER_TIMEOUT = 'urn:ietf:params:xml:ns:xmpp-stanz...
  ERR_RESOURCE_CONSTRAINT = 'urn:ietf:params:xml:ns:xmpp-stanzas...
  ERR_SERVICE_UNAVAILABLE = 'urn:ietf:params:xml:ns:xmpp-stanzas...
  ERR_SUBSCRIPTION_REQUIRED = 'urn:ietf:params:xml:ns:xmpp-stanz...
  ERR_UNDEFINED_CONDITION = 'urn:ietf:params:xml:ns:xmpp-stanzas...
  ERR_UNEXPECTED_REQUEST = 'urn:ietf:params:xml:ns:xmpp-stanzas ...
  SASL_ABORTED = 'urn:ietf:params:xml:ns:xmpp-sasl aborted'
  SASL_INCORRECT_ENCODING = 'urn:ietf:params:xml:ns:xmpp-sasl in...
  SASL_INVALID_AUTHZID = 'urn:ietf:params:xml:ns:xmpp-sasl inval...
  SASL_INVALID_MECHANISM = 'urn:ietf:params:xml:ns:xmpp-sasl inv...
  SASL_MECHANISM_TOO_WEAK = 'urn:ietf:params:xml:ns:xmpp-sasl me...
  SASL_NOT_AUTHORIZED = 'urn:ietf:params:xml:ns:xmpp-sasl not-au...
  SASL_TEMPORARY_AUTH_FAILURE = 'urn:ietf:params:xml:ns:xmpp-sas...
  STREAM_BAD_FORMAT = 'urn:ietf:params:xml:ns:xmpp-streams bad-f...
  STREAM_BAD_NAMESPACE_PREFIX = 'urn:ietf:params:xml:ns:xmpp-str...
  STREAM_CONFLICT = 'urn:ietf:params:xml:ns:xmpp-streams conflict'
  STREAM_CONNECTION_TIMEOUT = 'urn:ietf:params:xml:ns:xmpp-strea...
  STREAM_HOST_GONE = 'urn:ietf:params:xml:ns:xmpp-streams host-g...
  STREAM_HOST_UNKNOWN = 'urn:ietf:params:xml:ns:xmpp-streams hos...
  STREAM_IMPROPER_ADDRESSING = 'urn:ietf:params:xml:ns:xmpp-stre...
  STREAM_INTERNAL_SERVER_ERROR = 'urn:ietf:params:xml:ns:xmpp-st...
  STREAM_INVALID_FROM = 'urn:ietf:params:xml:ns:xmpp-streams inv...
  STREAM_INVALID_ID = 'urn:ietf:params:xml:ns:xmpp-streams inval...
  STREAM_INVALID_NAMESPACE = 'urn:ietf:params:xml:ns:xmpp-stream...
  STREAM_INVALID_XML = 'urn:ietf:params:xml:ns:xmpp-streams inva...
  STREAM_NOT_AUTHORIZED = 'urn:ietf:params:xml:ns:xmpp-streams n...
  STREAM_POLICY_VIOLATION = 'urn:ietf:params:xml:ns:xmpp-streams...
  STREAM_REMOTE_CONNECTION_FAILED = 'urn:ietf:params:xml:ns:xmpp...
  STREAM_RESOURCE_CONSTRAINT = 'urn:ietf:params:xml:ns:xmpp-stre...
  STREAM_RESTRICTED_XML = 'urn:ietf:params:xml:ns:xmpp-streams r...
  STREAM_SEE_OTHER_HOST = 'urn:ietf:params:xml:ns:xmpp-streams s...
  STREAM_SYSTEM_SHUTDOWN = 'urn:ietf:params:xml:ns:xmpp-streams ...
  STREAM_UNDEFINED_CONDITION = 'urn:ietf:params:xml:ns:xmpp-stre...
  STREAM_UNSUPPORTED_ENCODING = 'urn:ietf:params:xml:ns:xmpp-str...
  STREAM_UNSUPPORTED_STANZA_TYPE = 'urn:ietf:params:xml:ns:xmpp-...
  STREAM_UNSUPPORTED_VERSION = 'urn:ietf:params:xml:ns:xmpp-stre...
  STREAM_XML_NOT_WELL_FORMED = 'urn:ietf:params:xml:ns:xmpp-stre...
  _errorcodes = {'302': 'redirect', '400': 'unexpected-request',...
  name = 'SASL_TEMPORARY_AUTH_FAILURE'
Variables Details [hide private]

NS_ADMIN_DELETE_USER

Value:
'http://jabber.org/protocol/admin#delete-user'

NS_ADMIN_DISABLE_USER

Value:
'http://jabber.org/protocol/admin#disable-user'

NS_ADMIN_REENABLE_USER

Value:
'http://jabber.org/protocol/admin#reenable-user'

NS_ADMIN_END_USER_SESSION

Value:
'http://jabber.org/protocol/admin#end-user-session'

NS_ADMIN_GET_USER_PASSWORD

Value:
'http://jabber.org/protocol/admin#get-user-password'

NS_ADMIN_CHANGE_USER_PASSWORD

Value:
'http://jabber.org/protocol/admin#change-user-password'

NS_ADMIN_GET_USER_ROSTER

Value:
'http://jabber.org/protocol/admin#get-user-roster'

NS_ADMIN_GET_USER_LASTLOGIN

Value:
'http://jabber.org/protocol/admin#get-user-lastlogin'

NS_ADMIN_USER_STATS

Value:
'http://jabber.org/protocol/admin#user-stats'

NS_ADMIN_EDIT_BLACKLIST

Value:
'http://jabber.org/protocol/admin#edit-blacklist'

NS_ADMIN_EDIT_WHITELIST

Value:
'http://jabber.org/protocol/admin#edit-whitelist'

NS_ADMIN_REGISTERED_USERS_NUM

Value:
'http://jabber.org/protocol/admin#get-registered-users-num'

NS_ADMIN_DISABLED_USERS_NUM

Value:
'http://jabber.org/protocol/admin#get-disabled-users-num'

NS_ADMIN_ONLINE_USERS_NUM

Value:
'http://jabber.org/protocol/admin#get-online-users-num'

NS_ADMIN_ACTIVE_USERS_NUM

Value:
'http://jabber.org/protocol/admin#get-active-users-num'

NS_ADMIN_IDLE_USERS_NUM

Value:
'http://jabber.org/protocol/admin#get-idle-users-num'

NS_ADMIN_REGISTERED_USERS_LIST

Value:
'http://jabber.org/protocol/admin#get-registered-users-list'

NS_ADMIN_DISABLED_USERS_LIST

Value:
'http://jabber.org/protocol/admin#get-disabled-users-list'

NS_ADMIN_ONLINE_USERS_LIST

Value:
'http://jabber.org/protocol/admin#get-online-users-list'

NS_ADMIN_ACTIVE_USERS_LIST

Value:
'http://jabber.org/protocol/admin#get-active-users-list'

NS_ADMIN_IDLE_USERS_LIST

Value:
'http://jabber.org/protocol/admin#get-idle-users-list'

NS_ADMIN_DELETE_MOTD

Value:
'http://jabber.org/protocol/admin#delete-motd'

NS_ADMIN_SET_WELCOME

Value:
'http://jabber.org/protocol/admin#set-welcome'

NS_ADMIN_DELETE_WELCOME

Value:
'http://jabber.org/protocol/admin#delete-welcome'

NS_ADMIN_EDIT_ADMIN

Value:
'http://jabber.org/protocol/admin#edit-admin'

NS_COMPONENT_1

Value:
'http://jabberd.jabberstudio.org/ns/component/1.0'

xmpp_stream_error_conditions

Value:
'''
bad-format --  --  -- The entity has sent XML that cannot be processed\
.
bad-namespace-prefix --  --  -- The entity has sent a namespace prefix\
 that is unsupported, or has sent no namespace prefix on an element th\
at requires such a prefix.
conflict --  --  -- The server is closing the active stream for this e\
ntity because a new stream has been initiated that conflicts with the \
...

xmpp_stanza_error_conditions

Value:
'''
bad-request -- 400 -- modify -- The sender has sent XML that is malfor\
med or that cannot be processed.
conflict -- 409 -- cancel -- Access cannot be granted because an exist\
ing resource or session exists with the same name or address.
feature-not-implemented -- 501 -- cancel -- The feature requested is n\
ot implemented by the recipient or server and therefore cannot be proc\
essed.
...

sasl_error_conditions

Value:
'''
aborted --  --  -- The receiving entity acknowledges an <abort/> eleme\
nt sent by the initiating entity; sent in reply to the <abort/> elemen\
t.
incorrect-encoding --  --  -- The data provided by the initiating enti\
ty could not be processed because the [BASE64]Josefsson, S., The Base1\
6, Base32, and Base64 Data Encodings, July 2003. encoding is incorrect\
 (e.g., because the encoding does not adhere to the definition in Sect\
...

stream_exceptions

Value:
{'bad-format': BadFormat, 'bad-namespace-prefix': BadNamespacePrefix, \
'conflict': Conflict, 'connection-timeout': ConnectionTimeout, 'host-g\
one': HostGone, 'host-unknown': HostUnknown, 'improper-addressing': Im\
properAddressing, 'internal-server-error': InternalServerError, 'inval\
id-from': InvalidFrom, 'invalid-id': InvalidID, 'invalid-namespace': I\
nvalidNamespace, 'invalid-xml': InvalidXML, 'not-authorized': NotAutho\
rized, 'policy-violation': PolicyViolation, 'remote-connection-failed'\
: RemoteConnectionFailed, 'resource-constraint': ResourceConstraint, '\
...

ERRORS

Value:
{'urn:ietf:params:xml:ns:xmpp-sasl aborted': ['',
                                              '',
                                              'The receiving entity ac\
knowledges an <abort/> element sent by the initiating entity; sent in \
reply to the <abort/> element.'],
 'urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding': ['',
                                                         '',
                                                         'The data pro\
...

ERR_BAD_REQUEST

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas bad-request'

ERR_FEATURE_NOT_IMPLEMENTED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas feature-not-implemented'

ERR_INTERNAL_SERVER_ERROR

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas internal-server-error'

ERR_ITEM_NOT_FOUND

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas item-not-found'

ERR_JID_MALFORMED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas jid-malformed'

ERR_NOT_ACCEPTABLE

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas not-acceptable'

ERR_NOT_ALLOWED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas not-allowed'

ERR_NOT_AUTHORIZED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas not-authorized'

ERR_PAYMENT_REQUIRED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas payment-required'

ERR_RECIPIENT_UNAVAILABLE

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas recipient-unavailable'

ERR_REGISTRATION_REQUIRED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas registration-required'

ERR_REMOTE_SERVER_NOT_FOUND

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-not-found'

ERR_REMOTE_SERVER_TIMEOUT

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-timeout'

ERR_RESOURCE_CONSTRAINT

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas resource-constraint'

ERR_SERVICE_UNAVAILABLE

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas service-unavailable'