![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/local/lib/node_modules/mediasoup/worker/include/RTC/ |
Upload File : |
#ifndef MS_RTC_PIPE_TRANSPORT_HPP #define MS_RTC_PIPE_TRANSPORT_HPP #include "RTC/SrtpSession.hpp" #include "RTC/Transport.hpp" #include "RTC/TransportTuple.hpp" #include "RTC/UdpSocket.hpp" namespace RTC { class PipeTransport : public RTC::Transport, public RTC::UdpSocket::Listener { private: struct ListenIp { std::string ip; std::string announcedIp; }; private: static RTC::SrtpSession::CryptoSuite srtpCryptoSuite; static std::string srtpCryptoSuiteString; static size_t srtpMasterLength; public: PipeTransport(const std::string& id, RTC::Transport::Listener* listener, json& data); ~PipeTransport() override; public: void FillJson(json& jsonObject) const override; void FillJsonStats(json& jsonArray) override; void HandleRequest(Channel::Request* request) override; void HandleNotification(PayloadChannel::Notification* notification) override; private: bool IsConnected() const override; bool HasSrtp() const; void SendRtpPacket( RTC::Consumer* consumer, RTC::RtpPacket* packet, RTC::Transport::onSendCallback* cb = nullptr) override; void SendRtcpPacket(RTC::RTCP::Packet* packet) override; void SendRtcpCompoundPacket(RTC::RTCP::CompoundPacket* packet) override; void SendMessage( RTC::DataConsumer* dataConsumer, uint32_t ppid, const uint8_t* msg, size_t len, onQueuedCallback* cb = nullptr) override; void SendSctpData(const uint8_t* data, size_t len) override; void RecvStreamClosed(uint32_t ssrc) override; void SendStreamClosed(uint32_t ssrc) override; void OnPacketReceived(RTC::TransportTuple* tuple, const uint8_t* data, size_t len); void OnRtpDataReceived(RTC::TransportTuple* tuple, const uint8_t* data, size_t len); void OnRtcpDataReceived(RTC::TransportTuple* tuple, const uint8_t* data, size_t len); void OnSctpDataReceived(RTC::TransportTuple* tuple, const uint8_t* data, size_t len); /* Pure virtual methods inherited from RTC::UdpSocket::Listener. */ public: void OnUdpSocketPacketReceived( RTC::UdpSocket* socket, const uint8_t* data, size_t len, const struct sockaddr* remoteAddr) override; private: // Allocated by this. RTC::UdpSocket* udpSocket{ nullptr }; RTC::TransportTuple* tuple{ nullptr }; RTC::SrtpSession* srtpRecvSession{ nullptr }; RTC::SrtpSession* srtpSendSession{ nullptr }; // Others. ListenIp listenIp; struct sockaddr_storage remoteAddrStorage; bool rtx{ false }; std::string srtpKey; std::string srtpKeyBase64; }; } // namespace RTC #endif