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