Fix usage of rtptimeout. It can be used without rtpkeepalive, and the value can not...
authorJoshua Colp <jcolp@digium.com>
Mon, 17 Dec 2007 15:18:58 +0000 (15:18 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 17 Dec 2007 15:18:58 +0000 (15:18 +0000)
(closes issue #11562)
Reported by: ibc

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@93190 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 6e5a3b1..fc9c49b 100644 (file)
@@ -16921,7 +16921,7 @@ static void check_rtp_timeout(struct sip_pvt *dialog, time_t t)
                return;
 
        /* If we have no timers set, return now */
                return;
 
        /* If we have no timers set, return now */
-       if (ast_rtp_get_rtpkeepalive(dialog->rtp) == 0 || (ast_rtp_get_rtptimeout(dialog->rtp) == 0 && ast_rtp_get_rtpholdtimeout(dialog->rtp) == 0))
+       if ((ast_rtp_get_rtpkeepalive(dialog->rtp) == 0) && (ast_rtp_get_rtptimeout(dialog->rtp) == 0) && (ast_rtp_get_rtpholdtimeout(dialog->rtp) == 0))
                return;
 
        /* Check AUDIO RTP keepalives */
                return;
 
        /* Check AUDIO RTP keepalives */
@@ -16948,7 +16948,7 @@ static void check_rtp_timeout(struct sip_pvt *dialog, time_t t)
                if (sin.sin_addr.s_addr || (ast_rtp_get_rtpholdtimeout(dialog->rtp) &&
                     (t > dialog->lastrtprx + ast_rtp_get_rtpholdtimeout(dialog->rtp)))) {
                        /* Needs a hangup */
                if (sin.sin_addr.s_addr || (ast_rtp_get_rtpholdtimeout(dialog->rtp) &&
                     (t > dialog->lastrtprx + ast_rtp_get_rtpholdtimeout(dialog->rtp)))) {
                        /* Needs a hangup */
-                       if (dialog->rtptimeout) {
+                       if (ast_rtp_get_rtptimeout(dialog->rtp)) {
                                while (dialog->owner && ast_channel_trylock(dialog->owner)) {
                                        sip_pvt_unlock(dialog);
                                        usleep(1);
                                while (dialog->owner && ast_channel_trylock(dialog->owner)) {
                                        sip_pvt_unlock(dialog);
                                        usleep(1);