blob: 6ad2a5aa3710ce62e77456e9f8670acb0c00430b [file] [log] [blame]
henrike@webrtc.org269fb4b2014-10-28 22:20:11 +00001/*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "webrtc/libjingle/xmpp/constants.h"
12
13#include <string>
14
15#include "webrtc/libjingle/xmllite/qname.h"
16#include "webrtc/libjingle/xmllite/xmlconstants.h"
17#include "webrtc/libjingle/xmllite/xmlelement.h"
18#include "webrtc/libjingle/xmpp/jid.h"
henrike@webrtc.org269fb4b2014-10-28 22:20:11 +000019
20namespace buzz {
21
22// TODO: Remove static objects of complex types, particularly
23// Jid and QName.
24
25const char NS_CLIENT[] = "jabber:client";
26const char NS_SERVER[] = "jabber:server";
27const char NS_STREAM[] = "http://etherx.jabber.org/streams";
28const char NS_XSTREAM[] = "urn:ietf:params:xml:ns:xmpp-streams";
29const char NS_TLS[] = "urn:ietf:params:xml:ns:xmpp-tls";
30const char NS_SASL[] = "urn:ietf:params:xml:ns:xmpp-sasl";
31const char NS_BIND[] = "urn:ietf:params:xml:ns:xmpp-bind";
32const char NS_DIALBACK[] = "jabber:server:dialback";
33const char NS_SESSION[] = "urn:ietf:params:xml:ns:xmpp-session";
34const char NS_STANZA[] = "urn:ietf:params:xml:ns:xmpp-stanzas";
35const char NS_PRIVACY[] = "jabber:iq:privacy";
36const char NS_ROSTER[] = "jabber:iq:roster";
37const char NS_VCARD[] = "vcard-temp";
38const char NS_AVATAR_HASH[] = "google:avatar";
39const char NS_VCARD_UPDATE[] = "vcard-temp:x:update";
40const char STR_CLIENT[] = "client";
41const char STR_SERVER[] = "server";
42const char STR_STREAM[] = "stream";
43
44const char STR_GET[] = "get";
45const char STR_SET[] = "set";
46const char STR_RESULT[] = "result";
47const char STR_ERROR[] = "error";
48
49const char STR_FORM[] = "form";
50const char STR_SUBMIT[] = "submit";
51const char STR_TEXT_SINGLE[] = "text-single";
52const char STR_LIST_SINGLE[] = "list-single";
53const char STR_LIST_MULTI[] = "list-multi";
54const char STR_HIDDEN[] = "hidden";
55const char STR_FORM_TYPE[] = "FORM_TYPE";
56
57const char STR_FROM[] = "from";
58const char STR_TO[] = "to";
59const char STR_BOTH[] = "both";
60const char STR_REMOVE[] = "remove";
61const char STR_TRUE[] = "true";
62
63const char STR_TYPE[] = "type";
64const char STR_NAME[] = "name";
65const char STR_ID[] = "id";
66const char STR_JID[] = "jid";
67const char STR_SUBSCRIPTION[] = "subscription";
68const char STR_ASK[] = "ask";
69const char STR_X[] = "x";
70const char STR_GOOGLE_COM[] = "google.com";
71const char STR_GMAIL_COM[] = "gmail.com";
72const char STR_GOOGLEMAIL_COM[] = "googlemail.com";
73const char STR_DEFAULT_DOMAIN[] = "default.talk.google.com";
74const char STR_TALK_GOOGLE_COM[] = "talk.google.com";
75const char STR_TALKX_L_GOOGLE_COM[] = "talkx.l.google.com";
76const char STR_XMPP_GOOGLE_COM[] = "xmpp.google.com";
77const char STR_XMPPX_L_GOOGLE_COM[] = "xmppx.l.google.com";
78
79#ifdef FEATURE_ENABLE_VOICEMAIL
80const char STR_VOICEMAIL[] = "voicemail";
81const char STR_OUTGOINGVOICEMAIL[] = "outgoingvoicemail";
82#endif
83
84const char STR_UNAVAILABLE[] = "unavailable";
85
86const char NS_PING[] = "urn:xmpp:ping";
87const StaticQName QN_PING = { NS_PING, "ping" };
88
89const char NS_MUC_UNIQUE[] = "http://jabber.org/protocol/muc#unique";
90const StaticQName QN_MUC_UNIQUE_QUERY = { NS_MUC_UNIQUE, "unique" };
91const StaticQName QN_HANGOUT_ID = { STR_EMPTY, "hangout-id" };
92
93const char STR_GOOGLE_MUC_LOOKUP_JID[] = "lookup.groupchat.google.com";
94
95const char STR_MUC_ROOMCONFIG_ROOMNAME[] = "muc#roomconfig_roomname";
96const char STR_MUC_ROOMCONFIG_FEATURES[] = "muc#roomconfig_features";
97const char STR_MUC_ROOM_FEATURE_ENTERPRISE[] = "muc_enterprise";
98const char STR_MUC_ROOMCONFIG[] = "http://jabber.org/protocol/muc#roomconfig";
99const char STR_MUC_ROOM_FEATURE_HANGOUT[] = "muc_es";
100const char STR_MUC_ROOM_FEATURE_HANGOUT_LITE[] = "muc_lite";
101const char STR_MUC_ROOM_FEATURE_BROADCAST[] = "broadcast";
102const char STR_MUC_ROOM_FEATURE_MULTI_USER_VC[] = "muc_muvc";
103const char STR_MUC_ROOM_FEATURE_RECORDABLE[] = "recordable";
104const char STR_MUC_ROOM_FEATURE_CUSTOM_RECORDING[] = "custom_recording";
105const char STR_MUC_ROOM_OWNER_PROFILE_ID[] = "muc#roominfo_owner_profile_id";
106const char STR_MUC_ROOM_FEATURE_ABUSE_RECORDABLE[] = "abuse_recordable";
107
108const char STR_ID_TYPE_CONVERSATION[] = "conversation";
109const char NS_GOOGLE_MUC_HANGOUT[] = "google:muc#hangout";
110const StaticQName QN_GOOGLE_MUC_HANGOUT_INVITE =
111 { NS_GOOGLE_MUC_HANGOUT, "invite" };
112const StaticQName QN_GOOGLE_MUC_HANGOUT_INVITE_TYPE =
113 { NS_GOOGLE_MUC_HANGOUT, "invite-type" };
114const StaticQName QN_ATTR_CREATE_ACTIVITY =
115 { STR_EMPTY, "create-activity" };
116const StaticQName QN_GOOGLE_MUC_HANGOUT_PUBLIC =
117 { NS_GOOGLE_MUC_HANGOUT, "public" };
118const StaticQName QN_GOOGLE_MUC_HANGOUT_INVITEE =
119 { NS_GOOGLE_MUC_HANGOUT, "invitee" };
120const StaticQName QN_GOOGLE_MUC_HANGOUT_NOTIFICATION_STATUS =
121 { NS_GOOGLE_MUC_HANGOUT, "notification-status" };
122const StaticQName QN_GOOGLE_MUC_HANGOUT_NOTIFICATION_TYPE = {
123 NS_GOOGLE_MUC_HANGOUT, "notification-type" };
124const StaticQName QN_GOOGLE_MUC_HANGOUT_HANGOUT_START_CONTEXT = {
125 NS_GOOGLE_MUC_HANGOUT, "hangout-start-context" };
126const StaticQName QN_GOOGLE_MUC_HANGOUT_CONVERSATION_ID = {
127 NS_GOOGLE_MUC_HANGOUT, "conversation-id" };
128
129const StaticQName QN_STREAM_STREAM = { NS_STREAM, STR_STREAM };
130const StaticQName QN_STREAM_FEATURES = { NS_STREAM, "features" };
131const StaticQName QN_STREAM_ERROR = { NS_STREAM, "error" };
132
133const StaticQName QN_XSTREAM_BAD_FORMAT = { NS_XSTREAM, "bad-format" };
134const StaticQName QN_XSTREAM_BAD_NAMESPACE_PREFIX =
135 { NS_XSTREAM, "bad-namespace-prefix" };
136const StaticQName QN_XSTREAM_CONFLICT = { NS_XSTREAM, "conflict" };
137const StaticQName QN_XSTREAM_CONNECTION_TIMEOUT =
138 { NS_XSTREAM, "connection-timeout" };
139const StaticQName QN_XSTREAM_HOST_GONE = { NS_XSTREAM, "host-gone" };
140const StaticQName QN_XSTREAM_HOST_UNKNOWN = { NS_XSTREAM, "host-unknown" };
141const StaticQName QN_XSTREAM_IMPROPER_ADDRESSIING =
142 { NS_XSTREAM, "improper-addressing" };
143const StaticQName QN_XSTREAM_INTERNAL_SERVER_ERROR =
144 { NS_XSTREAM, "internal-server-error" };
145const StaticQName QN_XSTREAM_INVALID_FROM = { NS_XSTREAM, "invalid-from" };
146const StaticQName QN_XSTREAM_INVALID_ID = { NS_XSTREAM, "invalid-id" };
147const StaticQName QN_XSTREAM_INVALID_NAMESPACE =
148 { NS_XSTREAM, "invalid-namespace" };
149const StaticQName QN_XSTREAM_INVALID_XML = { NS_XSTREAM, "invalid-xml" };
150const StaticQName QN_XSTREAM_NOT_AUTHORIZED = { NS_XSTREAM, "not-authorized" };
151const StaticQName QN_XSTREAM_POLICY_VIOLATION =
152 { NS_XSTREAM, "policy-violation" };
153const StaticQName QN_XSTREAM_REMOTE_CONNECTION_FAILED =
154 { NS_XSTREAM, "remote-connection-failed" };
155const StaticQName QN_XSTREAM_RESOURCE_CONSTRAINT =
156 { NS_XSTREAM, "resource-constraint" };
157const StaticQName QN_XSTREAM_RESTRICTED_XML = { NS_XSTREAM, "restricted-xml" };
158const StaticQName QN_XSTREAM_SEE_OTHER_HOST = { NS_XSTREAM, "see-other-host" };
159const StaticQName QN_XSTREAM_SYSTEM_SHUTDOWN =
160 { NS_XSTREAM, "system-shutdown" };
161const StaticQName QN_XSTREAM_UNDEFINED_CONDITION =
162 { NS_XSTREAM, "undefined-condition" };
163const StaticQName QN_XSTREAM_UNSUPPORTED_ENCODING =
164 { NS_XSTREAM, "unsupported-encoding" };
165const StaticQName QN_XSTREAM_UNSUPPORTED_STANZA_TYPE =
166 { NS_XSTREAM, "unsupported-stanza-type" };
167const StaticQName QN_XSTREAM_UNSUPPORTED_VERSION =
168 { NS_XSTREAM, "unsupported-version" };
169const StaticQName QN_XSTREAM_XML_NOT_WELL_FORMED =
170 { NS_XSTREAM, "xml-not-well-formed" };
171const StaticQName QN_XSTREAM_TEXT = { NS_XSTREAM, "text" };
172
173const StaticQName QN_TLS_STARTTLS = { NS_TLS, "starttls" };
174const StaticQName QN_TLS_REQUIRED = { NS_TLS, "required" };
175const StaticQName QN_TLS_PROCEED = { NS_TLS, "proceed" };
176const StaticQName QN_TLS_FAILURE = { NS_TLS, "failure" };
177
178const StaticQName QN_SASL_MECHANISMS = { NS_SASL, "mechanisms" };
179const StaticQName QN_SASL_MECHANISM = { NS_SASL, "mechanism" };
180const StaticQName QN_SASL_AUTH = { NS_SASL, "auth" };
181const StaticQName QN_SASL_CHALLENGE = { NS_SASL, "challenge" };
182const StaticQName QN_SASL_RESPONSE = { NS_SASL, "response" };
183const StaticQName QN_SASL_ABORT = { NS_SASL, "abort" };
184const StaticQName QN_SASL_SUCCESS = { NS_SASL, "success" };
185const StaticQName QN_SASL_FAILURE = { NS_SASL, "failure" };
186const StaticQName QN_SASL_ABORTED = { NS_SASL, "aborted" };
187const StaticQName QN_SASL_INCORRECT_ENCODING =
188 { NS_SASL, "incorrect-encoding" };
189const StaticQName QN_SASL_INVALID_AUTHZID = { NS_SASL, "invalid-authzid" };
190const StaticQName QN_SASL_INVALID_MECHANISM = { NS_SASL, "invalid-mechanism" };
191const StaticQName QN_SASL_MECHANISM_TOO_WEAK =
192 { NS_SASL, "mechanism-too-weak" };
193const StaticQName QN_SASL_NOT_AUTHORIZED = { NS_SASL, "not-authorized" };
194const StaticQName QN_SASL_TEMPORARY_AUTH_FAILURE =
195 { NS_SASL, "temporary-auth-failure" };
196
197// These are non-standard.
198const char NS_GOOGLE_AUTH_PROTOCOL[] =
199 "http://www.google.com/talk/protocol/auth";
200const StaticQName QN_GOOGLE_AUTH_CLIENT_USES_FULL_BIND_RESULT =
201 { NS_GOOGLE_AUTH_PROTOCOL, "client-uses-full-bind-result" };
202const StaticQName QN_GOOGLE_ALLOW_NON_GOOGLE_ID_XMPP_LOGIN =
203 { NS_GOOGLE_AUTH_PROTOCOL, "allow-non-google-login" };
204const StaticQName QN_GOOGLE_AUTH_SERVICE =
205 { NS_GOOGLE_AUTH_PROTOCOL, "service" };
206
207const StaticQName QN_DIALBACK_RESULT = { NS_DIALBACK, "result" };
208const StaticQName QN_DIALBACK_VERIFY = { NS_DIALBACK, "verify" };
209
210const StaticQName QN_STANZA_BAD_REQUEST = { NS_STANZA, "bad-request" };
211const StaticQName QN_STANZA_CONFLICT = { NS_STANZA, "conflict" };
212const StaticQName QN_STANZA_FEATURE_NOT_IMPLEMENTED =
213 { NS_STANZA, "feature-not-implemented" };
214const StaticQName QN_STANZA_FORBIDDEN = { NS_STANZA, "forbidden" };
215const StaticQName QN_STANZA_GONE = { NS_STANZA, "gone" };
216const StaticQName QN_STANZA_INTERNAL_SERVER_ERROR =
217 { NS_STANZA, "internal-server-error" };
218const StaticQName QN_STANZA_ITEM_NOT_FOUND = { NS_STANZA, "item-not-found" };
219const StaticQName QN_STANZA_JID_MALFORMED = { NS_STANZA, "jid-malformed" };
220const StaticQName QN_STANZA_NOT_ACCEPTABLE = { NS_STANZA, "not-acceptable" };
221const StaticQName QN_STANZA_NOT_ALLOWED = { NS_STANZA, "not-allowed" };
222const StaticQName QN_STANZA_PAYMENT_REQUIRED =
223 { NS_STANZA, "payment-required" };
224const StaticQName QN_STANZA_RECIPIENT_UNAVAILABLE =
225 { NS_STANZA, "recipient-unavailable" };
226const StaticQName QN_STANZA_REDIRECT = { NS_STANZA, "redirect" };
227const StaticQName QN_STANZA_REGISTRATION_REQUIRED =
228 { NS_STANZA, "registration-required" };
229const StaticQName QN_STANZA_REMOTE_SERVER_NOT_FOUND =
230 { NS_STANZA, "remote-server-not-found" };
231const StaticQName QN_STANZA_REMOTE_SERVER_TIMEOUT =
232 { NS_STANZA, "remote-server-timeout" };
233const StaticQName QN_STANZA_RESOURCE_CONSTRAINT =
234 { NS_STANZA, "resource-constraint" };
235const StaticQName QN_STANZA_SERVICE_UNAVAILABLE =
236 { NS_STANZA, "service-unavailable" };
237const StaticQName QN_STANZA_SUBSCRIPTION_REQUIRED =
238 { NS_STANZA, "subscription-required" };
239const StaticQName QN_STANZA_UNDEFINED_CONDITION =
240 { NS_STANZA, "undefined-condition" };
241const StaticQName QN_STANZA_UNEXPECTED_REQUEST =
242 { NS_STANZA, "unexpected-request" };
243const StaticQName QN_STANZA_TEXT = { NS_STANZA, "text" };
244
245const StaticQName QN_BIND_BIND = { NS_BIND, "bind" };
246const StaticQName QN_BIND_RESOURCE = { NS_BIND, "resource" };
247const StaticQName QN_BIND_JID = { NS_BIND, "jid" };
248
249const StaticQName QN_MESSAGE = { NS_CLIENT, "message" };
250const StaticQName QN_BODY = { NS_CLIENT, "body" };
251const StaticQName QN_SUBJECT = { NS_CLIENT, "subject" };
252const StaticQName QN_THREAD = { NS_CLIENT, "thread" };
253const StaticQName QN_PRESENCE = { NS_CLIENT, "presence" };
254const StaticQName QN_SHOW = { NS_CLIENT, "show" };
255const StaticQName QN_STATUS = { NS_CLIENT, "status" };
256const StaticQName QN_LANG = { NS_CLIENT, "lang" };
257const StaticQName QN_PRIORITY = { NS_CLIENT, "priority" };
258const StaticQName QN_IQ = { NS_CLIENT, "iq" };
259const StaticQName QN_ERROR = { NS_CLIENT, "error" };
260
261const StaticQName QN_SERVER_MESSAGE = { NS_SERVER, "message" };
262const StaticQName QN_SERVER_BODY = { NS_SERVER, "body" };
263const StaticQName QN_SERVER_SUBJECT = { NS_SERVER, "subject" };
264const StaticQName QN_SERVER_THREAD = { NS_SERVER, "thread" };
265const StaticQName QN_SERVER_PRESENCE = { NS_SERVER, "presence" };
266const StaticQName QN_SERVER_SHOW = { NS_SERVER, "show" };
267const StaticQName QN_SERVER_STATUS = { NS_SERVER, "status" };
268const StaticQName QN_SERVER_LANG = { NS_SERVER, "lang" };
269const StaticQName QN_SERVER_PRIORITY = { NS_SERVER, "priority" };
270const StaticQName QN_SERVER_IQ = { NS_SERVER, "iq" };
271const StaticQName QN_SERVER_ERROR = { NS_SERVER, "error" };
272
273const StaticQName QN_SESSION_SESSION = { NS_SESSION, "session" };
274
275const StaticQName QN_PRIVACY_QUERY = { NS_PRIVACY, "query" };
276const StaticQName QN_PRIVACY_ACTIVE = { NS_PRIVACY, "active" };
277const StaticQName QN_PRIVACY_DEFAULT = { NS_PRIVACY, "default" };
278const StaticQName QN_PRIVACY_LIST = { NS_PRIVACY, "list" };
279const StaticQName QN_PRIVACY_ITEM = { NS_PRIVACY, "item" };
280const StaticQName QN_PRIVACY_IQ = { NS_PRIVACY, "iq" };
281const StaticQName QN_PRIVACY_MESSAGE = { NS_PRIVACY, "message" };
282const StaticQName QN_PRIVACY_PRESENCE_IN = { NS_PRIVACY, "presence-in" };
283const StaticQName QN_PRIVACY_PRESENCE_OUT = { NS_PRIVACY, "presence-out" };
284
285const StaticQName QN_ROSTER_QUERY = { NS_ROSTER, "query" };
286const StaticQName QN_ROSTER_ITEM = { NS_ROSTER, "item" };
287const StaticQName QN_ROSTER_GROUP = { NS_ROSTER, "group" };
288
289const StaticQName QN_VCARD = { NS_VCARD, "vCard" };
290const StaticQName QN_VCARD_FN = { NS_VCARD, "FN" };
291const StaticQName QN_VCARD_PHOTO = { NS_VCARD, "PHOTO" };
292const StaticQName QN_VCARD_PHOTO_BINVAL = { NS_VCARD, "BINVAL" };
293const StaticQName QN_VCARD_AVATAR_HASH = { NS_AVATAR_HASH, "hash" };
294const StaticQName QN_VCARD_AVATAR_HASH_MODIFIED =
295 { NS_AVATAR_HASH, "modified" };
296
297const StaticQName QN_NAME = { STR_EMPTY, "name" };
298const StaticQName QN_AFFILIATION = { STR_EMPTY, "affiliation" };
299const StaticQName QN_ROLE = { STR_EMPTY, "role" };
300
301#if defined(FEATURE_ENABLE_PSTN)
302const StaticQName QN_VCARD_TEL = { NS_VCARD, "TEL" };
303const StaticQName QN_VCARD_VOICE = { NS_VCARD, "VOICE" };
304const StaticQName QN_VCARD_HOME = { NS_VCARD, "HOME" };
305const StaticQName QN_VCARD_WORK = { NS_VCARD, "WORK" };
306const StaticQName QN_VCARD_CELL = { NS_VCARD, "CELL" };
307const StaticQName QN_VCARD_NUMBER = { NS_VCARD, "NUMBER" };
308#endif
309
310const StaticQName QN_XML_LANG = { NS_XML, "lang" };
311
312const StaticQName QN_ENCODING = { STR_EMPTY, STR_ENCODING };
313const StaticQName QN_VERSION = { STR_EMPTY, STR_VERSION };
314const StaticQName QN_TO = { STR_EMPTY, "to" };
315const StaticQName QN_FROM = { STR_EMPTY, "from" };
316const StaticQName QN_TYPE = { STR_EMPTY, "type" };
317const StaticQName QN_ID = { STR_EMPTY, "id" };
318const StaticQName QN_CODE = { STR_EMPTY, "code" };
319
320const StaticQName QN_VALUE = { STR_EMPTY, "value" };
321const StaticQName QN_ACTION = { STR_EMPTY, "action" };
322const StaticQName QN_ORDER = { STR_EMPTY, "order" };
323const StaticQName QN_MECHANISM = { STR_EMPTY, "mechanism" };
324const StaticQName QN_ASK = { STR_EMPTY, "ask" };
325const StaticQName QN_JID = { STR_EMPTY, "jid" };
326const StaticQName QN_NICK = { STR_EMPTY, "nick" };
327const StaticQName QN_SUBSCRIPTION = { STR_EMPTY, "subscription" };
328const StaticQName QN_TITLE1 = { STR_EMPTY, "title1" };
329const StaticQName QN_TITLE2 = { STR_EMPTY, "title2" };
330
331const StaticQName QN_XMLNS_CLIENT = { NS_XMLNS, STR_CLIENT };
332const StaticQName QN_XMLNS_SERVER = { NS_XMLNS, STR_SERVER };
333const StaticQName QN_XMLNS_STREAM = { NS_XMLNS, STR_STREAM };
334
335
336// Presence
337const char STR_SHOW_AWAY[] = "away";
338const char STR_SHOW_CHAT[] = "chat";
339const char STR_SHOW_DND[] = "dnd";
340const char STR_SHOW_XA[] = "xa";
341const char STR_SHOW_OFFLINE[] = "offline";
342
343const char NS_GOOGLE_PSTN_CONFERENCE[] = "http://www.google.com/pstn-conference";
344const StaticQName QN_GOOGLE_PSTN_CONFERENCE_STATUS = { NS_GOOGLE_PSTN_CONFERENCE, "status" };
345const StaticQName QN_ATTR_STATUS = { STR_EMPTY, "status" };
346
347// Presence connection status
348const char STR_PSTN_CONFERENCE_STATUS_CONNECTING[] = "connecting";
349const char STR_PSTN_CONFERENCE_STATUS_JOINING[] = "joining";
350const char STR_PSTN_CONFERENCE_STATUS_CONNECTED[] = "connected";
351const char STR_PSTN_CONFERENCE_STATUS_HANGUP[] = "hangup";
352
353// Subscription
354const char STR_SUBSCRIBE[] = "subscribe";
355const char STR_SUBSCRIBED[] = "subscribed";
356const char STR_UNSUBSCRIBE[] = "unsubscribe";
357const char STR_UNSUBSCRIBED[] = "unsubscribed";
358
359// Google Invite
360const char NS_GOOGLE_SUBSCRIBE[] = "google:subscribe";
361const StaticQName QN_INVITATION = { NS_GOOGLE_SUBSCRIBE, "invitation" };
362const StaticQName QN_INVITE_NAME = { NS_GOOGLE_SUBSCRIBE, "name" };
363const StaticQName QN_INVITE_SUBJECT = { NS_GOOGLE_SUBSCRIBE, "subject" };
364const StaticQName QN_INVITE_MESSAGE = { NS_GOOGLE_SUBSCRIBE, "body" };
365
366// Kick
367const char NS_GOOGLE_MUC_ADMIN[] = "google:muc#admin";
368const StaticQName QN_GOOGLE_MUC_ADMIN_QUERY = { NS_GOOGLE_MUC_ADMIN, "query" };
369const StaticQName QN_GOOGLE_MUC_ADMIN_QUERY_ITEM =
370 { NS_GOOGLE_MUC_ADMIN, "item" };
371const StaticQName QN_GOOGLE_MUC_ADMIN_QUERY_ITEM_REASON =
372 { NS_GOOGLE_MUC_ADMIN, "reason" };
373
374// PubSub: http://xmpp.org/extensions/xep-0060.html
375const char NS_PUBSUB[] = "http://jabber.org/protocol/pubsub";
376const StaticQName QN_PUBSUB = { NS_PUBSUB, "pubsub" };
377const StaticQName QN_PUBSUB_ITEMS = { NS_PUBSUB, "items" };
378const StaticQName QN_PUBSUB_ITEM = { NS_PUBSUB, "item" };
379const StaticQName QN_PUBSUB_PUBLISH = { NS_PUBSUB, "publish" };
380const StaticQName QN_PUBSUB_RETRACT = { NS_PUBSUB, "retract" };
381const StaticQName QN_ATTR_PUBLISHER = { STR_EMPTY, "publisher" };
382
383const char NS_PUBSUB_EVENT[] = "http://jabber.org/protocol/pubsub#event";
384const StaticQName QN_NODE = { STR_EMPTY, "node" };
385const StaticQName QN_PUBSUB_EVENT = { NS_PUBSUB_EVENT, "event" };
386const StaticQName QN_PUBSUB_EVENT_ITEMS = { NS_PUBSUB_EVENT, "items" };
387const StaticQName QN_PUBSUB_EVENT_ITEM = { NS_PUBSUB_EVENT, "item" };
388const StaticQName QN_PUBSUB_EVENT_RETRACT = { NS_PUBSUB_EVENT, "retract" };
389const StaticQName QN_NOTIFY = { STR_EMPTY, "notify" };
390
391const char NS_PRESENTER[] = "google:presenter";
392const StaticQName QN_PRESENTER_PRESENTER = { NS_PRESENTER, "presenter" };
393const StaticQName QN_PRESENTER_PRESENTATION_ITEM =
394 { NS_PRESENTER, "presentation-item" };
395const StaticQName QN_PRESENTER_PRESENTATION_TYPE =
396 { NS_PRESENTER, "presentation-type" };
397const StaticQName QN_PRESENTER_PRESENTATION_ID =
398 { NS_PRESENTER, "presentation-id" };
399
400// JEP 0030
401const StaticQName QN_CATEGORY = { STR_EMPTY, "category" };
402const StaticQName QN_VAR = { STR_EMPTY, "var" };
403const char NS_DISCO_INFO[] = "http://jabber.org/protocol/disco#info";
404const char NS_DISCO_ITEMS[] = "http://jabber.org/protocol/disco#items";
405const StaticQName QN_DISCO_INFO_QUERY = { NS_DISCO_INFO, "query" };
406const StaticQName QN_DISCO_IDENTITY = { NS_DISCO_INFO, "identity" };
407const StaticQName QN_DISCO_FEATURE = { NS_DISCO_INFO, "feature" };
408
409const StaticQName QN_DISCO_ITEMS_QUERY = { NS_DISCO_ITEMS, "query" };
410const StaticQName QN_DISCO_ITEM = { NS_DISCO_ITEMS, "item" };
411
412// JEP 0020
413const char NS_FEATURE[] = "http://jabber.org/protocol/feature-neg";
414const StaticQName QN_FEATURE_FEATURE = { NS_FEATURE, "feature" };
415
416// JEP 0004
417const char NS_XDATA[] = "jabber:x:data";
418const StaticQName QN_XDATA_X = { NS_XDATA, "x" };
419const StaticQName QN_XDATA_INSTRUCTIONS = { NS_XDATA, "instructions" };
420const StaticQName QN_XDATA_TITLE = { NS_XDATA, "title" };
421const StaticQName QN_XDATA_FIELD = { NS_XDATA, "field" };
422const StaticQName QN_XDATA_REPORTED = { NS_XDATA, "reported" };
423const StaticQName QN_XDATA_ITEM = { NS_XDATA, "item" };
424const StaticQName QN_XDATA_DESC = { NS_XDATA, "desc" };
425const StaticQName QN_XDATA_REQUIRED = { NS_XDATA, "required" };
426const StaticQName QN_XDATA_VALUE = { NS_XDATA, "value" };
427const StaticQName QN_XDATA_OPTION = { NS_XDATA, "option" };
428
429// JEP 0045
430const char NS_MUC[] = "http://jabber.org/protocol/muc";
431const StaticQName QN_MUC_X = { NS_MUC, "x" };
432const StaticQName QN_MUC_ITEM = { NS_MUC, "item" };
433const StaticQName QN_MUC_AFFILIATION = { NS_MUC, "affiliation" };
434const StaticQName QN_MUC_ROLE = { NS_MUC, "role" };
435const char STR_AFFILIATION_NONE[] = "none";
436const char STR_ROLE_PARTICIPANT[] = "participant";
437
438const char NS_GOOGLE_SESSION[] = "http://www.google.com/session";
439const StaticQName QN_GOOGLE_CIRCLE_ID = { STR_EMPTY, "google-circle-id" };
440const StaticQName QN_GOOGLE_USER_ID = { STR_EMPTY, "google-user-id" };
441const StaticQName QN_GOOGLE_SESSION_BLOCKED = { NS_GOOGLE_SESSION, "blocked" };
442const StaticQName QN_GOOGLE_SESSION_BLOCKING =
443 { NS_GOOGLE_SESSION, "blocking" };
444
445const char NS_MUC_OWNER[] = "http://jabber.org/protocol/muc#owner";
446const StaticQName QN_MUC_OWNER_QUERY = { NS_MUC_OWNER, "query" };
447
448const char NS_MUC_USER[] = "http://jabber.org/protocol/muc#user";
449const StaticQName QN_MUC_USER_CONTINUE = { NS_MUC_USER, "continue" };
450const StaticQName QN_MUC_USER_X = { NS_MUC_USER, "x" };
451const StaticQName QN_MUC_USER_ITEM = { NS_MUC_USER, "item" };
452const StaticQName QN_MUC_USER_STATUS = { NS_MUC_USER, "status" };
453const StaticQName QN_MUC_USER_REASON = { NS_MUC_USER, "reason" };
454const StaticQName QN_MUC_USER_ABUSE_VIOLATION = { NS_MUC_USER, "abuse-violation" };
455
456// JEP 0055 - Jabber Search
457const char NS_SEARCH[] = "jabber:iq:search";
458const StaticQName QN_SEARCH_QUERY = { NS_SEARCH, "query" };
459const StaticQName QN_SEARCH_ITEM = { NS_SEARCH, "item" };
460const StaticQName QN_SEARCH_ROOM_NAME = { NS_SEARCH, "room-name" };
461const StaticQName QN_SEARCH_ROOM_DOMAIN = { NS_SEARCH, "room-domain" };
462const StaticQName QN_SEARCH_ROOM_JID = { NS_SEARCH, "room-jid" };
463const StaticQName QN_SEARCH_HANGOUT_ID = { NS_SEARCH, "hangout-id" };
464const StaticQName QN_SEARCH_EXTERNAL_ID = { NS_SEARCH, "external-id" };
465
466// JEP 0115
467const char NS_CAPS[] = "http://jabber.org/protocol/caps";
468const StaticQName QN_CAPS_C = { NS_CAPS, "c" };
469const StaticQName QN_VER = { STR_EMPTY, "ver" };
470const StaticQName QN_EXT = { STR_EMPTY, "ext" };
471
472// JEP 0153
473const char kNSVCard[] = "vcard-temp:x:update";
474const StaticQName kQnVCardX = { kNSVCard, "x" };
475const StaticQName kQnVCardPhoto = { kNSVCard, "photo" };
476
477// JEP 0172 User Nickname
478const char NS_NICKNAME[] = "http://jabber.org/protocol/nick";
479const StaticQName QN_NICKNAME = { NS_NICKNAME, "nick" };
480
481// JEP 0085 chat state
482const char NS_CHATSTATE[] = "http://jabber.org/protocol/chatstates";
483const StaticQName QN_CS_ACTIVE = { NS_CHATSTATE, "active" };
484const StaticQName QN_CS_COMPOSING = { NS_CHATSTATE, "composing" };
485const StaticQName QN_CS_PAUSED = { NS_CHATSTATE, "paused" };
486const StaticQName QN_CS_INACTIVE = { NS_CHATSTATE, "inactive" };
487const StaticQName QN_CS_GONE = { NS_CHATSTATE, "gone" };
488
489// JEP 0091 Delayed Delivery
490const char kNSDelay[] = "jabber:x:delay";
491const StaticQName kQnDelayX = { kNSDelay, "x" };
492const StaticQName kQnStamp = { STR_EMPTY, "stamp" };
493
494// Google time stamping (higher resolution)
495const char kNSTimestamp[] = "google:timestamp";
496const StaticQName kQnTime = { kNSTimestamp, "time" };
497const StaticQName kQnMilliseconds = { STR_EMPTY, "ms" };
498
499// Jingle Info
500const char NS_JINGLE_INFO[] = "google:jingleinfo";
501const StaticQName QN_JINGLE_INFO_QUERY = { NS_JINGLE_INFO, "query" };
502const StaticQName QN_JINGLE_INFO_STUN = { NS_JINGLE_INFO, "stun" };
503const StaticQName QN_JINGLE_INFO_RELAY = { NS_JINGLE_INFO, "relay" };
504const StaticQName QN_JINGLE_INFO_SERVER = { NS_JINGLE_INFO, "server" };
505const StaticQName QN_JINGLE_INFO_TOKEN = { NS_JINGLE_INFO, "token" };
506const StaticQName QN_JINGLE_INFO_HOST = { STR_EMPTY, "host" };
507const StaticQName QN_JINGLE_INFO_TCP = { STR_EMPTY, "tcp" };
508const StaticQName QN_JINGLE_INFO_UDP = { STR_EMPTY, "udp" };
509const StaticQName QN_JINGLE_INFO_TCPSSL = { STR_EMPTY, "tcpssl" };
510
511// Call Performance Logging
512const char NS_GOOGLE_CALLPERF_STATS[] = "google:call-perf-stats";
513const StaticQName QN_CALLPERF_STATS =
514 { NS_GOOGLE_CALLPERF_STATS, "callPerfStats" };
515const StaticQName QN_CALLPERF_SESSIONID = { STR_EMPTY, "sessionId" };
516const StaticQName QN_CALLPERF_LOCALUSER = { STR_EMPTY, "localUser" };
517const StaticQName QN_CALLPERF_REMOTEUSER = { STR_EMPTY, "remoteUser" };
518const StaticQName QN_CALLPERF_STARTTIME = { STR_EMPTY, "startTime" };
519const StaticQName QN_CALLPERF_CALL_LENGTH = { STR_EMPTY, "callLength" };
520const StaticQName QN_CALLPERF_CALL_ACCEPTED = { STR_EMPTY, "callAccepted" };
521const StaticQName QN_CALLPERF_CALL_ERROR_CODE = { STR_EMPTY, "callErrorCode" };
522const StaticQName QN_CALLPERF_TERMINATE_CODE = { STR_EMPTY, "terminateCode" };
523const StaticQName QN_CALLPERF_DATAPOINT =
524 { NS_GOOGLE_CALLPERF_STATS, "dataPoint" };
525const StaticQName QN_CALLPERF_DATAPOINT_TIME = { STR_EMPTY, "timeStamp" };
526const StaticQName QN_CALLPERF_DATAPOINT_FRACTION_LOST =
527 { STR_EMPTY, "fraction_lost" };
528const StaticQName QN_CALLPERF_DATAPOINT_CUM_LOST = { STR_EMPTY, "cum_lost" };
529const StaticQName QN_CALLPERF_DATAPOINT_EXT_MAX = { STR_EMPTY, "ext_max" };
530const StaticQName QN_CALLPERF_DATAPOINT_JITTER = { STR_EMPTY, "jitter" };
531const StaticQName QN_CALLPERF_DATAPOINT_RTT = { STR_EMPTY, "RTT" };
532const StaticQName QN_CALLPERF_DATAPOINT_BYTES_R =
533 { STR_EMPTY, "bytesReceived" };
534const StaticQName QN_CALLPERF_DATAPOINT_PACKETS_R =
535 { STR_EMPTY, "packetsReceived" };
536const StaticQName QN_CALLPERF_DATAPOINT_BYTES_S = { STR_EMPTY, "bytesSent" };
537const StaticQName QN_CALLPERF_DATAPOINT_PACKETS_S =
538 { STR_EMPTY, "packetsSent" };
539const StaticQName QN_CALLPERF_DATAPOINT_PROCESS_CPU =
540 { STR_EMPTY, "processCpu" };
541const StaticQName QN_CALLPERF_DATAPOINT_SYSTEM_CPU = { STR_EMPTY, "systemCpu" };
542const StaticQName QN_CALLPERF_DATAPOINT_CPUS = { STR_EMPTY, "cpus" };
543const StaticQName QN_CALLPERF_CONNECTION =
544 { NS_GOOGLE_CALLPERF_STATS, "connection" };
545const StaticQName QN_CALLPERF_CONNECTION_LOCAL_ADDRESS =
546 { STR_EMPTY, "localAddress" };
547const StaticQName QN_CALLPERF_CONNECTION_REMOTE_ADDRESS =
548 { STR_EMPTY, "remoteAddress" };
549const StaticQName QN_CALLPERF_CONNECTION_FLAGS = { STR_EMPTY, "flags" };
550const StaticQName QN_CALLPERF_CONNECTION_RTT = { STR_EMPTY, "rtt" };
551const StaticQName QN_CALLPERF_CONNECTION_TOTAL_BYTES_S =
552 { STR_EMPTY, "totalBytesSent" };
553const StaticQName QN_CALLPERF_CONNECTION_BYTES_SECOND_S =
554 { STR_EMPTY, "bytesSecondSent" };
555const StaticQName QN_CALLPERF_CONNECTION_TOTAL_BYTES_R =
556 { STR_EMPTY, "totalBytesRecv" };
557const StaticQName QN_CALLPERF_CONNECTION_BYTES_SECOND_R =
558 { STR_EMPTY, "bytesSecondRecv" };
559const StaticQName QN_CALLPERF_CANDIDATE =
560 { NS_GOOGLE_CALLPERF_STATS, "candidate" };
561const StaticQName QN_CALLPERF_CANDIDATE_ENDPOINT = { STR_EMPTY, "endpoint" };
562const StaticQName QN_CALLPERF_CANDIDATE_PROTOCOL = { STR_EMPTY, "protocol" };
563const StaticQName QN_CALLPERF_CANDIDATE_ADDRESS = { STR_EMPTY, "address" };
564const StaticQName QN_CALLPERF_MEDIA = { NS_GOOGLE_CALLPERF_STATS, "media" };
565const StaticQName QN_CALLPERF_MEDIA_DIRECTION = { STR_EMPTY, "direction" };
566const StaticQName QN_CALLPERF_MEDIA_SSRC = { STR_EMPTY, "SSRC" };
567const StaticQName QN_CALLPERF_MEDIA_ENERGY = { STR_EMPTY, "energy" };
568const StaticQName QN_CALLPERF_MEDIA_FIR = { STR_EMPTY, "fir" };
569const StaticQName QN_CALLPERF_MEDIA_NACK = { STR_EMPTY, "nack" };
570const StaticQName QN_CALLPERF_MEDIA_FPS = { STR_EMPTY, "fps" };
571const StaticQName QN_CALLPERF_MEDIA_FPS_NETWORK = { STR_EMPTY, "fpsNetwork" };
572const StaticQName QN_CALLPERF_MEDIA_FPS_DECODED = { STR_EMPTY, "fpsDecoded" };
573const StaticQName QN_CALLPERF_MEDIA_JITTER_BUFFER_SIZE =
574 { STR_EMPTY, "jitterBufferSize" };
575const StaticQName QN_CALLPERF_MEDIA_PREFERRED_JITTER_BUFFER_SIZE =
576 { STR_EMPTY, "preferredJitterBufferSize" };
577const StaticQName QN_CALLPERF_MEDIA_TOTAL_PLAYOUT_DELAY =
578 { STR_EMPTY, "totalPlayoutDelay" };
579
580// Muc invites.
581const StaticQName QN_MUC_USER_INVITE = { NS_MUC_USER, "invite" };
582
583// Multiway audio/video.
584const char NS_GOOGLE_MUC_USER[] = "google:muc#user";
585const StaticQName QN_GOOGLE_MUC_USER_AVAILABLE_MEDIA =
586 { NS_GOOGLE_MUC_USER, "available-media" };
587const StaticQName QN_GOOGLE_MUC_USER_ENTRY = { NS_GOOGLE_MUC_USER, "entry" };
588const StaticQName QN_GOOGLE_MUC_USER_MEDIA = { NS_GOOGLE_MUC_USER, "media" };
589const StaticQName QN_GOOGLE_MUC_USER_TYPE = { NS_GOOGLE_MUC_USER, "type" };
590const StaticQName QN_GOOGLE_MUC_USER_SRC_ID = { NS_GOOGLE_MUC_USER, "src-id" };
591const StaticQName QN_GOOGLE_MUC_USER_STATUS = { NS_GOOGLE_MUC_USER, "status" };
592const StaticQName QN_CLIENT_VERSION = { NS_GOOGLE_MUC_USER, "client-version" };
593const StaticQName QN_LOCALE = { NS_GOOGLE_MUC_USER, "locale" };
594const StaticQName QN_LABEL = { STR_EMPTY, "label" };
595
596const char NS_GOOGLE_MUC_MEDIA[] = "google:muc#media";
597const StaticQName QN_GOOGLE_MUC_AUDIO_MUTE =
598 { NS_GOOGLE_MUC_MEDIA, "audio-mute" };
599const StaticQName QN_GOOGLE_MUC_VIDEO_MUTE =
600 { NS_GOOGLE_MUC_MEDIA, "video-mute" };
601const StaticQName QN_GOOGLE_MUC_VIDEO_PAUSE =
602 { NS_GOOGLE_MUC_MEDIA, "video-pause" };
603const StaticQName QN_GOOGLE_MUC_RECORDING =
604 { NS_GOOGLE_MUC_MEDIA, "recording" };
605const StaticQName QN_GOOGLE_MUC_MEDIA_BLOCK = { NS_GOOGLE_MUC_MEDIA, "block" };
606const StaticQName QN_STATE_ATTR = { STR_EMPTY, "state" };
607
608const char AUTH_MECHANISM_GOOGLE_COOKIE[] = "X-GOOGLE-COOKIE";
609const char AUTH_MECHANISM_GOOGLE_TOKEN[] = "X-GOOGLE-TOKEN";
610const char AUTH_MECHANISM_OAUTH2[] = "X-OAUTH2";
611const char AUTH_MECHANISM_PLAIN[] = "PLAIN";
612
613} // namespace buzz