The SUBSCRIBE method is used to request the current state and state updates from the remote node. The subscription is valid until the expiration of the subscription timer (indicated in Expires header), or by explicit removal of the subscription (by sending SUBSCRIBE with expires 0, or sending NOTIFY with subscription state as terminated).
While SUBSCRIBE creates an explicit subscription, the REFER request (used in such applications as call transfer) implicitly establishes a subscription to the refer event.
On reception of an OOD (Out-Of-Dialog) SUBSCRIBE or REFER, a matching Registration Control Block (RCB) is searched. If no matching RCB is found and if Registration is required, then the request is rejected.
If the psxRouteForSubscribe
flag is disabled, the request is handled with the RCB capturing the changes listed below. A relayCB is used as the subscription context to store the route-set related information from the SUBSCRIBE/REFER and the corresponding 200 OK.
Subscription state information
Subscription timer
Route-set information
If the psxRouteForSubscribe
flag is enabled (or no RCB is found), the SUBSCRIBE/REFER is handled as a relay scenario whereby a relayCB is allocated for the Subscription irrespective of whether it is a registered or unregistered user..
In a situation with registered users and psxRouteForSubscribe
is not set, the following routing handling occurs:
If ‘use stored route-set’ is enabled, route the request based on the stored route-set (received on Service-Route/Path header depending on the direction of the request)
Otherwise, route the request to the REGISTER.
Note that the received Route header is applicable for INVITE only.
The
During the following scenarios, the route set is formed on ingress and egress side of the