The “require” and explicit Feature Tag Parameters
RFC 3841 defines operational procedures based on the require and explicit feature tag parameters, which the Oracle Communications Core Session Manager fully supports. UAs include these parameters in the accept-contact: header to further clarify capabilities requirements for the session. The Oracle Communications Core Session Manager can use these parameters to exclude contacts or specify the forwarding order.
To summarize the use of these parameters per RFC 3841:
When both parameters are present, the Oracle Communications Core Session Manager only forwards to contacts that support the features and have registered that support.
If only the require parameter is present, the Oracle Communications Core Session Manager includes all contacts in the contact list, but uses a forwarding sequence that places the “best” match (with the most matching capabilities) first from those with the same q value.
If only the explicit parameter is present, the Oracle Communications Core Session Manager includes all contacts in the contact list, but uses a forwarding sequence that places contacts that have explicitly indicated matching capabilities before those with the same q value. Unlike requests that specify both require and explicit, non-matching contacts may be tried if the matching ones fail.
If neither parameter is present, the Oracle Communications Core Session Manager includes all contacts in the contact list, but determines a “best” match based on the “closest” match to the desired capabilities. Again the forwarding order starts with contacts that have the same q value.
Note that this preferential routing sequence can proceed with attempts to reach contacts with a lower q value after the sequences above are exhausted. Note also that the orders calculated by preferential routing never override any forwarding order specified by the UA.