1/* 2 * libjingle 3 * Copyright 2004--2005, Google Inc. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * 3. The name of the author may not be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 28#ifndef TALK_XMPP_CONSTANTS_H_ 29#define TALK_XMPP_CONSTANTS_H_ 30 31#include <string> 32#include "talk/xmllite/qname.h" 33#include "talk/xmpp/jid.h" 34 35 36#define NS_CLIENT Constants::ns_client() 37#define NS_SERVER Constants::ns_server() 38#define NS_STREAM Constants::ns_stream() 39#define NS_XSTREAM Constants::ns_xstream() 40#define NS_TLS Constants::ns_tls() 41#define NS_SASL Constants::ns_sasl() 42#define NS_BIND Constants::ns_bind() 43#define NS_DIALBACK Constants::ns_dialback() 44#define NS_SESSION Constants::ns_session() 45#define NS_STANZA Constants::ns_stanza() 46#define NS_PRIVACY Constants::ns_privacy() 47#define NS_ROSTER Constants::ns_roster() 48#define NS_VCARD Constants::ns_vcard() 49#define NS_AVATAR_HASH Constants::ns_avatar_hash() 50#define NS_VCARD_UPDATE Constants::ns_vcard_update() 51#define STR_CLIENT Constants::str_client() 52#define STR_SERVER Constants::str_server() 53#define STR_STREAM Constants::str_stream() 54 55 56namespace buzz { 57 58extern const Jid JID_EMPTY; 59 60class Constants { 61 public: 62 static const std::string & ns_client(); 63 static const std::string & ns_server(); 64 static const std::string & ns_stream(); 65 static const std::string & ns_xstream(); 66 static const std::string & ns_tls(); 67 static const std::string & ns_sasl(); 68 static const std::string & ns_bind(); 69 static const std::string & ns_dialback(); 70 static const std::string & ns_session(); 71 static const std::string & ns_stanza(); 72 static const std::string & ns_privacy(); 73 static const std::string & ns_roster(); 74 static const std::string & ns_vcard(); 75 static const std::string & ns_avatar_hash(); 76 static const std::string & ns_vcard_update(); 77 78 static const std::string & str_client(); 79 static const std::string & str_server(); 80 static const std::string & str_stream(); 81}; 82 83extern const std::string STR_GET; 84extern const std::string STR_SET; 85extern const std::string STR_RESULT; 86extern const std::string STR_ERROR; 87 88 89extern const std::string STR_FROM; 90extern const std::string STR_TO; 91extern const std::string STR_BOTH; 92extern const std::string STR_REMOVE; 93 94extern const std::string STR_MESSAGE; 95extern const std::string STR_BODY; 96extern const std::string STR_PRESENCE; 97extern const std::string STR_STATUS; 98extern const std::string STR_SHOW; 99extern const std::string STR_PRIOIRTY; 100extern const std::string STR_IQ; 101 102extern const std::string STR_TYPE; 103extern const std::string STR_NAME; 104extern const std::string STR_ID; 105extern const std::string STR_JID; 106extern const std::string STR_SUBSCRIPTION; 107extern const std::string STR_ASK; 108extern const std::string STR_X; 109extern const std::string STR_GOOGLE_COM; 110extern const std::string STR_GMAIL_COM; 111extern const std::string STR_GOOGLEMAIL_COM; 112extern const std::string STR_DEFAULT_DOMAIN; 113extern const std::string STR_TALK_GOOGLE_COM; 114extern const std::string STR_TALKX_L_GOOGLE_COM; 115 116#ifdef FEATURE_ENABLE_VOICEMAIL 117extern const std::string STR_VOICEMAIL; 118extern const std::string STR_OUTGOINGVOICEMAIL; 119#endif 120 121extern const std::string STR_UNAVAILABLE; 122 123extern const QName QN_STREAM_STREAM; 124extern const QName QN_STREAM_FEATURES; 125extern const QName QN_STREAM_ERROR; 126 127extern const QName QN_XSTREAM_BAD_FORMAT; 128extern const QName QN_XSTREAM_BAD_NAMESPACE_PREFIX; 129extern const QName QN_XSTREAM_CONFLICT; 130extern const QName QN_XSTREAM_CONNECTION_TIMEOUT; 131extern const QName QN_XSTREAM_HOST_GONE; 132extern const QName QN_XSTREAM_HOST_UNKNOWN; 133extern const QName QN_XSTREAM_IMPROPER_ADDRESSIING; 134extern const QName QN_XSTREAM_INTERNAL_SERVER_ERROR; 135extern const QName QN_XSTREAM_INVALID_FROM; 136extern const QName QN_XSTREAM_INVALID_ID; 137extern const QName QN_XSTREAM_INVALID_NAMESPACE; 138extern const QName QN_XSTREAM_INVALID_XML; 139extern const QName QN_XSTREAM_NOT_AUTHORIZED; 140extern const QName QN_XSTREAM_POLICY_VIOLATION; 141extern const QName QN_XSTREAM_REMOTE_CONNECTION_FAILED; 142extern const QName QN_XSTREAM_RESOURCE_CONSTRAINT; 143extern const QName QN_XSTREAM_RESTRICTED_XML; 144extern const QName QN_XSTREAM_SEE_OTHER_HOST; 145extern const QName QN_XSTREAM_SYSTEM_SHUTDOWN; 146extern const QName QN_XSTREAM_UNDEFINED_CONDITION; 147extern const QName QN_XSTREAM_UNSUPPORTED_ENCODING; 148extern const QName QN_XSTREAM_UNSUPPORTED_STANZA_TYPE; 149extern const QName QN_XSTREAM_UNSUPPORTED_VERSION; 150extern const QName QN_XSTREAM_XML_NOT_WELL_FORMED; 151extern const QName QN_XSTREAM_TEXT; 152 153extern const QName QN_TLS_STARTTLS; 154extern const QName QN_TLS_REQUIRED; 155extern const QName QN_TLS_PROCEED; 156extern const QName QN_TLS_FAILURE; 157 158extern const QName QN_SASL_MECHANISMS; 159extern const QName QN_SASL_MECHANISM; 160extern const QName QN_SASL_AUTH; 161extern const QName QN_SASL_CHALLENGE; 162extern const QName QN_SASL_RESPONSE; 163extern const QName QN_SASL_ABORT; 164extern const QName QN_SASL_SUCCESS; 165extern const QName QN_SASL_FAILURE; 166extern const QName QN_SASL_ABORTED; 167extern const QName QN_SASL_INCORRECT_ENCODING; 168extern const QName QN_SASL_INVALID_AUTHZID; 169extern const QName QN_SASL_INVALID_MECHANISM; 170extern const QName QN_SASL_MECHANISM_TOO_WEAK; 171extern const QName QN_SASL_NOT_AUTHORIZED; 172extern const QName QN_SASL_TEMPORARY_AUTH_FAILURE; 173 174extern const QName QN_DIALBACK_RESULT; 175extern const QName QN_DIALBACK_VERIFY; 176 177extern const QName QN_STANZA_BAD_REQUEST; 178extern const QName QN_STANZA_CONFLICT; 179extern const QName QN_STANZA_FEATURE_NOT_IMPLEMENTED; 180extern const QName QN_STANZA_FORBIDDEN; 181extern const QName QN_STANZA_GONE; 182extern const QName QN_STANZA_INTERNAL_SERVER_ERROR; 183extern const QName QN_STANZA_ITEM_NOT_FOUND; 184extern const QName QN_STANZA_JID_MALFORMED; 185extern const QName QN_STANZA_NOT_ACCEPTABLE; 186extern const QName QN_STANZA_NOT_ALLOWED; 187extern const QName QN_STANZA_PAYMENT_REQUIRED; 188extern const QName QN_STANZA_RECIPIENT_UNAVAILABLE; 189extern const QName QN_STANZA_REDIRECT; 190extern const QName QN_STANZA_REGISTRATION_REQUIRED; 191extern const QName QN_STANZA_REMOTE_SERVER_NOT_FOUND; 192extern const QName QN_STANZA_REMOTE_SERVER_TIMEOUT; 193extern const QName QN_STANZA_RESOURCE_CONSTRAINT; 194extern const QName QN_STANZA_SERVICE_UNAVAILABLE; 195extern const QName QN_STANZA_SUBSCRIPTION_REQUIRED; 196extern const QName QN_STANZA_UNDEFINED_CONDITION; 197extern const QName QN_STANZA_UNEXPECTED_REQUEST; 198extern const QName QN_STANZA_TEXT; 199 200extern const QName QN_BIND_BIND; 201extern const QName QN_BIND_RESOURCE; 202extern const QName QN_BIND_JID; 203 204extern const QName QN_MESSAGE; 205extern const QName QN_BODY; 206extern const QName QN_SUBJECT; 207extern const QName QN_THREAD; 208extern const QName QN_PRESENCE; 209extern const QName QN_SHOW; 210extern const QName QN_STATUS; 211extern const QName QN_LANG; 212extern const QName QN_PRIORITY; 213extern const QName QN_IQ; 214extern const QName QN_ERROR; 215 216extern const QName QN_SERVER_MESSAGE; 217extern const QName QN_SERVER_BODY; 218extern const QName QN_SERVER_SUBJECT; 219extern const QName QN_SERVER_THREAD; 220extern const QName QN_SERVER_PRESENCE; 221extern const QName QN_SERVER_SHOW; 222extern const QName QN_SERVER_STATUS; 223extern const QName QN_SERVER_LANG; 224extern const QName QN_SERVER_PRIORITY; 225extern const QName QN_SERVER_IQ; 226extern const QName QN_SERVER_ERROR; 227 228extern const QName QN_SESSION_SESSION; 229 230extern const QName QN_PRIVACY_QUERY; 231extern const QName QN_PRIVACY_ACTIVE; 232extern const QName QN_PRIVACY_DEFAULT; 233extern const QName QN_PRIVACY_LIST; 234extern const QName QN_PRIVACY_ITEM; 235extern const QName QN_PRIVACY_IQ; 236extern const QName QN_PRIVACY_MESSAGE; 237extern const QName QN_PRIVACY_PRESENCE_IN; 238extern const QName QN_PRIVACY_PRESENCE_OUT; 239 240extern const QName QN_ROSTER_QUERY; 241extern const QName QN_ROSTER_ITEM; 242extern const QName QN_ROSTER_GROUP; 243 244extern const QName QN_VCARD; 245extern const QName QN_VCARD_FN; 246extern const QName QN_VCARD_PHOTO; 247extern const QName QN_VCARD_PHOTO_BINVAL; 248extern const QName QN_VCARD_AVATAR_HASH; 249extern const QName QN_VCARD_AVATAR_HASH_MODIFIED; 250 251#if defined(FEATURE_ENABLE_PSTN) 252extern const QName QN_VCARD_TEL; 253extern const QName QN_VCARD_VOICE; 254extern const QName QN_VCARD_HOME; 255extern const QName QN_VCARD_WORK; 256extern const QName QN_VCARD_CELL; 257extern const QName QN_VCARD_NUMBER; 258#endif 259 260#if defined(FEATURE_ENABLE_RICHPROFILES) 261extern const QName QN_USER_PROFILE_QUERY; 262extern const QName QN_USER_PROFILE_URL; 263 264extern const QName QN_ATOM_FEED; 265extern const QName QN_ATOM_ENTRY; 266extern const QName QN_ATOM_TITLE; 267extern const QName QN_ATOM_ID; 268extern const QName QN_ATOM_MODIFIED; 269extern const QName QN_ATOM_IMAGE; 270extern const QName QN_ATOM_LINK; 271extern const QName QN_ATOM_HREF; 272#endif 273 274extern const QName QN_XML_LANG; 275 276extern const QName QN_ENCODING; 277extern const QName QN_VERSION; 278extern const QName QN_TO; 279extern const QName QN_FROM; 280extern const QName QN_TYPE; 281extern const QName QN_ID; 282extern const QName QN_CODE; 283extern const QName QN_NAME; 284extern const QName QN_VALUE; 285extern const QName QN_ACTION; 286extern const QName QN_ORDER; 287extern const QName QN_MECHANISM; 288extern const QName QN_ASK; 289extern const QName QN_JID; 290extern const QName QN_SUBSCRIPTION; 291extern const QName QN_TITLE1; 292extern const QName QN_TITLE2; 293extern const QName QN_AFFILIATION; 294extern const QName QN_ROLE; 295 296 297extern const QName QN_XMLNS_CLIENT; 298extern const QName QN_XMLNS_SERVER; 299extern const QName QN_XMLNS_STREAM; 300 301// Presence 302extern const std::string STR_SHOW_AWAY; 303extern const std::string STR_SHOW_CHAT; 304extern const std::string STR_SHOW_DND; 305extern const std::string STR_SHOW_XA; 306extern const std::string STR_SHOW_OFFLINE; 307 308// Subscription 309extern const std::string STR_SUBSCRIBE; 310extern const std::string STR_SUBSCRIBED; 311extern const std::string STR_UNSUBSCRIBE; 312extern const std::string STR_UNSUBSCRIBED; 313 314// Google Invite 315extern const std::string NS_GOOGLE_SUBSCRIBE; 316extern const QName QN_INVITATION; 317extern const QName QN_INVITE_NAME; 318extern const QName QN_INVITE_SUBJECT; 319extern const QName QN_INVITE_MESSAGE; 320 321 322// JEP 0030 323extern const QName QN_NODE; 324extern const QName QN_CATEGORY; 325extern const QName QN_VAR; 326extern const std::string NS_DISCO_INFO; 327extern const std::string NS_DISCO_ITEMS; 328 329extern const QName QN_DISCO_INFO_QUERY; 330extern const QName QN_DISCO_IDENTITY; 331extern const QName QN_DISCO_FEATURE; 332 333extern const QName QN_DISCO_ITEMS_QUERY; 334extern const QName QN_DISCO_ITEM; 335 336 337// JEP 0045 338extern const std::string NS_MUC; 339extern const QName QN_MUC_X; 340extern const QName QN_MUC_ITEM; 341extern const QName QN_MUC_AFFILIATION; 342extern const QName QN_MUC_ROLE; 343extern const std::string STR_AFFILIATION_NONE; 344extern const std::string STR_ROLE_PARTICIPANT; 345extern const std::string NS_MUC_USER; 346extern const QName QN_MUC_USER_CONTINUE; 347extern const QName QN_MUC_USER_X; 348extern const QName QN_MUC_USER_ITEM; 349extern const QName QN_MUC_USER_STATUS; 350 351 352// JEP 0115 353extern const std::string NS_CAPS; 354extern const QName QN_CAPS_C; 355extern const QName QN_VER; 356extern const QName QN_EXT; 357 358 359// Avatar - JEP 0153 360extern const std::string kNSVCard; 361extern const QName kQnVCardX; 362extern const QName kQnVCardPhoto; 363 364// JEP 0172 User Nickname 365extern const std::string kNSNickname; 366extern const QName kQnNickname; 367 368 369// JEP 0085 chat state 370extern const std::string NS_CHATSTATE; 371extern const QName QN_CS_ACTIVE; 372extern const QName QN_CS_COMPOSING; 373extern const QName QN_CS_PAUSED; 374extern const QName QN_CS_INACTIVE; 375extern const QName QN_CS_GONE; 376 377// JEP 0091 Delayed Delivery 378extern const std::string kNSDelay; 379extern const QName kQnDelayX; 380extern const QName kQnStamp; 381 382// Google time stamping (higher resolution) 383extern const std::string kNSTimestamp; 384extern const QName kQnTime; 385extern const QName kQnMilliseconds; 386 387 388extern const std::string NS_JINGLE_INFO; 389extern const QName QN_JINGLE_INFO_QUERY; 390extern const QName QN_JINGLE_INFO_STUN; 391extern const QName QN_JINGLE_INFO_RELAY; 392extern const QName QN_JINGLE_INFO_SERVER; 393extern const QName QN_JINGLE_INFO_TOKEN; 394extern const QName QN_JINGLE_INFO_HOST; 395extern const QName QN_JINGLE_INFO_TCP; 396extern const QName QN_JINGLE_INFO_UDP; 397extern const QName QN_JINGLE_INFO_TCPSSL; 398 399extern const std::string NS_GOOGLE_CALLPERF_STATS; 400extern const QName QN_CALLPERF_STATS; 401extern const QName QN_CALLPERF_SESSIONID; 402extern const QName QN_CALLPERF_LOCALUSER; 403extern const QName QN_CALLPERF_REMOTEUSER; 404extern const QName QN_CALLPERF_STARTTIME; 405extern const QName QN_CALLPERF_CALL_LENGTH; 406extern const QName QN_CALLPERF_DATAPOINT; 407extern const QName QN_CALLPERF_DATAPOINT_TIME; 408extern const QName QN_CALLPERF_DATAPOINT_FRACTION_LOST; 409extern const QName QN_CALLPERF_DATAPOINT_CUM_LOST; 410extern const QName QN_CALLPERF_DATAPOINT_EXT_MAX; 411extern const QName QN_CALLPERF_DATAPOINT_JITTER; 412extern const QName QN_CALLPERF_DATAPOINT_RTT; 413extern const QName QN_CALLPERF_DATAPOINT_BYTES_R; 414extern const QName QN_CALLPERF_DATAPOINT_PACKETS_R; 415extern const QName QN_CALLPERF_DATAPOINT_BYTES_S; 416extern const QName QN_CALLPERF_DATAPOINT_PACKETS_S; 417extern const QName QN_CALLPERF_CONNECTION; 418extern const QName QN_CALLPERF_CONNECTION_LOCAL_ADDRESS; 419extern const QName QN_CALLPERF_CONNECTION_REMOTE_ADDRESS; 420 421// Muc invites. 422extern const QName QN_MUC_USER_INVITE; 423 424// Multiway audio/video. 425extern const std::string NS_GOOGLE_MUC_USER; 426extern const QName QN_GOOGLE_MUC_USER_AVAILABLE_MEDIA; 427extern const QName QN_GOOGLE_MUC_USER_ENTRY; 428extern const QName QN_GOOGLE_MUC_USER_MEDIA; 429extern const QName QN_GOOGLE_MUC_USER_TYPE; 430extern const QName QN_GOOGLE_MUC_USER_SRC_ID; 431extern const QName QN_GOOGLE_MUC_USER_STATUS; 432extern const QName QN_LABEL; 433 434} // namespace buzz 435 436#endif // TALK_XMPP_CONSTANTS_H_ 437