Session recordings are used for various purposes such as complying with regulations, monitoring quality of service of representatives, and storing call information for quality analysis.
The SIPREC protocol defines the interaction between a Session Recording Client (SRC) and a Session Recording Server (SRS), and controls the recording of media transmitted in the context of a communications session (CS) between multiple user agents.
The SBC Core supports the following SIP recording interfaces:
NICE and Media Packet Capture cannot be used simultaneously because the Splitter resource can only be configured for one feature.
The SBC supports up to 32,000 session recordings for both SIPREC and NICE.
The overall SBC Core SIPREC strategy is depicted in the following diagram (this example uses SBC 5000 series platform):
The SBC can act as a SRC and an RTP translator. As an SRC, the SBC initiates SIP recording session (RS) towards SRS with metadata. Unlike NICE, it is the responsibility of the SBC to determine if a call requires recording.
In the SBC SIP Recording Strategy figure, the basic call is established between SIP phone 1 and SIP phone 2 through the SBC and called as communication session (CS). The SBC establishes a RS based on CS towards SRS. The SBC and SRS may exist in the same or different administrative domains. Each SBC RS is mapped to a single call (communication session), and the communication session is based on called or calling party number.
The two methods to trigger a call recording are:
The need to record a call is decided from the PSX based on the following criteria in the given order of priority:
The PSX/ERE uses the following configurable objects when determining whether a call needs to be recorded:
When SIPREC is selected as the Recorder Type, and Recording Type is selected as “both legs” and “all legs”, the SBC by default records the ingress leg.
Supported SIPREC features include:
Recording RTP session for a call by providing its GCID via CLI. The user provides the IP Address/port for the corresponding session recorder via the same CLI command.
Listing the calls currently being recorded using a CLI command. The SBC displays their GCID, and the RTP destinations and the SRS IP address.
Record any type of call leg (SIP, SIP-I ) by specifying the call to be recorded via CLI.
The called and calling party numbers in the recording criteria may be configured as a prefix.
PSX support provisioning 128 Recording criteria and 128 Recorder profiles.
Sending and receiving “+sip.src” feature tag extension in the Contact URI
Options Tag “siprec” in INVITE towards SRS.
Sending and receiving the rs-call specific data in the rs-metadata XML body
If a INVITE is received from a SRS or UE with a options tag “require: siprec”, the SBC rejects the request with a 4xx message.
Transparently passing the SIPREC specific feature tags from the UE to the registrar.
If the original call uses any codecs other than the above, it is assumed that the SRS will terminate the RS. So SRC continues operating the CS and RS until this happens.
The SBC transparently duplicates the packets coming/going to the UE towards the SRS using the same Codec as the Original stream.
If any request except session keepalive Re-INVITE/UPDATE or BYE is received in the context of a RS, the SBC rejects the request with a 405 "Method Not Allowed" message.
If Options PING mechanism is configured on the IP peer, it is used as a keep-alive mechanism for all the RSs.
Troubleshooting a SIPREC recorded call using MCT is only possible when initiated via CLI.
The SBC supports SIPREC on the multiple recorders based on the Internet Engineering Task Force (IETF) standard.The SBC acts as an SRC and a Real-time Transport Protocol (RTP) to initiate SIP RS on the SRS(s).
numOfStreams
received is 1
, the SBC sends the INVITE to the first reachable SRS IP address and uses the rest of the IP addresses for SRS redundancy.2
, the SBC sends the Fork INVITE to the first two reachable SRS IP addresses.Refer to NICE Session Recording for the list of supported codecs.
The SIPREC feature is controlled by a system-wide SBC license (SBC-SIPREC). If the license is not available, any SIPREC recording returned by a PSX is ignored.
To enable/disable SIPREC feature, use following syntax:
% set addressContext <ADDRESS-CONTEXT> zone <ZONE> sipSigPort <SIP SIGNALLING PORT> siprec <disabled|enabled>
To start/stop a recording, the following CLI syntax applies:
% request global sipRec startRecord gcid <GCID> callLeg ingress numOfStreams <Number of recorders 1 or 2> srsIpAddress <SRS IP ADDRESS> srsPort <SRS PORT> transport <tcp | udp> trunkGroup <TRUNK GROUP NAME> srsIpAddress2 <SRS IP ADDRESS> srsPort2 <SRS Port> transport2 <tcp | udp> trunkGroup2 <SIP Trunk Group> % request global sipRec stopRecord gcid <GCID> recorderAddress <IP Address> recorderPort <Port Number>
If only the GCID value is mentioned in the stopRecord
, all the multiple recordings for that GCID are stopped at once.
To view SIPREC status, use CLI syntax:
> show table global SipRecStatus RECORDER RX RTP TX RTP RECORDING GCID ADDRESS ADDRESS ADDRESS LEG 1 10.11.12.13:5060 10.11.12.13:8000 10.11.12.13:8002 ingress
Refer to Zone - SIP Sig Port - CLI and Request Global - CLI pages for CLI command details.