不调用SipListener中的Jain Sip processRequest方法

时间:2012-03-30 13:23:01

标签: java sip jain-sip

我使用Jain Sip时遇到了一个奇怪的问题(今天下载版本Jain-sip-ri-1.2.2014.jar)。我正在连接到PBX,用它做一些uaCSTA的东西。 Connection工作正常我也可以执行MakeCall命令等但是经过一段时间(~20分钟)后,Jain Sip Stack似乎不再调用processRequest方法了。似乎会话过期或ReInvites之间的超时并不重要。

我跟踪了Wireshark的所有通信,所以我知道有一个请求。

沟通就是这样。

1. me -> PBX Request: INVITE sip:xxx  CSTA RequestSystemStatus
2. me <- PBX Status:  100 Trying
3. me <- PBX Status:  200 Ok          CSTA RequestSystemStatusResponse Normal
4. me -> PBX ACK             sip:xxx 
5. me -> PBX Request: INFO   sip:xxx  CSTA MonitorStart
6. me <- PBX Status:  200 Ok          CSTA MonitorStartResponse

直到现在一切都很好。经过一段时间后,我称之为监控设备(电话),因此集团电话将生成一个DeliveredEvent。

x. me <- PBX Request: INFO   sip:xxx  DeliveredEvent

此消息发送11次,然后发送11个消息

x. me <- PBX Request: BYE    sip:xxx  

那么为什么不调用processRequest方法呢?如果您需要更多信息来帮助我解决问题,请随时提出。

1 个答案:

答案 0 :(得分:0)

经过几个小时的调试后,我终于找到了问题。 Windows防火墙阻止了UDP。 UPD出现在我的Wire Shark Trace中,但从未被我的应用程序的Socket接收。

发送UDP后,底层Internet协议等待响应,因为它是UDP,没有响应。但防火墙保持打开状态,直到IP生存时间到期。这就是它工作64秒的原因。