Table Of Contents
SIP Profiles on the Session Border Controller
Contents
Information About SIP Profiles
Method-Profiles
Restrictions for Configuring Method-Profiles
Information About Method-Profiles
Configuring Method-Profiles
Applying Method-Profiles
Response Code Mapping
Restrictions for Response Code Mapping
Configuring Response Code Mapping
Applying Response Code Mapping
Header Profiles
Restrictions for Configuring Header Profiles
Information About Header Profiles
Header Manipulation
Header Profile Configuration Information
Configuring Header Profiles
Applying Header Profiles
P-KT-UE-IP Header Support
P-KT-UE-IP Header Information
Configuring P-KT-UE-IP Header Support
Provisional Response Filtering
Provisional Response Filtering Information
Configuring Provisional Response Filtering
Applying Provisional Response Filtering
Parameter Profiles
Restrictions for Configuring Parameter Profiles
Information About Parameter Profiles
Configuring Parameter Profiles
Applying a Parameter Profile to a Header Profile
Associating with an Adjacency
SIP Header Public/Private IP Address Information Insertion
SIP Header Public/Private IP Address Information Insertion
Configuration Examples for SIP Profiles
Method-Profile Examples
Applying Method-Profiles Example
Associating Predefined Header Profiles Example
Associating Predefined Parameter Profiles Example
Associating Response Code Mapping Example
Configuring Header Profiles Example
Applying Header Profiles Example
Header Manipulation Examples
Response Filtering Example
Parameter Profile Examples
P-KT-UE-IP Header Support
SIP Header Public/Private IP Address Information Insertion
SIP Profiles on the Session Border Controller
You can configure the Session Border Controller (SBC) with method and header profiles on Session Initiation Protocol (SIP) messages. These profiles are used to control which SIP requests are accepted (whitelists) and which requests are rejected (blacklists) based on the method of the request. This helps to avoid misusing the SBE or SIP adjacency by SIP users and improves the efficiency of SIP calls.
A header-profile can conditionally match any part of a header, but can only replace the entire header. SIP parameter profiles extend this capability to allow changes to be made to individual SIP Request Uniform Resource Identifier (URI) parameters associated with a header.
Note
For ACE SBC Release 3.0.0 and later, this feature is supported in the unified model only.
Feature History for Method-Profiles
Release
|
Modification
|
ACE SBC Release 3.1.00
|
• Added support for response code mapping.
• Added support for SIP header manipulation.
• Added support for provisional response filtering.
• Added support for parameter profiles.
• Added support for P-KT-UE-IP headers.
• Added support for SIP header public/private IP address information insertion.
|
ACE SBC Release 3.0.00
|
• SIP Header Profile feature was introduced on the Cisco 7600 series routers along with support for the SBC unified model.
• SIP Method-Profile feature was introduced on the Cisco 7600 series routers along with support for the SBC unified model.
|
Contents
This chapter contains the following sections:
•
Information About SIP Profiles
•
Method-Profiles
•
Response Code Mapping
•
Header Profiles
•
P-KT-UE-IP Header Support
•
Parameter Profiles
•
SIP Header Public/Private IP Address Information Insertion
Information About SIP Profiles
The SBC can manipulate the following SIP profiles:
•
Method-profiles
•
Header-Profiles
•
Parameter-profiles
Method-profiles allow the association of header-profiles and parameter-profiles to method elements contained in the method-profile.
You can use actions with method-profiles to allow the whitelist to contain blacklisted headers and the blacklist to contain whitelisted headers as well as to reject non-vital methods. This allows any profile to contain mixed actions per-profile.
Header-profiles allow complex header manipulation to occur, over and above the existing whitelist and blacklist functionality using actions based on conditional expressions.
Header-profiles additionally allow the association of parameter-profiles in header elements contained in the profile.
You can use variables to store header content; you can then optionally reconstruct the headers using previously stored variables. You can also match headers based on regular expression matching. You can use conditional matching to match against adjacency settings, transport addresses, and a number of boolean match criteria. You can also use header-profiles to reference and make limited modifications to the Request-Line.
Parameter-profiles allow the removal, replacement, or addition of specific URI parameters within certain vital headers.
You can also associate parameter-profiles with methods in method-profiles for the purpose of request-line processing per method only.
Figure 16-1 show the hierarchical association of adjacency, method-profiles, header-profiles, and parameter-profiles.
Figure 16-1
Method-Profiles
SIP methods can be blacklisted and whitelisted dynamically at run-time during receipt of a message (ingress) and at transmission of a message (egress).
The existing method-profile allows two types of method-profiles for non-vital requests. These can be blacklist (drop) or whitelist (pass). The whitelist action is considered to be the default type for a method if `blacklist' is not present in the command line.
The method-profile will contain a list of methods which are either passed on (whitelist) or dropped (blacklist). A single profile can then be associated with each of the inbound or outbound call sides.
Method-profiles can be associated with pre-defined header-profiles. In addition, pre-defined parameter profiles can be associated with the Request-line per method.
Method-profiles are not allowed to blacklist or whitelist vital methods; however, header-profiles and parameter-profiles can be associated with vital methods.
Status code mapping can be associated with any method type declared in a method-profile such that any response identified with this method can be changed. For example, a 503 response to an INVITE could potentially be changed to a 500 response if appropriate mapping is declared against the INVITE method.
This section contains the following topics:
•
Restrictions for Configuring Method-Profiles
•
Information About Method-Profiles
•
Configuring Method-Profiles
•
Applying Method-Profiles
Restrictions for Configuring Method-Profiles
Review the following restrictions for method-profiles:
•
Any given profile must be exclusively a whitelist or a blacklist.
•
Two profiles are applied to process any given SIP message: one inbound and, if permitted through that, one outbound.
•
Profiles check only SIP methods in the Request Uniform Resource Identifier (URI).
•
SIP requests are rejected as a result of a method-profile's rules. SIP responses are always forwarded.
•
Any method unknown to the SBC which is forwarded as a result of a profile's rules does not affect creating or deleting a SIP dialog.
•
Methods that are essential to the operation of an SBC cannot be blacklisted and are implicitly added to any whitelist.
•
Profiles cannot be deleted while they are in active use by at least one adjacency.
•
In case of non-Information Management System (IMS) preset, there is a default method-profile (sip method-profile default). If configured, it gets attached to the adjacencies for which no explicit user-defined method-profiles are configured. The sip method-profile default is an empty white-list by itself.
Information About Method-Profiles
After you configure a profile, you can assign it for a default application. Any SIP adjacency can apply it to signaling for that adjacency.
You can add or remove methods from profiles at any time. Each method can optionally be assigned one of three actions with the action command:
•
Either pass or reject the action.
•
Use the as-profile action to select the default profile blacklist or whitelist.
Profiles cannot be deleted while a least one adjacency is using them. You can see which adjacencies are using a profile by entering the following show command:
show services sbc sbc-name sbe sip method-profile name
Table 16-1 lists the methods that are part of the essential method set.
Table 16-1 Essential Methods
INVITE
|
PRACK
|
ACK
|
NOTIFY
|
CANCEL
|
REFER
|
BYE
|
SUBSCRIBE
|
REGISTER
|
|
Profiles are an optional part of the configuration; they do not have to be specified for the SBC to operate correctly. The default behavior is that requests with one of the essential methods are processed, and all other requests are rejected.
To modify parameters in the request-line, associate a parameter-profile with a method-profile.
ACE SBC Release 3.1.00 introduces the following functionality:
•
Predefined header-profiles can be associated with outgoing method-profiles.
•
Predefined parameter profiles can be associated with the request-line per method.
Note
Header-profiles and parameter-profiles can be associated with essential methods even though method-profiles are not allowed to blacklist/whitelist essential methods.
•
Response code mapping can be associated with any method type declared in a method-profile so that any response identified with the method can be changed. For example, a 503 response to an INVITE could potentially be changed to a 500 response if appropriate mapping is declared against the INVITE method.
Configuring Method-Profiles
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
sip method-profile profile-name
5.
blacklist
6.
action {add-first-header | add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip}
7.
pass-body
8.
method name
9.
description text
10.
exit
11.
show services sbc sbc-name sbe sip method-profile name
12.
show services sbc sbc-name sbe sip method-profiles
13.
show services sbc sbc-name sbe sip essential-methods
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
host1/Admin# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the submode for configuring the method-profile.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
sip method-profile profile-name
Example:
host1/Admin(config-sbc-sbe)# sip method-profile
profile1
|
Configures a method-profile.
If you enter the profile-name default, the default profile is configured. This profile is used for all adjacencies that do not have a specific profile configured.
|
Step 5
|
blacklist
Example:
host1/Admin(config-sbc-sbe-sip-mth)# blacklist
|
Configures a profile to be a blacklist. The no form of this command configures the profile to be a whitelist.
Note By default, profiles are whitelists.
|
Step 6
|
action {add-first-header | add-header |
as-profile | drop-msg | pass | replace-name |
replace-value | strip}
Example:
host1/Admin(config-sbc-sbe-sip-prm-ele)# action
pass
|
Specifies the action to be performed on the parameter.
|
Step 7
|
pass-body
Example:
host1/Admin(config-sbc-sbe-sip-mth-prf)#
pass-body
|
Permits message bodies to be passed through for non-vital methods accepted by this profile.
The no form of this command strips the message body out of any non-vital SIP messages matched by this profile.
|
Step 8
|
method name
Example:
host1/Admin(config-sbc-sbe-sip-mth-prf)# method
test
|
Adds a method with the specified name to the profile.
This field can be 1 to 32 characters (inclusive) in length and is case-insensitive.
The no form of this command deletes the method with that name from the profile.
|
Step 9
|
description text
Example:
host1/Admin(config-sbc-sbe-sip-mth-prf)#
description my SBC profile
|
Adds a description for the specified profile.
The no form of this command removes the description.
This description is displayed when the show command is used for this profile and is displayed for each profile when displaying a summary of all profiles.
|
Step 10
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-mth-prf)# exit
|
Exits the method-profile mode to the sbe mode.
|
Step 11
|
show services sbc sbc-name sbe sip
method-profile name
Example:
host1/Admin(config-sbc-sbe)# show services sbc
mysbc sbe sip-method-profile profile1
|
Displays details for the method-profile with the designated name.
Use name default to view the default profile.
|
Step 12
|
show services sbc sbc-name sbe sip
method-profiles
Example:
host1/Admin(config-sbc-sbe)# show services sbc
mysbc sbe sip method-profiles
|
Displays a list of all configured method-profiles.
|
Step 13
|
show services sbc sbc-name sbe sip
essential-methods
Example:
host1/Admin(config-sbc-sbe)# show services sbc
mysbc sbe sip essential-methods
|
Displays a list of the essential methods listed in Table 16-1.
|
Applying Method-Profiles
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
adjacency sip adjacency-name
5.
method-profile inbound profile-name
6.
exit
7.
show services sbc sbc-name sbe sip method-profile name
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
host1/Admin# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the mode of an SBC service.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
adjacency sip adjacency-name
Example:
host1/Admin(config-sbc-sbe)# adjacency sip test
|
Enters the mode of an SBE SIP adjacency.
Use the adjacency-name argument to define the name of the service.
|
Step 5
|
method-profile inbound profile-name
Example:
host1/Admin(config-sbc-sbe-adj-sip)#
method-profile inbound profile1
|
Sets profile1 to be used for inbound signaling on adjacency test.
|
Step 6
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-adj-sip)# exit
|
Exits the header profile mode to the sbe mode.
|
Step 7
|
show services sbc sbc-name sbe sip
method-profile name
Example:
host1/Admin(config-sbc-sbe)# shows services sbc
mysbc sbe sip method-profile one
|
Displays the header profile information.
|
Response Code Mapping
Response code mapping provides an ability to manipulate the SIP response codes when the messages traverse through the SBC. The mapping table is applied to inbound messages received at a SIP adjacency or to responses sent out of a SIP adjacency. The mapping is user-configureable on a per SIP method basis so that each SIP method can be mapped differently. Configuration of the mapping is on a per adjacency basis. Table 16-2 lists the mapping limitations on SP response code
Table 16-2
Response Codes
|
Mapping
|
100
|
No mapping allowed
|
1xx
|
Maps to 1yy (not 100)
|
2xx
|
Maps to 2yy
|
3xx
|
Maps to 3yy
|
4xx
|
Maps to 4yy, 5yy, or 6yy
|
5xx
|
Maps to 4yy, 5yy, or 6yy
|
6xx
|
Maps to 4yy, 5yy, or 6yy
|
Response Code Mapping
Response code mapping allows you to:
•
Map a particular response code to a specific response code. For example, you can map 401 to 400, but not to 300. You can map 102 to 101, but not 100.
•
Map a group of response codes (defined using a wildcard) to a specific response code. For example, you can map 40X to 400, or map all of 4XX to 400.
•
Specify exceptions to the wildcard. For example, mapping 2XX to 201, and mapping 200 to 200.
You can use the range value command to add one of more mappings.
Where configuration causes the response code to be mapped to one that is not defined in RFC 3261, the SBC applies the reason phrase "Unrecognised status code."
This section contains the following topics:
•
Restrictions for Response Code Mapping
•
Applying Response Code Mapping
Restrictions for Response Code Mapping
The following restrictions apply to Response Code Mapping:
•
Response code mapping only covers mapping of SIP response codes. H.323 calls cannot have their response codes mapped.
•
Certain messages are processed only by the SIP Transaction Manager; mapping of these messages is not possible. For example, badly formatted messages that cannot be interpreted are responded to directly by the SIP Transaction Manager.
•
There is no provision for the mapping of SIP reason phrases. The reason phrase will always match the reason code as defined in RFC 3261. A generic reason phrase is applied when the requested reason code has no corresponding definition in RFC 3261. This phrase is a compile time constant.
•
Changing the response code could result in an invalid message (for example, mapping the response code could produce a message with mandatory headers missing). There is no provision to ensure that messages contain headers required by the new response code.
•
A maximum of 128 mappings is permitted in each direction per adjacency (128 inbound and 128 outbound mappings).
Configuring Response Code Mapping
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
sip method-profile profile-name
5.
method name
6.
map-status-code
7.
range statuscoderange value statuscodevalue
8.
exit
9.
show services sbc sbc-name sbe sip method-profile name
10.
show services sbc sbc-name sbe sip method-profiles
11.
show services sbc sbc-name sbe sip essential-methods
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
host1/Admin# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the submode for configuring the method-profile.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
sip method-profile profile-name
Example:
host1/Admin(config-sbc-sbe)# sip method-profile
profile1
|
Configures a method-profile.
If you enter the profile-name default, the default profile is configured. This profile is used for all adjacencies that do not have a specific profile configured.
|
Step 5
|
method name
Example:
host1/Admin(config-sbc-sbe-sip-mth-prf)# method
test
|
Adds a method with the specified name to the profile.
This field can be 1 to 32 characters (inclusive) in length and is case-insensitive.
The no form of this command deletes the method with that name from the profile.
|
Step 6
|
map-status-code
Example:
Router/Admi(config-sbc-sbe-sip-mth-ele)#
map-status-code
|
Enters the map
|
Step 7
|
range statuscoderange value statuscodevalue
Example:
Router/Admi(config-sbc-sbe-sip-mth-ele-map)#
range 503 value 500
|
Maps a range of response codes to a response code.
|
Step 8
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-mth-prf)# exit
|
Exits the method-profile mode to the sbe mode.
|
Step 9
|
show services sbc sbc-name sbe sip
method-profile name
Example:
host1/Admin(config-sbc-sbe)# show services sbc
mysbc sbe sip-method-profile profile1
|
Displays details for the method-profile with the designated name.
Use name default to view the default profile.
|
Step 10
|
show services sbc sbc-name sbe sip
method-profiles
Example:
host1/Admin(config-sbc-sbe)# show services sbc
mysbc sbe sip method-profiles
|
Displays a list of all configured method-profiles.
|
Step 11
|
show services sbc sbc-name sbe sip
essential-methods
Example:
host1/Admin(config-sbc-sbe)# show services sbc
mysbc sbe sip essential-methods
|
Displays a list of the essential methods listed in Table 16-1.
|
Applying Response Code Mapping
Apply response code mapping by associating it with an adjacency.
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
adjacency sip adjacency-name
5.
method-profile inbound profile-name
6.
exit
7.
show services sbc sbc-name sbe sip method-profile name
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
host1/Admin# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the mode of an SBC service.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
adjacency sip adjacency-name
Example:
host1/Admin(config-sbc-sbe)# adjacency sip test
|
Enters the mode of an SBE SIP adjacency.
Use the adjacency-name argument to define the name of the service.
|
Step 5
|
method-profile inbound profile-name
Example:
host1/Admin(config-sbc-sbe-adj-sip)#
method-profile inbound profile1
|
Sets profile1 to be used for inbound signaling on adjacency test.
|
Step 6
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-adj-sip)# exit
|
Exits the header profile mode to the sbe mode.
|
Step 7
|
show services sbc sbc-name sbe sip
method-profile name
Example:
host1/Admin(config-sbc-sbe)# shows services sbc
mysbc sbe sip method-profile one
|
Displays the header profile information.
|
Header Profiles
Header-profiles processing occurs in a two-stage process. In the first stage, the following steps occur:
1.
Select next header from the message.
2.
Look through the header profile for rules affecting the selected header.
3.
In configured order, try to apply each rule to the header.
4.
If the action is to add a header, then ignore this rule and move on to the next.
5.
If the match condition is FALSE then move onto the next rule, don't evaluate any parameter profile.
6.
Apply the action or parameter profile described in the element. If this is to remove the header, then move on to the next header in the message.
The second stage adds new headers to the message. Because it occurs after the first stage, there is a well-defined group of headers in the message. The steps are:
1.
Take each rule that adds a header to the message.
2.
If the action is to add the first instance of the header only and there is already a header with that name in the message, then move onto the next addition rule.
Note
If another action has replaced the name of header then it is the replaced name that is used to test whether a new header should be added. That is, any header-name replacements performed in stage 1 are used in this stage of header-name comparisons, and not the original header-names from the arriving message.
3.
Add the header if the match condition evaluates to TRUE.
4.
Apply any rules defined for that header in user-configured order with this name. Only apply rules that are ordered after the add header rule, if the header was added.
This section contains the following topics:
•
Restrictions for Configuring Header Profiles
•
Information About Header Profiles
•
Header Manipulation
•
Header Profile Configuration Information
•
Configuring Header Profiles
•
Applying Header Profiles
•
P-KT-UE-IP Header Support
Restrictions for Configuring Header Profiles
Review the following restrictions for header profiles:
•
Any given profile must be exclusively a whitelist or a blacklist.
•
Two profiles are applied to process any given SIP message: one inbound and, if permitted through that, one outbound.
•
SIP headers that are essential to the operation of an SBC cannot be blacklisted and are implicitly added to any whitelist.
•
Profiles can not be removed while they are in active use by an adjacency.
•
For provisional filtering, provisional responses may not be blocked where the sender has required reliable provisional responses (SIP 100rel). This is to ensure that the SBC does not interfere with the call setup (as per RFC3262) by dropping the provisional response.
•
Header-profile conditional matching can be performed against any part of the message. The matches can be exact matches or even sub-strings of any given field.
•
The conditions may be associated with a specific header referenced by the header-profile header definition, but can also reference other non-vital parts of the message in order to evaluate the conditional expression; thus the condition could be associated with header P-Asserted-Identity while checking against the contents of the Call-Info header.
Information About Header Profiles
After you configure a profile, you can assign it for a default application. Any SIP adjacency can apply it to signaling for that adjacency.
You can add or remove headers from profiles at any time. Headers configured on a profile must contain characters that are valid for a SIP header.
Profiles cannot be deleted while any adjacency is using them. You can see which adjacencies are using a profile by entering the following show command:
show services sbc sbc-name sbe sip header-profile name
Table 16-3 lists the fixed set of essential SIP headers, which are not permitted to be configured on any profile.
Table 16-3 Essential Headers
To
|
Content-Type
|
Expires
|
Route
|
Referred-By
|
From
|
Content-Length
|
Min-Expires
|
Record-Route
|
Referred-To
|
Via
|
Contact
|
Authorization
|
Proxy-Authorization
|
|
Call-ID
|
Supported
|
WWW-Authenticate
|
Proxy-Require
|
|
CSeq
|
Require
|
Proxy-Authenticate
|
Replaces
|
|
Max-Forwards
|
Allow
|
Event
|
Subscription-State
|
|
Profiles are an optional part of the configuration. If no profile is applicable to a given SIP signal, then the essential headers are processed and all other headers are not forwarded.
Header Manipulation
You can modify non-essential headers in SIP messages using header and parameter profiles. The following information summarizes the supported actions:
•
Pass the header unchanged (whitelist functionality).
•
Conditionally pass the header unchanged.
•
Remove the header (blacklist functionality).
•
Conditionally remove the header.
•
Replace the name of the header. The replacement name cannot be that of a vital header.
•
Conditionally replace the header content (appearing after the ":").
•
Add a new instance of a header to a message regardless of whether or not the header already exists.
•
Add the first instance of the header to the message, if a header with this name does not already exist.
•
A combination of the above actions can be specified as a set or group of actions to be performed within a profile.
•
The header-profiles can be used in method-profiles to allow header actions only associated with specific requests types.
•
Parameter-profiles can be associated with headers in header-profiles.
•
Header content can be stored in variables and later expanded during replace-value actions.
•
Regular expression matching can be performed on headers
You can match against any part of a header but only replace the entire header. A parameter-profile extends this capability to change individual SIP URI parameters associated with a header. Header profiles can only modify non-vital header information. To display the vital header information, use the show services sbc test sbe sip essential-method, show services sbc test sbe sip essential-headers, or show services sbc test sbe sip essential-parameters commands.
Parameter-profiles can be specified to match the following parts of the message.
•
Request URI
•
To
•
From
•
Contact
To modify parameters in the Request-line, associate a parameter-profile with a method-profile. To modify parameters in Contact, To, or From headers, associate a parameter-profile in the header-profile.
Header Profile Configuration Information
Consideration needs to be given as to the effect of an action or set of actions in conjunction with the default profile behavior (whitelist/blacklist).
An empty blacklist will effectively try to pass on any non-vital header.
An empty whitelist will effectively drop all non-vital headers.
The behavior becomes more complex when conditions are associated with headers.
It is important to consider what actions are defined on the in-bound side. If an empty whitelist header-profile is associated with the in-bound side, then no non-vital headers will be visible at all to the outbound side, and therefore, actions applied to the out-bound sides profile may appear not to work. You may need to consider adding actions to `pass' a specific header on the in-bound side by adding the header to a whitelist (with action as-profile or pass) or adding the header with action `pass' in a blacklist.
For example, if a header-profile is defined as a whitelist (default behavior), and a header action to modify the header-value is inserted with a condition, then the action will be processed if the condition is TRUE and the header modified, but will be ignored if the condition is FALSE.
Because the header is inserted into the whitelist it might well be assumed that it would be passed on unmodified if the condition is FALSE, however, if the condition is FALSE, the action (entry) is ignored, and therefore it is as if the header is not present in the whitelist so the header will not be passed on.
To overcome this, a second entry with action `pass' can be entered; thus if the headers condition is TRUE, the content with be modified, but if the condition is false, it will be ignored and continue to process any other entries. The second entry has an action `pass' and will cause the header to be passed on.
Configuring Header Profiles
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
sip header-profile profile-name
5.
blacklist
6.
description text
7.
header name
8.
header name
9.
entry number
10.
action {add-first-header | add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip}
11.
parameter-profile name
12.
exit
13.
show services sbc sbc-name sbe sip header-profile profile name
14.
show services sbc sbc-name sbe sip header-profiles
15.
show services sbc sbc name sbe sip essential-headers
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
host1/Admin# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the submode for configuring the header profile.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
sip header-profile profile-name
Example:
host1/Admin(config-sbc-sbe)# sip header-profile
profile1
|
Configures a header profile.
If you enter the profile-name default, the default profile is configured. This profile is used for all adjacencies which do not have a specific profile configured.
|
Step 5
|
blacklist
Example:
host1/Admin(config-sbc-sbe-sip-hdr)# blacklist
|
Configures a profile to be a blacklist.
The no form of this command configures the profile to be a whitelist.
Note By default, profiles are whitelists.
|
Step 6
|
description text
Example:
host1/Admin(config-sbc-sbe-sip-hdr)#
description blacklist profile
|
Adds a description for the specified profile.
The no form of this command removes the description.
This description is displayed when the show command is used for this profile and is displayed for each profile when displaying a summary of all profiles.
|
Step 7
|
header name
Example:
host1/Admin(config-sbc-sbe-sip-hdr)# header
test1
|
Configures the profile to contain the header test1.
|
Step 8
|
header name
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele)# header
test1
|
Adds a header to this profile.
|
Step 9
|
entry number
Example:
host1/Admin(config-sbc-sbe-sip-prm-ele)# entry
|
Specifies which action entry to work on.
|
Step 10
|
action {add-first-header | add-header |
as-profile | drop-msg | pass | replace-name |
replace-value | strip}
Example:
host1/Admin(config-sbc-sbe-sip-prm-ele)# action
pass
|
Specifies the type of action.
|
Step 11
|
parameter-profile name
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele)#
parameter-profile test1
|
Adds a parameter-profile associated to a header.
|
Step 12
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-hdr-prf)# exit
|
Exits the header profile mode to the sbe mode.
|
Step 13
|
show services sbc sbc-name sbe sip
header-profile name
Example:
host1/Admin(config-sbc-sbe)# show services sbc
mysbc sbe sip header-profile profile1
|
Displays details for the header profile with the designated name.
Use name default to view the default profile.
|
Step 14
|
show services sbc sbc-name sbe sip
header-profiles
Example:
host1/Admin(config-sbc-sbe)# show services sbc
mysbc sbe sip header-profiles
|
Displays a list of all configured header profiles.
|
Step 15
|
show services sbc sbc-name sbe sip
essential-headers
Example:
host1/Admin(config-sbc-sbe)# show services sbc
mysbc sbe sip essential-headers
|
Displays a list of the essential headers listed in Table 16-3.
|
Applying Header Profiles
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
adjacency sip adjacency-name
5.
header-profile inbound profile-name
6.
exit
7.
show services sbc service-name sbe sip header-profile name
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
host1/Admin# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the mode of an SBC service.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
adjacency sip adjacency-name
Example:
host1/Admin(config-sbc-sbe)# adjacency sip
sipGW
|
Enters the mode of an SBE SIP adjacency.
Use the adjacency-name argument to define the name of the service.
|
Step 5
|
header-profile inbound profile-name
Example:
host1/Admin(config-sbc-sbe-adj-sip)#
header-profile inbound profile1
|
Sets the inbound header profile.
|
Step 6
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-hdr-prf)# exit
|
Exits the header profile mode to the sbe mode.
|
Step 7
|
show services sbc sbc-name sbe sip
header-profile name
Example:
host1/Admin# show services sbc sbc-name sbe sip
header-profile name
|
Displays the header profile information.
|
P-KT-UE-IP Header Support
Release 3.1.0 provides support for P-KT-UE-IP headers.These headers are a type of P-headers used for a variety of purposes within the networks, including charging and information about the networks a call traverses.
When the SBC receives the SIP message with the P-KT-UE-IP header, the SBC replaces the P-KT-UE-IP header value with the home gateway public IP address (which is the source address from IP layer header).
To do this, the SBC will conditionally add the P-KT-UE-IP header that contains the IPv4 address of the UE that originated the request.
P-KT-UE-IP Header Information
The following information applies:
•
This feature is configured through the inbound header profile that receives the requests to which the header is to be added.
•
When configured, the header is added to INVITE requests and to out-of-dialog requests.
•
The header value contains an IPv4 address formatted as a dotted decimal text string, such as "123.123.123.123". If the request was received over a VPN, the VPN ID is appended after the IP address, such as "123.123.123.123 VPN-ID 0x01020304".
•
The IPv4 address is the source IP address from the SIP message that was received by the SBC. This may not be the same as the IP address in the Via header. For example, the SIP message may have been through a gateway between the UE device and SBC.
Configuring P-KT-UE-IP Header Support
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
sip header-profile profile-name
5.
header name
6.
entry number
7.
exit
8.
entry number
9.
adjacency sip adjacency-name
10.
header-profile inbound profile-name
11.
sip header-profile profile-name
12.
header name
13.
action {add-first-header | add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip}
14.
adjacency sip adjacency-name
15.
header-profile inbound profile-name
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
host1/Admin# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the mode of an SBC service.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
sip header-profile profile-name
Example:
host1/Admin(config-sbc-sbe)# sip header-profile
profile1
|
Configures a header profile.
If you enter the profile-name default, the default profile is configured. This profile is used for all adjacencies which do not have a specific profile configured.
|
Step 5
|
header name
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele)# header
test1
|
Adds a header to this profile.
|
Step 6
|
entry number
Example:
host1/Admin(config-sbc-sbe-sip-prm-ele)# entry
|
Specifies which action entry to work on.
|
Step 7
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-hdr-prf)# exit
|
Exits the header profile mode to the sbe mode.
|
Step 8
|
entry number
Example:
host1/Admin(config-sbc-sbe-sip-prm-ele)# entry
|
Specifies which action entry to work on.
|
Step 9
|
adjacency sip adjacency-name
Example:
host1/Admin(config-sbc-sbe)# adjacency sip
sipGW
|
Enters the mode of an SBE SIP adjacency.
Use the adjacency-name argument to define the name of the service.
|
Step 10
|
header-profile inbound profile-name
Example:
host1/Admin(config-sbc-sbe-adj-sip)#
header-profile inbound profile1
|
Sets the inbound header profile.
|
Step 11
|
sip header-profile profile-name
Example:
host1/Admin(config-sbc-sbe)# sip header-profile
profile1
|
Configures a header profile.
If you enter the profile-name default, the default profile is configured. This profile is used for all adjacencies which do not have a specific profile configured.
|
Step 12
|
header name
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele)# header
test1
|
Adds a header to this profile.
|
Step 13
|
action {add-first-header | add-header |
as-profile | drop-msg | pass | replace-name |
replace-value | strip}
Example:
host1/Admin(config-sbc-sbe-sip-prm-ele)# action
pass
|
Specifies the type of action.
|
Step 14
|
adjacency sip adjacency-name
Example:
host1/Admin(config-sbc-sbe)# adjacency sip
sipGW
|
Enters the mode of an SBE SIP adjacency.
Use the adjacency-name argument to define the name of the service.
|
Step 15
|
header-profile outbound profile-name
Example:
host1/Admin(config-sbc-sbe-adj-sip)#
header-profile outbound profile1
|
Sets the outbound header profile.
|
Provisional Response Filtering
Provisional response filtering makes it possible to block 183 responses sent by endpoints. When configuring provisional response filtering, keep the following in mind:
•
Provisional responses may not be blocked where the sender has required reliable provisional responses (SIP 100rel).
•
Dropping responses where 100_rel is required is not recommended. It may prevent call setup since RFC3262 states subsequent responses should not be sent.
Note
A call attempted with the ''Required: 100Rel'' header in the INVITE will fail when the adjacency is configured with a header profile to drop 183 messages.
This section contains the following topics:
•
Configuring Provisional Response Filtering
•
Applying Provisional Response Filtering
Provisional Response Filtering Information
Provisional response filtering is achieved by the use of the action drop-msg command. The action must be associated with the wildcard header action *. A condition should be added to match on the specific response code that must be dropped.
Note
The header action * can only be used one time in a profile.
Configuring Provisional Response Filtering
1.
configure
2.
sbc service-name
3.
sbe
4.
sip header-profile profile-name
5.
header *
6.
action drop-msg
7.
condition status-code
8.
exit
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
host1/Admin# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the submode for configuring the header profile.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
sip header-profile profile-name
Example:
host1/Admin(config-sbc-sbe)# sip header-profile
profile1
|
Configures a header profile.
If you enter the profile-name default, the default profile is configured. This profile is used for all adjacencies which do not have a specific profile configured.
|
Step 5
|
header *
Example:
host1/Admin(config-sbc-sbe-sip-hdr)# header *
|
Configures a profile to be a blacklist.
The no form of this command configures the profile to be a whitelist.
Note By default, profiles are whitelists.
Note In order to filter provisional responses always use the asterisk (*) as the header name with the header command as shown in the command example.
|
Step 6
|
action drop-msg
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele)# action
drop-msg
|
Configures the action to take on an element type in a header.
|
Step 7
|
condition status-code
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele-act)#
condition status-code eq 183
|
Specifies a condition to match before taking an action to a SIP message profile.
|
Step 8
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele-act)#
exit
|
Adds a header to this profile.
|
Applying Provisional Response Filtering
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
adjacency sip adjacency-name
5.
header-profile inbound profile-name
6.
exit
7.
show services sbc service-name sbe sip header-profile name
Parameter Profiles
Parameter profiles allow you to specify specific URI parameter names and allow the removal, replacement, or the addition of specific non-vital URI parameters within certain headers.
The header-profile allows potential conditional matching against SIP URI parameters forming part of a limited set of headers. It only allows complete replacement of the header and or content.
The parameter-profile will allow actions to be performed only on the SIP URI parameters and not header parameters
This section contains the following topics:
•
Restrictions for Configuring Parameter Profiles
•
Information About Parameter Profiles
•
Configuring Parameter Profiles
•
Applying a Parameter Profile to a Header Profile
Restrictions for Configuring Parameter Profiles
Review the following restrictions for parameter profiles:
•
For release 3.1.00, it is only permitted to act on parameters associated with SIP URIs and not header parameters.
•
To prevent call processing failures, actions cannot be performed against vital (essential) parameters.
•
Parameter profiles work only on the outbound side.
•
Some existing adjacency settings may impact the way parameter actions are affected.For example, consider the adjacency setting vpssAdjRewriteToHdr set by as follows:
This setting can cause the To: and or From: headers to be passed from inbound to outbound side.
The default setting on an adjacency, however, is FALSE (no "passthrough [to/From]" appears in the show run against the adjacency)' which means that the To: and From: headers are effectively always re-written on the outbound side by default. The impact of this is that parameter-profiles actions applied to the inbound sides To: and/or From: headers will be lost on the outbound side unless `passthrough [to/from]' is set in the configuration. Thus the action add-not-present can look like it always adds a parameter on the outbound side, even when the parameter is present on the in-bound side.
•
If a parameter-profile adds a parameter to the request-line, and the To: header does not have setting `passthrough to' set against the adjacency, then the re-writing of the To: header which is typically based on the Request-Line, will cause the parameter to also appear in the To: header.
•
The content of the Request-line may affect the behavior of parameter-profiles attached to method-profiles. If the request-line that arrives on the in-bound side of the call directly addresses the address of the SBC, then effectively any call that originates on the out-bound side requires a new Request-Line to be generated. This means that parameters arriving on the in-bound side are effectively lost and can cause the action add-not-present to look like it always adds a parameter.
If however, the Request-Line address the final destination, then the Request-Line is effectively passed across to the outbound side and modified as needed. Parameters in this case are visible on the out-bound side.
Information About Parameter Profiles
Parameter-profiles form a set of actions that can be performed against any one header or request-line.
Parameter-profiles can only be specified against the following parts of the message:
•
Request URI
•
To
•
From
•
Contact
To modify parameters in Contact, To, or From headers, associate a parameter-profile in the header-profile.
To modify parameters in the request-line, associate a parameter-profile with a method-profile.
Note
Parameter-profiles can be associated with essential methods even though method-profiles are not allowed to blacklist/whitelist essential methods.
Configuring Parameter Profiles
Perform this task to configure parameter profiles.
SUMMARY STEPS
1.
config
2.
sbc service-name
3.
sbe
4.
sip parameter-profile {profile-name}
5.
parameter {parameter name}
6.
action {add-not-present| add-or-replace | strip}
7.
exit
8.
show services sbc sbc-name sbe sip-parameter-profile {profile name}
9.
show services sbc sbc-name sbe sip parameter-profiles
10.
show services sbc sbc name sbe sip essential-parameters
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
host1/Admin# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the mode of an SBC service.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
sip parameter-profile {profile-name}
Example:
host1/Admin(config-sbc-sbe)# sip
parameter-profile parmprof1
|
Configures a parameter profile and enters SBE SIP header configuration mode.
|
Step 5
|
parameter {parameter name}
Example:
host1/Admin(config-sbc-sbe-sip-prm)# parameter
user
|
Adds a parameter with a specified name to the parameter profile.
|
Step 6
|
action {add-not-present| add-or-replace |
strip}
Example:
host1/Admin(config-sbc-sbe-sip-prm-ele)# action
add-not-present value phone
|
Specifies the action to be performed on the parameter.
|
Step 7
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-hdr-prf)# exit
|
Exits the header profile mode to the sbe mode.
|
Step 8
|
show services sbc sbc-name sbe
sip-parameter-profile {profile name}
Example:
host1/Admin# show services sbc mysbc sbe sip
parameter-profile profile1
|
Displays details for the parameter profile with the designated name.
Use the name default to view the default profile.
|
Step 9
|
show services sbc sbc-name sbe sip
parameter-profiles
Example:
host1/Admin# show services sbc mysbc sbe sip
parameter-profiles
|
Displays a list of all configured parameter profiles.
|
Step 10
|
show services sbc sbc name sbe sip
essential-headers
Example:
host1/Admin# show services sbc mysbc sbe sip
essential-headers
|
Displays a list of the essential headers listed in Table 16-3.
|
Applying a Parameter Profile to a Header Profile
Perform this task to apply parameter profiles to a header profile.
SUMMARY STEPS
1.
config
2.
sbc service-name
3.
sbe
4.
sip header-profile header-profile-name
5.
header header-name
6.
parameter-profile parameter-profile-name
7.
exit
8.
exit
9.
show services sbc sbc-name sbe sip header-profile {profile-name}
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
config
Example:
host1/Admin# config
|
Enters global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the configuration mode of an SBC service.
• Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the configuration mode of the signaling border element (SBE) function of the SBC.
|
Step 4
|
sip header-profile header-profile-name
Example:
host1/Admin(config-sbc-sbe-sip)# header-profile
profile1
|
Enters the configuration mode for a header profile.
|
Step 5
|
header header-name
Example:
host1/Admin(config-sbc-sbe-sip-hdr)# header
P-Asserted-Identity
|
Enters the header subcommand mode, where you specify the header type to match.
|
Step 6
|
parameter-profile parameter-profile-name
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele)#
parameter-profile parmprof1
|
Configures the parameter profile to apply when the header type is matched.
|
Step 7
|
exit
|
Returns to the configuration mode for a header profile.
|
Step 8
|
exit
|
Returns to the configuration mode for an SBC service.
|
Associating with an Adjacency
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
adjacency sip adjacency-name
5.
header-profile inbound profile-name
6.
exit
7.
show services sbc service-name sbe sip header-profile name
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
host1/Admin# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the mode of an SBC service.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
adjacency sip adjacency-name
Example:
host1/Admin(config-sbc-sbe)# adjacency sip
sipGW
|
Enters the mode of an SBE SIP adjacency.
Use the adjacency-name argument to define the name of the service.
|
Step 5
|
header-profile inbound profile-name
Example:
host1/Admin(config-sbc-sbe-adj-sip)#
header-profile inbound profile1
|
Sets profile1 to be used for inbound signaling on adjacency sipGW.
|
Step 6
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-hdr-prf)# exit
|
Exits the header profile mode to the sbe mode.
|
Step 7
|
show services sbc sbc-name sbe sip
header-profile name
Example:
host1/Admin# show services sbc sbc-name sbe sip
header-profile name
|
Displays the header profile information.
|
SIP Header Public/Private IP Address Information Insertion
Softswitches require public IP address information in SIP messages to properly charge the related parties. You can use this feature to insert the public IP address for user equipment (UE) that is behind the Network Address Translation (NAT) devices into the SIP contact header as a "firewall" parameter.
SIP Header Public/Private IP Address Information Insertion
Perform this task to configure SIP Header Public/Private IP Address Information Insertion.
SUMMARY STEPS
1.
config
2.
sbc service-name
3.
sbe
4.
sip parameter-profile profile-name
5.
parameter {parameter name}
6.
action {add-not-present [value] {private-ip-address | public-ip-address | access-user-data}| add-or-replace [value] {private-ip-address | public-ip-address | access-user-data}| strip}
7.
sip parameter-profile profile-name
8.
exit
9.
parameter {parameter name}
10.
action {add-not-present [value] {private-ip-address | public-ip-address | access-user-data}| add-or-replace [value] {private-ip-address | public-ip-address | access-user-data}| strip}
11.
sip header-profile profile-name
12.
exit
13.
header header-name
14.
entry entry_num {action [add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip] | parameter-profile name}
15.
parameter-profile name
16.
sip header-profile profile-name
17.
header header-name
18.
entry entry_num {action [add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip] | parameter-profile name}
19.
parameter-profile name
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
config
Example:
host1/Admin# config
|
Enters global configuration mode.
|
Step 2
|
sbc service-name
Example:
host1/Admin(config)# sbc mysbc
|
Enters the configuration mode of an SBC service.
• Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
host1/Admin(config-sbc)# sbe
|
Enters the configuration mode of the signaling border element (SBE) function of the SBC.
|
Step 4
|
sip parameter-profile {profile-name}
Example:
host1/Admin(config-sbc-sbe)# sip
parameter-profile proxy-param
|
Configures a parameter profile and enters SBE SIP header configuration mode.
|
Step 5
|
parameter {parameter name}
Example:
host1/Admin(config-sbc-sbe-sip-prm)# parameter
firewall
|
Adds a parameter with a specified name to the parameter profile.
|
Step 6
|
action {add-not-present [value]
{private-ip-address | public-ip-address |
access-user-data}| add-or-replace [value]
{private-ip-address | public-ip-address |
access-user-data}| strip}
Example:
host1/Admin(config-sbc-sbe-sip-prm-ele)#
action-strip
|
Configures the action to take on a parameter.
|
Step 7
|
sip parameter-profile {profile-name}
Example:
host1/Admin(config-sbc-sbe)# sip
parameter-profile access-param
|
Configures a parameter profile and enters SBE SIP header configuration mode.
|
Step 8
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-mth-prf)# exit
|
Exits the .
|
Step 9
|
parameter {parameter name}
Example:
host1/Admin(config-sbc-sbe-sip-prm)# parameter
firewall
|
Adds a parameter with a specified name to the parameter profile.
|
Step 10
|
action {add-not-present [value]
{private-ip-address | public-ip-address |
access-user-data}| add-or-replace [value]
{private-ip-address | public-ip-address |
access-user-data}| strip}
Example:
host1/Admin(config-sbc-sbe-sip-prm-ele)# action
add-or-replace value private-ip-address
|
Configures the action to take on a parameter.
|
Step 11
|
sip header-profile profile-name action
as-profile
Example:
host1/Admin(config-sbc-sbe)# sip header-profile
proxy
|
Configures a header profile.
If you enter the profile-name default, the default profile is configured. This profile is used for all adjacencies which do not have a specific profile configured.
|
Step 12
|
exit
Example:
host1/Admin(config-sbc-sbe-sip-mth-prf)# exit
|
Exits the .
|
Step 13
|
header name
Example:
host1/Admin(config-sbc-sbe-sip-hdr)# header
contact
|
Configures the profile to contain the header test1.
|
Step 14
|
entry entry_num {action [add-header |
as-profile | drop-msg | pass | replace-name |
replace-value | strip] | parameter-profile
name}
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele)# entry
1 action as-profile
|
Configures an entry in a profile.
|
Step 15
|
parameter-profile parameter-profile-name
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele)#
parameter-profile proxy-param
|
Configures the parameter profile to apply when the header type is matched.
|
Step 16
|
sip header-profile profile-name
Example:
host1/Admin(config-sbc-sbe)# sip header-profile
access
|
Configures a header profile.
If you enter the profile-name default, the default profile is configured. This profile is used for all adjacencies which do not have a specific profile configured.
|
Step 17
|
header name
Example:
host1/Admin(config-sbc-sbe-sip-hdr)# header
contact
|
Configures the profile to contain the header test1.
|
Step 18
|
entry entry_num {action [add-header |
as-profile | drop-msg | pass | replace-name |
replace-value | strip] | parameter-profile
name}
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele)# entry
1 action as-profile
|
Configures an entry in a profile.
|
Step 19
|
parameter-profile parameter-profile-name
Example:
host1/Admin(config-sbc-sbe-sip-hdr-ele)#
parameter-profile access-param
|
Configures the parameter profile to apply when the header type is matched.
|
Configuration Examples for SIP Profiles
This section contains the following:
•
Method-Profile Examples
•
Applying Method-Profiles Example
•
Associating Predefined Header Profiles Example
•
Associating Predefined Parameter Profiles Example
•
Associating Response Code Mapping Example
•
Configuring Header Profiles Example
•
Applying Header Profiles Example
•
Header Manipulation Examples
•
Response Filtering Example
•
Parameter Profile Examples
•
SIP Header Public/Private IP Address Information Insertion
Method-Profile Examples
The following example shows the commands and output generated when you configure method-profiles.
Router/Admi(config)# sbc umsbc-node3
Router/Admi(config-sbc)# sbe
Router/Admi(config-sbc-sbe)# sip method-profile test1
Router/Admi(config-sbc-sbe-sip-mth)# method abcd
Router/Admi(config-sbc-sbe-sip-mth)# blacklist
Router/Admi:Nov 13 17:43:11.124 : config[65761]: %MGBL-CONFIG-6-DB_COMMIT : Configuration
committed by user 'yunsun'. Use 'show configuration commit changes 1000000296' to view the
changes.
Router/Admi(config-sbc-sbe-sip-mth)# end
Router/Admi:Nov 13 17:43:14.866 : config[65761]: %MGBL-SYS-5-CONFIG_I : Configured from
console by yunsun
This example shows the output for all method-profiles.
Router/Admin# show services sbc test sbe sip method-profiles
Method profiles for SBC service "test"
====================================
preset-ibcf-ext-in-mth No
preset-ibcf-int-in-mth No
preset-ibcf-utr-in-mth No
preset-ibcf-int-in-mth No
preset-ibcf-utr-in-mth No
preset-ibcf-ext-out-mth No
preset-ibcf-int-out-mth No
preset-ibcf-utr-out-mth No
This example shows the output for the method-profiles test.
Router/Admin# show services sbc test sbe sip method-profile test
Not in use with any adjacencies
Applying Method-Profiles Example
The following example shows the commands and output generated when you are applying a method-profile to an SBC.
Router/Admi(config)# sbc umsbc-node3
Router/Admi(config-sbc)# sbe
Router/Admi(config-sbc-sbe)# adjacency sip sipp-10
Router/Admi(config-sbc-sbe-adj-sip)# method-profile inbound test1
Router/Admi:Nov 13 17:44:28.609 : config[65761]: %MGBL-CONFIG-6-DB_COMMIT : Configuration
committed by user 'yunsun'. Use 'show configuration commit changes 1000000297' to view the
changes.
Router/Admi(config-sbc-sbe-adj-sip)# end
Router/Admi:Nov 13 17:44:31.637 : config[65761]: %MGBL-SYS-5-CONFIG_I : Configured from
console by yunsun
Router/Admi#sh services sbc umsbc-node3 sbe sip method-profiles
Method profiles for SBC service "umsbc-node3"
====================================
Router/Admi# show services sbc umsbc-node3 sbe sip method-profile test1
Associating Predefined Header Profiles Example
This example shows how to ensure that the parameter myparm=myvalue is added to the request-line of an INVITE:
First, configure a parameter-profile for myparm:
Router/Admi(config)# sbc test
Router/Admi(config-sbc)# sbe
Router/Admi(config-sbc-sbe)# sip parameter-profile parmprof1
Router/Admi(config-sbc-sbe-sip-prm)# parameter myparm
Router/Admi(config-sbc-sbe-sip-prm-ele)# action add-not-present value myvalue
Then configure and associate with a method-profile:
Router/Admi(config)# sbc test
Router/Admi(config-sbc)# sbe
Router/Admi(config-sbc-sbe)# sip method-profile mthdprof1
Router/Admi(config-sbc-sbe-sip-mth)# method INVITE
Router/Admi(config-sbc-sbe-sip-prm-ele)# parameter-profile parmprof1
Finally, associate with an adjacency
Router/Admi(config)# sbc test
Router/Admi(config-sbc)# sbe
Router/Admi(config-sbc-sbe)# adjacency sip adj1
Router/Admi(config-sbc-sbe-adj-sip)# method-profile outbound mthdprof1
At the inbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
At the outbound side:
INVITE sip:1234567@cisco.com;user=phone;myparm=myvalue SIP/2.0
Associating Predefined Parameter Profiles Example
The following example shows how to ensure P-Asserted-Identity is always passed in an INVITE if it contains user=phone.
First, configure a header profile which references a P-Asserted-Identity header:
Router/Admi(config)# sbc test
Router/Admi(config-sbc)# sbe
Router/Admi(config-sbc-sbe)# sip header-profile hdrprof1
Router/Admi(config-sbc-sbe-sip-hdr)# header P-Asserted-Identity
Router/Admi(config-sbc-sbe-sip-hdr-ele)# action pass
Router/Admi(config-sbc-sbe-sip-hdr-ele-act)# condition header-value contains user=phone
Then create and associate the header profile with a method-profile:
Router/Admi(config-sbc-sbe)# sip method-profile mthdprof1
Router/Admi(config-sbc-sbe-sip-mth)# method INVITE
Router/Admi(config-sbc-sbe-sip-prm-ele)# parameter-profile hdrprof1
Finally, associate with an adjacency:
Router/Admi(config)# sbc test
Router/Admi(config-sbc)# sbe
Router/Admi(config-sbc-sbe)# adjacency sip adj1
Router/Admi(config-sbc-sbe-adj-sip)# method-profile outbound mthdprof1
At the inbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
P-Asserted-Identity: "rob" <sip:1234567@cisco.com;user=phone>
At the outbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
P-Asserted-Identity: "rob" <sip:1234567@cisco.com;user=phone>
Associating Response Code Mapping Example
The following example shows how to create a status-code map so that all 5XX responses to an INVITE are mapped to 500.
Router/Admi(config)# sbc test
Router/Admi(config-sbc)# sbe
Router/Admi(config-sbc-sbe)# sip method-profile mthdprof1
Router/Admi(config-sbc-sbe-sip-mth)# method INVITE
Router/Admi(config-sbc-sbe-sip-mth-ele)# map-status-code
Router/Admi(config-sbc-sbe-sip-mth-ele-map)# range 5XX value 500
Finally, associate with an adjacency:
Router/Admi(config)# sbc test
Router/Admi(config-sbc)# sbe
Router/Admi(config-sbc-sbe)# adjacency sip adj1
Router/Admi(config-sbc-sbe-adj-sip)# method-profile outbound mthdprof
At the inbound side:
SIP/2.0 501 Not Implemented
At the outbound side:
SIP/2.0 500 Internal Server Error
Configuring Header Profiles Example
The following example shows the commands and output generated when you configure the header profiles.
host1/Admin(config)# sbc umsbc-node3 sbe
host1/Admin(config-sbc-sbe)# sip header-profile test1
host1/Admin(config-sbc-sbe-sip-hdr)# blacklist
host1/Admin(config-sbc-sbe-sip-hdr)# header abcd
host1/Admin# show serv sbc sbc4 sbe sip header-profile EXAMPLE
condition header-value contains user=phone
parameter-profile adduser
condition header-value contains user=phone
action replace-value value Cisco-Systems
condition header-value contains MCI
Adjacency: callgen100sip (in, out)
Applying Header Profiles Example
The following example shows the commands and output generated when you are applying a header profile to an SBC.
host1/Admin(config)# sbc umsbc-node3 sbe
host1/Admin(config-sbc-sbe)# adjacency sip sipp-10
host1/Admin(config-sbc-sbe-adj-sip)# header-profile inbound test1
host1/Admin(config-sbc-sbe-adj-sip)# header-profile outbound test1
host1/Admin# show services sbc umsbc-node3 sbe sip header-profile test1
Adjacency: sipp-10 (in, out)
header-profile inbound test1
header-profile outbound test1
signaling-address ipv4 88.88.109.8
remote-address ipv4 10.10.105.222 255.255.255.255
security trusted-encrypted
signaling-peer 10.10.105.222
Header Manipulation Examples
The following example shows how to remove the header in any message if the header name test contains user=phone.
First, access the header:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr)# header P-Asserted-Identity
host1/Admin(config-sbc-sbe-hdr-ele)# action strip
host1/Admin(config-sbc-sbe-hdr-ele-act)# condition header-value contains user=phone
Next, associate the header with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
P-Asserted-Identity: "rob" <sip:1234567@cisco.com;user=phone>
At the outbound side:
No P-Asserted-Identity header present
Add this condition in addition to a previous existing condition:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr)# header P-Asserted-Identity
host1/Admin(config-sbc-sbe-hdr-ele)# entry 2
host1/Admin(config-sbc-sbe-hdr-ele)# action strip
host1/Admin(config-sbc-sbe-hdr-ele-act)# condition header-value contains user=phone
Finally, associate the header profile with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
P-Asserted-Identity: "rob" <sip:1234567@cisco.com;user=phone>
At the outbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
<No P-Asserted-Identity header present>
The next example shows how to remove a header based on a condition in another header in the message. First, strip the P-Asserted-Identity header, but only if Call-Info: contains "telephone-event."
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr)# header P-Asserted-Identity
host1/Admin(config-sbc-sbe-hdr-ele)# action strip
host1/Admin(config-sbc-sbe-hdr-ele-act)# condition header-name Call-Info header-value
contains telephone-event
Then associate the headerprofile with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
P-Asserted-Identity: "rob" <sip:1234567@cisco.com;user=phone>
Call-Info: <sip:8985@10.131.132.6>;method="NOTIFY;Event=telephone-event;Duration=1000"
The result at the outbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
<No P-Asserted-Identity header present>
The next example removes an Organisation header from all Responses:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr)# header cisco.com
host1/Admin(config-sbc-sbe-hdr-ele)# action strip
host1/Admin(config-sbc-sbe-hdr-ele-act)# condition status-code eq *
Associate the header-profile with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
...
Allow: INVITE,ACK,PRACK,SUBSCRIBE,BYE,CANCEL,NOTIFY,INFO,REFER,UPDATE
At the outbound side:
<No allow header present>
This example transforms one header into another header (Diversion into Hist-Info).
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr)# header Diversion
host1/Admin(config-sbc-sbe-hdr-ele)# action replace-name value Hist-Info
Associate the header-profile with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
Diversion: <sip:1234567@cisco.com>;reason=unconditional;counter=1;privacy=off
At hte outbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
Hist-Info: <sip:1234567@cisco.com>;reason=unconditional;counter=1;privacy=off
This example ensures all outgoing messages contain a specific header (Organization: Cisco.com).
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr)# header Organization
host1/Admin(config-sbc-sbe-hdr-ele)# action add-first-header value cisco.com
Associate the header-profile with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
<no Organization header present>
At the outbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
This example blacklists a header (all instances are removed for any method/response).
Note
This can only be performed against a header-profile type of blacklist
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr-ele)# blacklist
host1/Admin(config-sbc-sbe-sip-hdr)# header Organization
Or:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe-hdr)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr-ele)# blacklist
host1/Admin(config-sbc-sbe-sip-hdr)# header Organization
host1/Admin(config-sbc-sbe-sip-hdr)# action as-profile
Associate the header-profile with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
At the outbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
<no Organization: header present>
This example whilelists a header (pass in all methods/responses).r
Note
This can only be specified against a whitelist type of profile
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr)# header Organization
Or:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr)# header Organization
host1/Admin(config-sbc-sbe-hdr-ele)# action as-profile
Associate the header-profile with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
A the inbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
At the outbound side:
INVITE sip:1234567@cisco,com;user=phone SIP/2.0
This example passes a header (Date) conditionally in a 200 response.
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr)# header Date
host1/Admin(config-sbc-sbe-hdr-ele)# action pass
host1/Admin(config-sbc-sbe-hdr-ele-act)# condition status-code eq 200
Associate with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
Ensure no other responses contain a Date: header
Date: Mon, 01 Jan 2008 GMT
At the outbound side:-
Date: Mon, 01 Jan 2008 GMT
Also try all responses containing a Date: header and ensure the 200 OK only contains one
:
This example strips all 'Organization' headers in an INVITE. To do this, a header-profile is created and then associated it with a method-profile.
Note
Header-profiles can be associated with vital (essential) methods.
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headerprof1
host1/Admin(config-sbc-sbe-hdr)# blacklist
host1/Admin(config-sbc-sbe-hdr-ele)# header Organization
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe) sip method-profile methodprof1
host1/Admin(config-sbc-sbe-sip-mth) blacklist
host1/Admin(config-sbc-sbe-sip-mth) method INVITE
host1/Admin(config-sbc-sbe-sip-mth-ele) header-profile headerprof1
Associate with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# method-profile outbound methodprof1
At the inbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
At the outbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
<no Organization: header present>
This example applies a parameter profile to add user=phone into the request-line of an INVITE.
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# sip parameter-profile test
host1/Admin(config-sbc-sbe-sip-prm)# parameter user
host1/Admin(config-sbc-sbe-sip-prm-ele)# action add-not-present value phone
Associate with a method-profile:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe) sip method-profile test
host1/Admin(config-sbc-sbe-sip-mth) method INVITE
host1/Admin(config-sbc-sbe-sip-mth-ele) parameter-profile test
Associate with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# method-profile inbound headprof1
At the inbound side:
INVITE sip:1234567@cisco.com SIP/2.0
At the utbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
Response Filtering Example
The following example drops SIP 183 provisional responses from a header profile based on matching the header * associated with inbound and outbound adjacencies.
First, create a header profile headprof1 to match on header * and drop the message:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-hdr)# header *
host1/Admin(config-sbc-sbe-hdr-ele)# action drop-msg
host1/Admin(config-sbc-sbehdr-ele-act)# condiiton status-code eq 183
Asssociate the profile headprof1 to the inbound side of an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# adjacency sip adjacencyA
host1/Admin(config-sbc-sbe-adj-sip)# header-profile inbound headerprof1
Associate the profile headprof1 to the inbound and outbound sides of another adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# adjacency sip adjacencyB
host1/Admin(config-sbc-sbe-adj-sip)# header-profile inbound headerprof1
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# adjacency sip adjacencyB
host1/Admin(config-sbc-sbe-adj-sip)# header-profile outbound headerprof1
Parameter Profile Examples
This example shows how to add a user=phone parameter into the To: header if one has not already been specified in a header.
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# sip parameter-profile parmprof1
host1/Admin(config-sbc-sbe-sip-prm)# parameter user
host1/Admin(config-sbc-sbe-sip-prm-ele)# action add-not-present value phone
Now add to a header profile:
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-sip-hdr)# header To
host1/Admin(config-sbc-sbe-sip-hdr-ele)# parameter-profile parmprof1
Now associate with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com>;tag=1234;
At the outbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com;user=phone>;tag=1234
This example removes the 'user' parameter ('user=phone','user=fax' ...) from the To: header.
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip parameter-profile parmprof1
host1/Admin(config-sbc-sbe-sip-prm)# parameter user
host1/Admin(config-sbc-sbe-sip-prm-ele)# action strip
Add to a header profile:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-sip-hdr)# header To
host1/Admin(config-sbc-sbe-sip-hdr-ele)# parameter-profile parmprof1
Finally, associate with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com;user=phone;tag=1234;
At the outbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com>;tag=1234
This example shows how to replace 'user=phone' parameter with user=fax or to add user=fax if a user parameter is not present in the header.
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# sip parameter-profile parmprof1
host1/Admin(config-sbc-sbe-sip-prm)# parameter user
host1/Admin(config-sbc-sbe-sip-prm-ele)# action add-or-replace value fax
Add to a header profile:
host1/Admin(config)# sbc test
host1/Admin(config-sbc)# sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-sip-hdr)# header To
host1/Admin(config-sbc-sbe-sip-hdr-ele)# parameter-profile parmprof1
Finally, associate with an adjacency:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com;user=phone;tag=1234;
At the outbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com;user=fax>;tag=1234
Or:
At the inbound side:-
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com;tag=1234;
At the outbound side:-
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com;user=fax>;tag=1234
The next example adds 'user=phone' parameter if one in not already present in the header.
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip parameter-profile parmprof1
host1/Admin(config-sbc-sbe-sip-prm)# parameter user
host1/Admin(config-sbc-sbe-sip-prm-ele)# action add-not-present value phone
Add parameter-profile to a header profile:
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip header-profile headprof1
host1/Admin(config-sbc-sbe-sip-hdr)# header To
host1/Admin(config-sbc-sbe-sip-hdr-ele)# parameter-profile parmprof1
Finally, associate with an adjacency
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-sip)# header-profile outbound headprof1
At the inbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com;user=fax;tag=1234;
At the outbound side:
No parameter added as a user parameter already exists
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com>;tag=1234
Or:-
At the inbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com;tag=1234;
At the outbound side:
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
To: "rob" <sip:1234567@cisco.com;user=phone>;tag=1234
P-KT-UE-IP Header Support
The following example shows how to remove any existing P-KT-UE-IP headers from all received messages and then replace them with a single P-KT-UE-IP header for INVITE and OOD requests. In the this example, the call is placed from adj1 to adj2.
The following shows how to configure a header profile with two entries. The first entry strips the "P-KT-UE-IP" header and the second entry adds the "P-KT-UE-IP" with a value set to the 18-character string ${msg.rmt_ip_addr}.
host1/Admin(config-sbc-sbe)# sip header-profile kt
host1/Admin(config-sbc-sbe-sip-hdr)# header P-KT-UE-IP
host1/Admin(config-sbc-sbe-sip-hdr-ele)# entry 1 action strip
host1/Admin(config-sbc-sbe-sip-hdr-ele-act)# exit
host1/Admin(config-sbc-sbe-sip-hdr-ele)# entry 2 action add-header value
${msg.rmt_ip_addr}
The following applies the above header profile to the incoming adjacency as an inbound header profile.
host1/Admin(config-sbc-sbe)# adjacency sip adj1
host1/Admin(config-sbc-sbe-adj-sip)# header-profile inbound kt
The following configures a header profile to allow pass-through of the "P-KT-UE-IP" header.
host1/Admin(config-sbc-sbe)# sip header-profile kt-pass
host1/Admin(config-sbc-sbe-sip-hdr)# header P-KT-UE-IP
host1/Admin(config-sbc-sbe-sip-hdr-ele)# action pass
The following applies the above header profile to the outgoing adjacency as an outbound header profile.
host1/Admin(config-sbc-sbe)# adjacency sip adj2
host1/Admin(config-sbc-sbe-adj-sip)# header-profile outbound kt-pass
SIP Header Public/Private IP Address Information Insertion
The following example shows a SIP header public/private IP address information insertion.
The SIP parameter profile is added in order to remove the parameter.
host1/Admin(config)# sbc test
host1/Admin(config-sbc) sbe
host1/Admin(config-sbc-sbe)# sip parameter-profile proxy-param
host1/Admin(config-sbc-sbe-sip-prm)# parameter firewall
host1/Admin(config-sbc-sbe-sip-prm-ele)# action strip
host1/Admin(config-sbc-sbe)# sip parameter-profile access-param
host1/Admin(config-sbc-sbe-sip-prm)# parameter firewall
host1/Admin(config-sbc-sbe-sip-prm-ele)# action add-or-replace value private-ip-address
The SIP header profile is added; the parameter profile is associated with the header profile.
host1/Admin(config-sbc-sbe)# sip header-profile proxy
host1/Admin(config-sbc-sbe-sip-hdr)# header contact
host1/Admin(config-sbc-sbe-sip-hdr-ele)# entry 1 action as-profile
host1/Admin(config-sbc-sbe-sip-hdr-ele)# parameter-profile proxy-param
host1/Admin(config-sbc-sbe)# sip header-profile access
host1/Admin(config-sbc-sbe-sip-hdr)# header contact
host1/Admin(config-sbc-sbe-sip-hdr-ele)# entry 1 action as-profile
host1/Admin(config-sbc-sbe-sip-hdr-ele)# parameter-profile access-param
host1/Admin(config-sbc-sbe)# sip max-connections 2
host1/Admin(config-sbc-sbe)# sip timer
host1/Admin(config-sbc-sbe-sip-tmr)# tcp-idle-timeout 120000
host1/Admin(config-sbc-sbe-sip-tmr)# tls-idle-timeout 3600000
host1/Admin(config-sbc-sbe-sip-tmr)# tcp-connect-timeout 30000
host1/Admin(config-sbc-sbe-sip-tmr)# udp-response-linger-period 32000
host1/Admin(config-sbc-sbe-sip-tmr)# udp-first-retransmit-interval 500
host1/Admin(config-sbc-sbe-sip-tmr)# udp-max-retransmit-interval 4000
host1/Admin(config-sbc-sbe-sip-tmr)# invite-timeout 180
Below the SIP header is added to the SIP adjacency.
host1/Admin(config-sbc-sbe)# adjacency sip sip-41
host1/Admin(config-sbc-sbe-adj-sip)# header-profile inbound access
host1/Admin(config-sbc-sbe-adj-sip)# header-profile outbound proxy
host1/Admin(config-sbc-sbe-adj-sip)# preferred-transport udp
host1/Admin(config-sbc-sbe-adj-sip)# security untrusted
host1/Admin(config-sbc-sbe-adj-sip)# redirect-mode pass-through
host1/Admin(config-sbe-adj-sip)# authentication nonce timeout 300
host1/Admin(config-sbc-sbe-adj-sip)# signaling-address ipv4 10.140.90.6
host1/Admin(config-sbc-sbe-adj-sip)# signaling-port 5060
host1/Admin(config-sbc-sbe-adj-sip)# remote-address ipv4 0.0.0.0 0.0.0.0
host1/Admin(config-sbc-sbe-adj-sip)# signaling-peer 10.0.48.41
host1/Admin(config-sbc-sbe-adj-sip)# signaling-peer-port 5060
host1/Admin(config-sbc-sbe-adj-sip)# dbe-location-id 4294967295
host1/Admin(config-sbc-sbe-adj-sip)# registration rewrite-register
host1/Admin(config-sbc-sbe-adj-sip)# reg-min-expiry 3000
host1/Admin(config-sbc-sbe-adj-sip)# media-bypass
host1/Admin(config-sbc-sbe-adj-sip)# attach
host1/Admin(config-sbc-sbe)# adjacency sip sip-proxy
host1/Admin(config-sbc-sbe-adj-sip)# header-profile inbound proxy
host1/Admin(config-sbc-sbe-adj-sip)# header-profile outbound access
host1/Admin(config-sbc-sbe-adj-sip)# preferred-transport udp
host1/Admin(config-sbc-sbe-adj-sip)# security untrusted
host1/Admin(config-sbc-sbe-adj-sip)# redirect-mode pass-through
host1/Admin(config-sbe-adj-sip)# authentication nonce timeout 300
host1/Admin(config-sbc-sbe-adj-sip)# signaling-address ipv4 10.140.90.6
host1/Admin(config-sbc-sbe-adj-sip)# remote-address ipv4 10.0.5.2 255.255.255.255
host1/Admin(config-sbc-sbe-adj-sip)# signaling-peer 10.0.5.2
host1/Admin(config-sbc-sbe-adj-sip)# signaling-peer-port 5060
host1/Admin(config-sbc-sbe-adj-sip)# dbe-location-id 4294967295
host1/Admin(config-sbc-sbe-adj-sip)# registration rewrite-register
host1/Admin(config-sbc-sbe-adj-sip)# reg-min-expiry 3000
host1/Admin(config-sbc-sbe-adj-sip)# media-bypass
host1/Admin(config-sbc-sbe-adj-sip)# registration target address 10.0.5.2
host1/Admin(config-sbc-sbe-adj-sip)# attach
host1/Admin(config-sbc-sbe)# call-policy-set 2
host1/Admin(config-sbc-sbe-rtgpolicy)# first-call-routing-table start-table
host1/Admin(config-sbc-sbe-rtgpolicy)# first-reg-routing-table reg-table
host1/Admin(config-sbc-sbe-rtgpolicy)# rtg-src-adjacency-table reg-table
host1/Admin(config-sbc-sbe-rtgpolicy-rtgtable)# entry 1
host1/Admin(config-sbc-sbe-rtgpolicy-rtgtable-entry)# action complete
host1/Admin(config-sbc-sbe-rtgpolicy-rtgtable-entry)# dst-adjacency sip-proxy
host1/Admin(config-sbc-sbe-rtgpolicy-rtgtable-entry)# match-adjacency sip-41
host1/Admin(config-sbc-sbe-rtgpolicy)# rtg-src-adjacency-table start-table
host1/Admin(config-sbc-sbe-rtgpolicy-rtgtable)# entry 1
host1/Admin(config-sbc-sbe-rtgpolicy-rtgtable-entry)# action complete
host1/Admin(config-sbc-sbe-rtgpolicy-rtgtable-entry)# dst-adjacency sip-proxy
host1/Admin(config-sbc-sbe-rtgpolicy-rtgtable-entry)# match-adjacency sip-41
host1/Admin(config-sbc-sbe-rtgpolicy-rtgtable-entry)# exit
host1/Admin(config-sbc-sbe-rtgpolicy-rtgtable)# exit
host1/Admin(config-sbc-sbe-rtgpolicy)# complete
host1/Admin (config-sbc-sbe)# active-call-policy-set 2