[libpri-commits] rmudgett: branch group/ccss r1402 - in /team/group/ccss: pri_cc.c pri_internal.h

SVN commits to the libpri project libpri-commits at lists.digium.com
Wed Dec 23 20:24:59 CST 2009


Author: rmudgett
Date: Wed Dec 23 20:24:57 2009
New Revision: 1402

URL: http://svnview.digium.com/svn/libpri?view=rev&rev=1402
Log:
*  Missed handling an event in pri_cc_fsm_qsig_monitor_wait_callback().
*  Miscellaneous cleanup.

Modified:
    team/group/ccss/pri_cc.c
    team/group/ccss/pri_internal.h

Modified: team/group/ccss/pri_cc.c
URL: http://svnview.digium.com/svn/libpri/team/group/ccss/pri_cc.c?view=diff&rev=1402&r1=1401&r2=1402
==============================================================================
--- team/group/ccss/pri_cc.c (original)
+++ team/group/ccss/pri_cc.c Wed Dec 23 20:24:57 2009
@@ -247,6 +247,7 @@
 }
 
 /*!
+ * \internal
  * \brief Allocate a new cc_record reference id.
  *
  * \param ctrl D channel controller.
@@ -254,7 +255,7 @@
  * \retval reference_id on success.
  * \retval CC_PTMP_INVALID_ID on error.
  */
-int pri_cc_new_reference_id(struct pri *ctrl)
+static int pri_cc_new_reference_id(struct pri *ctrl)
 {
 	long reference_id;
 	long first_id;
@@ -359,6 +360,7 @@
 }
 
 /*!
+ * \internal
  * \brief Delete the given call completion record
  *
  * \param ctrl D channel controller.
@@ -366,7 +368,7 @@
  *
  * \return Nothing
  */
-void pri_cc_delete_record(struct pri *ctrl, struct pri_cc_record *doomed)
+static void pri_cc_delete_record(struct pri *ctrl, struct pri_cc_record *doomed)
 {
 	struct pri_cc_record **prev;
 	struct pri_cc_record *current;
@@ -2624,10 +2626,10 @@
 	case CC_EVENT_TIMEOUT_T_DEACTIVATE:
 		str = "CC_EVENT_TIMEOUT_T_DEACTIVATE";
 		break;
-#endif
 	case CC_EVENT_TIMEOUT_T_INTERROGATE:
 		str = "CC_EVENT_TIMEOUT_T_INTERROGATE";
 		break;
+#endif
 	case CC_EVENT_TIMEOUT_T_RETENTION:
 		str = "CC_EVENT_TIMEOUT_T_RETENTION";
 		break;
@@ -6200,6 +6202,14 @@
 		pri_cc_act_send_cc_suspend(ctrl, cc_record);
 		cc_record->state = CC_STATE_SUSPENDED;
 		break;
+	case CC_EVENT_TIMEOUT_T_RECALL:
+		pri_cc_act_pass_up_cc_cancel(ctrl, cc_record);
+		pri_cc_act_send_cc_cancel(ctrl, cc_record);
+		pri_cc_act_stop_t_recall(ctrl, cc_record);
+		pri_cc_act_stop_t_supervision(ctrl, cc_record);
+		pri_cc_act_set_self_destruct(ctrl, cc_record);
+		cc_record->state = CC_STATE_IDLE;
+		break;
 	case CC_EVENT_TIMEOUT_T_SUPERVISION:
 		pri_cc_act_pass_up_cc_cancel(ctrl, cc_record);
 		pri_cc_act_send_cc_cancel(ctrl, cc_record);

Modified: team/group/ccss/pri_internal.h
URL: http://svnview.digium.com/svn/libpri/team/group/ccss/pri_internal.h?view=diff&rev=1402&r1=1401&r2=1402
==============================================================================
--- team/group/ccss/pri_internal.h (original)
+++ team/group/ccss/pri_internal.h Wed Dec 23 20:24:57 2009
@@ -698,9 +698,9 @@
 #if 0
 	/*! T_DEACTIVATE timer timed out. */
 	CC_EVENT_TIMEOUT_T_DEACTIVATE,
-#endif
 	/*! T_INTERROGATE timer timed out. */
 	CC_EVENT_TIMEOUT_T_INTERROGATE,
+#endif
 	/*! T_RETENTION timer timed out. */
 	CC_EVENT_TIMEOUT_T_RETENTION,
 	/*! T-STATUS timer equivalent for CC user A status timed out. */
@@ -940,8 +940,6 @@
 struct pri_cc_record *pri_cc_find_by_reference(struct pri *ctrl, unsigned reference_id);
 struct pri_cc_record *pri_cc_find_by_linkage(struct pri *ctrl, unsigned linkage_id);
 struct pri_cc_record *pri_cc_find_by_addressing(struct pri *ctrl, const struct q931_party_address *party_a, const struct q931_party_address *party_b, unsigned length, const unsigned char *q931_ies);
-int pri_cc_new_reference_id(struct pri *ctrl);
-void pri_cc_delete_record(struct pri *ctrl, struct pri_cc_record *doomed);
 struct pri_cc_record *pri_cc_new_record(struct pri *ctrl, q931_call *call);
 void pri_cc_qsig_determine_available(struct pri *ctrl, q931_call *call);
 int pri_cc_event(struct pri *ctrl, q931_call *call, struct pri_cc_record *cc_record, enum CC_EVENTS event);




More information about the libpri-commits mailing list