Charging customers based on used volume of call recordings and transcriptions
With MR115, you can charge your customers for call recording and transcription services based on the total duration of recorded and transcribed calls. For example, you can offer “10 hours of recording & transcription for $10 per month.” Previously, these services were unlimited for a subscription fee. Now, after customers use up the allocated volume, such as 10 hours, you can charge them at a pay-as-you-go rate, e.g., $0.03/minute for recording and $0.05/minute for transcription.
Charges for recorded and transcribed calls are applied to users’ accounts once a day. The process is as follows:
- The system generates a .csv file listing all calls recorded and transcribed during the day.
- A special utility, the xDR Mediator, processes this file and passes the data to the billing engine.
- The billing engine applies quotas for the recording and transcription services or charges according to the specified rates.
For detailed instructions on configuring customer charging based on the volume of call recordings and transcriptions, consult the handbook.
Service providers can monetize and recover the cost of call recording and transcription services.
New representative web interface
Starting with MR115, representatives will see the new web interface when they log in. In addition to the same functionality as on the old representative interface, the updated version also allows for checking the commission details, e.g., one-time commission for the subscription.
- Easy representative onboarding process for service providers
- Access to a modern, user-friendly web interface for representatives
Access to the latest news from the PortaBilling login page
Service providers may be unaware of the potential for new value-added services and revenue streams available with the latest updates because they are fully immersed in their current operations. With this release, admins can check the latest PortaOne news and information relevant to their current maintenance release every time they log in to PortaBilling.
For instance, while logging into the system, admin notices news about the recent AI-based call transcription feature and decides to evaluate it instead of developing their own solution. This timely information allows the service provider to make strategic decisions and potentially save on development costs.
This enhancement can help service providers stay up to date with the latest events, such as webinars, and in a timely manner learn about the latest functionality they may need.
Call parking from external apps
Now you can enable PBX customers to park/retrieve calls using third-party or in-house developed apps, such as a receptionist console. For instance, a receptionist can easily park a client’s call by pressing a single button on their desktop app, allowing a colleague to pick it up on any IP phone throughout the office. This feature is implemented via the call control API. The receptionist console app sends an API request to PortaSwitch to park the call.
When parking a call via the app, the receptionist can use either of two methods:
- Select a parking slot, if these slots are set up in the cloud PBX and configured on the office IP phones. For example, two parking slots are created via the Cloud PBX Self-Care Portal and configured on IP phones as line key 1 and line key 2. When the receptionist parks a call, they can see which parking slots are available and select one of them, such as slot 1, in the app. This way, the call can be quickly retrieved from any IP phone by pressing line key 1.
- Select a specific extension. If the office phones do not support parking slot configuration, there are no available slots at the moment, or a call is intended for a specific person, the receptionist can select a colleague’s extension to park the call. A call parked to a specific extension (e.g., 1234) can be retrieved from the IP phone where the extension is registered by dialing a service code (e.g., *71) or from any other IP phone by dialing a service code followed by the extension number (e.g., *711234).
Web/mobile apps can also be designed to retrieve parked calls with a single click/tap.
If a parked call has not been retrieved within the defined timeout, it automatically returns to the application where the call was parked and rings, if automatic retrieval is enabled.
Let’s explore in more detail how call parking from an app works.
Consider Alice, a receptionist in a hospital, using a dedicated app to handle incoming calls. There are two parking slots designated for the hospital’s cloud PBX via the Cloud PBX Self-Care Portal. Throughout the hospital, the IP phones are configured with line key 1 and line key 2 as parking slots.
Say Alice receives a call from Dr. Smith’s patient seeking a consultation. Knowing that Dr. Smith is not in his office, Alice does not transfer the call to his extension. Instead, she opts to park the call and make an announcement via the public address system. Alice asks the caller to wait on hold and parks the call by clicking “parking slot 1” that is shown as available. In the background, the app sends a call control API request to PortaSwitch which parks the call. A notification appears in the app, indicating that the call has been parked in parking slot 1, and Alice is automatically disconnected from the call. The app displays the “parked” status for this call, indicating that the caller is now on hold. Then, Alice makes an announcement via the public address system: “Dr. Smith, there’s a call for you on line 1.”
Dr. Smith, who is in the consultation room, hears the announcement and picks up the IP phone right there. To retrieve a call and connect with the patient, he presses the line key 1 on the IP phone.
Service providers can develop competitive business apps that allow PBX users, such as receptionists, to park calls in a simple way.
For the specifics, check here.
Integration with IPLOOK
PortaBilling is now integrated with the IPLOOK mobile core. IPLOOK focuses on providing a 3G/4G/5G mobile core for MNOs, MVNOs, WISP (Wireless Internet Service Provider), and enterprises.
This integration enables mobile operators to perform real-time charging for internet access and voice calls provided by the IPLOOK mobile core. For real-time authorization and charging (AAA), the IPLOOK’s mobile core and PortaBilling communicate via the Diameter protocol. When a user attempts to use a service, PortaBilling authenticates them and authorizes the internet session or voice call by verifying that the user has sufficient balance/quota to use the service.
MVNOs/MVNEs can launch mobile services using a cost-effective mobile core.
See the configuration details here.
Reduced database load by batch update of balances
Now, you can configure the PortaBilling system to accumulate changes to customer or vendor balances over a specific interval, such as 5 seconds, before processing the balance update.
This approach consolidates balance updates into a single operation at the end of the interval, thereby reducing their frequency. Previously, the system would immediately update a customer’s or vendor’s balance after each transaction, such as a call completion. For large customers with many concurrent calls, this frequent updating could result in tens or even hundreds of balance update transactions per second, applied to the same database record, thus producing database locks and delays.
Service providers can avoid investing in more expensive hardware due to reduced database load.
To update balances in batches, admin should enable the Batch balance updates for usage charges toggle on the PortaBilling web interface for the customer or vendor.
By default, the system accumulates balance changes every 5 seconds. You can change the default period in the Rating.PendingBalanceUpdateIntervalCustomer and Rating.PendingBalanceUpdateIntervalVendor options on the Configuration web server interface.
Accurate tracking of bundle depletion and expiration via external apps
With this release, PortaBilling can notify external apps, such as custom-built web apps or apps based on PortaOne Workflow integration, about the reason for bundle unavailability. Previously, there was no distinction between bundle depletion and bundle expiration events.
This change ensures accurate tracking of both quota depletion and expiration and streamlines the development process of external apps. For example, this allows you to send more precise notifications and tailored promotions to end users via a CRM system.
A service provider uses a CRM system integrated with PortaBilling to notify their subscribers about bundle status and offer renewal, or additional purchase options.
On June 1st, John subscribes to a roaming package offering 10 GB of data for $10, valid for 7 days. During his vacation, John uses 9 GB of the allocated data, leaving 1 GB unused. On June 8th, the unused 1 GB expires. PortaBilling notifies the CRM system with the Account/Service/Netaccess/QuotaExpired event. The CRM system sends John a notification: “Dear customer, your internet roaming service package has expired. You can renew the 10 GB bundle for the next 7 days for $10.”
As John’s vacation continues, he opts to renew his package for another 7 days. By June 12th, John exhausts the 10 GB of allocated data, which triggers sending the Account/Service/Netaccess/QuotaExceeded event to the CRM system. Subsequently, the CRM notifies John: “Dear customer, you have used up your 10 GB quota. To stay connected, you can purchase an additional 5 GB of internet for $5.”
This enhancement simplifies integrations with external systems and allows providers to inform customers about precise service changes.
To inform an external app about the account’s bundle expiration, you can subscribe the event handler in PortaBilling to the new Account/Service/Netaccess/QuotaExpired event.
For PortaBilling to notify an external app when the bundle allocated for an account has been used up, use the existing Account/Service/Netaccess/QuotaExceeded event.
Adjust recurring fees for service packages sold by resellers
When a reseller sells a service package with a subscription to an end user, the service provider also charges the reseller (PortaBilling automatically assigns a separate subscription to the reseller). With this release, you can customize the subscription fees applied via service packages to resellers by configuring discounts or upcharges. This enhancement eliminates the need for service providers to create separate subscription plans when resellers negotiate special pricing with the service provider.
The following options have been added for subscriptions assigned to resellers via products:
- Apply a fixed/relative discount.
- Apply a fixed/relative upcharge.
This enhancement saves time for the service provider’s admin by avoiding creation of extra subscriptions assigned to resellers via products.