Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
6cfce6f4
提交
6cfce6f4
authored
11月 15, 2010
作者:
Moises Silva
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
freetdm: rename mod_data to io_data since is data meant for I/O modules only
fix ftmod_isdn usage of mod_data, it should be call_data pointer
上级
f3e55a26
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
57 行增加
和
53 行删除
+57
-53
ftdm_m3ua.c
libs/freetdm/src/ftdm_m3ua.c
+3
-3
ftmod_isdn.c
libs/freetdm/src/ftmod/ftmod_isdn/ftmod_isdn.c
+6
-6
ftmod_pika.c
libs/freetdm/src/ftmod/ftmod_pika/ftmod_pika.c
+18
-18
ftmod_wanpipe.c
libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c
+24
-24
ftdm_core.h
libs/freetdm/src/include/private/ftdm_core.h
+6
-2
没有找到文件。
libs/freetdm/src/ftdm_m3ua.c
浏览文件 @
6cfce6f4
...
...
@@ -484,7 +484,7 @@ static FIO_SPAN_NEXT_EVENT_FUNCTION(m3ua_next_event)
static
FIO_SPAN_DESTROY_FUNCTION
(
m3ua_span_destroy
)
{
m3ua_span_data_t
*
span_data
=
(
m3ua_span_data_t
*
)
span
->
mod
_data
;
m3ua_span_data_t
*
span_data
=
(
m3ua_span_data_t
*
)
span
->
io
_data
;
if
(
span_data
)
{
ftdm_safe_free
(
span_data
);
...
...
@@ -494,8 +494,8 @@ static FIO_SPAN_DESTROY_FUNCTION(m3ua_span_destroy)
}
static
FIO_CHANNEL_DESTROY_FUNCTION
(
m3ua_channel_destroy
)
{
m3ua_chan_data_t
*
chan_data
=
(
m3ua_chan_data_t
*
)
ftdmchan
->
mod
_data
;
m3ua_span_data_t
*
span_data
=
(
m3ua_span_data_t
*
)
ftdmchan
->
span
->
mod
_data
;
m3ua_chan_data_t
*
chan_data
=
(
m3ua_chan_data_t
*
)
ftdmchan
->
io
_data
;
m3ua_span_data_t
*
span_data
=
(
m3ua_span_data_t
*
)
ftdmchan
->
span
->
io
_data
;
if
(
!
chan_data
)
{
return
FTDM_FAIL
;
...
...
libs/freetdm/src/ftmod/ftmod_isdn/ftmod_isdn.c
浏览文件 @
6cfce6f4
...
...
@@ -1077,8 +1077,8 @@ static L3INT ftdm_isdn_931_34(void *pvt, struct Q931_Call *call, Q931mes_Generic
isdn_data
->
channels_remote_crv
[
gen
->
CRV
]
=
ftdmchan
;
memset
(
&
ftdmchan
->
caller_data
,
0
,
sizeof
(
ftdmchan
->
caller_data
));
if
(
ftdmchan
->
mod
_data
)
{
memset
(
ftdmchan
->
mod
_data
,
0
,
sizeof
(
ftdm_isdn_bchan_data_t
));
if
(
ftdmchan
->
call
_data
)
{
memset
(
ftdmchan
->
call
_data
,
0
,
sizeof
(
ftdm_isdn_bchan_data_t
));
}
/* copy number readd prefix as needed */
...
...
@@ -1210,7 +1210,7 @@ static L3INT ftdm_isdn_931_34(void *pvt, struct Q931_Call *call, Q931mes_Generic
* overlap dial digit indication
*/
if
(
Q931IsIEPresent
(
gen
->
CalledNum
))
{
ftdm_isdn_bchan_data_t
*
data
=
(
ftdm_isdn_bchan_data_t
*
)
ftdmchan
->
mod
_data
;
ftdm_isdn_bchan_data_t
*
data
=
(
ftdm_isdn_bchan_data_t
*
)
ftdmchan
->
call
_data
;
Q931ie_CalledNum
*
callednum
=
Q931GetIEPtr
(
gen
->
CalledNum
,
gen
->
buf
);
int
pos
;
...
...
@@ -1365,7 +1365,7 @@ static __inline__ void state_advance(ftdm_channel_t *ftdmchan)
break
;
case
FTDM_CHANNEL_STATE_DIALTONE
:
{
ftdm_isdn_bchan_data_t
*
data
=
(
ftdm_isdn_bchan_data_t
*
)
ftdmchan
->
mod
_data
;
ftdm_isdn_bchan_data_t
*
data
=
(
ftdm_isdn_bchan_data_t
*
)
ftdmchan
->
call
_data
;
if
(
data
)
{
data
->
digit_timeout
=
ftdm_time_now
()
+
isdn_data
->
digit_timeout
;
...
...
@@ -1858,7 +1858,7 @@ static void *ftdm_isdn_tones_run(ftdm_thread_t *me, void *obj)
switch
(
ftdm_channel_get_state
(
chan
))
{
case
FTDM_CHANNEL_STATE_DIALTONE
:
{
ftdm_isdn_bchan_data_t
*
data
=
(
ftdm_isdn_bchan_data_t
*
)
chan
->
mod
_data
;
ftdm_isdn_bchan_data_t
*
data
=
(
ftdm_isdn_bchan_data_t
*
)
chan
->
call
_data
;
ftdm_caller_data_t
*
caller_data
=
ftdm_channel_get_caller_data
(
chan
);
/* check overlap dial timeout first before generating tone */
...
...
@@ -2738,7 +2738,7 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(isdn_configure_span)
ftdm_channel_t
*
chan
=
ftdm_span_get_channel
(
span
,
i
);
if
(
ftdm_channel_get_type
(
chan
)
==
FTDM_CHAN_TYPE_B
)
{
chan
->
mod
_data
=
data
;
chan
->
call
_data
=
data
;
memset
(
data
,
0
,
sizeof
(
ftdm_isdn_bchan_data_t
));
}
}
...
...
libs/freetdm/src/ftmod/ftmod_pika/ftmod_pika.c
浏览文件 @
6cfce6f4
...
...
@@ -266,7 +266,7 @@ PK_VOID PK_CALLBACK media_out_callback(PKH_TPikaEvent *event)
{
PK_STATUS
pk_status
;
ftdm_channel_t
*
ftdmchan
=
event
->
userData
;
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
mod
_data
;
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
io
_data
;
//PK_CHAR event_text[PKH_EVENT_MAX_NAME_LENGTH];
//PKH_EVENT_GetText(event->id, event_text, sizeof(event_text));
...
...
@@ -345,8 +345,8 @@ static unsigned pika_open_range(ftdm_span_t *span, unsigned boardno, unsigned sp
}
if
(
span
->
mod
_data
)
{
span_data
=
span
->
mod
_data
;
if
(
span
->
io
_data
)
{
span_data
=
span
->
io
_data
;
}
else
{
span_data
=
ftdm_malloc
(
sizeof
(
*
span_data
));
assert
(
span_data
!=
NULL
);
...
...
@@ -364,7 +364,7 @@ static unsigned pika_open_range(ftdm_span_t *span, unsigned boardno, unsigned sp
//PKH_QUEUE_Attach(span_data->event_queue, globals.open_boards[boardno], NULL);
span
->
mod
_data
=
span_data
;
span
->
io
_data
=
span_data
;
}
if
(
type
==
FTDM_CHAN_TYPE_FXS
||
type
==
FTDM_CHAN_TYPE_FXO
)
{
...
...
@@ -380,7 +380,7 @@ static unsigned pika_open_range(ftdm_span_t *span, unsigned boardno, unsigned sp
assert
(
chan_data
);
memset
(
chan_data
,
0
,
sizeof
(
*
chan_data
));
ftdm_span_add_channel
(
span
,
0
,
type
,
&
chan
);
chan
->
mod
_data
=
chan_data
;
chan
->
io
_data
=
chan_data
;
if
((
type
==
FTDM_CHAN_TYPE_B
||
type
==
FTDM_CHAN_TYPE_DQ921
)
&&
!
span_data
->
handle
)
{
PKH_TBoardConfig
boardConfig
;
...
...
@@ -680,7 +680,7 @@ static FIO_CONFIGURE_SPAN_FUNCTION(pika_configure_span)
*/
static
FIO_OPEN_FUNCTION
(
pika_open
)
{
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
mod
_data
;
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
io
_data
;
if
(
!
chan_data
&&
!
ftdm_test_flag
(
chan_data
,
PK_FLAG_READY
))
{
return
FTDM_FAIL
;
...
...
@@ -715,7 +715,7 @@ static FIO_CLOSE_FUNCTION(pika_close)
*/
static
FIO_WAIT_FUNCTION
(
pika_wait
)
{
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
mod
_data
;
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
io
_data
;
PK_STATUS
status
;
ftdm_wait_flag_t
myflags
=
*
flags
;
PK_CHAR
event_text
[
PKH_EVENT_MAX_NAME_LENGTH
];
...
...
@@ -754,7 +754,7 @@ static FIO_WAIT_FUNCTION(pika_wait)
*/
static
FIO_READ_FUNCTION
(
pika_read
)
{
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
mod
_data
;
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
io
_data
;
PK_STATUS
status
;
PK_CHAR
event_text
[
PKH_EVENT_MAX_NAME_LENGTH
];
uint32_t
len
;
...
...
@@ -795,7 +795,7 @@ static FIO_READ_FUNCTION(pika_read)
*/
static
FIO_WRITE_FUNCTION
(
pika_write
)
{
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
mod
_data
;
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
io
_data
;
PK_STATUS
status
;
if
(
ftdmchan
->
type
==
FTDM_CHAN_TYPE_DQ921
)
{
...
...
@@ -821,8 +821,8 @@ static FIO_WRITE_FUNCTION(pika_write)
*/
static
FIO_COMMAND_FUNCTION
(
pika_command
)
{
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
mod
_data
;
//pika_span_data_t *span_data = (pika_span_data_t *) ftdmchan->span->
mod
_data;
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
io
_data
;
//pika_span_data_t *span_data = (pika_span_data_t *) ftdmchan->span->
io
_data;
PK_STATUS
pk_status
;
ftdm_status_t
status
=
FTDM_SUCCESS
;
...
...
@@ -956,7 +956,7 @@ static FIO_COMMAND_FUNCTION(pika_command)
*/
static
FIO_SPAN_POLL_EVENT_FUNCTION
(
pika_poll_event
)
{
pika_span_data_t
*
span_data
=
(
pika_span_data_t
*
)
span
->
mod
_data
;
pika_span_data_t
*
span_data
=
(
pika_span_data_t
*
)
span
->
io
_data
;
PK_STATUS
status
;
PK_CHAR
event_text
[
PKH_EVENT_MAX_NAME_LENGTH
];
...
...
@@ -1025,7 +1025,7 @@ static FIO_SPAN_POLL_EVENT_FUNCTION(pika_poll_event)
for
(
x
=
1
;
x
<=
span
->
chan_count
;
x
++
)
{
ftdmchan
=
span
->
channels
[
x
];
assert
(
ftdmchan
!=
NULL
);
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
mod
_data
;
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
io
_data
;
assert
(
chan_data
!=
NULL
);
...
...
@@ -1042,7 +1042,7 @@ static FIO_SPAN_POLL_EVENT_FUNCTION(pika_poll_event)
//ftdm_log(FTDM_LOG_DEBUG, "Event: %s\n", event_text);
if
(
ftdmchan
)
{
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
mod
_data
;
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
io
_data
;
assert
(
chan_data
!=
NULL
);
ftdm_set_flag
(
ftdmchan
,
FTDM_CHANNEL_EVENT
);
...
...
@@ -1068,7 +1068,7 @@ static FIO_SPAN_NEXT_EVENT_FUNCTION(pika_next_event)
for
(
i
=
1
;
i
<=
span
->
chan_count
;
i
++
)
{
if
(
ftdm_test_flag
(
span
->
channels
[
i
],
FTDM_CHANNEL_EVENT
))
{
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
span
->
channels
[
i
]
->
mod
_data
;
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
span
->
channels
[
i
]
->
io
_data
;
PK_CHAR
event_text
[
PKH_EVENT_MAX_NAME_LENGTH
];
ftdm_clear_flag
(
span
->
channels
[
i
],
FTDM_CHANNEL_EVENT
);
...
...
@@ -1207,7 +1207,7 @@ static FIO_SPAN_NEXT_EVENT_FUNCTION(pika_next_event)
*/
static
FIO_SPAN_DESTROY_FUNCTION
(
pika_span_destroy
)
{
pika_span_data_t
*
span_data
=
(
pika_span_data_t
*
)
span
->
mod
_data
;
pika_span_data_t
*
span_data
=
(
pika_span_data_t
*
)
span
->
io
_data
;
if
(
span_data
)
{
PKH_QUEUE_Destroy
(
span_data
->
event_queue
);
...
...
@@ -1224,8 +1224,8 @@ static FIO_SPAN_DESTROY_FUNCTION(pika_span_destroy)
*/
static
FIO_CHANNEL_DESTROY_FUNCTION
(
pika_channel_destroy
)
{
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
mod
_data
;
pika_span_data_t
*
span_data
=
(
pika_span_data_t
*
)
ftdmchan
->
span
->
mod
_data
;
pika_chan_data_t
*
chan_data
=
(
pika_chan_data_t
*
)
ftdmchan
->
io
_data
;
pika_span_data_t
*
span_data
=
(
pika_span_data_t
*
)
ftdmchan
->
span
->
io
_data
;
if
(
!
chan_data
)
{
return
FTDM_FAIL
;
...
...
libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c
浏览文件 @
6cfce6f4
...
...
@@ -117,28 +117,28 @@ static __inline__ int tdmv_api_wait_socket(ftdm_channel_t *ftdmchan, int timeout
#ifdef LIBSANGOMA_VERSION
int
err
;
uint32_t
inflags
=
*
flags
;
uint32_t
outflags
=
0
;
sangoma_wait_obj_t
*
sangoma_wait_obj
=
ftdmchan
->
mod
_data
;
uint32_t
inflags
=
*
flags
;
uint32_t
outflags
=
0
;
sangoma_wait_obj_t
*
sangoma_wait_obj
=
ftdmchan
->
io
_data
;
err
=
sangoma_waitfor
(
sangoma_wait_obj
,
inflags
,
&
outflags
,
timeout
);
*
flags
=
0
;
if
(
err
==
SANG_STATUS_SUCCESS
)
{
*
flags
=
outflags
;
err
=
1
;
/* ideally should be the number of file descriptors with something to read */
}
if
(
err
==
SANG_STATUS_APIPOLL_TIMEOUT
)
{
err
=
0
;
}
return
err
;
if
(
err
==
SANG_STATUS_SUCCESS
)
{
*
flags
=
outflags
;
err
=
1
;
/* ideally should be the number of file descriptors with something to read */
}
if
(
err
==
SANG_STATUS_APIPOLL_TIMEOUT
)
{
err
=
0
;
}
return
err
;
#else
struct
pollfd
pfds
[
1
];
int
res
;
int
res
;
memset
(
&
pfds
[
0
],
0
,
sizeof
(
pfds
[
0
]));
pfds
[
0
].
fd
=
ftdmchan
->
sockfd
;
pfds
[
0
].
events
=
*
flags
;
res
=
poll
(
pfds
,
1
,
timeout
);
memset
(
&
pfds
[
0
],
0
,
sizeof
(
pfds
[
0
]));
pfds
[
0
].
fd
=
ftdmchan
->
sockfd
;
pfds
[
0
].
events
=
*
flags
;
res
=
poll
(
pfds
,
1
,
timeout
);
*
flags
=
0
;
if
(
pfds
[
0
].
revents
&
POLLERR
)
{
...
...
@@ -149,7 +149,7 @@ static __inline__ int tdmv_api_wait_socket(ftdm_channel_t *ftdmchan, int timeout
*
flags
=
pfds
[
0
].
revents
;
}
return
res
;
return
res
;
#endif
}
...
...
@@ -252,7 +252,7 @@ static unsigned wp_open_range(ftdm_span_t *span, unsigned spanno, unsigned start
ftdm_log
(
FTDM_LOG_ERROR
,
"failure create waitable object for s%dc%d
\n
"
,
spanno
,
x
);
continue
;
}
chan
->
mod
_data
=
sangoma_wait_obj
;
chan
->
io
_data
=
sangoma_wait_obj
;
#endif
chan
->
physical_span_id
=
spanno
;
...
...
@@ -541,7 +541,7 @@ static FIO_OPEN_FUNCTION(wanpipe_open)
static
FIO_CLOSE_FUNCTION
(
wanpipe_close
)
{
#ifdef LIBSANGOMA_VERSION
sangoma_wait_obj_t
*
waitobj
=
ftdmchan
->
mod
_data
;
sangoma_wait_obj_t
*
waitobj
=
ftdmchan
->
io
_data
;
/* kick any I/O waiters */
sangoma_wait_obj_signal
(
waitobj
);
#endif
...
...
@@ -895,10 +895,10 @@ FIO_SPAN_POLL_EVENT_FUNCTION(wanpipe_poll_event)
for
(
i
=
1
;
i
<=
span
->
chan_count
;
i
++
)
{
ftdm_channel_t
*
ftdmchan
=
span
->
channels
[
i
];
#ifdef LIBSANGOMA_VERSION
if
(
!
ftdmchan
->
mod
_data
)
{
if
(
!
ftdmchan
->
io
_data
)
{
continue
;
/* should never happen but happens when shutting down */
}
pfds
[
j
]
=
ftdmchan
->
mod
_data
;
pfds
[
j
]
=
ftdmchan
->
io
_data
;
inflags
[
j
]
=
poll_events
?
poll_events
[
j
]
:
POLLPRI
;
#else
memset
(
&
pfds
[
j
],
0
,
sizeof
(
pfds
[
j
]));
...
...
@@ -1234,10 +1234,10 @@ FIO_SPAN_NEXT_EVENT_FUNCTION(wanpipe_next_event)
static
FIO_CHANNEL_DESTROY_FUNCTION
(
wanpipe_channel_destroy
)
{
#ifdef LIBSANGOMA_VERSION
if
(
ftdmchan
->
mod
_data
)
{
if
(
ftdmchan
->
io
_data
)
{
sangoma_wait_obj_t
*
sangoma_wait_obj
;
sangoma_wait_obj
=
ftdmchan
->
mod
_data
;
ftdmchan
->
mod
_data
=
NULL
;
sangoma_wait_obj
=
ftdmchan
->
io
_data
;
ftdmchan
->
io
_data
=
NULL
;
sangoma_wait_obj_delete
(
&
sangoma_wait_obj
);
}
#endif
...
...
libs/freetdm/src/include/private/ftdm_core.h
浏览文件 @
6cfce6f4
...
...
@@ -424,7 +424,9 @@ struct ftdm_channel {
ftdm_fsk_data_state_t
fsk
;
uint8_t
fsk_buf
[
80
];
uint32_t
ring_count
;
void
*
mod_data
;
/* Private I/O data. Do not touch unless you are an I/O module */
void
*
io_data
;
/* Private signaling data. Do not touch unless you are a signaling module */
void
*
call_data
;
struct
ftdm_caller_data
caller_data
;
struct
ftdm_span
*
span
;
...
...
@@ -456,6 +458,7 @@ struct ftdm_span {
ftdm_trunk_type_t
trunk_type
;
ftdm_analog_start_type_t
start_type
;
ftdm_signal_type_t
signal_type
;
/* Private signaling data. Do not touch unless you are a signaling module */
void
*
signal_data
;
fio_signal_cb_t
signal_cb
;
ftdm_event_t
event_header
;
...
...
@@ -473,7 +476,8 @@ struct ftdm_span {
ftdm_span_start_t
start
;
ftdm_span_stop_t
stop
;
ftdm_channel_sig_read_t
sig_read
;
void
*
mod_data
;
/* Private I/O data per span. Do not touch unless you are an I/O module */
void
*
io_data
;
char
*
type
;
char
*
dtmf_hangup
;
size_t
dtmf_hangup_len
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论