Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
6dbb4162
提交
6dbb4162
authored
12月 13, 2014
作者:
Anthony Minessale
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
FS-7086 FS-6798 #resolve
上级
e268a726
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
59 行增加
和
17 行删除
+59
-17
switch_core_media.c
src/switch_core_media.c
+59
-17
没有找到文件。
src/switch_core_media.c
浏览文件 @
6dbb4162
...
@@ -7363,6 +7363,7 @@ SWITCH_DECLARE(void) switch_core_media_patch_sdp(switch_core_session_t *session)
...
@@ -7363,6 +7363,7 @@ SWITCH_DECLARE(void) switch_core_media_patch_sdp(switch_core_session_t *session)
int
bad
=
0
;
int
bad
=
0
;
switch_media_handle_t
*
smh
;
switch_media_handle_t
*
smh
;
switch_rtp_engine_t
*
a_engine
,
*
v_engine
;
switch_rtp_engine_t
*
a_engine
,
*
v_engine
;
payload_map_t
*
pmap
;
switch_assert
(
session
);
switch_assert
(
session
);
...
@@ -7393,10 +7394,22 @@ SWITCH_DECLARE(void) switch_core_media_patch_sdp(switch_core_session_t *session)
...
@@ -7393,10 +7394,22 @@ SWITCH_DECLARE(void) switch_core_media_patch_sdp(switch_core_session_t *session)
switch_channel_get_name
(
session
->
channel
));
switch_channel_get_name
(
session
->
channel
));
return
;
return
;
}
}
a_engine
->
cur_payload_map
->
iananame
=
switch_core_session_strdup
(
session
,
"PROXY"
);
a_engine
->
cur_payload_map
->
rm_rate
=
8000
;
clear_pmaps
(
a_engine
);
a_engine
->
cur_payload_map
->
adv_rm_rate
=
8000
;
a_engine
->
cur_payload_map
->
codec_ms
=
20
;
pmap
=
switch_core_media_add_payload_map
(
session
,
SWITCH_MEDIA_TYPE_AUDIO
,
"PROXY"
,
NULL
,
SDP_TYPE_RESPONSE
,
0
,
8000
,
8000
,
1
,
SWITCH_TRUE
);
a_engine
->
cur_payload_map
=
pmap
;
}
}
new_sdp
=
switch_core_session_alloc
(
session
,
len
);
new_sdp
=
switch_core_session_alloc
(
session
,
len
);
...
@@ -7539,10 +7552,19 @@ SWITCH_DECLARE(void) switch_core_media_patch_sdp(switch_core_session_t *session)
...
@@ -7539,10 +7552,19 @@ SWITCH_DECLARE(void) switch_core_media_patch_sdp(switch_core_session_t *session)
}
else
if
(
!
strncmp
(
"m=video "
,
p
,
8
)
&&
*
(
p
+
8
)
!=
'0'
)
{
}
else
if
(
!
strncmp
(
"m=video "
,
p
,
8
)
&&
*
(
p
+
8
)
!=
'0'
)
{
if
(
!
has_video
)
{
if
(
!
has_video
)
{
switch_core_media_choose_port
(
session
,
SWITCH_MEDIA_TYPE_VIDEO
,
1
);
switch_core_media_choose_port
(
session
,
SWITCH_MEDIA_TYPE_VIDEO
,
1
);
v_engine
->
cur_payload_map
->
rm_encoding
=
"PROXY-VID"
;
clear_pmaps
(
v_engine
);
v_engine
->
cur_payload_map
->
rm_rate
=
90000
;
pmap
=
switch_core_media_add_payload_map
(
session
,
v_engine
->
cur_payload_map
->
adv_rm_rate
=
90000
;
SWITCH_MEDIA_TYPE_AUDIO
,
v_engine
->
cur_payload_map
->
codec_ms
=
0
;
"PROXY-VID"
,
NULL
,
SDP_TYPE_RESPONSE
,
0
,
90000
,
90000
,
1
,
SWITCH_TRUE
);
v_engine
->
cur_payload_map
=
pmap
;
switch_snprintf
(
vport_buf
,
sizeof
(
vport_buf
),
"%u"
,
v_engine
->
adv_sdp_port
);
switch_snprintf
(
vport_buf
,
sizeof
(
vport_buf
),
"%u"
,
v_engine
->
adv_sdp_port
);
if
(
switch_channel_media_ready
(
session
->
channel
)
&&
!
switch_rtp_ready
(
v_engine
->
rtp_session
))
{
if
(
switch_channel_media_ready
(
session
->
channel
)
&&
!
switch_rtp_ready
(
v_engine
->
rtp_session
))
{
switch_channel_set_flag
(
session
->
channel
,
CF_VIDEO_POSSIBLE
);
switch_channel_set_flag
(
session
->
channel
,
CF_VIDEO_POSSIBLE
);
...
@@ -8630,6 +8652,7 @@ SWITCH_DECLARE(void) switch_core_media_check_outgoing_proxy(switch_core_session_
...
@@ -8630,6 +8652,7 @@ SWITCH_DECLARE(void) switch_core_media_check_outgoing_proxy(switch_core_session_
switch_rtp_engine_t
*
a_engine
,
*
v_engine
;
switch_rtp_engine_t
*
a_engine
,
*
v_engine
;
switch_media_handle_t
*
smh
;
switch_media_handle_t
*
smh
;
const
char
*
r_sdp
=
NULL
;
const
char
*
r_sdp
=
NULL
;
payload_map_t
*
pmap
;
switch_assert
(
session
);
switch_assert
(
session
);
...
@@ -8647,19 +8670,38 @@ SWITCH_DECLARE(void) switch_core_media_check_outgoing_proxy(switch_core_session_
...
@@ -8647,19 +8670,38 @@ SWITCH_DECLARE(void) switch_core_media_check_outgoing_proxy(switch_core_session_
v_engine
=
&
smh
->
engines
[
SWITCH_MEDIA_TYPE_VIDEO
];
v_engine
=
&
smh
->
engines
[
SWITCH_MEDIA_TYPE_VIDEO
];
switch_channel_set_flag
(
session
->
channel
,
CF_PROXY_MEDIA
);
switch_channel_set_flag
(
session
->
channel
,
CF_PROXY_MEDIA
);
a_engine
->
cur_payload_map
->
iananame
=
switch_core_session_strdup
(
session
,
"PROXY"
);
a_engine
->
cur_payload_map
->
rm_rate
=
8000
;
a_engine
->
cur_payload_map
->
adv_rm_rate
=
8000
;
a_engine
->
cur_payload_map
->
codec_ms
=
20
;
clear_pmaps
(
a_engine
);
clear_pmaps
(
v_engine
);
pmap
=
switch_core_media_add_payload_map
(
session
,
SWITCH_MEDIA_TYPE_AUDIO
,
"PROXY"
,
NULL
,
SDP_TYPE_RESPONSE
,
0
,
8000
,
8000
,
1
,
SWITCH_TRUE
);
a_engine
->
cur_payload_map
=
pmap
;
if
(
switch_stristr
(
"m=video"
,
r_sdp
))
{
if
(
switch_stristr
(
"m=video"
,
r_sdp
))
{
switch_core_media_choose_port
(
session
,
SWITCH_MEDIA_TYPE_VIDEO
,
1
);
switch_core_media_choose_port
(
session
,
SWITCH_MEDIA_TYPE_VIDEO
,
1
);
v_engine
->
cur_payload_map
->
rm_encoding
=
"PROXY-VID"
;
pmap
=
switch_core_media_add_payload_map
(
session
,
v_engine
->
cur_payload_map
->
rm_rate
=
90000
;
SWITCH_MEDIA_TYPE_AUDIO
,
v_engine
->
cur_payload_map
->
adv_rm_rate
=
90000
;
"PROXY-VID"
,
v_engine
->
cur_payload_map
->
codec_ms
=
0
;
NULL
,
SDP_TYPE_RESPONSE
,
0
,
90000
,
90000
,
1
,
SWITCH_TRUE
);
v_engine
->
cur_payload_map
=
pmap
;
switch_channel_set_flag
(
session
->
channel
,
CF_VIDEO
);
switch_channel_set_flag
(
session
->
channel
,
CF_VIDEO
);
switch_channel_set_flag
(
session
->
channel
,
CF_VIDEO_POSSIBLE
);
switch_channel_set_flag
(
session
->
channel
,
CF_VIDEO_POSSIBLE
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论