--- channels/chan_sip.c (Asterisk 13.6.0) +++ channels/chan_sip.c (working copy) @@ -11118,7 +11118,7 @@ if (framing && p->autoframing) { ast_debug(1, "Setting framing to %ld\n", framing); - ast_rtp_codecs_set_framing(ast_rtp_instance_get_codecs(p->rtp), framing); + ast_format_cap_set_framing(p->caps, framing); } found = TRUE; } else if (sscanf(a, "rtpmap: %30u %127[^/]/%30u", &codec, mimeSubtype, &sample_rate) == 3) { @@ -13441,6 +13441,11 @@ ast_str_append(&a_audio, 0, "a=maxptime:%d\r\n", max_audio_packet_size); } + if (!ast_test_flag(&p->flags[0], SIP_OUTGOING)) { + ast_debug(1, "Setting framing on incoming call: %u\n", min_audio_packet_size); + ast_rtp_codecs_set_framing(ast_rtp_instance_get_codecs(p->rtp), min_audio_packet_size); + } + if (!doing_directmedia) { if (ast_test_flag(&p->flags[2], SIP_PAGE3_ICE_SUPPORT)) { add_ice_to_sdp(p->rtp, &a_audio); @@ -13733,10 +13738,6 @@ add_cc_call_info_to_response(p, &resp); } if (p->rtp) { - if (!p->autoframing && !ast_test_flag(&p->flags[0], SIP_OUTGOING)) { - ast_debug(1, "Setting framing from config on incoming call\n"); - ast_rtp_codecs_set_framing(ast_rtp_instance_get_codecs(p->rtp), ast_format_cap_get_framing(p->caps)); - } ast_rtp_instance_activate(p->rtp); try_suggested_sip_codec(p); if (p->t38.state == T38_ENABLED) {