Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
62eea6fd
提交
62eea6fd
authored
5月 22, 2007
作者:
Anthony Minessale
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
git-svn-id:
http://svn.openzap.org/svn/openzap/trunk@90
a93c3328-9c30-0410-af19-c9cd2b2d52af
上级
b8635f17
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
168 行增加
和
147 行删除
+168
-147
Makefile
libs/openzap/src/Makefile
+4
-2
openzap.h
libs/openzap/src/include/openzap.h
+17
-16
zap_types.h
libs/openzap/src/include/zap_types.h
+64
-46
zap_wanpipe.h
libs/openzap/src/include/zap_wanpipe.h
+1
-1
zap_io.c
libs/openzap/src/zap_io.c
+68
-68
zap_wanpipe.c
libs/openzap/src/zap_wanpipe.c
+14
-14
没有找到文件。
libs/openzap/src/Makefile
浏览文件 @
62eea6fd
...
...
@@ -32,7 +32,9 @@
OBJS
=
hashtable.o
\
hashtable_itr.o
\
openzap.o
\
zap_io.o
\
zap_isdn.o
\
zap_analog.o
\
zap_config.o
\
g711.o
\
libteletone_detect.o
\
...
...
@@ -77,7 +79,7 @@ sangoma_pri.o: sangoma_pri.c
priserver
:
$(MYLIB) priserver.o sangoma_pri.o
$(CC)
sangoma_pri.o priserver.o
-L
.
-o
priserver
-lopenzap
-lm
-lpthread
../../libpri-1.2.4/libpri.a
openzap.o
:
openzap
.c
zap_io.o
:
zap_io
.c
$(CC)
$(MOD_CFLAGS)
$(CC_CFLAGS)
$(CFLAGS)
-c
$<
-o
$@
zap_wanpipe.o
:
zap_wanpipe.c
...
...
libs/openzap/src/include/openzap.h
浏览文件 @
62eea6fd
...
...
@@ -173,7 +173,7 @@ struct zap_channel {
teletone_dtmf_detect_state_t
dtmf_detect
;
zap_event_t
event_header
;
char
last_error
[
256
];
zi
nt
_event_cb_t
event_callback
;
zi
o
_event_cb_t
event_callback
;
void
*
mod_data
;
uint32_t
skip_read_frames
;
zap_buffer_t
*
dtmf_buffer
;
...
...
@@ -181,7 +181,7 @@ struct zap_channel {
uint32_t
dtmf_off
;
teletone_generation_session_t
tone_session
;
struct
zap_span
*
span
;
struct
zap_
software_interface
*
zint
;
struct
zap_
io_interface
*
zio
;
};
...
...
@@ -189,34 +189,35 @@ struct zap_span {
uint32_t
span_id
;
uint32_t
chan_count
;
zap_span_flag_t
flags
;
struct
zap_
software_interface
*
zint
;
zi
nt
_event_cb_t
event_callback
;
struct
zap_
io_interface
*
zio
;
zi
o
_event_cb_t
event_callback
;
zap_mutex_t
*
mutex
;
zap_signal_type_t
signal_type
;
zap_channel_t
channels
[
ZAP_MAX_CHANNELS_SPAN
];
};
extern
zap_logger_t
zap_log
;
struct
zap_
software
_interface
{
struct
zap_
io
_interface
{
const
char
*
name
;
zi
nt
_configure_t
configure
;
zi
nt
_open_t
open
;
zi
nt
_close_t
close
;
zi
nt
_command_t
command
;
zi
nt
_wait_t
wait
;
zi
nt
_read_t
read
;
zi
nt
_write_t
write
;
zi
o
_configure_t
configure
;
zi
o
_open_t
open
;
zi
o
_close_t
close
;
zi
o
_command_t
command
;
zi
o
_wait_t
wait
;
zi
o
_read_t
read
;
zi
o
_write_t
write
;
uint32_t
span_index
;
struct
zap_span
spans
[
ZAP_MAX_SPANS_INTERFACE
];
};
zap_status_t
zap_span_find
(
const
char
*
name
,
uint32_t
id
,
zap_span_t
**
span
);
zap_status_t
zap_span_create
(
zap_
software_interface_t
*
zint
,
zap_span_t
**
span
);
zap_status_t
zap_span_close_all
(
zap_
software_interface_t
*
zint
);
zap_status_t
zap_span_create
(
zap_
io_interface_t
*
zio
,
zap_span_t
**
span
);
zap_status_t
zap_span_close_all
(
zap_
io_interface_t
*
zio
);
zap_status_t
zap_span_add_channel
(
zap_span_t
*
span
,
zap_socket_t
sockfd
,
zap_chan_type_t
type
,
zap_channel_t
**
chan
);
zap_status_t
zap_span_set_event_callback
(
zap_span_t
*
span
,
zi
nt
_event_cb_t
event_callback
);
zap_status_t
zap_channel_set_event_callback
(
zap_channel_t
*
zchan
,
zi
nt
_event_cb_t
event_callback
);
zap_status_t
zap_span_set_event_callback
(
zap_span_t
*
span
,
zi
o
_event_cb_t
event_callback
);
zap_status_t
zap_channel_set_event_callback
(
zap_channel_t
*
zchan
,
zi
o
_event_cb_t
event_callback
);
zap_status_t
zap_channel_open
(
const
char
*
name
,
uint32_t
span_id
,
uint32_t
chan_id
,
zap_channel_t
**
zchan
);
zap_status_t
zap_channel_open_any
(
const
char
*
name
,
uint32_t
span_id
,
zap_direction_t
direction
,
zap_channel_t
**
zchan
);
zap_status_t
zap_channel_close
(
zap_channel_t
**
zchan
);
...
...
libs/openzap/src/include/zap_types.h
浏览文件 @
62eea6fd
...
...
@@ -45,11 +45,36 @@ typedef int zap_socket_t;
#endif
typedef
size_t
zap_size_t
;
struct
zap_
software
_interface
;
struct
zap_
io
_interface
;
#define ZAP_COMMAND_OBJ_INT *((int *)obj)
#define ZAP_COMMAND_OBJ_CHAR_P (char *)obj
typedef
enum
{
ZAP_SIGTYPE_NONE
,
ZAP_SIGTYPE_ISDN
,
ZAP_SIGTYPE_RBS
,
ZAP_SIGTYPE_ANALOG
}
zap_signal_type_t
;
typedef
enum
{
ZAP_SIGEVENT_CALL_START
,
ZAP_SIGEVENT_CALL_STOP
,
ZAP_SIGEVENT_CALL_TRANSFER
,
ZAP_SIGEVENT_ANSWER
,
ZAP_SIGEVENT_PROGRESS
,
ZAP_SIGEVENT_PROGRESS_MEDIA
,
ZAP_SIGEVENT_NOTIFY
,
ZAP_SIGEVENT_MISC
}
zap_signal_event_t
;
typedef
enum
{
ZAP_EVENT_NONE
,
ZAP_EVENT_DTMF
,
ZAP_EVENT_COUNT
}
zap_event_type_t
;
typedef
enum
{
ZAP_TOP_DOWN
,
ZAP_BOTTOM_UP
...
...
@@ -134,43 +159,43 @@ typedef enum {
typedef
struct
zap_channel
zap_channel_t
;
typedef
struct
zap_event
zap_event_t
;
#define ZI
NT
_EVENT_CB_ARGS (zap_channel_t *zchan, zap_event_t *event)
#define ZI
NT
_CODEC_ARGS (void *data, zap_size_t max, zap_size_t *datalen)
#define ZI
NT_CONFIGURE_ARGS (struct zap_software_interface *zint
)
#define ZI
NT
_OPEN_ARGS (zap_channel_t *zchan)
#define ZI
NT
_CLOSE_ARGS (zap_channel_t *zchan)
#define ZI
NT
_COMMAND_ARGS (zap_channel_t *zchan, zap_command_t command, void *obj)
#define ZI
NT
_WAIT_ARGS (zap_channel_t *zchan, zap_wait_flag_t *flags, int32_t to)
#define ZI
NT
_READ_ARGS (zap_channel_t *zchan, void *data, zap_size_t *datalen)
#define ZI
NT
_WRITE_ARGS (zap_channel_t *zchan, void *data, zap_size_t *datalen)
typedef
zap_status_t
(
*
zi
nt_event_cb_t
)
ZINT
_EVENT_CB_ARGS
;
typedef
zap_status_t
(
*
zi
nt_codec_t
)
ZINT
_CODEC_ARGS
;
typedef
zap_status_t
(
*
zi
nt_configure_t
)
ZINT
_CONFIGURE_ARGS
;
typedef
zap_status_t
(
*
zi
nt_open_t
)
ZINT
_OPEN_ARGS
;
typedef
zap_status_t
(
*
zi
nt_close_t
)
ZINT
_CLOSE_ARGS
;
typedef
zap_status_t
(
*
zi
nt_command_t
)
ZINT
_COMMAND_ARGS
;
typedef
zap_status_t
(
*
zi
nt_wait_t
)
ZINT
_WAIT_ARGS
;
typedef
zap_status_t
(
*
zi
nt_read_t
)
ZINT
_READ_ARGS
;
typedef
zap_status_t
(
*
zi
nt_write_t
)
ZINT
_WRITE_ARGS
;
#define ZI
NT_EVENT_CB_FUNCTION(name) zap_status_t name ZINT
_EVENT_CB_ARGS
#define ZI
NT_CODEC_FUNCTION(name) zap_status_t name ZINT
_CODEC_ARGS
#define ZI
NT_CONFIGURE_FUNCTION(name) zap_status_t name ZINT
_CONFIGURE_ARGS
#define ZI
NT_OPEN_FUNCTION(name) zap_status_t name ZINT
_OPEN_ARGS
#define ZI
NT_CLOSE_FUNCTION(name) zap_status_t name ZINT
_CLOSE_ARGS
#define ZI
NT_COMMAND_FUNCTION(name) zap_status_t name ZINT
_COMMAND_ARGS
#define ZI
NT_WAIT_FUNCTION(name) zap_status_t name ZINT
_WAIT_ARGS
#define ZI
NT_READ_FUNCTION(name) zap_status_t name ZINT
_READ_ARGS
#define ZI
NT_WRITE_FUNCTION(name) zap_status_t name ZINT
_WRITE_ARGS
#define ZI
NT_CONFIGURE_MUZZLE assert(zint
!= NULL)
#define ZI
NT
_OPEN_MUZZLE assert(zchan != NULL)
#define ZI
NT
_CLOSE_MUZZLE assert(zchan != NULL)
#define ZI
NT
_COMMAND_MUZZLE assert(zchan != NULL); assert(command != 0); assert(obj != NULL)
#define ZI
NT
_WAIT_MUZZLE assert(zchan != NULL); assert(flags != 0); assert(to != 0)
#define ZI
NT
_READ_MUZZLE assert(zchan != NULL); assert(data != NULL); assert(datalen != NULL)
#define ZI
NT
_WRITE_MUZZLE assert(zchan != NULL); assert(data != NULL); assert(datalen != NULL)
#define ZI
O
_EVENT_CB_ARGS (zap_channel_t *zchan, zap_event_t *event)
#define ZI
O
_CODEC_ARGS (void *data, zap_size_t max, zap_size_t *datalen)
#define ZI
O_CONFIGURE_ARGS (struct zap_io_interface *zio
)
#define ZI
O
_OPEN_ARGS (zap_channel_t *zchan)
#define ZI
O
_CLOSE_ARGS (zap_channel_t *zchan)
#define ZI
O
_COMMAND_ARGS (zap_channel_t *zchan, zap_command_t command, void *obj)
#define ZI
O
_WAIT_ARGS (zap_channel_t *zchan, zap_wait_flag_t *flags, int32_t to)
#define ZI
O
_READ_ARGS (zap_channel_t *zchan, void *data, zap_size_t *datalen)
#define ZI
O
_WRITE_ARGS (zap_channel_t *zchan, void *data, zap_size_t *datalen)
typedef
zap_status_t
(
*
zi
o_event_cb_t
)
ZIO
_EVENT_CB_ARGS
;
typedef
zap_status_t
(
*
zi
o_codec_t
)
ZIO
_CODEC_ARGS
;
typedef
zap_status_t
(
*
zi
o_configure_t
)
ZIO
_CONFIGURE_ARGS
;
typedef
zap_status_t
(
*
zi
o_open_t
)
ZIO
_OPEN_ARGS
;
typedef
zap_status_t
(
*
zi
o_close_t
)
ZIO
_CLOSE_ARGS
;
typedef
zap_status_t
(
*
zi
o_command_t
)
ZIO
_COMMAND_ARGS
;
typedef
zap_status_t
(
*
zi
o_wait_t
)
ZIO
_WAIT_ARGS
;
typedef
zap_status_t
(
*
zi
o_read_t
)
ZIO
_READ_ARGS
;
typedef
zap_status_t
(
*
zi
o_write_t
)
ZIO
_WRITE_ARGS
;
#define ZI
O_EVENT_CB_FUNCTION(name) zap_status_t name ZIO
_EVENT_CB_ARGS
#define ZI
O_CODEC_FUNCTION(name) zap_status_t name ZIO
_CODEC_ARGS
#define ZI
O_CONFIGURE_FUNCTION(name) zap_status_t name ZIO
_CONFIGURE_ARGS
#define ZI
O_OPEN_FUNCTION(name) zap_status_t name ZIO
_OPEN_ARGS
#define ZI
O_CLOSE_FUNCTION(name) zap_status_t name ZIO
_CLOSE_ARGS
#define ZI
O_COMMAND_FUNCTION(name) zap_status_t name ZIO
_COMMAND_ARGS
#define ZI
O_WAIT_FUNCTION(name) zap_status_t name ZIO
_WAIT_ARGS
#define ZI
O_READ_FUNCTION(name) zap_status_t name ZIO
_READ_ARGS
#define ZI
O_WRITE_FUNCTION(name) zap_status_t name ZIO
_WRITE_ARGS
#define ZI
O_CONFIGURE_MUZZLE assert(zio
!= NULL)
#define ZI
O
_OPEN_MUZZLE assert(zchan != NULL)
#define ZI
O
_CLOSE_MUZZLE assert(zchan != NULL)
#define ZI
O
_COMMAND_MUZZLE assert(zchan != NULL); assert(command != 0); assert(obj != NULL)
#define ZI
O
_WAIT_MUZZLE assert(zchan != NULL); assert(flags != 0); assert(to != 0)
#define ZI
O
_READ_MUZZLE assert(zchan != NULL); assert(data != NULL); assert(datalen != NULL)
#define ZI
O
_WRITE_MUZZLE assert(zchan != NULL); assert(data != NULL); assert(datalen != NULL)
#define ZAP_PRE __FILE__, __FUNCTION__, __LINE__
...
...
@@ -192,16 +217,9 @@ typedef zap_status_t (*zint_write_t) ZINT_WRITE_ARGS ;
#define ZAP_LOG_ALERT ZAP_PRE, ZAP_LOG_LEVEL_ALERT
#define ZAP_LOG_EMERG ZAP_PRE, ZAP_LOG_LEVEL_EMERG
typedef
enum
{
ZAP_EVENT_NONE
,
ZAP_EVENT_DTMF
,
ZAP_EVENT_COUNT
}
zap_event_type_t
;
typedef
struct
zap_span
zap_span_t
;
typedef
void
(
*
zap_logger_t
)(
char
*
file
,
const
char
*
func
,
int
line
,
int
level
,
char
*
fmt
,
...);
typedef
struct
zap_
software_interface
zap_software
_interface_t
;
typedef
struct
zap_
io_interface
zap_io
_interface_t
;
typedef
struct
hashtable
zap_hash_t
;
typedef
struct
hashtable_itr
zap_hash_itr_t
;
typedef
struct
key
zap_hash_key_t
;
...
...
libs/openzap/src/include/zap_wanpipe.h
浏览文件 @
62eea6fd
...
...
@@ -35,7 +35,7 @@
#define ZAP_WANPIPE_H
#include "openzap.h"
zap_status_t
wanpipe_init
(
zap_
software
_interface_t
**
zint
);
zap_status_t
wanpipe_init
(
zap_
io
_interface_t
**
zint
);
zap_status_t
wanpipe_destroy
(
void
);
#endif
libs/openzap/src/
openzap
.c
→
libs/openzap/src/
zap_io
.c
浏览文件 @
62eea6fd
差异被折叠。
点击展开。
libs/openzap/src/zap_wanpipe.c
浏览文件 @
62eea6fd
...
...
@@ -42,7 +42,7 @@ static struct {
unsigned
codec_ms
;
}
wp_globals
;
static
zap_
software
_interface_t
wanpipe_interface
;
static
zap_
io
_interface_t
wanpipe_interface
;
static
zap_status_t
wp_tdm_cmd_exec
(
zap_channel_t
*
zchan
,
wanpipe_tdm_api_t
*
tdm_api
)
{
...
...
@@ -146,7 +146,7 @@ static unsigned wp_configure_channel(zap_config_t *cfg, const char *str, zap_spa
return
configured
;
}
static
ZI
NT
_CONFIGURE_FUNCTION
(
wanpipe_configure
)
static
ZI
O
_CONFIGURE_FUNCTION
(
wanpipe_configure
)
{
zap_config_t
cfg
;
char
*
var
,
*
val
;
...
...
@@ -155,7 +155,7 @@ static ZINT_CONFIGURE_FUNCTION(wanpipe_configure)
int
new_span
=
0
;
unsigned
configured
=
0
,
d
=
0
;
ZI
NT
_CONFIGURE_MUZZLE
;
ZI
O
_CONFIGURE_MUZZLE
;
zap_log
(
ZAP_LOG_DEBUG
,
"configuring wanpipe
\n
"
);
if
(
!
zap_config_open_file
(
&
cfg
,
"wanpipe.conf"
))
{
...
...
@@ -229,7 +229,7 @@ static ZINT_CONFIGURE_FUNCTION(wanpipe_configure)
return
configured
?
ZAP_SUCCESS
:
ZAP_FAIL
;
}
static
ZI
NT
_OPEN_FUNCTION
(
wanpipe_open
)
static
ZI
O
_OPEN_FUNCTION
(
wanpipe_open
)
{
wanpipe_tdm_api_t
tdm_api
;
...
...
@@ -259,18 +259,18 @@ static ZINT_OPEN_FUNCTION(wanpipe_open)
return
ZAP_SUCCESS
;
}
static
ZI
NT
_CLOSE_FUNCTION
(
wanpipe_close
)
static
ZI
O
_CLOSE_FUNCTION
(
wanpipe_close
)
{
ZI
NT
_CLOSE_MUZZLE
;
ZI
O
_CLOSE_MUZZLE
;
return
ZAP_SUCCESS
;
}
static
ZI
NT
_COMMAND_FUNCTION
(
wanpipe_command
)
static
ZI
O
_COMMAND_FUNCTION
(
wanpipe_command
)
{
wanpipe_tdm_api_t
tdm_api
;
int
err
=
0
;
ZI
NT
_COMMAND_MUZZLE
;
ZI
O
_COMMAND_MUZZLE
;
memset
(
&
tdm_api
,
0
,
sizeof
(
tdm_api
));
...
...
@@ -306,7 +306,7 @@ static ZINT_COMMAND_FUNCTION(wanpipe_command)
return
ZAP_SUCCESS
;
}
static
ZI
NT
_READ_FUNCTION
(
wanpipe_read
)
static
ZI
O
_READ_FUNCTION
(
wanpipe_read
)
{
int
rx_len
=
0
;
wp_tdm_api_rx_hdr_t
hdrframe
;
...
...
@@ -325,7 +325,7 @@ static ZINT_READ_FUNCTION(wanpipe_read)
return
ZAP_SUCCESS
;
}
static
ZI
NT
_WRITE_FUNCTION
(
wanpipe_write
)
static
ZI
O
_WRITE_FUNCTION
(
wanpipe_write
)
{
int
bsent
;
wp_tdm_api_tx_hdr_t
hdrframe
;
...
...
@@ -344,7 +344,7 @@ static ZINT_WRITE_FUNCTION(wanpipe_write)
}
static
ZI
NT
_WAIT_FUNCTION
(
wanpipe_wait
)
static
ZI
O
_WAIT_FUNCTION
(
wanpipe_wait
)
{
int32_t
inflags
=
0
;
int
result
;
...
...
@@ -389,9 +389,9 @@ static ZINT_WAIT_FUNCTION(wanpipe_wait)
return
ZAP_SUCCESS
;
}
zap_status_t
wanpipe_init
(
zap_
software_interface_t
**
zint
)
zap_status_t
wanpipe_init
(
zap_
io_interface_t
**
zio
)
{
assert
(
zi
nt
!=
NULL
);
assert
(
zi
o
!=
NULL
);
memset
(
&
wanpipe_interface
,
0
,
sizeof
(
wanpipe_interface
));
wp_globals
.
codec_ms
=
20
;
...
...
@@ -403,7 +403,7 @@ zap_status_t wanpipe_init(zap_software_interface_t **zint)
wanpipe_interface
.
wait
=
wanpipe_wait
;
wanpipe_interface
.
read
=
wanpipe_read
;
wanpipe_interface
.
write
=
wanpipe_write
;
*
zi
nt
=
&
wanpipe_interface
;
*
zi
o
=
&
wanpipe_interface
;
return
ZAP_SUCCESS
;
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论