It appears that a call is not ended if it is bridged when the RTP timeout expires.
If ‘canreinvite’ is set to no, then can we safely end the call based on RTP inactivity? Or Even in this case is there a possibility for an active call even though RTP packets are not going through the asterisk box?
If canreinvite is set to no then the RTP stream will go through asterisk. I have actually tested rtptimeout with asterisk.
- If the call is on hold then the system will not go by rtptimeout but by rtpholdtimeout.
- If you put both calls on mute it seems there is some RTP traffic which is why the call may not get hung up on.
To test if your settings are working. Make a call from one phone to another on the system. In middle of the call yank out the network cable from one of the phones. The system should hang up the call after the amount of time that you specified for rtptimeout.
Thanks for the response…My question is slightly different…
- When the rtptimeout expires, a hung call is not ended because that call is bridged. However in my case we always have ‘canreinvite’ set to ‘no’. Which means the RTP will always go through asterisk.
My question is, is it safe to modify chap_sip.c so that, along with checking whether a call is bridged or not, it also checks the ‘canreinvite’ flag. THe logic I’m using is
if ‘call is not bridged’ or ‘canreinvite is no’ then issue a soft hangup.
I think this will work, but I’m not sure if there’re some side effects that I’m not thinking about…
Off the top of my head I can’t think of it causing any issues. Regardless if the call is bridged or not if there is no rtp traffic after the amount of time that you set asterisk should hang up the call. Test this by pulling out the plug of the phone during a call.