Skip to content
Snippets Groups Projects
  1. Sep 10, 2019
    • Ben Ford's avatar
      res_rtp: Add unit tests for RTCP stats. · 0e56643d
      Ben Ford authored
      Added unit tests for RTCP video stats. These tests include NACK, REMB,
      FIR/FUR/PLI, SR/RR/SDES, and packet loss statistics. The REMB and FIR
      tests are currently disabled due to a bug. We expect to receive a
      compound packet, but the code sends this out as a single packet, which
      the browser accepts, but makes Asterisk upset.
      
      While writing these tests, I noticed an issue with NACK as well. Where
      it is handling a received NACK request, it was reading in only the first
      8 bits of following packets that were also lost. This has been changed
      to the correct value of 16 bits.
      
      Also made a minor fix to the data buffer unit test.
      
      Change-Id: I56107c7411003a247589bbb6086d25c54719901b
      0e56643d
  2. Jul 18, 2018
    • Ben Ford's avatar
      res_rtp_asterisk: Add support for sending NACK requests. · 5bacde37
      Ben Ford authored
      Support has been added for receiving a NACK request and handling it.
      Now, Asterisk can detect when a NACK request should be sent and knows
      how to construct one based on the packets we've received from the remote
      end. A buffer has been added that will store out of order packets until
      we receive the packet we are expecting. Then, these packets are handled
      like normal and frames are queued to the core like normal. Asterisk
      knows which packets to request in the NACK request using a vector
      which stores the sequence numbers of the packets we are currently missing.
      
      If a missing packet is received, cycle through the buffer until we reach
      another packet we have not received yet. If the buffer reaches a certain
      size, send a NACK request. If the buffer reaches its max size, queue all
      frames to the core and wipe the buffer and vector.
      
      According to RFC3711, the NACK request must be sent out in a compound
      packet. All compound packets must start with a sender or receiver
      report, so some work was done to refactor the current sender / receiver
      code to allow it to be used without having to also include sdes
      information and automatically send the report.
      
      Also added additional functionality to ast_data_buffer, along with some
      testing.
      
      For more information, refer to the wiki page:
      https://wiki.asterisk.org/wiki/display/AST/WebRTC+User+Experience+Improvements
      
      ASTERISK-27810 #close
      
      Change-Id: Idab644b08a1593659c92cda64132ccc203fe991d
      5bacde37
  3. Mar 28, 2018
Loading