Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Add_workflow_for_techpubs
AUTH1UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cd5909df, userName='null'}
JIRAIDAUTHSBX-123602
REV5UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cd5909df, userName='null'}
REV6UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cd5909df, userName='null'}
REV3UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cd5909df, userName='null'}
REV1UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cd5909df, userName='null'}

Overview

SIP Adaptor Profile


Multiexcerpt
MultiExcerptNameSIP Adaptor Profile

The SIP adaptor profile object is the main construct for SIP Message Manipulation (SMM) functionality. Using SMM criteria and actions, you define SMM rules within a SIP adaptor profile. The SBC applies the profile to SIP messages in order to modify their headers and/or parameters. When a message comes into or out of the SBC and a SIP adaptor profile applies, the message is evaluated based on the set of criteria in the profile. If the message meets the criteria, it is modified according to actions defined in the profile. You can assign SMM profiles at the global, address context, zone, and SIP trunk group levels. You have the option to define profiles at any or all of these levels. Refer to SIP Message Manipulation for more information on SMM.

Include Page
SIP_Adaptor_Profile_limits
SIP_Adaptor_Profile_limits


Info
titleNote

The number of rules in a profile is limited to 10,000 and the number of actions across profiles in a system is limited to 50,000.

Ensure the above conditions are met before LSWU.

Flexible Policy Adaptor Profile

Include Page
PSX only_Flexible_Policy
PSX only_Flexible_Policy

The SIP adaptor profile can also be configured to support a flexible policy mechanism to facilitate dynamic routing and policy decisions based on any SIP message information element whereby routing and policy selection criteria are provisioned by the operator. An information element can be anything in the message, such as the following examples:

  • SIP header value
  • Presence or absence of a header
  • String in a message body
  • Parameter value
  • Presence or absence of a parameter

The following CLI objects are used in supporting flexible policy and routing.

  • The profileType parameter is used to specify whether a SIP adaptor profile is used for flexible policy or message manipulation (default).

  • The flexiblePolicyAdapterProfile zone object is used to assign a flexible policy-specific SIP adaptor profile to a specific zone.

  • The flexiblePolicyAdapterProfile SIP trunk group object is used to assign a flexible policy-specific SIP adaptor profile to a specific trunk group.

Info

For Flexible Policy and Routing feature implementation, refer to Flexible Policy and Routing Support.

For Flexible Policy and Routing best practices, refer to Configuring Dynamic Policies and Routing Using Flexible Policy and Routing Feature.

Command Syntax

Use following CLI syntax to configure SIP adaptor profiles.

SIP Adaptor Profile High Level

Code Block
languagenone
titlesipAdaptorProfile High Level Syntax
% set profiles signaling sipAdaptorProfile <profile_name> 
	advancedSMM <disabled | enabled>
	profileType <flexiblePolicy | messageManipulation> 
	rule <index> (see 'rule' syntax below)
	state <disabled | enabled>


Caption
0Table
1SIP Adaptor Profile Parameters


Parameter

Length/Range

Description

sipAdaptorProfile

1-23 characters

The name of the SIP Adaptor profile. Up to 1024 profiles are configurable.

advancedSMMN/A

Enable this flag to apply advanced SMM logic, such as dialog stateful variables, to INVITE, REGISTER, SUBSCRIBE messaging. For an example SMM rule, see How to Treat Hostpart Based on the Received Format.

  • disabled  (default)
  • enabled

NOTE: Dialog stateful variables are not applied for the NOTIFY messages received prior to receiving 200 OK response to the egress SUBSCRIBE.

profileTypeN/A

When creating a SIP adaptor profile, use this parameter to specify whether a SIP adaptor profile is to be used for flexible policy or message manipulation.

  • messageManipulation (default) – The SBC performs message manipulation based on this SIP adaptor profile.
  • flexiblePolicy – The SBC performs dynamic policy and routing based on SIP message information elements as specified in this SIP adaptor profile.

rule

1-10000

Use this object to define a rule within the SIP adaptor profile. Specify an SMM rule index number, and then configure the rule parameters as listed in the Rule Parameters section below.

state

N/A

The administrative state of this SIP PDU manipulation entry.

  • disabled (default)
  • enabled



Rule Parameters

Code Block
titlesipAdaptorProfile Rule Syntax
% set profiles signaling sipAdaptorProfile <profile name> rule <index>
	action (see 'Rule Action Syntax' below)
	applyMatchHdrRange <eight | five | four | last | nine | seven | six | ten | three | two | undefined>
	applyMatchHeader <all | eight | five | four | last | nine | one | seven | six | ten | three | two>
	criterion
		switch
		type


Caption
0Table
1Rule Parameters
3Rule Parameters Table


Parameter

Length/Range

Description

rule

1-10000

The index number of the SMM rule within the SIP adaptor profile.

action

1-128

<actionId#> – Specify the index number for an action, and then configure associated action parameters. (See the Action Parameters table below for details.)

applyMatchHdrRange

N/A

The range of the filtered header instances which are to be modified. The following is the valid set of values for this field:

  • two
  • three
  • four
  • five
  • six
  • seven
  • eight
  • nine
  • ten
  • last
  • undefined (default)

applyMatchHeader

N/A

This value specifies the matching header. The following are the valid set of values for this field:

  • all
  • one (default)
  • two
  • three
  • four
  • five
  • six
  • seven
  • eight
  • nine
  • ten
  • last

criterion

1-20

Identifies the index for the SIP PDU manipulation criterion. A criterion can then be either:

  • switch
  • type

See Rule Criterion Switch Parameters and Rule Criterion Type Parameters tables below for details on specifying the criterion parameters for each class of criterion.



Rule Action Parameters

Code Block
titlesipAdaptorProfile Rule Action Syntax
% set profiles signaling sipAdaptorProfile <profile name> rule <index> action <index>
	from type <globalVariable | header | isupParameter | messageBody | parameter | sdpContent | token | value | variable | flexVariable>
	   from flexVariableValue <flexvar1 | flexvar2 | flexvar3 | flexvar4 | flexvar5 | flexvar6 | flexvar7 | flexvar8 | flexvar9 | flexvar10 | flexvar11 | flexvar12 | flexvar13 | flexvar14 | flexvar15 | flexvar16>
	headerInfo <fieldValue | headerValue | undefined>
	headerPosition <first | last | undefined>
	operation (see 'operation' syntax below)
	paramType <generic | undefined | uri | userinfo>
	regexp 
		matchInstance <all | five | four | last | one | three | two>
		string <sting>
	to type <cdrField | header | isupParameter | messageBody | parameter | sdpContent | token | variable>
	type <header | isupParameter | message | messageBody | parameter | sdpContent | token | undefined | variable>


Caption
0Table
1Action Parameters
3Action Parameters


ParameterDescription
from type

Use to configure source message parameters.

  • flexVariable – The flex variable name of the SIP PDU manipulation entry. Use this parameter to store up to 16 flex variables received from the PSX as input to the SBC SMM to modify SIP messages on the Egress leg (For additional details, refer to SIP Profiles). 
    Available_since
    TypeAvailable Since
    Release10.1.3

    • flexVariableValue  Details the flexVariable type of this SIP PDU Manipulation entry.
      • flexvar1,flexvar2, flexvar3...flexvar16
  • globalVariable globalVariableValue – Choose the global variable to take action against (default is "undefined").
    • egressTgName (Do not use this in a SMM profile defined at the Zone level. This parameter can only be used in an outputAdaptor profile.)
    • ingressTgName (Do not use this in a SMM profile defined at the Zone level. This parameter can only be used in an outputAdaptor profile.)
    • localIP
    • localPort
    • sigportid
    • srcipaddr
    • srcport
    • undefined
  • header value <string> – Enter the header value.
  • isupParameter
    • paramCode – Enter Hex value in range of (00..ff)>[00].

    • paramEmbeddedCode – Enter hex value in range of (00..ff)>[00].

    • paramSubType – Enter hex value in range of (00..ff)>[ff].

  • messageBody messageBodyValue – Select message body type (default is "all"): all | isup | sdp | undefined
  • parameter value <string> – Enter the parameter value.
  • token tokenValue – Choose a token type (default is "undefined"). undefined | uridisplayname | urihostname | urihostport | urischeme | uriusernamevalue
  • value <string>  
  • variable
    • length <all, or a value in range 1-255> – The number of bytes from selected byte for manipulation. Default = all (use all remaining bytes).

    • offset <whole, or a value in range 0-254> – The position of first byte for manipulation. Default is whole (use all bytes).

    • variableValue – Details the variable type of this SIP PDU Manipulation entry.

      • undefined
      • var1, var2, var3...var100
flexVariable – The flex variable name of the SIP PDU manipulation entry. Use this parameter to store up to 16 flex variables received from the PSX as input to the SBC SMM to modify SIP messages on the Egress leg.from flexVariableValue 
  • flexvar1
  • flexvar2
  • flexvar3
  • flexvar4
  • flexvar5
  • flexvar6
  • flexvar7
  • flexvar8
  • flexvar9
  • flexvar10
  • flexvar11
  • flexvar12
  • flexvar13
  • flexvar14
  • flexvar15
  • flexvar16
    headerInfoThe type of Header information: fieldValue | headerValue | undefined (default)
    headerPositionThe header position of add header action: first | last | undefined (default) 
    operation

    The operation type of this SIP PDU manipulation action entry. (See Operation Parameters table below for details)

    paramType

     Parameter type:

    • generic
    • undefined (default)
    • uri
    • userinfo
    regexp

    Specifies the regular expression string against which comparison is performed to find the matches.

    • matchInstance – Apply the action associated with a regular expression to a particular match instance.string (the regular expression text of this action entry).
      • one (default)
      • two
      • three
      • four
      • five
      • last
      • all
    • string – The regular expression text of this action entry.
    to type

    Use this object to configure destination message parameters. (See Type Parameters table below for details)

    cdrField | header | isupParameter | messageBody | parameter | sdpContent | token | variable

    type

    Use this field to specify an object type to take action against. (See Type Parameters table below for details).

    header | isupParameter | message | messageBody | parameter | sdpContent | token | undefined | variable


    Configuration Example

    Code Block
    set profiles signaling sipAdaptorProfile AddCallinfo rule 1 action 1 from type flexVariable
    set profiles signaling sipAdaptorProfile AddCallinfo rule 1 action 1 from flexVariableValue flexvar1
    commit

    Include Page
    Regular_expression
    Regular_expression

    Rule Criterion Switch Parameters

    Info
    titleNote
    • The
      Spacevars
      0product
      supports up to 128 switch values.
    • These switch semantics are applicable only to the variables: global variables, headers, parameters, and tokens. They are not applicable for message body and isup parameters.


    Code Block
    % set profiles signaling sipAdaptorProfile <name> rule <index> criterion <index> switch <index>
    	switchAction <1-128>
    	switchValue <value>
    	switchRegexpString <regular expression>


    Caption
    0Table
    1Rule Criterion Switch Parameters
    3Rule Criterion Switch Parameters


    Parameter
    Length/Range
    Description
    switchN/A

    Use this object to define the SMM switch criterion.

    NOTE: Ensure actions configured under this parameter are also present in the list of created actions.

    switchAction1-128<Id> – Action identifier of this SIP PDU Manipulation action entry.
    switchRegexpStringreg. expression<text> – The regular expression text of this switch criterion entry.
    switchValueN/A

    <switch criterion value> – The switch criterion's value for this SIP PDU Manipulation criterion entry.

    NOTE: Use the keyword others is used for switchValue which represents all the values which are not explicitly specified.


    Rule Criterion Type Parameters

    Code Block
    languagenone
    titlerule criterion Syntax
    % set profiles signaling sipAdaptorProfile <profile name> rule <index> criterion <index> type
    	globalVar
    		condition
    		globalVariableID
    		regexp 
    		value 
    	header 
    		condition
    		hdrInstance 
    		hdrRange 
    		name 
    		numberOfInstances 
    		regexp 
    		value
    	isupParameter
    		condition
    		paramCode
    		paramEmbeddedCode
    		paramSubType 
    		paramValue
    	message
    		condition 
    		messageTypes 
    		methodTypes
            operation
    		statusCode 
    		statusRange
    	messageBody 
    		condition 
    		messageBodyType 
    		regexp
    	parameter  
    	sdpContent
    		codecNames 
    		condition 
    		streamInstanceId 
    		streamType
    	token
    		condition 
    		regexp 
    		tokenType 
    		value
    	variable
    		condition 
    		otherVariableID 
    		regexp
    		value 
    		variableID 


    Caption
    0Table
    1Rule Criterion Type Parameters
    3Rule Criterion Type Parameters


    ParameterDescription
    globalVar

    Specifies for which value of the global variable the rule is applicable. The criteria must be present in global variable rules.

    • condition – The pattern matching condition of this SIP PDU Manipulation criterion entry. (default is "undefined")
      • absent
      • exist
      • has-value
      • multi-has-value
      • not-equal-to
      • regex-match
      • undefined (default)
      • variables-equal
      • variables-not-equal
    • globalVariableID Details the global variable type of this SIP PDU Manipulation entry. (default is "undefined"):   
      • egressTgName – Do not use this in a SMM profile defined at the Zone level. This parameter can only be used in an outputAdaptor profile.
      • ingressTgNameDo not use this in a SMM profile defined at the Zone level. This parameter can only be used in an outputAdaptor profile.  
      • localIP
      • localPort
      • sigportid
      • srcipaddr
      • srcport
      • undefined (default)
    • regexp – Options are:
      • numMatch – Apply the criterion associated with a number match for a regular expression.
        • match
        • notMatch
      • string – The regular expression text of this criterion entry.
    • value – The criterion's value of this SIP PDU Manipulation criterion entry.
    header

    Specifies the header for which the rule is applicable.

    • condition – The pattern matching condition of this SIP PDU Manipulation criterion entry. (default is "undefined")  
      • absent
      • exist
      • has-value
      • multi-has-value
      • not-equal-to
      • regex-match
      • undefined
    • hdrInstance – Apply criteria on header instance number (default is "all).
      • all
      • eight
      • five
      • four
      • last
      • nine
      • one
      • seven
      • six
      • ten
      • three
      • two
    • hdrRange – This is an optional upper range of header instances. (default is "undefined")
      • eight
      • five
      • four
      • last
      • nine
      • seven
      • six
      • ten
      • three
      • two
      • undefined
    • name – The header name or parameter name of this SIP PDU Manipulation criterion entry. 
    • numberOfInstances – This value specifies a number of header instances for validation. Used when a header criterion is the number of headers of a particular type:
      • number – Criterion required to have total number of header instance.
      • qualifier – The total number of headers matching this condition. (default is "undefined")
        • equal
        • greater
        • lessthan
        • undefine
    • regexp – Specifies the regular expression string against which comparison would be performed to find the matches.
      • numMatch – Apply the criterion associated with a number match for a regular expression. (default is "match")  
        • match
        • notMatch
      • string – Regular expression text of this criterion entry.
    • value – The criterion's value of this SIP PDU Manipulation criterion entry.
    isupParameter

    Use this object to define ISUP parameter matching conditions.

    • condition – The pattern matching condition of this ISUP Manipulation criterion entry.  
      • absent
      • exist
      • has-value
      • multi-has-value
      • not-equal-to
      • regex-match
      • undefined
      • variables-equal
      • variables-not-equal
    • paramCode <hex value in range of (00..ff)>[00]> – The criterion's parameter code of this ISUP Manipulation criterion entry.
    • paramEmbeddedCode <hex value in range of (00..ff)>[00]> – The criterion's parameter embedded code of this ISUP Manipulation criterion entry.
    • paramSubType <hex value in range of (00..ff)>[ff]> – The criterion's parameter sub-code of this ISUP Manipulation criterion entry.
    • paramValue <number> – The criterion's parameter value of this ISUP Manipulation criterion entry.
    message

    Specifies whether the rule should apply for requests/responses/both, method name and if applicable response code/response code range. Options are:

    • condition – The pattern matching condition of this SIP PDU Manipulation criterion entry. (default is "undefined")  
      • absent
      • exist
      • has-value
      • multi-has-value
      • not-equal-to
      • regex-match
      • undefined
      •  variables-equal
      • variables-not-equal   
    • messageTypes – The SIP PDU manipulation message types of this rule entry. (default is "undefined")
      • all
      • request
      • requestAll
      • response
      • responseAll
      • undefined
    • methodTypes – The SIP PDU manipulation method types of this rule entry. (default is ""). The SBC accepts more than one method type. The SBC accepts a single methodType or [list of methodTypes], such as ack or [ ack ] or [ ack bye cancel].
      • ack
      • bye
      • cancel
      • info
      • invite
      • message
      • notify
      • options
      • prack
      • publish
      • refer
      • register
      • subscribe
      • undefined
      • update
    • operation
      • teardown This parameter is used to tear down a call gracefully by the value configured in the response code (applies to request messages only). reject responseCode values: (100-699)
    • statusCode – The status code of SIP PDU manipulation rule. (range: 100-699 / default = 0). The SBC provides options for the statusCode variable in sipAdaptorProfile, The additional options for statusCode are as follows:
        • single statusCode or list of status codes such as 480 or [ 480 ] or [ 480 486 484 ]
        • All (all status codes from 400 to 699)
        • All4xx
        • All5xx
        • All6xx
    • statusRange – The status code range of SIP PDU manipulation rule. (range: 100-699, and greater than value of statusCode / default = 0).
    messageBody

    Specifies the message body for which the rule is applicable. This criteria must be present in the message body rules. Options are:

    • condition – The pattern matching condition of this SIP PDU Manipulation criterion entry. (default is "undefined")
      • absent
      • exist
      • has-value
      • multi-has-value
      • not-equal-to
      • regex-match
      • undefined
      • variables-equal
      • variables-not-equal
    • messageBodyType – Details the message body type of this SIP PDU Manipulation entry. Options are:  
      • all
      • isup
      • sdp
      • undefined
    • regexp – Specifies the regular expression string against which comparison would be performed to find the matches. Options are:
      • numMatch – Apply the criterion associated with a number match for a regular expression. (default is "match")
        • match
        • notmatch
      • string – Regular expression text of this criterion entry.
    parameter

    The parameter for which the rule is applicable. This criteria element must be present in Parameter rules.

    • condition – The pattern matching condition of this SIP PDU Manipulation criterion entry. (default is "undefined")  
      • absent
      • exist
      • has-value
      • multi-has-value
      • not-equal-to
      • regex-match
      • undefined
    • name – The header name or parameter name of this SIP PDU Manipulation criterion entry.
    • paramType – Details the Parameter type of this SIP PDU Manipulation entry. (default is "undefined")  
      • generic
      • undefined
      • uri
      • userinfo
    • regexp – Specifies the regular expression string against which comparison would be performed to find the matches.
      • numMatch – Apply the criterion associated with a number of match for a regular expression. (default is "match") 
        • match
        • notmatch
      • string – Regular expression text of this criterion entry.
    • value – The criterion's value of this SIP PDU Manipulation criterion entry.
    sdpContent

    SDP Content configuration objects. (See SDP Content Parameters table).

     token

     Specifies the token type to act upon by the action.

    • condition – The pattern matching condition of this SIP PDU Manipulation criterion entry. (default is "undefined")  
      • absent
      • exist
      • has-value
      • multi-has-value
      • not-equal-to
      • regex-match
      • undefined
    • regexp – Specifies the regular expression string against which comparison would be performed to find the matches. Options are:
      • numMatch – Apply the criterion associated with a number match for a regular expression. Options are:
        • match
        • notmatch
      • string – The regular expression text of this criterion entry.
    • tokenType – Details the token type of this SIP PDU Manipulation entry. (default is "undefined")  
      • undefined
      • uridisplayname
      • urihostname
      • urihostport
      • urischeme
      • uriusername
    • value – The criterion's value of this SIP PDU Manipulation criterion entry.

    variable

     The ID of the internal variable to apply with this Action.

    • condition – The pattern matching condition of this SIP PDU Manipulation criterion entry. (default is "undefined")  
      • absent
      • exist
      • has-value
      • multi-has-value
      • not-equal-to
      • regex-match
      • undefined
    • regexp – Specifies the regular expression string against which comparison would be performed to find the matches.
      • numMatch – Apply the criterion associated with a number match for a regular expression. (default is "match")
        • match
        • notmatch
      • string – The regular expression text of this criterion
    • value – The criterion's value of this SIP PDU Manipulation criterion entry. 
      • variableID – Details the variable type of this SIP PDU Manipulation entry.
        • undefined
        • var1-var100



    SDP Content Parameters

    Code Block
    languagenone
    % set profiles signaling sipAdaptorProfile <profile name> rule <index> criterion <index> type sdpContent
    	codecNames <string, max: 256 chars>[]
    	condition 
    	streamInstanceId 
    	streamType  


    Caption
    0Table
    1SDP Content Parameters
    3SDP Content Parameters


    ParameterDescription
    codecNamesSpecifies codec name or a list of comma separated codec names. At most 25 comma separated codec names are supported. When specifies the codecNames for filterCodec operation, a * is used as a wildcard and only one wildcard is allowed. This wild card can appear in any position. (range: 1-128 characters).
    condition

    The pattern-matching condition of this SDP Manipulation criterion entry.

    • absent
    • xist
    • has-value
    • multi-has-value
    • not-equal-to
    • regex-match
    • undefined
    • variables-equal
    • variables-not-equal
    streamInstanceId

    <all, last, or a value in range: 1-99> – Specifies the stream instance ID for the specified media stream. For example: if the streamInstanceId value is "last", the action applies to the last instances for a particular stream type.

    streamType

    <application | audio | data | image | message | session | text | video> – Specifies the type media stream to use for this SIP Adaptor Profile. For example: If the media stream is "session", message should operate at the session level.

     sdpContentSubType

    Use this primitive to further define additional SDP content type information during an action operation.

    • codecByName: Take action against codec specified in sdpContent configuration.
    • codecByPosition: Use the position of the codes as appears in the m=line as specified in sdpContent configuration.
    • line: Use SDP line as specified in sdpContent configuration.
    • parameter: Use parameter in a given SDP line as specified in sdpContent configuration.
    • stream: Use SDP stream as specified in sdpContent configuration.



    Operation Parameters

    Caption
    0Table
    1Operation Parameters
    3Operation Parameters


    ParameterDescription
    add

    Add a header, parameter, token or messageBody using configured value.

    addDigits

    Use this operation to either add or replace the digits within these parameters.

    NOTE: This operation only applies to parameters calling party number, called party number, called IN number, location number, redirection number, original called number, redirecting number, connected number of generic number.

    append

    Append a configured value to a variable.

    asciiToBinaryAppendConverts an ASCII string of hexadecimal digits into an array of hexadecimal binary bytes e.g. “1234” is converted to 0x12, 0x34 and appends to the SMM variable.

    asciiToBinaryStore

    Converts an ASCII string of hexadecimal digits into an array of hexadecimal binary bytes e.g. “1234” is converted to 0x12, 0x34 and stores it to the SMM variable.
    binaryToAsciiAppendConverts hexadecimal binary data into the equivalent ASCII string, e.g. the number 0x12, 0x34 into the string “1234” (0x31, 0x32, 0x33, 0x34) and appends it to the SMM variable.

    binaryToAsciiStore 

    Converts hexadecimal binary data into the equivalent ASCII string. e.g. the number 0x12, 0x34 into the string “1234” (0x31, 0x32, 0x33, 0x34) and stores it to the SMM variable.

    bitAND

    Bitwise AND operation for SMM variable (hex value)
    bitNOTBitwise NOT operation for SMM variable (hex value)
    bitORBitwise OR operation for SMM variable (hex value)
    bitXORBitwise XOR operation for SMM variable (hex value)
    createuri message uriInfo

    Create a SIP URI using following sub-parameters. The SIP URI is stored in the specified variable. The "to" type for this operation is a variable.

    • uriDisplayName – URI display name (string or variable) [optional].
    • uriHostName – URI host name (string, variable or global variable).
    • uriHostPort – URI host port (string, variable or global variable) [optional].
    • uriScheme – URI scheme (string or variable).
    • uriUserName – URI user name (string or variable).

    NOTE: Use "createuri" operation for any header except Request-Line, From and To headers.

    NOTE: SBC supports SIP URI messages containing up to 20 parameters in any SIP header. However, increasing the number of URI parameters impacts memory usage. For example, increasing the number of parameters from 10 to 20 will increase memory usage by approximately 10 percent.

    delete

    Delete a header, parameter or a token.

    filterCodecFilter/rearrange the codec in the media line according the specified patterns. The patterns contain up to 25 comma-separated codec names or the wildcard codec "*".  There should be no more than one wildcard "*" codec appearing in the codec pattern.
    getCodecPositionObtain the corresponding position/order of a given codec as it appears in the media line. The position/order of the codec is stored in the variable as specified in the To operand. If the corresponding payload type of the specified codec is not found, “0” is stored in the variable as specified in the To operand.
    getDigitsUse this operation to use the value in the parameters to populate the SMM variable. This operation only applies to parameters calling party number, called party number, called IN number, location number, redirection number, original called number, redirecting number, connected number of generic number.
    getPayloadTypeObtain the corresponding payload type of a given codec if the payload type exists in the media line. The value of payload type is stored in the variable as specified in the To operand. If the corresponding payload type of the specified codec does not exist in the  media line, this action is ignored.
    ignore

    Drop a message silently on the inbound leg, and do not send on the outbound leg.

    modify

    Modify header value, parameter, and token using configured value or regular expression-based text manipulation, or else modify messageBody content using regular expression based text manipulation only.

    nextRouteActionOnCrankBack

    Invoke crankback functionality by assigning this operation to a predefined action value and using the options below to specify the next route action to take. the SMM rule is added so that "nextRouteActionOnCrankBack" is set to a predefined action value.

    • actionType
        • none (default) – No crankback is performed and the SBC falls back to its original behavior.
        • AttemptLastRoute - The SBC performs crankback and attempts the last available route. 
        • AttemptNextRoute – The SBC performs crankback and attempts the next available route.
        • DisconnectAfter3xxRoutes - The SBC stops crankback (disconnect call) when all contacts in a received 3xx responses are exhausted.
        • DisconnectCall -- If set, the call is immediately disconnected after attempting all 3xx routes.
        • SkipRemainingRoutes – The SBC skips the remaining routes available and performs the crankback for the next available contact. If the contact is not available, the SBC attempts the remaining routes in the initial route set.
    • generateAttemptRec 
      • true – The attempt record will be generated for each crankback attempt.
      • false (default) – The SBC resorts to legacy behavior.
    regappend

    Insert configured value after the matching sub-string.

    regdel

    Delete the matching sub-string.

    regpostdel

    Delete the part after the matching sub-string.

    regpostsub

    Replace the part after the matching sub-string using configured value.

    regpredel

    Delete the part before the matching sub-string.

    regprepend

    Insert configured value before the matching sub-string.

    regpresub

    Replace the part before the matching sub-string using configured value.

    regstore

    Store the matching sub-string to a variable or the regular expression sub-expression matches into a range of variables.

    regsub

    Replace the matching sub-string using configured value.

    reject message

    Reject a message by the value configured in the response code (applies to request messages only).

    reject responseCode values: (100-699)

    rename

    Rename a header.

    store

    Store a parameter, a variable or header value into a variable.

    storeIpTg

    Use this operation command to allow the SBC to store a new IP trunk group based on the SIP Message Manipulation (SMM) configuration.

    storeProfileNameStores the name of a sipParamBasedActionProfile to use in selecting a new ingress trunk group.
    storeSipParamExtracts a specified value (header, parameter, token) from the incoming SIP message to compare to mapping defined in a sipParamBasedActionProfile in order to select a new ingress trunk group.
    undefined

    Default value.

    writeCdr 

    Write CDR to a field specified in 'to type cdrField' action.



    Type Parameters

    Caption
    0Table
    1Type Parameters
    3Type Parameters


    ParameterDescription
    cdrField

    <cdr1 | cdr2 | cdr3 | cdr4 | cdr5> – Use this enum to select a specific CDR field to store a CDR string. Use in conjunction with writerCdr operation.

    header

    value <string> – Enter the header value.

    isupParameter

     value <string> – Enter ISUP parameter value.
    message
    messageBody
    parameter

    value <string> – Enter parameter value.

    sdpContent


    token

    tokenValue – Select token type to act upon. <undefined | uridisplayname | urihostname | urihostport | urischeme | uriusername>

    undefined
    variable

    Use this object to specify variable range, variable scope and variable values:

    • variableRangeValue <var1..var100 | undefined>
    • variableScopeValue <dialog | local | message>
    • variableValue <var1..var100 | undefined>




    paramDelimiter

    <delimeter character> – Specifies the delimiter value which tokenizes the first parameter level in the given SDP line. This information is needed in the To or From operand when sdpContnentSubType is a parameter.

    paramNameSpecifies the name of the parameter appearing in the SDP line. This information is needed in the From operand when sdpContnentSubType is a "parameter". (range: 1-64 characters)
    payloadType

    <next, or numeric value> – Specifies the Pay Load Type associated with the codec which is being created.

    For instance, if payloadType is a number, the value is used as-is. It payloadType is "next", the payload type becomes the current payload type +1.


    sdpLine

    This value in the to operand represents the value of the leading string identifying the target SDP line.

    Command Examples

    View SIP Adaptor Profile

    Code Block
    languagenone
    % show profiles signaling sipAdaptorProfile
    	sipAdaptorProfile Test { 
    		state enabled; 
    		rule 1 { 
    			criterion 1 { 
    				type parameter; 
    				parameter { 
    					condition exist; 
    					paramType generic; 
    					name 1; 
    					value 1; 
    				} 
    			} 
    			action 1 { 
    				regexp { 
    					string 1; 
    					matchInstance all; 
    				} 
    			} 
    		} 
    	} 

    Perform SIP header manipulation

    Use the following commands to perform the message manipulation on Egress INVITE Request-URI user name part. After the manipulation, +1 is prefixed to user name part of Request-URI in Egress INVITE.

    Code Block
    languagenone
    % set profiles signaling sipAdaptorProfile SMM_01 
    % set profiles signaling sipAdaptorProfile SMM_01 rule 1 criterion 1 type message message condition exist messageTypes request methodTypes invite 
    % set profiles signaling sipAdaptorProfile SMM_01 rule 1 criterion 2 type header header condition exist name request-line 
    % set profiles signaling sipAdaptorProfile SMM_01 rule 1 criterion 2 type header header numberOfInstances number 1 qualifier equal
    % set profiles signaling sipAdaptorProfile SMM_01 rule 1 criterion 3 type token token condition exist tokenType uriusername   
    % set profiles signaling sipAdaptorProfile SMM_01 rule 1 action 1 type token 
    % set profiles signaling sipAdaptorProfile SMM_01 rule 1 action 1 operation regprepend  
    % set profiles signaling sipAdaptorProfile SMM_01 rule 1 action 1 regexp string [^/d] 
    % set profiles signaling sipAdaptorProfile SMM_01 rule 1 action 1 to token uriusername 
    % set profiles signaling sipAdaptorProfile SMM_01 rule 1 action 1 from value +1   
    % set profiles signaling sipAdaptorProfile SMM_01 state enable   


    To view the configured profile:

    Code Block
    languagenone
    % show profiles signaling sipAdaptorProfile SMM_01 


    After the Profile is created, configure it on Egress trunk group under outputAdapterprofile:

    Code Block
    languagenone
     set addressContext a1 zone EXTERNAL sipTrunkGroup BLR_EXT signaling messageManipulation outputAdapterProfile SMM_01


    Configure SMM rule using SMM switch criteria

    Code Block
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 1 type message message messageTypes request
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 1 type message message methodType subscribe
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 2 type header header condition exist
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 2 type header header name "p-charging-vector"
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 2 type header header numberOfInstances number 1 qualifier equal
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 3 type parameter parameter paramType generic
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 3 type parameter parameter name "icid-generated-at"
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 3 type parameter parameter condition multi-has-value
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 3 type parameter parameter switch 1 switchValue "someproxy.sipart.com" switchAction 7
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 3 type parameter parameter switch 2 switchValue abc.sipart.com switchAction 9
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 3 type parameter parameter switch 2 switchRegexpString abc.*.com switchAction 9
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 criterion 3 type parameter parameter switch 3 switchValue others switchAction 1
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 1 type message
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 1 operation reject
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 1 message
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 1 message reject
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 1 message reject responseCode 500
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 7 type message
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 7 operation reject
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 7 message
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 7 message reject
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 7 message reject responseCode 503
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 9 type message
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 9 operation reject
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 9 message
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 9 message reject
    set profiles signaling sipAdaptorProfile SMM_PROFILE_S150_OUT rule 1 action 9 message reject responseCode 400


    Info
    titleNotes

    In the SMM rule above:

    • Action 7 will be performed if parameter icid-generated-at matches with value someproxy.sipart.com
    • Action 9 will be performed if parameter icid-generated-at matches with value abc.sipart.com or regular expression abc.*.com
    • Action 1 will be performed for all the other values. This is because, "others" is a keyword used to match all other values.

    Generally others is given as the last switch value. If it is not required to match the all other values, it can be ignored.


    Teardown Message

    Code Block
    % set profiles signaling sipAdaptorProfile Test6 rule 1 action 1 type message operation teardown message teardown responseCode 488


    Pagebreak