Feature Cheat Sheet

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

MMTEL

No

Terminating

Sip_Access_Subscriber_Check, Sip_Access_Party_Request, Sip_Access_Party_Response, Sip_Access_Service_Timer, SipMidSession_Party_Request, Sip_Mid_Session_Party_Response, SipLegEnd

Yes

Yes

Statefull

POJO

Source Code

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

> create-module new-mmtel-flexible-alerting opencloud#mmtel-flexible-alerting#volte/4.0.0;4.0.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:

Module Name Description

mmtel-determine-flexible-alerting-mode

Group module for the Determine Flexible Alerting Mode feature.

mmtel-determine-flexible-alerting-mode-profile

The profile for this feature

mmtel-determine-flexible-alerting-mode-library

The common library for this module pack

mmtel-parallel-fa

The the flexible alerting parallel feature.

mmtel-sequential-fa

The the flexible alerting sequential feature.

Statistics

MMTelParallelFA statistics are tracked by the sentinel.volte.sip SBB and can be found under the following parameter set in REM:
SLEE-Usage → sentinel.volte.sip service → sentinel.volte.sip SBB → feature → MMTelParallelFA
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.volte.sip,vendor=OpenCloud,version=4.0.0].SbbID[name=sentinel.volte.sip,vendor=OpenCloud,version=4.0.0].feature.MMTelParallelFA"

Name Type Incremented when …​

Started

Counter

each time the feature runs

FailedDuringExecution

Counter

a fatal error occurs while the feature is executing

FailedToStart

Counter

Sentinel VoLTE encounters an error while attempting to start the feature.

IssuedWarning

Counter

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

TimedOut

Counter

the feature takes too long to complete and Sentinel VoLTE aborts execution

ProcessingRequest

Counter

processing a request message.

ProcessingResponse

Counter

processing a response from the downstream forked legs.

InviteRequestReceived

Counter

the original INVITE is received.

CancelRequestReceived

Counter

a CANCEL message is received.

ProvisionalResponseReceived

Counter

a 1xx message is received.

GroupMemberAlerted

Counter

an INVITE request is sent to a group member.

LegReleased

Counter

a dialog leg is released.

UpstreamForkCreated

Counter

the feature creates a new leg towards the calling party. It happens on the provisional responses.

TriggeredOnResponse

Counter

the feature is triggered on a response message.

TriggeredOnRequest

Counter

the feature is triggered on a request message.

TriggeredOnTimer

Counter

the feature is triggered on a timmer.

TimeoutTimerCancelled

Counter

the feature cancel the timer.

TimeoutTimerSet

Counter

the feature sets the timer. The timer is set before the INVITE is sent to the first group member.

ExitedEarlyNoMembersToAlert

Counter

there is just one member in the group and it is the pilot number.

Received480

Counter

receives a 480 (Temporarily Unavailable) response from a member

Received486

Counter

receives a 486 (Busy Here) response from a member

Received408

Counter

receives a 408 (Timeout) response from a member

Received404

Counter

receives a 404 (Not found) response from a member

ReceivedSuccess

Counter

receives a 200 (OK) response from a member

RespondedUpstreamWith480

Counter

the feature sends a 480 (Temporarily Unavailable) to the calling party.

RespondedUpstreamWith486

Counter

the feature sends a 486 (Busy Here) to the calling party.

RespondedUpstreamWith408

Counter

the feature sends a 408 (Timeout) to the calling party.

RespondedUpstreamWith404

Counter

the feature sends a 404 (Not found) to the calling party.

RespondedUpstreamWithSuccess

Counter

the feature sends a 200 (OK) to the calling party.

Interaction with other MMTel Services

CDIV Unconditional

If CDIV Unconditional is active for the Pilot Identity, CDIV Unconditional procedures will be applied and no FA group member will be alerted.

CDIV Busy

If CDIV Busy is active for the Pilot Identity, CDIV Busy procedures will be applied if the pilot number is considered busy. The definition of Busy for the pilot number depends on the group type: single-user or multiple-users. For single-user, when one member is busy the pilot number is busy, while for multiple-uses all group members have to be busy for the pilot number to be considered busy.

CDIV No Reply and CDIV Not Reachable

If the FA Pilot Number is considered in a state of No Reply or Not Reachable then the CDIV procedures for those MMTel services will be applied.

CDIV Not Logged-in

If the FA Pilot Identity has CDIV Not Registered active, the procedures for CDIV Not Registered will be applied.

MMTelOIP

OIP applied to any FA group member when OIP is active for the FA Pilot Identity.

MMTelTIP

If the FA Pilot Identity did not apply TIR, the termination identification is the FA Pilot Identity.

MMTelTIR

If the FA Pilot Identity has TIR activated, the termination identification is not presented.

MMTelICB

If the FA Pilot Identity has ICB activated, the procedures for ICB will be applied.

MMTelOCB

If any FA group member has OCB activated, the procedures for OCB will be applied for that member.

Network Operator Data

The data present in JSLEE profile table MMTelDetermineFAConfigProfileTable is used to configure the behaviour of the Parallel Flexible Alerting feature.

Variable Name Type Comments
ParallelMaxWaitTimeout

int

Set the amount of time in milliseconds that the MMTelParallelFA feature waits before canceling the session for a pilot number.

AddHistoryInfoHeader

boolean

Determines whether to add History-Info headers to the outgoing requests.

AddMpParam

boolean

If adding History-Info headers, determines whether to add hi-target-param headers (of type mp) to the added hi-entry.

Session Input Variables

Variable Name Type Comments
MMTelFAServiceData

Complex

Service data read from the HSS

FlexibleAlertingGroupMode

Enum

Determines whether single user or multi-user Flexible Alerting is used.

Session Output Variables

Variable Name Type Comments
SuppressCdiv

Boolean

Indicates whether response should be ignored by the MMTel CDIV feature.

ParallelFATimerID

int

Indicates the MMTelParallelFA timer identification.

StripPreconditionsLegNames

<Set>String

The MMTelParalleFA adds each parallel legname to this Set which is used by the StripPreconditions feature to remove preconditions (if StripPreconditions EnabledFlag is selected).

Behaviour

The MMTelParallelFA implements the Flexible Alerting in parallel. It reads the MMTelFAServiceData session variable for the group information and issues INVITE requests towards all members in parallel using SIP parallel forking.

The INVITE request URI will have two parameters added to it.

When a member answers the call with 200 (OK) the feature cancels all other sessions towards the other members and finishes the call setup procedures between the calling party and the member that answered.

It also controls the state of the FA Pilot Identity regarding busy, not reachable and no reply states. The determination of those states, depends on the members responses and on the FA group type: single-user or multiple-users. For further information regarding the state of a Pilot Identity see Flexible Alerting.

OC-Retarget Header

The OC-Retarget header is added by MMTel Flexible Alerting to communicate that a retarget has occurred. This header is inserted into the initial INVITEs that goes towards the retargeted party. This is then used in the composition to decide whether to invoke the SCC-AS.

For more details see OC-Retarget Header

Parallel Flexible Alerting and MMTelCDIV interaction

The CDIV feature runs before the Flexible Alerting feature on INVITE path. This way, the CFNL and CFU conditions can be applied to the Pilot Number before alerting any FA-Group member.

On the Response path, the CDIV feature runs after the Flexible Alerting feature. CDIV applies the conditions CFB, CFNR, and CFNRc based on the final response that the MMTelParallelFA feature sends to the caller. To avoid the CDIV feature being triggered on any final FA-Group members response, the MMTelParallelFA feature suppresses the CDIV feature execution by setting the session state variable SuppressCdiv. MMTelParallelFA will allow the CDIV feature to execute only after the the state of the Pilot Number is defined by receiving all members final responses or by timing out.

CDIV and MMTelParallelFA are both triggered on each other timers. This guarantees that the MMTelParallelFA feature cancels the ongoing downstream dialogs and that the CDIV feature can execute the CFNR and CFNRc conditions properly.

When the CDIV timer fires first, the MMTelParallelFA feature cancels the downstream dialogs and sends a 408 (Timeout) response towards the caller party. When CDIV executes, it will identify the 408 response and do the proper re-targeting towards the diverted subscriber.

When the MMTelParallelFA timer fires first, the MMTelParallelFA feature stops the CDIV timer and cancels the downstream dialogs and sends a 408 (Timeout) response towards the caller party. When CDIV executes, it identifies the trigger is the MMTelParallelFA timer, identifies the 408 response and do the proper re-targeting towards the diverted subscriber.

In the case when no timer has been fired, CDIV feature uses the sip response sent from the MMTelParallelFA feature to evaluate and execute the proper MMTelCDIV conditions.

HSS Subscriber Data Examples

single user group type

In the first example the Subscriber Data configures a flexible alerting group with type single-user. The group has three active members and the flexible alerting service is authorized or active.

<?xml version="1.0" encoding="UTF-8"?>
  <Sh-Data>
    <RepositoryData>
        <ServiceIndication>MMTEL-Services</ServiceIndication>
       <SequenceNumber>1</SequenceNumber>
        <ServiceData>
            <MMTelServices  xmlns="http://uri.etsi.org/ngn/params/xml/simservs/xcap" xmlns:cp="urn:ietf:params:xml:ns:common-policy">
                <complete-flexible-alerting>
                    <operator-flexible-alerting authorized="true"/>
                    <operator-flexible-alerting-group authorized="true">
                        <identity>sip:bob@home1.opencloud.co.nz</identity>
                        <group-type>single-user</group-type>
                        <membership>permanent</membership>
                        <members>
                            <member active="true">sip:bob@home1.opencloud.co.nz</member>
                            <member active="true">sip:bobmobile@home1.opencloud.co.nz</member>
                            <member active="true">sip:bobdesk@home1.opencloud.co.nz</member>
                        </members>
                    </operator-flexible-alerting-group>
                </complete-flexible-alerting>
            </MMTelServices>
        </ServiceData>
    </RepositoryData>
</Sh-Data>

multiple-users group type

The following example shows a group of multiple-users type with four members. The flexible alerting service is authorized or active.

<?xml version="1.0" encoding="UTF-8"?>
<Sh-Data>
    <RepositoryData>
        <ServiceIndication>MMTEL-Services</ServiceIndication>
        <SequenceNumber>1</SequenceNumber>
        <ServiceData>
            <MMTelServices xmlns="http://uri.etsi.org/ngn/params/xml/simservs/xcap"   xmlns:cp="urn:ietf:params:xml:ns:common-policy">
               <complete-flexible-alerting>
                    <operator-flexible-alerting authorized="true"/>
                    <operator-flexible-alerting-group authorized="true">
                       <identity>sip:office@home1.opencloud.co.nz</identity>
                       <group-type>multiple-users</group-type>
                        <membership>demand</membership>
                        <members>
                            <member active="true">sip:desk1@home1.opencloud.co.nz</member>
                            <member active="true">sip:desk2@home1.opencloud.co.nz</member>
                            <member active="true">sip:desk3@home1.opencloud.co.nz</member>
                            <member active="true">sip:desk4@home1.opencloud.co.nz</member>
                        </members>
                    </operator-flexible-alerting-group>
                </complete-flexible-alerting>
            </MMTelServices>
        </ServiceData>
    </RepositoryData>
</Sh-Data>
Previous page Next page
Sentinel VoLTE Version 4.0.0