Move the obvious/easy Jingle-specific code into webrtc/libjingle.

R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7886 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/all.gyp b/all.gyp
index 2280c03..1a7ce5a 100644
--- a/all.gyp
+++ b/all.gyp
@@ -21,6 +21,7 @@
         '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 226b8b0..6e4fa6f 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 "talk/session/media/mediasessionclient.h"
+#include "webrtc/libjingle/media/mediasessionclient.h"
 #include "webrtc/base/common.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/messagedigest.h"
diff --git a/talk/libjingle.gyp b/talk/libjingle.gyp
index 49c8d79..56d29af 100755
--- a/talk/libjingle.gyp
+++ b/talk/libjingle.gyp
@@ -585,34 +585,22 @@
         ],
       },
       '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 75bc2f7c..687e11f 100755
--- a/talk/libjingle_examples.gyp
+++ b/talk/libjingle_examples.gyp
@@ -31,19 +31,6 @@
   ],
   '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': [
@@ -77,16 +64,6 @@
       ],
     },  # 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': [
@@ -106,56 +83,6 @@
     }, # 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 3410737..b59a7ef 100755
--- a/talk/libjingle_tests.gyp
+++ b/talk/libjingle_tests.gyp
@@ -167,9 +167,7 @@
         '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/talk/session/media/channel.cc b/talk/session/media/channel.cc
index 414a131..5cc37db 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 "talk/session/media/mediamessages.h"
+#include "webrtc/libjingle/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 0fba14e..772eb12 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 "talk/session/media/mediamessages.h"
+#include "webrtc/libjingle/media/mediamessages.h"
 #include "talk/session/media/mediarecorder.h"
-#include "talk/session/media/mediasessionclient.h"
+#include "webrtc/libjingle/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 472acfe..c902abd 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 "talk/session/media/mediamessages.h"
+#include "webrtc/libjingle/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 63676f9..6a99973 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/call.h"
+#include "talk/session/media/audiomonitor.h"
 #include "talk/session/media/currentspeakermonitor.h"
 #include "webrtc/base/gunit.h"
 #include "webrtc/base/thread.h"
@@ -42,21 +42,11 @@
 // 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() {
-    call_ = new MockCall();
-    monitor_ = new CurrentSpeakerMonitor(call_->GetAudioSourceProxy(), NULL);
+    monitor_ = new CurrentSpeakerMonitor(&source_, 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);
@@ -68,11 +58,14 @@
 
   ~CurrentSpeakerMonitorTest() {
     delete monitor_;
-    delete call_;
+  }
+
+  void SignalAudioMonitor(const AudioInfo& info) {
+    source_.SignalAudioMonitor(&source_, info);
   }
 
  protected:
-  MockCall* call_;
+  AudioSourceContext source_;
   CurrentSpeakerMonitor* monitor_;
   int num_changes_;
   uint32 current_speaker_;
@@ -91,7 +84,7 @@
 TEST_F(CurrentSpeakerMonitorTest, NoActiveStreams) {
   AudioInfo info;
   InitAudioInfo(&info, 0, 0);
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, 0U);
   EXPECT_EQ(num_changes_, 0);
@@ -103,7 +96,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(info);
 
   // No speaker recognized because the initial sample is treated as possibly
   // just noise and disregarded.
@@ -112,7 +105,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, kSsrc2);
   EXPECT_EQ(num_changes_, 1);
@@ -125,21 +118,21 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(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));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(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));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(info);
 
   // We expect no speaker change because of the rapid change.
   EXPECT_EQ(current_speaker_, kSsrc2);
@@ -152,14 +145,14 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(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));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, kSsrc2);
   EXPECT_EQ(num_changes_, 1);
@@ -169,7 +162,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 9));
   info.active_streams.push_back(std::make_pair(kSsrc2, 1));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, kSsrc1);
   EXPECT_EQ(num_changes_, 2);
@@ -181,21 +174,21 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 7));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(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));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(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));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(info);
 
   EXPECT_EQ(current_speaker_, kSsrc2);
   EXPECT_EQ(num_changes_, 1);
@@ -205,7 +198,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 0));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(info);
 
   // Current speaker shouldn't have changed because we treat this as an inter-
   // word silence.
@@ -214,7 +207,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 0));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(info);
 
   // Current speaker shouldn't have changed because we treat this as an inter-
   // word silence.
@@ -223,7 +216,7 @@
 
   info.active_streams.push_back(std::make_pair(kSsrc1, 3));
   info.active_streams.push_back(std::make_pair(kSsrc2, 0));
-  call_->EmitAudioMonitor(info);
+  SignalAudioMonitor(info);
 
   // At this point, we should have concluded that SSRC2 stopped speaking.
   EXPECT_EQ(current_speaker_, kSsrc1);
diff --git a/webrtc/libjingle/xmpp/OWNERS b/webrtc/libjingle/OWNERS
similarity index 100%
rename from webrtc/libjingle/xmpp/OWNERS
rename to webrtc/libjingle/OWNERS
diff --git a/talk/examples/call/Info.plist b/webrtc/libjingle/examples/call/Info.plist
similarity index 100%
rename from talk/examples/call/Info.plist
rename to webrtc/libjingle/examples/call/Info.plist
diff --git a/talk/examples/call/call_main.cc b/webrtc/libjingle/examples/call/call_main.cc
similarity index 99%
rename from talk/examples/call/call_main.cc
rename to webrtc/libjingle/examples/call/call_main.cc
index 638f6f9..7cdea85 100644
--- a/talk/examples/call/call_main.cc
+++ b/webrtc/libjingle/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 "talk/session/media/mediasessionclient.h"
+#include "webrtc/libjingle/media/mediasessionclient.h"
 #include "talk/session/media/srtpfilter.h"
 #include "webrtc/libjingle/xmpp/xmppauth.h"
 #include "webrtc/libjingle/xmpp/xmppclientsettings.h"
diff --git a/talk/examples/call/call_unittest.cc b/webrtc/libjingle/examples/call/call_unittest.cc
similarity index 100%
rename from talk/examples/call/call_unittest.cc
rename to webrtc/libjingle/examples/call/call_unittest.cc
diff --git a/talk/examples/call/callclient.cc b/webrtc/libjingle/examples/call/callclient.cc
similarity index 99%
rename from talk/examples/call/callclient.cc
rename to webrtc/libjingle/examples/call/callclient.cc
index 866133e..6eae983 100644
--- a/talk/examples/call/callclient.cc
+++ b/webrtc/libjingle/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/p2p/base/sessionmanager.h"
+#include "webrtc/libjingle/session/sessionmanager.h"
 #include "webrtc/p2p/client/basicportallocator.h"
 #include "webrtc/p2p/client/sessionmanagertask.h"
-#include "talk/session/media/mediamessages.h"
-#include "talk/session/media/mediasessionclient.h"
+#include "webrtc/libjingle/media/mediamessages.h"
+#include "webrtc/libjingle/media/mediasessionclient.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/libjingle/xmpp/hangoutpubsubclient.h"
 #include "webrtc/libjingle/xmpp/mucroomconfigtask.h"
diff --git a/talk/examples/call/callclient.h b/webrtc/libjingle/examples/call/callclient.h
similarity index 98%
rename from talk/examples/call/callclient.h
rename to webrtc/libjingle/examples/call/callclient.h
index 075dc6e..ac427b4 100644
--- a/talk/examples/call/callclient.h
+++ b/webrtc/libjingle/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 "talk/session/media/mediamessages.h"
-#include "talk/session/media/mediasessionclient.h"
+#include "webrtc/libjingle/media/mediamessages.h"
+#include "webrtc/libjingle/media/mediasessionclient.h"
 #include "webrtc/libjingle/xmpp/hangoutpubsubclient.h"
 #include "webrtc/libjingle/xmpp/presencestatus.h"
 #include "webrtc/libjingle/xmpp/xmppclient.h"
diff --git a/talk/examples/call/callclient_unittest.cc b/webrtc/libjingle/examples/call/callclient_unittest.cc
similarity index 100%
rename from talk/examples/call/callclient_unittest.cc
rename to webrtc/libjingle/examples/call/callclient_unittest.cc
diff --git a/talk/examples/call/console.cc b/webrtc/libjingle/examples/call/console.cc
similarity index 100%
rename from talk/examples/call/console.cc
rename to webrtc/libjingle/examples/call/console.cc
diff --git a/talk/examples/call/console.h b/webrtc/libjingle/examples/call/console.h
similarity index 100%
rename from talk/examples/call/console.h
rename to webrtc/libjingle/examples/call/console.h
diff --git a/talk/examples/call/friendinvitesendtask.cc b/webrtc/libjingle/examples/call/friendinvitesendtask.cc
similarity index 100%
rename from talk/examples/call/friendinvitesendtask.cc
rename to webrtc/libjingle/examples/call/friendinvitesendtask.cc
diff --git a/talk/examples/call/friendinvitesendtask.h b/webrtc/libjingle/examples/call/friendinvitesendtask.h
similarity index 100%
rename from talk/examples/call/friendinvitesendtask.h
rename to webrtc/libjingle/examples/call/friendinvitesendtask.h
diff --git a/talk/examples/call/mediaenginefactory.cc b/webrtc/libjingle/examples/call/mediaenginefactory.cc
similarity index 100%
rename from talk/examples/call/mediaenginefactory.cc
rename to webrtc/libjingle/examples/call/mediaenginefactory.cc
diff --git a/talk/examples/call/mediaenginefactory.h b/webrtc/libjingle/examples/call/mediaenginefactory.h
similarity index 100%
rename from talk/examples/call/mediaenginefactory.h
rename to webrtc/libjingle/examples/call/mediaenginefactory.h
diff --git a/talk/examples/call/muc.h b/webrtc/libjingle/examples/call/muc.h
similarity index 100%
rename from talk/examples/call/muc.h
rename to webrtc/libjingle/examples/call/muc.h
diff --git a/talk/examples/call/mucinviterecvtask.cc b/webrtc/libjingle/examples/call/mucinviterecvtask.cc
similarity index 100%
rename from talk/examples/call/mucinviterecvtask.cc
rename to webrtc/libjingle/examples/call/mucinviterecvtask.cc
diff --git a/talk/examples/call/mucinviterecvtask.h b/webrtc/libjingle/examples/call/mucinviterecvtask.h
similarity index 100%
rename from talk/examples/call/mucinviterecvtask.h
rename to webrtc/libjingle/examples/call/mucinviterecvtask.h
diff --git a/talk/examples/call/mucinvitesendtask.cc b/webrtc/libjingle/examples/call/mucinvitesendtask.cc
similarity index 100%
rename from talk/examples/call/mucinvitesendtask.cc
rename to webrtc/libjingle/examples/call/mucinvitesendtask.cc
diff --git a/talk/examples/call/mucinvitesendtask.h b/webrtc/libjingle/examples/call/mucinvitesendtask.h
similarity index 100%
rename from talk/examples/call/mucinvitesendtask.h
rename to webrtc/libjingle/examples/call/mucinvitesendtask.h
diff --git a/talk/examples/call/presencepushtask.cc b/webrtc/libjingle/examples/call/presencepushtask.cc
similarity index 100%
rename from talk/examples/call/presencepushtask.cc
rename to webrtc/libjingle/examples/call/presencepushtask.cc
diff --git a/talk/examples/call/presencepushtask.h b/webrtc/libjingle/examples/call/presencepushtask.h
similarity index 100%
rename from talk/examples/call/presencepushtask.h
rename to webrtc/libjingle/examples/call/presencepushtask.h
diff --git a/talk/examples/login/login_main.cc b/webrtc/libjingle/examples/login/login_main.cc
similarity index 100%
rename from talk/examples/login/login_main.cc
rename to webrtc/libjingle/examples/login/login_main.cc
diff --git a/webrtc/libjingle/libjingle.gyp b/webrtc/libjingle/libjingle.gyp
new file mode 100644
index 0000000..ed8e226
--- /dev/null
+++ b/webrtc/libjingle/libjingle.gyp
@@ -0,0 +1,174 @@
+# 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/pseudotcp.cc',
+        'tunnel/pseudotcp.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',
+        'tunnel/pseudotcp_unittest.cc',
+      ],
+      'conditions': [
+        ['OS=="win"', {
+          'msvs_settings': {
+            'VCLinkerTool': {
+              'AdditionalDependencies': [
+                'strmiids.lib',
+              ],
+            },
+          },
+        }],
+      ],
+    },  # target jingle_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/talk/session/media/call.cc b/webrtc/libjingle/media/call.cc
similarity index 99%
rename from talk/session/media/call.cc
rename to webrtc/libjingle/media/call.cc
index 784be94..f42ec30 100644
--- a/talk/session/media/call.cc
+++ b/webrtc/libjingle/media/call.cc
@@ -28,10 +28,10 @@
 #include <string>
 #include "talk/media/base/constants.h"
 #include "talk/media/base/screencastid.h"
-#include "webrtc/p2p/base/parsing.h"
-#include "talk/session/media/call.h"
+#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/libjingle/media/call.h"
 #include "talk/session/media/currentspeakermonitor.h"
-#include "talk/session/media/mediasessionclient.h"
+#include "webrtc/libjingle/media/mediasessionclient.h"
 #include "webrtc/base/helpers.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/thread.h"
diff --git a/talk/session/media/call.h b/webrtc/libjingle/media/call.h
similarity index 99%
rename from talk/session/media/call.h
rename to webrtc/libjingle/media/call.h
index f992043..f7bd57e 100644
--- a/talk/session/media/call.h
+++ b/webrtc/libjingle/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 "talk/session/media/mediamessages.h"
+#include "webrtc/libjingle/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/mediamessages.cc b/webrtc/libjingle/media/mediamessages.cc
similarity index 98%
rename from talk/session/media/mediamessages.cc
rename to webrtc/libjingle/media/mediamessages.cc
index 011fd7d..14bf2f6 100644
--- a/talk/session/media/mediamessages.cc
+++ b/webrtc/libjingle/media/mediamessages.cc
@@ -29,11 +29,11 @@
  * Documentation is in mediamessages.h.
  */
 
-#include "talk/session/media/mediamessages.h"
+#include "webrtc/libjingle/media/mediamessages.h"
 
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/p2p/base/parsing.h"
-#include "talk/session/media/mediasessionclient.h"
+#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/libjingle/media/mediasessionclient.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/stringencode.h"
diff --git a/talk/session/media/mediamessages.h b/webrtc/libjingle/media/mediamessages.h
similarity index 98%
rename from talk/session/media/mediamessages.h
rename to webrtc/libjingle/media/mediamessages.h
index d918e3e..895eac9 100644
--- a/talk/session/media/mediamessages.h
+++ b/webrtc/libjingle/media/mediamessages.h
@@ -41,7 +41,7 @@
 
 #include "talk/media/base/mediachannel.h"  // For RtpHeaderExtension
 #include "talk/media/base/streamparams.h"
-#include "webrtc/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/parsing.h"
 #include "webrtc/p2p/base/sessiondescription.h"
 #include "webrtc/base/basictypes.h"
 
diff --git a/talk/session/media/mediamessages_unittest.cc b/webrtc/libjingle/media/mediamessages_unittest.cc
similarity index 98%
rename from talk/session/media/mediamessages_unittest.cc
rename to webrtc/libjingle/media/mediamessages_unittest.cc
index a9f00e4..b075cc7 100644
--- a/talk/session/media/mediamessages_unittest.cc
+++ b/webrtc/libjingle/media/mediamessages_unittest.cc
@@ -25,13 +25,13 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "talk/session/media/mediamessages.h"
+#include "webrtc/libjingle/media/mediamessages.h"
 
 #include <string>
 #include <vector>
 
 #include "webrtc/p2p/base/constants.h"
-#include "talk/session/media/mediasessionclient.h"
+#include "webrtc/libjingle/media/mediasessionclient.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/base/gunit.h"
 #include "webrtc/base/scoped_ptr.h"
diff --git a/talk/session/media/mediasessionclient.cc b/webrtc/libjingle/media/mediasessionclient.cc
similarity index 99%
rename from talk/session/media/mediasessionclient.cc
rename to webrtc/libjingle/media/mediasessionclient.cc
index 5cb7917..efa8cf3 100644
--- a/talk/session/media/mediasessionclient.cc
+++ b/webrtc/libjingle/media/mediasessionclient.cc
@@ -27,14 +27,14 @@
 
 #include <string>
 
-#include "talk/session/media/mediasessionclient.h"
+#include "webrtc/libjingle/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/p2p/base/parsing.h"
-#include "talk/session/media/mediamessages.h"
+#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/libjingle/media/mediamessages.h"
 #include "talk/session/media/srtpfilter.h"
 #include "webrtc/libjingle/xmllite/qname.h"
 #include "webrtc/libjingle/xmllite/xmlconstants.h"
diff --git a/talk/session/media/mediasessionclient.h b/webrtc/libjingle/media/mediasessionclient.h
similarity index 97%
rename from talk/session/media/mediasessionclient.h
rename to webrtc/libjingle/media/mediasessionclient.h
index c66c221..23956e8 100644
--- a/talk/session/media/mediasessionclient.h
+++ b/webrtc/libjingle/media/mediasessionclient.h
@@ -34,10 +34,10 @@
 #include <vector>
 #include "talk/media/base/cryptoparams.h"
 #include "webrtc/p2p/base/session.h"
-#include "webrtc/p2p/base/sessionclient.h"
+#include "webrtc/libjingle/session/sessionclient.h"
 #include "webrtc/p2p/base/sessiondescription.h"
-#include "webrtc/p2p/base/sessionmanager.h"
-#include "talk/session/media/call.h"
+#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/libjingle/media/call.h"
 #include "talk/session/media/channelmanager.h"
 #include "talk/session/media/mediasession.h"
 #include "webrtc/base/messagequeue.h"
diff --git a/talk/session/media/mediasessionclient_unittest.cc b/webrtc/libjingle/media/mediasessionclient_unittest.cc
similarity index 99%
rename from talk/session/media/mediasessionclient_unittest.cc
rename to webrtc/libjingle/media/mediasessionclient_unittest.cc
index eb052ef..fb4eb0a 100644
--- a/talk/session/media/mediasessionclient_unittest.cc
+++ b/webrtc/libjingle/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 "talk/session/media/mediasessionclient.h"
+#include "webrtc/libjingle/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/p2p/base/parsing.cc b/webrtc/libjingle/session/parsing.cc
similarity index 98%
rename from webrtc/p2p/base/parsing.cc
rename to webrtc/libjingle/session/parsing.cc
index 04d7e79..9a6100a 100644
--- a/webrtc/p2p/base/parsing.cc
+++ b/webrtc/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/webrtc/p2p/base/parsing.h b/webrtc/libjingle/session/parsing.h
similarity index 100%
rename from webrtc/p2p/base/parsing.h
rename to webrtc/libjingle/session/parsing.h
diff --git a/webrtc/p2p/base/sessionclient.h b/webrtc/libjingle/session/sessionclient.h
similarity index 100%
rename from webrtc/p2p/base/sessionclient.h
rename to webrtc/libjingle/session/sessionclient.h
diff --git a/webrtc/p2p/base/sessionmanager.cc b/webrtc/libjingle/session/sessionmanager.cc
similarity index 98%
rename from webrtc/p2p/base/sessionmanager.cc
rename to webrtc/libjingle/session/sessionmanager.cc
index f375dea..11a41ee 100644
--- a/webrtc/p2p/base/sessionmanager.cc
+++ b/webrtc/libjingle/session/sessionmanager.cc
@@ -8,11 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/p2p/base/sessionmanager.h"
+#include "webrtc/libjingle/session/sessionmanager.h"
 
 #include "webrtc/p2p/base/constants.h"
 #include "webrtc/p2p/base/session.h"
-#include "webrtc/p2p/base/sessionmessages.h"
+#include "webrtc/libjingle/session/sessionmessages.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/libjingle/xmpp/jid.h"
 #include "webrtc/base/common.h"
diff --git a/webrtc/p2p/base/sessionmanager.h b/webrtc/libjingle/session/sessionmanager.h
similarity index 100%
rename from webrtc/p2p/base/sessionmanager.h
rename to webrtc/libjingle/session/sessionmanager.h
diff --git a/webrtc/p2p/client/sessionmanagertask.h b/webrtc/libjingle/session/sessionmanagertask.h
similarity index 97%
rename from webrtc/p2p/client/sessionmanagertask.h
rename to webrtc/libjingle/session/sessionmanagertask.h
index 04d79d4..d0a0a53 100644
--- a/webrtc/p2p/client/sessionmanagertask.h
+++ b/webrtc/libjingle/session/sessionmanagertask.h
@@ -11,7 +11,7 @@
 #ifndef WEBRTC_P2P_CLIENT_SESSIONMANAGERTASK_H_
 #define WEBRTC_P2P_CLIENT_SESSIONMANAGERTASK_H_
 
-#include "webrtc/p2p/base/sessionmanager.h"
+#include "webrtc/libjingle/session/sessionmanager.h"
 #include "webrtc/p2p/client/sessionsendtask.h"
 #include "webrtc/libjingle/xmpp/xmppengine.h"
 #include "webrtc/libjingle/xmpp/xmpptask.h"
diff --git a/webrtc/p2p/base/sessionmessages.cc b/webrtc/libjingle/session/sessionmessages.cc
similarity index 99%
rename from webrtc/p2p/base/sessionmessages.cc
rename to webrtc/libjingle/session/sessionmessages.cc
index cc63673..45bb2cd 100644
--- a/webrtc/p2p/base/sessionmessages.cc
+++ b/webrtc/libjingle/session/sessionmessages.cc
@@ -8,15 +8,15 @@
  *  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/libjingle/session/parsing.h"
+#include "webrtc/libjingle/session/sessionclient.h"
 #include "webrtc/p2p/base/sessiondescription.h"
 #include "webrtc/p2p/base/transport.h"
 #include "webrtc/libjingle/xmllite/xmlconstants.h"
diff --git a/webrtc/p2p/base/sessionmessages.h b/webrtc/libjingle/session/sessionmessages.h
similarity index 99%
rename from webrtc/p2p/base/sessionmessages.h
rename to webrtc/libjingle/session/sessionmessages.h
index 7b156d4..9a46203 100644
--- a/webrtc/p2p/base/sessionmessages.h
+++ b/webrtc/libjingle/session/sessionmessages.h
@@ -16,7 +16,7 @@
 #include <vector>
 
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/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/client/sessionsendtask.h b/webrtc/libjingle/session/sessionsendtask.h
similarity index 98%
rename from webrtc/p2p/client/sessionsendtask.h
rename to webrtc/libjingle/session/sessionsendtask.h
index 818aa1a..77cea08 100644
--- a/webrtc/p2p/client/sessionsendtask.h
+++ b/webrtc/libjingle/session/sessionsendtask.h
@@ -11,7 +11,7 @@
 #ifndef WEBRTC_P2P_CLIENT_SESSIONSENDTASK_H_
 #define WEBRTC_P2P_CLIENT_SESSIONSENDTASK_H_
 
-#include "webrtc/p2p/base/sessionmanager.h"
+#include "webrtc/libjingle/session/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/base/pseudotcp.cc b/webrtc/libjingle/tunnel/pseudotcp.cc
similarity index 99%
rename from webrtc/p2p/base/pseudotcp.cc
rename to webrtc/libjingle/tunnel/pseudotcp.cc
index 0dfe7d8..d564684 100644
--- a/webrtc/p2p/base/pseudotcp.cc
+++ b/webrtc/libjingle/tunnel/pseudotcp.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/p2p/base/pseudotcp.h"
+#include "webrtc/libjingle/tunnel/pseudotcp.h"
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/webrtc/p2p/base/pseudotcp.h b/webrtc/libjingle/tunnel/pseudotcp.h
similarity index 100%
rename from webrtc/p2p/base/pseudotcp.h
rename to webrtc/libjingle/tunnel/pseudotcp.h
diff --git a/webrtc/p2p/base/pseudotcp_unittest.cc b/webrtc/libjingle/tunnel/pseudotcp_unittest.cc
similarity index 99%
rename from webrtc/p2p/base/pseudotcp_unittest.cc
rename to webrtc/libjingle/tunnel/pseudotcp_unittest.cc
index f5ea7ace..ea2a49a 100644
--- a/webrtc/p2p/base/pseudotcp_unittest.cc
+++ b/webrtc/libjingle/tunnel/pseudotcp_unittest.cc
@@ -10,7 +10,7 @@
 
 #include <vector>
 
-#include "webrtc/p2p/base/pseudotcp.h"
+#include "webrtc/libjingle/tunnel/pseudotcp.h"
 #include "webrtc/base/gunit.h"
 #include "webrtc/base/helpers.h"
 #include "webrtc/base/messagehandler.h"
diff --git a/talk/session/tunnel/pseudotcpchannel.cc b/webrtc/libjingle/tunnel/pseudotcpchannel.cc
similarity index 100%
rename from talk/session/tunnel/pseudotcpchannel.cc
rename to webrtc/libjingle/tunnel/pseudotcpchannel.cc
diff --git a/talk/session/tunnel/pseudotcpchannel.h b/webrtc/libjingle/tunnel/pseudotcpchannel.h
similarity index 98%
rename from talk/session/tunnel/pseudotcpchannel.h
rename to webrtc/libjingle/tunnel/pseudotcpchannel.h
index ad6d907..3310c09 100644
--- a/talk/session/tunnel/pseudotcpchannel.h
+++ b/webrtc/libjingle/tunnel/pseudotcpchannel.h
@@ -28,7 +28,7 @@
 #ifndef TALK_SESSION_TUNNEL_PSEUDOTCPCHANNEL_H_
 #define TALK_SESSION_TUNNEL_PSEUDOTCPCHANNEL_H_
 
-#include "webrtc/p2p/base/pseudotcp.h"
+#include "webrtc/libjingle/tunnel/pseudotcp.h"
 #include "webrtc/p2p/base/session.h"
 #include "webrtc/base/criticalsection.h"
 #include "webrtc/base/messagequeue.h"
diff --git a/talk/session/tunnel/securetunnelsessionclient.cc b/webrtc/libjingle/tunnel/securetunnelsessionclient.cc
similarity index 98%
rename from talk/session/tunnel/securetunnelsessionclient.cc
rename to webrtc/libjingle/tunnel/securetunnelsessionclient.cc
index 4ed81856..a9e676a 100644
--- a/talk/session/tunnel/securetunnelsessionclient.cc
+++ b/webrtc/libjingle/tunnel/securetunnelsessionclient.cc
@@ -28,8 +28,8 @@
 // SecureTunnelSessionClient and SecureTunnelSession implementation.
 
 #include "webrtc/p2p/base/transportchannel.h"
-#include "talk/session/tunnel/pseudotcpchannel.h"
-#include "talk/session/tunnel/securetunnelsessionclient.h"
+#include "webrtc/libjingle/tunnel/pseudotcpchannel.h"
+#include "webrtc/libjingle/tunnel/securetunnelsessionclient.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/base/basicdefs.h"
 #include "webrtc/base/basictypes.h"
diff --git a/talk/session/tunnel/securetunnelsessionclient.h b/webrtc/libjingle/tunnel/securetunnelsessionclient.h
similarity index 98%
rename from talk/session/tunnel/securetunnelsessionclient.h
rename to webrtc/libjingle/tunnel/securetunnelsessionclient.h
index 15202a1..414aaf5 100644
--- a/talk/session/tunnel/securetunnelsessionclient.h
+++ b/webrtc/libjingle/tunnel/securetunnelsessionclient.h
@@ -36,7 +36,7 @@
 
 #include <string>
 
-#include "talk/session/tunnel/tunnelsessionclient.h"
+#include "webrtc/libjingle/tunnel/tunnelsessionclient.h"
 #include "webrtc/base/sslidentity.h"
 #include "webrtc/base/sslstreamadapter.h"
 
diff --git a/talk/session/tunnel/tunnelsessionclient.cc b/webrtc/libjingle/tunnel/tunnelsessionclient.cc
similarity index 100%
rename from talk/session/tunnel/tunnelsessionclient.cc
rename to webrtc/libjingle/tunnel/tunnelsessionclient.cc
diff --git a/talk/session/tunnel/tunnelsessionclient.h b/webrtc/libjingle/tunnel/tunnelsessionclient.h
similarity index 97%
rename from talk/session/tunnel/tunnelsessionclient.h
rename to webrtc/libjingle/tunnel/tunnelsessionclient.h
index 87beaed..990d8bf 100644
--- a/talk/session/tunnel/tunnelsessionclient.h
+++ b/webrtc/libjingle/tunnel/tunnelsessionclient.h
@@ -31,11 +31,11 @@
 #include <vector>
 
 #include "webrtc/p2p/base/constants.h"
-#include "webrtc/p2p/base/pseudotcp.h"
+#include "webrtc/libjingle/tunnel/pseudotcp.h"
 #include "webrtc/p2p/base/session.h"
-#include "webrtc/p2p/base/sessionclient.h"
+#include "webrtc/libjingle/session/sessionclient.h"
 #include "webrtc/p2p/base/sessiondescription.h"
-#include "webrtc/p2p/base/sessionmanager.h"
+#include "webrtc/libjingle/session/sessionmanager.h"
 #include "webrtc/libjingle/xmllite/qname.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/base/criticalsection.h"
diff --git a/talk/session/tunnel/tunnelsessionclient_unittest.cc b/webrtc/libjingle/tunnel/tunnelsessionclient_unittest.cc
similarity index 98%
rename from talk/session/tunnel/tunnelsessionclient_unittest.cc
rename to webrtc/libjingle/tunnel/tunnelsessionclient_unittest.cc
index 6bd746a..f646223 100644
--- a/talk/session/tunnel/tunnelsessionclient_unittest.cc
+++ b/webrtc/libjingle/tunnel/tunnelsessionclient_unittest.cc
@@ -26,10 +26,10 @@
  */
 
 #include <string>
-#include "webrtc/p2p/base/sessionmanager.h"
+#include "webrtc/libjingle/session/sessionmanager.h"
 #include "webrtc/p2p/base/transport.h"
 #include "webrtc/p2p/client/fakeportallocator.h"
-#include "talk/session/tunnel/tunnelsessionclient.h"
+#include "webrtc/libjingle/tunnel/tunnelsessionclient.h"
 #include "webrtc/base/gunit.h"
 #include "webrtc/base/messagehandler.h"
 #include "webrtc/base/scoped_ptr.h"
diff --git a/webrtc/libjingle/xmllite/OWNERS b/webrtc/libjingle/xmllite/OWNERS
deleted file mode 100644
index 1a24a6a..0000000
--- a/webrtc/libjingle/xmllite/OWNERS
+++ /dev/null
@@ -1,13 +0,0 @@
-henrika@webrtc.org
-henrike@webrtc.org
-henrikg@webrtc.org
-hta@webrtc.org
-jiayl@webrtc.org
-juberti@webrtc.org
-mflodman@webrtc.org
-perkj@webrtc.org
-pthatcher@webrtc.org
-sergeyu@chromium.org
-tommi@webrtc.org
-
-per-file BUILD.gn=kjellander@webrtc.org
diff --git a/webrtc/p2p/base/p2ptransport.cc b/webrtc/p2p/base/p2ptransport.cc
index e873756..8a2c5a3 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/p2p/base/parsing.h"
-#include "webrtc/p2p/base/sessionmanager.h"
-#include "webrtc/p2p/base/sessionmessages.h"
+#include "webrtc/libjingle/session/parsing.h"
+#include "webrtc/libjingle/session/sessionmanager.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/webrtc/p2p/base/rawtransport.cc b/webrtc/p2p/base/rawtransport.cc
index 374ed98..3d9d7a8 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/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/parsing.h"
 #include "webrtc/p2p/base/rawtransport.h"
 #include "webrtc/p2p/base/rawtransportchannel.h"
-#include "webrtc/p2p/base/sessionmanager.h"
+#include "webrtc/libjingle/session/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 5779c6e..50d084b 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/p2p/base/sessionmanager.h"
+#include "webrtc/libjingle/session/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 9749b14..723edfe 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/p2p/base/sessionclient.h"
+#include "webrtc/libjingle/session/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 f5eaf41..660b9c1 100644
--- a/webrtc/p2p/base/session.h
+++ b/webrtc/p2p/base/session.h
@@ -16,11 +16,11 @@
 #include <string>
 #include <vector>
 
-#include "webrtc/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/parsing.h"
 #include "webrtc/p2p/base/port.h"
-#include "webrtc/p2p/base/sessionclient.h"
-#include "webrtc/p2p/base/sessionmanager.h"
-#include "webrtc/p2p/base/sessionmessages.h"
+#include "webrtc/libjingle/session/sessionclient.h"
+#include "webrtc/libjingle/session/sessionmanager.h"
+#include "webrtc/libjingle/session/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 d6f94b2..81a97f4 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/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/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/p2p/base/sessionclient.h"
-#include "webrtc/p2p/base/sessionmanager.h"
+#include "webrtc/libjingle/session/sessionclient.h"
+#include "webrtc/libjingle/session/sessionmanager.h"
 #include "webrtc/p2p/base/stunport.h"
 #include "webrtc/p2p/base/stunserver.h"
 #include "webrtc/p2p/base/transportchannel.h"
diff --git a/webrtc/p2p/base/transport.cc b/webrtc/p2p/base/transport.cc
index 07b204c..12a2bb3 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/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/parsing.h"
 #include "webrtc/p2p/base/port.h"
-#include "webrtc/p2p/base/sessionmanager.h"
+#include "webrtc/libjingle/session/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 e5d7aca..8aa8721 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/p2p/base/parsing.h"
+#include "webrtc/libjingle/session/parsing.h"
 #include "webrtc/p2p/base/rawtransport.h"
-#include "webrtc/p2p/base/sessionmessages.h"
+#include "webrtc/libjingle/session/sessionmessages.h"
 #include "webrtc/libjingle/xmllite/xmlelement.h"
 #include "webrtc/libjingle/xmpp/constants.h"
 #include "webrtc/base/fakesslidentity.h"
diff --git a/webrtc/p2p/p2p.gyp b/webrtc/p2p/p2p.gyp
index 102e75b..d9b925a 100644
--- a/webrtc/p2p/p2p.gyp
+++ b/webrtc/p2p/p2p.gyp
@@ -39,8 +39,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',
@@ -50,8 +48,6 @@
         'base/portinterface.h',
         'base/portproxy.cc',
         'base/portproxy.h',
-        'base/pseudotcp.cc',
-        'base/pseudotcp.h',
         'base/rawtransport.cc',
         'base/rawtransport.h',
         'base/rawtransportchannel.cc',
@@ -62,14 +58,9 @@
         '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',
@@ -104,10 +95,14 @@
         '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!': [
diff --git a/webrtc/p2p/p2p_tests.gypi b/webrtc/p2p/p2p_tests.gypi
index f9e6959..7b73f13 100644
--- a/webrtc/p2p/p2p_tests.gypi
+++ b/webrtc/p2p/p2p_tests.gypi
@@ -19,7 +19,6 @@
           'base/p2ptransportchannel_unittest.cc',
           'base/port_unittest.cc',
           'base/portallocatorsessionproxy_unittest.cc',
-          'base/pseudotcp_unittest.cc',
           'base/relayport_unittest.cc',
           'base/relayserver_unittest.cc',
           'base/session_unittest.cc',