In this section:

SMM Overview

This section explains SMM and how to configure according to how the fields correspond to SIP messaging.

Guidelines for SMM are as follows:

  • SIP Headers can be added, deleted, or modified.
  • Manipulation can be completed for every SIP message, or separately for SIP Requests or SIP Responses.
  • Manipulations can set to occur based upon user specified matching criteria.
  • Manipulations can be executed at the ingress or egress SG.
    • At the ingress, inbound SIP messages are modified to permit proper handling by the SBC's routing function.
    • At the egress, SIP messages (already processed by the SBC) are modified to meet the SIP requirements of the upstream device.

The SMM feature is enabled on a Signaling Group and is used to change an incoming or outgoing SIP Message.

Packet Types

SIP Requests are different than SIP Responses. In order to employ the SIP Manipulation function, you must know the difference between a Request and Response.

SIP Requests

 

SIP Responses (partial list)

INVITE

 

100 Trying

ACK

 

180 Ringing

BYE

 

183 Session Progressing

CANCEL

 

200 OK

OPTIONS

 

202 Accepted

REGISTER

 

302 Moved Temporarily

PRACK

 

400 Bad Request

SUBSCRIBE

 

401 Unauthorized

NOTIFY

 

403 Forbidden

PUBLISH

 

500 Server Internal Error

INFO

 

503 Service Unavailable

REFER

 

504 Server Timeout

MESSAGE

 

603 Decline

UPDATE

 

606 Message Too Large

Anatomy of a SIP Packet

Knowing the separate parts of the SIP packet will help you use the correct section of the SMM Web UI. Request Line, Status Line, Headers, Header Parameters, URI and URI parameters are all portions of a SIP packet.

SIP Lines and Headers

SIP Packet Parameters

SIP Message Rules

The SMM Rules are listed below, including which portion of the SIP packet affected by each specific rule.

Mapping of SMM Rule Types to Portions of SIP Messages

Use the following:

  • Request Rules to change the Request URI Line
  • Status Rules to change the Status Line
  • Header Rules to change SIP headers
  • Raw Rules to change SDP, or any portion of the SIP message not affected by other rules.

Mapping Sections of the SMM Rule to the SIP Packet

After selecting the appropriate Rule type, the Rule itself must be configured. The tables below lists how each rule corresponds with portions of a SIP message. Use these tables to determine which configuration entry to change.

Request Rule Mapping

The Request Rule fields map to the Invite message parameters as follows: 

Requests Rule Field

Request Rule FieldsCorresponds to SIP INVITE message field
MethodINVITE
URI Schemesip
URI User1010
Passwordpassword
URI User Parametersusr=param
URI HostIP address (i.e., 10.1.1.74)
URI PortURI port (i.e, 5061)
URI Parametersuser=phone
SIP VersionSIP version (i.e. SIP/2.0)
 

Status Rule Mapping

The Status Rule fields map to the SIP message parameters as follows:

Status Rule Fields

Status Rule FieldCorresponds to SIP message field
StatusSIP message (i.e., 200 OK)
SIP VersionSIP version (i.e., SIP/2.0)
 

Header Rule Mapping

The Header Rule fields map to the SIP message parameters as follows:

Header Rule Fields

Header Rule FieldCorresponds to SIP message field
Header NameFrom
Display Namename
URI Schemesip
URI User1010
Passwordpassword
URI User Parametersusr=param
URI HostIP address (i.e., 10.1.1.74)
URI PortURI port (i.e, 5061)
URI Parametersuser=phone
Header ParametersHeader (i.e., tag=254b0000)

The Raw Rule

Normally used to change the SDP, the Raw Rule will change any regex match found within the entire SIP packet. If a Raw Rule was created to match on sip: and change it to sips:, then every sip: that appears in a packet would be changed to sips: using a single Raw Rule.

Tokens

Tokens are basically variable names which have been pre-assigned to different portions of a SIP Message. Just like the numbers in an incoming SIP packet are mapped into Tranformation Table IEs (Called Number, Calling Number, etc.), various portions of a SIP Packet are mapped into SMM Tokens.

Tokens help identify the change. For example, if you create a  SMM Rule to change the diversion number to match the calling number, use the SMM Rules menu to change the diversion value from the token from.user.userinfo.user (the token that contains the calling number).

Token Mapping

See below for a mapping example of SIP messages to their corresponding tokens; x represents a SIP Request Line, Status Line or Header name. For example:

  • The Display Name in a FROM header would be recorded in the from.displayname token.
  • The TO number would be recorded in the to.uri.userinfo.usertoken.

 

Tokens Mapped to Their Corresponding SIP Packet Elements

 

Some of the available tokens are listed below.

Sample Tokens

Request URI Header Tokens

Value

request-line

sip:+15103644064@ux.vx.net;user=phone SIP/2.0

request-line.uri

sip:+15103644064@ux.vx.net

request-line.uri.host

ux.vx.net

request-line.uri.port

5061

request-line.uri.userinfo.user

+15103644064

request-line.sipversion

2.0

To/From Headers

TO/FROM/P-headers Tokens

Value

from

"Jane Doe"<sip:+14083483531:passwrd;usr=param:test@sba1.vx.net:5061;user=phone>;epid=03FE79405B;tag=d953c6165d

"J Smith"<sip:3307565;ext=7565;phone-context=cda.udp@10.6.252.2;transport=udp;user=phone>;epid=03794;tag=d95c6

from.displayname

"Jane Doe"

from.param.tag

d953c6165d

from.uri

sip:+14083483531@sba1.vx.net;user=phone

from.uri.host

sba1.vx.net

from.user.port

5061

from.user.userinfo.password

passwrd

from.user.userinfo.param.ext

7565

from.user.userinfo.param.phone-context

cda.udp

from.user.userinfo.user

+14083483531

Conditions

A Condition Rule is configured for a SMM to operate only when something specific occurs; this rule is applied with the Message Rule and is configured to match specific numbers, tokens, or by regex.

Literal Condition Match

Literal Condition Match (Condition Rule Table field)Definition
DescriptorCondition Entry's name.
Match TypeToken for the element to be matched.
Operation

A literal match is used when checking an element contained in a token is a specific value.

Example: Does the To: number (to.uri.userinfo.user) equal 0.

Match ValueThe literal value to match.

Token Condition Match

Token Condition Match (Condition Rule Table field)Definition
Operation

Set at Equal: A Token Match is used when checking to see if the value in one token equals another.
Example: Does the From: number (from uri.userinfo.user) equal the To: number (to.uri.userinfo.user).

Set at Regex: A Token Match is used when checking to see if the value matches a Regex pattern.
Example: Does the From: number (from uri.userinfo.user) begin with 1.

More Information

The SMM feature cannot be used to create a SIP packet; the SMM feature handles a SIP packet either just before or just after the SIP Engine. In either case, an already-existing SIP packet is presented to the SMM function. The SMM function only works on packet it receives--it cannot create a packet.

  • No labels