Merge branch 'master' of git@homer:smg_freeswitch
This commit is contained in:
commit
6b77b4ec07
|
@ -1506,6 +1506,10 @@ static ftdm_status_t handle_tx_cgb(ftdm_stream_handle_t *stream, int span, int c
|
|||
sngss7_span_data_t *sngss7_span;
|
||||
int byte = 0;
|
||||
int bit = 0;
|
||||
ftdm_sigmsg_t sigev;
|
||||
|
||||
memset (&sigev, 0, sizeof (sigev));
|
||||
|
||||
|
||||
if (range > 31) {
|
||||
stream->write_function(stream, "Invalid range value %d", range);
|
||||
|
@ -1531,6 +1535,14 @@ static ftdm_status_t handle_tx_cgb(ftdm_stream_handle_t *stream, int span, int c
|
|||
/* throw the grp maint. block flag */
|
||||
sngss7_set_flag(sngss7_info, FLAG_GRP_MN_BLOCK_TX);
|
||||
|
||||
/* bring the sig status down */
|
||||
sigev.chan_id = ftdmchan->chan_id;
|
||||
sigev.span_id = ftdmchan->span_id;
|
||||
sigev.channel = ftdmchan;
|
||||
sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED;
|
||||
sigev.sigstatus = FTDM_SIG_STATE_DOWN;
|
||||
ftdm_span_send_signal(ftdmchan->span, &sigev);
|
||||
|
||||
/* if this is the first channel in the range */
|
||||
if (ftdmchan->physical_chan_id == chan) {
|
||||
/* attach the cgb information */
|
||||
|
@ -1575,6 +1587,10 @@ static ftdm_status_t handle_tx_cgu(ftdm_stream_handle_t *stream, int span, int c
|
|||
sngss7_span_data_t *sngss7_span;
|
||||
int byte = 0;
|
||||
int bit = 0;
|
||||
ftdm_sigmsg_t sigev;
|
||||
|
||||
memset (&sigev, 0, sizeof (sigev));
|
||||
|
||||
|
||||
if (range > 31) {
|
||||
stream->write_function(stream, "Invalid range value %d", range);
|
||||
|
@ -1600,6 +1616,14 @@ static ftdm_status_t handle_tx_cgu(ftdm_stream_handle_t *stream, int span, int c
|
|||
/* throw the grp maint. block flag */
|
||||
sngss7_clear_flag(sngss7_info, FLAG_GRP_MN_BLOCK_TX);
|
||||
|
||||
/* bring the sig status up */
|
||||
sigev.chan_id = ftdmchan->chan_id;
|
||||
sigev.span_id = ftdmchan->span_id;
|
||||
sigev.channel = ftdmchan;
|
||||
sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED;
|
||||
sigev.sigstatus = FTDM_SIG_STATE_UP;
|
||||
ftdm_span_send_signal(ftdmchan->span, &sigev);
|
||||
|
||||
/* if this is the first channel in the range */
|
||||
if (ftdmchan->physical_chan_id == chan) {
|
||||
/* attach the cgb information */
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -496,6 +496,12 @@ void handle_sng_isup_alarm(Pst *pst, SiMngmt *sta)
|
|||
/* initalize the msg variable to NULLs */
|
||||
memset(&msg[0], '\0', sizeof(&msg));
|
||||
|
||||
/* if the event is REMOTE/LOCAL we don't need to print these */
|
||||
if ((sta->t.usta.alarm.event == LSI_EVENT_REMOTE) ||
|
||||
(sta->t.usta.alarm.event == LSI_EVENT_LOCAL)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* point p to the first spot in msg */
|
||||
p = &msg[0];
|
||||
|
@ -728,6 +734,8 @@ void handle_sng_isup_alarm(Pst *pst, SiMngmt *sta)
|
|||
DECODE_LSI_EVENT(sta->t.usta.alarm.event),
|
||||
DECODE_LSI_CAUSE(sta->t.usta.alarm.cause));
|
||||
|
||||
return;
|
||||
|
||||
} /* handle_isup_alarm */
|
||||
|
||||
/******************************************************************************/
|
||||
|
|
|
@ -454,9 +454,9 @@ static void ftdm_sangoma_ss7_process_stack_event (sngss7_event_data_t *sngss7_ev
|
|||
/******************************************************************************/
|
||||
static void ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
||||
{
|
||||
ftdm_sigmsg_t sigev;
|
||||
sngss7_chan_data_t *sngss7_info = ftdmchan->call_data;
|
||||
int i = 0;
|
||||
ftdm_sigmsg_t sigev;
|
||||
|
||||
memset (&sigev, 0, sizeof (sigev));
|
||||
|
||||
|
@ -788,6 +788,15 @@ static void ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
|||
!(sngss7_test_flag (sngss7_info, FLAG_GRP_RESET_TX)) &&
|
||||
!(sngss7_test_flag (sngss7_info, FLAG_GRP_RESET_RX))) {
|
||||
|
||||
/* now check if there is an active block */
|
||||
if (!(sngss7_test_flag(sngss7_info, FLAG_CKT_LC_BLOCK_RX)) &&
|
||||
!(sngss7_test_flag(sngss7_info, FLAG_CKT_MN_BLOCK_RX)) &&
|
||||
!(sngss7_test_flag(sngss7_info, FLAG_CKT_MN_BLOCK_TX)) &&
|
||||
!(sngss7_test_flag(sngss7_info, FLAG_GRP_HW_BLOCK_RX)) &&
|
||||
!(sngss7_test_flag(sngss7_info, FLAG_GRP_HW_BLOCK_TX)) &&
|
||||
!(sngss7_test_flag(sngss7_info, FLAG_GRP_MN_BLOCK_RX)) &&
|
||||
!(sngss7_test_flag(sngss7_info, FLAG_GRP_MN_BLOCK_TX))) {
|
||||
|
||||
/* check if the sig status is down, and bring it up if it isn't */
|
||||
if (!ftdm_test_flag (ftdmchan, FTDM_CHANNEL_SIG_UP)) {
|
||||
SS7_DEBUG_CHAN(ftdmchan,"All reset flags cleared %s\n", "");
|
||||
|
@ -795,7 +804,8 @@ static void ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
|||
sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED;
|
||||
sigev.sigstatus = FTDM_SIG_STATE_UP;
|
||||
ftdm_span_send_signal (ftdmchan->span, &sigev);
|
||||
}
|
||||
} /* if (!ftdm_test_flag (ftdmchan, FTDM_CHANNEL_SIG_UP)) */
|
||||
} /* if !blocked */
|
||||
} else {
|
||||
|
||||
SS7_DEBUG_CHAN(ftdmchan,"Reset flags present (0x%X)\n", sngss7_info->flags);
|
||||
|
@ -993,6 +1003,11 @@ static void ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
|||
if (sngss7_test_flag (sngss7_info, FLAG_CKT_MN_BLOCK_RX)) {
|
||||
SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_MN_BLOCK_RX flag %s\n", "");
|
||||
|
||||
/* bring the sig status down */
|
||||
sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED;
|
||||
sigev.sigstatus = FTDM_SIG_STATE_DOWN;
|
||||
ftdm_span_send_signal(ftdmchan->span, &sigev);
|
||||
|
||||
/* send a BLA */
|
||||
ft_to_sngss7_bla (ftdmchan);
|
||||
|
||||
|
@ -1006,6 +1021,11 @@ static void ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
|||
/* clear the unblock flag */
|
||||
sngss7_clear_flag (sngss7_info, FLAG_CKT_MN_UNBLK_RX);
|
||||
|
||||
/* bring the sig status up */
|
||||
sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED;
|
||||
sigev.sigstatus = FTDM_SIG_STATE_UP;
|
||||
ftdm_span_send_signal(ftdmchan->span, &sigev);
|
||||
|
||||
/* send a uba */
|
||||
ft_to_sngss7_uba (ftdmchan);
|
||||
|
||||
|
@ -1017,6 +1037,11 @@ static void ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
|||
if (sngss7_test_flag (sngss7_info, FLAG_CKT_MN_BLOCK_TX)) {
|
||||
SS7_DEBUG_CHAN(ftdmchan, "Processing CKT_MN_BLOCK_TX flag %s\n", "");
|
||||
|
||||
/* bring the sig status down */
|
||||
sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED;
|
||||
sigev.sigstatus = FTDM_SIG_STATE_DOWN;
|
||||
ftdm_span_send_signal(ftdmchan->span, &sigev);
|
||||
|
||||
/* send a blo */
|
||||
ft_to_sngss7_blo (ftdmchan);
|
||||
|
||||
|
@ -1030,6 +1055,11 @@ static void ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
|
|||
/* clear the unblock flag */
|
||||
sngss7_clear_flag (sngss7_info, FLAG_CKT_MN_UNBLK_TX);
|
||||
|
||||
/* bring the sig status up */
|
||||
sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED;
|
||||
sigev.sigstatus = FTDM_SIG_STATE_UP;
|
||||
ftdm_span_send_signal(ftdmchan->span, &sigev);
|
||||
|
||||
/* send a ubl */
|
||||
ft_to_sngss7_ubl (ftdmchan);
|
||||
|
||||
|
@ -1403,6 +1433,9 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_sangoma_ss7_span_config)
|
|||
static FIO_SIG_LOAD_FUNCTION(ftdm_sangoma_ss7_init)
|
||||
{
|
||||
/*this function is called by the FT-core to load the signaling module */
|
||||
uint32_t major = 0;
|
||||
uint32_t minor = 0;
|
||||
uint32_t build = 0;
|
||||
|
||||
ftdm_log (FTDM_LOG_INFO, "Loading ftmod_sangoma_ss7...\n");
|
||||
|
||||
|
@ -1452,6 +1485,10 @@ static FIO_SIG_LOAD_FUNCTION(ftdm_sangoma_ss7_init)
|
|||
/* initalize sng_ss7 library */
|
||||
sng_isup_init (&sng_event);
|
||||
|
||||
/* print the version of the library being used */
|
||||
sng_isup_version(&major, &minor, &build);
|
||||
SS7_INFO("Loaded LibSng-SS7 %d.%d.%d\n", major, minor, build);
|
||||
|
||||
/* crash on assert fail */
|
||||
ftdm_global_set_crash_policy (FTDM_CRASH_ON_ASSERT);
|
||||
|
||||
|
|
|
@ -199,7 +199,8 @@ void ft_to_sngss7_iam (ftdm_channel_t * ftdmchan)
|
|||
&iam,
|
||||
0);
|
||||
|
||||
SS7_INFO_CHAN(ftdmchan,"Tx IAM clg = \"%s\", cld = \"%s\"\n",
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx IAM clg = \"%s\", cld = \"%s\"\n",
|
||||
sngss7_info->circuit->cic,
|
||||
ftdmchan->caller_data.cid_num.digits,
|
||||
ftdmchan->caller_data.dnis.digits);
|
||||
|
||||
|
@ -250,7 +251,7 @@ void ft_to_sngss7_acm (ftdm_channel_t * ftdmchan)
|
|||
&acm,
|
||||
ADDRCMPLT);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx ACM\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx ACM\n", sngss7_info->circuit->cic);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -274,7 +275,7 @@ void ft_to_sngss7_anm (ftdm_channel_t * ftdmchan)
|
|||
&anm,
|
||||
5);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx ANM\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx ANM\n", sngss7_info->circuit->cic);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -307,7 +308,9 @@ void ft_to_sngss7_rel (ftdm_channel_t * ftdmchan)
|
|||
sngss7_info->circuit->id,
|
||||
&rel);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx REL\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx REL cause=%d \n",
|
||||
sngss7_info->circuit->cic,
|
||||
ftdmchan->caller_data.hangup_cause );
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -330,7 +333,7 @@ void ft_to_sngss7_rlc (ftdm_channel_t * ftdmchan)
|
|||
sngss7_info->circuit->id,
|
||||
&rlc);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx RLC\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx RLC\n", sngss7_info->circuit->cic);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -351,7 +354,7 @@ void ft_to_sngss7_rsc (ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_CIRRESREQ,
|
||||
NULL);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx RSC\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx RSC\n", sngss7_info->circuit->cic);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -372,7 +375,7 @@ void ft_to_sngss7_rsca (ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_CIRRESRSP,
|
||||
NULL);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx RSC-RLC\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx RSC-RLC\n", sngss7_info->circuit->cic);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -393,7 +396,7 @@ void ft_to_sngss7_blo (ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_CIRBLOREQ,
|
||||
NULL);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx BLO\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx BLO\n", sngss7_info->circuit->cic);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -414,7 +417,7 @@ void ft_to_sngss7_bla (ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_CIRBLORSP,
|
||||
NULL);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx BLA\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx BLA\n", sngss7_info->circuit->cic);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -436,7 +439,7 @@ ft_to_sngss7_ubl (ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_CIRUBLREQ,
|
||||
NULL);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx UBL\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx UBL\n", sngss7_info->circuit->cic);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -457,7 +460,7 @@ void ft_to_sngss7_uba (ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_CIRUBLRSP,
|
||||
NULL);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx UBA\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx UBA\n", sngss7_info->circuit->cic);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -478,7 +481,7 @@ void ft_to_sngss7_lpa (ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_LOOPBACKACK,
|
||||
NULL);
|
||||
|
||||
SS7_MSG_TRACE(ftdmchan, sngss7_info, "Tx LPA\n");
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx LPA\n", sngss7_info->circuit->cic);
|
||||
|
||||
SS7_FUNC_TRACE_EXIT (__FUNCTION__);
|
||||
return;
|
||||
|
@ -519,7 +522,8 @@ void ft_to_sngss7_gra (ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_GRSRSP,
|
||||
&gra);
|
||||
|
||||
SS7_INFO_CHAN(ftdmchan, "Tx GRA (%d:%d)\n",
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx GRA (%d:%d)\n",
|
||||
sngss7_info->circuit->cic,
|
||||
sngss7_info->circuit->cic,
|
||||
(sngss7_info->circuit->cic + sngss7_span->rx_grs.range));
|
||||
|
||||
|
@ -551,7 +555,8 @@ void ft_to_sngss7_grs (ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_GRSREQ,
|
||||
&grs);
|
||||
|
||||
SS7_INFO_CHAN(ftdmchan, "Tx GRS (%d:%d)\n",
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx GRS (%d:%d)\n",
|
||||
sngss7_info->circuit->cic,
|
||||
sngss7_info->circuit->cic,
|
||||
(sngss7_info->circuit->cic + sngss7_span->tx_grs.range));
|
||||
|
||||
|
@ -596,7 +601,8 @@ void ft_to_sngss7_cgba(ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_CGBRSP,
|
||||
&cgba);
|
||||
|
||||
SS7_INFO_CHAN(ftdmchan, "Tx CGBA (%d:%d)\n",
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGBA (%d:%d)\n",
|
||||
sngss7_info->circuit->cic,
|
||||
sngss7_info->circuit->cic,
|
||||
(sngss7_info->circuit->cic + sngss7_span->rx_cgb.range));
|
||||
|
||||
|
@ -644,7 +650,8 @@ void ft_to_sngss7_cgua(ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_CGURSP,
|
||||
&cgua);
|
||||
|
||||
SS7_INFO_CHAN(ftdmchan, "Tx CGUA (%d:%d)\n",
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGUA (%d:%d)\n",
|
||||
sngss7_info->circuit->cic,
|
||||
sngss7_info->circuit->cic,
|
||||
(sngss7_info->circuit->cic + sngss7_span->rx_cgu.range));
|
||||
|
||||
|
@ -693,7 +700,8 @@ void ft_to_sngss7_cgb(ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_CGBREQ,
|
||||
&cgb);
|
||||
|
||||
SS7_INFO_CHAN(ftdmchan, "Tx CGB (%d:%d)\n",
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGB (%d:%d)\n",
|
||||
sngss7_info->circuit->cic,
|
||||
sngss7_info->circuit->cic,
|
||||
(sngss7_info->circuit->cic + sngss7_span->tx_cgb.range));
|
||||
|
||||
|
@ -742,7 +750,8 @@ void ft_to_sngss7_cgu(ftdm_channel_t * ftdmchan)
|
|||
SIT_STA_CGUREQ,
|
||||
&cgu);
|
||||
|
||||
SS7_INFO_CHAN(ftdmchan, "Tx CGU (%d:%d)\n",
|
||||
SS7_INFO_CHAN(ftdmchan,"[CIC:%d]Tx CGU (%d:%d)\n",
|
||||
sngss7_info->circuit->cic,
|
||||
sngss7_info->circuit->cic,
|
||||
(sngss7_info->circuit->cic + sngss7_span->tx_cgu.range));
|
||||
|
||||
|
|
|
@ -464,7 +464,7 @@ ftdm_status_t check_if_rx_grs_processed(ftdm_span_t *ftdmspan)
|
|||
/* extract the channel in question */
|
||||
if (extract_chan_data(i, &sngss7_info, &ftdmchan)) {
|
||||
SS7_ERROR("Failed to extract channel data for circuit = %d!\n", i);
|
||||
SS7_ASSERT;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* lock the channel */
|
||||
|
@ -524,7 +524,7 @@ GRS_UNLOCK_ALL:
|
|||
/* extract the channel in question */
|
||||
if (extract_chan_data(i, &sngss7_info, &ftdmchan)) {
|
||||
SS7_ERROR("Failed to extract channel data for circuit = %d!\n", i);
|
||||
SS7_ASSERT;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* unlock the channel */
|
||||
|
|
Loading…
Reference in New Issue