automerge commit

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@38631 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Automerge script
2006-07-31 22:03:05 +00:00
parent 3a4688c5ba
commit 1f18490cdd

View File

@@ -11549,7 +11549,11 @@ static void *do_monitor(void *data)
restartsearch:
time(&t);
sip = iflist;
while(sip) {
/* don't scan the interface list if it hasn't been a reasonable period
of time since the last time we did it (when MWI is being sent, we can
get back to this point every millisecond or less)
*/
while(!fastrestart && sip) {
ast_mutex_lock(&sip->lock);
if (sip->rtp && sip->owner && (sip->owner->_state == AST_STATE_UP) && !sip->redirip.sin_addr.s_addr) {
if (sip->lastrtptx && sip->rtpkeepalive && t > sip->lastrtptx + sip->rtpkeepalive) {
@@ -11574,8 +11578,14 @@ restartsearch:
if (sip->owner) {
ast_log(LOG_NOTICE, "Disconnecting call '%s' for lack of RTP activity in %ld seconds\n", sip->owner->name, (long)(t - sip->lastrtprx));
/* Issue a softhangup */
ast_softhangup(sip->owner, AST_SOFTHANGUP_DEV);
ast_softhangup_nolock(sip->owner, AST_SOFTHANGUP_DEV);
ast_mutex_unlock(&sip->owner->lock);
/* forget the timeouts for this call, since a hangup
has already been requested and we don't want to
repeatedly request hangups
*/
sip->rtptimeout = 0;
sip->rtpholdtimeout = 0;
}
}
}