Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
93bfa6d1
提交
93bfa6d1
authored
2月 15, 2011
作者:
Konrad Hammel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chlog freetdm: ss7 - adding initial support for RELAY
上级
c0a2a225
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
247 行增加
和
69 行删除
+247
-69
ftmod_sangoma_ss7_cli.c
...eetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c
+12
-10
ftmod_sangoma_ss7_cntrl.c
...tdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cntrl.c
+67
-0
ftmod_sangoma_ss7_logger.c
...dm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_logger.c
+12
-1
ftmod_sangoma_ss7_main.c
...etdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c
+41
-22
ftmod_sangoma_ss7_main.h
...etdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h
+27
-0
ftmod_sangoma_ss7_relay.c
...tdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_relay.c
+43
-35
ftmod_sangoma_ss7_support.c
...m/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c
+44
-0
ftmod_sangoma_ss7_xml.c
...eetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c
+1
-1
没有找到文件。
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c
浏览文件 @
93bfa6d1
...
...
@@ -967,12 +967,14 @@ static ftdm_status_t handle_show_inreset(ftdm_stream_handle_t *stream, int span,
/******************************************************************************/
static
ftdm_status_t
handle_show_flags
(
ftdm_stream_handle_t
*
stream
,
int
span
,
int
chan
,
int
verbose
)
{
int
x
;
int
bit
;
sngss7_chan_data_t
*
ss7_info
;
ftdm_channel_t
*
ftdmchan
;
int
x
;
int
bit
;
int
lspan
;
int
lchan
;
const
char
*
text
;
int
flag
;
x
=
(
g_ftdm_sngss7_data
.
cfg
.
procId
*
1000
)
+
1
;
while
(
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
id
!=
0
)
{
...
...
@@ -1001,11 +1003,11 @@ static ftdm_status_t handle_show_flags(ftdm_stream_handle_t *stream, int span, i
ss7_info
->
circuit
->
cic
);
for
(
bit
=
0
;
bit
<
33
;
bit
++
)
{
stream
->
write_function
(
stream
,
"|"
);
if
(
ss7_info
->
ckt_flags
&
(
0x1
<<
bit
))
{
stream
->
write_function
(
stream
,
"%2d=1"
,
bit
);
}
else
{
stream
->
write_function
(
stream
,
"%2d=0"
,
bit
);
stream
->
write_function
(
stream
,
"|"
);
flag
=
bit
;
text
=
ftmod_ss7_ckt_flag2str
(
flag
);
stream
->
write_function
(
stream
,
"%s"
,
text
);
}
}
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cntrl.c
浏览文件 @
93bfa6d1
...
...
@@ -68,11 +68,14 @@ int ftmod_ss7_shutdown_isup(void);
int
ftmod_ss7_shutdown_mtp3
(
void
);
int
ftmod_ss7_shutdown_mtp2
(
void
);
int
ftmod_ss7_shutdown_relay
(
void
);
int
ftmod_ss7_disable_relay_channel
(
uint32_t
chanId
);
int
ftmod_ss7_disable_grp_mtp3Link
(
uint32_t
procId
);
int
ftmod_ss7_enable_grp_mtp3Link
(
uint32_t
procId
);
int
ftmod_ss7_disable_grp_mtp2Link
(
uint32_t
procId
);
int
ftmod_ss7_block_isup_ckt
(
uint32_t
cktId
);
/******************************************************************************/
/* FUNCTIONS ******************************************************************/
...
...
@@ -712,6 +715,38 @@ int ftmod_ss7_shutdown_relay(void)
return
(
sng_cntrl_relay
(
&
pst
,
&
cntrl
));
}
/******************************************************************************/
int
ftmod_ss7_disable_relay_channel
(
uint32_t
chanId
)
{
RyMngmt
cntrl
;
Pst
pst
;
/* initalize the post structure */
smPstInit
(
&
pst
);
/* insert the destination Entity */
pst
.
dstEnt
=
ENTRY
;
/* initalize the control structure */
memset
(
&
cntrl
,
0x0
,
sizeof
(
RyMngmt
));
/* initalize the control header */
smHdrInit
(
&
cntrl
.
hdr
);
cntrl
.
hdr
.
msgType
=
TCNTRL
;
/* this is a control request */
cntrl
.
hdr
.
entId
.
ent
=
ENTRY
;
cntrl
.
hdr
.
entId
.
inst
=
S_INST
;
cntrl
.
hdr
.
elmId
.
elmnt
=
STGEN
;
cntrl
.
hdr
.
elmId
.
elmntInst1
=
chanId
;
cntrl
.
t
.
cntrl
.
action
=
ADISIMM
;
/* Deactivate */
cntrl
.
t
.
cntrl
.
subAction
=
SAELMNT
;
/* specificed element */
return
(
sng_cntrl_relay
(
&
pst
,
&
cntrl
));
}
/******************************************************************************/
int
ftmod_ss7_disable_grp_mtp3Link
(
uint32_t
procId
)
{
...
...
@@ -808,6 +843,38 @@ int ftmod_ss7_disable_grp_mtp2Link(uint32_t procId)
}
/******************************************************************************/
int
ftmod_ss7_block_isup_ckt
(
uint32_t
cktId
)
{
SiMngmt
cntrl
;
Pst
pst
;
/* initalize the post structure */
smPstInit
(
&
pst
);
/* insert the destination Entity */
pst
.
dstEnt
=
ENTSI
;
/* initalize the control structure */
memset
(
&
cntrl
,
0x0
,
sizeof
(
SiMngmt
));
/* initalize the control header */
smHdrInit
(
&
cntrl
.
hdr
);
cntrl
.
hdr
.
msgType
=
TCNTRL
;
/* this is a control request */
cntrl
.
hdr
.
entId
.
ent
=
ENTSI
;
cntrl
.
hdr
.
entId
.
inst
=
S_INST
;
cntrl
.
hdr
.
elmId
.
elmnt
=
STICIR
;
cntrl
.
t
.
cntrl
.
s
.
siElmnt
.
elmntId
.
circuit
=
cktId
;
cntrl
.
t
.
cntrl
.
s
.
siElmnt
.
elmntParam
.
cir
.
flag
=
LSI_CNTRL_CIR_FORCE
;
cntrl
.
t
.
cntrl
.
action
=
ADISIMM
;
/* block via BLO */
cntrl
.
t
.
cntrl
.
subAction
=
SAELMNT
;
/* specificed element */
return
(
sng_cntrl_isup
(
&
pst
,
&
cntrl
));
}
/******************************************************************************/
/* For Emacs:
* Local Variables:
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_logger.c
浏览文件 @
93bfa6d1
...
...
@@ -766,7 +766,18 @@ void handle_sng_relay_alarm(Pst *pst, RyMngmt *sta)
DECODE_LRY_REASON
(
sta
->
t
.
usta
.
s
.
ryErrUsta
.
reason
));
/* process the event */
switch
(
sta
->
t
.
usta
.
s
.
ryErrUsta
.
reason
)
{
/**********************************************************************/
case
(
LRYRSNMGMTREQ
):
/* do nothing since this is a shutdown */
break
;
/**********************************************************************/
default:
/* handle the error */
handle_relay_disconnect_on_error
(
sta
);
break
;
/**********************************************************************/
}
/* switch (sta->t.usta.s.ryErrUsta.reason) */
break
;
/**************************************************************************/
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c
浏览文件 @
93bfa6d1
...
...
@@ -365,6 +365,9 @@ static void *ftdm_sangoma_ss7_run(ftdm_thread_t * me, void *obj)
/* check each channel on the span to see if there is an un-procressed SUS/RES flag */
check_for_res_sus_flag
(
ftdmspan
);
/* check each channel on the span to see if it needs to be reconfigured */
check_for_reconfig_flag
(
ftdmspan
);
/* Poll for events, e.g HW DTMF */
switch
(
ftdm_span_poll_event
(
ftdmspan
,
0
,
NULL
))
{
/**********************************************************************/
...
...
@@ -926,11 +929,6 @@ ftdm_status_t ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
}
}
/* if we're not coming from HANGUP_COMPLETE we need to check for resets
* we can also check if we are in a PAUSED state (no point in sending message
*/
if
((
ftdmchan
->
last_state
!=
FTDM_CHANNEL_STATE_HANGUP_COMPLETE
)
&&
(
!
sngss7_test_ckt_flag
(
sngss7_info
,
FLAG_INFID_PAUSED
)))
{
/* check if this is an outgoing RSC */
if
((
sngss7_test_ckt_flag
(
sngss7_info
,
FLAG_RESET_TX
))
&&
...
...
@@ -952,7 +950,6 @@ ftdm_status_t ftdm_sangoma_ss7_process_state_change (ftdm_channel_t * ftdmchan)
sngss7_set_ckt_flag
(
sngss7_info
,
FLAG_GRP_RESET_SENT
);
}
/* if ( sngss7_test_ckt_flag ( sngss7_info, FLAG_GRP_RESET_TX ) ) */
}
/* if ( last_state != HANGUP && !PAUSED */
/* if the sig_status is up...bring it down */
if
(
ftdm_test_flag
(
ftdmchan
,
FTDM_CHANNEL_SIG_UP
))
{
...
...
@@ -1598,6 +1595,8 @@ static FIO_SIG_UNLOAD_FUNCTION(ftdm_sangoma_ss7_unload)
{
/*this function is called by the FT-core to unload the signaling module */
int
x
;
ftdm_log
(
FTDM_LOG_INFO
,
"Starting ftmod_sangoma_ss7 unload...
\n
"
);
if
(
sngss7_test_flag
(
&
g_ftdm_sngss7_data
.
cfg
,
SNGSS7_CC
))
{
...
...
@@ -1625,6 +1624,26 @@ static FIO_SIG_UNLOAD_FUNCTION(ftdm_sangoma_ss7_unload)
}
if
(
sngss7_test_flag
(
&
g_ftdm_sngss7_data
.
cfg
,
SNGSS7_RY
))
{
/* go through all the relays channels and configure it */
x
=
1
;
while
(
g_ftdm_sngss7_data
.
cfg
.
relay
[
x
].
id
!=
0
)
{
/* check if this relay channel has been configured already */
if
((
g_ftdm_sngss7_data
.
cfg
.
relay
[
x
].
flags
&
SNGSS7_CONFIGURED
))
{
/* send the specific configuration */
if
(
ftmod_ss7_disable_relay_channel
(
x
))
{
SS7_CRITICAL
(
"Relay Channel %d disable failed!
\n
"
,
x
);
return
1
;
}
else
{
SS7_INFO
(
"Relay Channel %d disable DONE!
\n
"
,
x
);
}
/* set the SNGSS7_CONFIGURED flag */
g_ftdm_sngss7_data
.
cfg
.
relay
[
x
].
flags
&=
!
SNGSS7_CONFIGURED
;
}
/* if !SNGSS7_CONFIGURED */
x
++
;
}
/* while (g_ftdm_sngss7_data.cfg.relay[x].id != 0) */
ftmod_ss7_shutdown_relay
();
sng_isup_free_relay
();
sngss7_clear_flag
(
&
g_ftdm_sngss7_data
.
cfg
,
SNGSS7_RY
);
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h
浏览文件 @
93bfa6d1
...
...
@@ -506,6 +506,27 @@ typedef enum {
FLAG_RELAY_DOWN
=
(
1
<<
30
)
}
sng_ckt_flag_t
;
#define CKT_FLAGS_STRING \
"RX_RSC", \
"TX_RSC", \
"TX_RSC_REQ_SENT", \
"TX_RSC_RSP_RECIEVED", \
"RX_GRS", \
"RX_GRS_DONE", \
"RX_GRS_CMPLT", \
"GRS_BASE", \
"TX_GRS", \
"TX_GRS_REQ_SENT", \
"TX_GRS_RSP_RECIEVED", \
"REMOTE_REL", \
"LOCAL_REL", \
"GLARE", \
"INF_RESUME", \
"INF_PAUSED", \
"RELAY_DOWN", \
"CKT_RECONFIG"
FTDM_STR2ENUM_P
(
ftmod_ss7_ckt_state2flag
,
ftmod_ss7_ckt_flag2str
,
sng_ckt_flag_t
)
/* ckt blocking flags */
typedef
enum
{
FLAG_CKT_UCIC_BLOCK
=
(
1
<<
0
),
...
...
@@ -626,12 +647,17 @@ int ftmod_ss7_shutdown_isup(void);
int
ftmod_ss7_shutdown_mtp3
(
void
);
int
ftmod_ss7_shutdown_mtp2
(
void
);
int
ftmod_ss7_shutdown_relay
(
void
);
int
ftmod_ss7_disable_relay_channel
(
uint32_t
chanId
);
int
ftmod_ss7_disable_grp_mtp3Link
(
uint32_t
procId
);
int
ftmod_ss7_enable_grp_mtp3Link
(
uint32_t
procId
);
int
ftmod_ss7_disable_grp_mtp2Link
(
uint32_t
procId
);
int
ftmod_ss7_block_isup_ckt
(
uint32_t
cktId
);
/* in ftmod_sangoma_ss7_sta.c */
int
ftmod_ss7_mtp1link_sta
(
uint32_t
id
,
L1Mngmt
*
cfm
);
int
ftmod_ss7_mtp2link_sta
(
uint32_t
id
,
SdMngmt
*
cfm
);
...
...
@@ -756,6 +782,7 @@ int find_ssf_type_in_map(const char *ssfType);
int
find_cic_cntrl_in_map
(
const
char
*
cntrlType
);
ftdm_status_t
check_status_of_all_isup_intf
(
void
);
ftdm_status_t
check_for_reconfig_flag
(
ftdm_span_t
*
ftdmspan
);
void
sngss7_send_signal
(
sngss7_chan_data_t
*
sngss7_info
,
ftdm_signal_event_t
event_id
);
void
sngss7_set_sig_status
(
sngss7_chan_data_t
*
sngss7_info
,
ftdm_signaling_status_t
status
);
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_relay.c
浏览文件 @
93bfa6d1
...
...
@@ -61,23 +61,28 @@ ftdm_status_t handle_relay_connect(RyMngmt *sta)
/* test if this is the first time the channel comes up */
if
(
!
sngss7_test_flag
(
sng_relay
,
SNGSS7_RELAY_INIT
))
{
SS7_
DEBUG
(
"Relay Channel %d initial connection UP
\n
"
,
sng_relay
->
id
);
SS7_
INFO
(
"Relay Channel %d initial connection UP
\n
"
,
sng_relay
->
id
);
/* mark the channel as being up */
sngss7_set_flag
(
sng_relay
,
SNGSS7_RELAY_INIT
);
}
else
{
SS7_
DEBUG
(
"Relay Channel %d connection UP
\n
"
,
sng_relay
->
id
);
SS7_
INFO
(
"Relay Channel %d connection UP
\n
"
,
sng_relay
->
id
);
/* react based on type of channel */
switch
(
sng_relay
->
type
)
{
/******************************************************************/
case
(
LRY_CT_TCP_CLIENT
):
/* check the status of all isup intfs in case we weren't connected when
* the interface became active
*/
check_status_of_all_isup_intf
();
/* reconfigure all ISUP ckts, since the main system would have lost all configs */
if
(
reconfig_all_ckts_for_relay
())
{
SS7_ERROR
(
"Failed to reconfigure ISUP Ckts!
\n
"
);
/* we're done....this is very bad! */
}
else
{
/* if the circuits reconfiged then bring then back up */
enable_all_ckts_for_relay
();
}
...
...
@@ -104,16 +109,20 @@ ftdm_status_t handle_relay_disconnect_on_error(RyMngmt *sta)
/* check which procId is in error, if it is 1, disable the ckts */
if
(
sta
->
t
.
usta
.
s
.
ryErrUsta
.
errPid
==
1
)
{
disable_all_ckts_for_relay
();
/* we've lost the server, bring down the mtp2 links */
disble_all_mtp2_sigs_for_relay
();
/* we've lost the server, bring the sig status down on all ckts */
disable_all_ckts_for_relay
();
}
/* check if the channel is a server, means we just lost a MGW */
if
(
g_ftdm_sngss7_data
.
cfg
.
relay
[
sta
->
t
.
usta
.
s
.
ryErrUsta
.
errPid
].
type
==
LRY_CT_TCP_SERVER
)
{
block_all_ckts_for_relay
(
sta
->
t
.
usta
.
s
.
ryErrUsta
.
errPid
);
/* we've lost the client, bring down all mtp3 links for this procId */
disable_all_sigs_for_relay
(
sta
->
t
.
usta
.
s
.
ryErrUsta
.
errPid
);
/* we've lost the client, bring down all the ckts for this procId */
block_all_ckts_for_relay
(
sta
->
t
.
usta
.
s
.
ryErrUsta
.
errPid
);
}
return
FTDM_SUCCESS
;
...
...
@@ -222,30 +231,26 @@ ftdm_status_t enable_all_ckts_for_relay(void)
/******************************************************************************/
ftdm_status_t
reconfig_all_ckts_for_relay
(
void
)
{
#if 1
int
x
;
int
ret
;
sngss7_chan_data_t
*
sngss7_info
=
NULL
;
/* go through all the circuits on our ProcId */
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
)
{
/* grab the private data structure */
sngss7_info
=
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
obj
;
ret
=
ftmod_ss7_isup_ckt_config
(
x
);
if
(
ret
)
{
SS7_CRITICAL
(
"ISUP CKT %d configuration FAILED (%d)!
\n
"
,
x
,
ret
);
return
1
;
}
else
{
SS7_INFO
(
"ISUP CKT %d configuration DONE!
\n
"
,
x
);
/* mark the circuit for re-configuration */
sngss7_set_ckt_flag
(
sngss7_info
,
FLAG_CKT_RECONFIG
);
}
}
/* if ( g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) */
/* set the SNGSS7_CONFIGURED flag */
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
flags
|=
SNGSS7_CONFIGURED
;
/* move to the next circuit */
x
++
;
/**************************************************************************/
}
/* while (g_ftdm_sngss7_data.cfg.isupCkt[x].id != 0) */
#endif
return
FTDM_SUCCESS
;
}
...
...
@@ -253,22 +258,25 @@ ftdm_status_t reconfig_all_ckts_for_relay(void)
ftdm_status_t
block_all_ckts_for_relay
(
uint32_t
procId
)
{
int
x
;
SS7_INFO
(
"BLOcking all ckts on ProcID = %d
\n
"
,
procId
);
int
ret
;
/* we just lost connection to this procId, send out a block for all these circuits */
x
=
(
procId
*
1000
)
+
1
;
while
(
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
id
!=
0
)
{
/**************************************************************************/
if
(
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
type
==
VOICE
)
{
/* send out a BLO */
sng_cc_sta_request
(
1
,
0
,
0
,
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
id
,
0
,
SIT_STA_CIRBLOREQ
,
NULL
);
/* send a block request via stack manager */
ret
=
ftmod_ss7_block_isup_ckt
(
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
id
);
if
(
ret
)
{
SS7_INFO
(
"Successfully BLOcked CIC:%d(ckt:%d) due to Relay failure
\n
"
,
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
cic
,
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
id
);
}
else
{
SS7_ERROR
(
"Failed to BLOck CIC:%d(ckt:%d) due to Relay failure
\n
"
,
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
cic
,
g_ftdm_sngss7_data
.
cfg
.
isupCkt
[
x
].
id
);
}
}
/* if (g_ftdm_sngss7_data.cfg.isupCkt[x].type == VOICE) */
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c
浏览文件 @
93bfa6d1
...
...
@@ -83,6 +83,7 @@ int find_ssf_type_in_map(const char *ssfType);
int
find_cic_cntrl_in_map
(
const
char
*
cntrlType
);
ftdm_status_t
check_status_of_all_isup_intf
(
void
);
ftdm_status_t
check_for_reconfig_flag
(
ftdm_span_t
*
ftdmspan
);
void
sngss7_send_signal
(
sngss7_chan_data_t
*
sngss7_info
,
ftdm_signal_event_t
event_id
);
void
sngss7_set_sig_status
(
sngss7_chan_data_t
*
sngss7_info
,
ftdm_signaling_status_t
status
);
...
...
@@ -90,6 +91,9 @@ ftdm_status_t sngss7_add_var(sngss7_chan_data_t *ss7_info, const char* var, cons
ftdm_status_t
sngss7_add_raw_data
(
sngss7_chan_data_t
*
sngss7_info
,
uint8_t
*
data
,
ftdm_size_t
data_len
);
/******************************************************************************/
FTDM_ENUM_NAMES
(
CKT_FLAGS_NAMES
,
CKT_FLAGS_STRING
)
FTDM_STR2ENUM
(
ftmod_ss7_ckt_state2flag
,
ftmod_ss7_ckt_flag2str
,
sng_ckt_flag_t
,
CKT_FLAGS_NAMES
,
31
)
/* FUNCTIONS ******************************************************************/
uint8_t
copy_cgPtyNum_from_sngss7
(
ftdm_caller_data_t
*
ftdm
,
SiCgPtyNum
*
cgPtyNum
)
{
...
...
@@ -1475,6 +1479,46 @@ void sngss7_set_sig_status(sngss7_chan_data_t *sngss7_info, ftdm_signaling_statu
return
;
}
/******************************************************************************/
ftdm_status_t
check_for_reconfig_flag
(
ftdm_span_t
*
ftdmspan
)
{
ftdm_channel_t
*
ftdmchan
=
NULL
;
sngss7_chan_data_t
*
sngss7_info
=
NULL
;
int
x
;
int
ret
;
for
(
x
=
1
;
x
<
(
ftdmspan
->
chan_count
+
1
);
x
++
)
{
/**************************************************************************/
/* extract the channel structure and sngss7 channel data */
ftdmchan
=
ftdmspan
->
channels
[
x
];
/* if the call data is NULL move on */
if
(
ftdmchan
->
call_data
==
NULL
)
{
SS7_WARN_CHAN
(
ftdmchan
,
"Reconfiguring channel that has not call_data!%s
\n
"
,
" "
);
continue
;
}
/* grab the private data */
sngss7_info
=
ftdmchan
->
call_data
;
/* check the reconfig flag */
if
(
sngss7_test_ckt_flag
(
sngss7_info
,
FLAG_CKT_RECONFIG
))
{
ret
=
ftmod_ss7_isup_ckt_config
(
sngss7_info
->
circuit
->
id
);
if
(
ret
)
{
SS7_CRITICAL
(
"ISUP CKT %d re-configuration FAILED!
\n
"
,
x
);
}
else
{
SS7_INFO
(
"ISUP CKT %d re-configuration DONE!
\n
"
,
x
);
}
/* clear the re-config flag ... no matter what */
sngss7_clear_ckt_flag
(
sngss7_info
,
FLAG_CKT_RECONFIG
);
}
/* if ((sngss7_test_ckt_flag(sngss7_info, FLAG_CKT_RECONFIG)) */
}
/* for (x = 1; x < (span->chan_count + 1); x++) */
return
FTDM_SUCCESS
;
}
/******************************************************************************/
/* For Emacs:
* Local Variables:
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c
浏览文件 @
93bfa6d1
...
...
@@ -2668,7 +2668,7 @@ static int ftmod_ss7_fill_in_isup_interface(sng_isup_inf_t *sng_isup)
if
(
sng_isup
->
tpause
!=
0
)
{
g_ftdm_sngss7_data
.
cfg
.
isupIntf
[
i
].
tpause
=
sng_isup
->
tpause
;
}
else
{
g_ftdm_sngss7_data
.
cfg
.
isupIntf
[
i
].
tpause
=
15
0
;
g_ftdm_sngss7_data
.
cfg
.
isupIntf
[
i
].
tpause
=
300
0
;
}
if
(
sng_isup
->
tstaenq
!=
0
)
{
g_ftdm_sngss7_data
.
cfg
.
isupIntf
[
i
].
tstaenq
=
sng_isup
->
tstaenq
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论