我正在尝试在媒体服务器(Kurento)和SIP客户端之间建立呼叫。SIP堆栈已经在我的Java应用程序中实现了,但是我遇到了一些关于被调用者接收的SDP信息的问题。
这是我的Java应用程序通过SIP服务器发送的invite:
INVITE sip:+351988000011@xxx.xxx.com SIP/2.0
Call-ID: 065b4a789be1a70a37706080c18b1866@172.18.2.22
CSeq: 1 INVITE
From: <sip:+351988000010@xxx.xxx.com>;tag=e648cda1
To: <sip:+351988000011@xxx.xxx.com>
Via: SIP/2.0/TCP 172.18.2.22:5060;rport;branch=z9hG4bK-383538-eb3a39cdd1534e4a2344dd3f17b19b1c
Max-Forwards: 70
Content-Type: application/sdp
Contact: <sip:+351988000010@172.18.2.22:5060;transport=tcp;rinstance=d1e3c1bedd39b70e>
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, MESSAGE
Content-Length: 679
v=0
o=- 3667284021 3667284021 IN IP4 xx.xx.xx.xx (this is the media server IP)
s=Kurento Media Server
c=IN IP4 xx.xx.xx.xx
(...)但是被叫方收到的invite消息是:
INVITE sip:+351988000011@172.18.2.22:55360;rinstance=2a5c7f48406d95dd;transport=tcp SIP/2.0
Max-Forwards: 69
Content-Length: 679
To: <sip:+351988000011@172.18.2.22:55360;rinstance=2a5c7f48406d95dd>
Contact: <sip:10.39.40.114:5065;transport=tcp;fid=server_1>
Cseq: 1 INVITE
Via: SIP/2.0/TCP 10.39.40.114:5065;branch=z9hG4bKdaacbc1f7b6f84534d8abb46bec988577b27
Content-Type: application/sdp
Call-Id: 10.39.40.114_261_5716106364191099203
From: <sip:+351988000010@xxx.xxx.com>;tag=ilxjbmm2-sa
v=0
o=- 3667284021 3667284021 IN IP4 10.39.40.114 (internal network ip)
s=Kurento Media Server
c=IN IP4 10.39.40.114
t=0 0
(...)问题是IP4包中的SDP不是媒体服务器的公共ip (媒体服务器在内部网络之外,可以通过互联网访问)。
如何确保SDP数据包中媒体服务器的IP在到达接收方之前没有更改?
发布于 2016-03-18 21:51:49
这可能由以下两个原因引起:
https://stackoverflow.com/questions/36083025
复制相似问题