Example 8 Using Header Rule Special Characters
For this manipulation rule, the Oracle® Enterprise Session Border Controller:
- Stores the header value of the Params header with the given pattern rule, and stores both the user name of the Params header and the URI parameter abc
- Adds the URI parameter lpu with the value stored from the previous Params header
- If any of the Params headers match the pattern rule defined in the first step, adds the URI parameter apu with the value aup
- If all of the Params headers match the pattern rule defined in the first step, adds the URI parameter apu with the value apu
- If the first Params headers does not match the pattern rule for storing the URI parameter defined in the first step, adds the URI parameter not with the value 123
- If the first Params headers matches the pattern rule for storing the URI parameter defined in the first step, adds the URI parameter yes with the value 456
This is a sample of the configuration:
sip-manipulation
name specialChar
header-rule
name searchParams
header-name Params
action store
comparison-type pattern-rule
match-value .*sip:(.+)@.*
msg-type request
new-value
methods INVITE
element-rule
name userName
parameter-name
type uri-user
action store
match-val-type any
comparison-type case-sensitive
match-value
new-value
element-rule
name emptyUriParam
parameter-name abc
type uri-param
action store
match-val-type any
comparison-type pattern-rule
match-value
new-value
header-rule
name addUserLast
header-name Edit
action manipulate
comparison-type case-sensitive
match-value
msg-type request
new-value
methods INVITE
element-rule
name lastParamUser
parameter-name lpu
type uri-param
action add
match-val-type any
comparison-type case-sensitive
match-value
new-value $searchParams[^].$userName.$0
element-rule
name anyParamUser
parameter-name apu
type uri-param
action add
match-val-type any
comparison-type pattern-rule
match-value $searchParams[~]
new-value aup
element-rule
name allParamUser
parameter-name apu
type header-param
action add
match-val-type any
comparison-type pattern-rule
match-value $searchParams[*]
new-value apu
element-rule
name notParamYes
parameter-name not
type uri-param
action add
match-val-type any
comparison-type pattern-rule
match-value !$searchParams.$emptyUriParam
new-value 123
element-rule
name notParamNo
parameter-name yes
type uri-param
action add
match-val-type any
comparison-type pattern-rule
match-value $searchParams.$emptyUriParam
new-value 456
This is a sample of the result:
Request-Line: INVITE sip:service@192.168.200.60:5060;tgid=123 SIP/2.0
Message Header
Via: SIP/2.0/UDP 192.168.200.61:5060;branch=z9hG4bK681m9t30e0qh6akgj2s1.1
From: sipp <sip:sipp@192.168.1.60:5060>;tag=SDchrc601-1
To: sut <sip:service@192.168.1.61:5060>
Call-ID: SDchrc601-fcf5660a56e2131fd27f12fcbd169fe8-06a3gu0
CSeq: 1 INVITE
Contact: <sip:sipp@192.168.200.61:5060;transport=udp>
Goodbye: Remove Me
Custom: This is my custom header
Display: sipp <sip:user@192.168.1.60:5060;up=abc>;hp=123
Params: sipp <sip:sipp1@192.168.1.60:5060>
Params: sipp <sip:sipp2@192.168.1.60:5060>
Edit: disp <sip:user@192.168.1.60:5060;lpu=sipp2;apu=aup;not=123>;apu=apu
Max-Forwards: 69
Subject: Performance Test
Content-Type: application/sdp
Content-Length: 140


