In this section:
This section explains SMM and how to configure according to how the fields correspond to SIP messaging.
Guidelines for SMM are as follows:
The SMM feature is enabled on a Signaling Group and is used to change an incoming or outgoing SIP Message.
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 |
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
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:
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.
The Request Rule fields map to the Invite message parameters as follows:
Requests Rule Field
Request Rule Fields | Corresponds to SIP INVITE message field |
---|---|
Method | INVITE |
URI Scheme | sip |
URI User | 1010 |
Password | password |
URI User Parameters | usr=param |
URI Host | IP address (i.e., 10.1.1.74) |
URI Port | URI port (i.e, 5061) |
URI Parameters | user=phone |
SIP Version | SIP version (i.e. SIP/2.0) |
The Status Rule fields map to the SIP message parameters as follows:
Status Rule Fields
Status Rule Field | Corresponds to SIP message field |
---|---|
Status | SIP message (i.e., 200 OK) |
SIP Version | SIP version (i.e., SIP/2.0) |
The Header Rule fields map to the SIP message parameters as follows:
Header Rule Fields
Header Rule Field | Corresponds to SIP message field |
---|---|
Header Name | From |
Display Name | name |
URI Scheme | sip |
URI User | 1010 |
Password | password |
URI User Parameters | usr=param |
URI Host | IP address (i.e., 10.1.1.74) |
URI Port | URI port (i.e, 5061) |
URI Parameters | user=phone |
Header Parameters | Header (i.e., tag=254b0000) |
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 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).
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 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.
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 | |
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 |
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 |
---|---|
Descriptor | Condition Entry's name. |
Match Type | Token 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 Value | The 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. Set at Regex: A Token Match is used when checking to see if the value matches a Regex pattern. |
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.