30#include "cajun/json/elements.h"
32#if defined(WIN32) && !defined(__GNUC__)
33#pragma warning( disable : 4355 )
40#define RESIPROCATE_SUBSYSTEM ReconSubsystem::RECON
44 mKurentoUri(kurentoUri),
45 mKurentoManager(std::chrono::seconds(5), std::chrono::seconds(2)),
53 mKurentoUri(kurentoUri),
54 mKurentoManager(std::chrono::seconds(5000), std::chrono::seconds(2)),
57 init(defaultSampleRate, maxSampleRate);
61KurentoMediaStackAdapter::init(
int defaultSampleRate,
int maxSampleRate)
64 DebugLog(<<
"trying to connect to Kurento host " << mKurentoUri);
78 mPipeline = make_shared<kurento::MediaPipeline>(mKurentoConnection);
79 mPipeline->create([
this]{
80 DebugLog(<<
"pipeline created with ID " << mPipeline->getId());
87 InfoLog(<<
"KurentoMediaStackAdapter shutdown");
90 mPipeline->release([
this](){
91 InfoLog(<<
"mPipeline has been released");
92 mKurentoConnection.reset();
97 mKurentoConnection.reset();
149 WarningLog(<<
"ConversationManager::outputBridgeMatrix request with no conversation handle is not appropriate for current MediaInterfaceMode");
163 WarningLog(<<
"ConversationManager::outputBridgeMatrix requested conversation wihtout a mixer/media interface, conversationHandle=" << convHandle);
168 WarningLog(<<
"ConversationManager::outputBridgeMatrix requested for non-existing conversationHandle=" << convHandle);
185 "o=- 3843572881 3843572881 IN IP4 " + ipaddress +
"\r\n"
186 "s=Kurento Media Server\r\n"
187 "c=IN IP4 " + ipaddress +
"\r\n"
189 "m=audio 34712 RTP/AVP 0\r\n"
192 "a=rtpmap:0 PCMU/8000\r\n"
193 "a=ssrc:866007149 cname:user2141419334@host-99aef493\r\n"
194 "m=video 2962 RTP/AVP 97 126\r\n"
197 "a=rtpmap:97 H264/90000\r\n"
198 "a=rtpmap:126 H264/90000\r\n"
199 "a=fmtp:97 packetization-mode=0;profile-level-id=420016;max-br=5000;max-mbps=245000;max-fs=9000;max-smbps=245000;max-fps=6000;max-rcmd-nalu-size=3456000;sar-supported=16\r\n"
200 "a=fmtp:126 packetization-mode=1;profile-level-id=428016;max-br=5000;max-mbps=245000;max-fs=9000;max-smbps=245000;max-fps=6000;max-rcmd-nalu-size=3456000;sar-supported=16\r\n"
201 "a=ssrc:1014502683 cname:user2141419334@host-99aef493\r\n");
204 Mime type(
"application",
"sdp");
245 std::shared_ptr<ConfigParse> cfg =
getConfig();
249 krp->
mSipRtpEndpoint = cfg->getConfigBool(
"KurentoSipRtpEndpoint",
true);
250 krp->
mReuseSdpAnswer = cfg->getConfigBool(
"KurentoReuseSdpAnswer",
false);
274 std::shared_ptr<ConversationProfile> conversationProfile)
280KurentoMediaStackAdapter::process()
286KurentoMediaStackAdapter::initializeDtlsFactory(
const resip::Data& defaultAoR)
#define WarningLog(args_)
KurentoConnection::ptr getKurentoConnection(const std::string &uri, KurentoConnectionObserver &observer)
virtual void outputBridgeMixWeights()=0
Logs a multiline representation of the current state of the mixing matrix.
This class is one of two main classes of concern to an application using the UserAgent library.
ParticipantForkSelectMode
This class is used to manage membership of participants.
BridgeMixer * getBridgeMixer() noexcept
The classes defined here are used to pass commands from the application thread to the UserAgent threa...
This class represent a remote participant.
bool mRemoveExtraMediaDescriptors
bool mWSAcceptsKeyframeRequests
This class represents a local participant.
This class is used by Invite DialogSets.
This class represent a remote participant.
This class is one of two main classes of concern to an application using the UserAgent library.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
const char * c_str() const
Returns a null-terminated string representing.
size_type size() const noexcept
Returns the number of bytes in this Data.
const char * data() const noexcept
Returns a pointer to the contents of this Data.
Represents the "media-type" element in the RFC 3261 grammar.
Provides an interface to process and generate SDP bodies (MIME content-type application/sdp).
Represents the "SIP-URI" and "SIPS-URI" elements in the RFC 3261 grammar.
unsigned int ConversationHandle
unsigned int ParticipantHandle
dcm! – add UnusedChecking(_enum) below;