Panel | ||||
---|---|---|---|---|
In this section:
|
Code Block | ||
---|---|---|
| ||
INVITE sip:9886001123;phone-context=enterprise-1.net@10.7.15.143:5060 SIP/2.0 Via: SIP/2.0/UDP 10.7.6.56:5060;branch=z9hG4bK-1-0 From: <sip:+16031234567@10.7.6.56:5060>;tag=1 To: sut <sip:9886001123@10.7.15.143:5060> Call-ID: 1-18533@10.7.6.56 Cseq: 1 INVITE Contact: <sip:6203215002@10.7.6.56:5060> Max-Forwards: 70 Subject: Performance Test P-Charging-Vector: icid-value=3cbeb620-0001-1000-00-0000-10-6b-00-02-20;icid-generated-at=10.10.10.10;orig-ioi=1234;term-ioi=4567 Record-Route: <sip:6203215002@10.7.6.56:5060;lr;x-ep-index=1> Allow: INVITE,ACK,CANCEL,BYE,REGISTER,REFER,INFO,SUBSCRIBE,NOTIFY,PRACK,UPDATE,OPTIONS,MESSAGE,PUBLISH Require: timer Supported: timer Min-SE: 90 Session-Expires:90;refresher=uas Content-Type: application/sdp Content-Length: 125 v=0 o=user1 53655765 2353687637 IN IP4 10.7.6.56 s=- c=IN IP4 10.7.6.56 t=0 0 m=audio 22222 RTP/AVP 0 8 18 a=sendrecv |
Create flexible policy rules and apply to SBC:
Code Block | ||
---|---|---|
| ||
Rule 1 # This rule supports flexible policy to route calls based upon "phone-context" parameter # in Request-URI of incoming INVITE #set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 # criteria 1: Message set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT profileType flexiblePolicy set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 1 type message set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 1 type message message messageTypes request set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 1 type message message methodType invite # criteria 2: header set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 2 type header set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 2 type header header condition exist set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 2 type header header name request-line # configure the parameter criteria set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 3 type parameter set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 3 type parameter set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 3 type parameter parameter condition exist set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 3 type parameter parameter paramType userinfo set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 criterion 3 type parameter parameter name phone-context # action 1 - store policy/routing string into messageScope variable(var1) set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 action 1 type parameter set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 action 1 operation store set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 action 1 paramType userinfo set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 action 1 to type variable variableValue var1 variableScopeValue message set profiles signaling sipAdaptorProfile FP_PHONE_CONTEXT rule 1 action 1 from type parameter value phone-context |
Flexible policy rules can be associated either with the Ingress Zone or the Ingress Trunk Group:
To associate flexible policy rules with the Ingress Zone:
Code Block |
---|
set addressContext defaultAddressContext zone ZONE_IAD flexiblePolicyAdapterProfile FP_PHONE_CONTEXT |
To associate flexible policy rules with the Ingress Trunk Group:
Code Block |
---|
set addressContext defaultAddressContext zone ZONE_IAD sipsTrunkGroup IAD_TG signaling flexiblePolicyAdapterProfile FP_PHONE_CONTEXT |
Note |
---|
SBC extracts the value of the phone-context parameter and stores it into var1, which is passed in policy request to PSX. |
Figure 1: Creating Flexible Variable Rules
Figure 2: Assign Flexible Variable Rules to Ingress Trunk Group
Modify Element Routing Priority to Use Flex Routing Call Processing Element Type in Standard Route Configuration
Figure 3: Modify Element Routing Priority
Associate Element Routing Priority with Trunk Group to Use Flex Routing Call Processing Element type in Standard Route Configuration
Figure 4: Associate Element Routing Priority Profile to Trunk Group
Figure 5: Create Standard Routes
Figure 6: Create Standard Routes
The two standard routes above result in the following Routing Label selection:
In addition to the Call Processing Element types, a Call Parameter Filter Profile may be applied to a Standard Route to match/filter flexible routing criteria.
Figure 7: Create Standard Routes using Call Parameter Filter Profile
The standard route above results in Routing Label selection:
Code Block | ||
---|---|---|
| ||
INVITE sip:9886001123@10.7.15.143:5060 SIP/2.0 Via: SIP/2.0/UDP 10.7.6.57:5060;branch=z9hG4bK-1-0 From: <sip:+16031234567@10.7.6.57:5060>;tag=1 To: sut <sip:9886001123@10.7.15.143:5060> Call-ID: 1-28012@10.7.6.57 Cseq: 1 INVITE Contact: <sip:6203215002@10.7.6.57:5060> Max-Forwards: 70 Subject: Performance Test P-Charging-Vector: icid-value=3cbeb620-0001-1000-00-0000-10-6b-00-02-20;icid-generated-at=10.10.10.10;orig-ioi=1234;term-ioi=4567 Record-Route: <sip:6203215002@10.7.6.57:5060;lr;x-ep-index=1> Allow: INVITE,ACK,CANCEL,BYE,REGISTER,REFER,INFO,SUBSCRIBE,NOTIFY,PRACK,UPDATE,OPTIONS,MESSAGE,PUBLISH Require: timer Supported: timer Min-SE: 90 Session-Expires:90;refresher=uas Content-Type: application/sdp Content-Length: 154 v=0 o=user1 53655765 2353687637 IN IP4 10.7.6.57 s=- c=IN IP4 10.7.6.57 t=0 0 m=audio 22222 RTP/AVP 0 8 18 99 a=rtpmap:99 AMR-WB/16000 a=sendrecv |
Code Block | ||
---|---|---|
| ||
# # These rules support flexible policy based upon whether specific codecs (AMR or AMR-WB) # appears in the SDP of incoming INVITE message. # var2: 0, if neither "AMR" nor "AMR-WB" present in SDP. # AMR, if "AMR" present and "AMR-WB" is not present in SDP. # AMR-WB, if "AMR-WB" present in SDP. # # rule 1: initialize variable var2 to "0" set profiles signaling sipAdaptorProfile FP_CODEC profileType flexiblePolicy set profiles signaling sipAdaptorProfile FP_CODEC rule 1 criterion 1 type message message messageTypes request set profiles signaling sipAdaptorProfile FP_CODEC rule 1 criterion 1 type message message methodType invite set profiles signaling sipAdaptorProfile FP_CODEC rule 1 action 1 type variable set profiles signaling sipAdaptorProfile FP_CODEC rule 1 action 1 operation store set profiles signaling sipAdaptorProfile FP_CODEC rule 1 action 1 from type value value "0" set profiles signaling sipAdaptorProfile FP_CODEC rule 1 action 1 to type variable variableValue var2 variableScopeValue message # rule 2: store "AMR" to variable var2 if regex pattern "AMR/" matches in messageBody set profiles signaling sipAdaptorProfile FP_CODEC rule 2 criterion 1 type message message messageTypes request set profiles signaling sipAdaptorProfile FP_CODEC rule 2 criterion 1 type message message methodType invite set profiles signaling sipAdaptorProfile FP_CODEC rule 2 criterion 2 type messageBody messageBody condition regex-match regexp string "AMR/" numMatch match set profiles signaling sipAdaptorProfile FP_CODEC rule 2 action 1 type variable set profiles signaling sipAdaptorProfile FP_CODEC rule 2 action 1 operation store set profiles signaling sipAdaptorProfile FP_CODEC rule 2 action 1 from type value value "AMR" set profiles signaling sipAdaptorProfile FP_CODEC rule 2 action 1 to type variable variableValue var2 variableScopeValue message # rule 3: store "AMR-WB" to variable var2 if regex pattern "AMR-WB/" matches in messageBody set profiles signaling sipAdaptorProfile FP_CODEC rule 3 criterion 1 type message message messageTypes request set profiles signaling sipAdaptorProfile FP_CODEC rule 3 criterion 1 type message message methodType invite set profiles signaling sipAdaptorProfile FP_CODEC rule 3 criterion 2 type messageBody messageBody condition regex-match regexp string "AMR-WB" numMatch match set profiles signaling sipAdaptorProfile FP_CODEC rule 3 action 1 type variable set profiles signaling sipAdaptorProfile FP_CODEC rule 3 action 1 operation store set profiles signaling sipAdaptorProfile FP_CODEC rule 3 action 1 from type value value "AMR-WB" set profiles signaling sipAdaptorProfile FP_CODEC rule 3 action 1 to type variable variableValue var2 variableScopeValue message |
Flexible Policy rules can be associated either with the Ingress zone or the Ingress Trunk Group
To associate flexible policy rules with the ingress zone:
Code Block | ||
---|---|---|
| ||
% set addressContext defaultAddressContext zone ZONE_IAD flexiblePolicyAdapterProfile FP_CODEC |
To associate flexible policy rules with the ingress trunk group
Code Block |
---|
% set addressContext defaultAddressContext zone ZONE_IAD sipsTrunkGroup IAD_TG signaling flexiblePolicyAdapterProfile FP_CODEC |
Presence of codec "AMR" or "AMR-WB" is stored in var2, which is passed in the policy request to the PSX.
Figure 8: Create Call Parameter Filter Profile for AMR Codec
Figure 9: Create Call Parameter Filter Profile for AMR-WB Codec
Figure 10: Create Packet Service Profile for AMR-WB
Figure 11: Create Packet Service Profile for AMR
Figure 12: Create Packet Service Profile ID Group for AMR-WB
Figure 13: Create Packet Service Profile ID Group for AMR
Packet Service Profile ID Group and/or IP Signaling Profile can be associated to Policy Profile.
Figure 14: Create Policy Profiles for AMR-WB Codec
Figure 15: Create Policy Profiles AMR Codec
Figure 16: Create Policy Profile Group
This policy profile group above will result in the following policy profile application:
For Egress policy apply Policy Profile Group to Egress Trunk Group.
Figure 17: Apply Policy Profile Group to Egress Trunk Group
For Ingress policy apply Policy Profile Group to ingress Trunk Group.
Figure 18: Apply Policy Profile Group to Ingress Trunk Group