我使用的是JSIP(JAIN-SIP)1.2版(实现版本2384)。我正在尝试发送以下SIP消息(我在帖子中删除了实际的IP地址):
INVITE sip:bob@miniims.net SIP/2.0
Via: SIP/2.0/UDP xxx.yyy.zzz.www:5065;branch=z9hG4bKbranch1
Route: <sip:xxx.yyy.zzz.www>,<sip:xxx.yyy.zzz.www:5062>
Max-Forwards: 70
From: "Alice" <sip:alice@miniims.net>;tag=rawclientv1.0
To: "Bob" <sip:bob@miniims.net>
Call-ID: f2927406a96b0b3d3ef8213aa338d1c4@xxx.yyy.zzz.www
CSeq: 1 INVITE
Contact: "alice" <sip:alice@xxx.yyy.zzz.www:5065>
P-Preferred-Identity: <sip:alice@miniims.net>
Content-Length: 141
v=0
o=alice 2890844526 2890844526 IN IP4 xxx.yyy.zzz.www
s=
c=IN IP4 xxx.yyy.zzz.www
t=0 0
m=audio 12346 RTP/AVP 0 8 96
a=rtpmap:96 L16/8000
解析后打印时,它是正确的。但是,当我发送它时,请求URI被放在Route头列表的末尾,第一个Route头被移动到SIP URI中。没有RFC或3GPP标准规定了这种行为。 WireShark已经捕获了错误的消息:
INVITE sip:xxx.yyy.zzz.www SIP/2.0
Via: SIP/2.0/UDP xxx.yyy.zzz.www:5065;branch=z9hG4bKbranch1
Route: <sip:xxx.yyy.zzz.www:5062>,<sip:bob@miniims.net>
Max-Forwards: 70
From: "Alice" <sip:alice@miniims.net>;tag=rawclientv1.0
To: "Bob" <sip:bob@miniims.net>
Call-ID: f2927406a96b0b3d3ef8213aa338d1c4@xxx.yyy.zzz.www
CSeq: 1 INVITE
Contact: "alice" <sip:alice@xxx.yyy.zzz.www:5065>
P-Preferred-Identity: <sip:alice@miniims.net>
Content-Length: 141
v=0
o=alice 2890844526 2890844526 IN IP4 xxx.yyy.zzz.www
s=
c=IN IP4 xxx.yyy.zzz.www
t=0 0
m=audio 12346 RTP/AVP 0 8 96
a=rtpmap:96 L16/8000
这是JSIP中的正常行为吗?还是一个bug?有没有办法防止它,即一种解决方法?提前谢谢!
答案 0 :(得分:1)
使用lr; Route Header中的参数。