Session Initiation Protocol (SIP) Forking

Session Initiation Protocol (SIP) forking attempts to simultaneously connect a device to one of several possible remote endpoints. During a forked SIP session, a connection request is sent to each endpoint indicating that it can accept or reject the incoming call request. For example, a connection request is sent to a phone, tablet, and PC in parallel, connecting to the one that answers first or connecting to voicemail.

During a forked SIP session, the AF sends a series of Rx AA-Requests (AARs) containing the SIP-Forking-Indication AVP with a value of SEVERAL_DIALOGUES (1) to the PCRF including a description of possible flows to each endpoint. The PCRF then combines all possible flows with the same Media-Component-Number and Flow-Number into a single forked flow that reflects the collective QoS requirements for the associated endpoints. The QoS authorized for an endpoint is equal to the highest QoS requested for any endpoint by any forked response. The flow includes:
  • Flow-Description AVPs of all endpoints.
  • Preemption capability and preemption vulnerability allocation retention priority as required by any endpoint.
  • Maximum guaranteed upload and download bitrate as required by any endpoint.
  • Requested, required, or supported bandwidth upload and download speeds, including Real-Time Transport Control Protocol (RTCP) RR/RS fields, reflecting the maximum values among all endpoints.

Gx PCC rules are then generated for each forked flow to apply the collective QoS to all endpoints. Once flows to a particular endpoint are established, the AF sends AARs to the remaining endpoints; these AARs do not include the SIP-Forking-Indication=1 and replace all forked flows and PCC rules with those specific to that endpoint.