cinfo->ucic.range = cinfo->tx_grs.range;
ftdm_set_flag(sngss7_span, SNGSS7_UCIC_PENDING);
+ SS7_WARN("Set span SNGSS7_UCIC_PENDING for ISUP circuit = %d!\n", circuit);
+
ftdm_channel_unlock(fchan);
goto done;
ftdm_mutex_lock(ftdmchan->mutex);
/* throw the ckt block flag */
+ SS7_DEBUG("Set FLAG_CKT_UCIC_BLOCK for ISUP circuit = %d!\n", circuit);
sngss7_set_ckt_blk_flag(sngss7_info, FLAG_CKT_UCIC_BLOCK);
/* set the channel to suspended state */
break;
/**************************************************************************/
case FTDM_CHANNEL_STATE_RESTART: /* CICs needs a Reset */
+
+ SS7_DEBUG_CHAN(ftdmchan,"RESTART: Current flags: ckt=0x%X, blk=0x%X\n",
+ sngss7_info->ckt_flags,
+ sngss7_info->blk_flags);
if (sngss7_test_ckt_blk_flag(sngss7_info, FLAG_CKT_UCIC_BLOCK)) {
if ((sngss7_test_ckt_flag(sngss7_info, FLAG_RESET_RX)) ||
/**************************************************************************/
case FTDM_CHANNEL_STATE_SUSPENDED: /* circuit has been blocked */
- SS7_DEBUG_CHAN(ftdmchan,"Current flags: ckt=0x%X, blk=0x%X\n",
+ SS7_DEBUG_CHAN(ftdmchan,"SUSPEND: Current flags: ckt=0x%X, blk=0x%X\n",
sngss7_info->ckt_flags,
sngss7_info->blk_flags);
| FLAG_CKT_MN_BLOCK_RX_DN
| FLAG_GRP_MN_BLOCK_RX
| FLAG_GRP_MN_BLOCK_RX_DN
+ | FLAG_CKT_UCIC_BLOCK
+ | FLAG_CKT_UCIC_BLOCK_DN
)
)
) {
sngss7_clear_ckt_blk_flag(sngss7_info, FLAG_CKT_UCIC_UNBLK);
/* throw the channel into reset to sync states */
+
+ clear_rx_grs_flags(sngss7_info);
+ clear_rx_grs_data(sngss7_info);
+ clear_tx_grs_flags(sngss7_info);
+ clear_tx_grs_data(sngss7_info);
+ clear_rx_rsc_flags(sngss7_info);
+ clear_tx_rsc_flags(sngss7_info);
+
clear_tx_rsc_flags(sngss7_info);
sngss7_set_ckt_flag(sngss7_info, FLAG_RESET_TX);
/* lock the channel */
ftdm_channel_lock(ftdmchan);
- SS7_INFO_CHAN(ftdmchan, "[CIC:%d]Rx UCIC\n", sngss7_info->circuit->cic);
+ SS7_INFO_CHAN(ftdmchan, "[CIC:%d]Rx Span UCIC\n", sngss7_info->circuit->cic);
/* clear up any pending state changes */
while (ftdm_test_flag (ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) {