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); }
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); } } }