Revert r7886:7887.

Broke build steps in other code that uses securetunnelsessionclient.cc
and others.

TBR=tommi@webrtc.org,pthatcher@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7890 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/all.gyp b/all.gyp
index 1a7ce5a..2280c03 100644
--- a/all.gyp
+++ b/all.gyp
@@ -21,7 +21,6 @@
         'webrtc/webrtc.gyp:*',
         '<(libjingle_root)/talk/libjingle.gyp:*',
         '<(libjingle_root)/talk/libjingle_examples.gyp:*',
-	'webrtc/libjingle/libjingle.gyp:*',
         '<@(webrtc_root_additional_dependencies)',
       ],
       'conditions': [
diff --git a/talk/app/webrtc/webrtcsdp.cc b/talk/app/webrtc/webrtcsdp.cc
index 6e4fa6f..226b8b0 100644
--- a/talk/app/webrtc/webrtcsdp.cc
+++ b/talk/app/webrtc/webrtcsdp.cc
@@ -43,7 +43,7 @@
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/base/port.h"
 #include "talk/session/media/mediasession.h"
-#include "webrtc/libjingle/media/mediasessionclient.h"
+#include "talk/session/media/mediasessionclient.h"
 #include "webrtc/base/common.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/messagedigest.h"
diff --git a/webrtc/libjingle/examples/call/Info.plist b/talk/examples/call/Info.plist
similarity index 100%
rename from webrtc/libjingle/examples/call/Info.plist
rename to talk/examples/call/Info.plist
diff --git a/webrtc/libjingle/examples/call/call_main.cc b/talk/examples/call/call_main.cc
similarity index 99%
rename from webrtc/libjingle/examples/call/call_main.cc
rename to talk/examples/call/call_main.cc
index 7cdea85..638f6f9 100644
--- a/webrtc/libjingle/examples/call/call_main.cc
+++ b/talk/examples/call/call_main.cc
@@ -42,7 +42,7 @@
 #include "talk/examples/call/console.h"
 #include "talk/examples/call/mediaenginefactory.h"
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/libjingle/media/mediasessionclient.h"
+#include "talk/session/media/mediasessionclient.h"
 #include "talk/session/media/srtpfilter.h"
 #include "webrtc/libjingle/xmpp/xmppauth.h"
 #include "webrtc/libjingle/xmpp/xmppclientsettings.h"
diff --git a/webrtc/libjingle/examples/call/call_unittest.cc b/talk/examples/call/call_unittest.cc
similarity index 100%
rename from webrtc/libjingle/examples/call/call_unittest.cc
rename to talk/examples/call/call_unittest.cc
diff --git a/webrtc/libjingle/examples/call/callclient.cc b/talk/examples/call/callclient.cc
similarity index 99%
rename from webrtc/libjingle/examples/call/callclient.cc
rename to talk/examples/call/callclient.cc
index 6eae983..866133e 100644
--- a/webrtc/libjingle/examples/call/callclient.cc
+++ b/talk/examples/call/callclient.cc
@@ -53,11 +53,11 @@
 #include "talk/media/base/videorenderer.h"
 #include "talk/media/devices/devicemanager.h"
 #include "talk/media/devices/videorendererfactory.h"
-#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmanager.h"
 #include "webrtc/p2p/client/basicportallocator.h"
 #include "webrtc/p2p/client/sessionmanagertask.h"
-#include "webrtc/libjingle/media/mediamessages.h"
-#include "webrtc/libjingle/media/mediasessionclient.h"
+#include "talk/session/media/mediamessages.h"
+#include "talk/session/media/mediasessionclient.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/libjingle/xmpp/hangoutpubsubclient.h"
 #include "webrtc/libjingle/xmpp/mucroomconfigtask.h"
diff --git a/webrtc/libjingle/examples/call/callclient.h b/talk/examples/call/callclient.h
similarity index 98%
rename from webrtc/libjingle/examples/call/callclient.h
rename to talk/examples/call/callclient.h
index ac427b4..075dc6e 100644
--- a/webrtc/libjingle/examples/call/callclient.h
+++ b/talk/examples/call/callclient.h
@@ -35,8 +35,8 @@
 #include "talk/examples/call/console.h"
 #include "talk/media/base/mediachannel.h"
 #include "webrtc/p2p/base/session.h"
-#include "webrtc/libjingle/media/mediamessages.h"
-#include "webrtc/libjingle/media/mediasessionclient.h"
+#include "talk/session/media/mediamessages.h"
+#include "talk/session/media/mediasessionclient.h"
 #include "webrtc/libjingle/xmpp/hangoutpubsubclient.h"
 #include "webrtc/libjingle/xmpp/presencestatus.h"
 #include "webrtc/libjingle/xmpp/xmppclient.h"
diff --git a/webrtc/libjingle/examples/call/callclient_unittest.cc b/talk/examples/call/callclient_unittest.cc
similarity index 100%
rename from webrtc/libjingle/examples/call/callclient_unittest.cc
rename to talk/examples/call/callclient_unittest.cc
diff --git a/webrtc/libjingle/examples/call/console.cc b/talk/examples/call/console.cc
similarity index 100%
rename from webrtc/libjingle/examples/call/console.cc
rename to talk/examples/call/console.cc
diff --git a/webrtc/libjingle/examples/call/console.h b/talk/examples/call/console.h
similarity index 100%
rename from webrtc/libjingle/examples/call/console.h
rename to talk/examples/call/console.h
diff --git a/webrtc/libjingle/examples/call/friendinvitesendtask.cc b/talk/examples/call/friendinvitesendtask.cc
similarity index 100%
rename from webrtc/libjingle/examples/call/friendinvitesendtask.cc
rename to talk/examples/call/friendinvitesendtask.cc
diff --git a/webrtc/libjingle/examples/call/friendinvitesendtask.h b/talk/examples/call/friendinvitesendtask.h
similarity index 100%
rename from webrtc/libjingle/examples/call/friendinvitesendtask.h
rename to talk/examples/call/friendinvitesendtask.h
diff --git a/webrtc/libjingle/examples/call/mediaenginefactory.cc b/talk/examples/call/mediaenginefactory.cc
similarity index 100%
rename from webrtc/libjingle/examples/call/mediaenginefactory.cc
rename to talk/examples/call/mediaenginefactory.cc
diff --git a/webrtc/libjingle/examples/call/mediaenginefactory.h b/talk/examples/call/mediaenginefactory.h
similarity index 100%
rename from webrtc/libjingle/examples/call/mediaenginefactory.h
rename to talk/examples/call/mediaenginefactory.h
diff --git a/webrtc/libjingle/examples/call/muc.h b/talk/examples/call/muc.h
similarity index 100%
rename from webrtc/libjingle/examples/call/muc.h
rename to talk/examples/call/muc.h
diff --git a/webrtc/libjingle/examples/call/mucinviterecvtask.cc b/talk/examples/call/mucinviterecvtask.cc
similarity index 100%
rename from webrtc/libjingle/examples/call/mucinviterecvtask.cc
rename to talk/examples/call/mucinviterecvtask.cc
diff --git a/webrtc/libjingle/examples/call/mucinviterecvtask.h b/talk/examples/call/mucinviterecvtask.h
similarity index 100%
rename from webrtc/libjingle/examples/call/mucinviterecvtask.h
rename to talk/examples/call/mucinviterecvtask.h
diff --git a/webrtc/libjingle/examples/call/mucinvitesendtask.cc b/talk/examples/call/mucinvitesendtask.cc
similarity index 100%
rename from webrtc/libjingle/examples/call/mucinvitesendtask.cc
rename to talk/examples/call/mucinvitesendtask.cc
diff --git a/webrtc/libjingle/examples/call/mucinvitesendtask.h b/talk/examples/call/mucinvitesendtask.h
similarity index 100%
rename from webrtc/libjingle/examples/call/mucinvitesendtask.h
rename to talk/examples/call/mucinvitesendtask.h
diff --git a/webrtc/libjingle/examples/call/presencepushtask.cc b/talk/examples/call/presencepushtask.cc
similarity index 100%
rename from webrtc/libjingle/examples/call/presencepushtask.cc
rename to talk/examples/call/presencepushtask.cc
diff --git a/webrtc/libjingle/examples/call/presencepushtask.h b/talk/examples/call/presencepushtask.h
similarity index 100%
rename from webrtc/libjingle/examples/call/presencepushtask.h
rename to talk/examples/call/presencepushtask.h
diff --git a/webrtc/libjingle/examples/login/login_main.cc b/talk/examples/login/login_main.cc
similarity index 100%
rename from webrtc/libjingle/examples/login/login_main.cc
rename to talk/examples/login/login_main.cc
diff --git a/talk/libjingle.gyp b/talk/libjingle.gyp
index 56d29af..49c8d79 100755
--- a/talk/libjingle.gyp
+++ b/talk/libjingle.gyp
@@ -585,22 +585,34 @@
         ],
       },
       'sources': [
+        'session/tunnel/pseudotcpchannel.cc',
+        'session/tunnel/pseudotcpchannel.h',
+        'session/tunnel/tunnelsessionclient.cc',
+        'session/tunnel/tunnelsessionclient.h',
+        'session/tunnel/securetunnelsessionclient.cc',
+        'session/tunnel/securetunnelsessionclient.h',
         'session/media/audiomonitor.cc',
         'session/media/audiomonitor.h',
         'session/media/bundlefilter.cc',
         'session/media/bundlefilter.h',
+        'session/media/call.cc',
+        'session/media/call.h',
         'session/media/channel.cc',
         'session/media/channel.h',
         'session/media/channelmanager.cc',
         'session/media/channelmanager.h',
         'session/media/currentspeakermonitor.cc',
         'session/media/currentspeakermonitor.h',
+        'session/media/mediamessages.cc',
+        'session/media/mediamessages.h',
         'session/media/mediamonitor.cc',
         'session/media/mediamonitor.h',
         'session/media/mediarecorder.cc',
         'session/media/mediarecorder.h',
         'session/media/mediasession.cc',
         'session/media/mediasession.h',
+        'session/media/mediasessionclient.cc',
+        'session/media/mediasessionclient.h',
         'session/media/mediasink.h',
         'session/media/rtcpmuxfilter.cc',
         'session/media/rtcpmuxfilter.h',
diff --git a/talk/libjingle_examples.gyp b/talk/libjingle_examples.gyp
index 687e11f..75bc2f7 100755
--- a/talk/libjingle_examples.gyp
+++ b/talk/libjingle_examples.gyp
@@ -31,6 +31,19 @@
   ],
   'targets': [
     {
+      'target_name': 'libjingle_xmpphelp',
+      'type': 'static_library',
+      'dependencies': [
+        '<(DEPTH)/third_party/expat/expat.gyp:expat',
+        'libjingle.gyp:libjingle',
+        'libjingle.gyp:libjingle_p2p',
+      ],
+      'sources': [
+        '<(webrtc_root)/libjingle/xmpp/jingleinfotask.cc',
+        '<(webrtc_root)/libjingle/xmpp/jingleinfotask.h',
+      ],
+    },  # target libjingle_xmpphelp
+    {
       'target_name': 'relayserver',
       'type': 'executable',
       'dependencies': [
@@ -64,6 +77,16 @@
       ],
     },  # target turnserver
     {
+      'target_name': 'login',
+      'type': 'executable',
+      'dependencies': [
+        'libjingle_xmpphelp',
+      ],
+      'sources': [
+        'examples/login/login_main.cc',
+      ],
+    },  # target login
+    {
       'target_name': 'peerconnection_server',
       'type': 'executable',
       'sources': [
@@ -83,6 +106,56 @@
     }, # target peerconnection_server
   ],
   'conditions': [
+    # TODO(ronghuawu): Reenable building call.
+    # ['OS!="android"', {
+    #   'targets': [
+    #     {
+    #       'target_name': 'call',
+    #       'type': 'executable',
+    #       'dependencies': [
+    #         'libjingle.gyp:libjingle_p2p',
+    #         'libjingle_xmpphelp',
+    #       ],
+    #       'sources': [
+    #         'examples/call/call_main.cc',
+    #         'examples/call/callclient.cc',
+    #         'examples/call/callclient.h',
+    #         'examples/call/console.cc',
+    #         'examples/call/console.h',
+    #         'examples/call/friendinvitesendtask.cc',
+    #         'examples/call/friendinvitesendtask.h',
+    #         'examples/call/mediaenginefactory.cc',
+    #         'examples/call/mediaenginefactory.h',
+    #         'examples/call/muc.h',
+    #         'examples/call/mucinviterecvtask.cc',
+    #         'examples/call/mucinviterecvtask.h',
+    #         'examples/call/mucinvitesendtask.cc',
+    #         'examples/call/mucinvitesendtask.h',
+    #         'examples/call/presencepushtask.cc',
+    #         'examples/call/presencepushtask.h',
+    #       ],
+    #       'conditions': [
+    #         ['OS=="linux"', {
+    #           'link_settings': {
+    #             'libraries': [
+    #               '<!@(pkg-config --libs-only-l gobject-2.0 gthread-2.0'
+    #                   ' gtk+-2.0)',
+    #             ],
+    #           },
+    #         }],
+    #         ['OS=="win"', {
+    #           'msvs_settings': {
+    #             'VCLinkerTool': {
+    #               'AdditionalDependencies': [
+    #                 'strmiids.lib',
+    #               ],
+    #             },
+    #           },
+    #         }],
+    #       ],  # conditions
+    #     },  # target call
+    #   ], # targets
+    # }],  # OS!="android"
     ['OS=="linux" or OS=="win"', {
       'targets': [
         {
diff --git a/talk/libjingle_tests.gyp b/talk/libjingle_tests.gyp
index b59a7ef..3410737 100755
--- a/talk/libjingle_tests.gyp
+++ b/talk/libjingle_tests.gyp
@@ -167,7 +167,9 @@
         'session/media/channelmanager_unittest.cc',
         'session/media/currentspeakermonitor_unittest.cc',
         'session/media/mediarecorder_unittest.cc',
+        'session/media/mediamessages_unittest.cc',
         'session/media/mediasession_unittest.cc',
+        'session/media/mediasessionclient_unittest.cc',
         'session/media/rtcpmuxfilter_unittest.cc',
         'session/media/srtpfilter_unittest.cc',
       ],
diff --git a/webrtc/libjingle/media/call.cc b/talk/session/media/call.cc
similarity index 99%
rename from webrtc/libjingle/media/call.cc
rename to talk/session/media/call.cc
index f42ec30..784be94 100644
--- a/webrtc/libjingle/media/call.cc
+++ b/talk/session/media/call.cc
@@ -28,10 +28,10 @@
 #include <string>
 #include "talk/media/base/constants.h"
 #include "talk/media/base/screencastid.h"
-#include "webrtc/libjingle/session/parsing.h"
-#include "webrtc/libjingle/media/call.h"
+#include "webrtc/p2p/base/parsing.h"
+#include "talk/session/media/call.h"
 #include "talk/session/media/currentspeakermonitor.h"
-#include "webrtc/libjingle/media/mediasessionclient.h"
+#include "talk/session/media/mediasessionclient.h"
 #include "webrtc/base/helpers.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/thread.h"
diff --git a/webrtc/libjingle/media/call.h b/talk/session/media/call.h
similarity index 99%
rename from webrtc/libjingle/media/call.h
rename to talk/session/media/call.h
index f7bd57e..f992043 100644
--- a/webrtc/libjingle/media/call.h
+++ b/talk/session/media/call.h
@@ -41,7 +41,7 @@
 #include "webrtc/p2p/client/socketmonitor.h"
 #include "talk/session/media/audiomonitor.h"
 #include "talk/session/media/currentspeakermonitor.h"
-#include "webrtc/libjingle/media/mediamessages.h"
+#include "talk/session/media/mediamessages.h"
 #include "talk/session/media/mediasession.h"
 #include "webrtc/libjingle/xmpp/jid.h"
 #include "webrtc/base/messagequeue.h"
diff --git a/talk/session/media/channel.cc b/talk/session/media/channel.cc
index 5cc37db..414a131 100644
--- a/talk/session/media/channel.cc
+++ b/talk/session/media/channel.cc
@@ -31,7 +31,7 @@
 #include "talk/media/base/rtputils.h"
 #include "webrtc/p2p/base/transportchannel.h"
 #include "talk/session/media/channelmanager.h"
-#include "webrtc/libjingle/media/mediamessages.h"
+#include "talk/session/media/mediamessages.h"
 #include "talk/session/media/typingmonitor.h"
 #include "webrtc/base/bind.h"
 #include "webrtc/base/buffer.h"
diff --git a/talk/session/media/channel_unittest.cc b/talk/session/media/channel_unittest.cc
index 772eb12..0fba14e 100644
--- a/talk/session/media/channel_unittest.cc
+++ b/talk/session/media/channel_unittest.cc
@@ -33,9 +33,9 @@
 #include "talk/media/base/testutils.h"
 #include "webrtc/p2p/base/fakesession.h"
 #include "talk/session/media/channel.h"
-#include "webrtc/libjingle/media/mediamessages.h"
+#include "talk/session/media/mediamessages.h"
 #include "talk/session/media/mediarecorder.h"
-#include "webrtc/libjingle/media/mediasessionclient.h"
+#include "talk/session/media/mediasessionclient.h"
 #include "talk/session/media/typingmonitor.h"
 #include "webrtc/base/fileutils.h"
 #include "webrtc/base/gunit.h"
diff --git a/talk/session/media/currentspeakermonitor.cc b/talk/session/media/currentspeakermonitor.cc
index c902abd..472acfe 100644
--- a/talk/session/media/currentspeakermonitor.cc
+++ b/talk/session/media/currentspeakermonitor.cc
@@ -29,7 +29,7 @@
 
 #include "talk/media/base/streamparams.h"
 #include "talk/session/media/audiomonitor.h"
-#include "webrtc/libjingle/media/mediamessages.h"
+#include "talk/session/media/mediamessages.h"
 #include "webrtc/base/logging.h"
 
 namespace cricket {
diff --git a/talk/session/media/currentspeakermonitor_unittest.cc b/talk/session/media/currentspeakermonitor_unittest.cc
index 6a99973..63676f9 100644
--- a/talk/session/media/currentspeakermonitor_unittest.cc
+++ b/talk/session/media/currentspeakermonitor_unittest.cc
@@ -25,7 +25,7 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "talk/session/media/audiomonitor.h"
+#include "talk/session/media/call.h"
 #include "talk/session/media/currentspeakermonitor.h"
 #include "webrtc/base/gunit.h"
 #include "webrtc/base/thread.h"
@@ -42,11 +42,21 @@
 // I am assuming system clocks do not have a coarser resolution than 90 ms.
 static const uint32 kSleepTimeBetweenSwitches = 100;
 
+class MockCall : public Call {
+ public:
+  MockCall() : Call(NULL) {}
+
+  void EmitAudioMonitor(const AudioInfo& info) {
+    GetAudioSourceProxy()->SignalAudioMonitor(GetAudioSourceProxy(), info);
+  }
+};
+
 class CurrentSpeakerMonitorTest : public testing::Test,
     public sigslot::has_slots<> {
  public:
   CurrentSpeakerMonitorTest() {
-    monitor_ = new CurrentSpeakerMonitor(&source_, NULL);
+    call_ = new MockCall();
+    monitor_ = new CurrentSpeakerMonitor(call_->GetAudioSourceProxy(), NULL);
     // Shrink the minimum time betweeen switches to 10 ms so we don't have to
     // slow down our tests.
     monitor_->set_min_time_between_switches(kMinTimeBetweenSwitches);
@@ -58,14 +68,11 @@
 
   ~CurrentSpeakerMonitorTest() {
     delete monitor_;
-  }
-
-  void SignalAudioMonitor(const AudioInfo& info) {
-    source_.SignalAudioMonitor(&source_, info);
+    delete call_;
   }
 
  protected:
-  AudioSourceContext source_;
+  MockCall* call_;
   CurrentSpeakerMonitor* monitor_;
   int num_changes_;
   uint32 current_speaker_;
@@ -84,7 +91,7 @@
 TEST_F(CurrentSpeakerMonitorTest, NoActiveStreams) {
   AudioInfo info;
   InitAudioInfo(&info, 0, 0);
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, 0U);
   EXPECT_EQ(num_changes_, 0);
@@ -96,7 +103,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   // No speaker recognized because the initial sample is treated as possibly
   // just noise and disregarded.
@@ -105,7 +112,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, kSsrc2);
   EXPECT_EQ(num_changes_, 1);
@@ -118,21 +125,21 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, 0U);
   EXPECT_EQ(num_changes_, 0);
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, kSsrc2);
   EXPECT_EQ(num_changes_, 1);
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 9));
   info.active_streams.push_back(std::make_pair(kSsrc2, 1));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   // We expect no speaker change because of the rapid change.
   EXPECT_EQ(current_speaker_, kSsrc2);
@@ -145,14 +152,14 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, 0U);
   EXPECT_EQ(num_changes_, 0);
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, kSsrc2);
   EXPECT_EQ(num_changes_, 1);
@@ -162,7 +169,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 9));
   info.active_streams.push_back(std::make_pair(kSsrc2, 1));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, kSsrc1);
   EXPECT_EQ(num_changes_, 2);
@@ -174,21 +181,21 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, 0U);
   EXPECT_EQ(num_changes_, 0);
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, kSsrc2);
   EXPECT_EQ(num_changes_, 1);
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, kSsrc2);
   EXPECT_EQ(num_changes_, 1);
@@ -198,7 +205,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 0));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   // Current speaker shouldn't have changed because we treat this as an inter-
   // word silence.
@@ -207,7 +214,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 0));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   // Current speaker shouldn't have changed because we treat this as an inter-
   // word silence.
@@ -216,7 +223,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 0));
-  SignalAudioMonitor(info);
+  call_->EmitAudioMonitor(info);
 
   // At this point, we should have concluded that SSRC2 stopped speaking.
   EXPECT_EQ(current_speaker_, kSsrc1);
diff --git a/webrtc/libjingle/media/mediamessages.cc b/talk/session/media/mediamessages.cc
similarity index 98%
rename from webrtc/libjingle/media/mediamessages.cc
rename to talk/session/media/mediamessages.cc
index 14bf2f6..011fd7d 100644
--- a/webrtc/libjingle/media/mediamessages.cc
+++ b/talk/session/media/mediamessages.cc
@@ -29,11 +29,11 @@
  * Documentation is in mediamessages.h.
  */
 
-#include "webrtc/libjingle/media/mediamessages.h"
+#include "talk/session/media/mediamessages.h"
 
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/libjingle/session/parsing.h"
-#include "webrtc/libjingle/media/mediasessionclient.h"
+#include "webrtc/p2p/base/parsing.h"
+#include "talk/session/media/mediasessionclient.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/stringencode.h"
diff --git a/webrtc/libjingle/media/mediamessages.h b/talk/session/media/mediamessages.h
similarity index 98%
rename from webrtc/libjingle/media/mediamessages.h
rename to talk/session/media/mediamessages.h
index 895eac9..d918e3e 100644
--- a/webrtc/libjingle/media/mediamessages.h
+++ b/talk/session/media/mediamessages.h
@@ -41,7 +41,7 @@
 
 #include "talk/media/base/mediachannel.h"  // For RtpHeaderExtension
 #include "talk/media/base/streamparams.h"
-#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/p2p/base/parsing.h"
 #include "webrtc/p2p/base/sessiondescription.h"
 #include "webrtc/base/basictypes.h"
 
diff --git a/webrtc/libjingle/media/mediamessages_unittest.cc b/talk/session/media/mediamessages_unittest.cc
similarity index 98%
rename from webrtc/libjingle/media/mediamessages_unittest.cc
rename to talk/session/media/mediamessages_unittest.cc
index b075cc7..a9f00e4 100644
--- a/webrtc/libjingle/media/mediamessages_unittest.cc
+++ b/talk/session/media/mediamessages_unittest.cc
@@ -25,13 +25,13 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "webrtc/libjingle/media/mediamessages.h"
+#include "talk/session/media/mediamessages.h"
 
 #include <string>
 #include <vector>
 
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/libjingle/media/mediasessionclient.h"
+#include "talk/session/media/mediasessionclient.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/base/gunit.h"
 #include "webrtc/base/scoped_ptr.h"
diff --git a/webrtc/libjingle/media/mediasessionclient.cc b/talk/session/media/mediasessionclient.cc
similarity index 99%
rename from webrtc/libjingle/media/mediasessionclient.cc
rename to talk/session/media/mediasessionclient.cc
index efa8cf3..5cb7917 100644
--- a/webrtc/libjingle/media/mediasessionclient.cc
+++ b/talk/session/media/mediasessionclient.cc
@@ -27,14 +27,14 @@
 
 #include <string>
 
-#include "webrtc/libjingle/media/mediasessionclient.h"
+#include "talk/session/media/mediasessionclient.h"
 
 #include "talk/media/base/capturemanager.h"
 #include "talk/media/base/cryptoparams.h"
 #include "talk/media/sctp/sctpdataengine.h"
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/libjingle/session/parsing.h"
-#include "webrtc/libjingle/media/mediamessages.h"
+#include "webrtc/p2p/base/parsing.h"
+#include "talk/session/media/mediamessages.h"
 #include "talk/session/media/srtpfilter.h"
 #include "webrtc/libjingle/xmllite/qname.h"
 #include "webrtc/libjingle/xmllite/xmlconstants.h"
diff --git a/webrtc/libjingle/media/mediasessionclient.h b/talk/session/media/mediasessionclient.h
similarity index 97%
rename from webrtc/libjingle/media/mediasessionclient.h
rename to talk/session/media/mediasessionclient.h
index 23956e8..c66c221 100644
--- a/webrtc/libjingle/media/mediasessionclient.h
+++ b/talk/session/media/mediasessionclient.h
@@ -34,10 +34,10 @@
 #include <vector>
 #include "talk/media/base/cryptoparams.h"
 #include "webrtc/p2p/base/session.h"
-#include "webrtc/libjingle/session/sessionclient.h"
+#include "webrtc/p2p/base/sessionclient.h"
 #include "webrtc/p2p/base/sessiondescription.h"
-#include "webrtc/libjingle/session/sessionmanager.h"
-#include "webrtc/libjingle/media/call.h"
+#include "webrtc/p2p/base/sessionmanager.h"
+#include "talk/session/media/call.h"
 #include "talk/session/media/channelmanager.h"
 #include "talk/session/media/mediasession.h"
 #include "webrtc/base/messagequeue.h"
diff --git a/webrtc/libjingle/media/mediasessionclient_unittest.cc b/talk/session/media/mediasessionclient_unittest.cc
similarity index 99%
rename from webrtc/libjingle/media/mediasessionclient_unittest.cc
rename to talk/session/media/mediasessionclient_unittest.cc
index fb4eb0a..eb052ef 100644
--- a/webrtc/libjingle/media/mediasessionclient_unittest.cc
+++ b/talk/session/media/mediasessionclient_unittest.cc
@@ -33,7 +33,7 @@
 #include "talk/media/devices/fakedevicemanager.h"
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/client/basicportallocator.h"
-#include "webrtc/libjingle/media/mediasessionclient.h"
+#include "talk/session/media/mediasessionclient.h"
 #include "webrtc/libjingle/xmllite/xmlbuilder.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmllite/xmlprinter.h"
diff --git a/webrtc/libjingle/tunnel/pseudotcpchannel.cc b/talk/session/tunnel/pseudotcpchannel.cc
similarity index 100%
rename from webrtc/libjingle/tunnel/pseudotcpchannel.cc
rename to talk/session/tunnel/pseudotcpchannel.cc
diff --git a/webrtc/libjingle/tunnel/pseudotcpchannel.h b/talk/session/tunnel/pseudotcpchannel.h
similarity index 100%
rename from webrtc/libjingle/tunnel/pseudotcpchannel.h
rename to talk/session/tunnel/pseudotcpchannel.h
diff --git a/webrtc/libjingle/tunnel/securetunnelsessionclient.cc b/talk/session/tunnel/securetunnelsessionclient.cc
similarity index 98%
rename from webrtc/libjingle/tunnel/securetunnelsessionclient.cc
rename to talk/session/tunnel/securetunnelsessionclient.cc
index a9e676a..4ed8185 100644
--- a/webrtc/libjingle/tunnel/securetunnelsessionclient.cc
+++ b/talk/session/tunnel/securetunnelsessionclient.cc
@@ -28,8 +28,8 @@
 // SecureTunnelSessionClient and SecureTunnelSession implementation.
 
 #include "webrtc/p2p/base/transportchannel.h"
-#include "webrtc/libjingle/tunnel/pseudotcpchannel.h"
-#include "webrtc/libjingle/tunnel/securetunnelsessionclient.h"
+#include "talk/session/tunnel/pseudotcpchannel.h"
+#include "talk/session/tunnel/securetunnelsessionclient.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/base/basicdefs.h"
 #include "webrtc/base/basictypes.h"
diff --git a/webrtc/libjingle/tunnel/securetunnelsessionclient.h b/talk/session/tunnel/securetunnelsessionclient.h
similarity index 98%
rename from webrtc/libjingle/tunnel/securetunnelsessionclient.h
rename to talk/session/tunnel/securetunnelsessionclient.h
index 414aaf5..15202a1 100644
--- a/webrtc/libjingle/tunnel/securetunnelsessionclient.h
+++ b/talk/session/tunnel/securetunnelsessionclient.h
@@ -36,7 +36,7 @@
 
 #include <string>
 
-#include "webrtc/libjingle/tunnel/tunnelsessionclient.h"
+#include "talk/session/tunnel/tunnelsessionclient.h"
 #include "webrtc/base/sslidentity.h"
 #include "webrtc/base/sslstreamadapter.h"
 
diff --git a/webrtc/libjingle/tunnel/tunnelsessionclient.cc b/talk/session/tunnel/tunnelsessionclient.cc
similarity index 100%
rename from webrtc/libjingle/tunnel/tunnelsessionclient.cc
rename to talk/session/tunnel/tunnelsessionclient.cc
diff --git a/webrtc/libjingle/tunnel/tunnelsessionclient.h b/talk/session/tunnel/tunnelsessionclient.h
similarity index 98%
rename from webrtc/libjingle/tunnel/tunnelsessionclient.h
rename to talk/session/tunnel/tunnelsessionclient.h
index 4fc2519..87beaed 100644
--- a/webrtc/libjingle/tunnel/tunnelsessionclient.h
+++ b/talk/session/tunnel/tunnelsessionclient.h
@@ -33,9 +33,9 @@
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/base/pseudotcp.h"
 #include "webrtc/p2p/base/session.h"
-#include "webrtc/libjingle/session/sessionclient.h"
+#include "webrtc/p2p/base/sessionclient.h"
 #include "webrtc/p2p/base/sessiondescription.h"
-#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmanager.h"
 #include "webrtc/libjingle/xmllite/qname.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/base/criticalsection.h"
diff --git a/webrtc/libjingle/tunnel/tunnelsessionclient_unittest.cc b/talk/session/tunnel/tunnelsessionclient_unittest.cc
similarity index 98%
rename from webrtc/libjingle/tunnel/tunnelsessionclient_unittest.cc
rename to talk/session/tunnel/tunnelsessionclient_unittest.cc
index f646223..6bd746a 100644
--- a/webrtc/libjingle/tunnel/tunnelsessionclient_unittest.cc
+++ b/talk/session/tunnel/tunnelsessionclient_unittest.cc
@@ -26,10 +26,10 @@
  */
 
 #include <string>
-#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmanager.h"
 #include "webrtc/p2p/base/transport.h"
 #include "webrtc/p2p/client/fakeportallocator.h"
-#include "webrtc/libjingle/tunnel/tunnelsessionclient.h"
+#include "talk/session/tunnel/tunnelsessionclient.h"
 #include "webrtc/base/gunit.h"
 #include "webrtc/base/messagehandler.h"
 #include "webrtc/base/scoped_ptr.h"
diff --git a/webrtc/libjingle/libjingle.gyp b/webrtc/libjingle/libjingle.gyp
deleted file mode 100644
index 0789bb9..0000000
--- a/webrtc/libjingle/libjingle.gyp
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright (c) 2014 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.
-
-{
-  'includes': ['../build/common.gypi'],
-  'variables': {
-    'talk_root%': '<(webrtc_root)/../talk',
-  },
-  'targets': [
-    {
-      'target_name': 'jingle_session',
-      'type': 'static_library',
-      'dependencies': [
-        '<(talk_root)/libjingle.gyp:libjingle_media',
-        '<(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': [
-        'media/call.cc',
-        'media/call.h',
-        'media/mediasessionclient.cc',
-        'media/mediasessionclient.h',
-        'media/mediamessages.cc',
-        'media/mediamessages.h',
-        'session/sessionclient.h',
-        'session/sessionmanagertask.h',
-        'session/sessionsendtask.h',
-        'tunnel/pseudotcpchannel.cc',
-        'tunnel/pseudotcpchannel.h',
-        'tunnel/tunnelsessionclient.cc',
-        'tunnel/tunnelsessionclient.h',
-        'tunnel/securetunnelsessionclient.cc',
-        'tunnel/securetunnelsessionclient.h',
-      ],
-      'direct_dependent_settings': {
-        'cflags_cc!': [
-          '-Wnon-virtual-dtor',
-        ],
-        'defines': [
-          'FEATURE_ENABLE_VOICEMAIL',
-        ],
-      },
-      'conditions': [
-        ['build_with_chromium==0', {
-          'defines': [
-            'FEATURE_ENABLE_VOICEMAIL',
-            'FEATURE_ENABLE_PSTN',
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'jingle_unittest',
-      'type': 'executable',
-      'dependencies': [
-        'jingle_session',
-        '<(DEPTH)/third_party/libsrtp/libsrtp.gyp:libsrtp',
-        '<(webrtc_root)/base/base_tests.gyp:rtc_base_tests_utils',
-        '<(talk_root)/libjingle.gyp:libjingle',
-        '<(talk_root)/libjingle.gyp:libjingle_p2p',
-        '<(talk_root)/libjingle_tests.gyp:libjingle_unittest_main',
-      ],
-      'include_dirs': [
-        '<(DEPTH)/third_party/libsrtp/srtp',
-      ],
-      'sources': [
-        'media/mediamessages_unittest.cc',
-        'media/mediasessionclient_unittest.cc',
-      ],
-      'conditions': [
-        ['OS=="win"', {
-          'msvs_settings': {
-            'VCLinkerTool': {
-              'AdditionalDependencies': [
-                'strmiids.lib',
-              ],
-            },
-          },
-        }],
-      ],
-    },  # target jingle_p2p_unittest
-    {
-      'target_name': 'libjingle_xmpphelp',
-      'type': 'static_library',
-      'dependencies': [
-        '<(DEPTH)/third_party/expat/expat.gyp:expat',
-        '<(talk_root)/libjingle.gyp:libjingle',
-        '<(talk_root)/libjingle.gyp:libjingle_p2p',
-      ],
-      'sources': [
-        'xmpp/jingleinfotask.cc',
-        'xmpp/jingleinfotask.h',
-      ],
-    },  # target libjingle_xmpphelp
-    {
-      'target_name': 'login',
-      'type': 'executable',
-      'dependencies': [
-        'libjingle_xmpphelp',
-        '<(talk_root)/libjingle.gyp:libjingle',
-      ],
-      'sources': [
-        'examples/login/login_main.cc',
-      ],
-    },  # target login
-  ],
-  'conditions': [
-    # TODO(ronghuawu): Reenable building call.
-    # ['OS!="android"', {
-    #   'targets': [
-    #     {
-    #       'target_name': 'call',
-    #       'type': 'executable',
-    #       'dependencies': [
-    #         'libjingle.gyp:libjingle_p2p',
-    #         'libjingle_xmpphelp',
-    #       ],
-    #       'sources': [
-    #         'examples/call/call_main.cc',
-    #         'examples/call/callclient.cc',
-    #         'examples/call/callclient.h',
-    #         'examples/call/console.cc',
-    #         'examples/call/console.h',
-    #         'examples/call/friendinvitesendtask.cc',
-    #         'examples/call/friendinvitesendtask.h',
-    #         'examples/call/mediaenginefactory.cc',
-    #         'examples/call/mediaenginefactory.h',
-    #         'examples/call/muc.h',
-    #         'examples/call/mucinviterecvtask.cc',
-    #         'examples/call/mucinviterecvtask.h',
-    #         'examples/call/mucinvitesendtask.cc',
-    #         'examples/call/mucinvitesendtask.h',
-    #         'examples/call/presencepushtask.cc',
-    #         'examples/call/presencepushtask.h',
-    #       ],
-    #       'conditions': [
-    #         ['OS=="linux"', {
-    #           'link_settings': {
-    #             'libraries': [
-    #               '<!@(pkg-config --libs-only-l gobject-2.0 gthread-2.0'
-    #                   ' gtk+-2.0)',
-    #             ],
-    #           },
-    #         }],
-    #         ['OS=="win"', {
-    #           'msvs_settings': {
-    #             'VCLinkerTool': {
-    #               'AdditionalDependencies': [
-    #                 'strmiids.lib',
-    #               ],
-    #             },
-    #           },
-    #         }],
-    #       ],  # conditions
-    #     },  # target call
-    #   ], # targets
-    # }],  # OS!="android"
-  ],
-}
diff --git a/webrtc/libjingle/OWNERS b/webrtc/libjingle/xmllite/OWNERS
similarity index 100%
copy from webrtc/libjingle/OWNERS
copy to webrtc/libjingle/xmllite/OWNERS
diff --git a/webrtc/libjingle/OWNERS b/webrtc/libjingle/xmpp/OWNERS
similarity index 100%
rename from webrtc/libjingle/OWNERS
rename to webrtc/libjingle/xmpp/OWNERS
diff --git a/webrtc/p2p/base/p2ptransport.cc b/webrtc/p2p/base/p2ptransport.cc
index 8a2c5a3..e873756 100644
--- a/webrtc/p2p/base/p2ptransport.cc
+++ b/webrtc/p2p/base/p2ptransport.cc
@@ -15,9 +15,9 @@
 
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/base/p2ptransportchannel.h"
-#include "webrtc/libjingle/session/parsing.h"
-#include "webrtc/libjingle/session/sessionmanager.h"
-#include "webrtc/libjingle/session/sessionmessages.h"
+#include "webrtc/p2p/base/parsing.h"
+#include "webrtc/p2p/base/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmessages.h"
 #include "webrtc/libjingle/xmllite/qname.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
diff --git a/webrtc/libjingle/session/parsing.cc b/webrtc/p2p/base/parsing.cc
similarity index 98%
rename from webrtc/libjingle/session/parsing.cc
rename to webrtc/p2p/base/parsing.cc
index 9a6100a..04d7e79 100644
--- a/webrtc/libjingle/session/parsing.cc
+++ b/webrtc/p2p/base/parsing.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/p2p/base/parsing.h"
 
 #include <stdlib.h>
 #include <algorithm>
diff --git a/webrtc/libjingle/session/parsing.h b/webrtc/p2p/base/parsing.h
similarity index 100%
rename from webrtc/libjingle/session/parsing.h
rename to webrtc/p2p/base/parsing.h
diff --git a/webrtc/p2p/base/rawtransport.cc b/webrtc/p2p/base/rawtransport.cc
index 3d9d7a8..374ed98 100644
--- a/webrtc/p2p/base/rawtransport.cc
+++ b/webrtc/p2p/base/rawtransport.cc
@@ -11,10 +11,10 @@
 #include <string>
 #include <vector>
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/p2p/base/parsing.h"
 #include "webrtc/p2p/base/rawtransport.h"
 #include "webrtc/p2p/base/rawtransportchannel.h"
-#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmanager.h"
 #include "webrtc/libjingle/xmllite/qname.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
diff --git a/webrtc/p2p/base/rawtransportchannel.cc b/webrtc/p2p/base/rawtransportchannel.cc
index 50d084b..5779c6e 100644
--- a/webrtc/p2p/base/rawtransportchannel.cc
+++ b/webrtc/p2p/base/rawtransportchannel.cc
@@ -17,7 +17,7 @@
 #include "webrtc/p2p/base/portinterface.h"
 #include "webrtc/p2p/base/rawtransport.h"
 #include "webrtc/p2p/base/relayport.h"
-#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmanager.h"
 #include "webrtc/p2p/base/stunport.h"
 #include "webrtc/libjingle/xmllite/qname.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
diff --git a/webrtc/p2p/base/session.cc b/webrtc/p2p/base/session.cc
index 723edfe..9749b14 100644
--- a/webrtc/p2p/base/session.cc
+++ b/webrtc/p2p/base/session.cc
@@ -12,7 +12,7 @@
 
 #include "webrtc/p2p/base/dtlstransport.h"
 #include "webrtc/p2p/base/p2ptransport.h"
-#include "webrtc/libjingle/session/sessionclient.h"
+#include "webrtc/p2p/base/sessionclient.h"
 #include "webrtc/p2p/base/transport.h"
 #include "webrtc/p2p/base/transportchannelproxy.h"
 #include "webrtc/p2p/base/transportinfo.h"
diff --git a/webrtc/p2p/base/session.h b/webrtc/p2p/base/session.h
index 660b9c1..f5eaf41 100644
--- a/webrtc/p2p/base/session.h
+++ b/webrtc/p2p/base/session.h
@@ -16,11 +16,11 @@
 #include <string>
 #include <vector>
 
-#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/p2p/base/parsing.h"
 #include "webrtc/p2p/base/port.h"
-#include "webrtc/libjingle/session/sessionclient.h"
-#include "webrtc/libjingle/session/sessionmanager.h"
-#include "webrtc/libjingle/session/sessionmessages.h"
+#include "webrtc/p2p/base/sessionclient.h"
+#include "webrtc/p2p/base/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmessages.h"
 #include "webrtc/p2p/base/transport.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
diff --git a/webrtc/p2p/base/session_unittest.cc b/webrtc/p2p/base/session_unittest.cc
index 81a97f4..d6f94b2 100644
--- a/webrtc/p2p/base/session_unittest.cc
+++ b/webrtc/p2p/base/session_unittest.cc
@@ -17,13 +17,13 @@
 #include "webrtc/p2p/base/basicpacketsocketfactory.h"
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/base/p2ptransport.h"
-#include "webrtc/libjingle/session/parsing.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/session.h"
-#include "webrtc/libjingle/session/sessionclient.h"
-#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/p2p/base/sessionclient.h"
+#include "webrtc/p2p/base/sessionmanager.h"
 #include "webrtc/p2p/base/stunport.h"
 #include "webrtc/p2p/base/stunserver.h"
 #include "webrtc/p2p/base/transportchannel.h"
diff --git a/webrtc/libjingle/session/sessionclient.h b/webrtc/p2p/base/sessionclient.h
similarity index 100%
rename from webrtc/libjingle/session/sessionclient.h
rename to webrtc/p2p/base/sessionclient.h
diff --git a/webrtc/libjingle/session/sessionmanager.cc b/webrtc/p2p/base/sessionmanager.cc
similarity index 98%
rename from webrtc/libjingle/session/sessionmanager.cc
rename to webrtc/p2p/base/sessionmanager.cc
index 11a41ee..f375dea 100644
--- a/webrtc/libjingle/session/sessionmanager.cc
+++ b/webrtc/p2p/base/sessionmanager.cc
@@ -8,11 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmanager.h"
 
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/base/session.h"
-#include "webrtc/libjingle/session/sessionmessages.h"
+#include "webrtc/p2p/base/sessionmessages.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/libjingle/xmpp/jid.h"
 #include "webrtc/base/common.h"
diff --git a/webrtc/libjingle/session/sessionmanager.h b/webrtc/p2p/base/sessionmanager.h
similarity index 100%
rename from webrtc/libjingle/session/sessionmanager.h
rename to webrtc/p2p/base/sessionmanager.h
diff --git a/webrtc/libjingle/session/sessionmessages.cc b/webrtc/p2p/base/sessionmessages.cc
similarity index 99%
rename from webrtc/libjingle/session/sessionmessages.cc
rename to webrtc/p2p/base/sessionmessages.cc
index 45bb2cd..cc63673 100644
--- a/webrtc/libjingle/session/sessionmessages.cc
+++ b/webrtc/p2p/base/sessionmessages.cc
@@ -8,15 +8,15 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/libjingle/session/sessionmessages.h"
+#include "webrtc/p2p/base/sessionmessages.h"
 
 #include <stdio.h>
 #include <string>
 
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/base/p2ptransport.h"
-#include "webrtc/libjingle/session/parsing.h"
-#include "webrtc/libjingle/session/sessionclient.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"
diff --git a/webrtc/libjingle/session/sessionmessages.h b/webrtc/p2p/base/sessionmessages.h
similarity index 99%
rename from webrtc/libjingle/session/sessionmessages.h
rename to webrtc/p2p/base/sessionmessages.h
index 9a46203..7b156d4 100644
--- a/webrtc/libjingle/session/sessionmessages.h
+++ b/webrtc/p2p/base/sessionmessages.h
@@ -16,7 +16,7 @@
 #include <vector>
 
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/p2p/base/parsing.h"
 #include "webrtc/p2p/base/sessiondescription.h"  // Needed to delete contents.
 #include "webrtc/p2p/base/transportinfo.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
diff --git a/webrtc/p2p/base/transport.cc b/webrtc/p2p/base/transport.cc
index 12a2bb3..07b204c 100644
--- a/webrtc/p2p/base/transport.cc
+++ b/webrtc/p2p/base/transport.cc
@@ -12,9 +12,9 @@
 
 #include "webrtc/p2p/base/candidate.h"
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/p2p/base/parsing.h"
 #include "webrtc/p2p/base/port.h"
-#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmanager.h"
 #include "webrtc/p2p/base/transportchannelimpl.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
diff --git a/webrtc/p2p/base/transport_unittest.cc b/webrtc/p2p/base/transport_unittest.cc
index 8aa8721..e5d7aca 100644
--- a/webrtc/p2p/base/transport_unittest.cc
+++ b/webrtc/p2p/base/transport_unittest.cc
@@ -11,9 +11,9 @@
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/base/fakesession.h"
 #include "webrtc/p2p/base/p2ptransport.h"
-#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/p2p/base/parsing.h"
 #include "webrtc/p2p/base/rawtransport.h"
-#include "webrtc/libjingle/session/sessionmessages.h"
+#include "webrtc/p2p/base/sessionmessages.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/base/fakesslidentity.h"
diff --git a/webrtc/libjingle/session/sessionmanagertask.h b/webrtc/p2p/client/sessionmanagertask.h
similarity index 97%
rename from webrtc/libjingle/session/sessionmanagertask.h
rename to webrtc/p2p/client/sessionmanagertask.h
index d0a0a53..04d79d4 100644
--- a/webrtc/libjingle/session/sessionmanagertask.h
+++ b/webrtc/p2p/client/sessionmanagertask.h
@@ -11,7 +11,7 @@
 #ifndef WEBRTC_P2P_CLIENT_SESSIONMANAGERTASK_H_
 #define WEBRTC_P2P_CLIENT_SESSIONMANAGERTASK_H_
 
-#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmanager.h"
 #include "webrtc/p2p/client/sessionsendtask.h"
 #include "webrtc/libjingle/xmpp/xmppengine.h"
 #include "webrtc/libjingle/xmpp/xmpptask.h"
diff --git a/webrtc/libjingle/session/sessionsendtask.h b/webrtc/p2p/client/sessionsendtask.h
similarity index 98%
rename from webrtc/libjingle/session/sessionsendtask.h
rename to webrtc/p2p/client/sessionsendtask.h
index 77cea08..818aa1a 100644
--- a/webrtc/libjingle/session/sessionsendtask.h
+++ b/webrtc/p2p/client/sessionsendtask.h
@@ -11,7 +11,7 @@
 #ifndef WEBRTC_P2P_CLIENT_SESSIONSENDTASK_H_
 #define WEBRTC_P2P_CLIENT_SESSIONSENDTASK_H_
 
-#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/p2p/base/sessionmanager.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/libjingle/xmpp/xmppclient.h"
 #include "webrtc/libjingle/xmpp/xmppengine.h"
diff --git a/webrtc/p2p/p2p.gyp b/webrtc/p2p/p2p.gyp
index 73fb9e3..102e75b 100644
--- a/webrtc/p2p/p2p.gyp
+++ b/webrtc/p2p/p2p.gyp
@@ -39,6 +39,8 @@
         'base/p2ptransportchannel.cc',
         'base/p2ptransportchannel.h',
         'base/packetsocketfactory.h',
+        'base/parsing.cc',
+        'base/parsing.h',
         'base/port.cc',
         'base/port.h',
         'base/portallocator.cc',
@@ -60,9 +62,14 @@
         'base/relayserver.h',
         'base/session.cc',
         'base/session.h',
+        'base/sessionclient.h',
         'base/sessiondescription.cc',
         'base/sessiondescription.h',
         'base/sessionid.h',
+        'base/sessionmanager.cc',
+        'base/sessionmanager.h',
+        'base/sessionmessages.cc',
+        'base/sessionmessages.h',
         'base/stun.cc',
         'base/stun.h',
         'base/stunport.cc',
@@ -97,14 +104,10 @@
         'client/connectivitychecker.h',
         'client/httpportallocator.cc',
         'client/httpportallocator.h',
+        'client/sessionmanagertask.h',
+        'client/sessionsendtask.h',
         'client/socketmonitor.cc',
         'client/socketmonitor.h',
-        '<(webrtc_root)/libjingle/session/parsing.h',
-        '<(webrtc_root)/libjingle/session/parsing.cc',
-        '<(webrtc_root)/libjingle/session/sessionmanager.h',
-        '<(webrtc_root)/libjingle/session/sessionmanager.cc',
-        '<(webrtc_root)/libjingle/session/sessionmessages.h',
-        '<(webrtc_root)/libjingle/session/sessionmessages.cc',
       ],
       'direct_dependent_settings': {
         'cflags_cc!': [