SIP客户端A在10端的内网,客户端B在192段的内网,A和B能访问外网,都注册了外网服务器。
A发送会话邀请消息如下:
INVITE sip:101@mySIPserver SIP/2.0
Via: SIP/2.0/UDP 10.123.74.60:5060;branch=z9hG4bKl92pcKYh
Max-Forwards: 70
To: sip:101@mySIPserver
From: 102 <sip:102@mySIPserver>;tag=19283
Call-ID: 88454318
User-Agent: MYVOIPAPP SIP Phone (Jan 5 2023)
CSeq: 2 INVITE
Contact: 102 <sip:102@10.123.74.60:5060>
Content-Type: application/sdp
Content-Length: 120
c=IN IP4 10.123.74.60
m=audio 54875 RTP/AVP 0
a=rtpmap:0 PCMU/8000
A收到的响应如下:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.123.74.60:5060;branch=z9hG4bKl92pcKYh
From: 102 <sip:102@mySIPserver>;tag=19283
To: sip:101@mySIPserver;tag=d5bbe635d159c566
CSeq: 2 INVITE
Call-ID: 88454318
Allow: ACK,BYE,CANCEL,INFO,INVITE,MESSAGE,NOTIFY,OPTIONS,PRACK,REFER,REGISTER,SUBSCRIBE
Contact: <sip:101@192.168.30.103>
Content-Type: application/sdp
Content-Length: 142
v=0
o=- 1715831092 1715831092 IN IP4 192.168.30.103
s=mss
c=IN IP4 192.168.30.103
t=0 0
m=audio 10026 RTP/AVP 0
a=sendrecv
a=ptime:20
现在A侦听本地端口54875,然后向B的地址192.168.30.103 10026 发送RTP数据.
抓包发现A发给B的数据,B无法收到,在A抓包数据中,Source 是10.123.74.60 (端口54875) Destination是192.168.30.103(端口10026)
B向A发的数据A也无法收到,在B抓包数据中,Source是192.168.30.103(端口10026) Destination是10.123.74.60(端口54875)
对比其他可以发送数据的两个客户端,发现A1和B1都是将数据发往服务器的对应流媒体端口。而不是两个内网之间传输RTP数据。
想了解下,在什么情况下,要让服务器对RTP数据进行转发,在SIP消息中需要添加什么内容吗?为什么A端和B断模仿A1和B1通信,将数据发往服务器的流媒体端口,还是不能正常传输?