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