Summary:ASTERISK-07913: rtpholdtimeout and rtcp packets
Reporter:Pavel Siderov (psiderov)Labels:
Date Opened:2006-10-11 09:15:29Date Closed:2006-11-30 00:33:28.000-0600
Versions:Frequency of
Description:rtpholdtimeout setting in sip.conf should hang the call after defined time if it's onhold, but if * get an rtcp packet in that interval it doesn't hang the call. It's not related to Asterisk 1.4.x only but to 1.2.x too. Haven't tested it on other versions.
Comments:By: Olle Johansson (oej) 2006-10-29 03:03:53.000-0600

If we get an rtcp packet - then the other end is still alive, isn't it. We should not hangup then - only if we get no RTP *or* RTCP, which indicates that the device on the other side has gone off line.

By: Olle Johansson (oej) 2006-11-07 11:34:05.000-0600

No answer from reporter.

By: Olle Johansson (oej) 2006-11-07 11:34:06.000-0600

No answer from reporter.

By: Pavel Siderov (psiderov) 2006-11-07 18:43:04.000-0600

Ok, then maybe the variable in the sip.conf should not be called rtpholdtimeout or there should be two variables - rtpholdtimeout and rtcpholdtimeout. I thought that rtpholdtimeout is used to hangup call that has been "forgotten" but in this scenario we never close it due to the reason there are rtcp packets.

By: Olle Johansson (oej) 2006-11-08 03:38:55.000-0600

rtcp is really part of rtp. There must be a configuration issue here if your device stops sending rtp and keeps sending rtcp. Do you have VAD or silence suppression on in the device?

By: Olle Johansson (oej) 2006-11-12 15:07:50.000-0600

No answer from reporter. Case closed.

By: Pavel Siderov (psiderov) 2006-11-28 02:56:18.000-0600

Sorry for the late answer.

I don't think that there is a configuration issue. We use Linksys SPA devices (SPA1001,SPA2002,SPA2102,SPA3000...) and when the call is put on hold devices keep transmitting rtcp packets. I think it's normal. VAD and silence suppression are switched off.

P.S. Thanks for the great lecture on the VON Europe Conference :).

By: Pavel Siderov (psiderov) 2006-11-28 10:04:59.000-0600

In cisco IOS there is a setting / command "timer receive-rtcp" ( http://www.cisco.com/en/US/products/sw/iosswrel/ps1839/products_feature_guide09186a0080087ea6.html#1024166 ) which disconnects the call if there is no rtcp for a defined period.

By: Olle Johansson (oej) 2006-11-29 01:23:28.000-0600

Absolutely and that's correct behaviour. If we get no RTP *and* no RTCP we should disconnect. The issue here is that we do not disconnect if we're getting RTCP, which I think is correct behaviour. If RTCP dies, we should kill. I think we should change documentation so people understand this.

By: Pavel Siderov (psiderov) 2006-11-29 02:37:08.000-0600

Ok, we have set rtpholdtimeout=120. A call is put on hold and we want to disconnect it after 2 minutes of rtp inactivity and in the same time if the device loose connectivity after 30 secs (after the call is put on hold) it will stop transmitting rtcp packets so we need to wait this 2 minutes to expire and than hang the call? Wouldn't it be better if we have a rtcp timer that is set for example at 30 seconds and disconnect the call in that time? I think this is more accurate and Cisco has this option for fine tunning too.

By: Olle Johansson (oej) 2006-11-30 00:32:12.000-0600

Well, that may be something for the future. This is no longer a bug report, more of a feature request.

We always welcome patches for svn trunk!

By: Olle Johansson (oej) 2006-11-30 00:33:11.000-0600

We can re-open this issue when we do have a patch or another solution.