3.7.1.4 会话终止
当遇到以下所有情况时,CPE必须终止会话。
1、ACS不再有请求发给CPE,只有当最近的HTTP应答是空的CPE才能做出此结论;
2、CPE不再有请求发给ACS且已经发给ACS空的HTTP应答同时HoldRequests为0(HoldRequests为0 指的是CPE不再有请求发给ACS),如果这种情况没有遇到,CPE不再有请求或应答,它必须发出一个空的HTTP POST,这样就会满足该条件;
注意:HoldRequests SOAP包头元素是过时的,所以ACS不期望发送它。但是,ACS可能会发它,所以CPE仍然需要支持它。
3、CPE接收来源于ACS的所有outstanding 回应;
4、作为先前的请求的应答,CPE已经向ACS发送了所有outstanding回应
如果在等待至少30s后仍然没有收到ACS的回应,CPE认为该session不成功终止。如果CPE没有收到HTTP回应,CPE不能在同一个会话中重传相关HTTP请求。
如果CPE接收到带有错误代码的SOAP包(错误代码不包括8005,即retry request),CPE必须认为该session不成功结束;
如果CPE接收到的HTTP 应答的soap包不符合XML格式,或者SOAP的结果是无效的,或者是包括一个错误,或者CPE认为是违反协议的,CPE必须认为该session是不成功结束。
如果CPE接收到的HTTP应答中包含错误状态码(4**或者是5**),CPE必须认为该session是不成功结束。注意CPE允许含有401的错误码(