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

  • SubscriptionSessionCheck

  • SubscriptionPartyRequest

  • SubscriptionPartyResponse

  • SipAccess_ServiceTimer

  • SipMidSession_PartyRequest

Yes

No

Stateful

POJO with FSMs

Source Code

This feature’s source code is available in the Sentinel VoLTE SDK in the mmtel-conferencing module pack. It can be viewed by using the create-module command in the SDK with that module pack, for example:

> create-module new-conf-module opencloud#mmtel-conferencing#volte/3.1.0;3.1.0.0

This command will prompt you for information needed to create the new modules, once completed the original source for the feature can be found in the new modules.

The module-pack includes the following modules relevant to this feature:

Module Name Description

mmtel-conferencing

Group module for the feature that includes all of the modules listed below.

mmtel-conf-library

Contains common code for the conference modules.

mmtel-conf-subscription-profile

Contains the profile specification for the feature configuration profile table.

mmtel-conf-view-profile

Contains the profile specification for the profile table used to track information about a conference.

mmtel-conf-event-schema-library

Generates java code for the conference event XML schema.

mmtel-conf-subscription

Contains the feature itself.

Subscriber data

Not applicable; the feature is generally available unless disabled at the network level.

Network data

Data is stored in the MMTelCONFSubscriptionConfigurationTable profile

Parameter Type Default Description
DefaultSubscriptionExpirySecs

Integer

3600

Expires value is used if SUBSCRIBE doesn’t contain Expires header

MinSubscriptionExpirySecs

Integer

5

SUBSCRIBE requests with a Expires value lower than this are are rejected

PollingIntervalSecs

Integer

5

Frequency of polls for changes to conference view

Statistics

MMTelCONFSubscription 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 → MMTelCONFSubscription

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.

SubscriptionStarted

Counter

Incremented when a subscription is successfully initiated.

SubscriptionRefreshed

Counter

Incremented when an in-progress subscription is refreshed with a new SUBSCRIBE request.

SubscriptionEnded

Counter

Incremented when an in-progress subscription is ended with a NOTIFY with subscription state terminated.

SubscriptionRejected

Counter

Incremented when a SUBSCRIBE request is refused with an error response.

NewSubscriptionRequestedInNewDialog

Counter

Incremented when a subscription is initiated by a SUBSCRIBE request received in a new SIP dialog.

NewSubscriptionRequestedInExistingDialog

Counter

Incremented when a subscription is initiated by a SUBSCRIBE request received in an existing SIP dialog.

NotifySent

Counter

Incremented each time the feature generates and sends a NOTIFY request.

Session state inputs and outputs

Inputs

Name Type Description

SentinelSelectionKey

com.opencloud.sentinel.common.SentinelSelectionKey

For selecting configuration data

HeadersByLeg

com.opencloud.sentinel.multileg.HeadersByLeg

Header information received on a given leg

Behaviour

Name

MMTelCONFSubscription

Applicable contexts

SIP service

Prerequisite features

MMTelCONF

The MMTel Conference Subscription feature is to be used in conjunction with the MMTel Conference feature. It provides a means for UEs to subscribe to “conference” event package notifications for a conference managed by the MMTel Conference feature. Currently no distinction is made between conference and non conference participants.

Notifications are triggered by changes in the state of the conference for example when a participant joins or leaves. The feature is triggered initially on an incoming SUBSCRIBE and is subsequently triggered by a re-SUBSCRIBE attempt or on the expiry of the features polling timer. In the case where the feature is triggered by a incoming SUBSCRIBE message a NOTIFY will be sent detailing the complete state of the conference. In the case where the feature is triggered on the expiry of the polling timer a NOTIFY containing the current state of the conference will only be sent if the conference view has been modified since the last expiry of the timer. The feature may also be triggered by BYE requests and REFER requests that have a Refer-To method of BYE, this affects subscriptions that are created in the INVITE dialog for the conference and will trigger the same behaviour as a polling timer expiry.

Specification compliance

Explicit exclusions

Important This exclusion only applies to versions of Sentinel VoLTE prior to 2.6.0.18
  • All error responses on a subscription session result in a NOTIFY request with Subscription-State “terminated” towards UE.

Subscription life-cycle with exclusion
subscription lifecycle

Interaction with MMTel Conference feature

MMTel Conference and MMTel Conference Subscription features share the data stored in the MMTelCONFView profiles associated with a given conference if there is at least one active subscription session for the associated conferenceID. The data is updated in the MMTel Conference feature when the conference is modified and is subsequently read by the MMTel Conference Subscription feature when it periodically polls for state changes. The ConferenceViewRemovalDelay in the MMTel Conference feature’s configuration provides a mechanism to allow all subscription sessions associated with MMTel Conference Subscription feature for the ended conference to complete before the MMTelCONFView profiles are removed. There is a configurable delay in the MMTel Conference feature for how long the profiles should remain for after the conference ends. Generally the PollingIntervalSecs of MMTel Conference Subscription should be lower than this delay.

Conference view

The current view of a conference is stored as a series of read-only profiles (one for each participant) within the MMTelCONFViewTable. A conference is considered active and therefore a subscription successful if at least one profile exists with the requested ConferenceID and ConferenceEnded is false. Profiles from this table are used to create the body of outgoing NOTIFY messages.

Configuration profile table name Description Profile naming

MMTelCONFViewTable

Stores the current state of a participant within a conference

${CONFERENCE_ID}__${CONNECTION_ID}

Parameter Type Description

ConferenceEndpointStatusInternal

String Current

Status of a participant connected, disconnected or on-hold

ConferenceID

String Unique

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

ConnectionID

String Unique

Identifier for a participant as the uniqueness of ParticipantID cannot be guaranteed

ParticipantID

String URI

Identifying the participant

ParticipantDisplayText

String

Participant display text

EndpointID

String Unique

Identifier for the endpoint

ConferenceEnded

Boolean

true if the conference has ended and we are waiting for notifications to end

LastUpdateTime

Long

Timestamp representing the last time the profile was updated

ParticipantRequestedPrivacy

Boolean

true if conference participant requested privacy

Conference Subscription Privacy

If a conference moderator or participant includes the Privacy header with a value of id or user during conference establishment, the MMTel Conference Subscription feature anonymizes their identity in subscription NOTIFY messages.

For the moderator, the Privacy header on the initial INVITE to the conference focus determines the subscription privacy setting. For participants, the Privacy header on the 200 response to the Conference Leg INVITE determines the subscription privacy setting.

An anonymized subscriber identity takes the form sip:anonymous@anonymous.invalid. If multiple subscribers in a conference have Privacy set then unique anonymous values are used, e.g. sip:anonymous_1@anonymous.invalid and sip:anonymous_2@anonymous.invalid

A typical subscription NOTIFY message XML body with anonymous participants is shown in the example below.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<conference-info xmlns="urn:ietf:params:xml:ns:conference-info" entity="mmtelconf101exmuAr6awKdkUaTRMf34QA" state="full" version="3">
  <conference-description/>
  <users>
    <user entity="sip:anonymous@anonymous.invalid" state="full">
      <display-text>Anonymous</display-text>
      <endpoint entity="sip:anonymous@anonymous.invalid">
        <status>connected</status>
      </endpoint>
    </user>
    <user entity="sip:anonymous_1@anonymous.invalid" state="full">
      <display-text>Anonymous_1</display-text>
      <endpoint entity="sip:anonymous_1@anonymous.invalid">
        <status>connected</status>
      </endpoint>
    </user>
    <user entity="sip:anonymous_2@anonymous.invalid" state="full">
      <display-text>Anonymous_2</display-text>
      <endpoint entity="sip:anonymous_2@anonymous.invalid">
        <status>disconnected</status>
      </endpoint>
    </user>
  </users>
</conference-info>

Conference event schema

Event Package for Conference State and the associated schema are used to convey the current state of the conference for subscribed resources. The feature will always render the complete state of the conference regardless of subscription state.

Previous page Next page
Sentinel VoLTE Version 3.1.0