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