x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
free = 0;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
ss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = ss7_info->ftdmchan;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
in_use = 0;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
ss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = ss7_info->ftdmchan;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
in_reset = 0;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
ss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = ss7_info->ftdmchan;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
ss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = ss7_info->ftdmchan;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
ss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = ss7_info->ftdmchan;
/* check if this circuit is one of the circuits we're interested in */
if ((ckt->span == lspan) && (ckt->chan == lchan)) {
- if (ckt->type == HOLE) {
+ if (ckt->type == SNG_CKT_HOLE) {
stream->write_function(stream, "span=%2d|chan=%2d|cic=%4d|NOT USED\n",
ckt->span,
ckt->chan,
ckt->cic);
- } else if (ckt->type == SIG) {
+ } else if (ckt->type == SNG_CKT_SIG) {
stream->write_function(stream, "span=%2d|chan=%2d|cic=%4d|SIGNALING LINK\n",
ckt->span,
ckt->chan,
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
ss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = ss7_info->ftdmchan;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
ss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = ss7_info->ftdmchan;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
sngss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = sngss7_info->ftdmchan;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
sngss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = sngss7_info->ftdmchan;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
sngss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = sngss7_info->ftdmchan;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
/* extract the channel and span info for this circuit */
sngss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
sngss7_set_sig_status(sngss7_info, FTDM_SIG_STATE_DOWN);
/* if this is the first channel in the range */
- if (ftdmchan->physical_chan_id == chan) {
+ if (!main_chan) {
/* attach the cgb information */
main_chan = ftdmchan;
sngss7_span->tx_cgb.circuit = sngss7_info->circuit->id;
x++;
} /* while (g_ftdm_sngss7_data.cfg.isupCkt[x]id != 0) */
+ if (!main_chan) {
+ stream->write_function(stream, "Failed to find a voice cic in span %d chan %d range %d", span, chan, range);
+ return FTDM_SUCCESS;
+ }
+
/* send the circuit group block */
ft_to_sngss7_cgb(main_chan);
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
sngss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = sngss7_info->ftdmchan;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
/* extract the channel and span info for this circuit */
sngss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
sngss7_set_sig_status(sngss7_info, FTDM_SIG_STATE_UP);
/* if this is the first channel in the range */
- if (ftdmchan->physical_chan_id == chan) {
+ if (!main_chan) {
/* attach the cgb information */
main_chan = ftdmchan;
sngss7_span->tx_cgu.circuit = sngss7_info->circuit->id;
x++;
} /* while (g_ftdm_sngss7_data.cfg.isupCkt[x]id != 0) */
+ if (!main_chan) {
+ stream->write_function(stream, "Failed to find a voice cic in span %d chan %d range %d", span, chan, range);
+ return FTDM_SUCCESS;
+ }
+
/* send the circuit group block */
ft_to_sngss7_cgu(main_chan);
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
sngss7_info = (sngss7_chan_data_t *)g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
ftdmchan = sngss7_info->ftdmchan;
}
/* confirm the ckt is a voice channel */
- if (ckt->type != VOICE) {
+ if (ckt->type != SNG_CKT_VOICE) {
stream->write_function(stream, "Requested ckt is a sig link/hole and can not be queried (%d)\n", id);
return FTDM_FAIL;
}
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
/* check that the infId matches and that this is not a siglink */
if ((g_ftdm_sngss7_data.cfg.isupCkt[i].infId == infId) &&
- (g_ftdm_sngss7_data.cfg.isupCkt[i].type == VOICE)) {
+ (g_ftdm_sngss7_data.cfg.isupCkt[i].type == SNG_CKT_VOICE)) {
/* confirm that the circuit is active on our side otherwise move to the next circuit */
if (!sngss7_test_flag(&g_ftdm_sngss7_data.cfg.isupCkt[i], SNGSS7_ACTIVE)) {
/* check that the infId matches and that this is not a siglink */
if ((g_ftdm_sngss7_data.cfg.isupCkt[i].infId == infId) &&
- (g_ftdm_sngss7_data.cfg.isupCkt[i].type == VOICE)) {
+ (g_ftdm_sngss7_data.cfg.isupCkt[i].type == SNG_CKT_VOICE)) {
/* confirm that the circuit is active on our side otherwise move to the next circuit */
if (!sngss7_test_flag(&g_ftdm_sngss7_data.cfg.isupCkt[i], SNGSS7_ACTIVE)) {
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
int range;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
memset(&status[0], '\0', sizeof(status));
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
/* loop over the cics starting from circuit until range+1 */
for (x = circuit; x < (circuit + range + 1); x++) {
/* confirm this is a voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type != VOICE) continue;
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type != SNG_CKT_VOICE) continue;
/* grab the circuit in question */
if (extract_chan_data(x, &sngss7_info, &ftdmchan)) {
memset(&status[0], '\0', sizeof(status));
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
/* loop over the cics starting from circuit until range+1 */
for (x = circuit; x < (circuit + range + 1); x++) {
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type != VOICE) continue;
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type != SNG_CKT_VOICE) continue;
/* grab the circuit in question */
if (extract_chan_data(x, &sngss7_info, &ftdmchan)) {
SS7_ERROR("Failed to extract channel data for circuit = %d!\n", x);
ftdm_channel_t *ftdmchan = NULL;
/* confirm that the circuit is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("[CIC:%d]Rx %s on non-voice CIC\n",
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic,
DECODE_LCC_EVENT(evntType));
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
*/
intfId = g_ftdm_sngss7_data.cfg.isupCkt[circuit].infId;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_DEBUG("Rx %s on circuit that is not a voice CIC (%d) finding a new circuit\n",
DECODE_LCC_EVENT(evntType),
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic);
(g_ftdm_sngss7_data.cfg.isupCkt[x].id < ((g_ftdm_sngss7_data.cfg.procId +1) * 1000))) {
/**********************************************************************/
/* confirm this is a voice channel and not a gap/sig (no ftdmchan there) */
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type != VOICE) goto move_along;
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type != SNG_CKT_VOICE) goto move_along;
/* compare the intfIds */
if (g_ftdm_sngss7_data.cfg.isupCkt[x].infId == intfId) {
break;
/**************************************************************************/
default:
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
ftdm_log(FTDM_LOG_DEBUG, "Rx %s on circuit that is not a voice CIC (%d) (circuit:%d)\n",
- DECODE_LCC_EVENT(evntType),
- g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic, circuit);
+ DECODE_LCC_EVENT(evntType), g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic, circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
}
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
ftdm_channel_t *ftdmchan = NULL;
sngss7_event_data_t *sngss7_event = NULL;
- if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != SNG_CKT_VOICE) {
SS7_ERROR("Rx sig event on circuit that is not a voice CIC (%d)\n", circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return;
/*
- * Copyright (c) 2009, Konrad Hammel <konrad@sangoma.com>
+ * Copyright (c) 2009, Sangoma Technologies
+ * Konrad Hammel <konrad@sangoma.com>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Contributors:
+ *
+ * Moises Silva <moy@sangoma.com>
+ * David Yat Sin <dyatsin@sangoma.com>
+ *
*/
/* INCLUDE ********************************************************************/
sngss7_set_flag(sngss7_info->circuit, SNGSS7_ACTIVE);
/* if this is a non-voice channel, move along cause we're done with it */
- if (sngss7_info->circuit->type != VOICE) continue;
+ if (sngss7_info->circuit->type != SNG_CKT_VOICE) continue;
/* lock the channel */
ftdm_mutex_lock(ftdmchan->mutex);
} sng_bit_enums_t;
typedef enum {
- VOICE = 0,
- SIG,
- HOLE
+ SNG_CKT_VOICE = 0,
+ SNG_CKT_SIG,
+ SNG_CKT_HOLE
} sng_ckt_type_t;
typedef enum {
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
/**********************************************************************/
/* make sure this is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
/* get the ftdmchan and ss7_chan_data from the circuit */
if (extract_chan_data(g_ftdm_sngss7_data.cfg.isupCkt[x].id, &sngss7_info, &ftdmchan)) {
/* throw the channel infId status flags to PAUSED ... they will be executed next process cycle */
sngss7_clear_ckt_flag(sngss7_info, FLAG_INFID_RESUME);
sngss7_set_ckt_flag(sngss7_info, FLAG_INFID_PAUSED);
- } /* if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) */
+ } /* if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) */
/* move along */
x++;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
/**********************************************************************/
/* make sure this is voice channel */
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
/* get the ftdmchan and ss7_chan_data from the circuit */
if (extract_chan_data(g_ftdm_sngss7_data.cfg.isupCkt[x].id, &sngss7_info, &ftdmchan)) {
sngss7_set_ckt_flag(sngss7_info, FLAG_INFID_RESUME);
sngss7_clear_ckt_flag(sngss7_info, FLAG_INFID_PAUSED);
}
- } /* if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) */
+ } /* if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) */
/* move along */
x++;
x = (g_ftdm_sngss7_data.cfg.procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
/**************************************************************************/
- if ( g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if ( g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
/* grab the private data structure */
sngss7_info = g_ftdm_sngss7_data.cfg.isupCkt[x].obj;
x = (procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
/**************************************************************************/
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
/* send a block request via stack manager */
ret = ftmod_ss7_block_isup_ckt(g_ftdm_sngss7_data.cfg.isupCkt[x].id);
g_ftdm_sngss7_data.cfg.isupCkt[x].id);
}
- } /* if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) */
+ } /* if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) */
/* move along */
x++;
x = (procId * 1000) + 1;
while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) {
/**************************************************************************/
- if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) {
/* send a block request via stack manager */
ret = ftmod_ss7_unblock_isup_ckt(g_ftdm_sngss7_data.cfg.isupCkt[x].id);
g_ftdm_sngss7_data.cfg.isupCkt[x].id);
}
- } /* if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) */
+ } /* if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == SNG_CKT_VOICE) */
/* move along */
x++;
for ( i = sngss7_span->rx_grs.circuit; i < (sngss7_span->rx_grs.circuit + sngss7_span->rx_grs.range + 1); i++) {
/* confirm this is a voice channel, otherwise we do nothing */
- if (g_ftdm_sngss7_data.cfg.isupCkt[i].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[i].type != SNG_CKT_VOICE) {
continue;
}
for ( i = sngss7_span->rx_grs.circuit; i < (sngss7_span->rx_grs.circuit + sngss7_span->rx_grs.range + 1); i++) {
/* confirm this is a voice channel, otherwise we do nothing */
- if (g_ftdm_sngss7_data.cfg.isupCkt[i].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[i].type != SNG_CKT_VOICE) {
continue;
}
for ( i = sngss7_span->rx_grs.circuit; i < (sngss7_span->rx_grs.circuit + sngss7_span->rx_grs.range + 1); i++) {
/* confirm this is a voice channel, otherwise we do nothing */
- if (g_ftdm_sngss7_data.cfg.isupCkt[i].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[i].type != SNG_CKT_VOICE) {
continue;
}
for ( i = sngss7_span->rx_grs.circuit; i < (sngss7_span->rx_grs.circuit + sngss7_span->rx_grs.range + 1); i++) {
/* confirm this is a voice channel, otherwise we do nothing */
- if (g_ftdm_sngss7_data.cfg.isupCkt[i].type != VOICE) {
+ if (g_ftdm_sngss7_data.cfg.isupCkt[i].type != SNG_CKT_VOICE) {
continue;
}
g_ftdm_sngss7_data.cfg.isupCkt[x].chan = count;
if (timeslot.siglink) {
- g_ftdm_sngss7_data.cfg.isupCkt[x].type = SIG;
+ g_ftdm_sngss7_data.cfg.isupCkt[x].type = SNG_CKT_SIG;
} else if (timeslot.gap) {
- g_ftdm_sngss7_data.cfg.isupCkt[x].type = HOLE;
+ g_ftdm_sngss7_data.cfg.isupCkt[x].type = SNG_CKT_HOLE;
} else {
- g_ftdm_sngss7_data.cfg.isupCkt[x].type = VOICE;
+ g_ftdm_sngss7_data.cfg.isupCkt[x].type = SNG_CKT_VOICE;
/* throw the flag to indicate that we need to start call control */
sngss7_set_flag(&g_ftdm_sngss7_data.cfg, SNGSS7_CC);