我正在使用 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 中的正常行为吗?还是一个错误?有没有办法防止它,即解决方法?提前致谢!