[svn-commits] oej: branch oej/pinefrog-rtcp-1.8 r414675 - in /team/oej/pinefrog-rtcp-1.8: ....

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed May 28 03:08:28 CDT 2014


Author: oej
Date: Wed May 28 03:08:17 2014
New Revision: 414675

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=414675
Log:
Reset and remerge

Modified:
    team/oej/pinefrog-rtcp-1.8/   (props changed)
    team/oej/pinefrog-rtcp-1.8/channels/chan_sip.c

Propchange: team/oej/pinefrog-rtcp-1.8/
------------------------------------------------------------------------------
    automerge = Is-there-life-off-net?

Propchange: team/oej/pinefrog-rtcp-1.8/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed May 28 03:08:17 2014
@@ -1,1 +1,1 @@
-/branches/1.8:1-414604
+/branches/1.8:1-414674

Modified: team/oej/pinefrog-rtcp-1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinefrog-rtcp-1.8/channels/chan_sip.c?view=diff&rev=414675&r1=414674&r2=414675
==============================================================================
--- team/oej/pinefrog-rtcp-1.8/channels/chan_sip.c (original)
+++ team/oej/pinefrog-rtcp-1.8/channels/chan_sip.c Wed May 28 03:08:17 2014
@@ -6909,6 +6909,12 @@
 		res = transmit_response_with_sdp(p, "200 OK", &p->initreq, XMIT_CRITICAL, oldsdp, TRUE);
 		ast_set_flag(&p->flags[1], SIP_PAGE2_DIALOG_ESTABLISHED);
 		start_rtcp_events(p, sched);
+
+		/* RFC says the session timer starts counting on 200,
+		 * not on INVITE. */
+		if (p->stimer->st_active == TRUE) {
+			start_session_timer(p);
+		}
 	}
 	sip_pvt_unlock(p);
 	return res;
@@ -23844,12 +23850,8 @@
 		ast_party_redirecting_free(&redirecting);
 	}
 
-	if (p->stimer->st_active == TRUE) {
-		if (reinvite == 0) {
-			start_session_timer(p);
-		} else {
-			restart_session_timer(p);
-		}
+	if (reinvite && p->stimer->st_active == TRUE) {
+		restart_session_timer(p);
 	}
 
 	if (!req->ignore && p)
@@ -24866,7 +24868,9 @@
 	}
 
 	stop_media_flows(p); /* Immediately stop RTP, VRTP and UDPTL as applicable */
-	stop_session_timer(p); /* Stop Session-Timer */
+	if (p->stimer) {
+		stop_session_timer(p); /* Stop Session-Timer */
+	}
 
 	if (!ast_strlen_zero(get_header(req, "Also"))) {
 		ast_log(LOG_NOTICE, "Client '%s' using deprecated BYE/Also transfer method.  Ask vendor to support REFER instead\n",
@@ -26897,11 +26901,6 @@
 /*! \brief Session-Timers: Restart session timer */
 static void restart_session_timer(struct sip_pvt *p)
 {
-	if (!p->stimer) {
-		ast_log(LOG_WARNING, "Null stimer in restart_session_timer - %s\n", p->callid);
-		return;
-	}
-
 	if (p->stimer->st_active == TRUE) {
 		ast_debug(2, "Session timer stopped: %d - %s\n", p->stimer->st_schedid, p->callid);
 		AST_SCHED_DEL_UNREF(sched, p->stimer->st_schedid,
@@ -26914,11 +26913,6 @@
 /*! \brief Session-Timers: Stop session timer */
 static void stop_session_timer(struct sip_pvt *p)
 {
-	if (!p->stimer) {
-		ast_log(LOG_WARNING, "Null stimer in stop_session_timer - %s\n", p->callid);
-		return;
-	}
-
 	if (p->stimer->st_active == TRUE) {
 		p->stimer->st_active = FALSE;
 		ast_debug(2, "Session timer stopped: %d - %s\n", p->stimer->st_schedid, p->callid);
@@ -26932,11 +26926,6 @@
 static void start_session_timer(struct sip_pvt *p)
 {
 	unsigned int timeout_ms;
-
-	if (!p->stimer) {
-		ast_log(LOG_WARNING, "Null stimer in start_session_timer - %s\n", p->callid);
-		return;
-	}
 
 	if (p->stimer->st_schedid > -1) {
 		/* in the event a timer is already going, stop it */
@@ -27027,7 +27016,11 @@
 		/* An error occurred.  Stop session timer processing */
 		if (p->stimer) {
 			ast_debug(2, "Session timer stopped: %d - %s\n", p->stimer->st_schedid, p->callid);
+			/* Don't pass go, don't collect $200.. we are the scheduled
+			 * callback. We can rip ourself out here. */
 			p->stimer->st_schedid = -1;
+			/* Calling stop_session_timer is nice for consistent debug
+			 * logs. */
 			stop_session_timer(p);
 		}
 




More information about the svn-commits mailing list