Wednesday, December 17

CUSP Configuration Example

Configure

This section describes the configuration of four call routing scenarios.

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.The SIP INVITE comes to CUSP from CME.
             
             CLI
             trigger post-normalization sequence 1 policy 
             UC520-Four-to-Full condition TC-UC520-to-PSTN 

  1. 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
  2. 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()
  3. 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
  4. 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
  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 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
  7. 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 
  8. [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 ---
  9. 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
  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

  11.  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 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
  2. 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
  3. 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
  4. 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
  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 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
  7. 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()
  8. 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 ---
  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)# 

No comments:

My CCIE#53599

My journey started in 2013 when I decided for a CCIE in voice. One never really knows what they are in for when starting down this r...