前言
问题描述:A的媒体没转发到B,B只能听到回铃音,没有A的说话声音,并且fs这边按正常的信令发送了.
分析流程
分析早期媒体发送到哪一个IP
10.19.0.1发送了一个请求给10.19.0.157这个IP,然而这里的SDP媒体地址,IP4获取到的是10.19.0.16,所以刚开始的声音早期媒体的声音发送到10.19.0.16这个IP上去了,如果不确定的话可以查看另一个地方有RTP发送地址和端口
bash
recv 1144 bytes from udp/[10.19.0.1]:5060 at 23:02:41.622566:
------------------------------------------------------------------------
INVITE sip:1915703975683@10.19.0.157:5080 SIP/2.0
From: <sip:952315@10.19.0.1:5060>;tag=008BD530-DB4E-161F-A212-0C00130AAA77-46591983
To: <sip:1915703975683@10.19.0.1:5060>
Call-ID: 008BD526-DB4E-161F-A212-0C00130AAA77-33366059@10.19.0.1
CSeq: 1 INVITE
Content-Length: 271
Content-Type: application/sdp
v=0
o=- 2065353572 1 IN IP4 10.19.0.16
s=phone-call
c=IN IP4 10.19.0.16
t=0 0
m=audio 30338 RTP/AVP 0 8 18 3 101
通过下面这个日志可以更确定 10.19.0.157的早期媒体发送到了10.19.0.16这个IP,所以早期媒体发送到了16这个上面,可以看到使用抓包软件看也是10.19.0.157发送嘟嘟的声音到10.19.0.16这个IP上了,怎么知道是嘟嘟的声音呢通过抓包软件RTP流里面查看,并且听了就可以看到是早期媒体的声音.
bash
switch_core_media.c:6878 AUDIO RTP [sofia/external/952315@10.19.0.1:5060] 10.19.0.157 port 25120 -> 10.19.0.16 port 30338 codec: 0 ms: 20
分析接通后媒体发送到哪一个IP
接通后10.19.0.1向10.19.0.157这个IP发送请求然而这里的SDP获取的媒体地址,IP4获取到的是172.20.1.2,所以后面的声音送到了172.20.1.2的上面去了,如果不确定的话可以查看另一个地方有RTP发送地址和端口
bash
recv 942 bytes from udp/[10.19.0.1]:5060 at 23:02:55.164856:
------------------------------------------------------------------------
INVITE sip:1915703975683@10.19.0.157:5080;transport=udp SIP/2.0
From: <sip:952315@10.19.0.1:5060>;tag=008BD530-DB4E-161F-A212-0C00130AAA77-46591983
To: <sip:1915703975683@10.19.0.1:5060>;tag=cK0tj60ZXX6aF
Call-ID: 008BD526-DB4E-161F-A212-0C00130AAA77-33366059@10.19.0.1
CSeq: 2 INVITE
Content-Length: 236
Content-Type: application/sdp
v=0
o=MediaServer 2065353572 2 IN IP4 172.20.1.2
通过下面这个日志可以更确定 10.19.0.157的声音发送到了172.20.1.2这个IP,可以看到使用抓包软件看也是10.19.0.157发送的声音到172.20.1.2这个IP上了,
bash
switch_core_media.c:6878 AUDIO RTP [sofia/external/952315@10.19.0.1:5060] 10.19.0.157 port 25120 -> 172.20.1.2 port 20846 codec: 0 ms: 20