26-Oct-2020 09:30
Currently I need an iRule that verifies the amount of characters that a field has in the header, if a cell phone number arrives (10 digits) it is redirected to a VS, but if a land line number arrives (7 digits) it is redirected to another VS, is it possible to make an irule for this?
Header:
<name>operatorUserId</name>
<singleValue>+573xxxxxxxxx</singleValue>
</values>
<values>
<name>providerUserId</name>
<singleValue>+573xxxxxxxxx</singleValue>
</values>
30-Oct-2020 14:31
I have made this irule, but I do not know how verify the amount of characters
when HTTP_REQUEST_DATA {
set operatorUserId [findstr [HTTP::payload] "<operatorUserId"]
if { [ string tolower $operatorUserId ] contains "10 characters" } {
#log local0. "$operatorUserId "
virtual VS_10_characters
#log local0. "\[HTTP::payload\]: [HTTP::payload]"
}
if { [ string tolower $operatorUserId ] contains "7 characters" } {
#log local0. "$operatorUserId "
virtual VS_7_characters
#log local0. "\[HTTP::payload\]: [HTTP::payload]"
}
03-Nov-2020
21:55
- last edited on
04-Jun-2023
21:12
by
JimmyPackets
Here's what you can do, I've tested it, able to capture it fine.
set digits [findstr [HTTP::payload] "<singleValue>" 13 "<"]
log local0. "$digits & legth is [string length $digits]"
Payload:
<values>
<name>operatorUserId</name>
<singleValue>1234567809</singleValue>
</values>
Output:
<HTTP_REQUEST>: 1234567809 & legth is 10
Payload:
<values>
<name>operatorUserId</name>
<singleValue>1234567</singleValue>
</values>
Output:
<HTTP_REQUEST>: 1234567 & legth is 7
Now with the length value, you can either set it on a variable and do a if condition and send to respective virtual. Hope it helps.