The B2BUA feature provides back-to-back user agent functionality to Sentinel.

Details

Feature script name

B2BUA

Applicable contexts

SIP service

Call-Type

All

Feature execution points

SipAccess_SessionAccept SipAccess_PartyRequest SipAccess_PartyResponse SipMidSession_PartyRequest SipMidSession_PartyResponse SubscriptionAccept SubscriptionSipRequest SubscriptionSipResponse SipTransaction_Accept SipTransaction_Request SipTransaction_Response

SAS Support

Yes

Prerequisite features

None

Network Operator Config

Yes

Subscriber Config

None

POJO or SBB

POJO

Feature FSMs

None

Feature Parameters

None

RA Entity Links

None

Session state inputs and outputs

Inputs

Name Type Format Description Behaviour if null/invalid

SentinelSelectionKey

com.opencloud.sentinel.common.SentinelSelectionKey

selection key (for example, <platform>::::)

For selecting configuration data

N/A

Network Operator Data

B2BUA feature configuration is stored on a profile table called SipB2BUAConfigProfileTable.

Data is scoped according to a Sentinel selection key.

Attribute Name Type Default Description
PreserveCallIdOverB2BUA

boolean

false

If true, the outgoing dialog will use the same SIP Call-ID as the incoming dialog.

SendEarlyInitialInviteACK

boolean

false

If true, on receiving a 2xx Response to an Initial INVITE request, an ACK will be sent on the dialog, and the incoming ACK will not be sent on the linked leg.

Statistics

B2BUA feature statistics are tracked by the sentinel.sip SBB and can be found under the following parameter set:
SLEE-Usage → sentinel.sip service ID → sentinel.sip SBB ID → feature.B2BUA

Statistic Type Description
Started

Counter

Incremented when the feature is invoked.

FailedToStart

Counter

Incremented when Sentinel encounters an error while attempting to start the feature.

IssuedWarning

Counter

Incremented when a non-fatal problem is encountered and the feature issues a warning.

FailedDuringExecution

Counter

Incremented when a fatal problem is encountered and the feature cannot execute correctly.

TimedOut

Counter

Incremented when the feature takes too long to complete and Sentinel aborts execution.

FailedToCreateOutgoingLeg

Counter

Incremented when an error occurs while attempting to create a new SIP leg.

FailedToCreateOutgoingMessage

Counter

Incremented when an error occurs while attempting to create a new SIP message.

FailedToForwardMessage

Counter

Incremented when the feature fails to forward a message for any reason.

FailedToLinkLegs

Counter

Incremented when the feature fails to link the triggering leg to a newly created B2BUA leg.

FailedToSendNewErrorResponse

Counter

Incremented when an error occurs while the feature is attempting to directly respond to an inbound request with an error response.

LegAlreadyLinkedOnInitialRequest

Counter

Incremented when the feature detects that the leg an inbound initial request was received on already has a linked leg.

SessionEndingOnInitialRequest

Counter

Incremented when the feature detects that the session is already ending while processing an initial request.

LegsNotLinkedOnNonInitialMessage

Counter

Incremented when the feature detects that the leg a non-initial request or response was received on is not linked to another leg.

ForwardedResponse

Counter

Incremented when a SIP response is successfully forwarded across the B2BUA.

ForwardedRequest

Counter

Incremented when a SIP request is successfully forwarded across the B2BUA.

SentErrorResponse

Counter

Incremented when the feature directly answers an incoming request with an error response.

SentEarlyAck

Counter

Incremented when the feature generates an immediate ACK to an incoming INVITE-2XX response.

SuppressedAckAfterEarlyAck

Counter

Incremented when the feature does not forward an inbound ACK due to it having already sent one on the linked leg.

Behaviour

Basic Behaviour

The B2BUA feature divides the communication channel into two legs and mediates all SIP signaling between both ends of the session.

On receipt of an initial SIP request (i.e. a request without a To tag), the feature creates an outgoing leg, links it to the triggering leg, and forwards an equivalent request on the new leg. The forwarded request will have a new call ID unless the feature has been specifically configured to preserve the call ID across the B2BUA. If the initial request is received on a leg that is already linked to another leg, the feature will not create a new leg or attempt to forward the message on the existing leg. If another feature ends the session before the B2BUA feature processes the initial request, a new leg will not be created and the request will not be forwarded.

For all other incoming SIP messages the feature adds an equivalent outgoing SIP message to the linked leg’s message queue. If there in no leg linked to the triggering leg, the feature will not attempt to forward the message.

Note

This feature is a critical system feature, many features rely on the functionality and success of this feature, including the B2BUA SCUR, B2BUA ECUR, B2BUA IEC, and SDP Comparison features.

See Sentinel SIP Feature Execution Points for more about running critical features.

Early ACKs

If configured to do so, on an incoming success response to an initial INVITE, the feature will send an early ACK on the triggering leg, and will subsequently not forward the ACK received on the linked leg. An early ACK will not be sent if SDP negotiation has not been completed (offer & answer).

Error Responses

There are a number of cases where the feature will generate and send an error response for an inbound request instead of forwarding the request:

  • When the feature forwards a request on a linked leg, it will decrement the value of the Max-Forwards header on the outbound request. If the value reaches 0, the feature will generate and send a 483 (Too Many Hops) response.

  • If the feature receives a request and is unable to forward it on the linked leg due a to a SIP transaction already being in progress on that leg, it will send a 491 (Request Pending) response.

  • If an internal error occurs that prevents the request from being forwarded, the feature will send a 500 (Server Internal Error) response.

Previous page Next page
Sentinel Express Version 2.9.0