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
-
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
- 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()
- 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
- 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
- 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).
CLItrigger 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 ...
- 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
- The call is accepted to the network (Net-PSTN) configuration that matches.
CLIsip 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
[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 ---
- The Pre-Normalization sequence is executed.
CLItrigger 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
- 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
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.
- The call is accepted on the network (Net-CUCM) configuration that matches.
CLIsip 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
- 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
- The Post-Normalization Sequence is executed.
CLItrigger 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
- 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
- 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).
CLItrigger 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 ...
- 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
- The Pre-Normalization sequence is executed.
CLItrigger 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()
- 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 ---
- 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()
- 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.
- 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 ---
- The call is accepted on the network (Net-UC520) configuration that matches.
CLIsip 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
- The Pre-Normalization sequence is executed.
CLItrigger 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
- 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
- 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).
CLItrigger 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 ...
- 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
- 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
- The Post-Normalization Sequence is executed.
CLItrigger 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
- 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()
- 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.
- 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 ---
- The call is accepted on the network (Net-From-UC520) configuration that matches.
CLIsip 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
- The Pre-Normalization sequence is executed.
CLItrigger 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
- 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
- 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).
CLItrigger 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 ...
- 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
- 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
- The Post-Normalization sequence is executed.
CLItrigger 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()
- 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()
- 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:
Post a Comment