[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