[Asterisk-code-review] res rtp asterisk: Add support for sending NACK requests. (asterisk[15])

Benjamin Keith Ford asteriskteam at digium.com
Wed Jun 20 13:44:33 CDT 2018


Hello Jenkins2, Sean Bright, 

I'd like you to reexamine a change. Please visit

    https://gerrit.asterisk.org/9224

to look at the new patch set (#2).

Change subject: res_rtp_asterisk: Add support for sending NACK requests.
......................................................................

res_rtp_asterisk: Add support for sending NACK requests.

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 frames until
we receive the packet we are expecting. Then, these 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
---
M include/asterisk/data_buffer.h
M main/data_buffer.c
M res/res_rtp_asterisk.c
M tests/test_data_buffer.c
4 files changed, 449 insertions(+), 74 deletions(-)


  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/24/9224/2
-- 
To view, visit https://gerrit.asterisk.org/9224
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 15
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Idab644b08a1593659c92cda64132ccc203fe991d
Gerrit-Change-Number: 9224
Gerrit-PatchSet: 2
Gerrit-Owner: Benjamin Keith Ford <bford at digium.com>
Gerrit-Reviewer: Jenkins2
Gerrit-Reviewer: Sean Bright <sean.bright at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180620/db87b5fb/attachment.html>


More information about the asterisk-code-review mailing list