SIP会话刷新疑问:UAC不支持Timer时如何处理UPDATE请求?
SIP会话刷新场景下UPDATE请求的正确处理方式
在你描述的场景中,正确的处理方式是回复4xx类响应,绝对不能忽略该UPDATE请求,原因如下:
- 首先,UAC在消息中携带
Allow: UPDATE头域,根据SIP协议定义,这个头域明确表示UAC支持并能识别UPDATE请求方法。既然声明了支持,就必须对收到的UPDATE请求做出响应,忽略请求属于协议违规行为。 - 忽略请求会导致UAS侧持续重传,直到超时后触发BYE断开呼叫,这完全是可以避免的异常流程。
- 针对这个场景,最合适的响应是403 Forbidden,同时可以附加
Warning头域说明具体原因,比如:Warning: 399 UAC "Timer-based session refresh is not supported"。如果UAC只是不支持本次UPDATE请求携带的特定扩展(而非UPDATE方法本身),也可以返回420 Bad Extension,并在Unsupported头域中指定timer。
内容的提问来源于stack exchange,提问作者MartinM
相关产品推荐
相关产品推荐

