// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "remoting/protocol/jingle_session_manager.h" #include "base/base64.h" #include "base/message_loop.h" #include "base/string_number_conversions.h" #include "remoting/base/constants.h" #include "remoting/jingle_glue/jingle_thread.h" #include "remoting/proto/auth.pb.h" #include "third_party/libjingle/source/talk/p2p/base/constants.h" #include "third_party/libjingle/source/talk/p2p/base/transport.h" #include "third_party/libjingle/source/talk/xmllite/xmlelement.h" using buzz::QName; using buzz::XmlElement; namespace remoting { namespace protocol { namespace { const char kDefaultNs[] = ""; const char kChromotingContentName[] = "chromoting"; // Following constants are used to format session description in XML. const char kDescriptionTag[] = "description"; const char kControlTag[] = "control"; const char kEventTag[] = "event"; const char kVideoTag[] = "video"; const char kResolutionTag[] = "initial-resolution"; const char kAuthenticationTag[] = "authentication"; const char kCertificateTag[] = "certificate"; const char kTransportAttr[] = "transport"; const char kVersionAttr[] = "version"; const char kCodecAttr[] = "codec"; const char kWidthAttr[] = "width"; const char kHeightAttr[] = "height"; const char kStreamTransport[] = "stream"; const char kDatagramTransport[] = "datagram"; const char kSrtpTransport[] = "srtp"; const char kRtpDtlsTransport[] = "rtp-dtls"; const char kVp8Codec[] = "vp8"; const char kZipCodec[] = "zip"; const char* GetTransportName(ChannelConfig::TransportType type) { switch (type) { case ChannelConfig::TRANSPORT_STREAM: return kStreamTransport; case ChannelConfig::TRANSPORT_DATAGRAM: return kDatagramTransport; case ChannelConfig::TRANSPORT_SRTP: return kSrtpTransport; case ChannelConfig::TRANSPORT_RTP_DTLS: return kRtpDtlsTransport; } NOTREACHED(); return NULL; } const char* GetCodecName(ChannelConfig::Codec type) { switch (type) { case ChannelConfig::CODEC_VP8: return kVp8Codec; case ChannelConfig::CODEC_ZIP: return kZipCodec; default: break; } NOTREACHED(); return NULL; } // Format a channel configuration tag for chromotocol session description, // e.g. for video channel: //