Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
4b935500
提交
4b935500
authored
3月 21, 2011
作者:
Moises Silva
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'netborder'
上级
c0ee2490
4c6789b3
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
37 行增加
和
31 行删除
+37
-31
variables.txt
libs/freetdm/docs/variables.txt
+5
-1
ftdm_io.c
libs/freetdm/src/ftdm_io.c
+8
-16
ftmod_r2.c
libs/freetdm/src/ftmod/ftmod_r2/ftmod_r2.c
+22
-0
ftmod_sangoma_isdn_stack_hndl.c
.../ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c
+1
-8
ftmod_sangoma_isdn_support.c
...src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c
+1
-1
freetdm.h
libs/freetdm/src/include/freetdm.h
+0
-5
没有找到文件。
libs/freetdm/docs/variables.txt
浏览文件 @
4b935500
...
...
@@ -10,6 +10,7 @@ example #1a - Making an outbound call:
To make an outbound call:
ftdm_usrmsg_t usrmsg;
memset(&usrmsg, 0, sizeof(usrmsg));
/* Attach variable to usrmsg */
ftdm_usrmsg_add_var(&usrmsg, "isdn.prog_ind.descr", "inband-info-available");
...
...
@@ -22,6 +23,7 @@ When using ftmod_sangoma_isdn, user want to specify progress indicator inside PR
ftdm_usrmsg_t usrmsg;
memset(&usrmsg, 0, sizeof(usrmsg));
/* Attach variable to usrmsg */
ftdm_usrmsg_add_var(&usrmsg, "isdn.prog_ind.descr", "inband-info-available");
...
...
@@ -40,6 +42,8 @@ When using ftmod_sangoma_isdn, user wants to transmit a custom Facility IE, insi
uint8_t *my_facility_ie = ftdm_calloc(1, 200); /*memory has to be allocated using ftdm_calloc !! */
unsigned my_facility_ie_len = 0;
memset(&usrmsg, 0, sizeof(usrmsg));
/* Fill my_facility_ie with custom data here */
my_facility_ie[my_facility_ie_len++] = 0x1C; /* Q.931 Facility IE ID */
my_facility_ie[my_facility_ie_len++] = 0x03; /* Length of facility IE */
...
...
@@ -49,7 +53,7 @@ When using ftmod_sangoma_isdn, user wants to transmit a custom Facility IE, insi
ftdm_usrmsg_set_raw_data(&usrmsg, my_facility_ie, my_facility_ie_len);
ftdm_channel_call_indicate(ftdmchan, FTDM_CHANNEL_INDICATE_FACILITY, &usrmsg);
ftdm_channel_call_indicate
_ex
(ftdmchan, FTDM_CHANNEL_INDICATE_FACILITY, &usrmsg);
/* FreeTDM will automatically free my_facility_ie */
...
...
libs/freetdm/src/ftdm_io.c
浏览文件 @
4b935500
...
...
@@ -2310,7 +2310,9 @@ FT_DECLARE(ftdm_status_t) _ftdm_channel_call_indicate(const char *file, const ch
ftdm_set_flag
(
ftdmchan
,
FTDM_CHANNEL_IND_ACK_PENDING
);
}
if
(
ftdm_test_flag
(
ftdmchan
,
FTDM_CHANNEL_OUTBOUND
))
{
if
(
indication
!=
FTDM_CHANNEL_INDICATE_FACILITY
&&
ftdm_test_flag
(
ftdmchan
,
FTDM_CHANNEL_OUTBOUND
))
{
ftdm_log_chan_ex
(
ftdmchan
,
file
,
func
,
line
,
FTDM_LOG_LEVEL_WARNING
,
"Cannot indicate %s in outgoing channel in state %s
\n
"
,
ftdm_channel_indication2str
(
indication
),
ftdm_channel_state2str
(
ftdmchan
->
state
));
status
=
FTDM_EINVAL
;
...
...
@@ -2525,20 +2527,7 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_set_sig_status(ftdm_channel_t *fchan, ftd
ftdm_channel_lock
(
fchan
);
if
(
ftdm_test_flag
(
fchan
,
FTDM_CHANNEL_IN_ALARM
))
{
ftdm_log_chan_msg
(
fchan
,
FTDM_LOG_WARNING
,
"You can not set the signaling status of an alarmed channel
\n
"
);
res
=
FTDM_EINVAL
;
goto
done
;
}
if
(
sigstatus
==
FTDM_SIG_STATE_DOWN
)
{
ftdm_log_chan_msg
(
fchan
,
FTDM_LOG_WARNING
,
"You can not set the signaling status to DOWN, valid states are UP or SUSPENDED
\n
"
);
res
=
FTDM_EINVAL
;
goto
done
;
}
res
=
fchan
->
span
->
set_channel_sig_status
(
fchan
,
sigstatus
);
done
:
ftdm_channel_unlock
(
fchan
);
...
...
@@ -6057,9 +6046,12 @@ FT_DECLARE(ftdm_status_t) ftdm_sigmsg_get_raw_data_detached(ftdm_sigmsg_t *sigms
if
(
!
sigmsg
||
!
sigmsg
->
raw
.
len
)
{
return
FTDM_FAIL
;
}
*
data
=
sigmsg
->
raw
.
data
;
*
datalen
=
sigmsg
->
raw
.
len
;
*
datalen
=
sigmsg
->
raw
.
len
;
sigmsg
->
raw
.
data
=
NULL
;
sigmsg
->
raw
.
len
=
0
;
return
FTDM_SUCCESS
;
}
...
...
libs/freetdm/src/ftmod/ftmod_r2/ftmod_r2.c
浏览文件 @
4b935500
...
...
@@ -520,6 +520,28 @@ static FIO_CHANNEL_SET_SIG_STATUS_FUNCTION(ftdm_r2_set_channel_sig_status)
openr2_chan_t
*
r2chan
=
R2CALL
(
ftdmchan
)
->
r2chan
;
openr2_cas_signal_t
rxcas
,
txcas
;
if
(
ftdm_test_flag
(
ftdmchan
,
FTDM_CHANNEL_IN_ALARM
))
{
ftdm_log_chan
(
ftdmchan
,
FTDM_LOG_DEBUG
,
"Received request to change sig status of alarmed channel to %s"
,
ftdm_signaling_status2str
(
status
));
switch
(
status
)
{
case
FTDM_SIG_STATE_SUSPENDED
:
openr2_chan_set_blocked
(
r2chan
);
/* Need to send sig status change to SUSPENDED once out of alarm */
R2CALL
(
ftdmchan
)
->
localsuspend_on_alarm
=
1
;
break
;
case
FTDM_SIG_STATE_UP
:
openr2_chan_set_blocked
(
r2chan
);
/* DO NOT send sig status change to SUSPENDED once out of alarm */
R2CALL
(
ftdmchan
)
->
localsuspend_on_alarm
=
0
;
break
;
default:
ftdm_log_chan
(
ftdmchan
,
FTDM_LOG_WARNING
,
"Cannot set signaling status to unknown value '%d'
\n
"
,
status
);
return
FTDM_FAIL
;
}
return
FTDM_SUCCESS
;
}
/* get the current rx and tx cas bits */
openr2_chan_get_cas
(
r2chan
,
&
rxcas
,
&
txcas
);
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c
浏览文件 @
4b935500
...
...
@@ -807,17 +807,10 @@ void sngisdn_process_fac_ind (sngisdn_event_data_t *sngisdn_event)
if
(
signal_data
->
facility_ie_decode
==
SNGISDN_OPT_FALSE
)
{
/* If Facility decoding is disabled, we do not care about current call state, just pass event up to user */
ftdm_sigmsg_t
sigev
;
if
(
facEvnt
->
facElmt
.
facStr
.
pres
)
{
get_facility_ie_str
(
ftdmchan
,
&
facEvnt
->
facElmt
.
facStr
.
val
[
2
],
facEvnt
->
facElmt
.
facStr
.
len
-
2
);
sngisdn_send_signal
(
sngisdn_info
,
FTDM_SIGEVENT_FACILITY
);
}
memset
(
&
sigev
,
0
,
sizeof
(
sigev
));
sigev
.
chan_id
=
ftdmchan
->
chan_id
;
sigev
.
span_id
=
ftdmchan
->
span_id
;
sigev
.
channel
=
ftdmchan
;
sigev
.
event_id
=
FTDM_SIGEVENT_FACILITY
;
ftdm_span_send_signal
(
ftdmchan
->
span
,
&
sigev
);
ISDN_FUNC_TRACE_EXIT
(
__FUNCTION__
);
return
;
}
...
...
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c
浏览文件 @
4b935500
...
...
@@ -370,7 +370,7 @@ ftdm_status_t get_facility_ie_str(ftdm_channel_t *ftdmchan, uint8_t *data, uint8
my_data
[
1
]
=
data_len
;
memcpy
(
&
my_data
[
2
],
data
,
data_len
);
sngisdn_add_raw_data
((
sngisdn_chan_data_t
*
)
ftdmchan
->
call_data
,
data
,
data_len
+
2
);
sngisdn_add_raw_data
((
sngisdn_chan_data_t
*
)
ftdmchan
->
call_data
,
my_
data
,
data_len
+
2
);
ftdm_log_chan_msg
(
ftdmchan
,
FTDM_LOG_DEBUG
,
"Raw Facility IE copied available
\n
"
);
}
else
{
...
...
libs/freetdm/src/include/freetdm.h
浏览文件 @
4b935500
...
...
@@ -1463,11 +1463,6 @@ FT_DECLARE(ftdm_iterator_t *) ftdm_iterator_next(ftdm_iterator_t *iter);
*/
FT_DECLARE
(
ftdm_status_t
)
ftdm_iterator_free
(
ftdm_iterator_t
*
iter
);
/*! \brief Clears all the temporary data attached to this call
* \note Clears caller_data->variables and caller_data->raw_data.
* */
FT_DECLARE
(
void
)
ftdm_call_clear_data
(
ftdm_caller_data_t
*
caller_data
);
/*! \brief Get the span pointer associated to the channel */
FT_DECLARE
(
ftdm_span_t
*
)
ftdm_channel_get_span
(
const
ftdm_channel_t
*
ftdmchan
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论