SIP 端点接收直接 SIP 呼叫,但不会接收来自注册商的重定向

SIP 端点接收直接 SIP 呼叫,但不会接收来自注册商的重定向

我有一个自己编写的 SIP 端点,它可以接收 SIP 邀请、处理它们、回复并在直接联系时正常设置 RTP 会话。

IE

sip:用户@[终端实际IP地址]

但是,如果我尝试通过注册商进行路由,它永远不会回复。如果它回复了,它会以错误请求进行响应。我查看了请求,一切都很好,所以它没有格式错误(至少在发送时没有)。

然而,如果所讨论的端点发起呼叫,则一切都会顺利进行。

我正在用 ekiga 进行测试,只是为了将我的代码从至少一半的等式中剔除。

请求如下:

INVITE sip:[email protected] SIP/2.0
Date: Mon, 21 May 2012 15:42:26 GMT
CSeq: 1 INVITE
Via: SIP/2.0/UDP 192.168.0.22:5060;branch=z9hG4bK21b00fb7-1707-1910-92f3-0025b360b492;rport
User-Agent: Ekiga/3.2.7
From: "Jonathan" <sip:[email protected]>;tag=c9ad0fb7-1707-1910-92f1-0025b360b492
Call-ID: c9ad0fb7-1707-1910-92f2-0025b360b492@HOWIE
To: <sip:[email protected]>
Contact: <sip:[email protected]>
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,SUBSCRIBE,NOTIFY,REFER,MESSAGE,INFO,PING
Content-Type: application/sdp
Content-Length: 566
Max-Forwards: 70

v=0
o=- 1337614946 1 IN IP4 192.168.0.22
s=Opal SIP Session
c=IN IP4 192.168.0.22
t=0 0
m=audio 5084 RTP/AVP 0 8 101
a=sendrecv
a=rtpmap:0 PCMU/8000/1
a=rtpmap:8 PCMA/8000/1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16,32,36
m=video 5086 RTP/AVP 109 108 34
b=AS:4096
b=TIAS:4096000
a=sendrecv
a=rtpmap:109 h264/90000
a=fmtp:109 packetization-mode=1;profile-level-id=42C01E
a=rtpmap:108 h263-1998/90000
a=fmtp:108 D=1;F=1;I=1;J=1;CIF=1;CIF4=1;QCIF=1;CUSTOM=320,240,1;CUSTOM=640,480,1
a=rtpmap:34 h263/90000
a=fmtp:34 F=1;CIF=1;CIF4=1;QCIF=1

端点注册得很好,因为我可以从注册商那里看到它已经注册了。

此外,端点软件正在运行,因为我的桌面上也运行着它,并且一切都按我预期的方式运行。

此外,netstat -lvuwp 显示我的应用程序正在按要求监听端口 5060。

更新 我刚刚注意到注册商没有在最后阶段转换请求。我看到它在 wireshark 中接收请求,例如 192.168.0.22 -> 192.168.0.200(注册商的地址),但我从未看到 192.168.0.200 -> 192.168.2.5(所讨论的端点),就像在其他端点上一样。

以下是从注册中心到终端的转发尝试

INVITE sip:[email protected];q=1, <sip SIP/2.0
Via: SIP/2.0/UDP 192.168.0.200:5060;branch=z9hG4bK-5bbc7711b807109;rport
Via: SIP/2.0/UDP 192.168.0.22:5060;branch=z9hG4bK5bb8b0c7-1707-1910-9366-0025b360b492;received=192.168.0.22;rport=5060
Date: Mon, 21 May 2012 16:28:56 GMT
CSeq: 1 INVITE
From: "Jonathan" <sip:[email protected]>;tag=03b6b0c7-1707-1910-9364-0025b360b492
Call-ID: 03b6b0c7-1707-1910-9365-0025b360b492@HOWIE
To: <sip:[email protected]>
Contact: <sip:[email protected]>
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,SUBSCRIBE,NOTIFY,REFER,MESSAGE,INFO,PING
Max-Forwards: 69
Record-Route: <sip:192.168.0.200;lr>
User-Agent: Ekiga/3.2.7
Content-Type: application/sdp
Content-Length: 566

v=0
o=- 1337617736 1 IN IP4 192.168.0.22
s=Opal SIP Session
c=IN IP4 192.168.0.22
t=0 0
m=audio 5066 RTP/AVP 0 8 101
a=sendrecv
a=rtpmap:0 PCMU/8000/1
a=rtpmap:8 PCMA/8000/1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16,32,36
m=video 5068 RTP/AVP 109 108 34
b=AS:4096
b=TIAS:4096000
a=sendrecv
a=rtpmap:109 h264/90000
a=fmtp:109 packetization-mode=1;profile-level-id=42C01E
a=rtpmap:108 h263-1998/90000
a=fmtp:108 D=1;F=1;I=1;J=1;CIF=1;CIF4=1;QCIF=1;CUSTOM=320,240,1;CUSTOM=640,480,1
a=rtpmap:34 h263/90000
a=fmtp:34 F=1;CIF=1;CIF4=1;QCIF=1

有人看到问题了吗?我怀疑问题出在;q1, <sip看起来不属于它的地方。

更新

我注意到了这一行

[Contact] = <sip:[email protected]:5060>;q=1, <sip:vs005@[fe80::230:18ff:feab:100e]:5060>;q=0.500

从我的终端的 REGISTER;q=1, <sip文本来看,我认为 SIP 服务器在解析 ipv6 时遇到了问题。因此,我关闭了终端上的 ipv6,然后一切正常!

相关内容