CUSP Call Processing
CUSP Call Processing
Contents
Introduction
Prerequisites
Requirements
Components Used
CUSP Processing Model
Network
Triggers
Routing Lookup Policy
Normalization Policy
CUSP Pre−Normalization Flow
CUSP Routing Flow
CUSP RG Flow
CUSP SG Flow
CUSP Post−Normalization Flow
Related Information
Introduction
This document describes how the Cisco Unified Session Initiation Protocol (SIP) Proxy makes call routing
decisions.
Prerequisites
Requirements
Cisco recommends that you have knowledge of Cisco Unified SIP Proxy (CUSP).
Components Used
This document is not restricted to specific software and hardware versions.
The information in this document was created from the devices in a specific lab environment. All of the
devices used in this document started with a cleared (default) configuration. If your network is live, make sure
that you understand the potential impact of any command.
Here is an example:
!
sip network Net−PSTN standard
no non−invite−provisional
allow−connections
retransmit−count invite−client−transaction 3
retransmit−count invite−server−transaction 5
retransmit−count non−invite−client−transaction 3
retransmit−timer T1 500
retransmit−timer T2 4000
retransmit−timer T4 5000
retransmit−timer TU1 5000
retransmit−timer TU2 32000
retransmit−timer clientTn 64000
retransmit−timer serverTn 64000
tcp connection−setup−timeout 1000
udp max−datagram−size 1500
end network
!
Triggers
This section describes what triggers are and how they are used.
• A trigger is a set of conditions used in order to determine which routing and normalization policy is
applied to an SIP request.
• A trigger condition defines matching rules against certain headers or fields within an SIP message,
network, and transport type (UDP, TCP, Transport Layer Security (TLS)).
• A trigger is evaluated as either true or false for each received request.
• If the condition is true, then preset behaviors are invoked.
• The AND operation is achieved by specifying headers or fields in a single trigger−condition
command.
• The OR operation is achieved with several trigger−conditions, each identified by a sequence number.
• The conditions are evaluated in ascending order based on sequence number.
• The mid−dialog condition is the first one, so that the policy step is skipped for mid−dialog messages.
Here is an example:
• Each routing policy is expressed as a sequence of steps and each is specified in order to perform a
lookup in a table.
• CUSP executes each step in order:
♦ Each step has a selectable key.
♦ If the step produces a route, that route is used.
♦ If the step results in a "no−match," the next step is attempted.
• An SIP request can be routed to a single destination or to a Route Group (RG).
• The policy has Multi−layer Route Advance within a RG, and has configurable failover SIP response
codes.
• Policy−based request rejection is incorporated (4xx responses and above).
• Nested policies are allowed.
• Table−based routing is used, which has these properties:
♦ It supports a large number of routes in a table (10,000+).
♦ Routes in a table are populated via CLI or a route file.
♦ Lookup keys are used, such as calling and called party number, carrier codes, and location
routing numbers.
♦ Flexible rule matching is used, such as "longest prefix matching."
Normalization Policy
This section describes the CUSP call processing flow normalization policy.
In this example, the user portion of the SIP Uniform Resource Identifier (URI) Request is replaced by
4082022222 if the value that exists is 2022222.
• The RG specifies multiple routes that an SIP request might take (similar to a CUCM RG).
• Each route is configured as an element.
• When a routing trigger condition is evaluated as true, the lookup policy that corresponds to it is used
in order to create a list of applicable routing tables.
• Each entry in the routing table points to a particular RG, SG, or specific destination.
• Routes are advanced between elements until successful. For example, if you want to route a call to a
CUCM cluster, the Subscriber can be one element while the Publisher is the second.
• Route advances between elements are controlled on the SIP response received (failover response).
• Elements of the RG are heterogeneous. For example, one route heads toward CUCM and another to
the Public Switched Telephone Network (PSTN).
• A RG element can point to a SG.
• SIP requests are routed based on the time of day.
!
route group RG−UC520
element target−destination SG−UC520 Net−UC520 q−value 1.0
failover−codes 502 − 503
weight 0
end element
end route
!
server−group sip group SG−UC520 Net−UC520
element ip−address 14.128.100.161 5060 udp q−value 1.0 weight 0
failover−resp−codes 503
lbtype global
ping
end server−group
!
!
server−group sip group SG−CUCM.ajeet.com Net−CUCM
element ip−address 14.128.64.191 5060 udp q−value 1.0 weight 50
element ip−address 14.128.64.192 5060 udp q−value 1.0 weight 100
failover−resp−codes 503
lbtype global
ping
end server−group
!
In this example, the user portion of the SIP URI Request is replaced by 85224044444 if the value that exists is
4444:
!
trigger post−normalization sequence 1 policy UC520−Four−to−Full
condition TC−UC520−to−PSTN
!
policy normalization UC520−Four−to−Full
uri−component update request−uri user 4444 85224044444
end policy
!