处理需要监控电话上的呼叫活动/状态的 SIP 应用程序。我的应用程序 (UA) 已向代理服务器注册,被监控的电话也是如此。我正在使用 SUBSCRIBE/NOTIFY 消息来告诉手机我想了解它的“对话”事件,并且一旦订阅,它就可以正常工作。我遇到了两个问题:
我要求订阅时长为 900 秒,并且始终从手机返回一些荒谬的 4000 多秒。
订阅激活时手机可能会被拔掉(不要问,但是,是的,这是可能的)。发生这种情况时,我没有收到任何关于手机不再可用的通知。因此,我必须等待我的订阅超时,尝试更新它,处理失败,然后创建一个新订阅。
我意识到我可以在订阅到期之前更新我的订阅,但有没有更好的方法呢?例如,我是否能够获取“存在”事件并使用它们来了解电话何时存在?这些事件是否总是保证在手机启动时发生,即便如此,由于中间有一个代理,我什至会收到通知,还是我仍然不知道手机重新启动并且不再识别我的订阅( s)?这些“存在”更新是我可以从代理请求的吗?
任何见解都会很棒;目前,我将尝试以更短的时间间隔刷新我的订阅,但我很想知道是否有更好的方法来解决它。提前致谢。