Move the Jingle-specific network code into webrtc/libjingle.

R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/29319004

git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@7977 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/libjingle/libjingle.gyp b/libjingle/libjingle.gyp
index bc76580..f1ed3ba 100644
--- a/libjingle/libjingle.gyp
+++ b/libjingle/libjingle.gyp
@@ -41,14 +41,20 @@
         '<(DEPTH)/third_party/expat/expat.gyp:expat',
       ],
       'sources': [
+        'session/constants.cc',
+        'session/constants.h',
         'session/p2ptransportparser.cc',
         'session/p2ptransportparser.h',
+        'session/parsing.cc',
+        'session/parsing.h',
         'session/rawtransportparser.cc',
         'session/rawtransportparser.h',
         'session/sessionclient.h',
         'session/sessionmanager.h',
         'session/sessionmanager.cc',
         'session/sessionmanagertask.h',
+        'session/sessionmessages.cc',
+        'session/sessionmessages.h',
         'session/sessionsendtask.h',
         'session/transportparser.cc',
         'session/transportparser.h',
diff --git a/libjingle/session/constants.cc b/libjingle/session/constants.cc
new file mode 100644
index 0000000..5f5bcd3
--- /dev/null
+++ b/libjingle/session/constants.cc
@@ -0,0 +1,217 @@
+/*
+ *  Copyright 2004 The WebRTC Project Authors. All rights reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "webrtc/libjingle/session/constants.h"
+
+#include <string>
+
+#include "webrtc/libjingle/xmllite/qname.h"
+#include "webrtc/p2p/base/constants.h"
+
+namespace cricket {
+
+const char NS_EMPTY[] = "";
+const char NS_JINGLE[] = "urn:xmpp:jingle:1";
+const char NS_JINGLE_DRAFT[] = "google:jingle";
+const char NS_GINGLE[] = "http://www.google.com/session";
+
+// actions (aka <session> or <jingle>)
+const buzz::StaticQName QN_ACTION = { NS_EMPTY, "action" };
+const char LN_INITIATOR[] = "initiator";
+const buzz::StaticQName QN_INITIATOR = { NS_EMPTY, LN_INITIATOR };
+const buzz::StaticQName QN_CREATOR = { NS_EMPTY, "creator" };
+
+const buzz::StaticQName QN_JINGLE = { NS_JINGLE, "jingle" };
+const buzz::StaticQName QN_JINGLE_CONTENT = { NS_JINGLE, "content" };
+const buzz::StaticQName QN_JINGLE_CONTENT_NAME = { NS_EMPTY, "name" };
+const buzz::StaticQName QN_JINGLE_CONTENT_MEDIA = { NS_EMPTY, "media" };
+const buzz::StaticQName QN_JINGLE_REASON = { NS_JINGLE, "reason" };
+const buzz::StaticQName QN_JINGLE_DRAFT_GROUP = { NS_JINGLE_DRAFT, "group" };
+const buzz::StaticQName QN_JINGLE_DRAFT_GROUP_TYPE = { NS_EMPTY, "type" };
+const char JINGLE_CONTENT_MEDIA_AUDIO[] = "audio";
+const char JINGLE_CONTENT_MEDIA_VIDEO[] = "video";
+const char JINGLE_CONTENT_MEDIA_DATA[] = "data";
+const char JINGLE_ACTION_SESSION_INITIATE[] = "session-initiate";
+const char JINGLE_ACTION_SESSION_INFO[] = "session-info";
+const char JINGLE_ACTION_SESSION_ACCEPT[] = "session-accept";
+const char JINGLE_ACTION_SESSION_TERMINATE[] = "session-terminate";
+const char JINGLE_ACTION_TRANSPORT_INFO[] = "transport-info";
+const char JINGLE_ACTION_TRANSPORT_ACCEPT[] = "transport-accept";
+const char JINGLE_ACTION_DESCRIPTION_INFO[] = "description-info";
+
+const buzz::StaticQName QN_GINGLE_SESSION = { NS_GINGLE, "session" };
+const char GINGLE_ACTION_INITIATE[] = "initiate";
+const char GINGLE_ACTION_INFO[] = "info";
+const char GINGLE_ACTION_ACCEPT[] = "accept";
+const char GINGLE_ACTION_REJECT[] = "reject";
+const char GINGLE_ACTION_TERMINATE[] = "terminate";
+const char GINGLE_ACTION_CANDIDATES[] = "candidates";
+const char GINGLE_ACTION_UPDATE[] = "update";
+
+const char LN_ERROR[] = "error";
+const buzz::StaticQName QN_GINGLE_REDIRECT = { NS_GINGLE, "redirect" };
+const char STR_REDIRECT_PREFIX[] = "xmpp:";
+
+// Session Contents (aka Gingle <session><description>
+//                   or Jingle <content><description>)
+const char LN_DESCRIPTION[] = "description";
+const char LN_PAYLOADTYPE[] = "payload-type";
+const buzz::StaticQName QN_ID = { NS_EMPTY, "id" };
+const buzz::StaticQName QN_SID = { NS_EMPTY, "sid" };
+const buzz::StaticQName QN_NAME = { NS_EMPTY, "name" };
+const buzz::StaticQName QN_CLOCKRATE = { NS_EMPTY, "clockrate" };
+const buzz::StaticQName QN_BITRATE = { NS_EMPTY, "bitrate" };
+const buzz::StaticQName QN_CHANNELS = { NS_EMPTY, "channels" };
+const buzz::StaticQName QN_WIDTH = { NS_EMPTY, "width" };
+const buzz::StaticQName QN_HEIGHT = { NS_EMPTY, "height" };
+const buzz::StaticQName QN_FRAMERATE = { NS_EMPTY, "framerate" };
+const char LN_NAME[] = "name";
+const char LN_VALUE[] = "value";
+const buzz::StaticQName QN_PAYLOADTYPE_PARAMETER_NAME = { NS_EMPTY, LN_NAME };
+const buzz::StaticQName QN_PAYLOADTYPE_PARAMETER_VALUE = { NS_EMPTY, LN_VALUE };
+const char PAYLOADTYPE_PARAMETER_BITRATE[] = "bitrate";
+const char PAYLOADTYPE_PARAMETER_HEIGHT[] = "height";
+const char PAYLOADTYPE_PARAMETER_WIDTH[] = "width";
+const char PAYLOADTYPE_PARAMETER_FRAMERATE[] = "framerate";
+const char LN_BANDWIDTH[] = "bandwidth";
+
+const buzz::StaticQName QN_JINGLE_RTP_CONTENT =
+    { NS_JINGLE_RTP, LN_DESCRIPTION };
+const buzz::StaticQName QN_SSRC = { NS_EMPTY, "ssrc" };
+const buzz::StaticQName QN_JINGLE_RTP_PAYLOADTYPE =
+    { NS_JINGLE_RTP, LN_PAYLOADTYPE };
+const buzz::StaticQName QN_JINGLE_RTP_BANDWIDTH =
+    { NS_JINGLE_RTP, LN_BANDWIDTH };
+const buzz::StaticQName QN_JINGLE_RTCP_MUX = { NS_JINGLE_RTP, "rtcp-mux" };
+const buzz::StaticQName QN_JINGLE_RTCP_FB = { NS_JINGLE_RTP, "rtcp-fb" };
+const buzz::StaticQName QN_SUBTYPE = { NS_EMPTY, "subtype" };
+const buzz::StaticQName QN_PARAMETER = { NS_JINGLE_RTP, "parameter" };
+const buzz::StaticQName QN_JINGLE_RTP_HDREXT =
+    { NS_JINGLE_RTP, "rtp-hdrext" };
+const buzz::StaticQName QN_URI = { NS_EMPTY, "uri" };
+
+const buzz::StaticQName QN_JINGLE_DRAFT_SCTP_CONTENT =
+    { NS_JINGLE_DRAFT_SCTP, LN_DESCRIPTION };
+const buzz::StaticQName QN_JINGLE_DRAFT_SCTP_STREAM =
+    { NS_JINGLE_DRAFT_SCTP, "stream" };
+
+const char NS_GINGLE_AUDIO[] = "http://www.google.com/session/phone";
+const buzz::StaticQName QN_GINGLE_AUDIO_CONTENT =
+    { NS_GINGLE_AUDIO, LN_DESCRIPTION };
+const buzz::StaticQName QN_GINGLE_AUDIO_PAYLOADTYPE =
+    { NS_GINGLE_AUDIO, LN_PAYLOADTYPE };
+const buzz::StaticQName QN_GINGLE_AUDIO_SRCID = { NS_GINGLE_AUDIO, "src-id" };
+const char NS_GINGLE_VIDEO[] = "http://www.google.com/session/video";
+const buzz::StaticQName QN_GINGLE_VIDEO_CONTENT =
+    { NS_GINGLE_VIDEO, LN_DESCRIPTION };
+const buzz::StaticQName QN_GINGLE_VIDEO_PAYLOADTYPE =
+    { NS_GINGLE_VIDEO, LN_PAYLOADTYPE };
+const buzz::StaticQName QN_GINGLE_VIDEO_SRCID = { NS_GINGLE_VIDEO, "src-id" };
+const buzz::StaticQName QN_GINGLE_VIDEO_BANDWIDTH =
+    { NS_GINGLE_VIDEO, LN_BANDWIDTH };
+
+// Crypto support.
+const buzz::StaticQName QN_ENCRYPTION = { NS_JINGLE_RTP, "encryption" };
+const buzz::StaticQName QN_ENCRYPTION_REQUIRED = { NS_EMPTY, "required" };
+const buzz::StaticQName QN_CRYPTO = { NS_JINGLE_RTP, "crypto" };
+const buzz::StaticQName QN_GINGLE_AUDIO_CRYPTO_USAGE =
+    { NS_GINGLE_AUDIO, "usage" };
+const buzz::StaticQName QN_GINGLE_VIDEO_CRYPTO_USAGE =
+    { NS_GINGLE_VIDEO, "usage" };
+const buzz::StaticQName QN_CRYPTO_SUITE = { NS_EMPTY, "crypto-suite" };
+const buzz::StaticQName QN_CRYPTO_KEY_PARAMS = { NS_EMPTY, "key-params" };
+const buzz::StaticQName QN_CRYPTO_TAG = { NS_EMPTY, "tag" };
+const buzz::StaticQName QN_CRYPTO_SESSION_PARAMS =
+    { NS_EMPTY, "session-params" };
+
+// Transports and candidates.
+const char LN_TRANSPORT[] = "transport";
+const char LN_CANDIDATE[] = "candidate";
+const buzz::StaticQName QN_UFRAG = { cricket::NS_EMPTY, "ufrag" };
+const buzz::StaticQName QN_PWD = { cricket::NS_EMPTY, "pwd" };
+const buzz::StaticQName QN_COMPONENT = { cricket::NS_EMPTY, "component" };
+const buzz::StaticQName QN_IP = { cricket::NS_EMPTY, "ip" };
+const buzz::StaticQName QN_PORT = { cricket::NS_EMPTY, "port" };
+const buzz::StaticQName QN_NETWORK = { cricket::NS_EMPTY, "network" };
+const buzz::StaticQName QN_GENERATION = { cricket::NS_EMPTY, "generation" };
+const buzz::StaticQName QN_PRIORITY = { cricket::NS_EMPTY, "priority" };
+const buzz::StaticQName QN_PROTOCOL = { cricket::NS_EMPTY, "protocol" };
+const char ICE_CANDIDATE_TYPE_PEER_STUN[] = "prflx";
+const char ICE_CANDIDATE_TYPE_SERVER_STUN[] = "srflx";
+
+const buzz::StaticQName QN_FINGERPRINT = { cricket::NS_EMPTY, "fingerprint" };
+const buzz::StaticQName QN_FINGERPRINT_ALGORITHM =
+    { cricket::NS_EMPTY, "algorithm" };
+const buzz::StaticQName QN_FINGERPRINT_DIGEST = { cricket::NS_EMPTY, "digest" };
+
+const buzz::StaticQName QN_GINGLE_P2P_TRANSPORT =
+    { NS_GINGLE_P2P, LN_TRANSPORT };
+const buzz::StaticQName QN_GINGLE_P2P_CANDIDATE =
+    { NS_GINGLE_P2P, LN_CANDIDATE };
+const buzz::StaticQName QN_GINGLE_P2P_UNKNOWN_CHANNEL_NAME =
+    { NS_GINGLE_P2P, "unknown-channel-name" };
+const buzz::StaticQName QN_GINGLE_CANDIDATE = { NS_GINGLE, LN_CANDIDATE };
+const buzz::StaticQName QN_ADDRESS = { cricket::NS_EMPTY, "address" };
+const buzz::StaticQName QN_USERNAME = { cricket::NS_EMPTY, "username" };
+const buzz::StaticQName QN_PASSWORD = { cricket::NS_EMPTY, "password" };
+const buzz::StaticQName QN_PREFERENCE = { cricket::NS_EMPTY, "preference" };
+
+// terminate reasons and errors
+const char JINGLE_ERROR_BAD_REQUEST[] = "bad-request";
+const char JINGLE_ERROR_OUT_OF_ORDER[] = "out-of-order";
+const char JINGLE_ERROR_UNKNOWN_SESSION[] = "unknown-session";
+
+// Call terminate reasons from XEP-166
+const char STR_TERMINATE_DECLINE[] = "decline";
+const char STR_TERMINATE_SUCCESS[] = "success";
+const char STR_TERMINATE_ERROR[] = "general-error";
+const char STR_TERMINATE_INCOMPATIBLE_PARAMETERS[] = "incompatible-parameters";
+
+// Old terminate reasons used by cricket
+const char STR_TERMINATE_CALL_ENDED[] = "call-ended";
+const char STR_TERMINATE_RECIPIENT_UNAVAILABLE[] = "recipient-unavailable";
+const char STR_TERMINATE_RECIPIENT_BUSY[] = "recipient-busy";
+const char STR_TERMINATE_INSUFFICIENT_FUNDS[] = "insufficient-funds";
+const char STR_TERMINATE_NUMBER_MALFORMED[] = "number-malformed";
+const char STR_TERMINATE_NUMBER_DISALLOWED[] = "number-disallowed";
+const char STR_TERMINATE_PROTOCOL_ERROR[] = "protocol-error";
+const char STR_TERMINATE_INTERNAL_SERVER_ERROR[] = "internal-server-error";
+const char STR_TERMINATE_UNKNOWN_ERROR[] = "unknown-error";
+
+// Draft view and notify messages.
+const char STR_JINGLE_DRAFT_CONTENT_NAME_VIDEO[] = "video";
+const char STR_JINGLE_DRAFT_CONTENT_NAME_AUDIO[] = "audio";
+const buzz::StaticQName QN_NICK = { cricket::NS_EMPTY, "nick" };
+const buzz::StaticQName QN_TYPE = { cricket::NS_EMPTY, "type" };
+const buzz::StaticQName QN_JINGLE_DRAFT_VIEW = { NS_JINGLE_DRAFT, "view" };
+const char STR_JINGLE_DRAFT_VIEW_TYPE_NONE[] = "none";
+const char STR_JINGLE_DRAFT_VIEW_TYPE_STATIC[] = "static";
+const buzz::StaticQName QN_JINGLE_DRAFT_PARAMS = { NS_JINGLE_DRAFT, "params" };
+const buzz::StaticQName QN_JINGLE_DRAFT_STREAMS = { NS_JINGLE_DRAFT, "streams" };
+const buzz::StaticQName QN_JINGLE_DRAFT_STREAM = { NS_JINGLE_DRAFT, "stream" };
+const buzz::StaticQName QN_DISPLAY = { cricket::NS_EMPTY, "display" };
+const buzz::StaticQName QN_CNAME = { cricket::NS_EMPTY, "cname" };
+const buzz::StaticQName QN_JINGLE_DRAFT_SSRC = { NS_JINGLE_DRAFT, "ssrc" };
+const buzz::StaticQName QN_JINGLE_DRAFT_SSRC_GROUP =
+    { NS_JINGLE_DRAFT, "ssrc-group" };
+const buzz::StaticQName QN_SEMANTICS = { cricket::NS_EMPTY, "semantics" };
+const buzz::StaticQName QN_JINGLE_LEGACY_NOTIFY = { NS_JINGLE_DRAFT, "notify" };
+const buzz::StaticQName QN_JINGLE_LEGACY_SOURCE = { NS_JINGLE_DRAFT, "source" };
+
+const buzz::StaticQName QN_GINGLE_RAW_TRANSPORT = { NS_GINGLE_RAW, "transport" };
+const buzz::StaticQName QN_GINGLE_RAW_CHANNEL = { NS_GINGLE_RAW, "channel" };
+
+// old stuff
+#ifdef FEATURE_ENABLE_VOICEMAIL
+const char NS_VOICEMAIL[] = "http://www.google.com/session/voicemail";
+const buzz::StaticQName QN_VOICEMAIL_REGARDING = { NS_VOICEMAIL, "regarding" };
+#endif
+
+}  // namespace cricket
diff --git a/libjingle/session/constants.h b/libjingle/session/constants.h
new file mode 100644
index 0000000..b9d5268
--- /dev/null
+++ b/libjingle/session/constants.h
@@ -0,0 +1,219 @@
+/*
+ *  Copyright 2004 The WebRTC Project Authors. All rights reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef WEBRTC_LIBJINGLE_SESSION_CONSTANTS_H_
+#define WEBRTC_LIBJINGLE_SESSION_CONSTANTS_H_
+
+#include <string>
+
+#include "webrtc/libjingle/xmllite/qname.h"
+
+// This file contains constants related to signaling that are used in various
+// classes in this directory.
+
+namespace cricket {
+
+// NS_ == namespace
+// QN_ == buzz::QName (namespace + name)
+// LN_ == "local name" == QName::LocalPart()
+//   these are useful when you need to find a tag
+//   that has different namespaces (like <description> or <transport>)
+
+extern const char NS_EMPTY[];
+extern const char NS_JINGLE[];
+extern const char NS_JINGLE_DRAFT[];
+extern const char NS_GINGLE[];
+
+enum SignalingProtocol {
+  PROTOCOL_JINGLE,
+  PROTOCOL_GINGLE,
+  PROTOCOL_HYBRID,
+};
+
+// actions (aka Gingle <session> or Jingle <jingle>)
+extern const buzz::StaticQName QN_ACTION;
+extern const char LN_INITIATOR[];
+extern const buzz::StaticQName QN_INITIATOR;
+extern const buzz::StaticQName QN_CREATOR;
+
+extern const buzz::StaticQName QN_JINGLE;
+extern const buzz::StaticQName QN_JINGLE_CONTENT;
+extern const buzz::StaticQName QN_JINGLE_CONTENT_NAME;
+extern const buzz::StaticQName QN_JINGLE_CONTENT_MEDIA;
+extern const buzz::StaticQName QN_JINGLE_REASON;
+extern const buzz::StaticQName QN_JINGLE_DRAFT_GROUP;
+extern const buzz::StaticQName QN_JINGLE_DRAFT_GROUP_TYPE;
+extern const char JINGLE_CONTENT_MEDIA_AUDIO[];
+extern const char JINGLE_CONTENT_MEDIA_VIDEO[];
+extern const char JINGLE_CONTENT_MEDIA_DATA[];
+extern const char JINGLE_ACTION_SESSION_INITIATE[];
+extern const char JINGLE_ACTION_SESSION_INFO[];
+extern const char JINGLE_ACTION_SESSION_ACCEPT[];
+extern const char JINGLE_ACTION_SESSION_TERMINATE[];
+extern const char JINGLE_ACTION_TRANSPORT_INFO[];
+extern const char JINGLE_ACTION_TRANSPORT_ACCEPT[];
+extern const char JINGLE_ACTION_DESCRIPTION_INFO[];
+
+extern const buzz::StaticQName QN_GINGLE_SESSION;
+extern const char GINGLE_ACTION_INITIATE[];
+extern const char GINGLE_ACTION_INFO[];
+extern const char GINGLE_ACTION_ACCEPT[];
+extern const char GINGLE_ACTION_REJECT[];
+extern const char GINGLE_ACTION_TERMINATE[];
+extern const char GINGLE_ACTION_CANDIDATES[];
+extern const char GINGLE_ACTION_UPDATE[];
+
+extern const char LN_ERROR[];
+extern const buzz::StaticQName QN_GINGLE_REDIRECT;
+extern const char STR_REDIRECT_PREFIX[];
+
+// Session Contents (aka Gingle <session><description>
+//                   or Jingle <content><description>)
+extern const char LN_DESCRIPTION[];
+extern const char LN_PAYLOADTYPE[];
+extern const buzz::StaticQName QN_ID;
+extern const buzz::StaticQName QN_SID;
+extern const buzz::StaticQName QN_NAME;
+extern const buzz::StaticQName QN_CLOCKRATE;
+extern const buzz::StaticQName QN_BITRATE;
+extern const buzz::StaticQName QN_CHANNELS;
+extern const buzz::StaticQName QN_PARAMETER;
+extern const char LN_NAME[];
+extern const char LN_VALUE[];
+extern const buzz::StaticQName QN_PAYLOADTYPE_PARAMETER_NAME;
+extern const buzz::StaticQName QN_PAYLOADTYPE_PARAMETER_VALUE;
+extern const char PAYLOADTYPE_PARAMETER_BITRATE[];
+extern const char PAYLOADTYPE_PARAMETER_HEIGHT[];
+extern const char PAYLOADTYPE_PARAMETER_WIDTH[];
+extern const char PAYLOADTYPE_PARAMETER_FRAMERATE[];
+extern const char LN_BANDWIDTH[];
+
+extern const buzz::StaticQName QN_JINGLE_RTP_CONTENT;
+extern const buzz::StaticQName QN_SSRC;
+extern const buzz::StaticQName QN_JINGLE_RTP_PAYLOADTYPE;
+extern const buzz::StaticQName QN_JINGLE_RTP_BANDWIDTH;
+extern const buzz::StaticQName QN_JINGLE_RTCP_MUX;
+extern const buzz::StaticQName QN_JINGLE_RTCP_FB;
+extern const buzz::StaticQName QN_SUBTYPE;
+extern const buzz::StaticQName QN_JINGLE_RTP_HDREXT;
+extern const buzz::StaticQName QN_URI;
+
+extern const buzz::StaticQName QN_JINGLE_DRAFT_SCTP_CONTENT;
+extern const buzz::StaticQName QN_JINGLE_DRAFT_SCTP_STREAM;
+
+extern const char NS_GINGLE_AUDIO[];
+extern const buzz::StaticQName QN_GINGLE_AUDIO_CONTENT;
+extern const buzz::StaticQName QN_GINGLE_AUDIO_PAYLOADTYPE;
+extern const buzz::StaticQName QN_GINGLE_AUDIO_SRCID;
+extern const char NS_GINGLE_VIDEO[];
+extern const buzz::StaticQName QN_GINGLE_VIDEO_CONTENT;
+extern const buzz::StaticQName QN_GINGLE_VIDEO_PAYLOADTYPE;
+extern const buzz::StaticQName QN_GINGLE_VIDEO_SRCID;
+extern const buzz::StaticQName QN_GINGLE_VIDEO_BANDWIDTH;
+
+// Crypto support.
+extern const buzz::StaticQName QN_ENCRYPTION;
+extern const buzz::StaticQName QN_ENCRYPTION_REQUIRED;
+extern const buzz::StaticQName QN_CRYPTO;
+extern const buzz::StaticQName QN_GINGLE_AUDIO_CRYPTO_USAGE;
+extern const buzz::StaticQName QN_GINGLE_VIDEO_CRYPTO_USAGE;
+extern const buzz::StaticQName QN_CRYPTO_SUITE;
+extern const buzz::StaticQName QN_CRYPTO_KEY_PARAMS;
+extern const buzz::StaticQName QN_CRYPTO_TAG;
+extern const buzz::StaticQName QN_CRYPTO_SESSION_PARAMS;
+
+// Transports and candidates.
+extern const char LN_TRANSPORT[];
+extern const char LN_CANDIDATE[];
+extern const buzz::StaticQName QN_JINGLE_P2P_TRANSPORT;
+extern const buzz::StaticQName QN_JINGLE_P2P_CANDIDATE;
+extern const buzz::StaticQName QN_UFRAG;
+extern const buzz::StaticQName QN_COMPONENT;
+extern const buzz::StaticQName QN_PWD;
+extern const buzz::StaticQName QN_IP;
+extern const buzz::StaticQName QN_PORT;
+extern const buzz::StaticQName QN_NETWORK;
+extern const buzz::StaticQName QN_GENERATION;
+extern const buzz::StaticQName QN_PRIORITY;
+extern const buzz::StaticQName QN_PROTOCOL;
+extern const char ICE_CANDIDATE_TYPE_PEER_STUN[];
+extern const char ICE_CANDIDATE_TYPE_SERVER_STUN[];
+
+extern const buzz::StaticQName QN_FINGERPRINT;
+extern const buzz::StaticQName QN_FINGERPRINT_ALGORITHM;
+extern const buzz::StaticQName QN_FINGERPRINT_DIGEST;
+
+extern const buzz::StaticQName QN_GINGLE_P2P_TRANSPORT;
+extern const buzz::StaticQName QN_GINGLE_P2P_CANDIDATE;
+extern const buzz::StaticQName QN_GINGLE_P2P_UNKNOWN_CHANNEL_NAME;
+extern const buzz::StaticQName QN_GINGLE_CANDIDATE;
+extern const buzz::StaticQName QN_ADDRESS;
+extern const buzz::StaticQName QN_USERNAME;
+extern const buzz::StaticQName QN_PASSWORD;
+extern const buzz::StaticQName QN_PREFERENCE;
+extern const char GINGLE_CANDIDATE_TYPE_STUN[];
+
+extern const buzz::StaticQName QN_GINGLE_RAW_TRANSPORT;
+extern const buzz::StaticQName QN_GINGLE_RAW_CHANNEL;
+
+// terminate reasons and errors: see http://xmpp.org/extensions/xep-0166.html
+extern const char JINGLE_ERROR_BAD_REQUEST[];  // like parse error
+// got transport-info before session-initiate, for example
+extern const char JINGLE_ERROR_OUT_OF_ORDER[];
+extern const char JINGLE_ERROR_UNKNOWN_SESSION[];
+
+// Call terminate reasons from XEP-166
+extern const char STR_TERMINATE_DECLINE[];  // polite reject
+extern const char STR_TERMINATE_SUCCESS[];  // polite hangup
+extern const char STR_TERMINATE_ERROR[];  // something bad happened
+extern const char STR_TERMINATE_INCOMPATIBLE_PARAMETERS[];  // no codecs?
+
+// Old terminate reasons used by cricket
+extern const char STR_TERMINATE_CALL_ENDED[];
+extern const char STR_TERMINATE_RECIPIENT_UNAVAILABLE[];
+extern const char STR_TERMINATE_RECIPIENT_BUSY[];
+extern const char STR_TERMINATE_INSUFFICIENT_FUNDS[];
+extern const char STR_TERMINATE_NUMBER_MALFORMED[];
+extern const char STR_TERMINATE_NUMBER_DISALLOWED[];
+extern const char STR_TERMINATE_PROTOCOL_ERROR[];
+extern const char STR_TERMINATE_INTERNAL_SERVER_ERROR[];
+extern const char STR_TERMINATE_UNKNOWN_ERROR[];
+
+// Draft view and notify messages.
+extern const char STR_JINGLE_DRAFT_CONTENT_NAME_VIDEO[];
+extern const char STR_JINGLE_DRAFT_CONTENT_NAME_AUDIO[];
+extern const buzz::StaticQName QN_NICK;
+extern const buzz::StaticQName QN_TYPE;
+extern const buzz::StaticQName QN_JINGLE_DRAFT_VIEW;
+extern const char STR_JINGLE_DRAFT_VIEW_TYPE_NONE[];
+extern const char STR_JINGLE_DRAFT_VIEW_TYPE_STATIC[];
+extern const buzz::StaticQName QN_JINGLE_DRAFT_PARAMS;
+extern const buzz::StaticQName QN_WIDTH;
+extern const buzz::StaticQName QN_HEIGHT;
+extern const buzz::StaticQName QN_FRAMERATE;
+extern const buzz::StaticQName QN_JINGLE_DRAFT_STREAM;
+extern const buzz::StaticQName QN_JINGLE_DRAFT_STREAMS;
+extern const buzz::StaticQName QN_DISPLAY;
+extern const buzz::StaticQName QN_CNAME;
+extern const buzz::StaticQName QN_JINGLE_DRAFT_SSRC;
+extern const buzz::StaticQName QN_JINGLE_DRAFT_SSRC_GROUP;
+extern const buzz::StaticQName QN_SEMANTICS;
+extern const buzz::StaticQName QN_JINGLE_LEGACY_NOTIFY;
+extern const buzz::StaticQName QN_JINGLE_LEGACY_SOURCE;
+
+// old stuff
+#ifdef FEATURE_ENABLE_VOICEMAIL
+extern const char NS_VOICEMAIL[];
+extern const buzz::StaticQName QN_VOICEMAIL_REGARDING;
+#endif
+
+}  // namespace cricket
+
+#endif  // WEBRTC_LIBJINGLE_SESSION_CONSTANTS_H_
diff --git a/libjingle/session/media/call.cc b/libjingle/session/media/call.cc
index 0c9b4b3..2857531 100644
--- a/libjingle/session/media/call.cc
+++ b/libjingle/session/media/call.cc
@@ -37,7 +37,7 @@
 #include "webrtc/base/thread.h"
 #include "webrtc/base/window.h"
 #include "webrtc/libjingle/session/media/mediasessionclient.h"
-#include "webrtc/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/parsing.h"
 
 namespace cricket {
 
diff --git a/libjingle/session/media/mediamessages.h b/libjingle/session/media/mediamessages.h
index a476f92..b7943f6 100644
--- a/libjingle/session/media/mediamessages.h
+++ b/libjingle/session/media/mediamessages.h
@@ -41,9 +41,9 @@
 
 #include "talk/media/base/mediachannel.h"  // For RtpHeaderExtension
 #include "talk/media/base/streamparams.h"
-#include "webrtc/p2p/base/parsing.h"
-#include "webrtc/p2p/base/sessiondescription.h"
 #include "webrtc/base/basictypes.h"
+#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/p2p/base/sessiondescription.h"
 
 namespace cricket {
 
diff --git a/libjingle/session/media/mediasessionclient.cc b/libjingle/session/media/mediasessionclient.cc
index 337413d..7cfcf15 100644
--- a/libjingle/session/media/mediasessionclient.cc
+++ b/libjingle/session/media/mediasessionclient.cc
@@ -42,7 +42,6 @@
 #include "webrtc/libjingle/xmllite/xmlconstants.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/p2p/base/parsing.h"
 
 namespace cricket {
 
diff --git a/libjingle/session/media/mediasessionclient.h b/libjingle/session/media/mediasessionclient.h
index d8c88ff..c80b0a4 100644
--- a/libjingle/session/media/mediasessionclient.h
+++ b/libjingle/session/media/mediasessionclient.h
@@ -41,8 +41,8 @@
 #include "webrtc/base/sigslotrepeater.h"
 #include "webrtc/base/thread.h"
 #include "webrtc/libjingle/session/media/call.h"
+#include "webrtc/libjingle/session/sessionclient.h"
 #include "webrtc/libjingle/session/sessionmanager.h"
-#include "webrtc/p2p/base/sessionclient.h"
 #include "webrtc/p2p/base/sessiondescription.h"
 
 namespace cricket {
diff --git a/libjingle/session/p2ptransportparser.cc b/libjingle/session/p2ptransportparser.cc
index 75d81c7..cb34671 100644
--- a/libjingle/session/p2ptransportparser.cc
+++ b/libjingle/session/p2ptransportparser.cc
@@ -13,9 +13,10 @@
 #include <vector>
 
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/constants.h"
+#include "webrtc/libjingle/session/parsing.h"
 #include "webrtc/libjingle/session/sessionmanager.h"
-#include "webrtc/p2p/base/sessionmessages.h"
+#include "webrtc/libjingle/session/sessionmessages.h"
 #include "webrtc/libjingle/xmllite/qname.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
diff --git a/libjingle/session/p2ptransportparser.h b/libjingle/session/p2ptransportparser.h
index 8fadbb8..754673b 100644
--- a/libjingle/session/p2ptransportparser.h
+++ b/libjingle/session/p2ptransportparser.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_P2P_BASE_P2PTRANSPORTPARSER_H_
-#define WEBRTC_P2P_BASE_P2PTRANSPORTPARSER_H_
+#ifndef WEBRTC_LIBJINGLE_SESSION_P2PTRANSPORTPARSER_H_
+#define WEBRTC_LIBJINGLE_SESSION_P2PTRANSPORTPARSER_H_
 
 #include <string>
 #include "webrtc/libjingle/session/transportparser.h"
@@ -64,4 +64,4 @@
 
 }  // namespace cricket
 
-#endif  // WEBRTC_P2P_BASE_P2PTRANSPORTPARSER_H_
+#endif  // WEBRTC_LIBJINGLE_SESSION_P2PTRANSPORTPARSER_H_
diff --git a/p2p/base/parsing.cc b/libjingle/session/parsing.cc
similarity index 98%
rename from p2p/base/parsing.cc
rename to libjingle/session/parsing.cc
index 04d7e79..9a6100a 100644
--- a/p2p/base/parsing.cc
+++ b/libjingle/session/parsing.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/parsing.h"
 
 #include <stdlib.h>
 #include <algorithm>
diff --git a/p2p/base/parsing.h b/libjingle/session/parsing.h
similarity index 96%
rename from p2p/base/parsing.h
rename to libjingle/session/parsing.h
index 6b32b5d..1d1b69d 100644
--- a/p2p/base/parsing.h
+++ b/libjingle/session/parsing.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_P2P_BASE_PARSING_H_
-#define WEBRTC_P2P_BASE_PARSING_H_
+#ifndef WEBRTC_LIBJINGLE_SESSION_PARSING_H_
+#define WEBRTC_LIBJINGLE_SESSION_PARSING_H_
 
 #include <string>
 #include <vector>
@@ -137,4 +137,4 @@
 
 }  // namespace cricket
 
-#endif  // WEBRTC_P2P_BASE_PARSING_H_
+#endif  // WEBRTC_LIBJINGLE_SESSION_PARSING_H_
diff --git a/libjingle/session/rawtransportparser.cc b/libjingle/session/rawtransportparser.cc
index 1fa762a..e8df956 100644
--- a/libjingle/session/rawtransportparser.cc
+++ b/libjingle/session/rawtransportparser.cc
@@ -13,7 +13,7 @@
 #include <string>
 #include <vector>
 
-#include "webrtc/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/parsing.h"
 #include "webrtc/libjingle/xmllite/qname.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
diff --git a/libjingle/session/rawtransportparser.h b/libjingle/session/rawtransportparser.h
index f378360..092fa3f 100644
--- a/libjingle/session/rawtransportparser.h
+++ b/libjingle/session/rawtransportparser.h
@@ -8,12 +8,13 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_P2P_BASE_RAWTRANSPORTPARSER_H_
-#define WEBRTC_P2P_BASE_RAWTRANSPORTPARSER_H_
+#ifndef WEBRTC_LIBJINGLE_SESSION_RAWTRANSPORTPARSER_H_
+#define WEBRTC_LIBJINGLE_SESSION_RAWTRANSPORTPARSER_H_
 
 #include <string>
 
 #include "webrtc/p2p/base/constants.h"
+#include "webrtc/libjingle/session/constants.h"
 #include "webrtc/libjingle/session/transportparser.h"
 
 namespace cricket {
@@ -45,4 +46,4 @@
 
 }  // namespace cricket
 
-#endif  // WEBRTC_P2P_BASE_RAWTRANSPORTPARSER_H_
+#endif  // WEBRTC_LIBJINGLE_SESSION_RAWTRANSPORTPARSER_H_
diff --git a/libjingle/session/session_unittest.cc b/libjingle/session/session_unittest.cc
index 8b28d2d..c2ff1a7 100644
--- a/libjingle/session/session_unittest.cc
+++ b/libjingle/session/session_unittest.cc
@@ -22,16 +22,16 @@
 #include "webrtc/base/natserver.h"
 #include "webrtc/base/natsocketfactory.h"
 #include "webrtc/base/stringencode.h"
+#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/libjingle/session/sessionclient.h"
 #include "webrtc/libjingle/session/sessionmanager.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/p2p/base/basicpacketsocketfactory.h"
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/base/p2ptransport.h"
-#include "webrtc/p2p/base/parsing.h"
 #include "webrtc/p2p/base/portallocator.h"
 #include "webrtc/p2p/base/relayport.h"
 #include "webrtc/p2p/base/relayserver.h"
-#include "webrtc/p2p/base/sessionclient.h"
 #include "webrtc/p2p/base/stunport.h"
 #include "webrtc/p2p/base/stunserver.h"
 #include "webrtc/p2p/base/transportchannel.h"
diff --git a/p2p/base/sessionclient.h b/libjingle/session/sessionclient.h
similarity index 97%
rename from p2p/base/sessionclient.h
rename to libjingle/session/sessionclient.h
index 8cbd3be..1db4b6e 100644
--- a/p2p/base/sessionclient.h
+++ b/libjingle/session/sessionclient.h
@@ -11,6 +11,7 @@
 #ifndef WEBRTC_P2P_BASE_SESSIONCLIENT_H_
 #define WEBRTC_P2P_BASE_SESSIONCLIENT_H_
 
+#include "webrtc/libjingle/session/constants.h"
 #include "webrtc/p2p/base/constants.h"
 
 namespace buzz {
diff --git a/libjingle/session/sessionmanager.cc b/libjingle/session/sessionmanager.cc
index abe4299..25948b2 100644
--- a/libjingle/session/sessionmanager.cc
+++ b/libjingle/session/sessionmanager.cc
@@ -16,10 +16,10 @@
 #include "webrtc/base/scoped_ptr.h"
 #include "webrtc/base/stringencode.h"
 #include "webrtc/libjingle/session/p2ptransportparser.h"
+#include "webrtc/libjingle/session/sessionmessages.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/libjingle/xmpp/jid.h"
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/p2p/base/sessionmessages.h"
 
 namespace cricket {
 
diff --git a/libjingle/session/sessionmanager.h b/libjingle/session/sessionmanager.h
index 2ad0d4a..ec5cd98 100644
--- a/libjingle/session/sessionmanager.h
+++ b/libjingle/session/sessionmanager.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_P2P_BASE_SESSIONMANAGER_H_
-#define WEBRTC_P2P_BASE_SESSIONMANAGER_H_
+#ifndef WEBRTC_LIBJINGLE_SESSION_SESSIONMANAGER_H_
+#define WEBRTC_LIBJINGLE_SESSION_SESSIONMANAGER_H_
 
 #include <map>
 #include <string>
@@ -18,13 +18,13 @@
 
 #include "webrtc/base/sigslot.h"
 #include "webrtc/base/thread.h"
+#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/libjingle/session/sessionclient.h"
+#include "webrtc/libjingle/session/sessionmessages.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
-#include "webrtc/p2p/base/parsing.h"
 #include "webrtc/p2p/base/portallocator.h"
 #include "webrtc/p2p/base/session.h"
-#include "webrtc/p2p/base/sessionclient.h"
-#include "webrtc/p2p/base/sessionmessages.h"
 #include "webrtc/p2p/base/transportdescriptionfactory.h"
 
 namespace buzz {
@@ -433,4 +433,4 @@
 
 }  // namespace cricket
 
-#endif  // WEBRTC_P2P_BASE_SESSIONMANAGER_H_
+#endif  // WEBRTC_LIBJINGLE_SESSION_SESSIONMANAGER_H_
diff --git a/p2p/client/sessionmanagertask.h b/libjingle/session/sessionmanagertask.h
similarity index 92%
rename from p2p/client/sessionmanagertask.h
rename to libjingle/session/sessionmanagertask.h
index e5b32b3..3d865c0 100644
--- a/p2p/client/sessionmanagertask.h
+++ b/libjingle/session/sessionmanagertask.h
@@ -8,13 +8,13 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_P2P_CLIENT_SESSIONMANAGERTASK_H_
-#define WEBRTC_P2P_CLIENT_SESSIONMANAGERTASK_H_
+#ifndef WEBRTC_LIBJINGLE_SESSION_SESSIONMANAGERTASK_H_
+#define WEBRTC_LIBJINGLE_SESSION_SESSIONMANAGERTASK_H_
 
 #include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/libjingle/session/sessionsendtask.h"
 #include "webrtc/libjingle/xmpp/xmppengine.h"
 #include "webrtc/libjingle/xmpp/xmpptask.h"
-#include "webrtc/p2p/client/sessionsendtask.h"
 
 namespace cricket {
 
diff --git a/p2p/base/sessionmessages.cc b/libjingle/session/sessionmessages.cc
similarity index 99%
rename from p2p/base/sessionmessages.cc
rename to libjingle/session/sessionmessages.cc
index cc63673..acc8afa 100644
--- a/p2p/base/sessionmessages.cc
+++ b/libjingle/session/sessionmessages.cc
@@ -8,22 +8,22 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/p2p/base/sessionmessages.h"
+#include "webrtc/libjingle/session/sessionmessages.h"
 
 #include <stdio.h>
 #include <string>
 
-#include "webrtc/p2p/base/constants.h"
-#include "webrtc/p2p/base/p2ptransport.h"
-#include "webrtc/p2p/base/parsing.h"
-#include "webrtc/p2p/base/sessionclient.h"
-#include "webrtc/p2p/base/sessiondescription.h"
-#include "webrtc/p2p/base/transport.h"
-#include "webrtc/libjingle/xmllite/xmlconstants.h"
-#include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/scoped_ptr.h"
 #include "webrtc/base/stringutils.h"
+#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/libjingle/session/sessionclient.h"
+#include "webrtc/libjingle/xmllite/xmlconstants.h"
+#include "webrtc/libjingle/xmpp/constants.h"
+#include "webrtc/p2p/base/constants.h"
+#include "webrtc/p2p/base/p2ptransport.h"
+#include "webrtc/p2p/base/sessiondescription.h"
+#include "webrtc/p2p/base/transport.h"
 
 namespace cricket {
 
diff --git a/p2p/base/sessionmessages.h b/libjingle/session/sessionmessages.h
similarity index 96%
rename from p2p/base/sessionmessages.h
rename to libjingle/session/sessionmessages.h
index 95a5727..49c5f53 100644
--- a/p2p/base/sessionmessages.h
+++ b/libjingle/session/sessionmessages.h
@@ -8,22 +8,23 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_P2P_BASE_SESSIONMESSAGES_H_
-#define WEBRTC_P2P_BASE_SESSIONMESSAGES_H_
+#ifndef WEBRTC_LIBJINGLE_SESSION_SESSIONMESSAGES_H_
+#define WEBRTC_LIBJINGLE_SESSION_SESSIONMESSAGES_H_
 
 #include <map>
 #include <string>
 #include <vector>
 
 #include "webrtc/base/basictypes.h"
+#include "webrtc/libjingle/session/constants.h"
+#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/libjingle/session/transportparser.h"
+#include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/p2p/base/candidate.h"
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/p2p/base/parsing.h"
 #include "webrtc/p2p/base/sessiondescription.h"  // Needed to delete contents.
 #include "webrtc/p2p/base/transport.h"
 #include "webrtc/p2p/base/transportinfo.h"
-#include "webrtc/libjingle/session/transportparser.h"
-#include "webrtc/libjingle/xmllite/xmlelement.h"
 
 namespace cricket {
 
@@ -215,4 +216,4 @@
                          SessionRedirect* redirect);
 }  // namespace cricket
 
-#endif  // WEBRTC_P2P_BASE_SESSIONMESSAGES_H_
+#endif  // WEBRTC_LIBJINGLE_SESSION_SESSIONMESSAGES_H_
diff --git a/p2p/client/sessionsendtask.h b/libjingle/session/sessionsendtask.h
similarity index 96%
rename from p2p/client/sessionsendtask.h
rename to libjingle/session/sessionsendtask.h
index 77cea08..195207c 100644
--- a/p2p/client/sessionsendtask.h
+++ b/libjingle/session/sessionsendtask.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_P2P_CLIENT_SESSIONSENDTASK_H_
-#define WEBRTC_P2P_CLIENT_SESSIONSENDTASK_H_
+#ifndef WEBRTC_LIBJINGLE_SESSION_SESSIONSENDTASK_H_
+#define WEBRTC_LIBJINGLE_SESSION_SESSIONSENDTASK_H_
 
 #include "webrtc/libjingle/session/sessionmanager.h"
 #include "webrtc/libjingle/xmpp/constants.h"
diff --git a/libjingle/session/transportparser.cc b/libjingle/session/transportparser.cc
index 3dda481..d438f8e 100644
--- a/libjingle/session/transportparser.cc
+++ b/libjingle/session/transportparser.cc
@@ -10,7 +10,7 @@
 
 #include "webrtc/libjingle/session/transportparser.h"
 
-#include "webrtc/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/parsing.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 
diff --git a/libjingle/session/transportparser.h b/libjingle/session/transportparser.h
index 92c121c..7512e7b 100644
--- a/libjingle/session/transportparser.h
+++ b/libjingle/session/transportparser.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_P2P_BASE_TRANSPORTPARSER_H_
-#define WEBRTC_P2P_BASE_TRANSPORTPARSER_H_
+#ifndef WEBRTC_LIBJINGLE_SESSION_TRANSPORTPARSER_H_
+#define WEBRTC_LIBJINGLE_SESSION_TRANSPORTPARSER_H_
 
 #include <string>
 #include <vector>
@@ -75,4 +75,4 @@
 
 }  // namespace cricket
 
-#endif  // WEBRTC_P2P_BASE_TRANSPORTPARSER_H_
+#endif  // WEBRTC_LIBJINGLE_SESSION_TRANSPORTPARSER_H_
diff --git a/libjingle/session/transportparser_unittest.cc b/libjingle/session/transportparser_unittest.cc
index 81db398..1a61102 100644
--- a/libjingle/session/transportparser_unittest.cc
+++ b/libjingle/session/transportparser_unittest.cc
@@ -10,8 +10,8 @@
 
 #include "webrtc/base/gunit.h"
 #include "webrtc/libjingle/session/p2ptransportparser.h"
-#include "webrtc/p2p/base/parsing.h"
-#include "webrtc/p2p/base/sessionmessages.h"
+#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/libjingle/session/sessionmessages.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/p2p/base/constants.h"
diff --git a/libjingle/session/tunnel/tunnelsessionclient.h b/libjingle/session/tunnel/tunnelsessionclient.h
index 63d1c38..5fa121c 100644
--- a/libjingle/session/tunnel/tunnelsessionclient.h
+++ b/libjingle/session/tunnel/tunnelsessionclient.h
@@ -32,13 +32,13 @@
 
 #include "webrtc/base/criticalsection.h"
 #include "webrtc/base/stream.h"
+#include "webrtc/libjingle/session/sessionclient.h"
 #include "webrtc/libjingle/session/sessionmanager.h"
 #include "webrtc/libjingle/xmllite/qname.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/base/pseudotcp.h"
 #include "webrtc/p2p/base/session.h"
-#include "webrtc/p2p/base/sessionclient.h"
 #include "webrtc/p2p/base/sessiondescription.h"
 
 namespace cricket {
diff --git a/p2p/base/constants.cc b/p2p/base/constants.cc
index ef7487b..614cbc8 100644
--- a/p2p/base/constants.cc
+++ b/p2p/base/constants.cc
@@ -12,147 +12,21 @@
 
 #include <string>
 
-#include "webrtc/libjingle/xmllite/qname.h"
-
 namespace cricket {
 
-const char NS_EMPTY[] = "";
-const char NS_JINGLE[] = "urn:xmpp:jingle:1";
-const char NS_JINGLE_DRAFT[] = "google:jingle";
-const char NS_GINGLE[] = "http://www.google.com/session";
-
-// actions (aka <session> or <jingle>)
-const buzz::StaticQName QN_ACTION = { NS_EMPTY, "action" };
-const char LN_INITIATOR[] = "initiator";
-const buzz::StaticQName QN_INITIATOR = { NS_EMPTY, LN_INITIATOR };
-const buzz::StaticQName QN_CREATOR = { NS_EMPTY, "creator" };
-
-const buzz::StaticQName QN_JINGLE = { NS_JINGLE, "jingle" };
-const buzz::StaticQName QN_JINGLE_CONTENT = { NS_JINGLE, "content" };
-const buzz::StaticQName QN_JINGLE_CONTENT_NAME = { NS_EMPTY, "name" };
-const buzz::StaticQName QN_JINGLE_CONTENT_MEDIA = { NS_EMPTY, "media" };
-const buzz::StaticQName QN_JINGLE_REASON = { NS_JINGLE, "reason" };
-const buzz::StaticQName QN_JINGLE_DRAFT_GROUP = { NS_JINGLE_DRAFT, "group" };
-const buzz::StaticQName QN_JINGLE_DRAFT_GROUP_TYPE = { NS_EMPTY, "type" };
-const char JINGLE_CONTENT_MEDIA_AUDIO[] = "audio";
-const char JINGLE_CONTENT_MEDIA_VIDEO[] = "video";
-const char JINGLE_CONTENT_MEDIA_DATA[] = "data";
-const char JINGLE_ACTION_SESSION_INITIATE[] = "session-initiate";
-const char JINGLE_ACTION_SESSION_INFO[] = "session-info";
-const char JINGLE_ACTION_SESSION_ACCEPT[] = "session-accept";
-const char JINGLE_ACTION_SESSION_TERMINATE[] = "session-terminate";
-const char JINGLE_ACTION_TRANSPORT_INFO[] = "transport-info";
-const char JINGLE_ACTION_TRANSPORT_ACCEPT[] = "transport-accept";
-const char JINGLE_ACTION_DESCRIPTION_INFO[] = "description-info";
-
-const buzz::StaticQName QN_GINGLE_SESSION = { NS_GINGLE, "session" };
-const char GINGLE_ACTION_INITIATE[] = "initiate";
-const char GINGLE_ACTION_INFO[] = "info";
-const char GINGLE_ACTION_ACCEPT[] = "accept";
-const char GINGLE_ACTION_REJECT[] = "reject";
-const char GINGLE_ACTION_TERMINATE[] = "terminate";
-const char GINGLE_ACTION_CANDIDATES[] = "candidates";
-const char GINGLE_ACTION_UPDATE[] = "update";
-
-const char LN_ERROR[] = "error";
-const buzz::StaticQName QN_GINGLE_REDIRECT = { NS_GINGLE, "redirect" };
-const char STR_REDIRECT_PREFIX[] = "xmpp:";
-
-// Session Contents (aka Gingle <session><description>
-//                   or Jingle <content><description>)
-const char LN_DESCRIPTION[] = "description";
-const char LN_PAYLOADTYPE[] = "payload-type";
-const buzz::StaticQName QN_ID = { NS_EMPTY, "id" };
-const buzz::StaticQName QN_SID = { NS_EMPTY, "sid" };
-const buzz::StaticQName QN_NAME = { NS_EMPTY, "name" };
-const buzz::StaticQName QN_CLOCKRATE = { NS_EMPTY, "clockrate" };
-const buzz::StaticQName QN_BITRATE = { NS_EMPTY, "bitrate" };
-const buzz::StaticQName QN_CHANNELS = { NS_EMPTY, "channels" };
-const buzz::StaticQName QN_WIDTH = { NS_EMPTY, "width" };
-const buzz::StaticQName QN_HEIGHT = { NS_EMPTY, "height" };
-const buzz::StaticQName QN_FRAMERATE = { NS_EMPTY, "framerate" };
-const char LN_NAME[] = "name";
-const char LN_VALUE[] = "value";
-const buzz::StaticQName QN_PAYLOADTYPE_PARAMETER_NAME = { NS_EMPTY, LN_NAME };
-const buzz::StaticQName QN_PAYLOADTYPE_PARAMETER_VALUE = { NS_EMPTY, LN_VALUE };
-const char PAYLOADTYPE_PARAMETER_BITRATE[] = "bitrate";
-const char PAYLOADTYPE_PARAMETER_HEIGHT[] = "height";
-const char PAYLOADTYPE_PARAMETER_WIDTH[] = "width";
-const char PAYLOADTYPE_PARAMETER_FRAMERATE[] = "framerate";
-const char LN_BANDWIDTH[] = "bandwidth";
-
 const char CN_AUDIO[] = "audio";
 const char CN_VIDEO[] = "video";
 const char CN_DATA[] = "data";
 const char CN_OTHER[] = "main";
-// other SDP related strings
+
 const char GROUP_TYPE_BUNDLE[] = "BUNDLE";
 
-const char NS_JINGLE_RTP[] = "urn:xmpp:jingle:apps:rtp:1";
-const buzz::StaticQName QN_JINGLE_RTP_CONTENT =
-    { NS_JINGLE_RTP, LN_DESCRIPTION };
-const buzz::StaticQName QN_SSRC = { NS_EMPTY, "ssrc" };
-const buzz::StaticQName QN_JINGLE_RTP_PAYLOADTYPE =
-    { NS_JINGLE_RTP, LN_PAYLOADTYPE };
-const buzz::StaticQName QN_JINGLE_RTP_BANDWIDTH =
-    { NS_JINGLE_RTP, LN_BANDWIDTH };
-const buzz::StaticQName QN_JINGLE_RTCP_MUX = { NS_JINGLE_RTP, "rtcp-mux" };
-const buzz::StaticQName QN_JINGLE_RTCP_FB = { NS_JINGLE_RTP, "rtcp-fb" };
-const buzz::StaticQName QN_SUBTYPE = { NS_EMPTY, "subtype" };
-const buzz::StaticQName QN_PARAMETER = { NS_JINGLE_RTP, "parameter" };
-const buzz::StaticQName QN_JINGLE_RTP_HDREXT =
-    { NS_JINGLE_RTP, "rtp-hdrext" };
-const buzz::StaticQName QN_URI = { NS_EMPTY, "uri" };
+const char NS_JINGLE_ICE_UDP[] = "urn:xmpp:jingle:transports:ice-udp:1";
+const char NS_GINGLE_P2P[] = "http://www.google.com/transport/p2p";
+const char NS_GINGLE_RAW[] = "http://www.google.com/transport/raw-udp";
 
-const char NS_JINGLE_DRAFT_SCTP[] = "google:jingle:sctp";
-const buzz::StaticQName QN_JINGLE_DRAFT_SCTP_CONTENT =
-    { NS_JINGLE_DRAFT_SCTP, LN_DESCRIPTION };
-const buzz::StaticQName QN_JINGLE_DRAFT_SCTP_STREAM =
-    { NS_JINGLE_DRAFT_SCTP, "stream" };
+const char ICE_OPTION_GICE[] = "google-ice";
 
-const char NS_GINGLE_AUDIO[] = "http://www.google.com/session/phone";
-const buzz::StaticQName QN_GINGLE_AUDIO_CONTENT =
-    { NS_GINGLE_AUDIO, LN_DESCRIPTION };
-const buzz::StaticQName QN_GINGLE_AUDIO_PAYLOADTYPE =
-    { NS_GINGLE_AUDIO, LN_PAYLOADTYPE };
-const buzz::StaticQName QN_GINGLE_AUDIO_SRCID = { NS_GINGLE_AUDIO, "src-id" };
-const char NS_GINGLE_VIDEO[] = "http://www.google.com/session/video";
-const buzz::StaticQName QN_GINGLE_VIDEO_CONTENT =
-    { NS_GINGLE_VIDEO, LN_DESCRIPTION };
-const buzz::StaticQName QN_GINGLE_VIDEO_PAYLOADTYPE =
-    { NS_GINGLE_VIDEO, LN_PAYLOADTYPE };
-const buzz::StaticQName QN_GINGLE_VIDEO_SRCID = { NS_GINGLE_VIDEO, "src-id" };
-const buzz::StaticQName QN_GINGLE_VIDEO_BANDWIDTH =
-    { NS_GINGLE_VIDEO, LN_BANDWIDTH };
-
-// Crypto support.
-const buzz::StaticQName QN_ENCRYPTION = { NS_JINGLE_RTP, "encryption" };
-const buzz::StaticQName QN_ENCRYPTION_REQUIRED = { NS_EMPTY, "required" };
-const buzz::StaticQName QN_CRYPTO = { NS_JINGLE_RTP, "crypto" };
-const buzz::StaticQName QN_GINGLE_AUDIO_CRYPTO_USAGE =
-    { NS_GINGLE_AUDIO, "usage" };
-const buzz::StaticQName QN_GINGLE_VIDEO_CRYPTO_USAGE =
-    { NS_GINGLE_VIDEO, "usage" };
-const buzz::StaticQName QN_CRYPTO_SUITE = { NS_EMPTY, "crypto-suite" };
-const buzz::StaticQName QN_CRYPTO_KEY_PARAMS = { NS_EMPTY, "key-params" };
-const buzz::StaticQName QN_CRYPTO_TAG = { NS_EMPTY, "tag" };
-const buzz::StaticQName QN_CRYPTO_SESSION_PARAMS =
-    { NS_EMPTY, "session-params" };
-
-// Transports and candidates.
-const char LN_TRANSPORT[] = "transport";
-const char LN_CANDIDATE[] = "candidate";
-const buzz::StaticQName QN_UFRAG = { cricket::NS_EMPTY, "ufrag" };
-const buzz::StaticQName QN_PWD = { cricket::NS_EMPTY, "pwd" };
-const buzz::StaticQName QN_COMPONENT = { cricket::NS_EMPTY, "component" };
-const buzz::StaticQName QN_IP = { cricket::NS_EMPTY, "ip" };
-const buzz::StaticQName QN_PORT = { cricket::NS_EMPTY, "port" };
-const buzz::StaticQName QN_NETWORK = { cricket::NS_EMPTY, "network" };
-const buzz::StaticQName QN_GENERATION = { cricket::NS_EMPTY, "generation" };
-const buzz::StaticQName QN_PRIORITY = { cricket::NS_EMPTY, "priority" };
-const buzz::StaticQName QN_PROTOCOL = { cricket::NS_EMPTY, "protocol" };
-const char ICE_CANDIDATE_TYPE_PEER_STUN[] = "prflx";
-const char ICE_CANDIDATE_TYPE_SERVER_STUN[] = "srflx";
 // Minimum ufrag length is 4 characters as per RFC5245. We chose 16 because
 // some internal systems expect username to be 16 bytes.
 const int ICE_UFRAG_LENGTH = 16;
@@ -164,32 +38,16 @@
 const size_t ICE_UFRAG_MAX_LENGTH = 255;
 const size_t ICE_PWD_MAX_LENGTH = 256;
 const size_t GICE_UFRAG_MAX_LENGTH = 16;
+
 // TODO: This is media-specific, so might belong
 // somewhere like media/base/constants.h
 const int ICE_CANDIDATE_COMPONENT_RTP = 1;
 const int ICE_CANDIDATE_COMPONENT_RTCP = 2;
 const int ICE_CANDIDATE_COMPONENT_DEFAULT = 1;
 
-const buzz::StaticQName QN_FINGERPRINT = { cricket::NS_EMPTY, "fingerprint" };
-const buzz::StaticQName QN_FINGERPRINT_ALGORITHM =
-    { cricket::NS_EMPTY, "algorithm" };
-const buzz::StaticQName QN_FINGERPRINT_DIGEST = { cricket::NS_EMPTY, "digest" };
+const char NS_JINGLE_RTP[] = "urn:xmpp:jingle:apps:rtp:1";
+const char NS_JINGLE_DRAFT_SCTP[] = "google:jingle:sctp";
 
-const char NS_JINGLE_ICE_UDP[] = "urn:xmpp:jingle:transports:ice-udp:1";
-
-const char ICE_OPTION_GICE[] = "google-ice";
-const char NS_GINGLE_P2P[] = "http://www.google.com/transport/p2p";
-const buzz::StaticQName QN_GINGLE_P2P_TRANSPORT =
-    { NS_GINGLE_P2P, LN_TRANSPORT };
-const buzz::StaticQName QN_GINGLE_P2P_CANDIDATE =
-    { NS_GINGLE_P2P, LN_CANDIDATE };
-const buzz::StaticQName QN_GINGLE_P2P_UNKNOWN_CHANNEL_NAME =
-    { NS_GINGLE_P2P, "unknown-channel-name" };
-const buzz::StaticQName QN_GINGLE_CANDIDATE = { NS_GINGLE, LN_CANDIDATE };
-const buzz::StaticQName QN_ADDRESS = { cricket::NS_EMPTY, "address" };
-const buzz::StaticQName QN_USERNAME = { cricket::NS_EMPTY, "username" };
-const buzz::StaticQName QN_PASSWORD = { cricket::NS_EMPTY, "password" };
-const buzz::StaticQName QN_PREFERENCE = { cricket::NS_EMPTY, "preference" };
 const char GICE_CHANNEL_NAME_RTP[] = "rtp";
 const char GICE_CHANNEL_NAME_RTCP[] = "rtcp";
 const char GICE_CHANNEL_NAME_VIDEO_RTP[] = "video_rtp";
@@ -197,57 +55,6 @@
 const char GICE_CHANNEL_NAME_DATA_RTP[] = "data_rtp";
 const char GICE_CHANNEL_NAME_DATA_RTCP[] = "data_rtcp";
 
-// terminate reasons and errors
-const char JINGLE_ERROR_BAD_REQUEST[] = "bad-request";
-const char JINGLE_ERROR_OUT_OF_ORDER[] = "out-of-order";
-const char JINGLE_ERROR_UNKNOWN_SESSION[] = "unknown-session";
-
-// Call terminate reasons from XEP-166
-const char STR_TERMINATE_DECLINE[] = "decline";
-const char STR_TERMINATE_SUCCESS[] = "success";
-const char STR_TERMINATE_ERROR[] = "general-error";
-const char STR_TERMINATE_INCOMPATIBLE_PARAMETERS[] = "incompatible-parameters";
-
-// Old terminate reasons used by cricket
-const char STR_TERMINATE_CALL_ENDED[] = "call-ended";
-const char STR_TERMINATE_RECIPIENT_UNAVAILABLE[] = "recipient-unavailable";
-const char STR_TERMINATE_RECIPIENT_BUSY[] = "recipient-busy";
-const char STR_TERMINATE_INSUFFICIENT_FUNDS[] = "insufficient-funds";
-const char STR_TERMINATE_NUMBER_MALFORMED[] = "number-malformed";
-const char STR_TERMINATE_NUMBER_DISALLOWED[] = "number-disallowed";
-const char STR_TERMINATE_PROTOCOL_ERROR[] = "protocol-error";
-const char STR_TERMINATE_INTERNAL_SERVER_ERROR[] = "internal-server-error";
-const char STR_TERMINATE_UNKNOWN_ERROR[] = "unknown-error";
-
-// Draft view and notify messages.
-const char STR_JINGLE_DRAFT_CONTENT_NAME_VIDEO[] = "video";
-const char STR_JINGLE_DRAFT_CONTENT_NAME_AUDIO[] = "audio";
-const buzz::StaticQName QN_NICK = { cricket::NS_EMPTY, "nick" };
-const buzz::StaticQName QN_TYPE = { cricket::NS_EMPTY, "type" };
-const buzz::StaticQName QN_JINGLE_DRAFT_VIEW = { NS_JINGLE_DRAFT, "view" };
-const char STR_JINGLE_DRAFT_VIEW_TYPE_NONE[] = "none";
-const char STR_JINGLE_DRAFT_VIEW_TYPE_STATIC[] = "static";
-const buzz::StaticQName QN_JINGLE_DRAFT_PARAMS = { NS_JINGLE_DRAFT, "params" };
-const buzz::StaticQName QN_JINGLE_DRAFT_STREAMS = { NS_JINGLE_DRAFT, "streams" };
-const buzz::StaticQName QN_JINGLE_DRAFT_STREAM = { NS_JINGLE_DRAFT, "stream" };
-const buzz::StaticQName QN_DISPLAY = { cricket::NS_EMPTY, "display" };
-const buzz::StaticQName QN_CNAME = { cricket::NS_EMPTY, "cname" };
-const buzz::StaticQName QN_JINGLE_DRAFT_SSRC = { NS_JINGLE_DRAFT, "ssrc" };
-const buzz::StaticQName QN_JINGLE_DRAFT_SSRC_GROUP =
-    { NS_JINGLE_DRAFT, "ssrc-group" };
-const buzz::StaticQName QN_SEMANTICS = { cricket::NS_EMPTY, "semantics" };
-const buzz::StaticQName QN_JINGLE_LEGACY_NOTIFY = { NS_JINGLE_DRAFT, "notify" };
-const buzz::StaticQName QN_JINGLE_LEGACY_SOURCE = { NS_JINGLE_DRAFT, "source" };
-
-const char NS_GINGLE_RAW[] = "http://www.google.com/transport/raw-udp";
-const buzz::StaticQName QN_GINGLE_RAW_TRANSPORT = { NS_GINGLE_RAW, "transport" };
-const buzz::StaticQName QN_GINGLE_RAW_CHANNEL = { NS_GINGLE_RAW, "channel" };
-
-// old stuff
-#ifdef FEATURE_ENABLE_VOICEMAIL
-const char NS_VOICEMAIL[] = "http://www.google.com/session/voicemail";
-const buzz::StaticQName QN_VOICEMAIL_REGARDING = { NS_VOICEMAIL, "regarding" };
-#endif
 
 // From RFC 4145, SDP setup attribute values.
 const char CONNECTIONROLE_ACTIVE_STR[] = "active";
diff --git a/p2p/base/constants.h b/p2p/base/constants.h
index edfe07c..90a7816 100644
--- a/p2p/base/constants.h
+++ b/p2p/base/constants.h
@@ -12,88 +12,9 @@
 #define WEBRTC_P2P_BASE_CONSTANTS_H_
 
 #include <string>
-#include "webrtc/libjingle/xmllite/qname.h"
-
-// This file contains constants related to signaling that are used in various
-// classes in this directory.
 
 namespace cricket {
 
-// NS_ == namespace
-// QN_ == buzz::QName (namespace + name)
-// LN_ == "local name" == QName::LocalPart()
-//   these are useful when you need to find a tag
-//   that has different namespaces (like <description> or <transport>)
-
-extern const char NS_EMPTY[];
-extern const char NS_JINGLE[];
-extern const char NS_JINGLE_DRAFT[];
-extern const char NS_GINGLE[];
-
-enum SignalingProtocol {
-  PROTOCOL_JINGLE,
-  PROTOCOL_GINGLE,
-  PROTOCOL_HYBRID,
-};
-
-// actions (aka Gingle <session> or Jingle <jingle>)
-extern const buzz::StaticQName QN_ACTION;
-extern const char LN_INITIATOR[];
-extern const buzz::StaticQName QN_INITIATOR;
-extern const buzz::StaticQName QN_CREATOR;
-
-extern const buzz::StaticQName QN_JINGLE;
-extern const buzz::StaticQName QN_JINGLE_CONTENT;
-extern const buzz::StaticQName QN_JINGLE_CONTENT_NAME;
-extern const buzz::StaticQName QN_JINGLE_CONTENT_MEDIA;
-extern const buzz::StaticQName QN_JINGLE_REASON;
-extern const buzz::StaticQName QN_JINGLE_DRAFT_GROUP;
-extern const buzz::StaticQName QN_JINGLE_DRAFT_GROUP_TYPE;
-extern const char JINGLE_CONTENT_MEDIA_AUDIO[];
-extern const char JINGLE_CONTENT_MEDIA_VIDEO[];
-extern const char JINGLE_CONTENT_MEDIA_DATA[];
-extern const char JINGLE_ACTION_SESSION_INITIATE[];
-extern const char JINGLE_ACTION_SESSION_INFO[];
-extern const char JINGLE_ACTION_SESSION_ACCEPT[];
-extern const char JINGLE_ACTION_SESSION_TERMINATE[];
-extern const char JINGLE_ACTION_TRANSPORT_INFO[];
-extern const char JINGLE_ACTION_TRANSPORT_ACCEPT[];
-extern const char JINGLE_ACTION_DESCRIPTION_INFO[];
-
-extern const buzz::StaticQName QN_GINGLE_SESSION;
-extern const char GINGLE_ACTION_INITIATE[];
-extern const char GINGLE_ACTION_INFO[];
-extern const char GINGLE_ACTION_ACCEPT[];
-extern const char GINGLE_ACTION_REJECT[];
-extern const char GINGLE_ACTION_TERMINATE[];
-extern const char GINGLE_ACTION_CANDIDATES[];
-extern const char GINGLE_ACTION_UPDATE[];
-
-extern const char LN_ERROR[];
-extern const buzz::StaticQName QN_GINGLE_REDIRECT;
-extern const char STR_REDIRECT_PREFIX[];
-
-// Session Contents (aka Gingle <session><description>
-//                   or Jingle <content><description>)
-extern const char LN_DESCRIPTION[];
-extern const char LN_PAYLOADTYPE[];
-extern const buzz::StaticQName QN_ID;
-extern const buzz::StaticQName QN_SID;
-extern const buzz::StaticQName QN_NAME;
-extern const buzz::StaticQName QN_CLOCKRATE;
-extern const buzz::StaticQName QN_BITRATE;
-extern const buzz::StaticQName QN_CHANNELS;
-extern const buzz::StaticQName QN_PARAMETER;
-extern const char LN_NAME[];
-extern const char LN_VALUE[];
-extern const buzz::StaticQName QN_PAYLOADTYPE_PARAMETER_NAME;
-extern const buzz::StaticQName QN_PAYLOADTYPE_PARAMETER_VALUE;
-extern const char PAYLOADTYPE_PARAMETER_BITRATE[];
-extern const char PAYLOADTYPE_PARAMETER_HEIGHT[];
-extern const char PAYLOADTYPE_PARAMETER_WIDTH[];
-extern const char PAYLOADTYPE_PARAMETER_FRAMERATE[];
-extern const char LN_BANDWIDTH[];
-
 // CN_ == "content name".  When we initiate a session, we choose the
 // name, and when we receive a Gingle session, we provide default
 // names (since Gingle has no content names).  But when we receive a
@@ -103,62 +24,16 @@
 extern const char CN_VIDEO[];
 extern const char CN_DATA[];
 extern const char CN_OTHER[];
-// other SDP related strings
+
 // GN stands for group name
 extern const char GROUP_TYPE_BUNDLE[];
 
-extern const char NS_JINGLE_RTP[];
-extern const buzz::StaticQName QN_JINGLE_RTP_CONTENT;
-extern const buzz::StaticQName QN_SSRC;
-extern const buzz::StaticQName QN_JINGLE_RTP_PAYLOADTYPE;
-extern const buzz::StaticQName QN_JINGLE_RTP_BANDWIDTH;
-extern const buzz::StaticQName QN_JINGLE_RTCP_MUX;
-extern const buzz::StaticQName QN_JINGLE_RTCP_FB;
-extern const buzz::StaticQName QN_SUBTYPE;
-extern const buzz::StaticQName QN_JINGLE_RTP_HDREXT;
-extern const buzz::StaticQName QN_URI;
+extern const char NS_JINGLE_ICE_UDP[];
+extern const char NS_GINGLE_P2P[];
+extern const char NS_GINGLE_RAW[];
 
-extern const char NS_JINGLE_DRAFT_SCTP[];
-extern const buzz::StaticQName QN_JINGLE_DRAFT_SCTP_CONTENT;
-extern const buzz::StaticQName QN_JINGLE_DRAFT_SCTP_STREAM;
+extern const char ICE_OPTION_GICE[];
 
-extern const char NS_GINGLE_AUDIO[];
-extern const buzz::StaticQName QN_GINGLE_AUDIO_CONTENT;
-extern const buzz::StaticQName QN_GINGLE_AUDIO_PAYLOADTYPE;
-extern const buzz::StaticQName QN_GINGLE_AUDIO_SRCID;
-extern const char NS_GINGLE_VIDEO[];
-extern const buzz::StaticQName QN_GINGLE_VIDEO_CONTENT;
-extern const buzz::StaticQName QN_GINGLE_VIDEO_PAYLOADTYPE;
-extern const buzz::StaticQName QN_GINGLE_VIDEO_SRCID;
-extern const buzz::StaticQName QN_GINGLE_VIDEO_BANDWIDTH;
-
-// Crypto support.
-extern const buzz::StaticQName QN_ENCRYPTION;
-extern const buzz::StaticQName QN_ENCRYPTION_REQUIRED;
-extern const buzz::StaticQName QN_CRYPTO;
-extern const buzz::StaticQName QN_GINGLE_AUDIO_CRYPTO_USAGE;
-extern const buzz::StaticQName QN_GINGLE_VIDEO_CRYPTO_USAGE;
-extern const buzz::StaticQName QN_CRYPTO_SUITE;
-extern const buzz::StaticQName QN_CRYPTO_KEY_PARAMS;
-extern const buzz::StaticQName QN_CRYPTO_TAG;
-extern const buzz::StaticQName QN_CRYPTO_SESSION_PARAMS;
-
-// Transports and candidates.
-extern const char LN_TRANSPORT[];
-extern const char LN_CANDIDATE[];
-extern const buzz::StaticQName QN_JINGLE_P2P_TRANSPORT;
-extern const buzz::StaticQName QN_JINGLE_P2P_CANDIDATE;
-extern const buzz::StaticQName QN_UFRAG;
-extern const buzz::StaticQName QN_COMPONENT;
-extern const buzz::StaticQName QN_PWD;
-extern const buzz::StaticQName QN_IP;
-extern const buzz::StaticQName QN_PORT;
-extern const buzz::StaticQName QN_NETWORK;
-extern const buzz::StaticQName QN_GENERATION;
-extern const buzz::StaticQName QN_PRIORITY;
-extern const buzz::StaticQName QN_PROTOCOL;
-extern const char ICE_CANDIDATE_TYPE_PEER_STUN[];
-extern const char ICE_CANDIDATE_TYPE_SERVER_STUN[];
 extern const int ICE_UFRAG_LENGTH;
 extern const int ICE_PWD_LENGTH;
 extern const size_t ICE_UFRAG_MIN_LENGTH;
@@ -166,27 +41,14 @@
 extern const size_t ICE_UFRAG_MAX_LENGTH;
 extern const size_t ICE_PWD_MAX_LENGTH;
 extern const size_t GICE_UFRAG_MAX_LENGTH;
+
 extern const int ICE_CANDIDATE_COMPONENT_RTP;
 extern const int ICE_CANDIDATE_COMPONENT_RTCP;
 extern const int ICE_CANDIDATE_COMPONENT_DEFAULT;
 
-extern const buzz::StaticQName QN_FINGERPRINT;
-extern const buzz::StaticQName QN_FINGERPRINT_ALGORITHM;
-extern const buzz::StaticQName QN_FINGERPRINT_DIGEST;
+extern const char NS_JINGLE_RTP[];
+extern const char NS_JINGLE_DRAFT_SCTP[];
 
-extern const char NS_JINGLE_ICE_UDP[];
-
-extern const char ICE_OPTION_GICE[];
-extern const char NS_GINGLE_P2P[];
-extern const buzz::StaticQName QN_GINGLE_P2P_TRANSPORT;
-extern const buzz::StaticQName QN_GINGLE_P2P_CANDIDATE;
-extern const buzz::StaticQName QN_GINGLE_P2P_UNKNOWN_CHANNEL_NAME;
-extern const buzz::StaticQName QN_GINGLE_CANDIDATE;
-extern const buzz::StaticQName QN_ADDRESS;
-extern const buzz::StaticQName QN_USERNAME;
-extern const buzz::StaticQName QN_PASSWORD;
-extern const buzz::StaticQName QN_PREFERENCE;
-extern const char GINGLE_CANDIDATE_TYPE_STUN[];
 extern const char GICE_CHANNEL_NAME_RTP[];
 extern const char GICE_CHANNEL_NAME_RTCP[];
 extern const char GICE_CHANNEL_NAME_VIDEO_RTP[];
@@ -194,61 +56,6 @@
 extern const char GICE_CHANNEL_NAME_DATA_RTP[];
 extern const char GICE_CHANNEL_NAME_DATA_RTCP[];
 
-extern const char NS_GINGLE_RAW[];
-extern const buzz::StaticQName QN_GINGLE_RAW_TRANSPORT;
-extern const buzz::StaticQName QN_GINGLE_RAW_CHANNEL;
-
-// terminate reasons and errors: see http://xmpp.org/extensions/xep-0166.html
-extern const char JINGLE_ERROR_BAD_REQUEST[];  // like parse error
-// got transport-info before session-initiate, for example
-extern const char JINGLE_ERROR_OUT_OF_ORDER[];
-extern const char JINGLE_ERROR_UNKNOWN_SESSION[];
-
-// Call terminate reasons from XEP-166
-extern const char STR_TERMINATE_DECLINE[];  // polite reject
-extern const char STR_TERMINATE_SUCCESS[];  // polite hangup
-extern const char STR_TERMINATE_ERROR[];  // something bad happened
-extern const char STR_TERMINATE_INCOMPATIBLE_PARAMETERS[];  // no codecs?
-
-// Old terminate reasons used by cricket
-extern const char STR_TERMINATE_CALL_ENDED[];
-extern const char STR_TERMINATE_RECIPIENT_UNAVAILABLE[];
-extern const char STR_TERMINATE_RECIPIENT_BUSY[];
-extern const char STR_TERMINATE_INSUFFICIENT_FUNDS[];
-extern const char STR_TERMINATE_NUMBER_MALFORMED[];
-extern const char STR_TERMINATE_NUMBER_DISALLOWED[];
-extern const char STR_TERMINATE_PROTOCOL_ERROR[];
-extern const char STR_TERMINATE_INTERNAL_SERVER_ERROR[];
-extern const char STR_TERMINATE_UNKNOWN_ERROR[];
-
-// Draft view and notify messages.
-extern const char STR_JINGLE_DRAFT_CONTENT_NAME_VIDEO[];
-extern const char STR_JINGLE_DRAFT_CONTENT_NAME_AUDIO[];
-extern const buzz::StaticQName QN_NICK;
-extern const buzz::StaticQName QN_TYPE;
-extern const buzz::StaticQName QN_JINGLE_DRAFT_VIEW;
-extern const char STR_JINGLE_DRAFT_VIEW_TYPE_NONE[];
-extern const char STR_JINGLE_DRAFT_VIEW_TYPE_STATIC[];
-extern const buzz::StaticQName QN_JINGLE_DRAFT_PARAMS;
-extern const buzz::StaticQName QN_WIDTH;
-extern const buzz::StaticQName QN_HEIGHT;
-extern const buzz::StaticQName QN_FRAMERATE;
-extern const buzz::StaticQName QN_JINGLE_DRAFT_STREAM;
-extern const buzz::StaticQName QN_JINGLE_DRAFT_STREAMS;
-extern const buzz::StaticQName QN_DISPLAY;
-extern const buzz::StaticQName QN_CNAME;
-extern const buzz::StaticQName QN_JINGLE_DRAFT_SSRC;
-extern const buzz::StaticQName QN_JINGLE_DRAFT_SSRC_GROUP;
-extern const buzz::StaticQName QN_SEMANTICS;
-extern const buzz::StaticQName QN_JINGLE_LEGACY_NOTIFY;
-extern const buzz::StaticQName QN_JINGLE_LEGACY_SOURCE;
-
-// old stuff
-#ifdef FEATURE_ENABLE_VOICEMAIL
-extern const char NS_VOICEMAIL[];
-extern const buzz::StaticQName QN_VOICEMAIL_REGARDING;
-#endif
-
 // RFC 4145, SDP setup attribute values.
 extern const char CONNECTIONROLE_ACTIVE_STR[];
 extern const char CONNECTIONROLE_PASSIVE_STR[];
diff --git a/p2p/base/p2ptransport.cc b/p2p/base/p2ptransport.cc
index c4cea5f..89586f9 100644
--- a/p2p/base/p2ptransport.cc
+++ b/p2p/base/p2ptransport.cc
@@ -12,14 +12,11 @@
 
 #include <string>
 
-#include "webrtc/p2p/base/p2ptransportchannel.h"
-#include "webrtc/libjingle/xmllite/qname.h"
-#include "webrtc/libjingle/xmllite/xmlelement.h"
-#include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/base/base64.h"
 #include "webrtc/base/common.h"
 #include "webrtc/base/stringencode.h"
 #include "webrtc/base/stringutils.h"
+#include "webrtc/p2p/base/p2ptransportchannel.h"
 
 namespace cricket {
 
diff --git a/p2p/base/sessiondescription.cc b/p2p/base/sessiondescription.cc
index b05dc51..5320b05 100644
--- a/p2p/base/sessiondescription.cc
+++ b/p2p/base/sessiondescription.cc
@@ -10,8 +10,6 @@
 
 #include "webrtc/p2p/base/sessiondescription.h"
 
-#include "webrtc/libjingle/xmllite/xmlelement.h"
-
 namespace cricket {
 
 ContentInfo* FindContentInfoByName(
diff --git a/p2p/base/sessionmanager.cc b/p2p/base/sessionmanager.cc
deleted file mode 100644
index a7cf322..0000000
--- a/p2p/base/sessionmanager.cc
+++ /dev/null
@@ -1 +0,0 @@
-// TODO(pthatcher): Delete this file once Chromium no longer trys to build it.
diff --git a/p2p/base/sessionmanager.h b/p2p/base/sessionmanager.h
deleted file mode 100644
index a7cf322..0000000
--- a/p2p/base/sessionmanager.h
+++ /dev/null
@@ -1 +0,0 @@
-// TODO(pthatcher): Delete this file once Chromium no longer trys to build it.
diff --git a/p2p/client/autoportallocator.h b/p2p/client/autoportallocator.h
index 5df1f0d..7856510 100644
--- a/p2p/client/autoportallocator.h
+++ b/p2p/client/autoportallocator.h
@@ -15,8 +15,6 @@
 #include <vector>
 
 #include "webrtc/p2p/client/httpportallocator.h"
-#include "webrtc/libjingle/xmpp/jingleinfotask.h"
-#include "webrtc/libjingle/xmpp/xmppclient.h"
 #include "webrtc/base/sigslot.h"
 
 // This class sets the relay and stun servers using XmppClient.
diff --git a/p2p/p2p.gyp b/p2p/p2p.gyp
index eaae625..4de6b21 100644
--- a/p2p/p2p.gyp
+++ b/p2p/p2p.gyp
@@ -14,15 +14,10 @@
       'type': 'static_library',
       'dependencies': [
         '<(webrtc_root)/base/base.gyp:webrtc_base',
-        '<(webrtc_root)/libjingle/xmpp/xmpp.gyp:rtc_xmpp',
-        '<(DEPTH)/third_party/expat/expat.gyp:expat',
       ],
       'cflags_cc!': [
         '-Wnon-virtual-dtor',
       ],
-      'export_dependent_settings': [
-        '<(DEPTH)/third_party/expat/expat.gyp:expat',
-      ],
       'sources': [
         'base/asyncstuntcpsocket.cc',
         'base/asyncstuntcpsocket.h',
@@ -39,8 +34,6 @@
         'base/p2ptransportchannel.cc',
         'base/p2ptransportchannel.h',
         'base/packetsocketfactory.h',
-        'base/parsing.cc',
-        'base/parsing.h',
         'base/port.cc',
         'base/port.h',
         'base/portallocator.cc',
@@ -62,12 +55,9 @@
         'base/relayserver.h',
         'base/session.cc',
         'base/session.h',
-        'base/sessionclient.h',
         'base/sessiondescription.cc',
         'base/sessiondescription.h',
         'base/sessionid.h',
-        'base/sessionmessages.cc',
-        'base/sessionmessages.h',
         'base/stun.cc',
         'base/stun.h',
         'base/stunport.cc',
@@ -102,8 +92,6 @@
         'client/connectivitychecker.h',
         'client/httpportallocator.cc',
         'client/httpportallocator.h',
-        'client/sessionmanagertask.h',
-        'client/sessionsendtask.h',
         'client/socketmonitor.cc',
         'client/socketmonitor.h',
       ],