Configuring SIPREC

This section defines the information required to configure SIPREC on the Oracle Communications Session Border Controller. It also provides a sample procedure for configuring SIPREC using the Acme Packet Command Line Interface (ACLI).

Session Recording Server (SRS)

The Oracle Communications Interactive Session Recorder’s RSS acts as the SRS in the network. A session-recording-server attribute under the session-router object in the Oracle Communications Session Border Controller ACLI allows you to enable/disable the SRS. This object is the session recording server that receives replicated media and records signaling. Additional parameters for SRS are configured under the session-agent, realm-config, and sip-interface objects. The rules of precedence for which the Oracle Communications Session Border Controller uses these parameters are: 
session-agent takes precedence over the realm-config, and realm-config takes precedence over sip-interface.

Each SRS is associated with a realm-config. The realm specifies the source interface from which replicated traffic originates. The destination is an IP Port parameter (IP address or hostname with an optional port) that defines the SIP address (request URI) of the actual SRS.

For an additional level of security, Oracle recommends the SRS be configured in its own realm so as to apply a set of access control lists (ACLs) and security for the replicated communication.

Although the Oracle Communications Session Border Controller supports large UDP packets, Oracle recommends the sip-interface associated with the SRS realm, be provisioned with a TCP port.

Enforcing Parity Check on Media Port Numbers with the SRS

You can configure the SBC to enforce media port number parity on flows between the SBC and the SRS, as discussed in RFC 4566. By default, the SBC does not consider port number parity when assigning or recognizing RTP and RTCP flows in SDP session descriptions. This can result in signaling issues, including one-way audio recording, when the recording server and the SBC establish flows that have a port number conflict.

By default, the SBC does not enforce port number parity for RTP and RTCP flows to the SRS, acting as the UAS callee on the east side interface. This parity defines the use of an even port for RTP and the subsequent odd port for RTCP. The force-parity parameter causes the SBC to behave as follows when receiving port number is the SDP m-line from the SRS:

  • Disabled - The SBC accepts both odd and even ports on the m-line. The SBC sends both rtp and rtcp to this same port.
  • Enabled - The SBC rejects odd ports on the m-line, and accepts even ports. Upon receiving an even port, the SBC sends rtp to the even port and rtcp to (rtp+1), which is an odd numbered port.

You enable the force-parity parameter on the applicable session-recording-server.

ACMEPACKET(session-recording-server)# force-parity enabled

Session Recording Group

The Oracle Communications Session Border Controller uses the session-recording-group attribute under the session-router object in the ACLI to set high availability (HA) for 3rd party call recorders. Using this object, you can define a collection of one or more SRSs. The Oracle Communications Session Border Controller utilizes SIP’s transport mechanism and keeps track of statistics on each SRS to manage the distribution of traffic and load balancing. (For more information on Oracle Communications Session Border Controller load balancing in session recording groups, see Load Balancing). When multiple SRSs are in a session recording group, the Oracle Communications Session Border Controller uses heuristics to intelligently route the recording dialog to one or more SRSs utilizing the selection strategy.

The simultaneous-recording-servers configuration attribute controls the number of simultaneous SIP dialogs that the Oracle Communications Session Border Controller establishes to the SRSs in the session recording group per communication session. For instance, if a session recording group contains 3 SRSs, and simultaneous-recording-servers is set to 2, the recording agent initiates a SIP INVITE to the next two SRSs based on the session recording group strategy. In this way, duplicative recording sessions are instantiated, allowing for recording redundancy in multiple SRSs or within a session recording group.

Note:

The Oracle Communications Session Border Controller streams media to all SRSs. Each SRS chooses whether or not to ignore the media by returning a recvonly(receive only) media line. This permits an SRS to select specific media to record in the recording session, as well as determine whether or not to record the media.

The number of simultaneous recording servers does not dictate the number of recording devices required to be active for a communication session. If two SRSs exist in a session recording group and simultaneous-recording-servers is set to 2, if at least one recording device to any of the servers completes, the recording server is treated as being established.

Load Balancing

The Oracle Communications Session Border Controller supports recording server load balancing across members of a session recording group using the following strategies:

Note:

SRS groups support “round-robin” and “hunt” strategies only.

[Round-robin]: The Oracle Communications Session Border Controller remembers the last SRS that was used. Each new recording session selects the next SRS in the session recording group. When simultaneous-recording-servers is greater than 1, the next n recording servers are selected from the session recording group.

[hunt]: The Oracle Communications Session Border Controller successively attempts to contact SRSs in the session recording group until a successful recording dialog is established with the SRS, starting from the first SRS in the session recording group. The Oracle Communications Session Border Controller attempts to contact each SRS in the session reporting group once. When contact is exhausted, the recording device is considered failed. A SIP failure (response greater than 399, timeout or TCP setup failure) causes the Oracle Communications Session Border Controller to attempt the next possible SRS. When simultaneous-recording-servers is greater than 1, the Oracle Communications Session Border Controller attempts to establish n recording devices in a hunting fashion.

Session Recording Group within Logical Remote Entities

Each logical remote entity (session-agent, realm-config and sip-interface) has a session-recording-server attribute.This attribute is a reference to a specific SRS configuration and can be used to specify a session recording group instead. If a session recording group is specified instead of an SRS, the session recording group name must be prefixed with "SRG:" followed by the session recording group name. This distinguishes between an SRS being referenced and a session recording group being referenced.

With SIPREC, if an SRS or session recording group is configured on both the ingress and egress logical remote entities, both the ingress and egress SRS/session recording groups are used. This means that the Oracle Communications Session Border Controller records the media between participants twice (or more) - once for the ingress recorders and once for the egress recorders.

If both the ingress and egress SRS/session recording group are the same, the Oracle Communications Session Border Controller makes an optimization and only records the media once. Even if the ingress session recording group is the same exact set of SRSs as the egress session recording group (but with a different name), the Oracle Communications Session Border Controller replicates media to both destinations. However, if the same set of SRSs has the exact same identifier, the 
Oracle Communications Session Border Controller sends media to one and not both SRSs.

Selective Recording

SIPREC defines a number of use cases for which the Oracle Communications Session Border Controller can record communication sessions. These use cases include the use of selective based recording. A selective recording is one in which a unique recording server is created per communication session.

Note:

The Oracle Communications Session Border Controller does not support persistent recording.

For SRSs using selective recording, recording servers are unique per session recording group. For each selective SRS in a session recording group, during the setup of a new communication session, the recording metadata is the same for each recording device. The SRC initiates a new SIP INVITE to the SRS carrying the metadata for that new recording server. The recording agent terminates the SIP dialog at the time that the recording session ends.

The lifetime of a recording session extends beyond the lifetime of the recorded communication. The SRC (Oracle Communications Session Border Controller) re-uses the recording session ID in the metadata instead of creating a new ID for each recording.

SIPREC Support for SRTP

With the exception noted in the following table, the SBC supports SIPREC on all media flows with any combination of SRTP-RTP call legs on ingress and egress for all Acme Packet platforms. The SBC also supports SRTP on the interface between the SBC and the SIPREC server.

Caller A Caller B SRS Supported or Not Supported
RTP RTP RTP Supported
RTP SRTP RTP Supported
SRTP RTP RTP Supported
SRTP SRTP RTP Supported
RTP RTP SRTP Supported
RTP SRTP SRTP Supported
SRTP RTP SRTP Supported
SRTP SRTP SRTP Supported
  • The supported combinations apply to transcoded and non-transcoded calls.
  • The supported combinations apply to recording and requires either the disabled mode or the enabled mode.
  • The SDES profile that you use for in the media-security-policy configuration must include both the AES_CM_128_HMAC_SHA1_80 and AES_CM_128_HMAC_SHA1_32 ciphers in the crypto-list. Apply this media security policy to each realm where you want SRTP traffic.

High Availability (HA) Support

An Oracle Communications Session Border Controller using SIPREC supports HA in the network. The Oracle Communications Session Border Controller replicates all metadata states between the active and standby Oracle Communications Session Border Controllers. Any recording dialogs in progress do not survive the failover, but all calls in progress are preserved. Additionally, the recording dialogs are replicated as well to the failed over Oracle Communications Session Border Controller so that in-dialog SIP requests continue to function.

Each recorded communication session replicated to a single SRS counts as two calls instead of one. The Oracle Communications Session Border Controller creates two flows between the two participants and two additional flows to the SRS for each of the parent flows.

SIPREC Configuration Procedure

The following configuration example assumes the Oracle Communications Session Border Controller has the session recording license enabled on the Oracle Communications Session Border Controller. Changes to the call session recording configuration for SIPREC are dynamic. Active calls in progress remain unaffected by the configuration changes. New calls, however, utilize the changes after a Save and Activate of the configuration.

The following attributes must be configured:

  • session-recording-server
  • session-recording-group (for RSS or 3rd party SRS high availability (HA) only)

and at least one of the following attributes:
  • realm-config
  • session-agent
  • sip-interface

Session-recording-server Attribute

To configure the session-recording-server attribute:

  1. In Superuser mode, type configure terminal and press Enter.
    ACMEPACKET# configure terminal
  2. Type session-router and press Enter to access the session router-related objects.
    ACMEPACKET(configure)# session-router
    ACMEPACKET(session-router)#
  3. Type session-recording-server and press Enter to access the session recording server-related attributes.
    ACMEPACKET(session-router)# session-recording-server
    ACMEPACKET(session-recording-server)#
  4. name — Enter a unique name for the session recording server. This name can be referenced when configuring realm-config, session-agent, and sip-interface. Valid values are alpha-numeric characters. Default is no value specified.
    ACMEPACKET(session-recording-server)# name SRS1
  5. (optional) description — Enter a description for the session recording server. Valid values are alpha-numeric characters. Default is no value specified.
    ACMEPACKET(session-recording-server)# description <recording server name>
  6. realm — Enter the realm for which the session recording server belongs. Valid values are alpha-numeric characters. Default is no value specified.
    ACMEPACKET(session-recording-server)# realm <realm name>

    Note:

    Oracle recommends that the session recording server be configured in its own realm.
  7. mode — Enter the recording mode for the session recording server. Valid values are:
    • selective (default) - Unique recording server created per communication session

    • persistent - Not supported.

    ACMEPACKET(session-recording-server)# recording-mode selective
  8. destination — Enter the destination IP address with IP port (port specification is optional) that defines the SIP address (request URI) of the session recording server. Enter values in the format 0.0.0.0:<port number>. Default is no value specified.
    ACMEPACKET(session-recording-server)# destination 172.34.2.3:5060
  9. port — Enter the port number to contact the session recording server. Valid values are 1024 to 65535. Default is 5060.
  10. transport-method — Enter the protocol that the session recording server uses to accept incoming packets from the session reporting client on the network. Default is DynamicTCP. Valid values are:
    • “” - No transport method used. Same as leaving this parameter value blank.
    • UDP - User Datagram Protocol (UDP) is used for transport method.
    • UDP+TCP - UDP and Transmission Control Protocol (TCP) are used for transport method.
    • DynamicTCP - One TCP connection for EACH session is used for the transport method.
    • StaticTCP - Only one TCP connection for ALL sessions is used for the transport method. This option saves resource allocation (such as ports) during session initiation.
    • DynamicTLS - One Transport Layer Security (TLS) connection for EACH session is used for the transport method.
    • StaticTLS - Only one TLS connection for ALL sessions is used for the transport method. This option saves resource allocation (such as ports) during session initiation.
    • DTLS - Datagram TLS is used for the transport method.
    • TLS+DTLS - TLS and DTLS are used for the transport method.
    • StaticSCTP - Only one Stream Control Transmission Protocol (SCTP) connection for ALL sessions is used for the transport method. This option saves resource allocation (such as ports) during session initiation.
      ACMEPACKET(session-recording-server)# protocol UDP
  11. force-parity —Enable to enforce port number parity for flows between the system and the session recording server. Default is disabled.
    ACMEPACKET(session-recording-server)# force-parity enabled
  12. Enter done to save the session recording configuration.
    ACMEPACKET(session-recording-server)# done

Session-recording-group Attribute (for HA only)

For environments that required high availability (HA) requirements, configure the session-recording-group attribute.

To configure the session-recording-group attribute and enable HA:

  1. In Superuser mode, type configure terminal and press Enter.
    ACMEPACKET# configure terminal
  2. Type session-router and press Enter to access the session router-related objects.
    ACMEPACKET(configure)# session-router
    ACMEPACKET(session-router)#
  3. Type session-recording-group and press Enter to access the session recording group-related attributes.
    ACMEPACKET(session-router)# session-recording-group
    ACMEPACKET(session-recording-group)#
  4. name — Enter a unique name for the session recording group that is a collection of one or more session recording servers. This name can be referenced when configuring realm-config, session-agent, and sip-interface. Valid values are alpha-numeric characters. Default is no value specified.
    ACMEPACKET(session-recording-group)# name <SRG Group Name>

    Note:

    The name of the session recording group must be prefixed with SRG.
  5. (optional) description — Enter a description for the session recording group. Valid values are alpha-numeric characters. Default is no value specified.
    ACMEPACKET(session-recording-group)# description <Recording Group Name>
  6. session-recording-servers — Enter the names of the session recording servers that belong to this session recording group. Valid values are alpha-numeric characters. Default is no value specified.
    ACMEPACKET(session-recording-group)# session-recording-servers SRS1,SRS2

    Note:

    You must enter multiple servers as values for the session-recording-servers attribute.
  7. strategy — Enter the load balancing strategy that the session reporting client (Oracle Communications Session Border Controller) uses when sending recordings to the session reporting server. Valid values are:
    • Round-robin (default) - The Oracle Communications Session Border Controller remembers the last SRS that was used. Each new recording session selects the next SRS in the session recording group. When simultaneous-recording-servers is greater than 1, the next n recording servers are selected from the session recording group.

    • hunt - The Oracle Communications Session Border Controller successively attempts to contact SRSs in the session recording group until a successful recording dialog is established with the SRS, starting from the first SRS in the session recording group. The Oracle Communications Session Border Controller attempts to contact each SRS in the session reporting group once. When contact is exhausted, the recording device is considered failed. A SIP failure (response greater than 399, timeout or TCP setup failure) causes the Oracle Communications Session Border Controller to attempt the next possible SRS. When simultaneous-recording-servers is greater than 1, the Oracle Communications Session Border Controller attempts to establish n recording devices in a hunting fashion.

    • least busy - For some 3rd party recording devices, the number of concurrent recording servers proves to be the most taxing for system resources. The Oracle Communications Session Border Controller tracks the number of recording servers active to a given SRS at any given time. It uses this information to determine which SRS would be the best candidate for the next RS. The SRS with the fewest number of active recording servers receives the next RS. If two or more SRSs in a session recording group currently have the same number of active recording servers, the SRS configured first in the session recording group takes precedence.

    • lowest sustained rate (fewest-setups-per-minute) - For some 3rd party recording servers, processing large amounts of sessions in a short amount of time proves to be the most taxing on their system's resources. The Oracle Communications Session Border Controller tracks the number of recording server setups over a sliding window of five minutes. The SRS within the session recording group with the fewest setups per the window of time is selected as the next candidate for receiving the recorded session. If two or more SRSs in a session recording group currently have the same value for setups in the given window of time, then the SRS configured first in the session recording group takes precedence.

      ACMEPACKET(session-recording-group)# strategy round-robin
  8. simultaneous-recording-servers — Enter the number of simultaneous SIP dialogs that the session reporting client (Oracle Communications Session Border Controller) establishes to the session reporting servers in the session reporting group per communication session. Valid values are 1 to 3. Default is 0.
    ACMEPACKET(session-recording-group)# simultaneous-recording-servers 2
  9. Enter done to save the session recording group configuration.
    ACMEPACKET(session-recording-group)# done
  10. Enter exit to exit the session recording group configuration.
    ACMEPACKET(session-recording-group)# exit
  11. Enter exit to exit the session-router configuration.
    ACMEPACKET(session-router)# exit
  12. Enter exit to exit the configure mode.
    ACMEPACKET(configure)# exit
  13. Enter save-config to save the session recording group configuration.
    ACMEPACKET# save-config
  14. Enter activate-config to activate the session recording group configuration.
    ACMEPACKET# activate-config

Realm-config Attribute

Use the following procedure to configure the realm-config attribute and enable session recording:

  1. Access the realm-config configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# media-manager
    ORACLE(media-manager)# realm-config
    ORACLE(realm-config)# 

  2. session-recording-server — Enter a space-separated list containing up to four names of session-recording-servers, or session-recording-groups, or a combination of both exisiting in the realm associated with the session reporting client (Oracle Communications Session Border Controller). For each entry, use '+' to add, '-' to remove, and omit to replace the list. For example, realm-config# session-recording-server "srs1 srs2 srs4 SRG:srg1". Enter a ? to view a list of all acceptble name formats. Press the TAB key after the session-recording-server to view a list of configured SRSs and SRGs. For each entry, use + to add, - to remove, and omit to replace the list.
    Do not use the format +srs1 -srs1. In this case, srs1 is still retained even after using -srs1in the command.
    ACMEPACKET(realm-config)# session-recording-server <srs-name>
    or

ACMEPACKET(realm-config)# session-recording-server SRG:<group-name>

    Note:

    The value for this attribute is the name you specified in the session-recording-server attribute. If specifying a session-recording-group, you must precede the group name with "SRG:".
  3. session-recording-required — Enter whether you want a call to be accepted by the Oracle Communications Session Border Controller when recording is not available. The default value is disabled.
    • Enabled — Restricts call sessions from being initiated when a recording server is not available.

    • Disabled (default) — Allows call sessions to initiate even when the recording server is not available.

      Note:

      Oracle recommends that the session-recording-required parameter remain disabled.
  4. session-max-life-limit — Enter the maximum interval in seconds before the SBC must terminate long duration calls. The default value is 0 (off/ignored).

    The value supercedes the value of session-max-life-limit in the sip-interface and sip-config configuration elements and is itself superceded by the value of session-max-life-limit in the session-agent configuration element.

  5. Type done to save your configuration.

Session-agent Attribute

To configure the session-agent attribute and enable session recording:

  1. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
  2. Type session-router and press Enter to access the session router-related objects.
    ORACLE(configure)# session-router
    ACMEPACKET(session-router)#
  3. Type session-agent and press Enter to access the session agent-related attributes.
    ORACLE(session-router)# session-agent
    ORACLE(session-agent)#

  4. session-recording-server — Enter a space-separated list containing up to four names of session-recording-servers, or session-recording-groups, or a combination of both to apply to the session recording client (Oracle Communications Session Border Controller). For each entry, use '+' to add, '-' to remove, omit to replace list. For example, (session-agent)# session-recording-server "+srs1 +srs2 -srs4 +SRG:srg1". Enter a ? to view a list of all acceptble name formats. Press the TAB key after the session-recording-server to view a list of configured SRSs and SRGs. Valid values are alpha-numeric characters. Default is no value specified.
    Do not use the format +srs1 -srs1. In this case, srs1 is still retained even after using -srs1 in the command.
    ORACLE(session-agent)# session-recording-server <srs-name>

    or

    ORACLE(session-agent)# session-recording-server SRG:<group-name>

    Note:

    The value for this attribute is the name you specified the session-recording-server attribute. If specifying a session-recording-group, you must precede the group name with SRG:.
  5. session-recording-required — Enter whether or not you want a call to be accepted by the Oracle Communications Session Border Controller if recording is not available. Valid values are:
    • Enabled - Restricts call sessions from being initiated when a recording server is not available.

    • Disabled (default)- Allows call sessions to initiate even if the recording server is not available.

    ORACLE(session-agent)# session-recording-required disabled

    Note:

    Oracle recommends that the session-recording-required parameter remain disabled.
  6. Enter exit to exit the session agent configuration.
    ORACLE(session-agent)# exit
  7. Enter exit to exit the session router configuration.
    ORACLE(session-router)# exit
  8. Enter exit to exit the configure mode.
    ORACLE(configure)# exit
  9. Enter save-config to save the session agent configuration.
    ORACLE# save-config
  10. Enter activate-config to activate the session agent configuration.
    ORACLE# activate-config

Sip-interface Attribute

To configure the sip-interface attribute and enable session recording:

  1. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
  2. Type session-router and press Enter to access the session router-related objects.
    ORACLE(configure)# session-router
    ORACLE(session-router)#
  3. Type sip-interface and press Enter to access the SIP interface-related attributes.
    ORACLE(session-router)# sip-interface
    ORACLE(sip-interface)#

  4. session-recording-server — Enter a space-separated list containing up to four names of session-recording-servers, or session-recording-groups, or a combination of both to apply to the SIP interface on the session recording client ( Oracle Communications Session Border Controller). For each entry, use '+' to add, '-' to remove, and omit to replace the list. For example, (sip-interface)# session-recording-server "+srs1 -srs2 +srs4 SRG:srg1". Enter a ? to view a list of all acceptble name formats. Press the TAB key after the session-recording-server to view a list of configured SRSs and SRGs.Valid values are alpha-numeric characters. Default is no value specified.
    Do not use the format +srs1 -srs1. In this case, srs1 is still retained even after using -srs1in the command.
    ORACLE(sip-interface)# sessio-recording-server SRG:<"session recording server names or session-recording group name>

    Note:

    The value for this attribute is the name you specified in the session-recording-server attribute.
  5. session-recording-required — Enter whether or not you want a call to be accepted by the Oracle Communications Session Border Controller if recording is not available. Valid values are:
    • Enabled - Restricts call sessions from being initiated when a recording server is not available.

    • Disabled (default)- Allows call sessions to initiate even if the recording server is not available.

    ORACLE(sip-interface)# session-recording-required disabled

    Note:

    Oracle recommends that the session-recording-required parameter remain disabled.
  6. Enter exit to exit the SIP interface configuration.
    ORACLE(sip-interface)# exit
  7. Enter exit to exit the session router configuration.
    ORACLE(session-router)# exit
  8. Enter exit to exit the configure mode.
    ORACLE(configure)# exit
  9. Enter save-config to save the SIP interface configuration.
    ORACLE# save-config
  10. Enter activate-config to activate the SIP interface configuration.
    ORACLE# activate-config

P-Asserted Identity and Diversion Headers in SIPREC Metadata

The Oracle Communications Session Border Controller supports some call transfer scenarios in which the contents of the P-Asserted-Identity, Diversion and History-info headers must be included in the SIPREC metadata for in-dialog requests (re-INVITE and UPDATE) as well as initial requests.

During a Communication Session (CS) between user-agents, Oracle Communications Session Border Controllerupdates the SRS, for in-dialog requests like Re-INVITE and UPDATE, in the Recording Session (RS). In call transfer scenarios, the participant information available in the headers is updated in the extension data under SIPREC Metadata. When the option disable-re-invite-on-update is configured in the session-agent, sip-interface, or real-config configuration elements, the SBC restricts the Re-INVITE to RS for the in-dialog UPDATE in CS.

You will have to configure the system with the SipHeaderExtensionMetadata.spl (SBC Processing Language) plugin for the disable-re-invite-on-update option to work. For more information, see Inserting SIP headers into SIPREC Metadata.

Consider a call transfer scenario between User Agent A (UA-A) and User Agent C (UA-C). The session will be recorded by Oracle Communications Session Border Controlleracting as an SRC and an SRS. The SRS does not record the session with User Agent B. In order to record the session between UA-A and UA-C it is vital to correctly identify the User Agents in the session. The system uses the headers in the metadata to reflect the identities of the participating agents.

This image depicts the use of metadata in support of SIPREC.

The header information such as P-Asserted Identity, Diversion and History-info for INVITE/Re-INVITE and UPDATE cases will be updated in the extension data of participant xml element.

You can configure the option disable-re-invite-on-update to stop the Re-INVITE requests towards the Recording Session (RS) for any in-dialog UPDATE in Communication Session (CS). This option can be configured under a specified sip-interface , realm-config , or a session-agent .

ORACLE#(session-agent) options +disable-re-invite-on-update

Session-agent takes precedence over realm-config, and realm-config takes precedence over sip-interface.

Metadata Contents

The recording metadata contains a set of related elements which define the recording session. A recording session may contain zero or more communication sessions and/or communication session groups. A communication session represents a call instance; a communication session group represents a related group of communication sessions. A recording session is composed of a sequence of complex element types. Not all element types are required to describe a recording session initiated from the Oracle Communications Session Border Controller. The recording session XML schema defines the following element types:

  • dataMode - partial or complete metadata description (required)
  • group - a collection of related communication sessions
  • session - a single communication session of two or more participants (required)
  • participant - a SIP endpoint representation (required)
  • stream - a media stream
  • extensiondata - application specific data outside of the SIPREC scope.

The recording agent generates dataMode, session, participant, and stream elements. Extension data is attached to other elements within the metadata through the use of the parent attribute. The recording metadata is defined as a sequence of element types; therefore all associations between elements are represented as references to element identifiers.

The state of the metadata within a recording session reflects the state of the communication session(s) which is being recorded. SIPREC implements stop-times and reason codes when communication sessions end within a recording session. Once a communication session, participant, or media stream has been marked as 'stopped' and accepted by the SRS, the metadata item is removed from the current metadata state. In addition, media lines within the SDP or the recording session may be re-used/re-labeled for reuse if new communication sessions and media streams are created within the recording session.

The XML schema for the recording metadata is defined in the IETF draft RFC draft-ram-siprec-metadata-format-02 [7].

The ACLI command to show recorded metadata is show rec. For more information on this command see the section, Show rec.

Show Commands for Recording Sessions

The Oracle Communications Session Border Controller allows you to utilize the following show commands via the ACLI to display statistical information about recording sessions:

  • show rec
  • show rec redundancy

Show rec

The show rec command displays the count of all metadata objects in sessions managed by the recording agent. These statistics include metadata monitored over an active period of time and over a lifetime period (where lifetime totals reflect from the last reboot of the Oracle Communications Session Border Controller to the present time). The following example shows the use of this command.

  1. Log into the Oracle Communications Session Border Controller as a User or Superuser.
    ACMEPACKET> enable
    ACMEPACKET(enable)#
  2. Type show rec and press Enter to display the recording metadata statistics. The following output is an example of the show rec command.
    ACMEPACKET(enable)# show rec

    Show rec output

    13:49:44-81645
    Recording Agent Status        -- Period -- -------- Lifetime --------
                    Active    High   Total      Total  PerMax    High
    Rec Sessions         0       1       1          1       1       1
    Comm Groups          0       0       0          0       0       0
    Comm Sessions        0       1       1          1       1       1
    Media Streams        0       2       2          2       2       2
    Participants         0       2       2          2       2       2

    The following table describes the metadata objects in the show rec command output.

    Object Description
    Rec Sessions Number of recording sessions during an active period of time and over a lifetime period.
    Comm Groups Number of active communication session recording groups during an active period of time and over a lifetime period.
    Comm Sessions Number of active communication sessions during an active period of time and over a lifetime period.
    Media Streams Number of active media streams during an active period of time and over a lifetime period.
    Participants Total number of participants in session recordings during an active period of time and over a lifetime period.

Show rec redundancy

The show rec redundancy command displays information for session recording server statistics when the Oracle Communications Session Border Controller is configured for HA. These statistics include metadata monitored over an active period of time and over a lifetime period (where lifetime totals reflect from the last reboot of the Oracle Communications Session Border Controller to the present time) on both the primary and redundant Oracle Communications Session Border Controller. The following example shows the use of this command.

  1. Log into the Oracle Communications Session Border Controller as a User or Superuser.
    ACMEPACKET> enable
    ACMEPACKET(enable)#
  2. Type show rec redundancy and press Enter to display the session recording server statistics for Oracle Communications Session Border Controllers in HA mode. The following output is an example of the show rec redundancy command.
    ACMEPACKET(enable)# show rec redundancy

    Show rec redundancy output

    Primary System

    13:49:44-81645
    Recording Agent Status        -- Period -- -------- Lifetime --------
                    Active    High   Total      Total  PerMax    High
    Rec Sessions         0       1       1          1       1       1
    Comm Groups          0       0       0          0       0       0
    Comm Sessions        0       1       1          1       1       1
    Media Streams        0       2       2          2       2       2
    Participants         0       2       2          2       2       2
    
    Redundant System
    13:49:44-81646
    Recording Agent Status        -- Period -- -------- Lifetime --------
                    Active    High   Total      Total  PerMax    High
    Rec Sessions         0       1       1          1       1       1
    Comm Groups          0       0       0          0       0       0
    Comm Sessions        0       1       1          1       1       1
    Media Streams        0       2       2          2       2       2
    Participants         0       2       2          2       2       2

    The following table describes the session recording server statistics in the show rec redundancy command output.

    Object Description
    Rec Sessions Number of recording sessions during an active period of time and over a lifetime period.
    Comm Groups Number of active communication session recording groups during an active period of time and over a lifetime period.
    Comm Sessions Number of active communication sessions during an active period of time and over a lifetime period.
    Media Streams Number of active media streams during an active period of time and over a lifetime period.
    Participants Total number of participants in session recordings during an active period of time and over a lifetime period.

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 Communications Session Border Controller (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 (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:

<?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@example.com</value>
        <value>sip:bob@example.org</value>
      </apkt:header>
      <apkt:header label="Diversion">
        <value>&lt;sip:jojo@example1.com&gt;;happy=days;green=envy</value>
        <value>&lt;sip:bebe@example2.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.
    ORACLE(spl-config)# spl-options +Extension-Headers=”P-Asserted-Identity,Diversion”
  3. Type done to save the configuration.