Merge branch 'master' into smgmaster

This commit is contained in:
David Yat Sin 2011-06-09 16:43:02 -04:00
commit 401cef7479
5 changed files with 34 additions and 35 deletions

View File

@ -532,9 +532,9 @@ move_along:
/**************************************************************************/ /**************************************************************************/
default: default:
if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) { if (g_ftdm_sngss7_data.cfg.isupCkt[circuit].type != VOICE) {
SS7_ERROR("Rx %s on circuit that is not a voice CIC (%d)\n", ftdm_log(FTDM_LOG_DEBUG, "Rx %s on circuit that is not a voice CIC (%d) (circuit:%d)\n",
DECODE_LCC_EVENT(evntType), DECODE_LCC_EVENT(evntType),
g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic); g_ftdm_sngss7_data.cfg.isupCkt[circuit].cic, circuit);
SS7_FUNC_TRACE_EXIT(__FUNCTION__); SS7_FUNC_TRACE_EXIT(__FUNCTION__);
return; return;
} }

View File

@ -60,6 +60,10 @@
#define MAX_SIZEOF_SUBADDR_IE 24 /* as per Q931 4.5.9 */ #define MAX_SIZEOF_SUBADDR_IE 24 /* as per Q931 4.5.9 */
#define SNGSS7_SWITCHTYPE_ANSI(switchtype) (switchtype == LSI_SW_ANS88) || \
(switchtype == LSI_SW_ANS92) || \
(switchtype == LSI_SW_ANS95)
typedef struct ftdm2trillium typedef struct ftdm2trillium
{ {
uint8_t ftdm_val; uint8_t ftdm_val;

View File

@ -92,8 +92,10 @@ void ft_to_sngss7_iam (ftdm_channel_t * ftdmchan)
/* Transmission medium requirements */ /* Transmission medium requirements */
copy_txMedReq_to_sngss7(ftdmchan, &iam.txMedReq); copy_txMedReq_to_sngss7(ftdmchan, &iam.txMedReq);
/* User Service Info A */ if (SNGSS7_SWITCHTYPE_ANSI(g_ftdm_sngss7_data.cfg.isupCkt[sngss7_info->circuit->id].switchType)) {
copy_usrServInfoA_to_sngss7(ftdmchan, &iam.usrServInfoA); /* User Service Info A */
copy_usrServInfoA_to_sngss7(ftdmchan, &iam.usrServInfoA);
}
/* Called Number information */ /* Called Number information */
copy_cdPtyNum_to_sngss7(ftdmchan, &iam.cdPtyNum); copy_cdPtyNum_to_sngss7(ftdmchan, &iam.cdPtyNum);

View File

@ -641,39 +641,32 @@ ftdm_status_t copy_txMedReq_to_sngss7(ftdm_channel_t *ftdmchan, SiTxMedReq *txMe
ftdm_status_t copy_usrServInfoA_to_sngss7(ftdm_channel_t *ftdmchan, SiUsrServInfo *usrServInfoA) ftdm_status_t copy_usrServInfoA_to_sngss7(ftdm_channel_t *ftdmchan, SiUsrServInfo *usrServInfoA)
{ {
sngss7_chan_data_t *sngss7_info = ftdmchan->call_data; usrServInfoA->eh.pres = PRSNT_NODEF;
if ((g_ftdm_sngss7_data.cfg.isupCkt[sngss7_info->circuit->id].switchType == LSI_SW_ANS88) || usrServInfoA->infoTranCap.pres = PRSNT_NODEF;
(g_ftdm_sngss7_data.cfg.isupCkt[sngss7_info->circuit->id].switchType == LSI_SW_ANS92) ||
(g_ftdm_sngss7_data.cfg.isupCkt[sngss7_info->circuit->id].switchType == LSI_SW_ANS95)) {
usrServInfoA->eh.pres = PRSNT_NODEF; usrServInfoA->infoTranCap.val = get_trillium_val(bc_cap_codes, ftdmchan->caller_data.bearer_capability, ITC_SPEECH);
usrServInfoA->infoTranCap.pres = PRSNT_NODEF; usrServInfoA->cdeStand.pres = PRSNT_NODEF;
usrServInfoA->cdeStand.val = 0x0; /* ITU-T standardized coding */
usrServInfoA->infoTranCap.val = get_trillium_val(bc_cap_codes, ftdmchan->caller_data.bearer_capability, ITC_SPEECH); usrServInfoA->tranMode.pres = PRSNT_NODEF;
usrServInfoA->tranMode.val = 0x0; /* circuit mode */
usrServInfoA->cdeStand.pres = PRSNT_NODEF; usrServInfoA->infoTranRate0.pres = PRSNT_NODEF;
usrServInfoA->cdeStand.val = 0x0; /* ITU-T standardized coding */ usrServInfoA->infoTranRate0.val = 0x10; /* 64kbps origination to destination */
usrServInfoA->tranMode.pres = PRSNT_NODEF; usrServInfoA->infoTranRate1.pres = PRSNT_NODEF;
usrServInfoA->tranMode.val = 0x0; /* circuit mode */ usrServInfoA->infoTranRate1.val = 0x10; /* 64kbps destination to origination */
usrServInfoA->infoTranRate0.pres = PRSNT_NODEF; usrServInfoA->chanStruct.pres = PRSNT_NODEF;
usrServInfoA->infoTranRate0.val = 0x10; /* 64kbps origination to destination */ usrServInfoA->chanStruct.val = 0x1; /* 8kHz integrity */
usrServInfoA->infoTranRate1.pres = PRSNT_NODEF; usrServInfoA->config.pres = PRSNT_NODEF;
usrServInfoA->infoTranRate1.val = 0x10; /* 64kbps destination to origination */ usrServInfoA->config.val = 0x0; /* point to point configuration */
usrServInfoA->chanStruct.pres = PRSNT_NODEF; usrServInfoA->establish.pres = PRSNT_NODEF;
usrServInfoA->chanStruct.val = 0x1; /* 8kHz integrity */ usrServInfoA->establish.val = 0x0; /* on demand */
usrServInfoA->config.pres = PRSNT_NODEF; usrServInfoA->symmetry.pres = PRSNT_NODEF;
usrServInfoA->config.val = 0x0; /* point to point configuration */ usrServInfoA->symmetry.val = 0x0; /* bi-directional symmetric */
usrServInfoA->establish.pres = PRSNT_NODEF; usrServInfoA->usrInfLyr1Prot.pres = PRSNT_NODEF;
usrServInfoA->establish.val = 0x0; /* on demand */ usrServInfoA->usrInfLyr1Prot.val = 0x2; /* G.711 ulaw */
usrServInfoA->symmetry.pres = PRSNT_NODEF; usrServInfoA->rateMultiplier.pres = PRSNT_NODEF;
usrServInfoA->symmetry.val = 0x0; /* bi-directional symmetric */ usrServInfoA->rateMultiplier.val = 0x1; /* 1x rate multipler */
usrServInfoA->usrInfLyr1Prot.pres = PRSNT_NODEF;
usrServInfoA->usrInfLyr1Prot.val = 0x2; /* G.711 ulaw */
usrServInfoA->rateMultiplier.pres = PRSNT_NODEF;
usrServInfoA->rateMultiplier.val = 0x1; /* 1x rate multipler */
} /* if ANSI */
return FTDM_SUCCESS; return FTDM_SUCCESS;
} }

View File

@ -2205,7 +2205,7 @@ static int ftmod_ss7_fill_in_mtp2_link(sng_mtp2_link_t *mtp2Link)
if ( mtp2Link->t7 != 0 ) { if ( mtp2Link->t7 != 0 ) {
g_ftdm_sngss7_data.cfg.mtp2Link[i].t7 = mtp2Link->t7; g_ftdm_sngss7_data.cfg.mtp2Link[i].t7 = mtp2Link->t7;
}else { }else {
g_ftdm_sngss7_data.cfg.mtp2Link[i].t7 = 40; g_ftdm_sngss7_data.cfg.mtp2Link[i].t7 = 20;
} }
return FTDM_SUCCESS; return FTDM_SUCCESS;