Can't get rtcp to work...
Hello, I've recently moved from Asterisk to Freeswitch and I'm trying to setup a FS on a cloud solution. I have mixed results from previous projects with Asterisk on cloud servers, but this one is just going to proxy media, so I'll give it a shot ;-) I'm going to log the rtcp stats into the cdr, so I can be sure things are ok, but most of the rtcp related stats all contain "0" and mos score 4.5 (even if I randomly drop rtp packets for a couple of seconds to simulate packet loss... not good). The client uses an asterisk, which is sending rtcp reciever reports to FS, however FS is not listening on the rtcp port at all (rtp port +1) and server just sends back icmp unreach. (it's not muxed into the rtp) Also FS is not sending rtcp packets, from what I can see, so I suspect rtcp is somehow not enabled for the channel / session at all. I've added the "rtcp-audio-interval-msec" to the sip profile, so it should work, but it's not.. I've checked the source and even enabled the RTCP_DEBUG in the source to get a clue, but no help there. Asterisk is not actually adding anything about rtcp to the sdp, but is that really needed to get the rtcp working? I'm not using ICE or anything, just a simple setup for this. Is there any way to see if FS is disabling the rtcp feature and if so, why? Any ideas on what can be done to get things working? ;-) Thank you and have a excellent day! / Allan
Ok, digged into 'switch_core_media.c' and apparently the 'remote_rtcp_port' is 0, so the function 'switch_rtp_activate_rtcp' is never called, which I assume means rtcp is never enabled.
From what I can see, it's set from channel variable "rtp_remote_audio_rtcp_port" and going backwards it looks like it comes from negotiating the sdp and the "a=rtcp:<port>" - so because the remote sip client never provides this, nothing is set. I'm I wrong? (it's sooome time since I've done C code ;-)
Just to make sure I did a <param name="rtcp-video-interval-msec" value="passthru"/> in the sip_profile because I can see 'remote_port' branching happen later in the source and voilá: 2016-05-23 08:59:41.252648 [INFO] switch_core_media.c:6549 Activating RTCP PASSTHRU PORT 0 2016-05-23 08:59:41.252648 [DEBUG] switch_rtp.c:4189 RTCP passthru enabled. Remote Port: 29991 However I wish to monitor each leg separately, so this is not a viable option to me (and I'm no sure it works with remote port = 0 actually, haven't checked the code) Long story short, couldn't/shouldn't FS just assume that 'remote_rtcp_port' is rtp_port +1 if 'a=rtcp' is missing in the in the SDP? Hope someone can help ;-) Regards, Allan On Sat, May 21, 2016 at 7:13 PM, Allan Kristensen <ak@hejdu.dk> wrote:
Hello,
I've recently moved from Asterisk to Freeswitch and I'm trying to setup a FS on a cloud solution. I have mixed results from previous projects with Asterisk on cloud servers, but this one is just going to proxy media, so I'll give it a shot ;-)
I'm going to log the rtcp stats into the cdr, so I can be sure things are ok, but most of the rtcp related stats all contain "0" and mos score 4.5 (even if I randomly drop rtp packets for a couple of seconds to simulate packet loss... not good).
The client uses an asterisk, which is sending rtcp reciever reports to FS, however FS is not listening on the rtcp port at all (rtp port +1) and server just sends back icmp unreach. (it's not muxed into the rtp) Also FS is not sending rtcp packets, from what I can see, so I suspect rtcp is somehow not enabled for the channel / session at all.
I've added the "rtcp-audio-interval-msec" to the sip profile, so it should work, but it's not.. I've checked the source and even enabled the RTCP_DEBUG in the source to get a clue, but no help there.
Asterisk is not actually adding anything about rtcp to the sdp, but is that really needed to get the rtcp working? I'm not using ICE or anything, just a simple setup for this.
Is there any way to see if FS is disabling the rtcp feature and if so, why?
Any ideas on what can be done to get things working? ;-)
Thank you and have a excellent day! / Allan
participants (1)
-
Allan Kristensen