Table Of Contents
SIP 3xx Redirect Responses
Contents
Information About 3xx Redirect Responses in SIP
3xx Responses
Diversion Headers
How to Configure SBC to Process SIP 3xx Responses
Configuring SBC to Process SIP 3xx Responses
Examples of Configuring SBC to Process SIP 3xx Responses
Additional References
Related Documents
Standards
MIBs
RFCs
Technical Assistance
SIP 3xx Redirect Responses
This section describes how SBC can be configured to process SIP 3xx responses. 3xx is a class of the response code used in SIP to indicate that further action needs to be taken in order to complete the request. The sender of the request should retry the request, using one or more alternative Uniform Resource Identifiers (URIs), which are presented in the 3xx response.
Feature History for SIP 3xx Redirect Responses
Release
|
Modification
|
Release 3.4.1
|
This feature was introduced on the Cisco XR 12000 Series Router.
|
Release 3.5.0
|
No modification.
|
Release 3.6.0
|
No modification.
|
Contents
This module contains the following sections:
•
Information About 3xx Redirect Responses in SIP
•
How to Configure SBC to Process SIP 3xx Responses
•
Examples of Configuring SBC to Process SIP 3xx Responses
•
Additional References
Information About 3xx Redirect Responses in SIP
3xx Responses
3xx responses are usually only expected in session-initiating requests, INVITEs. However, the SIP specification does not preclude sending 3xx responses for other request types. A number of alternative URIs are supplied on the 3xx responses in Contact headers.
The 3xx class of responses includes any response code in the range of 300-399 and indicates a redirection of the call. The redirection requires further action to be taken to complete the request. The following 3xx response codes are defined in SIP.
•
300 Multiple Choices. The address in the request resolved to several choices, each with its own specific location. The user or user agent (UA) can select a preferred communication end point and redirect the request to that location.
The response may include a message body containing a list of resource characteristics and location(s), from which the user or UA can choose the most appropriate one, if allowed by the Accept request header field. However, no MIME types have been defined for this message body.
The choices should also be listed as Contact fields. The response may contain several Contact fields or a list of addresses in a Contact field. UAs may use the Contact header field value for automatic redirection or ask the user to confirm a choice.
•
301 Moved Permanently. The user can no longer be found at the address in the Request-URI, and the requesting client should retry at the new address given by the Contact header field (Section 20.10). The requestor should update any local directories, address books, and user location caches with this new value, and redirect future requests to the addresses listed.
•
302 Moved Temporarily. The requesting client should retry the request at the new address(es) given by the Contact header field. The Request-URI of the new request uses the value of the Contact header field in the response.
The duration of the validity of the Contact URI can be specified through an Expires (Section 20.19) header field or an Expires parameter in the Contact header field. Both proxies and UAs may cache this URI for the duration of the expiration time. If there is no explicit expiration time, the address is valid only once for recursing, and must not be cached for future transactions.
If the URI cached from the Contact header field fails, the Request-URI from the redirected request may be tried again only once.
•
305 Use Proxy. The requested resource must be accessed through the proxy given by the Contact field. The Contact field gives the URI of the proxy. The recipient is expected to repeat this single request via the proxy. 305 responses must only be generated by the user agent servers (UASs).
•
380 Alternative Service. The call was not successful, but alternative services are possible. The alternative services are described in the message body of the response. There are no formats currently defined for this information.
In each case, the request should be retried to one of the supplied alternative URIs. The request can be retried by either the originating UA, or by an intermediate back-to-back user agent (B2BUA) or proxy on behalf of the originating UA (and without notifying it).
SBC is a B2BUA, and, therefore, in some deployments it may be necessary for SBC to retry the request instead of sending a negative response back to the initiator of the request.
Diversion Headers
The Diversion header enables the called SIP user agent to identify from whom the call was diverted and why it was diverted. The header notifies the original caller:
•
That the call has been redirected to a destination that differs from the original target
•
The number to which the call has been redirected
•
The reason for the redirection
The diversion header is attached by networking elements that change the final destination of a request.
How to Configure SBC to Process SIP 3xx Responses
This section contains the steps for configuring SBC to process SIP 3xx responses.
Configuring SBC to Process SIP 3xx Responses
SUMMARY STEPS
1.
configure
2.
sbc sbc-name
3.
sbe
4.
adjacency sip adjacency-name
5.
redirect-mode mode
6.
attach
7.
commit
8.
exit
9.
redirect-limit limit
10.
commit
11.
exit
12.
show services sbc sbc-name sbe adjacencies
13.
show services sbc sbc-name sbe redirect-limit
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
RP/0/0/CPU0:router# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
RP/0/0/CPU0:router(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:
RP/0/0/CPU0:router(config-sbc)# sbe
|
Enters the mode of the signaling border element (SBE) function of the SBC.
|
Step 4
|
adjacency sip adjacency-name
Example:
RP/0/0/CPU0:router(config-sbc-sbe)# adjacency sip
SipToIsp42
|
Enters the mode of an SBE SIP adjacency.
Use the adjacency-name argument to define the name of the service.
|
Step 5
|
redirect-mode mode
Example:
RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)
redirect-mode recurse
|
Configures the behavior of the SBC on receipt of a 3xx response to an INVITE from the SIP adjacency.
• redirect-mode pass-through—SBC passes all 3xx responses back to the caller (the default mode).
• redirect-mode recurse—On 300, 301, 302 and 305 INVITE responses (under the redirect-limit, see the configuration steps below), SBC resends the INVITE to the first listed contact address. Otherwise, SBC passes 3xx responses back.
• no redirect-mode—The no version of this command returns the adjacency to the default behavior.
|
Step 6
|
attach
Example:
RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)#
attach
|
Attaches the adjacency.
|
Step 7
|
commit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)#
commit
|
Saves configuration changes. Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.
|
Step 8
|
exit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# exit
|
Exits the adjacency-sip mode and returns to the SBE mode.
|
Step 9
|
redirect-limit limit
Example:
RP/0/0/CPU0:router(config-sbc-sbe)#
redirect-limit 4
|
Configures the maximum number of redirections that the SBC performs on a given call.
• redirect-limit limit—A numeric value, the maximum number of redirections performed before the call is failed (the range is 0-100, the default is 2).
• no redirect-limit—the no version of this command returns the adjacency to the default behavior
|
Step 10
|
commit
Example:
RP/0/0/CPU0:router(config-sbc-sbe)# commit
|
Saves configuration changes. Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.
|
Step 11
|
exit
Example:
RP/0/0/CPU0:router(config-sbc-sbe)# exit
|
Exits the SBE mode.
|
Step 12
|
show services sbc sbc-name sbe adjacencies
Example:
RP/0/0/CPU0:router(config-sbc)# show services sbc
mysbc sbe adjacencies
|
Lists the adjacencies configured on SBEs.
|
Step 13
|
show services sbc sbc-name sbe redirect-limit
Example:
RP/0/0/CPU0:router(config-sbc)# show services sbc
mysbc sbe redirect-limit
|
Displays the current limit on the maximum number of redirections a call can undergo.
|
Examples of Configuring SBC to Process SIP 3xx Responses
This section provides two simple configurations for processing SIP 3xx responses on the SBC.
The following command configures the adjacency "SipToIsp42" to recurse on 300, 301, 302 and 305 INVITE responses.
(config)# sbc mySbc sbe adjacency sip SipToIsp42
(config-sbc-sbe-adj-sip)# redirect-mode recurse
(config-sbc-sbe-adj-sip)# end
The following command configures the SBE to perform maximum 4 SIP 3xx redirections per call.
(config)# sbc mySbc sbe sip redirect-limit 4
Additional References
The following sections provide references related to configuring media address pools.
Related Documents
Related Topic
|
Document Title
|
Cisco IOS XR master command reference
|
Cisco IOS XR Master Commands List
|
Cisco IOS XR SBC interface configuration commands
|
Cisco IOS XR Session Border Controller Command Reference
|
Initial system bootup and configuration information for a router using the Cisco IOS XR Software
|
Cisco IOS XR Getting Started Guide
|
Cisco IOS XR command modes
|
Cisco IOS XR Command Mode Reference
|
Standards
Standards
|
Title
|
No new or modified standards are supported by this feature, and support from existing standards has not been modified by this feature.
|
—
|
MIBs
RFCs
RFCs
|
Title
|
RFC 2543
|
Session Initiation Protocol
|
RFC 3261
|
SIP: Session Initiation Protocol
|
Technical Assistance
Description
|
Link
|
The Cisco Technical Support website contains thousands of pages of searchable technical content, including links to products, technologies, solutions, technical tips, and tools. Registered Cisco.com users can log in from this page to access even more content.
|
http://www.cisco.com/techsupport
|