Feature cheat-sheet

B2BUA Instance SAS Support Originating / Terminating Point(s) in Session Plan Network Operator Data Subscriber Data Stateful or Stateless POJO Feature or SBB Feature

MMTEL

Yes

Both

  • SipAccess_PartyRequest

  • SipAccess_PartyResponse

  • SipAccess_SubscriberCheck

  • SipAccess_ServiceTimer

  • SipMidSession_PartyRequest

  • SipMidSession_PartyResponse

  • SubscriptionSipRequest

  • SubscriptionSipResponse

  • SipMidSession_CreditAllocatedPostCC

  • SipMidSession_CreditLimitReachedPostCC

  • SipMidSession_OCSFailurePostCC

  • SipLegEnd

  • SipEndSession

No

No

Stateful

POJO

Subscriber data

Not applicable.

Network data

Not applicable.

Statistics

MMTelCONFViewUpdate statistics are tracked by the sentinel.volte.sip SBB and can be found under the following parameter set:

SLEE-Usage → sentinel.volte.sip service → sentinel.volte.sip SBB → feature → MMTelConfViewUpdate

Name Type Description
Started

Counter

Incremented each time the feature runs.

FailedToStart

Counter

Incremented when Sentinel VoLTE 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 VoLTE aborts execution.

CassandraQueryFailed

Counter

Incremented when there is an issue preparing, binding or executing a query intended to update the conference view state in Cassandra.

CassandraQueried

Counter

Incremented once a query is executed asynchronously against Cassandra and a response is pending.

CassandraQuerySucceeded

Counter

Incremented upon receipt of a success response from Cassandra with respect to a pending conference view update query.

CassandraQueryErrorResult

Counter

Incremented upon receipt of an error result from Cassandra with respect to a pending conference view update query.

Session state inputs and outputs

Inputs

Name Type Description

JoinedParticipants

MMTelCONFConnectionRequestQueue

Provides participant connection information that forms the conference view state.

ConferenceID

String

Unique identifier assigned to distinguish individual conference calls.

ConferenceHasEnded

Boolean

A flag that gets set during the conference end state to indicate the conference has ended.

Behaviour

Name

MMTelCONFViewUpdate

Applicable contexts

SIP service

Prerequisite features

MMTelCONF

This feature is to be used in conjunction with the MMTel Conference and MMTel Conference Subscription features. It is run after each invocation of the MMTel Conference feature as well as when a CassandraQueryResultEvent, CassandraErrorEvent or EndActivityEvent is received. The feature is responsible for tracking and reconciling the differences between the actual conference state and the conference view state in Cassandra, updating this view when it is necessary.

Invoked after MMTel Conference feature

The feature first checks whether the ConferenceHasEnded flag has been raised by the MMTel Conference feature. If so, the feature then checks to see whether a ConferenceViewRemovalDelay config property has been specified. This states the number of milliseconds to wait after observing the ConferenceHasEnded flag before cleaning up the conference view state in Cassandra. This ensures all conference subscriptions can end and be cleaned up prior to the conference view state. Therefore, if ConferenceViewRemovalDelay is non-zero, the feature will wait the allocated time before cleaning up, otherwise it will initiate cleanup procedures immediately.

Once the feature has established that either the conference has not ended or that it is ready to clean up the conference view state, it then determines the actions necessary to achieve this. The feature reads the actual conference state from sessionState fields defined in the MMTel Conference library and uses this to form the target state which the view state in Cassandra should reflect. The feature then reads the confirmed state, that is, the conference view state currently stored in Cassandra. However, as opposed to reading this from Cassandra directly, the feature reads this from a local session state field that it maintains and updates only on receipt of a successful write query from Cassandra. The feature then checks there are no other pending queries, and whether the target and confirmed states are different. If so, it then initiates an update to the Cassandra view state and signals that the feature is waiting.

Note All data written to Cassandra by the MMTelCONFViewUpdate feature specifies a TLL based on either the MaxCallDuration or ConferenceViewRemovalDelay config properties. This ensures that even if the MMTelCONFViewUpdate feature fails to clean up the conference view state data for some reason, the data will automatically get dropped after at most 24 hours.

Invoked by a CassandraQueryResultEvent

When the feature receives a success response on a query, it updates the local view state according to the contents of the successful query. Following this, it re-checks that the actual conference state matches the view state in Cassandra. If it does not match it will then initiate another update to the Cassandra view state and signal that the feature is waiting. Otherwise, if it does match, it will signal that the feature has finished.

Invoked by a CassandraErrorEvent

When the feature receives an error response on a query, it finishes without updating the Cassandra view state nor its local view state. Instead, any mismatch between the actual conference state and Cassandra will be resolved following the next invocation of the MMTel Conference feature. This is in conjunction with any other state changes that may have occurred during this time.

Cassandra Schema

The Cassandra schema for creating the keyspace and table that the MMTel Conference View Update feature writes to is defined in the sentinel-volte-cassandra-schema directory. The table conference_state is created under the opencloud_mmtel_conference_view keyspace and defines the following columns.

Column Type Description

conference_endpoint_status

text

Status of a participant, can be one of: connected, disconnected or on-hold

conference_id

text (unique)

16 character alphanumeric string prefixed by “mmtel-conf-” (common amongst all participants)

connection_id

text (unique)

Identifier for a participant as we cannot guarantee their ParticipantID is unique

participant_id

text (URI)

Identifier for the participant

participant_display_text

text

Specifies how the participant should be displayed in the call

participant_requested_privacy

boolean

Whether the conference participant wishes to anonymize their identity

conference_ended

boolean

Whether the conference has ended

last_update_time

timestamp

When the participant’s details were last updated

Both the conference ID and connection ID form the primary keys for the table. Currently, the table defines a time to live value of 172800 seconds (two days), to ensure any residual state from a finished conference call gets cleaned up (should the feature fail to clean it up prior).

Interactions

MMTel Conference feature

In conjuntion with being invoked after the MMTel Conference feature, the MMTel Conference View Update feature also reads session state written by the MMTel Conference feature to determine the current conference view state. This includes the JoinedParticipants field which returns a MMTelCONFConnectionRequestQueue instance, a collection of MMTelCONFConnectionRequest objects that describe each participant connection to the conference. The feature also reads the ConferenceID and ConferenceHasEnded session state fields directly for retrieving data common to all participants in the conference.

The MMTel Conference View Update feature does not write any data that is used by the MMTel Conference feature. All session state fields written by this feature are only used internally.

MMTel Conference Subscription feature

This feature is exclusively responsible for keeping an up-to-date representation of the conference state in Cassandra. It, therefore, only writes data to Cassandra. This data continues to be made available for the duration of the conference solely for consumption by the MMTel Conference Subscription feature. The MMTel Conference Subscription feature uses this data to inform UE subscribed to the conference of the current conference state via sip NOTIFY transactions.

Previous page Next page
Sentinel VoLTE Version 4.1