~ubuntu-branches/ubuntu/vivid/gloox/vivid-proposed

« back to all changes in this revision

Viewing changes to src/gloox.h

  • Committer: Package Import Robot
  • Author(s): Vincent Cheng
  • Date: 2014-03-16 17:34:43 UTC
  • mfrom: (12.1.2 experimental)
  • mto: This revision was merged to the branch mainline in revision 15.
  • Revision ID: package-import@ubuntu.com-20140316173443-4s177dovzaz5dm8o
Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
  Copyright (c) 2005-2009 by Jakob Schroeter <js@camaya.net>
 
2
  Copyright (c) 2005-2013 by Jakob Schroeter <js@camaya.net>
3
3
  This file is part of the gloox library. http://camaya.net/gloox
4
4
 
5
5
  This software is distributed under a license. The full license
115
115
 *
116
116
 * A component in the Jabber/XMPP network is an add-on to a server which runs externally
117
117
 * to the actual server software, but can have similar privileges. Components use a protocol described in
118
 
 * XEP-0114 to connect and authenticate to a server.
 
118
 * @xep{0114} to connect and authenticate to a server.
119
119
 *
120
120
 * The @link gloox::Component Component @endlink class supports this protocol and can be used to create
121
121
 * a new Jabber component. It's as simple as:
262
262
 *
263
263
 * @section auth_sec Authentication
264
264
 *
265
 
 * gloox supports old-style IQ-based authentication defined in XEP-0078 as well as several SASL mechanisms.
 
265
 * gloox supports old-style IQ-based authentication defined in @xep{0078} as well as several SASL mechanisms.
266
266
 * See the documentation of the @link gloox::Client Client @endlink class for more information.
267
267
 *
268
268
 * @section msg_sec Sending and Receiving of Chat Messages
276
276
 * The XMPP Standards Foundation has published a number of extensions to the core protocols, called
277
277
 * XMPP Extension Protocols (XEPs). A couple of these XEPs are implemented in gloox:
278
278
 *
279
 
 * @li XEP-0004 @link gloox::DataForm Data Forms @endlink
280
 
 * @li XEP-0012 @link gloox::LastActivity  Last Activity @endlink
281
 
 * @li XEP-0013 @link gloox::FlexibleOffline Flexible Offline Message Retrieval @endlink
282
 
 * @li XEP-0022 Message Events (see @link gloox::MessageSession MessageSession @endlink for examples)
283
 
 * @li XEP-0027 Current Jabber OpenPGP Usage (see @link gloox::GPGSigned GPGSigned @endlink
 
279
 * @li @xep{0004} @link gloox::DataForm Data Forms @endlink
 
280
 * @li @xep{0012} @link gloox::LastActivity  Last Activity @endlink
 
281
 * @li @xep{0013} @link gloox::FlexibleOffline Flexible Offline Message Retrieval @endlink
 
282
 * @li @xep{0022} Message Events (see @link gloox::MessageSession MessageSession @endlink for examples)
 
283
 * @li @xep{0027} Current Jabber OpenPGP Usage (see @link gloox::GPGSigned GPGSigned @endlink
284
284
 * and @link gloox::GPGEncrypted GPGEncrypted @endlink)
285
 
 * @li XEP-0030 @link gloox::Disco Service Discovery @endlink
286
 
 * @li XEP-0045 @link gloox::MUCRoom Multi-User Chat @endlink
287
 
 * @li XEP-0047 Used with @ref filetransfer_sec
288
 
 * @li XEP-0048 @link gloox::BookmarkStorage Bookmark Storage @endlink
289
 
 * @li XEP-0049 @link gloox::PrivateXML Private XML Storage @endlink
290
 
 * @li XEP-0050 @link gloox::Adhoc Ad-hoc Commands @endlink
291
 
 * @li XEP-0054 @link gloox::VCardManager vcard-temp @endlink
292
 
 * @li XEP-0060 @link gloox::PubSub::Manager Publish-Subscribe @endlink
293
 
 * @li XEP-0065 @link gloox::SOCKS5BytestreamManager SOCKS5 Bytestreams @endlink, used with
 
285
 * @li @xep{0030} @link gloox::Disco Service Discovery @endlink
 
286
 * @li @xep{0045} @link gloox::MUCRoom Multi-User Chat @endlink
 
287
 * @li @xep{0047} Used with @ref filetransfer_sec
 
288
 * @li @xep{0048} @link gloox::BookmarkStorage Bookmark Storage @endlink
 
289
 * @li @xep{0049} @link gloox::PrivateXML Private XML Storage @endlink
 
290
 * @li @xep{0050} @link gloox::Adhoc Ad-hoc Commands @endlink
 
291
 * @li @xep{0054} @link gloox::VCardManager vcard-temp @endlink
 
292
 * @li @xep{0060} @link gloox::PubSub::Manager Publish-Subscribe @endlink
 
293
 * @li @xep{0065} @link gloox::SOCKS5BytestreamManager SOCKS5 Bytestreams @endlink, used with
294
294
 * @ref filetransfer_sec and @ref proxy_sec
295
 
 * @li XEP-0066 @link gloox::OOB Out of Band Data @endlink, also used with @ref filetransfer_sec
296
 
 * @li XEP-0077 @link gloox::Registration In-Band Registration @endlink
297
 
 * @li XEP-0078 Non-SASL Authentication (automatically used if the server does not support SASL)
298
 
 * @li XEP-0079 @link gloox::AMP Advanced Message Processing @endlink
299
 
 * @li XEP-0083 Nested Roster Groups (automatically used if supported by the server. see
 
295
 * @li @xep{0066} @link gloox::OOB Out of Band Data @endlink, also used with @ref filetransfer_sec
 
296
 * @li @xep{0077} @link gloox::Registration In-Band Registration @endlink
 
297
 * @li @xep{0078} Non-SASL Authentication (automatically used if the server does not support SASL)
 
298
 * @li @xep{0079} @link gloox::AMP Advanced Message Processing @endlink
 
299
 * @li @xep{0083} Nested Roster Groups (automatically used if supported by the server. see
300
300
 * @link gloox::RosterManager::delimiter() RosterManager @endlink)
301
 
 * @li XEP-0085 Chat State Notifications (see @link gloox::MessageSession MessageSession @endlink for
 
301
 * @li @xep{0085} Chat State Notifications (see @link gloox::MessageSession MessageSession @endlink for
302
302
 * examples)
303
 
 * @li XEP-0091 @link gloox::DelayedDelivery Delayed Delivery @endlink (old spec)
304
 
 * @li XEP-0092 Software Version (integrated into @link gloox::Disco Service Discovery @endlink)
305
 
 * @li XEP-0095 @link gloox::SIManager Stream Initiation @endlink, used with @ref filetransfer_sec
306
 
 * @li XEP-0096 @ref filetransfer_sec
307
 
 * @li XEP-0106 @link gloox::JID::escapeNode() JID Escaping @endlink
308
 
 * @li XEP-0114 @link gloox::Component Jabber Component Protocol @endlink
309
 
 * @li XEP-0115 @link gloox::Capabilities Entity Capabilities @endlink (used automatically internally)
310
 
 * @li XEP-0124 @link gloox::ConnectionBOSH Bidirectional-streams Over Synchronous HTTP (BOSH) @endlink
311
 
 * @li XEP-0131 @link gloox::SHIM Stanza Headers and Internet Metadata @endlink
312
 
 * @li XEP-0138 Stream Compression (used automatically if gloox is compiled with zlib and if the server
 
303
 * @li @xep{0091} @link gloox::DelayedDelivery Delayed Delivery @endlink (old spec)
 
304
 * @li @xep{0092} Software Version (integrated into @link gloox::Disco Service Discovery @endlink)
 
305
 * @li @xep{0095} @link gloox::SIManager Stream Initiation @endlink, used with @ref filetransfer_sec
 
306
 * @li @xep{0096} @ref filetransfer_sec
 
307
 * @li @xep{0106} @link gloox::JID::escapeNode() JID Escaping @endlink
 
308
 * @li @xep{0114} @link gloox::Component Jabber Component Protocol @endlink
 
309
 * @li @xep{0115} @link gloox::Capabilities Entity Capabilities @endlink (used automatically internally)
 
310
 * @li @xep{0124} @link gloox::ConnectionBOSH Bidirectional-streams Over Synchronous HTTP (BOSH) @endlink
 
311
 * @li @xep{0131} @link gloox::SHIM Stanza Headers and Internet Metadata @endlink
 
312
 * @li @xep{0138} Stream Compression (used automatically if gloox is compiled with zlib and if the server
313
313
 * supports it)
314
 
 * @li XEP-0145 @link gloox::Annotations Annotations @endlink
315
 
 * @li XEP-0153 @link gloox::VCardUpdate vCard-based Avatars @endlink
316
 
 * @li XEP-0172 @link gloox::Nickname User Nickname @endlink
317
 
 * @li XEP-0184 @link gloox::Receipt Message Receipts @endlink
318
 
 * @li XEP-0199 @link gloox::ClientBase::xmppPing() XMPP Ping @endlink
319
 
 * @li XEP-0203 @link gloox::DelayedDelivery Delayed Delivery @endlink (new spec)
320
 
 * @li XEP-0206 @link gloox::ConnectionBOSH see BOSH @endlink
321
 
 * @li XEP-0224 @link gloox::Attention Attention @endlink
322
 
 * @li XEP-0256 @link gloox::LastActivity::Query Last Activity in Presence @endlink
 
314
 * @li @xep{0145} @link gloox::Annotations Annotations @endlink
 
315
 * @li @xep{0153} @link gloox::VCardUpdate vCard-based Avatars @endlink
 
316
 * @li @xep{0166} @link gloox::Jingle::SessionManager Jingle @endlink
 
317
 * @li @xep{0172} @link gloox::Nickname User Nickname @endlink
 
318
 * @li @xep{0174} @link gloox::LinkLocal::Manager Link-local Messaging @endlink
 
319
 * @li @xep{0176} @link gloox::Jingle::ICEUDP Jingle ICE-UDP Transport Method @endlink
 
320
 * @li @xep{0184} @link gloox::Receipt Message Receipts @endlink
 
321
 * @li @xep{0198} Stream Management (integrated into @link gloox::Client @endlink)
 
322
 * @li @xep{0199} @link gloox::ClientBase::xmppPing() XMPP Ping @endlink
 
323
 * @li @xep{0203} @link gloox::DelayedDelivery Delayed Delivery @endlink (new spec)
 
324
 * @li @xep{0206} @link gloox::ConnectionBOSH see BOSH @endlink
 
325
 * @li @xep{0224} @link gloox::Attention Attention @endlink
 
326
 * @li @xep{0234} @link gloox::Jingle::FileTransfer Jingle File Transfer @endlink
 
327
 * @li @xep{0256} @link gloox::LastActivity::Query Last Activity in Presence @endlink
 
328
 * @li @xep{0280} @link gloox::Carbons Message Carbons @endlink
 
329
 * @li @xep{0297} @link gloox::Forward Stanza Forwarding @endlink
323
330
 *
324
331
 * Further extensions can easily be implemented using
325
332
 * @link gloox::StanzaExtension StanzaExtensions @endlink.
326
333
 *
327
334
 * @section filetransfer_sec File Transfer
328
335
 *
329
 
 * For file transfer, gloox implements XEP-0095 (Stream Initiation) as well XEP-0096 (File Transfer)
330
 
 * for the signalling, and XEP-0065 (SOCKS5 Bytestreams) as well as XEP-0047 (In-Band Bytestreams)
 
336
 * For file transfer, gloox implements @xep{0095} (Stream Initiation) as well @xep{0096} (File Transfer)
 
337
 * for the signalling, and @xep{0065} (SOCKS5 Bytestreams) as well as @xep{0047} (In-Band Bytestreams)
331
338
 * for the transport. See @link gloox::SIProfileFT SIProfileFT @endlink.
332
339
 *
333
340
 * @section proxy_sec HTTP and SOCKS5 Proxy support
362
369
  /** Client namespace (RFC 3920)*/
363
370
  GLOOX_API extern const std::string XMLNS_CLIENT;
364
371
 
365
 
  /** Component Accept namespace (XEP-0114) */
 
372
  /** Component Accept namespace (@xep{0114}) */
366
373
  GLOOX_API extern const std::string XMLNS_COMPONENT_ACCEPT;
367
374
 
368
 
  /** Component Connect namespace (XEP-0114) */
 
375
  /** Component Connect namespace (@xep{0114}) */
369
376
  GLOOX_API extern const std::string XMLNS_COMPONENT_CONNECT;
370
377
 
371
 
  /** Service Discovery Info namespace (XEP-0030) */
 
378
  /** Service Discovery Info namespace (@xep{0030}) */
372
379
  GLOOX_API extern const std::string XMLNS_DISCO_INFO;
373
380
 
374
 
  /** Service Discovery Items namespace (XEP-0030) */
 
381
  /** Service Discovery Items namespace (@xep{0030}) */
375
382
  GLOOX_API extern const std::string XMLNS_DISCO_ITEMS;
376
383
 
377
 
  /** Service Discovery Publish namespace (XEP-0030) */
 
384
  /** Service Discovery Publish namespace (@xep{0030}) */
378
385
  GLOOX_API extern const std::string XMLNS_DISCO_PUBLISH;
379
386
 
380
 
  /** Adhoc Commands namespace (XEP-0050) */
 
387
  /** Adhoc Commands namespace (@xep{0050}) */
381
388
  GLOOX_API extern const std::string XMLNS_ADHOC_COMMANDS;
382
389
 
383
 
  /** Stream Compression namespace (XEP-0138) */
 
390
  /** Stream Compression namespace (@xep{0138}) */
384
391
  GLOOX_API extern const std::string XMLNS_COMPRESSION;
385
392
 
386
 
  /** Flexible Offline Message Retrieval (XEP-0013) */
 
393
  /** Flexible Offline Message Retrieval (@xep{0013}) */
387
394
  GLOOX_API extern const std::string XMLNS_OFFLINE;
388
395
 
389
 
  /** Chat State Notifications namespace (XEP-0085) */
 
396
  /** Chat State Notifications namespace (@xep{0085}) */
390
397
  GLOOX_API extern const std::string XMLNS_CHAT_STATES;
391
398
 
392
 
  /** Advanced Message Processing (XEP-0079) */
 
399
  /** Advanced Message Processing (@xep{0079}) */
393
400
  GLOOX_API extern const std::string XMLNS_AMP;
394
401
 
395
 
  /** In-Band Bytestreams namespace (XEP-0047) */
 
402
  /** In-Band Bytestreams namespace (@xep{0047}) */
396
403
  GLOOX_API extern const std::string XMLNS_IBB;
397
404
 
398
 
  /** Feature Negotiation namespace (XEP-0020) */
 
405
  /** Feature Negotiation namespace (@xep{0020}) */
399
406
  GLOOX_API extern const std::string XMLNS_FEATURE_NEG;
400
407
 
401
 
  /** Chat Session Negotiation namespace (XEP-0155) */
 
408
  /** Chat Session Negotiation namespace (@xep{0155}) */
402
409
  GLOOX_API extern const std::string XMLNS_CHATNEG;
403
410
 
404
 
  /** XHTML-IM namespace (XEP-0071) */
 
411
  /** XHTML-IM namespace (@xep{0071}) */
405
412
  GLOOX_API extern const std::string XMLNS_XHTML_IM;
406
413
 
407
 
  /** Delayed Delivery namespace (XEP-0203) */
 
414
  /** Delayed Delivery namespace (@xep{0203}) */
408
415
  GLOOX_API extern const std::string XMLNS_DELAY;
409
416
 
410
417
  /** Roster namespace (RFC 3921) */
411
418
  GLOOX_API extern const std::string XMLNS_ROSTER;
412
419
 
413
 
  /** Software Version namespace (XEP-0092) */
 
420
  /** Software Version namespace (@xep{0092}) */
414
421
  GLOOX_API extern const std::string XMLNS_VERSION;
415
422
 
416
 
  /** In-Band Registration namespace (XEP-0077) */
 
423
  /** In-Band Registration namespace (@xep{0077}) */
417
424
  GLOOX_API extern const std::string XMLNS_REGISTER;
418
425
 
419
426
  /** Privacy lists namespace (RFC 3921) */
420
427
  GLOOX_API extern const std::string XMLNS_PRIVACY;
421
428
 
422
 
  /** Non-SASL Authentication namespace (XEP-0078) */
 
429
  /** Non-SASL Authentication namespace (@xep{0078}) */
423
430
  GLOOX_API extern const std::string XMLNS_AUTH;
424
431
 
425
 
  /** Private XML Storage namespace (XEP-0049) */
 
432
  /** Private XML Storage namespace (@xep{0049}) */
426
433
  GLOOX_API extern const std::string XMLNS_PRIVATE_XML;
427
434
 
428
 
  /** Last Activity namespace (XEP-0012) */
 
435
  /** Last Activity namespace (@xep{0012}) */
429
436
  GLOOX_API extern const std::string XMLNS_LAST;
430
437
 
431
 
  /** Jabber Search namespace (XEP-0055) */
 
438
  /** Jabber Search namespace (@xep{0055}) */
432
439
  GLOOX_API extern const std::string XMLNS_SEARCH;
433
440
 
434
 
  /** Out of Band Data (IQ) namespace (XEP-0066) */
 
441
  /** Out of Band Data (IQ) namespace (@xep{0066}) */
435
442
  GLOOX_API extern const std::string XMLNS_IQ_OOB;
436
443
 
437
 
  /** Data Forms namespace (XEP-0004) */
 
444
  /** Data Forms namespace (@xep{0004}) */
438
445
  GLOOX_API extern const std::string XMLNS_X_DATA;
439
446
 
440
 
  /** Message Events (XEP-0022) */
 
447
  /** Message Events (@xep{0022}) */
441
448
  GLOOX_API extern const std::string XMLNS_X_EVENT;
442
449
 
443
 
  /** Out of Band Data (X) namespace (XEP-0066) */
 
450
  /** Out of Band Data (X) namespace (@xep{0066}) */
444
451
  GLOOX_API extern const std::string XMLNS_X_OOB;
445
452
 
446
 
  /** Delayed Delivery namespace (XEP-0091) */
 
453
  /** Delayed Delivery namespace (@xep{0091}) */
447
454
  GLOOX_API extern const std::string XMLNS_X_DELAY;
448
455
 
449
 
  /** Current Jabber OpenPGP Usage (Sign.) (XEP-0027) */
 
456
  /** Current Jabber OpenPGP Usage (Sign.) (@xep{0027}) */
450
457
  GLOOX_API extern const std::string XMLNS_X_GPGSIGNED;
451
458
 
452
 
  /** Current Jabber OpenPGP Usage (Enc.) (XEP-0027) */
 
459
  /** Current Jabber OpenPGP Usage (Enc.) (@xep{0027}) */
453
460
  GLOOX_API extern const std::string XMLNS_X_GPGENCRYPTED;
454
461
 
455
 
  /** vcard-temp namespace (XEP-0054) */
 
462
  /** vcard-temp namespace (@xep{0054}) */
456
463
  GLOOX_API extern const std::string XMLNS_VCARD_TEMP;
457
464
 
458
 
  /** vCard-Based Avatars namespace (XEP-0153) */
 
465
  /** vCard-Based Avatars namespace (@xep{0153}) */
459
466
  GLOOX_API extern const std::string XMLNS_X_VCARD_UPDATE;
460
467
 
461
 
  /** Bookmark Storage namespace (XEP-0048) */
 
468
  /** Bookmark Storage namespace (@xep{0048}) */
462
469
  GLOOX_API extern const std::string XMLNS_BOOKMARKS;
463
470
 
464
 
  /** Annotations namespace (XEP-0145) */
 
471
  /** Annotations namespace (@xep{0145}) */
465
472
  GLOOX_API extern const std::string XMLNS_ANNOTATIONS;
466
473
 
467
 
  /** Nested Roster Groups namespace (XEP-0083) */
 
474
  /** Nested Roster Groups namespace (@xep{0083}) */
468
475
  GLOOX_API extern const std::string XMLNS_ROSTER_DELIMITER;
469
476
 
470
 
  /** XMPP Ping namespace (XEP-0199) */
 
477
  /** XMPP Ping namespace (@xep{0199}) */
471
478
  GLOOX_API extern const std::string XMLNS_XMPP_PING;
472
479
 
473
 
  /** Stream Initiation namespace (XEP-0095) */
 
480
  /** Stream Initiation namespace (@xep{0095}) */
474
481
  GLOOX_API extern const std::string XMLNS_SI;
475
482
 
476
 
  /** File transfer profile of Stream Initiation (XEP-0096) */
 
483
  /** File transfer profile of Stream Initiation (@xep{0096}) */
477
484
  GLOOX_API extern const std::string XMLNS_SI_FT;
478
485
 
479
 
  /** SOCKS5 Bytestreams namespace (XEP-0065) */
 
486
  /** SOCKS5 Bytestreams namespace (@xep{0065}) */
480
487
  GLOOX_API extern const std::string XMLNS_BYTESTREAMS;
481
488
 
482
 
  /** Multi-User Chat namespace (XEP-0045) */
 
489
  /** Multi-User Chat namespace (@xep{0045}) */
483
490
  GLOOX_API extern const std::string XMLNS_MUC;
484
491
 
485
 
  /** Multi-User Chat namespace (user) (XEP-0045) */
 
492
  /** Multi-User Chat namespace (user) (@xep{0045}) */
486
493
  GLOOX_API extern const std::string XMLNS_MUC_USER;
487
494
 
488
 
  /** Multi-User Chat namespace (admin) (XEP-0045) */
 
495
  /** Multi-User Chat namespace (admin) (@xep{0045}) */
489
496
  GLOOX_API extern const std::string XMLNS_MUC_ADMIN;
490
497
 
491
 
  /** Multi-User Chat namespace (unique) (XEP-0045) */
 
498
  /** Multi-User Chat namespace (unique) (@xep{0045}) */
492
499
  GLOOX_API extern const std::string XMLNS_MUC_UNIQUE;
493
500
 
494
 
  /** Multi-User Chat namespace (owner) (XEP-0045) */
 
501
  /** Multi-User Chat namespace (owner) (@xep{0045}) */
495
502
  GLOOX_API extern const std::string XMLNS_MUC_OWNER;
496
503
 
497
 
  /** Multi-User Chat namespace (roominfo) (XEP-0045) */
 
504
  /** Multi-User Chat namespace (roominfo) (@xep{0045}) */
498
505
  GLOOX_API extern const std::string XMLNS_MUC_ROOMINFO;
499
506
 
500
 
  /** Multi-User Chat namespace (rooms) (XEP-0045) */
 
507
  /** Multi-User Chat namespace (rooms) (@xep{0045}) */
501
508
  GLOOX_API extern const std::string XMLNS_MUC_ROOMS;
502
509
 
503
 
  /** Multi-User Chat namespace (request) (XEP-0045) */
 
510
  /** Multi-User Chat namespace (request) (@xep{0045}) */
504
511
  GLOOX_API extern const std::string XMLNS_MUC_REQUEST;
505
512
 
506
 
  /** PubSub namespace (XEP-0060) */
 
513
  /** PubSub namespace (@xep{0060}) */
507
514
  GLOOX_API extern const std::string XMLNS_PUBSUB;
508
515
 
509
 
  /** PubSub namespace (errors) (XEP-0060) */
 
516
  /** PubSub namespace (errors) (@xep{0060}) */
510
517
  GLOOX_API extern const std::string XMLNS_PUBSUB_ERRORS;
511
518
 
512
 
  /** PubSub namespace (event) (XEP-0060) */
 
519
  /** PubSub namespace (event) (@xep{0060}) */
513
520
  GLOOX_API extern const std::string XMLNS_PUBSUB_EVENT;
514
521
 
515
 
  /** PubSub namespace (owner) (XEP-0060) */
 
522
  /** PubSub namespace (owner) (@xep{0060}) */
516
523
  GLOOX_API extern const std::string XMLNS_PUBSUB_OWNER;
517
524
 
518
 
  /** Entity Capabilities namespace (XEP-0115) */
 
525
  /** Entity Capabilities namespace (@xep{0115}) */
519
526
  GLOOX_API extern const std::string XMLNS_CAPS;
520
527
 
521
528
  /** SOCKS5 Fast Mode namespace */
542
549
  /** Session Create Stream Feature (RFC 3921) */
543
550
  GLOOX_API extern const std::string XMLNS_STREAM_SESSION;
544
551
 
545
 
  /** Non-SASL Auth. Stream Feature (XEP-0078) */
 
552
  /** Non-SASL Auth. Stream Feature (@xep{0078}) */
546
553
  GLOOX_API extern const std::string XMLNS_STREAM_IQAUTH;
547
554
 
548
 
  /** In-Band Registration namespace (XEP-0077) */
 
555
  /** In-Band Registration namespace (@xep{0077}) */
549
556
  GLOOX_API extern const std::string XMLNS_STREAM_IQREGISTER;
550
557
 
551
 
  /** Stream Compression Feature namespace (XEP-0138) */
 
558
  /** Stream Compression Feature namespace (@xep{0138}) */
552
559
  GLOOX_API extern const std::string XMLNS_STREAM_COMPRESS;
553
560
 
554
 
  /** General HTTP binding (BOSH) namespace (XEP-0124) */
 
561
  /** General HTTP binding (BOSH) namespace (@xep{0124}) */
555
562
  GLOOX_API extern const std::string XMLNS_HTTPBIND;
556
563
 
557
 
  /** XMPP-over-BOSH extensions (XEP-0206) */
 
564
  /** XMPP-over-BOSH extensions (@xep{0206}) */
558
565
  GLOOX_API extern const std::string XMLNS_XMPP_BOSH;
559
566
 
560
 
  /** Message Receipt namespace (XEP-0184) */
 
567
  /** Message Receipt namespace (@xep{0184}) */
561
568
  GLOOX_API extern const std::string XMLNS_RECEIPTS;
562
569
 
563
 
  /** Message Receipt namespace (XEP-0172) */
 
570
  /** Message Receipt namespace (@xep{0172}) */
564
571
  GLOOX_API extern const std::string XMLNS_NICKNAME;
565
572
 
566
 
  /** Jingle namespace (XEP-0166) */
 
573
  /** Jabber RPC namespace (@xep{0009}) */
 
574
  GLOOX_API extern const std::string XMLNS_JABBER_RPC;
 
575
 
 
576
  /** Jingle namespace (@xep{0166}) */
567
577
  GLOOX_API extern const std::string XMLNS_JINGLE;
568
578
 
569
 
  /** Jingle Audio via RTP namespace (XEP-0167) */
570
 
  GLOOX_API extern const std::string XMLNS_JINGLE_AUDIO_RTP;
 
579
  /** Jingle error namespace (@xep{0166}) */
 
580
  GLOOX_API extern const std::string XMLNS_JINGLE_ERRORS;
571
581
 
572
 
  /** Jingle ICE-UDP Transport namespace (XEP-0176) */
 
582
  /** Jingle ICE-UDP Transport namespace (@xep{0176}) */
573
583
  GLOOX_API extern const std::string XMLNS_JINGLE_ICE_UDP;
574
584
 
575
 
  /** Jingle Raw UDP Transport namespace (XEP-0177) */
576
 
  GLOOX_API extern const std::string XMLNS_JINGLE_RAW_UDP;
577
 
 
578
 
  /** Jingle Video via RTP namespace (XEP-0180) */
579
 
  GLOOX_API extern const std::string XMLNS_JINGLE_VIDEO_RTP;
580
 
 
581
 
  /** Stanza Headers and Internet Metadata (SHIM) namespace (XEP-0131) */
 
585
  /** Jingle File Transfer namespace (@xep{0234}) */
 
586
  GLOOX_API extern const std::string XMLNS_JINGLE_FILE_TRANSFER;
 
587
 
 
588
  /** Jingle File Transfer namespace (multiple files) (@xep{0234}) */
 
589
  GLOOX_API extern const std::string XMLNS_JINGLE_FILE_TRANSFER_MULTI;
 
590
 
 
591
  /** Stanza Headers and Internet Metadata (SHIM) namespace (@xep{0131}) */
582
592
  GLOOX_API extern const std::string XMLNS_SHIM;
583
593
 
584
 
  /** Attention namespace (XEP-0224) */
 
594
  /** Attention namespace (@xep{0224}) */
585
595
  GLOOX_API extern const std::string XMLNS_ATTENTION;
586
596
 
 
597
  /** Stream Management namespace (@xep{0198}) */
 
598
  GLOOX_API extern const std::string XMLNS_STREAM_MANAGEMENT;
 
599
 
 
600
  /** Stanza Forwarding namespace (@xep{0297}) */
 
601
  GLOOX_API extern const std::string XMLNS_STANZA_FORWARDING;
 
602
 
 
603
  /** Message Carbons namespace (@xep{0280}) */
 
604
  GLOOX_API extern const std::string XMLNS_MESSAGE_CARBONS;
 
605
 
 
606
  /** Use of Cryptographic Hash Functions in XMPP namespace (@xep{0300}) */
 
607
  GLOOX_API extern const std::string XMLNS_HASHES;
587
608
 
588
609
  /** Supported stream version (major). */
589
610
  GLOOX_API extern const std::string XMPP_STREAM_VERSION_MAJOR;
629
650
    StreamEventAuthentication,      /**< The Client is about to authenticate. */
630
651
    StreamEventSessionInit,         /**< The Client is about to create a session. */
631
652
    StreamEventResourceBinding,     /**< The Client is about to bind a resource to the stream. */
 
653
    StreamEventSMEnable,            /**< The Client is about to request Stream Management (@xep{0198}).
 
654
                                     * @since 1.0.4 */
 
655
    StreamEventSMResume,            /**< The Client is about to request resumption by means of Stream Management
 
656
                                     * (@xep{0198}).
 
657
                                     * @since 1.0.4 */
 
658
    StreamEventSMResumed,           /**< The stream has successfully been resumed by means of Stream Management
 
659
                                     * (@xep{0198}).
 
660
                                     * @since 1.0.4 */
 
661
    StreamEventSMEnableFailed,      /**< The attempt to enable Stream Management
 
662
                                     * (@xep{0198}) failed. This is not critical.
 
663
                                     * @since 1.0.4 */
 
664
    StreamEventSMResumeFailed,      /**< The attempt to resume an aborted session by means of Stream Management
 
665
                                     * (@xep{0198}) failed. This is not critical.
 
666
                                     * @since 1.0.4 */
632
667
    StreamEventSessionCreation,     /**< The Client is about to create a session.
633
668
                                     * @since 0.9.1 */
634
669
    StreamEventRoster,              /**< The Client is about to request the roster. */
694
729
    StreamFeatureUnbind           =    2, /**< The server supports binding multiple resources. */
695
730
    StreamFeatureSession          =    4, /**< The server supports sessions. */
696
731
    StreamFeatureStartTls         =    8, /**< The server supports &lt;starttls&gt;. */
697
 
    StreamFeatureIqRegister       =   16, /**< The server supports XEP-0077 (In-Band
 
732
    StreamFeatureIqRegister       =   16, /**< The server supports @xep{0077} (In-Band
698
733
                                           * Registration). */
699
 
    StreamFeatureIqAuth           =   32, /**< The server supports XEP-0078 (Non-SASL
 
734
    StreamFeatureIqAuth           =   32, /**< The server supports @xep{0078} (Non-SASL
700
735
                                           * Authentication). */
701
 
    StreamFeatureCompressZlib     =   64, /**< The server supports XEP-0138 (Stream
 
736
    StreamFeatureCompressZlib     =   64, /**< The server supports @xep{0138} (Stream
702
737
                                           * Compression) (Zlib). */
703
 
    StreamFeatureCompressDclz     =  128  /**< The server supports XEP-0138 (Stream
 
738
    StreamFeatureCompressDclz     =  128, /**< The server supports @xep{0138} (Stream
704
739
                                           * Compression) (LZW/DCLZ). */
705
 
    // SASLMechanism below must be adjusted accordingly.
 
740
    StreamFeatureStreamManagement =  256  /**< The server supports @xep{0198} (Stream Management). */
 
741
    // SaslMechanism below must be adjusted accordingly.
706
742
  };
707
743
 
708
744
  /**
711
747
  // must be adjusted with changes to StreamFeature enum above
712
748
  enum SaslMechanism
713
749
  {
714
 
    SaslMechNone           =     0, /**< Invalid SASL Mechanism. */
715
 
    SaslMechDigestMd5      =   256, /**< SASL Digest-MD5 according to RFC 2831. */
716
 
    SaslMechPlain          =   512, /**< SASL PLAIN according to RFC 2595 Section 6. */
717
 
    SaslMechAnonymous      =  1024, /**< SASL ANONYMOUS according to draft-ietf-sasl-anon-05.txt/
 
750
    SaslMechNone          =      0, /**< Invalid SASL Mechanism. */
 
751
    SaslMechScramSha1     =   2048, /**< SASL SCRAM-SHA-1-PLUS accroding to RFC 5801 */
 
752
    SaslMechScramSha1Plus =   1024, /**< SASL SCRAM-SHA-1 accroding to RFC 5801 */
 
753
    SaslMechDigestMd5     =   4096, /**< SASL Digest-MD5 according to RFC 2831. */
 
754
    SaslMechPlain         =   8192, /**< SASL PLAIN according to RFC 2595 Section 6. */
 
755
    SaslMechAnonymous     =  16384, /**< SASL ANONYMOUS according to draft-ietf-sasl-anon-05.txt/
718
756
                                     * RFC 2245 Section 6. */
719
 
    SaslMechExternal       =  2048, /**< SASL EXTERNAL according to RFC 2222 Section 7.4. */
720
 
    SaslMechGssapi         =  4096, /**< SASL GSSAPI (Win32 only). */
721
 
    SaslMechNTLM           =  8192, /**< SASL NTLM (Win32 only). */
722
 
    SaslMechAll            = 65535  /**< Includes all supported SASL mechanisms. */
 
757
    SaslMechExternal      =  32768, /**< SASL EXTERNAL according to RFC 2222 Section 7.4. */
 
758
    SaslMechGssapi        =  65536, /**< SASL GSSAPI (Win32 only). */
 
759
    SaslMechNTLM          = 131072, /**< SASL NTLM (Win32 only). */
 
760
    SaslMechAll           = 262143  /**< Includes all supported SASL mechanisms. */
723
761
  };
724
762
 
725
763
  /**
800
838
    StreamErrorXmlNotWellFormed,    /**< The initiating entity has sent XML that is not well-formed as
801
839
                                     * defined by [XML]. */
802
840
    StreamErrorUndefined            /**< An undefined/unknown error occured. Also used if a diconnect was
803
 
     * user-initiated. Also set before and during a established connection
 
841
                                     * user-initiated. Also set before and during a established connection
804
842
                                     * (where obviously no error occured). */
805
843
  };
806
844
 
993
1031
    SaslTemporaryAuthFailure,       /**< The authentication failed because of a temporary error condition
994
1032
                                     * within the receiving entity; sent in reply to an &lt;auth/&gt; element
995
1033
                                     * or &lt;response/&gt; element. */
996
 
    NonSaslConflict,                /**< XEP-0078: Resource Conflict */
997
 
    NonSaslNotAcceptable,           /**< XEP-0078: Required Information Not Provided */
998
 
    NonSaslNotAuthorized            /**< XEP-0078: Incorrect Credentials */
 
1034
    NonSaslConflict,                /**< @xep{0078}: Resource Conflict */
 
1035
    NonSaslNotAcceptable,           /**< @xep{0078}: Required Information Not Provided */
 
1036
    NonSaslNotAuthorized            /**< @xep{0078}: Incorrect Credentials */
999
1037
  };
1000
1038
 
1001
1039
  /**
1017
1055
    LogAreaClassSOCKS5Bytestream      = 0x000800, /**< Log messages from SOCKS5Bytestream. */
1018
1056
    LogAreaClassConnectionBOSH        = 0x001000, /**< Log messages from ConnectionBOSH */
1019
1057
    LogAreaClassConnectionTLS         = 0x002000, /**< Log messages from ConnectionTLS */
 
1058
    LogAreaLinkLocalManager           = 0x004000, /**< Log messages from LinkLocalManager */
1020
1059
    LogAreaAllClasses                 = 0x01FFFF, /**< All log messages from all the classes. */
1021
1060
    LogAreaXmlIncoming                = 0x020000, /**< Incoming XML. */
1022
1061
    LogAreaXmlOutgoing                = 0x040000, /**< Outgoing XML. */
1035
1074
  };
1036
1075
 
1037
1076
  /**
1038
 
   * The possible Message Events according to XEP-0022.
 
1077
   * The possible Message Events according to @xep{0022}.
1039
1078
   */
1040
1079
  enum MessageEventType
1041
1080
  {
1050
1089
  };
1051
1090
 
1052
1091
  /**
1053
 
   * The possible Chat States according to XEP-0085.
 
1092
   * The possible Chat States according to @xep{0085}.
1054
1093
   */
1055
1094
  enum ChatStateType
1056
1095
  {
1091
1130
   */
1092
1131
  enum MessageSessionFilter
1093
1132
  {
1094
 
    FilterMessageEvents    = 1,     /**< Message Events (XEP-0022) */
1095
 
    FilterChatStates       = 2      /**< Chat State Notifications (XEP-0085) */
 
1133
    FilterMessageEvents    = 1,     /**< Message Events (@xep{0022}) */
 
1134
    FilterChatStates       = 2      /**< Chat State Notifications (@xep{0085}) */
1096
1135
  };
1097
1136
 
1098
1137
  /**
1099
 
   * Defined MUC room affiliations. See XEP-0045 for default privileges.
 
1138
   * Defined MUC room affiliations. See @xep{0045} for default privileges.
1100
1139
   */
1101
1140
  enum MUCRoomAffiliation
1102
1141
  {
1109
1148
  };
1110
1149
 
1111
1150
  /**
1112
 
   * Defined MUC room roles. See XEP-0045 for default privileges.
 
1151
   * Defined MUC room roles. See @xep{0045} for default privileges.
1113
1152
   */
1114
1153
  enum MUCRoomRole
1115
1154
  {