Users of PortaSwitch voice calls services can record their conversations to play them back later.
When the call recording feature is activated for a phone line, PortaSIP writes a copy of the RTP stream to a local disk for each incoming or outgoing call. The media stream then passes to the call recording server (a dedicated server is recommended since voice conversion is a resource-intensive task) where it is transformed into the .wav/.mp3 format, playable on any computer or smartphone. When the conversion is completed (this may take a few minutes), a link for conversation playback is available on the xDRs panel.
The process happens as follows:
- Someone dials the phone number that is assigned to one of your customers. The call passes to your network and arrives at PortaSIP.
- PortaSIP sends a request to PortaBilling to obtain call authorization and routing.
- PortaBilling determines that the account set to receive the call has the Call Recording feature activated.
- PortaSIP proxies the media stream for this call (overriding the RTP Proxying policy for the incoming DID vendor) and stores a copy of it in a local file.
- Once the call disconnects, the call recording server retrieves the file and the audio conversion begins.
- When the conversion process finishes, the xDR information about this call updates in PortaBilling and a “Play” link appears on the xDRs panel.
- When a user clicks on the link, their browser redirects to download the converted .wav/.mp3 file from the call recording server.
The PBX end users can hide call recordings from their colleagues on the self-care interface. To do this they can enable the Show the call recording to myself only option on their self-care interface.
By default, this option is hidden from the end users on the self-care interface. To allow specific accounts to manage the Show the call recording to myself only option, the administrator performs the following steps:
- Creates a new access role for accounts with permission to modify the Show the call recording to myself only option.
- Assigns this access role to accounts who are authorized to hide call recordings on their self-care interface.
The end users can receive call recordings in the email notifications after the call is ended. To enable a specific account to receive call recordings in the email notifications, an administrator performs the following
- Enables the New call recording is available notification in the customer class assigned to a specific customer.
- Enables the Send the call recording via email option for a specific account: goes to Voice call configuration > Call recording > turns on the Send the call recording via email toggle. Then the end user can manage the Send the call recording via email option on their self-care interface.
The end-users will receive email notifications, only if the email address is specified in the Account > Personal info > General info > Email.
You can find detailed information on how to configure the call recording functionality in the Call recording configuration handbook.
- The RTP stream must pass via the PortaSIP server in order for the server to record it, so please allocate sufficient bandwidth for PortaSIP to process these calls – without compromising sound quality.
- If a Call Recording instance isn’t configured to use .mp3, it converts the RTP stream to a .wav file, by default.
- A user who initiates an attended call transfer can obtain a recording of the transferred call and recordings of all subsequently transferred calls if:
- the Auto record redirected calls option is enabled for this user’s account (Account > Services > Service configuration > Voice calls > Call recording > Auto record redirected calls), and
- the recording started before the user transferred the call.
For example, user A calls user B. User B has Allow to start/stop recording manually enabled and starts to record the call. Afterward, user B puts user A on hold, calls user C, and initiates the call transfer. When user A successfully connects to user C, user B is disconnected. When the call between users A and C ends, user B obtains the whole call recording: his call with user A and the call between users A and C (after user B left the call).
- To record a forwarded incoming call from a vendor, enable both the Auto Record Incoming Calls and Auto Record Redirected Calls options for the account.
- To convert the call, the system recognizes the codec used to transport the voice. Therefore, for conversations to record properly, IP phones must be configured to use one of the following suggested codecs: G.711, G.729, G.723, and Opus.
Conversation recording is supported for Opus codec with an 8 kHz sampling rate. Support for other sampling rates for the Opus codec (e.g., 48 kHz) will be implemented in future releases.
Another solution is to configure the Codec order list attribute in the SIP SDP attributes group in a service policy and then apply that service policy to the accounts. It is important that both IP phones use the same codec for voice transmission.
- Call recording is not available in standalone mode.
On-demand call recording
The on-demand call recording enables end users to start/stop a call recording at any time during a call. To enable the on-demand call recording, an administrator enables the Allow to start/stop recording manually option in the call recording configuration.
There are two approaches to activating the on-demand call recording:
- By pressing the “Record” button on the IP phone. This approach enables end users with particular IP phone models to activate the on-demand call recording at the push of one button. The main requirement for an IP phone is to send a special SIP INFO request with the header “Record” with “On” and “Off” content. Then you need to assign the call recording to a specific button on your IP phone (for example, Yealink SIP-T28P).
- By dialing DTMF codes. This approach is available for all end users, regardless of the IP phone model they use. To start/stop the recording, the end user dials DTMF codes. The DTMF codes are specified in the dialing rule of PBX type. For example,
the end user dials *44 to start recording during a call and *45 to stop the recording. The administrator can change the default DTMF codes by creating a new dialing rule and assigning it to a customer/account. To change the default prefixes and DTMF codes for on-demand call recording, an administrator performs the following steps:
- Create a customer/account record with enabled dialing rules.
- Create a new dialing rule of PBX type.
- Change the default prefixes and DTMF codes in the dialing rule.
The end users can edit default DTMF codes on their self-care interface. To do this, they need to switch to a custom rule on the dialing rules panel.
Call recording announcement
Businesses can notify everyone on the call that their conversation is being recorded, allowing them to comply with call recording regulations. When call recording starts, all parties hear the “Call recording started” announcement. This ensures that everyone on the call is aware that the call is being recorded.
For example, Mary calls ABC company, where all the calls are recorded automatically. The call is received by the auto attendant, and then it is transferred to the sales hunt group. Peter, the sales agent, picks up the call, and both Mary and Peter hear the “Call recording started” announcement. Later, Peter manually stops the recording during a call since Mary is going to provide some sensitive information such as credit card details. In this case, the “Call recording stopped” announcement is played.
The recording always contains the announcement, ensuring that the call parties are notified of the call recording.
To enable the call recording announcement option for all PBX users, the administrator needs to:
- Open a specific product/add-on product with call recording feature enabled.
- Go to Services > Voice calls > Call recording.
- Turn on the Play the call recording announcement to all toggle.
The administrator can enable the call recording announcement option for a specific account. To do this, the administrator follows these steps:
- Open a specific account.
- Go to Services > Service configuration > Voice calls > Call recording.
- Turn on the Play the call recording announcement to all toggle.
End users can manage whether to play the call recording announcement on their self-care interface (if the administrator enabled it for end users beforehand).
Note that the call recording announcement is available only in English. If you need the announcement in another language, contact PortaOne support team.
Businesses comply with call recording regulations by playing a call recording announcement to all call parties.
Multiple call recording instances
You can speed up call recording conversion and reduce the delay between a completed call and the availability of its recording. You can also deploy multiple call recording instances to process calls from PortaSIP in a high-load environment. The load automatically distributes among instances and as a result, customers can access their call recordings earlier.
You can still configure a call recording instance to process calls from several PortaSIPs – and for even higher performance, you can add another call recording instance. There is no restriction on the number of call recording instances you can add. This flexibility helps you to effectively manage your computing resources.
With the update to the new release, your existing call recording service is automatically upgraded. The path to converted files remains unchanged so your administrators and resellers don’t have to adjust their custom applications.
This deployment of several call recording instances adds high availability to your call recording service: if one instance is down or unavailable, the remaining instances continue operations and distribute the load.
With this enhancement, CSPs benefit from increased performance as it enables them to offer their call recording service to more customers and extend their customer base.
CSPs can also deploy external storage for call recordings and offer the storage space as a VAS, which will result in additional revenue. They can also grant access to external storage via external apps such as CallCabinet and thereby offer additional features (e.g., voice analytics, reports, etc.) on top of the basic call recording service.
Call recording requires significant CPU and HDD capacity. It involves media stream conversion, which is a resource-intensive task. Moreover, call recordings take up disk space (e.g., 1 hour of recorded conversation takes up 30MB of disk space). Therefore, we recommend that you deploy call recording on a dedicated physical server.
According to our lab tests, a single call recording instance can process approximately 13 hours of call records per minute. Let’s say that 5000 calls are completed simultaneously, with an average call length of 5 minutes. These calls would result in more than 400 hours of call records. In our tests, if just 7 call records can be processed simultaneously, users might wait up to 25 minutes to access call recordings. However, if you deploy three call recording instances, the maximum waiting time decreases to 3.5 minutes. The servers with these specs are used in our lab tests: 2-E5620 @2.40 GHz (8 core), 12GB RAM, RAID 1+0.
Each call recording instance increases performance by 1.5 times. Thus, if one instance processes, on average, 13 hours of call records per minute, then two instances process 20 hours of records, 3 instances – 26 hours of records, etc.
The actual performance greatly depends on the hardware specs and partially depends on the average call duration.
Integration with external call record storage platforms
Third-party applications are often used to provide extra features for stored call recordings. For example, Call Cabinet is popular for its call encryption options that enhance the security of sensitive data, thereby enabling customers to comply with local regulations (FICA, FAIS, POPI, or CPA). To use such applications, call recordings must be transferred to the Call Cabinet and stored there. Call recordings can be exported in bulk to an external storage platform via SFTP. This feature helps you integrate PortaSwitch with third-party applications that require call recording storage on their side.
You can deploy external SFTP storage to store call records along with call metadata such as call duration, direction, calling and called numbers, h323-conf-id, and custom fields. Thus, you can offer storage space to customers as a VAS and earn additional revenue. Customers can store call recordings for longer periods, e.g., businesses must store call records for up to 3 years while the default storage period is 59 days.
Calls made by users are recorded in PortaSwitch. The .wav/.mp3 files are saved to local storage on the call recording server and then copied to external storage via the SFTP protocol. The call metadata is saved in JSON format as a separate file for every call recording to the external storage directly. Data processing via SFTP is much faster than executing API calls for file transfer. This improves call recording performance in high-volume environments. To increase call recording conversion speeds, you can deploy several call recording instances.
You can grant access to the external SFTP storage via external applications and plug-ins such as Call Cabinet and offer additional features (e.g., voice analytics, encryption, etc.) on top of the basic call recording service.
PortaSwitch is supplied with a Docker image of external FTP/SFTP storage. You can deploy it either on the hardware server or in the cloud. When deployed, configure external storage for a particular billing environment. You can use the same external storage for multiple billing environments.
Feel free to contact the PortaOne Support team for assistance.
This functionality extends PortaSwitch integration capabilities and simplifies its integration into a CSP ecosystem.
CSPs benefit from:
- Selling access to external applications (and thus extra storage/features) as a VAS and earning additional revenue;
- Offering sophisticated call recording services to customers thus expanding the customer base.
Customers benefit from:
- Having the ability to store call records in external applications and therefore be compliant with local regulations;
- Using unified communication features from an external application such as notifications, reporting, sharing a recording, etc.
Deploy the external SFTP storage. Then configure the storage for the desired billing environment on the Configuration server.
- Select Call Recording > SFTPStorage group and specify these parameters:
- enabled – set Yes;
- host – specify the SFTP storage IP address;
- port – specify the SFTP storage port. The default port is 22;
- user – specify the user’s username to access SFTP storage;
- password – specify the password to access SFTP storage;
- root_path – specify the path to transfer and store call recordings;
- meta_file_items – configure this parameter if you wish to retrieve call meta data.
The entries have the format <name>:<PB_entity.parameter> where <name> is your description of the meta data, <PB_entity> is the name of the database table and <parameter> is a table column.
Supported tables are: CDR_Accounts, Accounts, Customers; Supported columns are: any column from the corresponding table. Select the entry from the list. Click to add a new entry.To send the call meta data about the custom fields, specify the entries in the Custom_Fields_Name.name format. For example, to send the info about CallCabinetCustomerGUID option, specify the CallCabinetCustomerGUID:Custom_Fields_Name.CallCabinet_CustomerID.
- Click Verify to save and verify the configuration.
- Click Check/Apply to apply it.
When you apply the configuration, the call recording server restarts. Therefore, apply it during an off-peak period.To configure the call recording service for customers, please refer to the Call recording configuration handbook.