Example 6 Manipulating Element Parameters
For this more complex manipulation rule, the Oracle® Enterprise Session Border Controller:
- From the Display header, stores the display name, user name, URI parameter up, and header parameter hp
- Adds the header parameter display to the Params header, with the stored value of the display name from the first step
- Add the URI parameter user to the Params header, with the stored value of the display name from the first step
- If the URI parameter match succeeds in the first step, replaces the URI parameter up with the Display header with the value def
- If the header parameter match succeeds in the first step, deletes the header parameter hp from the Display header
This is a sample of the configuration:
sip-manipulation name elemParams header-rule name StoreDisplay header-name Display action store comparison-type case-sensitive match-value msg-type request new-value methods INVITE element-rule name displayName parameter-name type uri-display action store match-val-type any comparison-type pattern-rule match-value new-value element-rule name userName parameter-name user type uri-user action store match-val-type any comparison-type pattern-rule match-value new-value element-rule name uriParam parameter-name up type uri-param action store match-val-type any comparison-type pattern-rule match-value new-value element-rule name headerParam parameter-name hp type header-param action store match-val-type any comparison-type pattern-rule match-value new-value header-rule name EditParams header-name Params action manipulate comparison-type case-sensitive match-value msg-type request new-value methods INVITE element-rule name addHeaderParam parameter-name display type header-param action add match-val-type any comparison-type case-sensitive match-value new-value $StoreDisplay.$displayName.$0 element-rule name addUriParam parameter-name user type uri-param action add match-val-type any comparison-type case-sensitive match-value new-value $StoreDisplay.$userName.$0 header-rule name EditDisplay header-name Display action manipulate comparison-type case-sensitive match-value msg-type request new-value methods INVITE element-rule name replaceUriParam parameter-name up type uri-param action replace match-val-type any comparison-type pattern-rule match-value $StoreDisplay.$uriParam new-value def element-rule name delHeaderParam parameter-name hp type header-param action delete-element match-val-type any comparison-type pattern-rule match-value $StoreDisplay.$headerParam new-value
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=z9hG4bK7okvei0028jgdacgh6c1.1 From: sipp <sip:sipp@192.168.1.60:5060>;tag=SD89rm601-1 To: sut <sip:service@192.168.1.61:5060> Call-ID: SD89rm601-b5b746cef19d0154cb1f342cb04ec3cb-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=def> Params: sipp <sip:sipp1@192.168.1.60:5060;user=user>;display=sipp Params: sipp <sip:sipp2@192.168.1.60:5060;user=user>;display=sipp Edit: disp <sip:user@192.168.1.60:5060> Max-Forwards: 69 Subject: Performance Test Content-Type: application/sdp Content-Length: 140