Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
9f03a0ff
提交
9f03a0ff
authored
5月 25, 2007
作者:
Anthony Minessale
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
git-svn-id:
http://svn.openzap.org/svn/openzap/trunk@152
a93c3328-9c30-0410-af19-c9cd2b2d52af
上级
6c47bd9d
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
35 行增加
和
9 行删除
+35
-9
openzap.h
libs/openzap/src/include/openzap.h
+6
-0
zap_io.c
libs/openzap/src/zap_io.c
+2
-2
zap_wanpipe.c
libs/openzap/src/zap_wanpipe.c
+27
-7
没有找到文件。
libs/openzap/src/include/openzap.h
浏览文件 @
9f03a0ff
...
...
@@ -34,7 +34,9 @@
#ifndef OPENZAP_H
#define OPENZAP_H
#ifndef _XOPEN_SOURCE
#define _XOPEN_SOURCE 500
#endif
#ifndef HAVE_STRINGS_H
#define HAVE_STRINGS_H 1
...
...
@@ -148,6 +150,7 @@
#define GOTO_STATUS(label,st) status = st; goto label ;
#define zap_copy_string(x,y,z) strncpy(x, y, z - 1)
#define zap_strlen_zero(s) (!s || *s == '\0')
#define zap_channel_test_feature(obj, flag) ((obj)->features & flag)
...
...
@@ -241,6 +244,8 @@ struct zap_channel {
uint32_t
dtmf_off
;
teletone_generation_session_t
tone_session
;
zap_time_t
last_event_time
;
char
chan_name
[
80
];
char
chan_number
[
25
];
struct
zap_span
*
span
;
struct
zap_io_interface
*
zio
;
};
...
...
@@ -293,6 +298,7 @@ struct zap_span {
char
last_error
[
256
];
char
tone_map
[
ZAP_TONEMAP_INVALID
+
1
][
ZAP_TONEMAP_LEN
];
zap_channel_t
channels
[
ZAP_MAX_CHANNELS_SPAN
];
void
*
app_data
;
};
...
...
libs/openzap/src/zap_io.c
浏览文件 @
9f03a0ff
...
...
@@ -1045,11 +1045,11 @@ zap_status_t zap_channel_read(zap_channel_t *zchan, void *data, zap_size_t *data
}
if
(
zchan
->
effective_codec
==
ZAP_CODEC_ULAW
)
{
for
(
i
=
0
;
i
<
max
;
i
++
)
{
for
(
i
=
0
;
i
<
slen
;
i
++
)
{
*
sln
++
=
ulaw_to_linear
(
*
lp
++
);
}
}
else
if
(
zchan
->
effective_codec
==
ZAP_CODEC_ALAW
)
{
for
(
i
=
0
;
i
<
max
;
i
++
)
{
for
(
i
=
0
;
i
<
slen
;
i
++
)
{
*
sln
++
=
alaw_to_linear
(
*
lp
++
);
}
}
...
...
libs/openzap/src/zap_wanpipe.c
浏览文件 @
9f03a0ff
...
...
@@ -60,7 +60,7 @@ static zap_status_t wp_tdm_cmd_exec(zap_channel_t *zchan, wanpipe_tdm_api_t *tdm
return
ZAP_SUCCESS
;
}
static
unsigned
wp_open_range
(
zap_span_t
*
span
,
unsigned
spanno
,
unsigned
start
,
unsigned
end
,
zap_chan_type_t
type
)
static
unsigned
wp_open_range
(
zap_span_t
*
span
,
unsigned
spanno
,
unsigned
start
,
unsigned
end
,
zap_chan_type_t
type
,
char
*
name
,
char
*
number
)
{
unsigned
configured
=
0
,
x
;
...
...
@@ -91,6 +91,12 @@ static unsigned wp_open_range(zap_span_t *span, unsigned spanno, unsigned start,
chan
->
native_codec
=
chan
->
effective_codec
=
ZAP_CODEC_ULAW
;
}
}
if
(
!
zap_strlen_zero
(
name
))
{
zap_copy_string
(
chan
->
chan_name
,
name
,
sizeof
(
chan
->
chan_name
));
}
if
(
!
zap_strlen_zero
(
number
))
{
zap_copy_string
(
chan
->
chan_number
,
number
,
sizeof
(
chan
->
chan_number
));
}
configured
++
;
}
else
{
zap_log
(
ZAP_LOG_ERROR
,
"failure configuring device s%dc%d
\n
"
,
spanno
,
x
);
...
...
@@ -100,7 +106,7 @@ static unsigned wp_open_range(zap_span_t *span, unsigned spanno, unsigned start,
return
configured
;
}
static
unsigned
wp_configure_channel
(
zap_config_t
*
cfg
,
const
char
*
str
,
zap_span_t
*
span
,
zap_chan_type_t
type
)
static
unsigned
wp_configure_channel
(
zap_config_t
*
cfg
,
const
char
*
str
,
zap_span_t
*
span
,
zap_chan_type_t
type
,
char
*
name
,
char
*
number
)
{
int
items
,
i
;
char
*
mydata
,
*
item_list
[
10
];
...
...
@@ -158,7 +164,7 @@ static unsigned wp_configure_channel(zap_config_t *cfg, const char *str, zap_spa
continue
;
}
configured
+=
wp_open_range
(
span
,
spanno
,
channo
,
top
,
type
);
configured
+=
wp_open_range
(
span
,
spanno
,
channo
,
top
,
type
,
name
,
number
);
}
...
...
@@ -175,6 +181,8 @@ static ZIO_CONFIGURE_FUNCTION(wanpipe_configure)
zap_span_t
*
span
=
NULL
;
int
new_span
=
0
;
unsigned
configured
=
0
,
d
=
0
;
char
name
[
80
]
=
""
;
char
number
[
25
]
=
""
;
ZIO_CONFIGURE_MUZZLE
;
...
...
@@ -227,13 +235,25 @@ static ZIO_CONFIGURE_FUNCTION(wanpipe_configure)
}
else
if
(
!
strcasecmp
(
var
,
"trunk_type"
))
{
span
->
trunk_type
=
zap_str2zap_trunk_type
(
val
);
zap_log
(
ZAP_LOG_DEBUG
,
"setting trunk type to '%s'
\n
"
,
zap_trunk_type2str
(
span
->
trunk_type
));
}
else
if
(
!
strcasecmp
(
var
,
"name"
))
{
if
(
!
strcasecmp
(
val
,
"undef"
))
{
*
name
=
'\0'
;
}
else
{
zap_copy_string
(
name
,
val
,
sizeof
(
name
));
}
}
else
if
(
!
strcasecmp
(
var
,
"number"
))
{
if
(
!
strcasecmp
(
val
,
"undef"
))
{
*
number
=
'\0'
;
}
else
{
zap_copy_string
(
number
,
val
,
sizeof
(
number
));
}
}
else
if
(
!
strcasecmp
(
var
,
"fxo-channel"
))
{
if
(
span
->
trunk_type
==
ZAP_TRUNK_NONE
)
{
span
->
trunk_type
=
ZAP_TRUNK_FXO
;
zap_log
(
ZAP_LOG_DEBUG
,
"setting trunk type to '%s'
\n
"
,
zap_trunk_type2str
(
span
->
trunk_type
));
}
if
(
span
->
trunk_type
==
ZAP_TRUNK_FXO
)
{
configured
+=
wp_configure_channel
(
&
cfg
,
val
,
span
,
ZAP_CHAN_TYPE_FXO
);
configured
+=
wp_configure_channel
(
&
cfg
,
val
,
span
,
ZAP_CHAN_TYPE_FXO
,
name
,
number
);
}
else
{
zap_log
(
ZAP_LOG_WARNING
,
"Cannot add FXO channels to an FXS trunk!
\n
"
);
}
...
...
@@ -243,12 +263,12 @@ static ZIO_CONFIGURE_FUNCTION(wanpipe_configure)
zap_log
(
ZAP_LOG_DEBUG
,
"setting trunk type to '%s'
\n
"
,
zap_trunk_type2str
(
span
->
trunk_type
));
}
if
(
span
->
trunk_type
==
ZAP_TRUNK_FXS
)
{
configured
+=
wp_configure_channel
(
&
cfg
,
val
,
span
,
ZAP_CHAN_TYPE_FXS
);
configured
+=
wp_configure_channel
(
&
cfg
,
val
,
span
,
ZAP_CHAN_TYPE_FXS
,
name
,
number
);
}
else
{
zap_log
(
ZAP_LOG_WARNING
,
"Cannot add FXS channels to an FXO trunk!
\n
"
);
}
}
else
if
(
!
strcasecmp
(
var
,
"b-channel"
))
{
configured
+=
wp_configure_channel
(
&
cfg
,
val
,
span
,
ZAP_CHAN_TYPE_B
);
configured
+=
wp_configure_channel
(
&
cfg
,
val
,
span
,
ZAP_CHAN_TYPE_B
,
name
,
number
);
}
else
if
(
!
strcasecmp
(
var
,
"d-channel"
))
{
if
(
d
)
{
zap_log
(
ZAP_LOG_WARNING
,
"ignoring extra d-channel
\n
"
);
...
...
@@ -260,7 +280,7 @@ static ZIO_CONFIGURE_FUNCTION(wanpipe_configure)
}
else
{
qtype
=
ZAP_CHAN_TYPE_DQ921
;
}
configured
+=
wp_configure_channel
(
&
cfg
,
val
,
span
,
qtype
);
configured
+=
wp_configure_channel
(
&
cfg
,
val
,
span
,
qtype
,
name
,
number
);
d
++
;
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论