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 Show the call recording to myself only option

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

  1. Enables the New call recording is available notification in the customer class assigned to a specific customer.
  2. 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.

Important notes

Link copied to clipboard
  • 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: their call with user A and the call between users A and C (after user B has left the call).
  • A user cannot obtain a call recording when CDR is not created for the corresponding account. For instance, in a call scenario when a user retrieves a parked call on a different IP phone, they cannot obtain a call record using the account where the call was retrieved because no CDR is generated for this account.

    Let’s consider a call between two users, account A and account B. One of the users (account B) decides to continue the conversation in another room and parks the call, retrieving it on another phone (account C). Now, even though the call recording feature is enabled for account C, the user cannot record this call.

    In this case, to record such a call, the user needs to initiate call recording before parking the call, and the record will be available for account B.

  • 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.

    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

Link copied to clipboard

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:

  1. 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).
  2. 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. Change service 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.

    Edit default DTMF codes on the customer self-care interface

Call recording announcement

Link copied to clipboard

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 switch.Call recording

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 switch.

play call recording

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).

Account manages whether to play the call recording announcement

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.

Deployment recommendations

Link copied to clipboard

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

Link copied to clipboard

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.

External SFTP storage

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:

  1. Selling access to external applications (and thus extra storage/features) as a VAS and earning additional revenue;
  2. Offering sophisticated call recording services to customers thus expanding the customer base.

Customers benefit from:

  1. Having the ability to store call records in external applications and therefore be compliant with local regulations;
  2. Using unified communication features from an external application such as notifications, reporting, sharing a recording, etc.


Link copied to clipboard

Deploy the external SFTP storage. Then configure the storage for the desired billing environment on the Configuration server.

  1. 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 add to add a new entry.

      To send the call meta data about the custom fields, specify the entries in the format. For example, to send the info about CallCabinetCustomerGUID option, specify the CallCabinetCustomerGUID:Custom_Fields_Name.CallCabinet_CustomerID.

    Deploy the external SFTP storage

  2. Click Verify to save and verify the configuration.
  3. 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.

Transcription of call recordings

Link copied to clipboard

The transcription of call recordings is an AI-driven service available via the Add-On Mart, which can be offered to the customers who use the call recording feature. The speech-to-text integration allows you to connect to different AI transcription models based on your preferences or the language of the region where you provide your services.

The speech-to-text transcription may be helpful for cloud PBX and call center customers who need to save time when reviewing and noting important details of lengthy conversations.

Once a call is completed and the recording is ready, the conversation will be automatically transcribed and made available for download on the PortaBilling web UI. Additionally, you can use the PortaBilling API to integrate this functionality into your self-care portals, developed in-house or by a third party.

To monetize the speech-to-text service, create an add-on product that includes this service and a subscription fee. Please note that charging for service usage based on the duration of transcribed conversations is currently unavailable; this feature will be introduced in MR115.

Currently, the integration is based on the OpenAI Whisper service and supports all major languages. If you want an integration with your preferred speech-to-text transcription service, contact our support team. If you develop your own integration with a 3rd party speech-to-text service, contact our sales team to become an Add-On Mart partner and receive a revenue-share from other CSPs who will use it.

To use the speech-to-text transcription, you need to:

  1. Sign up for an account with an external service (such as Whisper)
  2. Subscribe for the corresponding module in Add-on Mart
  3. Configure the integration:
    1. Obtain the API key from the external service and enter it on the Add-on Mart module’s Configuration UI
    2. If it’s the first module you activate, specify the Add-on Mart credentials in PortaBilling

You can find the configuration details for the Speech-to-text (Whisper) module here.


During a conversation with the customer, John, a sales manager, made a deal and promised а 10% discount for the first 3 months of subscription.

As John’s extension has call recording and transcription features enabled, the system immediately processes the recorded dialogue and runs it through the speech-to-text service as soon as their conversation ends. After some time, John needs to re-check the information on the deal he made, so he opens the service provider’s custom self-care portal and finds his call successfully transcribed. He downloads the file which contains the information provided by the customer during their conversation.

The transcription download will also be available on the CloudPBX Self-Care Portal in the future.
  • Service providers can offer this feature for a subscription fee to their customers as an extra revenue source.
  • End-users can conveniently access important call information in the text format for quick analysis.

On this page

What's new
Admin manuals
UI help
Back to main menu