Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
11066d5c
提交
11066d5c
authored
10月 20, 2016
作者:
Anthony Minessale
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
FS-9654 #resolve [Issue with RTP payload negotiation]
上级
b90abae0
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
65 行增加
和
61 行删除
+65
-61
switch_types.h
src/include/switch_types.h
+0
-1
switch_core_media.c
src/switch_core_media.c
+65
-60
没有找到文件。
src/include/switch_types.h
浏览文件 @
11066d5c
...
@@ -2564,7 +2564,6 @@ typedef struct payload_map_s {
...
@@ -2564,7 +2564,6 @@ typedef struct payload_map_s {
char
*
rm_fmtp
;
char
*
rm_fmtp
;
switch_payload_t
agreed_pt
;
switch_payload_t
recv_pt
;
switch_payload_t
recv_pt
;
char
*
fmtp_out
;
char
*
fmtp_out
;
...
...
src/switch_core_media.c
浏览文件 @
11066d5c
...
@@ -813,6 +813,22 @@ SWITCH_DECLARE(payload_map_t *) switch_core_media_add_payload_map(switch_core_se
...
@@ -813,6 +813,22 @@ SWITCH_DECLARE(payload_map_t *) switch_core_media_add_payload_map(switch_core_se
for
(
pmap
=
engine
->
payload_map
;
pmap
&&
pmap
->
allocated
;
pmap
=
pmap
->
next
)
{
for
(
pmap
=
engine
->
payload_map
;
pmap
&&
pmap
->
allocated
;
pmap
=
pmap
->
next
)
{
if
(
sdp_type
==
SDP_TYPE_RESPONSE
)
{
switch
(
type
)
{
case
SWITCH_MEDIA_TYPE_TEXT
:
exists
=
(
type
==
pmap
->
type
&&
!
strcasecmp
(
name
,
pmap
->
iananame
));
break
;
case
SWITCH_MEDIA_TYPE_AUDIO
:
exists
=
(
type
==
pmap
->
type
&&
!
strcasecmp
(
name
,
pmap
->
iananame
)
&&
pmap
->
pt
==
pt
&&
(
!
pmap
->
rate
||
rate
==
pmap
->
rate
)
&&
(
!
pmap
->
ptime
||
pmap
->
ptime
==
ptime
));
break
;
case
SWITCH_MEDIA_TYPE_VIDEO
:
exists
=
(
type
==
pmap
->
type
&&
!
strcasecmp
(
name
,
pmap
->
iananame
));
break
;
}
if
(
exists
)
break
;
}
else
{
if
(
type
==
SWITCH_MEDIA_TYPE_TEXT
)
{
if
(
type
==
SWITCH_MEDIA_TYPE_TEXT
)
{
exists
=
(
type
==
pmap
->
type
&&
!
strcasecmp
(
name
,
pmap
->
iananame
)
&&
pmap
->
pt
==
pt
);
exists
=
(
type
==
pmap
->
type
&&
!
strcasecmp
(
name
,
pmap
->
iananame
)
&&
pmap
->
pt
==
pt
);
}
else
{
}
else
{
...
@@ -831,6 +847,7 @@ SWITCH_DECLARE(payload_map_t *) switch_core_media_add_payload_map(switch_core_se
...
@@ -831,6 +847,7 @@ SWITCH_DECLARE(payload_map_t *) switch_core_media_add_payload_map(switch_core_se
break
;
break
;
}
}
}
}
}
if
(
!
exists
)
{
if
(
!
exists
)
{
switch_ssize_t
hlen
=
-
1
;
switch_ssize_t
hlen
=
-
1
;
...
@@ -2836,7 +2853,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_read_frame(switch_core_session
...
@@ -2836,7 +2853,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_read_frame(switch_core_session
(
!
smh
->
mparams
->
recv_te
||
engine
->
read_frame
.
payload
!=
smh
->
mparams
->
recv_te
)
&&
(
!
smh
->
mparams
->
recv_te
||
engine
->
read_frame
.
payload
!=
smh
->
mparams
->
recv_te
)
&&
(
!
smh
->
mparams
->
te
||
engine
->
read_frame
.
payload
!=
smh
->
mparams
->
te
)
&&
(
!
smh
->
mparams
->
te
||
engine
->
read_frame
.
payload
!=
smh
->
mparams
->
te
)
&&
engine
->
read_frame
.
payload
!=
engine
->
cur_payload_map
->
recv_pt
&&
engine
->
read_frame
.
payload
!=
engine
->
cur_payload_map
->
recv_pt
&&
engine
->
read_frame
.
payload
!=
engine
->
cur_payload_map
->
agreed_pt
&&
engine
->
read_frame
.
payload
!=
engine
->
cur_payload_map
->
pt
)
{
engine
->
read_frame
.
payload
!=
engine
->
cur_payload_map
->
pt
)
{
payload_map_t
*
pmap
;
payload_map_t
*
pmap
;
...
@@ -2844,7 +2860,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_read_frame(switch_core_session
...
@@ -2844,7 +2860,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_read_frame(switch_core_session
switch_log_printf
(
SWITCH_CHANNEL_SESSION_LOG
(
session
),
SWITCH_LOG_DEBUG
,
switch_log_printf
(
SWITCH_CHANNEL_SESSION_LOG
(
session
),
SWITCH_LOG_DEBUG
,
"alternate payload received (received %d, expecting %d)
\n
"
,
"alternate payload received (received %d, expecting %d)
\n
"
,
(
int
)
engine
->
read_frame
.
payload
,
(
int
)
engine
->
cur_payload_map
->
agreed_
pt
);
(
int
)
engine
->
read_frame
.
payload
,
(
int
)
engine
->
cur_payload_map
->
pt
);
/* search for payload type */
/* search for payload type */
...
@@ -3199,8 +3215,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_set_video_codec(switch_core_se
...
@@ -3199,8 +3215,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_set_video_codec(switch_core_se
v_engine
->
write_codec
.
fmtp_out
=
switch_core_session_strdup
(
session
,
v_engine
->
write_codec
.
fmtp_out
);
v_engine
->
write_codec
.
fmtp_out
=
switch_core_session_strdup
(
session
,
v_engine
->
write_codec
.
fmtp_out
);
v_engine
->
write_codec
.
agreed_pt
=
v_engine
->
cur_payload_map
->
agreed_
pt
;
v_engine
->
write_codec
.
agreed_pt
=
v_engine
->
cur_payload_map
->
pt
;
v_engine
->
read_codec
.
agreed_pt
=
v_engine
->
cur_payload_map
->
agreed_
pt
;
v_engine
->
read_codec
.
agreed_pt
=
v_engine
->
cur_payload_map
->
pt
;
switch_core_session_set_video_read_codec
(
session
,
&
v_engine
->
read_codec
);
switch_core_session_set_video_read_codec
(
session
,
&
v_engine
->
read_codec
);
switch_core_session_set_video_write_codec
(
session
,
&
v_engine
->
write_codec
);
switch_core_session_set_video_write_codec
(
session
,
&
v_engine
->
write_codec
);
...
@@ -3215,7 +3231,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_set_video_codec(switch_core_se
...
@@ -3215,7 +3231,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_set_video_codec(switch_core_se
msg
.
from
=
__FILE__
;
msg
.
from
=
__FILE__
;
msg
.
message_id
=
SWITCH_MESSAGE_INDICATE_VIDEO_REFRESH_REQ
;
msg
.
message_id
=
SWITCH_MESSAGE_INDICATE_VIDEO_REFRESH_REQ
;
switch_rtp_set_default_payload
(
v_engine
->
rtp_session
,
v_engine
->
cur_payload_map
->
agreed_
pt
);
switch_rtp_set_default_payload
(
v_engine
->
rtp_session
,
v_engine
->
cur_payload_map
->
pt
);
//XX
//XX
...
@@ -3388,8 +3404,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_set_codec(switch_core_session_
...
@@ -3388,8 +3404,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_set_codec(switch_core_session_
a_engine
->
read_impl
.
samples_per_packet
,
a_engine
->
read_impl
.
bits_per_second
,
a_engine
->
read_impl
.
number_of_channels
);
a_engine
->
read_impl
.
samples_per_packet
,
a_engine
->
read_impl
.
bits_per_second
,
a_engine
->
read_impl
.
number_of_channels
);
a_engine
->
read_frame
.
codec
=
&
a_engine
->
read_codec
;
a_engine
->
read_frame
.
codec
=
&
a_engine
->
read_codec
;
a_engine
->
read_frame
.
channels
=
a_engine
->
read_impl
.
number_of_channels
;
a_engine
->
read_frame
.
channels
=
a_engine
->
read_impl
.
number_of_channels
;
a_engine
->
write_codec
.
agreed_pt
=
a_engine
->
cur_payload_map
->
agreed_
pt
;
a_engine
->
write_codec
.
agreed_pt
=
a_engine
->
cur_payload_map
->
pt
;
a_engine
->
read_codec
.
agreed_pt
=
a_engine
->
cur_payload_map
->
agreed_
pt
;
a_engine
->
read_codec
.
agreed_pt
=
a_engine
->
cur_payload_map
->
pt
;
if
(
force
!=
2
)
{
if
(
force
!=
2
)
{
switch_core_session_set_real_read_codec
(
session
,
&
a_engine
->
read_codec
);
switch_core_session_set_real_read_codec
(
session
,
&
a_engine
->
read_codec
);
...
@@ -4963,8 +4979,6 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
...
@@ -4963,8 +4979,6 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
pmap
->
remote_sdp_port
=
(
switch_port_t
)
m
->
m_port
;
pmap
->
remote_sdp_port
=
(
switch_port_t
)
m
->
m_port
;
pmap
->
rm_fmtp
=
switch_core_session_strdup
(
session
,
(
char
*
)
mmap
->
rm_fmtp
);
pmap
->
rm_fmtp
=
switch_core_session_strdup
(
session
,
(
char
*
)
mmap
->
rm_fmtp
);
pmap
->
agreed_pt
=
(
switch_payload_t
)
mmap
->
rm_pt
;
smh
->
negotiated_codecs
[
smh
->
num_negotiated_codecs
++
]
=
mimp
;
smh
->
negotiated_codecs
[
smh
->
num_negotiated_codecs
++
]
=
mimp
;
pmap
->
recv_pt
=
(
switch_payload_t
)
mmap
->
rm_pt
;
pmap
->
recv_pt
=
(
switch_payload_t
)
mmap
->
rm_pt
;
...
@@ -5155,9 +5169,6 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
...
@@ -5155,9 +5169,6 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
pmap
->
remote_sdp_port
=
(
switch_port_t
)
m
->
m_port
;
pmap
->
remote_sdp_port
=
(
switch_port_t
)
m
->
m_port
;
pmap
->
rm_fmtp
=
switch_core_session_strdup
(
session
,
(
char
*
)
mmap
->
rm_fmtp
);
pmap
->
rm_fmtp
=
switch_core_session_strdup
(
session
,
(
char
*
)
mmap
->
rm_fmtp
);
pmap
->
agreed_pt
=
(
switch_payload_t
)
map
->
rm_pt
;
pmap
->
recv_pt
=
(
switch_payload_t
)
map
->
rm_pt
;
t_engine
->
cur_payload_map
=
pmap
;
t_engine
->
cur_payload_map
=
pmap
;
...
@@ -5464,8 +5475,6 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
...
@@ -5464,8 +5475,6 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
pmap
->
rm_fmtp
=
switch_core_session_strdup
(
session
,
(
char
*
)
map
->
rm_fmtp
);
pmap
->
rm_fmtp
=
switch_core_session_strdup
(
session
,
(
char
*
)
map
->
rm_fmtp
);
pmap
->
agreed_pt
=
(
switch_payload_t
)
map
->
rm_pt
;
smh
->
negotiated_codecs
[
smh
->
num_negotiated_codecs
++
]
=
mimp
;
smh
->
negotiated_codecs
[
smh
->
num_negotiated_codecs
++
]
=
mimp
;
#if 0
#if 0
...
@@ -5479,7 +5488,7 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
...
@@ -5479,7 +5488,7 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
switch_channel_set_variable
(
session
->
channel
,
SWITCH_REMOTE_VIDEO_IP_VARIABLE
,
v_engine
->
cur_payload_map
->
remote_sdp_ip
);
switch_channel_set_variable
(
session
->
channel
,
SWITCH_REMOTE_VIDEO_IP_VARIABLE
,
v_engine
->
cur_payload_map
->
remote_sdp_ip
);
switch_channel_set_variable
(
session
->
channel
,
SWITCH_REMOTE_VIDEO_PORT_VARIABLE
,
tmp
);
switch_channel_set_variable
(
session
->
channel
,
SWITCH_REMOTE_VIDEO_PORT_VARIABLE
,
tmp
);
switch_channel_set_variable
(
session
->
channel
,
"rtp_video_fmtp"
,
v_engine
->
cur_payload_map
->
rm_fmtp
);
switch_channel_set_variable
(
session
->
channel
,
"rtp_video_fmtp"
,
v_engine
->
cur_payload_map
->
rm_fmtp
);
switch_snprintf
(
tmp
,
sizeof
(
tmp
),
"%d"
,
v_engine
->
cur_payload_map
->
agreed_
pt
);
switch_snprintf
(
tmp
,
sizeof
(
tmp
),
"%d"
,
v_engine
->
cur_payload_map
->
pt
);
switch_channel_set_variable
(
session
->
channel
,
"rtp_video_pt"
,
tmp
);
switch_channel_set_variable
(
session
->
channel
,
"rtp_video_pt"
,
tmp
);
switch_core_media_check_video_codecs
(
session
);
switch_core_media_check_video_codecs
(
session
);
switch_snprintf
(
tmp
,
sizeof
(
tmp
),
"%d"
,
v_engine
->
cur_payload_map
->
recv_pt
);
switch_snprintf
(
tmp
,
sizeof
(
tmp
),
"%d"
,
v_engine
->
cur_payload_map
->
recv_pt
);
...
@@ -5540,7 +5549,7 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
...
@@ -5540,7 +5549,7 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
pmap
->
remote_sdp_ip
=
"127.0.0.1"
;
pmap
->
remote_sdp_ip
=
"127.0.0.1"
;
pmap
->
remote_sdp_port
=
9999
;
pmap
->
remote_sdp_port
=
9999
;
pmap
->
agreed_
pt
=
97
;
pmap
->
pt
=
97
;
pmap
->
recv_pt
=
97
;
pmap
->
recv_pt
=
97
;
pmap
->
codec_ms
=
20
;
pmap
->
codec_ms
=
20
;
a_engine
->
cur_payload_map
=
pmap
;
a_engine
->
cur_payload_map
=
pmap
;
...
@@ -6220,7 +6229,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_start_text_thread(switch_cor
...
@@ -6220,7 +6229,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_start_text_thread(switch_cor
switch_log_printf
(
SWITCH_CHANNEL_SESSION_LOG
(
session
),
SWITCH_LOG_DEBUG
,
"%s Starting Text thread
\n
"
,
switch_core_session_get_name
(
session
));
switch_log_printf
(
SWITCH_CHANNEL_SESSION_LOG
(
session
),
SWITCH_LOG_DEBUG
,
"%s Starting Text thread
\n
"
,
switch_core_session_get_name
(
session
));
if
(
t_engine
->
rtp_session
)
{
if
(
t_engine
->
rtp_session
)
{
switch_rtp_set_default_payload
(
t_engine
->
rtp_session
,
t_engine
->
cur_payload_map
->
agreed_
pt
);
switch_rtp_set_default_payload
(
t_engine
->
rtp_session
,
t_engine
->
cur_payload_map
->
pt
);
}
}
t_engine
->
mh
.
session
=
session
;
t_engine
->
mh
.
session
=
session
;
...
@@ -6422,7 +6431,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_start_video_thread(switch_co
...
@@ -6422,7 +6431,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_start_video_thread(switch_co
switch_log_printf
(
SWITCH_CHANNEL_SESSION_LOG
(
session
),
SWITCH_LOG_DEBUG
,
"%s Starting Video thread
\n
"
,
switch_core_session_get_name
(
session
));
switch_log_printf
(
SWITCH_CHANNEL_SESSION_LOG
(
session
),
SWITCH_LOG_DEBUG
,
"%s Starting Video thread
\n
"
,
switch_core_session_get_name
(
session
));
if
(
v_engine
->
rtp_session
)
{
if
(
v_engine
->
rtp_session
)
{
switch_rtp_set_default_payload
(
v_engine
->
rtp_session
,
v_engine
->
cur_payload_map
->
agreed_
pt
);
switch_rtp_set_default_payload
(
v_engine
->
rtp_session
,
v_engine
->
cur_payload_map
->
pt
);
}
}
v_engine
->
mh
.
session
=
session
;
v_engine
->
mh
.
session
=
session
;
...
@@ -7402,7 +7411,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -7402,7 +7411,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
a_engine
->
local_sdp_ip
,
a_engine
->
local_sdp_ip
,
a_engine
->
local_sdp_port
,
a_engine
->
local_sdp_port
,
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
a_engine
->
cur_payload_map
->
remote_sdp_port
,
a_engine
->
cur_payload_map
->
agreed_
pt
,
a_engine
->
read_impl
.
microseconds_per_packet
/
1000
);
a_engine
->
cur_payload_map
->
remote_sdp_port
,
a_engine
->
cur_payload_map
->
pt
,
a_engine
->
read_impl
.
microseconds_per_packet
/
1000
);
//XX
//XX
}
}
...
@@ -7468,10 +7477,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -7468,10 +7477,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
a_engine
->
cur_payload_map
->
remote_sdp_port
,
a_engine
->
cur_payload_map
->
remote_sdp_port
,
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
a_engine
->
cur_payload_map
->
remote_sdp_port
,
a_engine
->
cur_payload_map
->
agreed_
pt
,
a_engine
->
read_impl
.
microseconds_per_packet
/
1000
);
a_engine
->
cur_payload_map
->
remote_sdp_port
,
a_engine
->
cur_payload_map
->
pt
,
a_engine
->
read_impl
.
microseconds_per_packet
/
1000
);
if
(
switch_rtp_ready
(
a_engine
->
rtp_session
))
{
if
(
switch_rtp_ready
(
a_engine
->
rtp_session
))
{
switch_rtp_set_default_payload
(
a_engine
->
rtp_session
,
a_engine
->
cur_payload_map
->
agreed_
pt
);
switch_rtp_set_default_payload
(
a_engine
->
rtp_session
,
a_engine
->
cur_payload_map
->
pt
);
}
}
}
else
{
}
else
{
...
@@ -7489,7 +7498,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -7489,7 +7498,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
a_engine
->
local_sdp_port
,
a_engine
->
local_sdp_port
,
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
a_engine
->
cur_payload_map
->
remote_sdp_port
,
a_engine
->
cur_payload_map
->
remote_sdp_port
,
a_engine
->
cur_payload_map
->
agreed_
pt
,
a_engine
->
cur_payload_map
->
pt
,
a_engine
->
read_impl
.
samples_per_packet
,
a_engine
->
read_impl
.
samples_per_packet
,
a_engine
->
cur_payload_map
->
codec_ms
*
1000
,
a_engine
->
cur_payload_map
->
codec_ms
*
1000
,
flags
,
timer_name
,
&
err
,
switch_core_session_get_pool
(
session
));
flags
,
timer_name
,
&
err
,
switch_core_session_get_pool
(
session
));
...
@@ -7524,7 +7533,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -7524,7 +7533,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
switch_channel_set_flag
(
session
->
channel
,
CF_FS_RTP
);
switch_channel_set_flag
(
session
->
channel
,
CF_FS_RTP
);
switch_channel_set_variable_printf
(
session
->
channel
,
"rtp_use_pt"
,
"%d"
,
a_engine
->
cur_payload_map
->
agreed_
pt
);
switch_channel_set_variable_printf
(
session
->
channel
,
"rtp_use_pt"
,
"%d"
,
a_engine
->
cur_payload_map
->
pt
);
if
((
val
=
switch_channel_get_variable
(
session
->
channel
,
"rtp_enable_vad_in"
))
&&
switch_true
(
val
))
{
if
((
val
=
switch_channel_get_variable
(
session
->
channel
,
"rtp_enable_vad_in"
))
&&
switch_true
(
val
))
{
vad_in
=
1
;
vad_in
=
1
;
...
@@ -7786,9 +7795,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -7786,9 +7795,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
switch_log_printf
(
SWITCH_CHANNEL_SESSION_LOG
(
session
),
SWITCH_LOG_DEBUG
,
switch_log_printf
(
SWITCH_CHANNEL_SESSION_LOG
(
session
),
SWITCH_LOG_DEBUG
,
"TEXT RTP [%s] %s port %d -> %s port %d codec: %u
\n
"
,
switch_channel_get_name
(
session
->
channel
),
"TEXT RTP [%s] %s port %d -> %s port %d codec: %u
\n
"
,
switch_channel_get_name
(
session
->
channel
),
t_engine
->
local_sdp_ip
,
t_engine
->
local_sdp_port
,
t_engine
->
cur_payload_map
->
remote_sdp_ip
,
t_engine
->
local_sdp_ip
,
t_engine
->
local_sdp_port
,
t_engine
->
cur_payload_map
->
remote_sdp_ip
,
t_engine
->
cur_payload_map
->
remote_sdp_port
,
t_engine
->
cur_payload_map
->
agreed_
pt
);
t_engine
->
cur_payload_map
->
remote_sdp_port
,
t_engine
->
cur_payload_map
->
pt
);
switch_rtp_set_default_payload
(
t_engine
->
rtp_session
,
t_engine
->
cur_payload_map
->
agreed_
pt
);
switch_rtp_set_default_payload
(
t_engine
->
rtp_session
,
t_engine
->
cur_payload_map
->
pt
);
}
}
}
}
...
@@ -7845,10 +7854,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -7845,10 +7854,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
t_engine
->
local_sdp_port
,
t_engine
->
local_sdp_port
,
t_engine
->
cur_payload_map
->
remote_sdp_ip
,
t_engine
->
cur_payload_map
->
remote_sdp_ip
,
t_engine
->
cur_payload_map
->
remote_sdp_port
,
t_engine
->
cur_payload_map
->
agreed_
pt
,
t_engine
->
read_impl
.
microseconds_per_packet
/
1000
);
t_engine
->
cur_payload_map
->
remote_sdp_port
,
t_engine
->
cur_payload_map
->
pt
,
t_engine
->
read_impl
.
microseconds_per_packet
/
1000
);
if
(
switch_rtp_ready
(
t_engine
->
rtp_session
))
{
if
(
switch_rtp_ready
(
t_engine
->
rtp_session
))
{
switch_rtp_set_default_payload
(
t_engine
->
rtp_session
,
t_engine
->
cur_payload_map
->
agreed_
pt
);
switch_rtp_set_default_payload
(
t_engine
->
rtp_session
,
t_engine
->
cur_payload_map
->
pt
);
}
}
}
else
{
}
else
{
timer_name
=
smh
->
mparams
->
timer_name
;
timer_name
=
smh
->
mparams
->
timer_name
;
...
@@ -7893,7 +7902,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -7893,7 +7902,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
t_engine
->
local_sdp_port
,
t_engine
->
local_sdp_port
,
t_engine
->
cur_payload_map
->
remote_sdp_ip
,
t_engine
->
cur_payload_map
->
remote_sdp_ip
,
t_engine
->
cur_payload_map
->
remote_sdp_port
,
t_engine
->
cur_payload_map
->
remote_sdp_port
,
t_engine
->
cur_payload_map
->
agreed_
pt
,
t_engine
->
cur_payload_map
->
pt
,
TEXT_TIMER_SAMPLES
,
TEXT_TIMER_MS
*
1000
,
flags
,
NULL
,
&
err
,
switch_core_session_get_pool
(
session
));
TEXT_TIMER_SAMPLES
,
TEXT_TIMER_MS
*
1000
,
flags
,
NULL
,
&
err
,
switch_core_session_get_pool
(
session
));
...
@@ -7903,7 +7912,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -7903,7 +7912,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
a_engine
->
local_sdp_ip
,
a_engine
->
local_sdp_ip
,
t_engine
->
local_sdp_port
,
t_engine
->
local_sdp_port
,
t_engine
->
cur_payload_map
->
remote_sdp_ip
,
t_engine
->
cur_payload_map
->
remote_sdp_ip
,
t_engine
->
cur_payload_map
->
remote_sdp_port
,
t_engine
->
cur_payload_map
->
agreed_
pt
,
t_engine
->
cur_payload_map
->
remote_sdp_port
,
t_engine
->
cur_payload_map
->
pt
,
0
,
switch_rtp_ready
(
t_engine
->
rtp_session
)
?
"SUCCESS"
:
err
);
0
,
switch_rtp_ready
(
t_engine
->
rtp_session
)
?
"SUCCESS"
:
err
);
...
@@ -8041,7 +8050,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -8041,7 +8050,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
//XX
//XX
switch_channel_set_variable_printf
(
session
->
channel
,
"rtp_use_text_pt"
,
"%d"
,
t_engine
->
cur_payload_map
->
agreed_
pt
);
switch_channel_set_variable_printf
(
session
->
channel
,
"rtp_use_text_pt"
,
"%d"
,
t_engine
->
cur_payload_map
->
pt
);
t_engine
->
ssrc
=
switch_rtp_get_ssrc
(
t_engine
->
rtp_session
);
t_engine
->
ssrc
=
switch_rtp_get_ssrc
(
t_engine
->
rtp_session
);
switch_channel_set_variable_printf
(
session
->
channel
,
"rtp_use_text_ssrc"
,
"%u"
,
t_engine
->
ssrc
);
switch_channel_set_variable_printf
(
session
->
channel
,
"rtp_use_text_ssrc"
,
"%u"
,
t_engine
->
ssrc
);
...
@@ -8095,9 +8104,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -8095,9 +8104,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
switch_log_printf
(
SWITCH_CHANNEL_SESSION_LOG
(
session
),
SWITCH_LOG_DEBUG
,
switch_log_printf
(
SWITCH_CHANNEL_SESSION_LOG
(
session
),
SWITCH_LOG_DEBUG
,
"VIDEO RTP [%s] %s port %d -> %s port %d codec: %u
\n
"
,
switch_channel_get_name
(
session
->
channel
),
"VIDEO RTP [%s] %s port %d -> %s port %d codec: %u
\n
"
,
switch_channel_get_name
(
session
->
channel
),
v_engine
->
local_sdp_ip
,
v_engine
->
local_sdp_port
,
v_engine
->
cur_payload_map
->
remote_sdp_ip
,
v_engine
->
local_sdp_ip
,
v_engine
->
local_sdp_port
,
v_engine
->
cur_payload_map
->
remote_sdp_ip
,
v_engine
->
cur_payload_map
->
remote_sdp_port
,
v_engine
->
cur_payload_map
->
agreed_
pt
);
v_engine
->
cur_payload_map
->
remote_sdp_port
,
v_engine
->
cur_payload_map
->
pt
);
switch_rtp_set_default_payload
(
v_engine
->
rtp_session
,
v_engine
->
cur_payload_map
->
agreed_
pt
);
switch_rtp_set_default_payload
(
v_engine
->
rtp_session
,
v_engine
->
cur_payload_map
->
pt
);
}
}
}
}
...
@@ -8154,10 +8163,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -8154,10 +8163,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
a_engine
->
cur_payload_map
->
remote_sdp_ip
,
v_engine
->
local_sdp_port
,
v_engine
->
local_sdp_port
,
v_engine
->
cur_payload_map
->
remote_sdp_ip
,
v_engine
->
cur_payload_map
->
remote_sdp_ip
,
v_engine
->
cur_payload_map
->
remote_sdp_port
,
v_engine
->
cur_payload_map
->
agreed_
pt
,
v_engine
->
read_impl
.
microseconds_per_packet
/
1000
);
v_engine
->
cur_payload_map
->
remote_sdp_port
,
v_engine
->
cur_payload_map
->
pt
,
v_engine
->
read_impl
.
microseconds_per_packet
/
1000
);
if
(
switch_rtp_ready
(
v_engine
->
rtp_session
))
{
if
(
switch_rtp_ready
(
v_engine
->
rtp_session
))
{
switch_rtp_set_default_payload
(
v_engine
->
rtp_session
,
v_engine
->
cur_payload_map
->
agreed_
pt
);
switch_rtp_set_default_payload
(
v_engine
->
rtp_session
,
v_engine
->
cur_payload_map
->
pt
);
}
}
}
else
{
}
else
{
timer_name
=
smh
->
mparams
->
timer_name
;
timer_name
=
smh
->
mparams
->
timer_name
;
...
@@ -8217,7 +8226,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -8217,7 +8226,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
v_engine
->
local_sdp_port
,
v_engine
->
local_sdp_port
,
v_engine
->
cur_payload_map
->
remote_sdp_ip
,
v_engine
->
cur_payload_map
->
remote_sdp_ip
,
v_engine
->
cur_payload_map
->
remote_sdp_port
,
v_engine
->
cur_payload_map
->
remote_sdp_port
,
v_engine
->
cur_payload_map
->
agreed_
pt
,
v_engine
->
cur_payload_map
->
pt
,
1
,
90000
,
flags
,
NULL
,
&
err
,
switch_core_session_get_pool
(
session
));
1
,
90000
,
flags
,
NULL
,
&
err
,
switch_core_session_get_pool
(
session
));
...
@@ -8227,7 +8236,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -8227,7 +8236,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
a_engine
->
local_sdp_ip
,
a_engine
->
local_sdp_ip
,
v_engine
->
local_sdp_port
,
v_engine
->
local_sdp_port
,
v_engine
->
cur_payload_map
->
remote_sdp_ip
,
v_engine
->
cur_payload_map
->
remote_sdp_ip
,
v_engine
->
cur_payload_map
->
remote_sdp_port
,
v_engine
->
cur_payload_map
->
agreed_
pt
,
v_engine
->
cur_payload_map
->
remote_sdp_port
,
v_engine
->
cur_payload_map
->
pt
,
0
,
switch_rtp_ready
(
v_engine
->
rtp_session
)
?
"SUCCESS"
:
err
);
0
,
switch_rtp_ready
(
v_engine
->
rtp_session
)
?
"SUCCESS"
:
err
);
...
@@ -8367,7 +8376,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
...
@@ -8367,7 +8376,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi
//XX
//XX
switch_channel_set_variable_printf
(
session
->
channel
,
"rtp_use_video_pt"
,
"%d"
,
v_engine
->
cur_payload_map
->
agreed_
pt
);
switch_channel_set_variable_printf
(
session
->
channel
,
"rtp_use_video_pt"
,
"%d"
,
v_engine
->
cur_payload_map
->
pt
);
v_engine
->
ssrc
=
switch_rtp_get_ssrc
(
v_engine
->
rtp_session
);
v_engine
->
ssrc
=
switch_rtp_get_ssrc
(
v_engine
->
rtp_session
);
switch_channel_set_variable_printf
(
session
->
channel
,
"rtp_use_video_ssrc"
,
"%u"
,
v_engine
->
ssrc
);
switch_channel_set_variable_printf
(
session
->
channel
,
"rtp_use_video_ssrc"
,
"%u"
,
v_engine
->
ssrc
);
...
@@ -9257,14 +9266,14 @@ SWITCH_DECLARE(void) switch_core_media_gen_local_sdp(switch_core_session_t *sess
...
@@ -9257,14 +9266,14 @@ SWITCH_DECLARE(void) switch_core_media_gen_local_sdp(switch_core_session_t *sess
if
(
a_engine
->
cur_payload_map
->
adv_channels
>
1
)
{
if
(
a_engine
->
cur_payload_map
->
adv_channels
>
1
)
{
switch_snprintf
(
buf
+
strlen
(
buf
),
SDPBUFLEN
-
strlen
(
buf
),
"a=rtpmap:%d %s/%d/%d
\r\n
"
,
switch_snprintf
(
buf
+
strlen
(
buf
),
SDPBUFLEN
-
strlen
(
buf
),
"a=rtpmap:%d %s/%d/%d
\r\n
"
,
a_engine
->
cur_payload_map
->
agreed_
pt
,
a_engine
->
cur_payload_map
->
rm_encoding
,
rate
,
a_engine
->
cur_payload_map
->
adv_channels
);
a_engine
->
cur_payload_map
->
pt
,
a_engine
->
cur_payload_map
->
rm_encoding
,
rate
,
a_engine
->
cur_payload_map
->
adv_channels
);
}
else
{
}
else
{
switch_snprintf
(
buf
+
strlen
(
buf
),
SDPBUFLEN
-
strlen
(
buf
),
"a=rtpmap:%d %s/%d
\r\n
"
,
switch_snprintf
(
buf
+
strlen
(
buf
),
SDPBUFLEN
-
strlen
(
buf
),
"a=rtpmap:%d %s/%d
\r\n
"
,
a_engine
->
cur_payload_map
->
agreed_
pt
,
a_engine
->
cur_payload_map
->
rm_encoding
,
rate
);
a_engine
->
cur_payload_map
->
pt
,
a_engine
->
cur_payload_map
->
rm_encoding
,
rate
);
}
}
if
(
fmtp_out
)
{
if
(
fmtp_out
)
{
switch_snprintf
(
buf
+
strlen
(
buf
),
SDPBUFLEN
-
strlen
(
buf
),
"a=fmtp:%d %s
\r\n
"
,
a_engine
->
cur_payload_map
->
agreed_
pt
,
fmtp_out
);
switch_snprintf
(
buf
+
strlen
(
buf
),
SDPBUFLEN
-
strlen
(
buf
),
"a=fmtp:%d %s
\r\n
"
,
a_engine
->
cur_payload_map
->
pt
,
fmtp_out
);
}
}
if
(
switch_media_handle_test_media_flag
(
smh
,
SCMF_MULTI_ANSWER_AUDIO
))
{
if
(
switch_media_handle_test_media_flag
(
smh
,
SCMF_MULTI_ANSWER_AUDIO
))
{
...
@@ -9587,7 +9596,7 @@ SWITCH_DECLARE(void) switch_core_media_gen_local_sdp(switch_core_session_t *sess
...
@@ -9587,7 +9596,7 @@ SWITCH_DECLARE(void) switch_core_media_gen_local_sdp(switch_core_session_t *sess
if
(
v_engine
->
codec_negotiated
)
{
if
(
v_engine
->
codec_negotiated
)
{
payload_map_t
*
pmap
;
payload_map_t
*
pmap
;
switch_core_media_set_video_codec
(
session
,
0
);
switch_core_media_set_video_codec
(
session
,
0
);
switch_snprintf
(
buf
+
strlen
(
buf
),
SDPBUFLEN
-
strlen
(
buf
),
" %d"
,
v_engine
->
cur_payload_map
->
agreed_
pt
);
switch_snprintf
(
buf
+
strlen
(
buf
),
SDPBUFLEN
-
strlen
(
buf
),
" %d"
,
v_engine
->
cur_payload_map
->
pt
);
if
(
switch_media_handle_test_media_flag
(
smh
,
SCMF_MULTI_ANSWER_VIDEO
))
{
if
(
switch_media_handle_test_media_flag
(
smh
,
SCMF_MULTI_ANSWER_VIDEO
))
{
switch_mutex_lock
(
smh
->
sdp_mutex
);
switch_mutex_lock
(
smh
->
sdp_mutex
);
...
@@ -9830,7 +9839,7 @@ SWITCH_DECLARE(void) switch_core_media_gen_local_sdp(switch_core_session_t *sess
...
@@ -9830,7 +9839,7 @@ SWITCH_DECLARE(void) switch_core_media_gen_local_sdp(switch_core_session_t *sess
if
(
v_engine
->
codec_negotiated
)
{
if
(
v_engine
->
codec_negotiated
)
{
add_fb
(
buf
,
SDPBUFLEN
,
v_engine
->
cur_payload_map
->
agreed_
pt
,
v_engine
->
fir
||
fir
,
add_fb
(
buf
,
SDPBUFLEN
,
v_engine
->
cur_payload_map
->
pt
,
v_engine
->
fir
||
fir
,
v_engine
->
nack
||
nack
,
v_engine
->
pli
||
pli
,
v_engine
->
tmmbr
||
tmmbr
);
v_engine
->
nack
||
nack
,
v_engine
->
pli
||
pli
,
v_engine
->
tmmbr
||
tmmbr
);
if
(
switch_media_handle_test_media_flag
(
smh
,
SCMF_MULTI_ANSWER_VIDEO
))
{
if
(
switch_media_handle_test_media_flag
(
smh
,
SCMF_MULTI_ANSWER_VIDEO
))
{
...
@@ -10151,10 +10160,6 @@ msrp:
...
@@ -10151,10 +10160,6 @@ msrp:
}
}
switch_mutex_unlock
(
smh
->
sdp_mutex
);
switch_mutex_unlock
(
smh
->
sdp_mutex
);
//TEXT switch_core_media_set_text_codec(session, 0);
//switch_snprintf(buf + strlen(buf), SDPBUFLEN - strlen(buf), " %d", t_engine->cur_payload_map->agreed_pt);
}
}
switch_snprintf
(
buf
+
strlen
(
buf
),
SDPBUFLEN
-
strlen
(
buf
),
"
\r\n
"
);
switch_snprintf
(
buf
+
strlen
(
buf
),
SDPBUFLEN
-
strlen
(
buf
),
"
\r\n
"
);
...
@@ -12406,7 +12411,7 @@ SWITCH_DECLARE (void) switch_core_media_recover_session(switch_core_session_t *s
...
@@ -12406,7 +12411,7 @@ SWITCH_DECLARE (void) switch_core_media_recover_session(switch_core_session_t *s
}
}
if
((
tmp
=
switch_channel_get_variable
(
session
->
channel
,
"rtp_use_pt"
)))
{
if
((
tmp
=
switch_channel_get_variable
(
session
->
channel
,
"rtp_use_pt"
)))
{
a_engine
->
cur_payload_map
->
pt
=
a_engine
->
cur_payload_map
->
agreed_pt
=
(
switch_payload_t
)(
smh
->
payload_space
=
atoi
(
tmp
));
a_engine
->
cur_payload_map
->
pt
=
(
switch_payload_t
)(
smh
->
payload_space
=
atoi
(
tmp
));
}
}
if
((
tmp
=
switch_channel_get_variable
(
session
->
channel
,
"rtp_audio_recv_pt"
)))
{
if
((
tmp
=
switch_channel_get_variable
(
session
->
channel
,
"rtp_audio_recv_pt"
)))
{
...
@@ -12435,7 +12440,7 @@ SWITCH_DECLARE (void) switch_core_media_recover_session(switch_core_session_t *s
...
@@ -12435,7 +12440,7 @@ SWITCH_DECLARE (void) switch_core_media_recover_session(switch_core_session_t *s
if
(
switch_channel_test_flag
(
session
->
channel
,
CF_VIDEO
))
{
if
(
switch_channel_test_flag
(
session
->
channel
,
CF_VIDEO
))
{
if
((
tmp
=
switch_channel_get_variable
(
session
->
channel
,
"rtp_use_video_pt"
)))
{
if
((
tmp
=
switch_channel_get_variable
(
session
->
channel
,
"rtp_use_video_pt"
)))
{
v_engine
->
cur_payload_map
->
pt
=
v_engine
->
cur_payload_map
->
agreed_pt
=
(
switch_payload_t
)
atoi
(
tmp
);
v_engine
->
cur_payload_map
->
pt
=
(
switch_payload_t
)
atoi
(
tmp
);
}
}
if
((
tmp
=
switch_channel_get_variable
(
session
->
channel
,
"rtp_video_recv_pt"
)))
{
if
((
tmp
=
switch_channel_get_variable
(
session
->
channel
,
"rtp_video_recv_pt"
)))
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论