mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-07-14 02:56:48 +00:00
chlog: freetdm: SS7 - Fix for Screening Ind and Presentation Ind not being sent out
This commit is contained in:
parent
f235d95537
commit
2e8b3d75d0
@ -1324,12 +1324,12 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi
|
|||||||
|
|
||||||
sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-Screen");
|
sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-Screen");
|
||||||
if (sipvar) {
|
if (sipvar) {
|
||||||
caller_data.screen = (uint8_t)atoi(sipvar);
|
ftdm_usrmsg_add_var(&usrmsg, "ss7_screen_ind", sipvar);
|
||||||
}
|
}
|
||||||
|
|
||||||
sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-Presentation");
|
sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-Presentation");
|
||||||
if (sipvar) {
|
if (sipvar) {
|
||||||
caller_data.pres = (uint8_t)atoi(sipvar);
|
ftdm_usrmsg_add_var(&usrmsg, "ss7_pres_ind", sipvar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -785,10 +785,10 @@ int ftmod_ss7_parse_xml(ftdm_conf_parameter_t *ftdm_parameters, ftdm_span_t *spa
|
|||||||
ftdm_status_t ftdm_sngss7_handle_cli_cmd(ftdm_stream_handle_t *stream, const char *data);
|
ftdm_status_t ftdm_sngss7_handle_cli_cmd(ftdm_stream_handle_t *stream, const char *data);
|
||||||
|
|
||||||
/* in ftmod_sangoma_ss7_support.c */
|
/* in ftmod_sangoma_ss7_support.c */
|
||||||
uint8_t copy_cgPtyNum_from_sngss7(ftdm_caller_data_t *ftdm, SiCgPtyNum *cgPtyNum);
|
ftdm_status_t copy_cgPtyNum_from_sngss7(ftdm_channel_t *ftdmchan, SiCgPtyNum *cgPtyNum);
|
||||||
uint8_t copy_cgPtyNum_to_sngss7(ftdm_caller_data_t *ftdm, SiCgPtyNum *cgPtyNum);
|
ftdm_status_t copy_cgPtyNum_to_sngss7(ftdm_channel_t *ftdmchan, SiCgPtyNum *cgPtyNum);
|
||||||
uint8_t copy_cdPtyNum_from_sngss7(ftdm_caller_data_t *ftdm, SiCdPtyNum *cdPtyNum);
|
ftdm_status_t copy_cdPtyNum_from_sngss7(ftdm_channel_t *ftdmchan, SiCdPtyNum *cdPtyNum);
|
||||||
uint8_t copy_cdPtyNum_to_sngss7(ftdm_caller_data_t *ftdm, SiCdPtyNum *cdPtyNum);
|
ftdm_status_t copy_cdPtyNum_to_sngss7(ftdm_channel_t *ftdmchan, SiCdPtyNum *cdPtyNum);
|
||||||
ftdm_status_t copy_redirgNum_to_sngss7(ftdm_channel_t *ftdmchan, SiRedirNum *redirgNum);
|
ftdm_status_t copy_redirgNum_to_sngss7(ftdm_channel_t *ftdmchan, SiRedirNum *redirgNum);
|
||||||
ftdm_status_t copy_redirgNum_from_sngss7(ftdm_channel_t *ftdmchan, SiRedirNum *redirgNum);
|
ftdm_status_t copy_redirgNum_from_sngss7(ftdm_channel_t *ftdmchan, SiRedirNum *redirgNum);
|
||||||
|
|
||||||
|
@ -180,10 +180,10 @@ void ft_to_sngss7_iam (ftdm_channel_t * ftdmchan)
|
|||||||
} /* if ANSI */
|
} /* if ANSI */
|
||||||
|
|
||||||
/* copy down the called number information */
|
/* copy down the called number information */
|
||||||
copy_cdPtyNum_to_sngss7 (&ftdmchan->caller_data, &iam.cdPtyNum);
|
copy_cdPtyNum_to_sngss7 (ftdmchan, &iam.cdPtyNum);
|
||||||
|
|
||||||
/* copy down the calling number information */
|
/* copy down the calling number information */
|
||||||
copy_cgPtyNum_to_sngss7 (&ftdmchan->caller_data, &iam.cgPtyNum);
|
copy_cgPtyNum_to_sngss7 (ftdmchan, &iam.cgPtyNum);
|
||||||
|
|
||||||
/* check if the user would like a custom NADI value for the calling Pty Num */
|
/* check if the user would like a custom NADI value for the calling Pty Num */
|
||||||
clg_nadi = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_clg_nadi");
|
clg_nadi = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_clg_nadi");
|
||||||
|
@ -91,15 +91,16 @@ FTDM_ENUM_NAMES(BLK_FLAGS_NAMES, BLK_FLAGS_STRING)
|
|||||||
FTDM_STR2ENUM(ftmod_ss7_blk_state2flag, ftmod_ss7_blk_flag2str, sng_ckt_block_flag_t, BLK_FLAGS_NAMES, 31)
|
FTDM_STR2ENUM(ftmod_ss7_blk_state2flag, ftmod_ss7_blk_flag2str, sng_ckt_block_flag_t, BLK_FLAGS_NAMES, 31)
|
||||||
|
|
||||||
/* FUNCTIONS ******************************************************************/
|
/* FUNCTIONS ******************************************************************/
|
||||||
uint8_t copy_cgPtyNum_from_sngss7(ftdm_caller_data_t *ftdm, SiCgPtyNum *cgPtyNum)
|
ftdm_status_t copy_cgPtyNum_from_sngss7(ftdm_channel_t *ftdmchan, SiCgPtyNum *cgPtyNum)
|
||||||
{
|
{
|
||||||
|
|
||||||
return 0;
|
return FTDM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
uint8_t copy_cgPtyNum_to_sngss7(ftdm_caller_data_t *ftdm, SiCgPtyNum *cgPtyNum)
|
ftdm_status_t copy_cgPtyNum_to_sngss7(ftdm_channel_t *ftdmchan, SiCgPtyNum *cgPtyNum)
|
||||||
{
|
{
|
||||||
|
const char *val;
|
||||||
int k;
|
int k;
|
||||||
int j;
|
int j;
|
||||||
int flag;
|
int flag;
|
||||||
@ -108,24 +109,38 @@ uint8_t copy_cgPtyNum_to_sngss7(ftdm_caller_data_t *ftdm, SiCgPtyNum *cgPtyNum)
|
|||||||
uint8_t lower;
|
uint8_t lower;
|
||||||
uint8_t upper;
|
uint8_t upper;
|
||||||
|
|
||||||
/**************************************************************************/
|
ftdm_caller_data_t *ftdm = &ftdmchan->caller_data;
|
||||||
|
|
||||||
cgPtyNum->eh.pres = PRSNT_NODEF;
|
cgPtyNum->eh.pres = PRSNT_NODEF;
|
||||||
/**************************************************************************/
|
|
||||||
cgPtyNum->natAddrInd.pres = PRSNT_NODEF;
|
cgPtyNum->natAddrInd.pres = PRSNT_NODEF;
|
||||||
cgPtyNum->natAddrInd.val = 0x03;
|
cgPtyNum->natAddrInd.val = 0x03;
|
||||||
/**************************************************************************/
|
|
||||||
|
|
||||||
cgPtyNum->scrnInd.pres = PRSNT_NODEF;
|
cgPtyNum->scrnInd.pres = PRSNT_NODEF;
|
||||||
|
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_screen_ind");
|
||||||
|
if (!ftdm_strlen_zero(val)) {
|
||||||
|
cgPtyNum->scrnInd.val = atoi(val);
|
||||||
|
} else {
|
||||||
cgPtyNum->scrnInd.val = ftdm->screen;
|
cgPtyNum->scrnInd.val = ftdm->screen;
|
||||||
/**************************************************************************/
|
}
|
||||||
|
ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Calling Party Number Screening Ind %d\n", cgPtyNum->scrnInd.val);
|
||||||
|
|
||||||
cgPtyNum->presRest.pres = PRSNT_NODEF;
|
cgPtyNum->presRest.pres = PRSNT_NODEF;
|
||||||
|
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_pres_ind");
|
||||||
|
if (!ftdm_strlen_zero(val)) {
|
||||||
|
cgPtyNum->presRest.val = atoi(val);
|
||||||
|
} else {
|
||||||
cgPtyNum->presRest.val = ftdm->pres;
|
cgPtyNum->presRest.val = ftdm->pres;
|
||||||
/**************************************************************************/
|
}
|
||||||
|
ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Calling Party Number Presentation Ind %d\n", cgPtyNum->presRest.val);
|
||||||
|
|
||||||
cgPtyNum->numPlan.pres = PRSNT_NODEF;
|
cgPtyNum->numPlan.pres = PRSNT_NODEF;
|
||||||
cgPtyNum->numPlan.val = 0x01;
|
cgPtyNum->numPlan.val = 0x01;
|
||||||
/**************************************************************************/
|
|
||||||
cgPtyNum->niInd.pres = PRSNT_NODEF;
|
cgPtyNum->niInd.pres = PRSNT_NODEF;
|
||||||
cgPtyNum->niInd.val = 0x00;
|
cgPtyNum->niInd.val = 0x00;
|
||||||
/**************************************************************************/
|
|
||||||
cgPtyNum->addrSig.pres = PRSNT_NODEF;
|
cgPtyNum->addrSig.pres = PRSNT_NODEF;
|
||||||
|
|
||||||
/* atoi will search through memory starting from the pointer it is given until
|
/* atoi will search through memory starting from the pointer it is given until
|
||||||
@ -207,18 +222,18 @@ uint8_t copy_cgPtyNum_to_sngss7(ftdm_caller_data_t *ftdm, SiCgPtyNum *cgPtyNum)
|
|||||||
cgPtyNum->oddEven.pres = PRSNT_NODEF;
|
cgPtyNum->oddEven.pres = PRSNT_NODEF;
|
||||||
cgPtyNum->oddEven.val = odd;
|
cgPtyNum->oddEven.val = odd;
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
return 0;
|
return FTDM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
uint8_t copy_cdPtyNum_from_sngss7(ftdm_caller_data_t *ftdm, SiCdPtyNum *cdPtyNum)
|
ftdm_status_t copy_cdPtyNum_from_sngss7(ftdm_channel_t *ftdmchan, SiCdPtyNum *cdPtyNum)
|
||||||
{
|
{
|
||||||
|
|
||||||
return 0;
|
return FTDM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
uint8_t copy_cdPtyNum_to_sngss7(ftdm_caller_data_t *ftdm, SiCdPtyNum *cdPtyNum)
|
ftdm_status_t copy_cdPtyNum_to_sngss7(ftdm_channel_t *ftdmchan, SiCdPtyNum *cdPtyNum)
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
int j;
|
int j;
|
||||||
@ -228,6 +243,8 @@ uint8_t copy_cdPtyNum_to_sngss7(ftdm_caller_data_t *ftdm, SiCdPtyNum *cdPtyNum)
|
|||||||
uint8_t lower;
|
uint8_t lower;
|
||||||
uint8_t upper;
|
uint8_t upper;
|
||||||
|
|
||||||
|
ftdm_caller_data_t *ftdm = &ftdmchan->caller_data;
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
cdPtyNum->eh.pres = PRSNT_NODEF;
|
cdPtyNum->eh.pres = PRSNT_NODEF;
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user