Exemplo n.º 1
0
        async Task <bool> sendBuiltPacket()
        {
            int reportSize = _fOutBuf.CurPacketSize();

            bool result = false;

            try
            {
                INetworkTransport transport = _session.RTCPTransport;
                IPEndPoint        endPoint  = _session.RTCPIPEndPoint;
                if (_logger.IsDebugEnabled)
                {
                    _logger.Debug("Sending SR report to : {0}", endPoint);
                }

                result = await transport.SendPacket((_fOutBuf.Packet(reportSize).ToArray()), endPoint);
            }
            catch (Exception ex) when(ex is ObjectDisposedException)
            {
                // TCP connection has been closed and will be removed from the destinations list
            }

            _fOutBuf.ResetOffset();

            return(result);
        }
Exemplo n.º 2
0
        public override async Task OnRTPPacket(byte[] packet)
        {
            RTPSessionState[] transports = null;
            lock (Sessions)
            {
                transports = Sessions.Values.ToArray();
            }


            foreach (var transport in transports)
            {
                INetworkTransport network  = transport.RTPTransport;
                IPEndPoint        endPoint = transport.RTPIPEndPoint;
                try
                {
                    bool success = await network.SendPacket(packet, endPoint);
                }

                catch (Exception ex)
                {
                    _logger.Error(ex);
                }
            }
        }