Guest

Cisco Network Modules

CUSP Configuration Example

Document ID: 116252

Updated: Aug 06, 2013

Contributed by Ajeet Singh, Cisco TAC Engineer.

   Print

Introduction

This document describes the sample CLI and GUI configuration of Cisco Unified SIP Proxy (CUSP) with debugs that match four different call routing scenarios.

Prerequisites

Requirements

Cisco recommends that you have basic knowledge of these topics:

  • Session Initiation Protocol (SIP)
  • Cisco Unified SIP Proxy (CUSP)

Components Used

The information in this document is based on CUSP.

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.

Configure

This section describes the configuration of four call routing scenarios.

Note: Use the Command Lookup Tool (registered customers only) in order to obtain more information on the commands used in this section.

Scenario 1

Call Flow: IP Phone 1 -- CME -- SIP -- CUSP -- SIP -- CUCM -- IP Phone 2

Dial 408 202 2102 from IP Phone 1 registered to CallManager Express (CME) in order to reach IP Phone 2 registered to Cisco Unified Communications Manager (CUCM) via CUSP.

CME acts as a Public Switched Telephone Network (PSTN) in this scenario.

  1. The SIP INVITE comes to CUSP from CME.
    [DsTransportListener-2] DEBUG 2013.02.27 19:15:59:245 DsSipLlApi.Wire - 
    Received UDP packet on 14.128.100.169:5060 ,source 14.128.100.150:57878
    INVITE sip:4082022102@14.128.100.169:5060 SIP/2.0
    Via: SIP/2.0/UDP 14.128.100.150:5060;branch=z9hG4bK21F2555
    Remote-Party-ID: "4082025555" <sip:4082025555@14.128.100.150>;
    party=calling;screen=yes;privacy=off
    From: "4082025555" <sip:4082025555@14.128.100.150>;tag=81D7430C-1D2
    To: <sip:4082022102@14.128.100.169>
    Date: Wed, 27 Feb 2013 19:15:59 GMT
    Call-ID: F3E5F396-804811E2-9818EC62-1B7185EE@14.128.100.150
    Supported: 100rel,timer,resource-priority,replaces,sdp-anat
    Min-SE: 1800
    Cisco-Guid: 4091813662-2152206818-2551376994-0460424686
    User-Agent: Cisco-SIPGateway/IOS-12.x
    Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER,
    SUBSCRIBE, NOTIFY, INFO, REGISTER
    CSeq: 101 INVITE
    Timestamp: 1361992559
    Contact: <sip:4082025555@14.128.100.150:5060>
    Expires: 180
    Allow-Events: telephone-event
    Max-Forwards: 69
    Content-Type: application/sdp
    Content-Disposition: session;handling=required
    Content-Length: 410

    v=0
    o=CiscoSystemsSIP-GW-UserAgent 1007 629 IN IP4 14.128.100.150
    s=SIP Call
    c=IN IP4 14.128.100.150
    t=0 0
    m=audio 16930 RTP/AVP 18 101
    c=IN IP4 14.128.100.150
    a=rtpmap:18 G729/8000
    a=fmtp:18 annexb=no
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-16
    m=video 17954 RTP/AVP 97
    c=IN IP4 14.128.100.150
    b=TIAS:1000000
    a=rtpmap:97 H264/90000
    a=fmtp:97 profile-level-id=42801E;packetization-mode=0

    --- end of packet ---
  2. The call is accepted to the network (Net-PSTN) configuration that matches.

    CLI
    sip listen Net-PSTN udp 14.128.100.169 5060

    !
    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
    !

    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:250 
    conditions.RegexCondition - inNetwork='Net-PSTN'
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:250
    conditions.RegexCondition - IN_NETWORK: Net-PSTN
  3. The Pre-Normalization sequence is executed.

    CLI
    trigger pre-normalization sequence 1 policy CUCM-Prefix-408
    condition TC-from-CUCM
    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:250 util.Normalization - 
    Entering Normalization(moduleRequest:pre-normalize)
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:250 conditions.RegexCondition -
    inNetwork='Net-PSTN'
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:250 conditions.RegexCondition -
    IN_NETWORK: Net-PSTN
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:250 conditions.AbstractRegexCondition -
    pattern(^\QNet-CUCM\E$), toMatch(Net-PSTN) returning false
    [REQUESTI.12] INFO 2013.02.27 19:15:59:250 util.Normalization -
    skipping pre-normalize, due to either no trigger is configured or triggers
    did not evaluate to true or is configured to by-pass
  4. The Trigger Condition (TC-from-PSTN) is matched.

    CLI
    !
    trigger condition TC-from-PSTN
    sequence 1
    in-network ^\QNet-PSTN\E$
    end sequence
    end trigger condition
    !

    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:250 conditions.RegexCondition - 
    inNetwork='Net-PSTN'
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:250 conditions.RegexCondition -
    IN_NETWORK: Net-PSTN
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:250 conditions.AbstractRegexCondition -
    pattern(^\QNet-PSTN\E$), toMatch(Net-PSTN) returning true
  5. The Routing Trigger configuration is checked in order to find the Route Policy (Policy-to-CUCM) that matches based on the Trigger Condition (TC-from-PSTN).

    CLI
    trigger routing sequence 1 policy Policy-to-CUCM condition TC-from-PSTN 

    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:251 triggers.ModuleTrigger - 
    ModuleTrigger.eval() action<Policy-to-CUCM> actionParameter<>
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:251 triggers.ModuleTrigger -
    ModuleTrigger.eval() got the policy, executing it ...
  6. The Route Policy (Policy-to-CUCM) configuration is checked in order to find the Route Table (RT-CUCM) that matches.

    CLI
    !
    policy lookup Policy-to-CUCM
    sequence 100 RT-CUCM request-uri uri-component user
    modify-key 4082022102 1111
    rule exact
    end sequence
    end policy
    !

    GUI



    DEBUG
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:251 nrs.XCLPrefix - 
    Entering getKeyValue()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:251 nrs.FieldSelector -
    getUriPart: URI - sip:4082022102@14.128.100.169:5060 part 6
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:251 nrs.FieldSelector -
    Requested field 45
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:251 nrs.FieldSelector -
    Returning key 4082022102
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:251 nrs.FieldSelector -
    Retrieved Modifier RegexModifier: match= 4082022102, replace=
    1111, ignore case= false
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:251 nrs.FieldSelector -
    Input field: 4082022102
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:251 nrs.FieldSelector -
    Modified field: 1111
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 nrs.XCLPrefix -
    Leaving getKeyValue()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 modules.XCLLookup -
    table=RT-CUCM, key=1111
    [REQUESTI.12] INFO 2013.02.27 19:15:59:252 modules.XCLLookup -
    table is RT-CUCM
  7. The Route Table (RT-CUCM) configuration is checked in order to find the Target Destination (SG-CUCM.ajeet.com).

    CLI
    !
    route table RT-CUCM
    key 1111 target-destination SG-CUCM.ajeet.com Net-CUCM
    end route table
    !

    GUI



    DEBUG
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 routingtables.RoutingTable - 
    Entering lookup()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 routingtables.RoutingTable -
    Looking up 1111 in table RT-CUCM with rule exact and modifiers=none
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 routingtables.RoutingTable -
    Entering applyModifiers()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 routingtables.RoutingTable -
    Leaving applyModifiers(), returning 1111
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 routingtables.RoutingTable -
    Leaving lookup()
    [REQUESTI.12] INFO 2013.02.27 19:15:59:252 nrs.XCLPrefix -
    NRS Routing decision is: RouteTable:RT-CUCM, RouteKey:1111,
    TargetDestination:SG-CUCM.ajeet.com, Network:Net-CUCM
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 loadbalancer.LBFactory -
    Entering createLoadBalancer()
    [REQUESTI.12] INFO 2013.02.27 19:15:59:252 loadbalancer.LBFactory -
    lbtype is 3(call-id)
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 loadbalancer.LBFactory -
    Leaving createLoadBalancer()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 nrs.XCLPrefix -
    Stored NRSAlgResult=isFound=true, isFailure=false, Response=-1,
    Routes=[Ruri: SG-CUCM.ajeet.com, Route: null, Network: Net-CUCM,
    q-value=1.0radvance=[502, 503]], PolicyAdvance=null
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 nrs.NRSAlgResult -
    set policyAdvance as specified in route=RouteTable:RT-CUCM, RouteKey:1111,
    TargetDestination:SG-CUCM.ajeet.com, Network:Net-CUCM
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:252 nrs.NRSAlgResult -
    no policyAdvance specified in route
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:253 nrs.NRSAlgResult -
    set policyAdvance as specified in algorithm={lookupkeymodifier=
    [ RegexModifier: match= 4082022102, replace= 1111, ignore case= false],
    lookuprule=0, lookupfield=45, lookuplenght=-1, lookuptable=RT-CUCM,
    sequence=100, algorithm=1}
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:253 nrs.NRSAlgResult -
    no policyAdvance specified in algorithm
  8. The Post-Normalization Sequence is executed.

    Note: This scenario does not use Post-Normalization, which is why Post-Normalization is skipped in the debugs.



    CLI
    trigger post-normalization sequence 1 policy
    UC520-Four-to-Full condition TC-UC520-to-PSTN

    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:254 util.Normalization - 
    Entering Normalization(moduleRequest:post-normalize)
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:254 conditions.RegexCondition -
    inNetwork='Net-PSTN'
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:254 conditions.RegexCondition -
    IN_NETWORK: Net-PSTN
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:254 conditions.AbstractRegexCondition -
    pattern(^\QNet-From-UC520\E$), toMatch(Net-PSTN) returning false
    [REQUESTI.12] INFO 2013.02.27 19:15:59:254 util.Normalization -
    skipping post-normalize, due to either no trigger is configured or triggers
    did not evaluate to true or is configured to by-pass
  9. The Server Group configuration is checked in order to find the element IP address, and the call is routed to the best route possible based on the Q-value and Weight configuration.

    CLI
    !
    server-group sip group SG-CUCM.ajeet.com Net-CUCM
    element ip-address 14.128.64.191 5060 udp q-value 1 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
    !

    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:254 loadbalancer.LBFactory - 
    Entering createLoadBalancer()
    [REQUESTI.12] INFO 2013.02.27 19:15:59:254 loadbalancer.LBFactory -
    lbtype is 0(global)
    [REQUESTI.12] INFO 2013.02.27 19:15:59:254 loadbalancer.LBFactory -
    Default lbtype is 3(call-id)
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:254 loadbalancer.LBFactory -
    Leaving createLoadBalancer()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:254 loadbalancer.LBBase -
    Entering getServer()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:254 loadbalancer.LBBase -
    Entering initializeDomains()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:254 servergroups.
    ServerGlobalStateWrapper - Net-CUCM:14.128.64.191:5060:1
    numTries=2--->isServerAvailable(): true
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:254 servergroups.
    ServerGlobalStateWrapper - Net-CUCM:14.128.64.192:5060:1
    numTries=2--->isServerAvailable(): true
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:255 servergroups.AbstractNextHop -
    Entering compareDomainNames()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:255 servergroups.AbstractNextHop -
    Leaving compareDomainNames()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:255 loadbalancer.LBBase -
    Leaving initializeDomains()
    [REQUESTI.12] INFO 2013.02.27 19:15:59:255 loadbalancer.LBHashBased -
    list of elements in order on which load balancing is done :
    {reSgElementWeight=50, reSgElementSgName=SG-CUCM.ajeet.com,
    reSgElementTransport=UDP, reSgElementQValue=1.0, reSgElementPort=5060,
    reSgElementHost=14.128.64.191}, {reSgElementWeight=100, reSgElementSgName=
    SG-CUCM.ajeet.com, reSgElementTransport=UDP, reSgElementQValue=1.0,
    reSgElementPort=5060, reSgElementHost=14.128.64.192},
    [REQUESTI.12] INFO 2013.02.27 19:15:59:255 loadbalancer.LBHashBased -
    Hashing on F3E5F396-804811E2-9818EC62-1B7185EE@14.128.100.150
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:255 loadbalancer.DsHashAlgorithm -
    Entering selectIndex()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:255 loadbalancer.DsHashAlgorithm -
    Leaving selectIndex()
    [REQUESTI.12] INFO 2013.02.27 19:15:59:255 loadbalancer.LBHashBased -
    Index selected 0
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:255 servergroups.AbstractNextHop -
    Entering compareDomainNames()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:255 servergroups.AbstractNextHop -
    Leaving compareDomainNames()
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:255 loadbalancer.LBBase -
    Server group SG-CUCM.ajeet.com selected {reSgElementWeight=50,
    reSgElementSgName=SG-CUCM.ajeet.com, reSgElementTransport=UDP,
    reSgElementQValue=1.0, reSgElementPort=5060, reSgElementHost=14.128.64.191}
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:255 loadbalancer.LBBase -
    Leaving getServer()
  10. The SIP INVITE is sent to the selected element.
    [REQUESTI.12] DEBUG 2013.02.27 19:15:59:256 DsSipLlApi.Wire - 
    Sending UDP packet on 14.128.100.169:32771, destination 14.128.64.191:5060
    INVITE sip:4082022102@SG-CUCM.ajeet.com SIP/2.0
    Via: SIP/2.0/UDP 14.128.100.169:5061;branch=z9hG4bK.ToYJFeKMyfZGySv.gcLjg~~231
    Via: SIP/2.0/UDP 14.128.100.150:5060;branch=z9hG4bK21F2555
    Max-Forwards: 68
    To: <sip:4082022102@14.128.100.169>
    From: "4082025555" <sip:4082025555@14.128.100.150>;tag=81D7430C-1D2
    Contact: <sip:4082025555@14.128.100.150:5060>
    Expires: 180
    Remote-Party-ID: "4082025555" <sip:4082025555@14.128.100.150
    >;party=calling;screen=yes;privacy=off
    Call-ID: F3E5F396-804811E2-9818EC62-1B7185EE@14.128.100.150
    CSeq: 101 INVITE
    Content-Length: 410
    Date: Wed, 27 Feb 2013 19:15:59 GMT
    Supported: 100rel,timer,resource-priority,replaces,sdp-anat
    Min-SE: 1800
    Cisco-Guid: 4091813662-2152206818-2551376994-0460424686
    User-Agent: Cisco-SIPGateway/IOS-12.x
    Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER,
    SUBSCRIBE, NOTIFY, INFO, REGISTER
    Timestamp: 1361992559
    Allow-Events: telephone-event
    Content-Type: application/sdp
    Content-Disposition: session;handling=required

    v=0
    o=CiscoSystemsSIP-GW-UserAgent 1007 629 IN IP4 14.128.100.150
    s=SIP Call
    c=IN IP4 14.128.100.150
    t=0 0
    m=audio 16930 RTP/AVP 18 101
    c=IN IP4 14.128.100.150
    a=rtpmap:18 G729/8000
    a=fmtp:18 annexb=no
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-16
    m=video 17954 RTP/AVP 97
    c=IN IP4 14.128.100.150
    b=TIAS:1000000
    a=rtpmap:97 H264/90000
    a=fmtp:97 profile-level-id=42801E;packetization-mode=0

    Note: Some devices, such as CUCM, validate the Uniform Resource Identifier (URI) of requests before they process them, which means that the end device might need to be configured with the Fully Qualified Domain Name (FQDN) in order to allow for this.

    In the case of CUCM, CUCM > System > Enterprise Parameter > Clusterwide Domain Configuration > Cluster Fully Qualified Domain Name should be the same as the server group name.

Scenario 2

Call Flow: IP Phone 1 -- CUCM -- SIP -- CUSP -- SIP -- CME -- IP Phone 2

Dial 202 2222 from IP Phone 2. 408 should be prefixed with Pre-Normalization in order to reach IP Phone 1.

CME acts as PSTN in this scenario.

  1. The SIP INVITE comes to CUSP from CUCM.
    [DsTransportListener-0] DEBUG 2013.02.28 00:34:03:370 DsSipLlApi.Wire - 
    Received UDP packet on 14.128.100.169:5061 ,source 14.128.64.192:5060
    INVITE sip:2022222@14.128.100.169:5061 SIP/2.0
    Via: SIP/2.0/UDP 14.128.64.192:5060;branch=z9hG4bK18012ae333f
    From: "SJ Phone 1" <sip:2001@14.128.64.192>;
    tag=534264~c1b77ee1-4af9-4a41-aed3-3846cd699427-49616146
    To: <sip:2022222@14.128.100.169>
    Date: Thu, 28 Feb 2013 00:34:03 GMT
    Call-ID: 8be55500-12e1a5fb-ab-c040800e@14.128.64.192
    Supported: timer,resource-priority,replaces
    Min-SE: 1800
    User-Agent: Cisco-CUCM8.6
    Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE,
    REFER, SUBSCRIBE, NOTIFY
    CSeq: 101 INVITE
    Expires: 180
    Allow-Events: presence, kpml
    Supported: X-cisco-srtp-fallback,X-cisco-original-called
    Call-Info: <sip:14.128.64.192:5060>
    ;method="NOTIFY;Event=telephone-event;Duration=500"
    Cisco-Guid: 2347062528-0000065536-0000000107-3225452558
    Session-Expires: 1800
    P-Asserted-Identity: "SJ Phone 1" <sip:2001@14.128.64.192>
    Remote-Party-ID: "SJ Phone 1" <sip:2001@14.128.64.192>
    ;party=calling;screen=yes;privacy=off
    Contact: <sip:2001@14.128.64.192:5060>
    Max-Forwards: 70
    Content-Length: 0

    --- end of packet ---
  2. The call is accepted on the network (Net-CUCM) configuration that matches.

    CLI
    sip listen Net-CUCM udp 14.128.100.169 5061 

    !
    sip network Net-CUCM 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
    !

    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:373 conditions.RegexCondition - 
    inNetwork='Net-CUCM'
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:373 conditions.RegexCondition -
    IN_NETWORK: Net-CUCM
  3. The Pre-Normalization sequence is executed.

    CLI
    trigger pre-normalization sequence 1 policy CUCM-Prefix-408 
    condition TC-from-CUCM

    !
    policy normalization CUCM-Prefix-408
    uri-component update request-uri user 2022222 4082022222
    end policy
    !

    GUI



    DEBUG
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:373 util.Normalization - 
    Entering Normalization(moduleRequest:pre-normalize
    )[REQUESTI.12] DEBUG 2013.02.28 00:34:03:373 conditions.RegexCondition -
    inNetwork='Net-CUCM'
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:373 conditions.RegexCondition -
    IN_NETWORK: Net-CUCM
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 conditions.AbstractRegexCondition -
    pattern(^\QNet-CUCM\E$), toMatch(Net-CUCM) returning true
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 triggers.ModuleTrigger -
    ModuleTrigger.eval() action<CUCM-Prefix-408> actionParameter<>
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 triggers.ModuleTrigger -
    ModuleTrigger.eval() got the policy, executing it ...
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 normalization.
    URIComponentNormalizationAlgorithm - normalizing request-uri
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 normalization.
    URIComponentNormalizationAlgorithm -
    updating user/phone of the sip:2022222@14.128.100.169:5061 to 4082022222
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 util.Normalization -
    Leaving Normalization.normalize()
  4. The Trigger Condition (TC-from-CUCM) is matched.

    CLI
    !
    trigger condition TC-from-CUCM
    sequence 1
    in-network ^\QNet-CUCM\E$
    end sequence
    end trigger condition
    !

    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 conditions.RegexCondition - 
    inNetwork='Net-CUCM'
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 conditions.RegexCondition -
    IN_NETWORK: Net-CUCM
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 conditions.AbstractRegexCondition -
    pattern(^\QNet-CUCM\E$), toMatch(Net-CUCM) returning true
  5. The Routing Trigger configuration is checked in order to discover the Route Policy (Policy-to-PSTN) that matches based on the Trigger Condition (TC-from-CUCM).

    CLI
    trigger routing sequence 2 policy Policy-to-PSTN condition TC-from-CUCM

    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 conditions.RegexCondition - 
    inNetwork='Net-CUCM'
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 conditions.RegexCondition -
    IN_NETWORK: Net-CUCM
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:374 conditions.AbstractRegexCondition -
    pattern(^\QNet-CUCM\E$), toMatch(Net-CUCM) returning true
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:375 triggers.ModuleTrigger -
    ModuleTrigger.eval() action<Policy-to-PSTN> actionParameter<>
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:375 triggers.ModuleTrigger -
    ModuleTrigger.eval() got the policy, executing it ...
  6. The Route Policy (Policy-to-PSTN) configuration is checked in order to find the Route Table (RT-PSTN) that matches.

    CLI
    !
    policy lookup Policy-to-PSTN
    sequence 100 RT-PSTN request-uri uri-component user
    rule exact
    end sequence
    end policy
    !

    GUI



    DEBUG
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:375 nrs.XCLPrefix - 
    Entering getKeyValue()
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:375 nrs.FieldSelector -
    getUriPart: URI - sip:4082022222@14.128.100.169:5061 part 6
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:375 nrs.FieldSelector -
    Requested field 45
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:375 nrs.FieldSelector -
    Returning key 4082022222
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:375 nrs.XCLPrefix -
    Leaving getKeyValue()
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:375 modules.XCLLookup -
    table=RT-PSTN, key=4082022222
    [REQUESTI.12] INFO 2013.02.28 00:34:03:376 modules.XCLLookup -
    table is RT-PSTN
  7. The Route Table (RT-PSTN) configuration is checked in order to find the Target Destination (SG-PSTN).

    CLI
    !
    route table RT-PSTN
    key 4082022222 target-destination SG-PSTN Net-PSTN
    end route table
    !

    GUI



    DEBUG
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 routingtables.RoutingTable -
    Entering lookup()
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 routingtables.RoutingTable -
    Looking up 4082022222 in table RT-PSTN with rule exact and modifiers=none
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 routingtables.RoutingTable -
    Entering applyModifiers()
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 routingtables.RoutingTable -
    Leaving applyModifiers(), returning 4082022222
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 routingtables.RoutingTable -
    Leaving lookup()
    [REQUESTI.12] INFO 2013.02.28 00:34:03:376 nrs.XCLPrefix -
    NRS Routing decision is: RouteTable:RT-PSTN, RouteKey:4082022222,
    TargetDestination:SG-PSTN, Network:Net-PSTN
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 loadbalancer.LBFactory -
    Entering createLoadBalancer()
    [REQUESTI.12] INFO 2013.02.28 00:34:03:376 loadbalancer.LBFactory -
    lbtype is 3(call-id)
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 loadbalancer.LBFactory -
    Leaving createLoadBalancer()
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 nrs.XCLPrefix -
    Stored NRSAlgResult=isFound=true, isFailure=false, Response=-1,
    Routes=[Ruri: SG-PSTN, Route: null, Network: Net-PSTN, q-value=1.
    0radvance=[502, 503]], PolicyAdvance=null
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 nrs.NRSAlgResult -
    set policyAdvance as specified in route=RouteTable:RT-PSTN, RouteKey:4082022222,
    TargetDestination:SG-PSTN, Network:Net-PSTN
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 nrs.NRSAlgResult -
    no policyAdvance specified in route
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 nrs.NRSAlgResult -
    set policyAdvance as specified in algorithm={lookuprule=0, lookupfield=45,
    lookuplenght=-1, lookuptable=RT-PSTN, sequence=100, algorithm=1}
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:376 nrs.NRSAlgResult -
    no policyAdvance specified in algorithm
  8. The Post-Normalization Sequence is executed.

    CLI
    trigger post-normalization sequence 1 policy UC520-Four-to-Full 
    condition TC-UC520-to-PSTN
    !

    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 util.Normalization - 
    Entering Normalization(moduleRequest:post-normalize)
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 conditions.RegexCondition -
    inNetwork='Net-CUCM'
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 conditions.RegexCondition -
    IN_NETWORK: Net-CUCM
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 conditions.AbstractRegexCondition -
    pattern(^\QNet-From-UC520\E$), toMatch(Net-CUCM) returning false
    [REQUESTI.12] INFO 2013.02.28 00:34:03:378 util.Normalization -
    skipping post-normalize, due to either no trigger is configured or triggers
    did not evaluate to true or is configured to by-pass
  9. The Server Group (SG-PSTN) configuration is checked in order to find the element IP address, and the call is routed to the best route possible based on the Q-value and Weight configuration.

    CLI
    !
    server-group sip group SG-PSTN Net-PSTN
    element ip-address 14.128.100.150 5060 udp q-value 1.0 weight 0
    failover-resp-codes 503
    lbtype global
    ping
    end server-group
    !

    GUI


    DEBUG
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 loadbalancer.LBFactory - 
    Entering createLoadBalancer()
    [REQUESTI.12] INFO 2013.02.28 00:34:03:378 loadbalancer.LBFactory -
    lbtype is 0(global)
    [REQUESTI.12] INFO 2013.02.28 00:34:03:378 loadbalancer.LBFactory -
    Default lbtype is 3(call-id)
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 loadbalancer.LBFactory -
    Leaving createLoadBalancer()
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 loadbalancer.LBBase -
    Entering getServer()
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 loadbalancer.LBBase -
    Entering initializeDomains()
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 servergroups.
    ServerGlobalStateWrapper - Net-PSTN:14.128.100.150:5060:1 numTries=
    2--->isServerAvailable(): true
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 loadbalancer.LBBase -
    Leaving initializeDomains()
    [REQUESTI.12] INFO 2013.02.28 00:34:03:378 loadbalancer.LBHashBased -
    list of elements in order on which load balancing is done :
    {reSgElementWeight=0, reSgElementSgName=SG-PSTN, reSgElementTransport=UDP,
    reSgElementQValue=1.0, reSgElementPort=5060, reSgElementHost=14.128.100.150}
    , [REQUESTI.12] DEBUG 2013.02.28 00:34:03:378 servergroups.AbstractNextHop -
    Entering compareDomainNames()
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:379 servergroups.AbstractNextHop -
    Leaving compareDomainNames()
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:379 loadbalancer.LBBase -
    Server group SG-PSTN selected {reSgElementWeight=0, reSgElementSgName=SG-PSTN,
    reSgElementTransport=UDP, reSgElementQValue=1.0, reSgElementPort=5060,
    reSgElementHost=14.128.100.150}
    [REQUESTI.12] DEBUG 2013.02.28 00:34:03:379 loadbalancer.LBBase -
    Leaving getServer()
  10. The SIP INVITE is sent to the selected element.
    [CT_CALLBACK.13] DEBUG 2013.02.28 00:34:06:260 DsSipLlApi.Wire - 
    Sending UDP packet on 14.128.100.169:32772, destination 14.128.64.192:
    5060SIP/2.0 200 OK
    Via: SIP/2.0/UDP 14.128.64.192:5060;branch=z9hG4bK18012ae333f
    To: <sip:2022222@14.128.100.169>;tag=82FA7450-F53
    From: "SJ Phone 1" <sip:2001@14.128.64.192>
    ;tag=534264~c1b77ee1-4af9-4a41-aed3-3846cd699427-49616146
    Contact: <sip:4082022222@14.128.100.150:5060>
    Require: timer
    Remote-Party-ID: <sip:4082022222@14.128.100.150>
    ;party=called;screen=no;privacy=off
    Call-ID: 8be55500-12e1a5fb-ab-c040800e@14.128.64.192
    CSeq: 101 INVITE
    Content-Length: 276
    Date: Thu, 28 Feb 2013 00:34:03 GMT
    Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER,
    SUBSCRIBE, NOTIFY, INFO, REGISTER
    Allow-Events: telephone-event
    Supported: replaces
    Supported: sdp-anat
    Supported: timer
    Server: Cisco-SIPGateway/IOS-12.x
    Session-Expires: 1800;refresher=uac
    Content-Type: application/sdp
    Content-Disposition: session;handling=required

    v=0
    o=CiscoSystemsSIP-GW-UserAgent 6810 2753 IN IP4 14.128.100.150
    s=SIP Call
    c=IN IP4 14.128.100.150
    t=0 0
    m=audio 16862 RTP/AVP 18 101
    c=IN IP4 14.128.100.150
    a=rtpmap:18 G729/8000
    a=fmtp:18 annexb=no
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-16
    a=ptime:20

Scenario 3

Call Flow: IP Phone 1 -- CME 1 -- SIP -- CUSP -- SIP --  CME 2 -- IP Phone 2

Dial 4001 or 4002 from IP Phone 1 in order to reach extensions on IP Phone 2.

CME 2 is UC520 in this scenario and CME 1 acts as PSTN.

  1. The SIP INVITE comes to CUSP from CME 1 (PSTN).
    [DsTransportListener-3] DEBUG 2013.02.28 05:28:57:360 DsSipLlApi.Wire - 
    Received UDP packet on 14.128.100.169:5062 ,source 14.128.100.150:56578
    INVITE sip:4002@14.128.100.169:5062 SIP/2.0
    Via: SIP/2.0/UDP 14.128.100.150:5060;branch=z9hG4bK2292567
    Remote-Party-ID: <sip:85224044444@14.128.100.150>
    ;party=calling;screen=no;privacy=off
    From: <sip:85224044444@14.128.100.150>;tag=84086F7C-10B8
    To: <sip:4002@14.128.100.169>
    Date: Thu, 28 Feb 2013 05:28:57 GMT
    Call-ID: 9559E957-809E11E2-9856EC62-1B7185EE@14.128.100.150
    Supported: 100rel,timer,resource-priority,replaces,sdp-anat
    Min-SE: 1800
    Cisco-Guid: 2446255913-2157842914-2555505762-0460424686
    User-Agent: Cisco-SIPGateway/IOS-12.x
    Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER,
    SUBSCRIBE, NOTIFY, INFO, REGISTER
    CSeq: 101 INVITE
    Max-Forwards: 70
    Timestamp: 1362029337
    Contact: <sip:85224044444@14.128.100.150:5060>
    Expires: 180
    Allow-Events: telephone-event
    Content-Type: application/sdp
    Content-Disposition: session;handling=required
    Content-Length: 276

    v=0
    o=CiscoSystemsSIP-GW-UserAgent 3653 4016 IN IP4 14.128.100.150
    s=SIP Call
    c=IN IP4 14.128.100.150
    t=0 0
    m=audio 19202 RTP/AVP 18 101
    c=IN IP4 14.128.100.150
    a=rtpmap:18 G729/8000
    a=fmtp:18 annexb=no
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-16
    a=ptime:20

    --- end of packet ---
  2. The call is accepted on the network (Net-UC520) configuration that matches.

    CLI
    sip listen Net-UC520 udp 14.128.100.169 5062

    !
    sip network Net-From-UC520 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
    !

    GUI


    DEBUG

    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:362 conditions.RegexCondition - 
    inNetwork='Net-UC520'
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:362 conditions.RegexCondition -
    IN_NETWORK: Net-UC520
  3. The Pre-Normalization sequence is executed.

    CLI
    trigger pre-normalization sequence 1 policy CUCM-Prefix-408 condition 
    TC-from-CUCM
    GUI


    DEBUG
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:362 util.Normalization -
    Entering Normalization(moduleRequest:pre-normalize)
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:362 conditions.RegexCondition -
    inNetwork='Net-UC520'
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:362 conditions.RegexCondition -
    IN_NETWORK: Net-UC520
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:362 conditions.AbstractRegexCondition -
    pattern(^\QNet-CUCM\E$), toMatch(Net-UC520) returning false
    [REQUESTI.10] INFO 2013.02.28 05:28:57:362 util.Normalization -
    skipping pre-normalize, due to either no trigger is configured or triggers
    did not evaluate to true or is configured to by-pass
  4. The Trigger Condition (TC-PSTN-to-UC520) is matched.

    CLI
    !
    trigger condition TC-PSTN-to-UC520
    sequence 1
    in-network ^\QNet-UC520\E$
    end sequence
    end trigger condition
    !

    GUI


    DEBUG
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 conditions.RegexCondition - 
    inNetwork='Net-UC520'
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 conditions.RegexCondition -
    IN_NETWORK: Net-UC520
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 conditions.AbstractRegexCondition -
    pattern(^\QNet-UC520\E$), toMatch(Net-UC520) returning true
  5. The Routing Trigger configuration is checked in order to find the Route Policy (Policy-UC520) that matches based on the Trigger Condition (TC-PSTN-to-UC520).

    CLI
    trigger routing sequence 3 policy Policy-UC520 condition TC-PSTN-to-UC520 
    GUI


    DEBUG
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 triggers.ModuleTrigger - 
    ModuleTrigger.eval() action<Policy-UC520> actionParameter<>
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 triggers.ModuleTrigger -
    ModuleTrigger.eval() got the policy, executing it ...
  6. The Route Policy (Policy-UC520) configuration is checked in order to find the Route Table (RT-UC520) that matches.

    CLI
    !
    policy lookup Policy-UC520
    sequence 100 RT-UC520 request-uri uri-component user
    modify-key 400[12] 2222
    rule exact
    end sequence
    end policy
    !

    GUI



    DEBUG
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 nrs.XCLPrefix - 
    Entering getKeyValue()
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 nrs.FieldSelector -
    getUriPart: URI - sip:4002@14.128.100.169:5062 part 6
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 nrs.FieldSelector -
    Requested field 45
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 nrs.FieldSelector -
    Returning key 4002
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 nrs.FieldSelector -
    Retrieved Modifier RegexModifier: match= 400[12], replace= 2222,
    ignore case= false
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 nrs.FieldSelector -
    Input field: 4002
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 nrs.FieldSelector -
    Modified field: 2222
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 nrs.XCLPrefix -
    Leaving getKeyValue()
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:363 modules.XCLLookup -
    table=RT-UC520, key=2222
    [REQUESTI.10] INFO 2013.02.28 05:28:57:364 modules.XCLLookup -
    table is RT-UC520
  7. The Route Table (RT-UC520) configuration is checked in order to find the Target Destination (RG-UC520).

    CLI
    !
    route table RT-UC520
    key 2222 group RG-UC520
    end route table
    !
    GUI



    DEBUG
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 routingtables.RoutingTable - 
    Entering lookup()
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 routingtables.RoutingTable -
    Looking up 2222 in table RT-UC520 with rule exact and modifiers=none
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 routingtables.RoutingTable -
    Entering applyModifiers()
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 routingtables.RoutingTable -
    Leaving applyModifiers(), returning 2222
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 routingtables.RoutingTable -
    Leaving lookup()
    [REQUESTI.10] INFO 2013.02.28 05:28:57:364 nrs.XCLPrefix -
    NRS Routing decision is: RouteTable:RT-UC520, RouteKey:2222, RouteGroup:RG-UC520
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 loadbalancer.LBFactory -
    Entering createLoadBalancer()
    [REQUESTI.10] INFO 2013.02.28 05:28:57:364 loadbalancer.LBFactory -
    lbtype is 3(call-id)
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 loadbalancer.LBFactory -
    Leaving createLoadBalancer()
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 nrs.XCLPrefix -
    Stored NRSAlgResult=isFound=true, isFailure=false, Response=-1,
    Routes=[Ruri: SG-UC520, Route: null, Network: Net-UC520, q-value=1.
    0radvance=[502, 503]], PolicyAdvance=null
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 nrs.NRSAlgResult -
    set policyAdvance as specified in route=RouteTable:RT-UC520, RouteKey:2222,
    RouteGroup:RG-UC520
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 nrs.NRSAlgResult -
    no policyAdvance specified in route
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 nrs.NRSAlgResult -
    set policyAdvance as specified in algorithm={lookupkeymodifier=
    [ RegexModifier: match= 400[12], replace= 2222, ignore case= false],
    lookuprule=0, lookupfield=45, lookuplenght=-1, lookuptable=RT-UC520,
    sequence=100, algorithm=1}
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:364 nrs.NRSAlgResult -
    no policyAdvance specified in algorithm
  8. The Post-Normalization Sequence is executed.

    CLI
    trigger post-normalization sequence 1 policy UC520-Four-to-Full 
    condition TC-UC520-to-PSTN
    GUI


    DEBUG
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:365 util.Normalization - 
    Entering Normalization(moduleRequest:post-normalize)
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:365 conditions.RegexCondition -
    inNetwork='Net-UC520'
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:365 conditions.RegexCondition -
    IN_NETWORK: Net-UC520
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:365 conditions.AbstractRegexCondition -
    pattern(^\QNet-From-UC520\E$), toMatch(Net-UC520) returning false
    [REQUESTI.10] INFO 2013.02.28 05:28:57:365 util.Normalization -
    skipping post-normalize, due to either no trigger is configured or
    triggers did not evaluate to true or is configured to by-pass
  9. The Route Group configuration is checked in order to find the element IP address, and the call is routed to the best route possible based on the Q-value and Weight setting.

    CLI
    !
    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
    !

    GUI




    DEBUG
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:365 loadbalancer.LBFactory - 
    Entering createLoadBalancer()
    [REQUESTI.10] INFO 2013.02.28 05:28:57:365 loadbalancer.LBFactory -
    lbtype is 0(global)
    [REQUESTI.10] INFO 2013.02.28 05:28:57:365 loadbalancer.LBFactory -
    Default lbtype is 3(call-id)
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:365 loadbalancer.LBFactory -
    Leaving createLoadBalancer()
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:365 loadbalancer.LBBase -
    Entering getServer()
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:365 loadbalancer.LBBase -
    Entering initializeDomains()
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:365 servergroups.
    ServerGlobalStateWrapper - Net-UC520:14.128.100.161:5060:1 numTries=
    2--->isServerAvailable(): true
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:366 loadbalancer.LBBase -
    Leaving initializeDomains()
    [REQUESTI.10] INFO 2013.02.28 05:28:57:366 loadbalancer.LBHashBased -
    list of elements in order on which load balancing is done :
    {reSgElementWeight=0, reSgElementSgName=SG-UC520, reSgElementTransport=UDP,
    reSgElementQValue=1.0, reSgElementPort=5060, reSgElementHost=14.128.100.161},
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:366 servergroups.AbstractNextHop -
    Entering compareDomainNames()
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:366 servergroups.AbstractNextHop -
    Leaving compareDomainNames()
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:366 loadbalancer.LBBase -
    Server group SG-UC520 selected {reSgElementWeight=0, reSgElementSgName=SG-UC520,
    reSgElementTransport=UDP, reSgElementQValue=1.0, reSgElementPort=5060,
    reSgElementHost=14.128.100.161}
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:366 loadbalancer.LBBase -
    Leaving getServer()
  10. The SIP INVITE is sent to the selected element.
    [REQUESTI.10] DEBUG 2013.02.28 05:28:57:367 DsSipLlApi.Wire - 
    Sending UDP packet on 14.128.100.169:32773, destination 14.128.100.161:5060
    INVITE sip:4002@SG-UC520 SIP/2.0
    Via: SIP/2.0/UDP
    14.128.100.169:5062;branch=z9hG4bK.ToYJFeKMyfZGySv.gcLjg~~237
    Via: SIP/2.0/UDP 14.128.100.150:5060;branch=z9hG4bK2292567
    Max-Forwards: 69
    To: <sip:4002@14.128.100.169>
    From: <sip:85224044444@14.128.100.150>;tag=84086F7C-10B8
    Contact: <sip:85224044444@14.128.100.150:5060>
    Expires: 180
    Remote-Party-ID: <sip:85224044444@14.128.100.150>
    ;party=calling;screen=no;privacy=off
    Call-ID: 9559E957-809E11E2-9856EC62-1B7185EE@14.128.100.150
    CSeq: 101 INVITE
    Content-Length: 276
    Date: Thu, 28 Feb 2013 05:28:57 GMT
    Supported: 100rel,timer,resource-priority,replaces,sdp-anat
    Min-SE: 1800
    Cisco-Guid: 2446255913-2157842914-2555505762-0460424686
    User-Agent: Cisco-SIPGateway/IOS-12.x
    Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER,
    SUBSCRIBE, NOTIFY, INFO, REGISTER
    Timestamp: 1362029337
    Allow-Events: telephone-event
    Content-Type: application/sdp
    Content-Disposition: session;handling=required

    v=0
    o=CiscoSystemsSIP-GW-UserAgent 3653 4016 IN IP4 14.128.100.150
    s=SIP Call
    c=IN IP4 14.128.100.150
    t=0 0
    m=audio 19202 RTP/AVP 18 101
    c=IN IP4 14.128.100.150
    a=rtpmap:18 G729/8000
    a=fmtp:18 annexb=no
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-16
    a=ptime:20

Scenario 4

Call Flow:IP Phone 1 -- CME 1 -- SIP -- CUSP -- SIP -- CME 2 -- IP Phone 2

Dial 4444 from IP Phone 2 which is changed to 415 240 4444 with Post-Normalization in order to reach IP Phone 1.

CME 2 is UC520 in this scenario and CME 1 acts as PSTN.

  1. The SIP INVITE comes to CUSP from CME 2 (UC520).
    [DsTransportListener-1] DEBUG 2013.02.28 07:06:57:220 DsSipLlApi.Wire - 
    Received UDP packet on 14.128.100.169:5063 ,source 14.128.100.161:59404
    INVITE sip:4444@14.128.100.169:5063 SIP/2.0
    Date: Thu, 28 Feb 2013 07:09:20 GMT
    Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER,
    SUBSCRIBE, NOTIFY, INFO, REGISTER
    From: <sip:4001@14.128.100.161>;tag=256D566C-22AC
    Allow-Events: telephone-event
    Supported: 100rel,timer,resource-priority,replaces,sdp-anat
    Min-SE: 1800
    Remote-Party-ID: <sip:4001@14.128.100.161>
    ;party=calling;screen=no;privacy=off
    Cisco-Guid: 2598740490-2158760418-2150671243-2598404062
    Timestamp: 1362035360
    Content-Length: 543
    User-Agent: Cisco-SIPGateway/IOS-12.x
    To: <sip:4444@14.128.100.169>
    Contact: <sip:4001@14.128.100.161:5060>
    Expires: 180
    Content-Type: multipart/mixed;boundary=uniqueBoundary
    Call-ID: 9B62C157-80AC11E2-8035A38B-9AE07FDE@14.128.100.161
    Via: SIP/2.0/UDP 14.128.100.161:5060;branch=z9hG4bK21E82
    CSeq: 101 INVITE
    Max-Forwards: 70
    Mime-Version: 1.0

    --uniqueBoundary
    Content-Type: application/sdp
    Content-Disposition: session;handling=required

    v=0
    o=CiscoSystemsSIP-GW-UserAgent 3418 2914 IN IP4 14.128.100.161
    s=SIP Call
    c=IN IP4 14.128.100.161
    t=0 0
    m=audio 17618 RTP/AVP 18 101
    c=IN IP4 14.128.100.161
    a=rtpmap:18 G729/8000
    a=fmtp:18 annexb=no
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-16
    a=ptime:20

    --uniqueBoundary
    Content-Type: application/gtd
    Content-Disposition: signal;handling=optional

    IAM,
    GCI,9ae5a20a80ac11e28030a38b9ae07fde

    --- end of packet ---
  2. The call is accepted on the network (Net-From-UC520) configuration that matches.

    CLI
    sip listen Net-From-UC520 udp 14.128.100.169 5063
    !
    sip network Net-From-UC520 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
    !

    GUI


    DEBUG
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:229 conditions.RegexCondition - 
    inNetwork='Net-From-UC520'
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:229 conditions.RegexCondition -
    IN_NETWORK: Net-From-UC520
  3. The Pre-Normalization sequence is executed.

    CLI
    trigger pre-normalization sequence 1 policy CUCM-Prefix-408 condition 
    TC-from-CUCM
    GUI


    DEBUG
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:229 util.Normalization - 
    Entering Normalization(moduleRequest:pre-normalize)
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:229 conditions.RegexCondition -
    inNetwork='Net-From-UC520'
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:229 conditions.RegexCondition -
    IN_NETWORK: Net-From-UC520
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:229 conditions.AbstractRegexCondition -
    pattern(^\QNet-CUCM\E$), toMatch(Net-From-UC520) returning false
    [REQUESTI.5] INFO 2013.02.28 07:06:57:229 util.Normalization -
    skipping pre-normalize, due to either no trigger is configured or triggers
    did not evaluate to true or is configured to by-pass
  4. The Trigger Condition (TC-UC520-to-PSTN) is matched.

    CLI
    !
    trigger condition TC-UC520-to-PSTN
    sequence 1
    in-network ^\QNet-From-UC520\E$
    end sequence
    end trigger condition
    !

    GUI


    DEBUG
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:229 conditions.RegexCondition - 
    inNetwork='Net-From-UC520'
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:229 conditions.RegexCondition -
    IN_NETWORK: Net-From-UC520
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 conditions.AbstractRegexCondition -
    pattern(^\QNet-From-UC520\E$), toMatch(Net-From-UC520) returning true
  5. The Routing Trigger configuration is checked in order to find the Route Policy (Policy-UC520-to-PSTN) that matches based on the Trigger Condition (TC-UC520-to-PSTN).

    CLI
    trigger routing sequence 4 policy Policy-UC520-to-PSTN condition 
    TC-UC520-to-PSTN
    GUI


    DEBUG
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 triggers.ModuleTrigger - 
    ModuleTrigger.eval() action<Policy-UC520-to-PSTN> actionParameter<>
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 triggers.ModuleTrigger -
    ModuleTrigger.eval() got the policy, executing it ...
  6. The Route Policy (Policy-UC520-to-PSTN) configuration is checked in order to find the Route Table (RT-UC520-PSTN) that matches.

    CLI
    !
    policy lookup Policy-UC520-to-PSTN
    sequence 100 RT-UC520-PSTN request-uri uri-component user
    modify-key 4444 3333
    rule exact
    end sequence
    end policy
    !

    GUI



    DEBUG
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 nrs.XCLPrefix - 
    Entering getKeyValue()
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 nrs.FieldSelector -
    getUriPart: URI - sip:4444@14.128.100.169:5063 part 6
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 nrs.FieldSelector -
    Requested field 45
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 nrs.FieldSelector -
    Returning key 4444
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 nrs.FieldSelector -
    Retrieved Modifier RegexModifier: match= 4444, replace= 3333,
    ignore case= false
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 nrs.FieldSelector -
    Input field: 4444
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 nrs.FieldSelector -
    Modified field: 3333
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 nrs.XCLPrefix -
    Leaving getKeyValue()
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 modules.XCLLookup -
    table=RT-UC520-PSTN, key=3333
    [REQUESTI.5] INFO 2013.02.28 07:06:57:230 modules.XCLLookup -
    table is RT-UC520-PSTN
  7. The Route Table (RT-UC520-PSTN) configuration is checked in order to find the Target Destination (RG-UC520).

    CLI
    !
    route table RT-UC520-PSTN
    key 3333 group RG-UC520-to-PSTN
    end route table
    !
    GUI



    DEBUG
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:230 routingtables.RoutingTable - 
    Entering lookup()
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 routingtables.RoutingTable -
    Looking up 3333 in table RT-UC520-PSTN with rule exact and modifiers=none
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 routingtables.RoutingTable -
    Entering applyModifiers()
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 routingtables.RoutingTable -
    Leaving applyModifiers(), returning 3333
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 routingtables.RoutingTable -
    Leaving lookup()
    [REQUESTI.5] INFO 2013.02.28 07:06:57:231 nrs.XCLPrefix -
    NRS Routing decision is: RouteTable:RT-UC520-PSTN, RouteKey:3333,
    RouteGroup:RG-UC520-to-PSTN
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 loadbalancer.LBFactory -
    Entering createLoadBalancer()
    [REQUESTI.5] INFO 2013.02.28 07:06:57:231 loadbalancer.LBFactory -
    lbtype is 3(call-id)
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 loadbalancer.LBFactory -
    Leaving createLoadBalancer()
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 nrs.XCLPrefix -
    Stored NRSAlgResult=isFound=true, isFailure=false, Response=-1,
    Routes=[Ruri: 14.128.100.150, Route: null, Network: Net-From-UC520,
    q-value=1.0radvance=[502, 503]], PolicyAdvance=null
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 nrs.NRSAlgResult -
    set policyAdvance as specified in route=RouteTable:RT-UC520-PSTN,
    RouteKey:3333, RouteGroup:RG-UC520-to-PSTN
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 nrs.NRSAlgResult -
    no policyAdvance specified in route
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 nrs.NRSAlgResult -
    set policyAdvance as specified in algorithm={lookupkeymodifier=
    [ RegexModifier: match= 4444, replace= 3333, ignore case= false],
    lookuprule=0, lookupfield=45, lookuplenght=-1, lookuptable=RT-UC520-PSTN,
    sequence=100, algorithm=1}
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 nrs.NRSAlgResult -
    no policyAdvance specified in algorithm
  8. The Post-Normalization sequence is executed.

    CLI
    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
    !

    GUI



    DEBUG
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 util.Normalization - 
    Entering Normalization(moduleRequest:post-normalize)
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 conditions.RegexCondition -
    inNetwork='Net-From-UC520'
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 conditions.RegexCondition -
    IN_NETWORK: Net-From-UC520
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 conditions.AbstractRegexCondition -
    pattern(^\QNet-From-UC520\E$), toMatch(Net-From-UC520) returning true
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 triggers.ModuleTrigger -
    ModuleTrigger.eval() action<UC520-Four-to-Full> actionParameter<>
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 triggers.ModuleTrigger -
    ModuleTrigger.eval() got the policy, executing it ...
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 normalization.URIComponentNormalizationAlgorithm -
    normalizing request-uri
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 normalization.URIComponentNormalizationAlgorithm -
    updating user/phone of the sip:4444@14.128.100.150 to 85224044444
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 util.Normalization -
    Leaving Normalization.normalize()
  9. The Route Group configuration is checked in order to find the element IP address, and the call is routed to the best route possible based on the Q-value and Weight setting.

    CLI
    !
    route group RG-UC520-to-PSTN
    element target-destination 14.128.100.150 Net-From-UC520 q-value 1.0
    failover-codes 502 - 503
    weight 0
    end element
    end route
    !

    GUI



    DEBUG
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 loadbalancer.LBBase - 
    Entering getServer()
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 loadbalancer.LBBase -
    Entering initializeDomains()
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 nrs.NRSRoutes -
    routes before applying time policies: [Ruri: 14.128.100.150,
    Route: null, Network: Net-From-UC520, q-value=1.0radvance=[502, 503]]
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 nrs.NRSRoutes -
    routes after applying time policies: [Ruri: 14.128.100.150, Route:
    null, Network: Net-From-UC520, q-value=1.0radvance=[502, 503]]
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:231 loadbalancer.LBBase -
    Leaving initializeDomains()
    [REQUESTI.5] INFO 2013.02.28 07:06:57:231 loadbalancer.LBHashBased -
    list of elements in order on which load balancing is done : Ruri:
    14.128.100.150, Route: null, Network: Net-From-UC520, q-value=
    1.0radvance=[502, 503],
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 loadbalancer.LBBase -
    Server group route-sg selected Ruri: 14.128.100.150, Route: null,
    Network: Net-From-UC520, q-value=1.0radvance=[502, 503]
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:232 loadbalancer.LBBase -
    Leaving getServer()
  10. The SIP INVITE is sent to the selected element.
    [REQUESTI.5] DEBUG 2013.02.28 07:06:57:233 DsSipLlApi.Wire - 
    Sending UDP packet on 14.128.100.169:32770, destination 14.128.100.150:5060
    INVITE sip:85224044444@14.128.100.150 SIP/2.0
    Via: SIP/2.0/UDP
    14.128.100.169:5063;branch=z9hG4bK.ToYJFeKMyfZGySv.gcLjg~~238
    Via: SIP/2.0/UDP 14.128.100.161:5060;branch=z9hG4bK21E82
    Max-Forwards: 69
    To: <sip:4444@14.128.100.169>
    From: <sip:4001@14.128.100.161>;tag=256D566C-22AC
    Contact: <sip:4001@14.128.100.161:5060>
    Expires: 180
    Remote-Party-ID: <sip:4001@14.128.100.161>
    ;party=calling;screen=no;privacy=off
    Call-ID: 9B62C157-80AC11E2-8035A38B-9AE07FDE@14.128.100.161
    CSeq: 101 INVITE
    Content-Length: 543
    Date: Thu, 28 Feb 2013 07:09:20 GMT
    Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER,
    SUBSCRIBE, NOTIFY, INFO, REGISTER
    Allow-Events: telephone-event
    Supported: 100rel,timer,resource-priority,replaces,sdp-anat
    Min-SE: 1800
    Cisco-Guid: 2598740490-2158760418-2150671243-2598404062
    Timestamp: 1362035360
    User-Agent: Cisco-SIPGateway/IOS-12.x
    Content-Type: multipart/mixed;boundary=uniqueBoundary
    MIME-Version: 1.0

    --uniqueBoundary
    Content-Type: application/sdp
    Content-Disposition: session;handling=required

    v=0
    o=CiscoSystemsSIP-GW-UserAgent 3418 2914 IN IP4 14.128.100.161
    s=SIP Call
    c=IN IP4 14.128.100.161
    t=0 0
    m=audio 17618 RTP/AVP 18 101
    c=IN IP4 14.128.100.161
    a=rtpmap:18 G729/8000
    a=fmtp:18 annexb=no
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-16
    a=ptime:20

    --uniqueBoundary
    Content-Type: application/gtd
    Content-Disposition: signal;handling=optional

    IAM,
    GCI,9ae5a20a80ac11e28030a38b9ae07fde

Configuration for All Four Scenarios

Here is the complete CUSP configuration for all four call scenarios described in this document:

ajeesing-cusp-8.5.3(cusp)# show configuration active verbose
Building CUSP configuration...
!
server-group sip global-load-balance call-id
server-group sip retry-after 0
server-group sip element-retries udp 2
server-group sip element-retries tls 1
server-group sip element-retries tcp 1
sip dns-srv
enable
no naptr
end dns
!
no sip header-compaction
!
sip logging
sip max-forwards 70
sip network Net-CUCM 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
!
sip network Net-From-UC520 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
!
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
!
sip network Net-UC520 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
!
sip overload reject retry-after 0
sip peg-counting 2 86400
sip privacy service
sip queue message
drop-policy head
low-threshold 80
size 2000
thread-count 20
end queue
!
sip queue radius
drop-policy head
low-threshold 80
size 2000
thread-count 20
end queue
!
sip queue request
drop-policy head
low-threshold 80
size 2000
thread-count 20
end queue
!
sip queue response
drop-policy head
low-threshold 80
size 2000
thread-count 20
end queue
!
sip queue st-callback
drop-policy head
low-threshold 80
size 2000
thread-count 10
end queue
!
sip queue timer
drop-policy none
low-threshold 80
size 2500
thread-count 8
end queue
!
sip queue xcl
drop-policy head
low-threshold 80
size 2000
thread-count 2
end queue
!
route recursion
!
sip tcp connection-timeout 30
sip tcp max-connections 256
!
no sip tls
!
trigger condition TC-PSTN-to-UC520
sequence 1
in-network ^\QNet-UC520\E$
end sequence
sequence 2
in-network ^\QNet-CUCM\E$
end sequence
end trigger condition
!
trigger condition TC-UC520-to-PSTN
sequence 1
in-network ^\QNet-From-UC520\E$
end sequence
end trigger condition
!
trigger condition TC-from-CUCM
sequence 1
in-network ^\QNet-CUCM\E$
end sequence
end trigger condition
!
trigger condition TC-from-PSTN
sequence 1
in-network ^\QNet-PSTN\E$
end sequence
sequence 2
in-network ^\QNet-CUCM\E$
message request
end sequence
end trigger condition
!
trigger condition mid-dialog
sequence 1
mid-dialog
end sequence
end trigger condition
!
accounting
no enable
no client-side
no server-side
end accounting
!
server-group sip group SG-CUCM.ajeet.com Net-CUCM
element ip-address 14.128.64.191 5060 udp q-value 1 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
!
server-group sip group SG-PSTN Net-PSTN
element ip-address 14.128.100.150 5060 udp q-value 1.0 weight 0
failover-resp-codes 503
lbtype global
ping
end server-group
!
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
!
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
!
route group RG-UC520-to-PSTN
element target-destination 14.128.100.150 Net-From-UC520 q-value 1.0
failover-codes 502 - 503
weight 0
end element
end route
!
route table RT-CUCM
key 1111 target-destination SG-CUCM.ajeet.com Net-CUCM
end route table
!
route table RT-PSTN
key 4082022222 target-destination SG-PSTN Net-PSTN
end route table
!
route table RT-UC520
key 2222 group RG-UC520
end route table
!
route table RT-UC520-PSTN
key 3333 group RG-UC520-to-PSTN
end route table
!
policy normalization CUCM-Prefix-408
uri-component update request-uri user 2022222 4082022222
end policy
!
policy normalization UC520-Four-to-Full
uri-component update request-uri user 4444 85224044444
end policy
!
policy lookup Policy-UC520
sequence 100 RT-UC520 request-uri uri-component user
modify-key 400[12] 2222
rule exact
end sequence
end policy
!
policy lookup Policy-UC520-to-PSTN
sequence 100 RT-UC520-PSTN request-uri uri-component user
modify-key 4444 3333
rule exact
end sequence
end policy
!
policy lookup Policy-to-CUCM
sequence 100 RT-CUCM request-uri uri-component user
modify-key 4082022102 1111
rule exact
end sequence
end policy
!
policy lookup Policy-to-PSTN
sequence 100 RT-PSTN request-uri uri-component user
rule exact
end sequence
end policy
!
trigger routing sequence 1 policy Policy-to-CUCM condition
TC-from-PSTN
trigger routing sequence 2 policy Policy-to-PSTN condition
TC-from-CUCM
trigger routing sequence 3 policy Policy-UC520 condition
TC-PSTN-to-UC520
trigger routing sequence 4 policy Policy-UC520-to-PSTN condition
TC-UC520-to-PSTN
trigger pre-normalization sequence 1 policy CUCM-Prefix-408
condition TC-from-CUCM
trigger post-normalization sequence 1 policy UC520-Four-to-Full
condition TC-UC520-to-PSTN
!
server-group sip ping-options Net-CUCM 14.128.100.169 4001
method OPTIONS
ping-type proactive 2500
timeout 2000
end ping
!
server-group sip global-ping
sip cac session-timeout 720
sip cac Net-CUCM 14.128.64.191 5060 udp limit -1
sip cac Net-CUCM 14.128.64.192 5060 udp limit -1
sip cac Net-PSTN 14.128.100.150 5060 udp limit -1
sip cac Net-UC520 14.128.100.161 5060 udp limit -1
!
no sip cac
!
sip listen Net-CUCM udp 14.128.100.169 5061
sip listen Net-From-UC520 udp 14.128.100.169 5063
sip listen Net-PSTN udp 14.128.100.169 5060
sip listen Net-UC520 udp 14.128.100.169 5062
!
call-rate-limit 200
!
end
ajeesing-cusp-8.5.3(cusp)#

Verify

There is currently no verification procedure available for this configuration.

Troubleshoot

There is currently no specific troubleshooting information available for this configuration.

Related Information

Updated: Aug 06, 2013
Document ID: 116252