diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 309a21b4a4..9b8c5836d3 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -9216,6 +9216,10 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action /* Ensure RTCP is enabled since it may be inactive if we're coming back from a T.38 session */ ast_rtp_instance_set_prop(p->rtp, AST_RTP_PROPERTY_RTCP, 1); + /* Ensure audio RTCP reads are enabled */ + if (p->owner) { + ast_channel_set_fd(p->owner, 1, ast_rtp_instance_fd(p->rtp, 1)); + } if (ast_test_flag(&p->flags[0], SIP_DTMF) == SIP_DTMF_AUTO) { ast_clear_flag(&p->flags[0], SIP_DTMF); @@ -9232,6 +9236,10 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action } else if (udptlportno > 0) { if (debug) ast_verbose("Got T.38 Re-invite without audio. Keeping RTP active during T.38 session.\n"); + /* Prevent audio RTCP reads */ + if (p->owner) { + ast_channel_set_fd(p->owner, 1, -1); + } /* Silence RTCP while audio RTP is inactive */ ast_rtp_instance_set_prop(p->rtp, AST_RTP_PROPERTY_RTCP, 0); } else {