我正在用Java编写一个应用程序来调用和查看人们在通话时,他们的电话正在响铃或闲置,使用库Jain-Sip并且目前正在尝试使用SUBSCRIBE和NOTIFY消息正确实现状态。我能够获得要接收的状态数据,但过了一会儿,我的程序会停止显示状态数据。
我相信这是因为被覆盖的方法" processRequest"没有被召唤。这是程序中最早处理NOTIFY消息的点,甚至不输出打印语句。
关于这一点的奇怪之处在于,当我拨打电话时发送通知消息,并且存在数据。我知道这是因为我在运行程序时已经完成了Wireshark跟踪。
注意:在执行程序期间不会发生异常,从而导致错误行为。
如果有人知道为什么会发生这种情况,我将非常感激。
非常感谢, 亚当
答案 0 :(得分:0)
确保正确添加侦听器类。唯一可能的原因是如果NOTIFY是未经请求的,那不应该是这种情况,但它会发生。尝试启用此标记gov.nist.javax.sip.DELIVER_UNSOLICITED_NOTIFY
。点击此处了解详情https://jsip.ci.cloudbees.com/job/jsip/javadoc/gov/nist/javax/sip/SipStackImpl.html
否则你需要附上DEBUG日志才能搞清楚,可能是格式错误的请求或类似的东西。