On-Demand SIPREC using SIP INFO Messages

The device supports on-demand SIPREC sessions that are triggered by the receipt of SIP INFO messages. The device can be triggered to start, pause, resume, or stop recording at any stage of a connected call. Therefore, this allows the device to do multiple recordings of a call.

The device starts, pauses, resumes, or stops recording upon the receipt of a SIP INFO message that contains AudioCodes proprietary X-AC-Action header. The syntax of the X-AC-Action header for SIPREC is shown below:

X-AC-Action: <Recording Action>;<SRS Type>=<SRS Entity>;recorded-side=peer

Where:

<Recording Action> specifies the recording action:
start-siprec: Starts recording.
pause-siprec: Pauses recording.
resume-siprec: Resumes recording after it was paused.
stop-siprec: Stops recording.
<SRS Type> indicates the device entity used to represent the SRS:
recording-ip-group: SRS is defined by individual IP Groups (see Configuring IP Groups).
recording-ip-group-set: SRS is defined by IP Group Sets (see Configuring IP Group Sets).
<SRS Entity> specifies the SRS as an IP Group or IP Group Set by name or index number. Use a comma-separated list (without spaces) to specify multiple IP Groups or IP Group Sets.
recorded-side=peer is an optional parameter, which you can use to indicate that recording be done on the peer side (i.e., not the side receiving this X-AC-Action header). This parameter is applicable only to the start-siprec recording action.

The following shows an example of an incoming SIP INFO message that triggers the device to start a SIPREC session for the call and using IP Groups "SRS-SiteA" and "SRS-SiteB" as the SRSs:

INFO sip:alice@pc33.example.com SIP/2.0
Via: SIP/2.0/UDP 192.0.2.2:5060;branch=z9hG4bKnabcdef
To: Bob <sip:bob@example.com>;tag=a6c85cf
From: Alice <sip:alice@example.com>;tag=1928301774
Call-Id: a84b4c76e66710@pc33.example.com
CSeq: 314333 INFO
X-AC-Action: start-siprec;recording-ip-group=SRS-SiteA,SRS-SiteB
Content-Length: 0

You can specify different SRS IP Groups or IP Group Sets per recording action for the same call. For example, the SIPREC session can be started (start-siprec) on SRS IP Groups x, y and z, and then later paused (pause-siprec) on SRS IP Group y only.

If the X-AC-Action header contains only start-siprec, use the device's Message Manipulation feature (see Configuring SIP Message Manipulation) to add 'recording-ip-group="<SRS IP Groups or IP Group Sets>"' and optionally, 'recorded-side=peer' to indicate if recording should be done on the peer sided. Assign the Message Manipulation Set ID to the IP Group of the sender of the SIP INFO message (i.e., not the SRS IP Group). The following shows an example of such a Message Manipulation rule:

'Name': SRS IP Group for Start SIPREC
'Manipulation Set ID': 0
'Message Type': Info
'Condition': Header.X-AC-Action contains 'start-siprec'
'Action Subject': Header.X-AC-Action
'Action Type': Modify
'Action Value': 'start-siprec;recording-ip-group="IPGroup_2"'

The manipulated parameters of the X-AC-Action header in the incoming INFO message are not reflected in the message of the outgoing leg.

For stopping recordings, if the X-AC-Action header contains the recording-ip-group or recording-ip-group-set parameter, only recording towards the specified SRS IP Group(s) / IP Group Set(s) is stopped. If the header doesn't contain these parameters, all recordings that were triggered by INFO messages are stopped.
The device rejects the INFO message (with a 500 response) if any of the following scenarios exist (call is not affected):
The recording-ip-group or recording-ip-group-set parameter doesn’t exist.
The X-AC-Action header contains no parameters.
Starting, pausing, resuming, or stopping recording were not all triggered by SIP INFO messages (as described in this section). For example, if starting recording was triggered by the normal SIP Recording Rules table and stopping recording was triggered by a SIP INFO message containing the X-AC-Action header with the stop-siprec parameter, the device rejects the INFO message.
The X-AC-Action header contains the stop-siprec, pause-siprec, or resume-siprec parameter even though SIP recording wasn't started.
The X-AC-Action header contains the resume-siprec parameter even though SIP recording wasn't paused.
The X-AC-Action header contains the start-siprec parameter on a recorded-side while there is an active SIPREC session on the other side.
The X-AC-Action header contains the recorded-side=peer parameter when triggered to pause, resume or stop recording. In this scenario, the trigger (e.g., pause) is activated even though a SIP 500 is sent.
Six recording sessions are already in progress (maximum).
The device forwards information in SIP INFO messages such as the transcript of the call from the SRS to the initiator of the on-demand SIPREC session.