Inserting SIP Headers into SIPREC Metadata

The SIPREC Extension Data Enhancements SPL provides additional header information in the originating SIP messages metadata sent to the Interactive Session Recorder. With this SPL, you can introduce more options for recording policy decisions when using the SIPREC feature of the Oracle® Enterprise Session Border Controller (E-SBC). The enhanced metadata also allows for the realm-id to be used as an indicator of the recording account. The SPL also provides configurable values that collect additional header information to store in the metadata.

When the SPL is configured, the SIPREC Extension Data Enhancements SPL is only triggered upon INVITE/UPDATE requests, and stores the additional header information in the metadata that is sent to the Interactive Session Recorder (NN-ISR). Metadata is a XML MIME attachment that describes recording details to the ISR.

By default, the Extension-Headers SPL option collects only the Request-URI in a received INVITE. You can store additional header information by configuring the SPL with additional attributes in the spl-options under the global spl-config.. The values must be in a comma separated list enclosed in double quotation marks. For example:

Extension-Headers="P-Asserted-Identity,Diversion"

This configuration of the Extension-Headers option adds the originating Request-URI along with all P-Asserted-Identity and Diversion-Headers into the participant section of the metadata.

You can configure the LRE-Identifier SPL option to add an identifier of the logical remote entity (LRE) that triggered the recording to the <apkt:realm> element of the extension metadata. When configured with a value added, the value appears in place of the identifier. When configured without a value, the identifier of the logical remote entity is used. For example, session-agent will be the hostname, realm-config will be the realm, and sip-interface will be the realm name.

Note:

Both options are required for the SPL to function properly.

Sample Metadata

The sample below shows metadata with new extension data added by the SIPREC Extension Data Enhancements SPL (New metadata appears in bold):

<?xml version='1.0' encoding='UTF-8'?>
   <recording xmlns='urn:ietf:params:xml:ns:recording'>
      <datamode>complete</datamode>
         <session id="BYiC7uSZQGN3VQdzWI1HWw==">
            <associate-time>2012-06-26T13:44:13</associate-time>
         </session>
         <participant id="hq18GJs3TtJdhjPsfPNV8A=="	session="BYiC7uSZQGN3VQdzWI1HWw==">
            <nameID aor="sip:sipp@192.168.10.1">
               <name>sipp</name>
            </nameID>
            <send>aD50KX+LTvxNzASg+/GQTg==</send>
               <associate-time>2012-06-26T13:44:13</associate-time>
                  <extensiondata xmlns:apkt="http://acmepacket.com/siprec/extensiondata">
                     <apkt:callingParty>true</apkt:callingParty>
                     <apkt:request-uri>sip:service@192.168.101.13:5060	</apkt:request-uri>
                     <apkt:in-realm>net192</apkt:in-realm>
                     <apkt:header label=P-Asserted-Identity>
                        <value>sip:mike@acme.com</value>
                        <value>sip:bob@cisco.com</value></apkt:header>
                     <apkt:header label=Diversion>
                        <value>&lt;sip:jojo@divert.com&gt;;happy=days;green=envy</value>
                        <value>&lt;sip:bebe@MediaTen.net&gt;;green=monster;go=carts</value>
                        <value>&lt;tel:+8675309;night=mare&gt;;gear=head;green=monitor</value></apkt:header>
                  </extensiondata>
                     </participant>
         <participant id="Ki6WEUi4TPRUPLtEaEhA7Q==" session="BYiC7uSZQGN3VQdzWI1HWw==">
            <nameID aor="sip:service@192.168.101.13">
               <name>sut</name>
               </nameID>
               <send>f9NDVhyMTul+ePlM2SceQA==</send>
               <associate-time>2012-06-26T13:44:13</associate-time>
               <extensiondata xmlns:apkt="http://acmepacket.com/siprec/extensiondata">
                  <apkt:callingParty>false</apkt:callingParty>
               </extensiondata>
         </participant>
         <stream id="aD50KX+LTvxNzASg+/GQTg=="session="BYiC7uSZQGN3VQdzWI1HWw==">
            <label>65804</label>
            <mode>separate</mode>
            <associate-time>2012-06-26T13:44:13</associate-time>
         </stream>
         <stream id="f9NDVhyMTul+ePlM2SceQA=="session="BYiC7uSZQGN3VQdzWI1HWw==">
            <label>65805</label>
            <mode>separate</mode>
            <associate-time>2012-06-26T13:44:13</associate-time>
        </stream>
   </recording>

Configure SIP Headers for SIPREC Metadata

To get more detailed information about a recorded session, you can add more SIP headers within the SIPREC metadata by way of the Extension-Headers option. The default behavior stores only the Request-URI and realm-id.

You must configure the Extension-Headers option at the global level under spl-config because the session-agent, realm-config, and sip-interface configurations do not recognize the option. The first time you configure one or more extension headers, you need only to save and activate the configuration for the system to recognize the extension headers. When you modify the existing SPL extension header list you need to save and activate the configuration, and reboot the system for the changes to take effect. Real Time Configuration (RTC) does not apply to extension header options.

  1. Access the spl-config configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# system
    ORACLE(system)# spl-config
    ORACLE(spl-config)# 
  2. Type spl-options +Extension-Headers=”<value>” , where <value> is the additional header information to store, and press Enter.
    ACMESYSTEM(spl-config)# spl-options +Extension-Headers=”P-Asserted-Identity,Diversion”
  3. Type done to save the configuration.

Example Configuration

The following is an example of a SIPREC Extension Data Enhancement SPL configuration:

system
	spl-config
		spl-options          +Extension-Headers=”P-Asserted				-Identity,Diversion”

The LRE-Identifier option may be configured on each session-agent, realm-config, or sip-interface that interacts with the session recording server. This option is not recognized in the global spl-config. This option is required for SPL functionality.

To configure the LRE-Identifier option:

  1. In Superuser mode, type configure terminal and press Enter.
    ACMEPACKET# configure terminal
  2. Type session-router and press Enter.
    ACMEPACKET(configure)# session-router
    ACMEPACKET(session-router)#
  3. Type sip-interface and press Enter.
    ACMEPACKET(session-router)# sip-interface
    ACMEPACKET(sip-interface)#
  4. Type spl-config and press Enter.
    ACMEPACKET(sip-interface)# spl-config
    ACMEPACKET(spl-config)#
  5. Type spl-options +LRE-Identifier=”<value>” where <value> is the additional header information to store and press Enter. The default behavior stores the identifier of the logical remote identity.
    ACMESYSTEM(spl-config)# spl-options +LRE-Identifier
  6. Type done to save your work.

Example Configuration

The following is an example of an LRE-Identifier option configuration:

session-router
	sip-interface
		spl-config
			spl-options          +LRE-Identifier