Mapping SIP to HTTP Parameters

You can configure the SBC to extend upon header mapping with parameter mapping for both authentication and verification procedures. Parameter mapping uses similar configuration and behavior as header mapping, allowing you to target specific parameters within SIP and HTTP messages for mapping or manipulation. You configure source and target parameters in your rules, either on their own or in conjunction with header parameters, to specify changes to messages you need within STIR/SHAKEN signaling.

The values you use to specify headers and parameters in the mapping-rules can be SIP or HTTP headers or parameters, or null. The combinations of configured and null fields result in 8 functions that either insert new or manipulate existing information. These functions include:

  • SIP Header Parameter to HTTP Body (JSON Claim)
  • SIP Header to HTTP Body (JSON Claim)
  • SIP Header Parameter to HTTP Header Parameter
  • SIP Header Parameter to HTTP Header
  • HTTP Body (JSON Claim) to SIP Header
  • HTTP Body (JSON Claim) to SIP Header Parameter
  • HTTP Header to SIP Header Parameter
  • HTTP Header Parameter to SIP Header Parameter

Note:

A JSON Claim is sent within an HTTP Body.

Mapping/manipulation from SIP to HTTP uses the direction Inbound, whereas HTTP to SIP uses Outbound. Both the inbound and the outbound configuration present challenges that can generate unexpected results. To achieve the desired results, consider the behaviors the SBC takes based on your configuration and the input presented by the network for each function type. Whether you populate a given configuration parameter or leave it null can significantly impact the result.

Configuration and operations guidelines for SIP to HTTP configurations include:

  • SIP Header Parameter to HTTP Body (JSON Claim):
    • If you populate both the source-header and target-header parameters and leave the source-param and target-param parameters as null, the system uses the target-header to carry the information. (For example, the system relays SIP Header values as HTTP Headers.)
    • If you populate the target-param parameter and leave the target-header parameter as null, the system uses the target-param to carry the information in a JSON claim (HTTP body).
    • If there are rules configured to manipulate mandatory/default/standard JSON claims, the configured rules take priority over any mandatory claims.
  • SIP Header Parameter to HTTP Header Parameter:
    • You must populate both the source-header and source-param parameters for these mapping-rules.
    • If you populate the target-header parameter and leave the target-param as null, the system populates the target-header.
    • If you populate both the target-header and target-param parameters, the system adds the value of the source-header's source-param value to the target-header's target-param.
    • The system refers to the semi-colon (;) delimiter to identify an entire SIP header parameter.
  • SIP Header Parameter to HTTP Header: (The SIP Header parameter value will be populated as target-header (HTTP-header.)
  • SIP Header to HTTP Body (JSON Claim): The system relays the SIP Header value to the HTTP Body - JSON Claim

Configuration and operations guidelines for HTTP to SIP configurations:

  • HTTP Body (JSON Claim) to SIP Header:
    • If you populate the source-param parameter and leave the source-header parameter as null, the system uses your source-param value to fetch the information.
    • If you populate the target-header parameter and leave the target-param as null, the system uses source values to create or populate the target SIP Header. (For example, the system relays the HTTP body, JSON Claim value as the SIP header.)
    • If you populate both target-header and target-param parameters, the system uses source values to populate the existing SIP Header and parameter.
    • If the target SIP header parameter is already present in the incoming INVITE, the system replaces the value of the parameter with the source-param value.
    • If you populate the source-header parameter and leave the source-param parameter as null, the system fetches the value of the source-header. (For example, the system relays HTTP header values as SIP headers.)
    • If there are multiple keys in the JSON body with same name, the system fetches the last occurrence of the key to specify the source-param value.

      Note:

      A 'Key' is the key from key-value pair in a JSON claim.
    • When the system looks within the HTTP Body (JSON) to find a target, it only looks as far as the second level of objects within JSON syntax to find a source-param.

      For example,consider the following JSON body as a source for the SBC to fetch a target. In this message, the syntax defines "serviceException" as a second level object, and “messageId” is third level. The SBC can find "serviceException" as a source-param, but not “messageId”,

      JSON body
      { 
      “requestError”: { 
      “serviceException”: {
             “messageId”: “SVC4001”,       
              “text”: “Error: Missing mandatory parameter ‘%1’”,
              “variables”: [“iat”],       
              } }     }
    • If the system is fetching is a JSON claim object or array, it copies the contents of the source-param parameter into the target-header as a string. In addition, the system removes any new lines (\n).
    • The system does not support indexing during an HTTP body to SIP header mapping procedure.
  • HTTP Header Parameter to SIP Header Parameter:
    • You must configure both the source-param and source-header parameters.
    • If you populate the target-header parameter and leave the target-param parameter as null, the system uses source values to create or overwrite the SIP Header.
    • If you populate both the target-header and target-param parameters, the system uses source values to populate the parameter in the existing SIP Header.
    • The system refers to the semi-colon (;) and comma (,) delimiters to identify an entire HTTP header parameter.
  • HTTP Body (JSON Claim) to SIP Header Parameter:
    • Keep the source-header null; configure the source-param
    • The system uses the source-param to find the JSON claim from HTTP-body and populates the SIP Header Parameter with that value.
  • HTTP Header to SIP Header Parameter: Keep the source-param null; the target-header and target-param are mandatory.