From: Kevin Harwell Date: Wed, 24 Feb 2021 22:05:32 +0000 (-0600) Subject: res_rtp_asterisk: Add packet subtype during RTCP debug when relevant X-Git-Tag: 18.3.0-rc1~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be0a61bc3d1709b45e39540f48c115898eca0b93;p=thirdparty%2Fasterisk.git res_rtp_asterisk: Add packet subtype during RTCP debug when relevant For some RTCP packet types the report count is actually the packet's subtype. This was not being reflected in the packet debug output. This patch makes it so for some RTCP packet types a "Packet Subtype" is now output in the debug replacing the "Reception reports" (i.e count). Change-Id: Id4f4b77bb37077a4c4f039abd6a069287bfefcb8 --- diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index ad9cb7d6cc..403c397f6c 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -5926,6 +5926,26 @@ static const char *rtcp_payload_type2str(unsigned int pt) return str; } +static const char *rtcp_payload_subtype2str(unsigned int pt, unsigned int subtype) +{ + switch (pt) { + case AST_RTP_RTCP_RTPFB: + if (subtype == AST_RTP_RTCP_FMT_NACK) { + return "NACK"; + } + break; + case RTCP_PT_PSFB: + if (subtype == AST_RTP_RTCP_FMT_REMB) { + return "REMB"; + } + break; + default: + break; + } + + return NULL; +} + /*! \pre instance is locked */ static int ast_rtp_rtcp_handle_nack(struct ast_rtp_instance *instance, unsigned int *nackdata, unsigned int position, unsigned int length) @@ -6255,10 +6275,16 @@ static struct ast_frame *ast_rtcp_interpret(struct ast_rtp_instance *instance, s } if (rtcp_debug_test_addr(addr)) { + const char *subtype = rtcp_payload_subtype2str(pt, rc); + ast_verbose("\n"); ast_verbose("RTCP from %s\n", ast_sockaddr_stringify(addr)); - ast_verbose("PT: %u(%s)\n", pt, rtcp_payload_type2str(pt)); - ast_verbose("Reception reports: %u\n", rc); + ast_verbose("PT: %u (%s)\n", pt, rtcp_payload_type2str(pt)); + if (subtype) { + ast_verbose("Packet Subtype: %u (%s)\n", rc, subtype); + } else { + ast_verbose("Reception reports: %u\n", rc); + } ast_verbose("SSRC of sender: %u\n", ssrc); }