--- trunk/res/res_pjsip_sdp_rtp.c 2015-02-06 18:11:55.298513691 +0100 +++ trunk-fir/res/res_pjsip_sdp_rtp.c 2015-02-06 18:43:50.985531526 +0100 @@ -50,6 +50,7 @@ #include "asterisk/sched.h" #include "asterisk/acl.h" #include "asterisk/sdp_srtp.h" +#include "asterisk/format_cache.h" #include "asterisk/res_pjsip.h" #include "asterisk/res_pjsip_session.h" @@ -953,6 +954,7 @@ RAII_VAR(struct ast_format_cap *, caps, NULL, ao2_cleanup); enum ast_media_type media_type = stream_to_media_type(session_media->stream_type); int use_override_prefs = ast_format_cap_count(session->req_caps); + pj_str_t pjbuf; int direct_media_enabled = !ast_sockaddr_isnull(&session_media->direct_media_addr) && ast_format_cap_count(session->direct_media_cap); @@ -1048,7 +1050,14 @@ if ((attr = generate_fmtp_attr(pool, format, rtp_code))) { media->attr[media->attr_count++] = attr; } - + + if (ast_format_cmp(format, ast_format_vp8) == AST_FORMAT_CMP_EQUAL) { + pjbuf = pj_str("* ccm fir"); + if ((attr = pjmedia_sdp_attr_create(pool, "rtcp-fb", &pjbuf))) { + media->attr[media->attr_count++] = attr; + } + } + if (ast_format_get_maximum_ms(format) && ((ast_format_get_maximum_ms(format) < max_packet_size) || !max_packet_size)) { max_packet_size = ast_format_get_maximum_ms(format);