[libpri-commits] rmudgett: branch rmudgett/q931_fsm r2255 - /team/rmudgett/q931_fsm/doc/

SVN commits to the libpri project libpri-commits at lists.digium.com
Tue Mar 15 12:57:48 CDT 2011


Author: rmudgett
Date: Tue Mar 15 12:57:44 2011
New Revision: 2255

URL: http://svnview.digium.com/svn/libpri?view=rev&rev=2255
Log:
More Q.931 SDL updates for user side.

Modified:
    team/rmudgett/q931_fsm/doc/q931_user.fsm

Modified: team/rmudgett/q931_fsm/doc/q931_user.fsm
URL: http://svnview.digium.com/svn/libpri/team/rmudgett/q931_fsm/doc/q931_user.fsm?view=diff&rev=2255&r1=2254&r2=2255
==============================================================================
--- team/rmudgett/q931_fsm/doc/q931_user.fsm (original)
+++ team/rmudgett/q931_fsm/doc/q931_user.fsm Tue Mar 15 12:57:44 2011
@@ -20,30 +20,15 @@
 	Stimulus Q931_EV_MSG_STATUS_ENQUIRY {
 		Action Send(STATUS(current_state));
 	}
-
-#if 0
-	Stimulus Q931_EV_MSG_STATUS {
-		if (Get_STATUS_Call_State == Q931_CALL_STATE_NULL) {
-			Action Post_Mgmt(HANGUP(cause));
-			Next_State q931_user_null;
-		}
-	}
-	Stimulus Q931_EV_MSG_RELEASE {
-		/* Ignore RELEASE messages. */
-	}
-	Stimulus Q931_EV_MSG_RELEASE_COMPLETE {
-		/* Ignore RELEASE_COMPLETE messages. */
-	}
-	Stimulus Q931_EV_MSG_other {
-		if (cause_option) {
-			Action Send(STATUS(PRI_CAUSE_WRONG_MESSAGE));
-		} else if (message_known) {
-			Action Send(STATUS(PRI_CAUSE_WRONG_CALL_STATE));
-		} else {
-			Action Send(STATUS(PRI_CAUSE_MESSAGE_TYPE_NONEXIST));
-		}
-	}
-#endif
+	Stimulus Q931_EV_DL_RELEASE_IND {
+		/* Ignore. */
+	}
+	Stimulus Q931_EV_DL_ESTABLISH_IND {
+		/* Ignore. */
+	}
+	Stimulus Q931_EV_DL_ESTABLISH_CONFIRM {
+		/* Ignore. */
+	}
 
 /* ******************************************************************** */
 
@@ -72,7 +57,7 @@
 		}
 		Stimulus Q931_EV_MGMT_SETUP {
 			/* Call reference already selected when call structure created. */
-			//Action Pick_Call_Reference;
+			Action Pick_Call_Reference;
 			Action Send(SETUP);
 			Action Start_T303;
 			Next_State q931_user_call_initiated;
@@ -124,6 +109,7 @@
 		Stimulus Q931_EV_MSG_RELEASE_COMPLETE {
 			Action Stop_T303;
 			Action Post_Mgmt(HANGUP(cause));
+			Action Release_Call_Reference;
 			Next_State q931_user_null;
 		}
 		Stimulus Q931_EV_MSG_PROCEEDING {
@@ -138,6 +124,7 @@
 				Action Start_T303;
 			} else {
 				Action Post_Mgmt(HANGUP(PRI_CAUSE_NO_USER_RESPONSE));
+				Action Release_Call_Reference;
 				Next_State q931_user_null;
 			}
 		}
@@ -209,6 +196,18 @@
 			Action Post_Mgmt(HANGUP(cause));
 			Next_State q931_user_disconnect_request;
 		}
+		Stimulus Q931_EV_DL_ESTABLISH_IND {
+			Action Send(DISCONNECT());
+			Action Start_T305;
+			Action Post_Mgmt(HANGUP(cause));
+			Next_State q931_user_disconnect_request;
+		}
+		Stimulus Q931_EV_DL_RELEASE_IND {
+			Action Post_Mgmt(HANGUP(PRI_CAUSE_NETWORK_OUT_OF_ORDER));
+			Action Stop_T304;
+			Action Release_Call_Reference;
+			Next_State q931_user_null;
+		}
 	}
 
 /* ******************************************************************** */
@@ -289,7 +288,6 @@
 		}
 		Stimulus Q931_EV_MGMT_ALERTING {
 			Action Send(ALERTING);
-			Action Start_T302;
 			Next_State q931_user_call_delivered;
 		}
 		Stimulus Q931_EV_MGMT_CONNECT {
@@ -311,6 +309,7 @@
 		Stimulus Q931_EV_MSG_RELEASE {
 			Action Post_Mgmt(HANGUP(cause));
 			Action Send(RELEASE_COMPLETE);
+			Action Release_Call_Reference;
 			Next_State q931_user_null;
 		}
 		Stimulus Q931_EV_MSG_DISCONNECT {
@@ -420,6 +419,7 @@
 			Action Stop_T305;
 			Action Post_Mgmt(HANGUP(cause));
 			Action Send(RELEASE_COMPLETE(cause));
+			Action Release_Call_Reference;
 			Next_State q931_user_null;
 		}
 		Stimulus Q931_EV_MSG_DISCONNECT {
@@ -457,6 +457,7 @@
 		Stimulus Q931_EV_MSG_RELEASE {
 			Action Post_Mgmt(HANGUP(cause));
 			Action Send(RELEASE_COMPLETE(cause));
+			Action Release_Call_Reference;
 			Next_State q931_user_null;
 		}
 		Stimulus Q931_EV_MGMT_RELEASE_REQ {
@@ -479,6 +480,7 @@
 		Stimulus Q931_EV_MSG_SUSPEND_ACKNOWLEDGE {
 			Action Stop_T319;
 			Action Post_Mgmt(SUSPEND_ACKNOWLEDGE);
+			Action Release_Call_Reference;
 			Next_State q931_user_null;
 		}
 		Stimulus Q931_EV_MSG_SUSPEND_REJECT {
@@ -495,6 +497,7 @@
 			Action Stop_T319;
 			Action Post_Mgmt(HANGUP(cause));
 			Action Send(RELEASE_COMPLETE(cause));
+			Action Release_Call_Reference;
 			Next_State q931_user_null;
 		}
 		Stimulus Q931_EV_TIMEOUT_T319 {
@@ -545,11 +548,13 @@
 		Stimulus Q931_EV_MSG_RELEASE_COMPLETE {
 			Action Stop_T308;
 			Action Post_Mgmt(HANGUP_ACKNOWLEDGE);
+			Action Release_Call_Reference;
 			Next_State q931_user_null;
 		}
 		Stimulus Q931_EV_MSG_RELEASE {
 			Action Stop_T308;
 			Action Post_Mgmt(HANGUP_ACKNOWLEDGE);
+			Action Release_Call_Reference;
 			Next_State q931_user_null;
 		}
 		Stimulus Q931_EV_TIMEOUT_T308 {
@@ -559,12 +564,14 @@
 			} else {
 				/* B channel should be placed in maintenance mode */
 				Action Post_Mgmt(HANGUP_ACKNOWLEDGE(timeout));
+				Action Release_Call_Reference;
 				Next_State q931_user_null;
 			}
 		}
 		Stimulus Q931_EV_MSG_STATUS {
 			if (Get_STATUS_Call_State == Q931_CALL_STATE_NULL) {
 				Action Post_Mgmt(HANGUP(cause));
+				Action Release_Call_Reference;
 				Next_State q931_user_null;
 			}
 		}
@@ -581,7 +588,11 @@
 		Epilog {
 		}
 		Stimulus Q931_EV_MSG_INFORMATION {
-			Action Post_Mgmt(INFORMATION(digits));
+			if (keypad_digits) {
+				Action Post_Mgmt(KEYPAD_DIGITS(digits));
+			} else {
+				Action Post_Mgmt(INFORMATION(digits));
+			}
 			if (display) {
 				Action Post_Mgmt(INFORMATION(display_text));
 			}
@@ -609,6 +620,19 @@
 		Stimulus Q931_EV_MGMT_PROGRESS {
 			Action Send(PROGRESS);
 		}
+		Stimulus Q931_EV_DL_ESTABLISH_IND {
+			Action Stop_T302;
+			Action Send(DISCONNECT());
+			Action Start_T305;
+			Action Post_Mgmt(HANGUP(cause));
+			Next_State q931_user_disconnect_request;
+		}
+		Stimulus Q931_EV_DL_RELEASE_IND {
+			Action Post_Mgmt(HANGUP(PRI_CAUSE_NETWORK_OUT_OF_ORDER));
+			Action Stop_T302;
+			Action Release_Call_Reference;
+			Next_State q931_user_null;
+		}
 	}
 
 /* ******************************************************************** */
@@ -629,9 +653,11 @@
 		}
 		Stimulus Q931_EV_MSG_RELEASE {
 			Action Send(RELEASE_COMPLETE(PRI_CAUSE_NORMAL_CLEARING));
+			Action Release_Call_Reference;
 			Next_State q931_user_null;
 		}
 		Stimulus Q931_EV_MSG_RELEASE_COMPLETE {
+			Action Release_Call_Reference;
 			Next_State q931_user_null;
 		}
 	}
@@ -668,6 +694,21 @@
 				Action Send(STATUS(PRI_CAUSE_MESSAGE_TYPE_NONEXIST));
 			}
 		}
+		Stimulus Q931_EV_DL_RELEASE_IND {
+			if (!Any_Timer_Running) {
+				Action Start_T309;
+			}
+			Action DL_Establish_Request;
+		}
+		Stimulus Q931_EV_DL_ESTABLISH_CONFIRM {
+       			Action Stop_T309;
+			Action Send(STATUS());
+		}
+		Stimulus Q931_EV_TIMEOUT_T309 {
+			Action Post_Mgmt(HANGUP(PRI_CAUSE_NETWORK_OUT_OF_ORDER));
+			Action Release_Call_Reference;
+			Next_State q931_user_null;
+		}
 	}
 
 /* ******************************************************************** */
@@ -682,6 +723,7 @@
 		}
 		Stimulus Q931_EV_MSG_STATUS {
 			if (Get_STATUS_Call_State == Q931_CALL_STATE_NULL) {
+				Action Release_Call_Reference;
 				Action Post_Mgmt(HANGUP(cause));
 				Next_State q931_user_null;
 			}




More information about the libpri-commits mailing list