Rtcp PLI/NACK/FIR/TMMBR on non-WebRTC video calls?

Please help me configure pjsip.conf to get the following items in the SDP of a h264 video call:

a=rtcp-fb:* ccm tmmbr
a=rtcp-fb:* ccm fir
a=rtcp-fb:* nack pli
a=rtcp-fb:* nack

The company I want to send the video calls to assures me they can send this SDP with an Asterisk server in a non-webrtc call. The issue is the video freezes too often. The provider tells me if I want to fix it I must enable the above rtcp featues. Based on my research, and setting webrtc=yes the best I can make appear in the SDP is the following:

rtcp-fb:* trasnsport-cc
rtcp-fb:* ccm fir
rtcp-fb:* goog-remb
rtcp-fb:* nack

Not exactly the same SDP, although it should be okay?. Which brings my second question: How can I additionally activate “a=rtcp-fb:* ccm tmmbr” and “a=rtcp-fb:* nack pli” on non-webrtc endpoints?. I get that this rtcp features are only available on webrtc calls (according to what I have read), but it is a current discussion I am having with the other engineers who claim they are currently enabling these rtcp features using non-webrtc Asterisk (albeit they won’t show me lol). Specifically when I set use_avpf=yes it seems to override my media_encrytion=no setting, since they claim they are receiving my call encrypted.

Can someone please confirm or correct me?

The following is my endpoint configuration. Please note it is on a Realtime database, therefore the NULL values. I assume anything NULL will be default. Again, this is suppposed to be a non-webrtc configuration.

Thanks

Configuration:
id = ‘endpoint_name’
allow = ‘h264,h263,vp8,alaw,ulaw,gsm’
asymmetric_rtp_codec = ‘no’
aors = ‘aor_name’
auth = NULL
bind_rtp_to_media_address = NULL
call_group = NULL
cos_audio = NULL
cos_video = NULL
context = ‘phone1’
connected_line_method = NULL
contact_user = ‘5161234567’
contact_deny = NULL
contact_permit = NULL
contact_acl = NULL
deny = NULL
device_state_busy_at = 1
direct_media = ‘no’
direct_media_method = NULL
direct_media_glare_mitigation = NULL
disable_direct_media_on_nat = NULL
dtmf_mode = NULL
dtls_verify = ‘no’
dtls_rekey = NULL
dtls_cert_file = NULL
dtls_private_key = NULL
dtls_cipher = NULL
dtls_ca_file = NULL
dtls_ca_path = NULL
dtls_setup = NULL
external_media_address = NULL
force_rport = ‘yes’
force_avp = ‘yes’
ice_support = ‘no’
inband_progress = NULL
identify_by = NULL
max_audio_streams = 50
max_video_streams = 50
media_address = NULL
media_encryption = ‘no’
media_encryption_optimistic = NULL
media_use_received_transport = ‘yes’
message_context = NULL
named_call_group = NULL
named_pickup_group = NULL
outbound_auth = NULL
outbound_proxy = NULL
permit = NULL
redirect_method = NULL
rewrite_contact = ‘yes’
rpid_immediate = NULL
rtcp_mux = ‘yes’
rtp_engine = NULL
rtp_ipv6 = NULL
rtp_keepalive = NULL
rtp_symmetric = NULL
rtp_timeout = NULL
rtp_timeout_hold = NULL
send_diversion = NULL
send_pai = NULL
send_rpid = NULL
sdp_owner = NULL
sdp_session = NULL
srtp_tag_32 = NULL
sub_min_expiry = NULL
subscribe_context = NULL
timers = NULL
timers_sess_expires = NULL
timers_min_se = NULL
tone_zone = NULL
tos_audio = NULL
tos_video = NULL
transport ‘tcp-transport’
trust_id_inbound = NULL
trust_id_outbound = ‘yes’
use_ptime = NULL
use_avpf = ‘yes’
webrtc = NULL

You can’t. Those are only present when WebRTC is enabled.

Thank you Josh. What about the differences that still exist between the SDP they want me to send and the SDP I can send even with webrtc=yes, will it matter?, how can I make the rtcp-fb:* ccm tmmbr and the nack pli be offered in the SDP? Also, is there anything from my endpoint configuration you would advise me to set different for better performance?
Thanks

You’d have to modify the source code, and that doesn’t mean that Asterisk itself will gain support for what is mentioned in the attributes which would mean implementing the RTCP functionality for it. Whether it matters or not I can’t answer. I also don’t know what “performance” you mean.

Thanks, by performance I mean if I change any of the parameters in the configuration will the video freeze a bit less?. To give you an example: the rtp_keepalive, or the rtp_symmetric, etc. The server is in production and it is impossible to experiment with parameters on the fly in the production servers, and the production environment can not be replicated in development.

Nope.

Thanks Josh.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.