mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-13 07:45:26 +00:00
freetdm: Fixed GRA - added group reset by default on startup
This commit is contained in:
parent
859d3b0ed5
commit
fd6d18d56c
@ -2271,6 +2271,8 @@ ftdm_status_t handle_ucic(uint32_t suInstId, uint32_t spInstId, uint32_t circuit
|
||||
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;
|
||||
@ -2283,6 +2285,7 @@ ftdm_status_t handle_ucic(uint32_t suInstId, uint32_t spInstId, uint32_t circuit
|
||||
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 */
|
||||
|
@ -1024,6 +1024,10 @@ ftdm_status_t ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
||||
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)) ||
|
||||
@ -1139,7 +1143,7 @@ ftdm_status_t ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
||||
/**************************************************************************/
|
||||
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);
|
||||
|
||||
@ -1256,6 +1260,8 @@ ftdm_status_t ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
||||
| 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
|
||||
)
|
||||
)
|
||||
) {
|
||||
@ -1410,6 +1416,14 @@ ftdm_status_t ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
||||
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);
|
||||
|
||||
|
@ -523,8 +523,6 @@ void ft_to_sngss7_grs (ftdm_channel_t *fchan)
|
||||
cinfo->circuit->cic,
|
||||
(cinfo->circuit->cic + cinfo->tx_grs.range));
|
||||
|
||||
memset(&cinfo->tx_grs, 0, sizeof(cinfo->tx_grs));
|
||||
|
||||
sngss7_set_ckt_flag(cinfo, FLAG_GRP_RESET_SENT);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
|
@ -1428,7 +1428,7 @@ ftdm_status_t process_span_ucic(ftdm_span_t *ftdmspan)
|
||||
/* 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)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user