[libpri-commits] rmudgett: branch group/ccss r1389 - in /team/group/ccss: ./ doc/

SVN commits to the libpri project libpri-commits at lists.digium.com
Tue Dec 15 20:23:57 CST 2009


Author: rmudgett
Date: Tue Dec 15 20:23:55 2009
New Revision: 1389

URL: http://svnview.digium.com/svn/libpri?view=rev&rev=1389
Log:
Remove non-standard use of T_RETENTION timer on CC PTMP monitor FSM.

The responsibility of safeguarding the CC records from abandonment is
passed to the upper layer.  The Asterisk CC core agent will handle this
timeout from its offer timer.

Modified:
    team/group/ccss/doc/cc_ptmp_monitor.fsm
    team/group/ccss/doc/cc_ptmp_monitor_flattened.fsm
    team/group/ccss/pri_cc.c

Modified: team/group/ccss/doc/cc_ptmp_monitor.fsm
URL: http://svnview.digium.com/svn/libpri/team/group/ccss/doc/cc_ptmp_monitor.fsm?view=diff&rev=1389&r1=1388&r2=1389
==============================================================================
--- team/group/ccss/doc/cc_ptmp_monitor.fsm (original)
+++ team/group/ccss/doc/cc_ptmp_monitor.fsm Tue Dec 15 20:23:55 2009
@@ -30,23 +30,12 @@
 	}
 	State CC_STATE_AVAILABLE {
 		/*
-		 * For PTMP TE mode the T_RETENTION timer is not defined.  However,
-		 * we will use it anyway in this state to protect our resources from
-		 * leaks caused by the network cable being disconnected.  This
-		 * timer should be set much longer than the network so normally
-		 * the CC records will be cleaned up by network activity.
+		 * The upper layer is responsible for canceling the CC available
+		 * offering as a safeguard in case the network cable is disconnected.
+		 * The timer should be set much longer than the network T_RETENTION
+		 * timer so normally the CC records will be cleaned up by network
+		 * activity.
 		 */
-		Epilog {
-			Action Stop_T_RETENTION;
-		}
-		Stimulus CC_EVENT_MSG_RELEASE {
-			Action Stop_T_RETENTION;
-			Action Start_T_RETENTION;
-		}
-		Stimulus CC_EVENT_MSG_RELEASE_COMPLETE {
-			Action Stop_T_RETENTION;
-			Action Start_T_RETENTION;
-		}
 		Stimulus CC_EVENT_CC_REQUEST {
 			/* cc_record->is_ccnr is set before event posted. */
 			Action Queue_CC_Request;
@@ -56,7 +45,8 @@
 		Stimulus CC_EVENT_TIMEOUT_T_RETENTION {
 			/*
 			 * Received EraseCallLinkageID
-			 * or T_RETENTION really timed out.
+			 * T_RETENTION expired on the network side so we will pretend
+			 * that it expired on our side.
 			 */
 			Action Pass_Up_CC_Cancel;
 			Next_State CC_STATE_IDLE;

Modified: team/group/ccss/doc/cc_ptmp_monitor_flattened.fsm
URL: http://svnview.digium.com/svn/libpri/team/group/ccss/doc/cc_ptmp_monitor_flattened.fsm?view=diff&rev=1389&r1=1388&r2=1389
==============================================================================
--- team/group/ccss/doc/cc_ptmp_monitor_flattened.fsm (original)
+++ team/group/ccss/doc/cc_ptmp_monitor_flattened.fsm Tue Dec 15 20:23:55 2009
@@ -25,39 +25,29 @@
 	}
 	State CC_STATE_AVAILABLE {
 		/*
-		 * For PTMP TE mode the T_RETENTION timer is not defined.  However,
-		 * we will use it anyway in this state to protect our resources from
-		 * leaks caused by the network cable being disconnected.  This
-		 * timer should be set much longer than the network so normally
-		 * the CC records will be cleaned up by network activity.
+		 * The upper layer is responsible for canceling the CC available
+		 * offering as a safeguard in case the network cable is disconnected.
+		 * The timer should be set much longer than the network T_RETENTION
+		 * timer so normally the CC records will be cleaned up by network
+		 * activity.
 		 */
-		Stimulus CC_EVENT_MSG_RELEASE {
-			Action Stop_T_RETENTION;
-			Action Start_T_RETENTION;
-		}
-		Stimulus CC_EVENT_MSG_RELEASE_COMPLETE {
-			Action Stop_T_RETENTION;
-			Action Start_T_RETENTION;
-		}
 		Stimulus CC_EVENT_CC_REQUEST {
 			/* cc_record->is_ccnr is set before event posted. */
 			Action Queue_CC_Request;
 			Action Start_T_ACTIVATE;
-			Action Stop_T_RETENTION;
 			Next_State CC_STATE_REQUESTED;
 		}
 		Stimulus CC_EVENT_TIMEOUT_T_RETENTION {
 			/*
 			 * Received EraseCallLinkageID
-			 * or T_RETENTION really timed out.
+			 * T_RETENTION expired on the network side so we will pretend
+			 * that it expired on our side.
 			 */
 			Action Pass_Up_CC_Cancel;
-			Action Stop_T_RETENTION;
 			Action Set_Selfdestruct;
 			Next_State CC_STATE_IDLE;
 		}
 		Stimulus CC_EVENT_CANCEL {
-			Action Stop_T_RETENTION;
 			Action Set_Selfdestruct;
 			Next_State CC_STATE_IDLE;
 		}

Modified: team/group/ccss/pri_cc.c
URL: http://svnview.digium.com/svn/libpri/team/group/ccss/pri_cc.c?view=diff&rev=1389&r1=1388&r2=1389
==============================================================================
--- team/group/ccss/pri_cc.c (original)
+++ team/group/ccss/pri_cc.c Tue Dec 15 20:23:55 2009
@@ -3415,37 +3415,30 @@
 static void pri_cc_fsm_ptmp_monitor_avail(struct pri *ctrl, q931_call *call, struct pri_cc_record *cc_record, enum CC_EVENTS event)
 {
 	/*
-	 * For PTMP TE mode the T_RETENTION timer is not defined.  However,
-	 * we will use it anyway in this state to protect our resources from
-	 * leaks caused by the network cable being disconnected.  This
-	 * timer should be set much longer than the network so normally
-	 * the CC records will be cleaned up by network activity.
+	 * The upper layer is responsible for canceling the CC available
+	 * offering as a safeguard in case the network cable is disconnected.
+	 * The timer should be set much longer than the network T_RETENTION
+	 * timer so normally the CC records will be cleaned up by network
+	 * activity.
 	 */
 	switch (event) {
-	case CC_EVENT_MSG_RELEASE:
-	case CC_EVENT_MSG_RELEASE_COMPLETE:
-		pri_cc_act_stop_t_retention(ctrl, cc_record);
-		pri_cc_act_start_t_retention(ctrl, cc_record);
-		break;
 	case CC_EVENT_CC_REQUEST:
 		/* cc_record->is_ccnr is set before event posted. */
 		pri_cc_act_queue_cc_request(ctrl, call, cc_record);
 		//pri_cc_act_start_t_activate(ctrl, cc_record);
-		pri_cc_act_stop_t_retention(ctrl, cc_record);
 		cc_record->state = CC_STATE_REQUESTED;
 		break;
 	case CC_EVENT_TIMEOUT_T_RETENTION:
 		/*
 		 * Received EraseCallLinkageID
-		 * or T_RETENTION really timed out.
+		 * T_RETENTION expired on the network side so we will pretend
+		 * that it expired on our side.
 		 */
 		pri_cc_act_pass_up_cc_cancel(ctrl, cc_record);
-		pri_cc_act_stop_t_retention(ctrl, cc_record);
 		pri_cc_act_set_self_destruct(ctrl, cc_record);
 		cc_record->state = CC_STATE_IDLE;
 		break;
 	case CC_EVENT_CANCEL:
-		pri_cc_act_stop_t_retention(ctrl, cc_record);
 		pri_cc_act_set_self_destruct(ctrl, cc_record);
 		cc_record->state = CC_STATE_IDLE;
 		break;




More information about the libpri-commits mailing list