In this section:
SIP forking refers to the capability to alert several devices of the same subscriber or to be able to alert one or more devices each of several different subscribers as a part of a session setup. The sequence of alerting itself can be in parallel (allowing any of the devices to receive the session), or in sequence (in which case a precedence is already specified in the order of forking).
In the context of reaching more than one subscriber, forking is typically initiated by an Application Server (AS) executing a subscribed call service (e.g. “Hunt Group”). Whereas forking to reach more than one registered device for the same subscriber can be done by the SIP registrar itself.
SIP allows either of the above types of forking to be done in a “B2BUA” manner - in which case call-leg for each terminating device has a unique call identifier. Also, either of the above types of forking could be done in a “forking proxy” manner - in which case call-leg for each terminating device has the same Call-ID and From-tag, but would have a different To-tag selected by the device being alerted.
The SBC (as terminating SBC/P-CSCF) supports receiving multiple initial forked requests with the same Call-ID, CSeq and From-tag, but with different Request-URIs. Each of these requests are treated as a new dialog establishment request, and is permitted to proceed in parallel.
Any out of dialog request terminating to the UA may be forked by the registrar or the AS. SBC supports Upstream forking for the SIP INVITE and out of dialog SIP requests such as OPTIONS, SUBSCRIBE, MESSAGE and REFER.
This section describes the transaction matching logic used by SBC to determine if an ingress SIP request is one of the following:
Additionally, for the below matching logics, Request-URI comparison is accomplished as follows:
The SBC processes multiple INVITEs for the same call with additional digits to complete the dial sequence resulting in a successful route. The SBC also supports Info-based overlap dialing where initial INVITE with incomplete called party digits is answered locally by the SBC to establish early dialog, and subsequent digits are received through INFO message to complete dial sequence resulting in a successful route.
The SBC treats an ingress SIP request as an overlap dialing request from an endpoint if it appears similar to a previously received ingress SIP request (for which a call-leg is presently in progress), and if it satisfies all the following conditions:
To configure Overlap Addressing service for a SIP Trunk Group from the CLI, see sipTrunkGroup services - CLI.
Interworking is supported between SIP/H.323 and H.323/SIP clients where H.323 side is configured for overlap or enbloc, and SIP side is configured for supporting Multi Invite/Info or enbloc.
SBC treats an ingress SIP request as a forked request if it appears similar to a previously received ingress SIP request (for which a call-leg is presently in progress), and if it satisfies all the following conditions:
SBC treats an ingress SIP request as a merged request if it appears similar to a previously received ingress SIP request (for which a call-leg is presently in progress), and if it satisfies all the following conditions:
SBC treats an ingress SIP request as a looped request if it appears similar to a previously received ingress SIP request (for which a call-leg is presently in progress), and if it satisfies all the following conditions:
The SBC acting as B2BUA exhibits following downstream forking behavior:
When a downstream forking entity sends a 199 response code for a particular early dialog, SBC will have to consume the same, as the ingress leg is being shielded from the call-forking related signaling and instead just clear the corresponding early dialog context. If the early dialog on which the 199 is received is NOT being used for cut-through, there is no impact other than clearing the context. If the early dialog on which the 199 is received is being used for cut-through, the cut-through will be removed apart from clearing the context.
The following SBC behavior occurs when the parameter "Downstream Forking Supported" is enabled on the egress leg:
Downstream Forking provisional responses are defined as:
While receiving SDP answers in 18x responses, SBC gracefully handles 18x responses by: