Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
1c09adb3
提交
1c09adb3
authored
6月 23, 2011
作者:
Moises Silva
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' into smgmaster
上级
1b6d40d1
f3dc1759
全部展开
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
95 行增加
和
79 行删除
+95
-79
ftmod_sangoma_ss7_cli.c
...eetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c
+29
-19
ftmod_sangoma_ss7_handle.c
...dm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c
+23
-23
ftmod_sangoma_ss7_in.c
...reetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c
+15
-16
ftmod_sangoma_ss7_main.c
...etdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c
+9
-2
ftmod_sangoma_ss7_main.h
...etdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h
+3
-3
ftmod_sangoma_ss7_relay.c
...tdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_relay.c
+9
-9
ftmod_sangoma_ss7_support.c
...m/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c
+4
-4
ftmod_sangoma_ss7_xml.c
...eetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c
+3
-3
没有找到文件。
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_cli.c
浏览文件 @
1c09adb3
...
...
@@ -788,7 +788,7 @@ static ftdm_status_t handle_show_free(ftdm_stream_handle_t *stream, int span, in
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
;
...
...
@@ -851,7 +851,7 @@ static ftdm_status_t handle_show_inuse(ftdm_stream_handle_t *stream, int span, i
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
;
...
...
@@ -921,7 +921,7 @@ static ftdm_status_t handle_show_inreset(ftdm_stream_handle_t *stream, int span,
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
;
...
...
@@ -981,7 +981,7 @@ static ftdm_status_t handle_show_flags(ftdm_stream_handle_t *stream, int span, i
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
;
...
...
@@ -1046,7 +1046,7 @@ static ftdm_status_t handle_show_blocks(ftdm_stream_handle_t *stream, int span,
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
;
...
...
@@ -1150,12 +1150,12 @@ static ftdm_status_t handle_show_status(ftdm_stream_handle_t *stream, int span,
/* 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
==
S
NG_CKT_S
IG
)
{
stream
->
write_function
(
stream
,
"span=%2d|chan=%2d|cic=%4d|SIGNALING LINK
\n
"
,
ckt
->
span
,
ckt
->
chan
,
...
...
@@ -1237,7 +1237,7 @@ static ftdm_status_t handle_tx_blo(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -1303,7 +1303,7 @@ static ftdm_status_t handle_tx_ubl(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -1558,7 +1558,7 @@ static ftdm_status_t handle_tx_rsc(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -1630,7 +1630,7 @@ static ftdm_status_t handle_tx_grs(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -1677,7 +1677,7 @@ static ftdm_status_t handle_tx_grs(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -1719,7 +1719,7 @@ static ftdm_status_t handle_tx_cgb(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -1740,7 +1740,7 @@ static ftdm_status_t handle_tx_cgb(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -1766,12 +1766,17 @@ static ftdm_status_t handle_tx_cgb(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -1814,7 +1819,7 @@ static ftdm_status_t handle_tx_cgu(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -1835,7 +1840,7 @@ static ftdm_status_t handle_tx_cgu(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -1861,12 +1866,17 @@ static ftdm_status_t handle_tx_cgu(ftdm_stream_handle_t *stream, int span, int c
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
;
...
...
@@ -2202,7 +2212,7 @@ static ftdm_status_t handle_status_isup_ckt(ftdm_stream_handle_t *stream, char *
}
/* 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
;
}
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c
浏览文件 @
1c09adb3
差异被折叠。
点击展开。
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c
浏览文件 @
1c09adb3
...
...
@@ -66,7 +66,7 @@ void sngss7_con_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiCo
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
;
...
...
@@ -110,7 +110,7 @@ void sngss7_con_cfm(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiCo
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
;
...
...
@@ -154,7 +154,7 @@ void sngss7_con_sta(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiCn
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
;
...
...
@@ -199,7 +199,7 @@ void sngss7_rel_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiRe
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
;
...
...
@@ -243,7 +243,7 @@ void sngss7_rel_cfm(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiRe
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
;
...
...
@@ -287,7 +287,7 @@ void sngss7_dat_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiIn
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
;
...
...
@@ -331,7 +331,7 @@ void sngss7_fac_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, uint
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
;
...
...
@@ -376,7 +376,7 @@ void sngss7_fac_cfm(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, uint
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
;
...
...
@@ -421,7 +421,7 @@ void sngss7_umsg_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit)
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
;
...
...
@@ -480,7 +480,7 @@ void sngss7_sta_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, uint
*/
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
);
...
...
@@ -491,7 +491,7 @@ void sngss7_sta_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, uint
(
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
)
{
...
...
@@ -531,10 +531,9 @@ move_along:
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
;
}
...
...
@@ -586,7 +585,7 @@ void sngss7_susp_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiS
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
;
...
...
@@ -633,7 +632,7 @@ void sngss7_resm_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiR
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
;
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c
浏览文件 @
1c09adb3
/*
* 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
...
...
@@ -29,6 +30,12 @@
* 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 ********************************************************************/
...
...
@@ -1402,7 +1409,7 @@ static ftdm_status_t ftdm_sangoma_ss7_start(ftdm_span_t * span)
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
);
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.h
浏览文件 @
1c09adb3
...
...
@@ -99,9 +99,9 @@ typedef enum {
}
sng_bit_enums_t
;
typedef
enum
{
VOICE
=
0
,
SIG
,
HOLE
SNG_CKT_
VOICE
=
0
,
S
NG_CKT_S
IG
,
SNG_CKT_
HOLE
}
sng_ckt_type_t
;
typedef
enum
{
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_relay.c
浏览文件 @
1c09adb3
...
...
@@ -150,7 +150,7 @@ ftdm_status_t disable_all_ckts_for_relay(void)
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
))
{
...
...
@@ -165,7 +165,7 @@ ftdm_status_t disable_all_ckts_for_relay(void)
/* 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
++
;
...
...
@@ -189,7 +189,7 @@ ftdm_status_t enable_all_ckts_for_relay(void)
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)) {
...
...
@@ -213,7 +213,7 @@ ftdm_status_t enable_all_ckts_for_relay(void)
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++;
...
...
@@ -233,7 +233,7 @@ ftdm_status_t reconfig_all_ckts_for_relay(void)
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
;
...
...
@@ -262,7 +262,7 @@ ftdm_status_t block_all_ckts_for_relay(uint32_t procId)
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
);
...
...
@@ -276,7 +276,7 @@ ftdm_status_t block_all_ckts_for_relay(uint32_t procId)
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
++
;
...
...
@@ -322,7 +322,7 @@ static ftdm_status_t unblock_all_ckts_for_relay(uint32_t procId)
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
);
...
...
@@ -336,7 +336,7 @@ static ftdm_status_t unblock_all_ckts_for_relay(uint32_t procId)
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
++
;
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c
浏览文件 @
1c09adb3
...
...
@@ -974,7 +974,7 @@ ftdm_status_t check_if_rx_grs_started(ftdm_span_t *ftdmspan)
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
;
}
...
...
@@ -1040,7 +1040,7 @@ ftdm_status_t check_if_rx_grs_processed(ftdm_span_t *ftdmspan)
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
;
}
...
...
@@ -1074,7 +1074,7 @@ ftdm_status_t check_if_rx_grs_processed(ftdm_span_t *ftdmspan)
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
;
}
...
...
@@ -1114,7 +1114,7 @@ GRS_UNLOCK_ALL:
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
;
}
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_xml.c
浏览文件 @
1c09adb3
...
...
@@ -2901,11 +2901,11 @@ static int ftmod_ss7_fill_in_ccSpan(sng_ccSpan_t *ccSpan)
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
=
S
NG_CKT_S
IG
;
}
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_PRESENT
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论