What’s new in MR119

Link copied to clipboard

Origin-based call rating

Link copied to clipboard

In order to adjust to market conditions, telecom vendors in many countries have started charging different prices for calls to the same destination based on where the call originates. For example, a vendor might charge $0.10 per minute for calls to a mobile number in Turkey originating from Canada, $0.20 from Morocco, and $0.40 from Algeria. Typically, there is a standard base price for a specific destination, with additional surcharges applied for calls originating from specific countries or networks.

With this release, you can set the pricing in PortaBilling tariffs based on the combination of a destination (called) phone number and the originating (caller’s) phone number. Such tariffs offer standard prices per destination, with the possibility to either add a surcharge to the standard price or replace it with a new price if the caller’s number matches a specific rate code (e.g., country code). This feature enables accurate cost calculation for calls routed through vendors that use origin-based rating. Optionally, you can also implement this type of charging for your customers (e.g., large enterprises or call centers with end users in various countries) and resellers to ensure there is no revenue leakage.

Previously, the possibility to consider the call origination in tariffs was limited to calls made from within/outside the European Economic Area (EEA) or US interstate and intrastate calls, with only two prices per destination (e.g., one for calls from within the EEA and another for calls from all other countries).

EXAMPLE

Say a vendor, GlobalNet, charges a standard price of $0.10 per minute for terminating calls to +90530 (Turkey-Mobile Turkcell). However, GlobalNet adds a surcharge for calls originating from:

  • +212 (Morocco): $0.20 surcharge
  • +213 (Algeria): $0.40 surcharge

Owl Telecom, a service provider working with GlobalNet, receives a file with these rates and surcharges and adds them into its system. To ensure profitability when routing calls to Turkey via GlobalNet, Owl Telecom also adds its own surcharges on top of the standard customer price ($0.15):

  • +212 (Morocco): $0.25 surcharge
  • +213 (Algeria): $0.45 surcharge

If a call is made to +905303334567 (Turkey-Mobile Turkcell) from +2132221234 (Algeria), the per-minute price is $0.60 ($0.15 standard rate + $0.45 surcharge). If the call originates from any other region without defined surcharges in the customer tariff, such as +12045557890 (Canada), the price remains at $0.15 per minute.

Benefit

Service providers can ensure profitability while working with vendors that apply additional charges based on the call’s origin.

Specifics

If origin-based charges are set up in a reseller/customer tariff and the call origination number is defined, the reseller/customer will be charged according to their tariff, even if the call is terminated by a vendor for which the additional origin-based pricing is not configured.

Limitations

Such functionality as rate upload, tariff cloning, tariff testing, and xDR re-rating is currently unavailable for tariffs used for charging based on both the destination and origination number. These features will be included in a future release.

See the configuration details here.

Simplified Call Control API for building custom voice applications

Link copied to clipboard

Starting with this release, creating custom voice applications for handling calls is easier with the simplified methods of the Call Control API. Developers can now create custom logic for playing prompts, collecting user inputs, redirecting calls based on the provided input, and performing other actions using just two new methods:

  • CallControl/play – enables playing prompts and automatically stopping them, which previously required using two separate API methods (play_prompt and stop_play_prompt). This method also allows notifying applications if a prompt is interrupted by the end user before playback is finished, enabling automatic follow-up actions such as collecting inputs, repeating prompts, or transferring calls. In addition to the AU audio format, it supports WAV and MP3.
  • CallControl/get_input – enables collecting DTMF inputs and managing input collection logic (e.g., specifying how long to wait for input or how many digits need to be entered before proceeding with the call), as well as notifying applications when input is collected, no input is provided, or the operation times out.
EXAMPLE
A developer builds an auto-dialer for a hospital to remind patients about their upcoming appointments. When a patient receives a call, they hear the appointment details along with the following options: “Press 1 to confirm, 2 to reschedule, or 3 to cancel”. If the patient immediately presses “1” to confirm without hearing all the options, the Call Control API notifies PortaSwitch that the prompt was interrupted and input was collected. The system then plays a prompt “Thank you for confirming your appointment!” and automatically finishes the call.
Benefit

Developers save time on building call flows for custom voice applications.

Specifics

The new CallControl/play method replaces the previous CallControl/play_prompt and CallControl/stop_play_prompt methods. Similarly, the new CallControl/get_input method takes the place of CallControl/start_dtmf_detect and CallControl/stop_dtmf_detect methods.

Direct call transfer/forward to call queues

Link copied to clipboard

Call center owners typically configure incoming calls to be placed in a call queue while waiting for agents to become available. However, when agents transferred or forwarded calls to other departments (hunt groups), those calls could not previously be placed in call queues. To address this, call center owners set up auto-attendants, which routed such calls to call queues after receiving input from the caller.

With this release, agents and supervisors can directly transfer and forward calls from external callers to call queues using IP phones or external applications. Calls from outside the PBX are always placed in the call queue until an agent becomes available. For example, if a client calls the support department and has to wait for a long time, a supervisor can transfer the caller to the Second line support where the client would be served immediately, thereby reducing the wait time.

However, if the initial call originates from another agent (extension), such calls bypass the queue. For example, an employee of the company will not be placed in a queue when contacting their colleagues.

This eliminates the current dependency on auto-attendants for transferring/forwarding calls into queues, simplifying call management.

EXAMPLE

The ABC company organizes a 24/7 call center for its support departments: First line support and Second line support. John is a supervisor in the company.A client contacts a company’s call center and selects First Line Support from the initial menu to inquire about delays in their software update. They are tenth in the queue. John opens his web app to check how many clients are waiting for an available agent and realizes the client has already been waiting in this queue for 15 minutes. Since only one caller is waiting in the Second line support department, he decides to transfer the client there.

Benefits
  • Cloud PBX customers profit from a lower call abandonment rate.
  • Call centers can improve customer service.
  • Service providers can offer flexible cloud PBX/call center solutions and stay ahead of the market competition.
Specifics

If the call queue exit option is set to go back to the initial menu (Return to Auto Attendant menu), but no auto attendant is configured, the call will be simply disconnected when the caller selects to exit the queue.

Easily trace payment allocation to invoices

Link copied to clipboard

With this release, PortaBilling admins get a clearer view of how the payments are allocated – whether they were applied to one or multiple invoices, or placed under unallocated payments.

Previously, determining how payment was distributed across invoices required reviewing the customer’s/reseller’s audit log or generating a Customer statement report. Admin had to locate the payment record and trace subsequent automatic distribution actions. For example, part of the payment might cover an outstanding invoice, while the rest remains in unallocated payments. Now, admin can simply check the tooltip next to the invoice’s paid amount to see the allocated amounts and dates of payments. Similarly, the unallocated payments setting has a tooltip that displays a list of payments. Additionally, on the payment records in xDRs, admins can also view which invoice was covered by a specific payment. Please note that the history of the payment distribution is periodically cleaned up along with the payment xDRs; therefore, this is not accessible for records older than the KeepPaymentXDRs value set on the Configuration server.

EXAMPLE

Owl Telecom’s customer, ABC Company, has 3 unpaid invoices:

  • The invoice for October is $800
  • The invoice for November is $1,000
  • The invoice for December is $1,200

The customer sends a wire transfer of $2,500 to cover the invoices. Owl Telecom receives the payment confirmation from the bank, and the script the service provider developed enters it as a manual payment into PortaBilling via API. The payment covers the invoices for October and November fully, but the December one is only partially paid.

In January, ABC Company contacts Owl Telecom’s billing manager by phone to ask why their invoice is in the partially paid status even though they made a payment the previous month. The billing manager opens the customer’s page in PortaBilling and checks the information on the recent payment. The billing manager sends the screenshot of the payment’s Allocation per invoice and the customer sends an additional payment to cover the invoice fully. After that, the script adds another payment and the billing manager sees the following:

  • On Customer > xDRs > Payments, two payments were added. The Allocation per invoice column shows such a  breakdown for each entry:

    Allocation per invoice

  • On the Invoices > Paid amount column, the tooltip shows the payment details for each invoice:

    Invoice payment breakdown

  • Since the total payments amount to $3,500 and the total outstanding balance is $3,000, the Unallocated payments show:

    Unallocated payments

Benefit

PortaBilling admins can troubleshoot payments quicker.

Specifics

It won’t be possible to track the application of payments that:

  • were made before the system was updated to MR119
  • have records that were cleaned up

Ability to track active subscriptions with zero charges

Link copied to clipboard

With this release, admins and customers can track subscriptions with fully discounted charges. When a subscription with a 100% discount is applied to a customer, a zero-charge xDR is generated for the customer. Service providers can analyze how many customers are receiving services for free. Admins and customers can track these zero-charge xDRs in the PortaBilling web interface and invoices.

EXAMPLE
Say a service provider, Owl Telecom, offers its internet customers a premium technical support service. The service is free for the first three months as a promotional offer, then costs $9.99 per month for the next nine months, and $12.99 per month thereafter. During the three-month promotional period, the service appears on the customer’s invoice as “Premium Technical Support” with a charge of $0, clearly indicating that it is provided free of charge.
Configuration

If you install MR119 or a later version from scratch, xDRs for subscriptions that do not incur charges (a 100% discount is provided) are created by default.

If you update the system to MR119, and want the system to create xDRs for subscriptions with a 100% discount, set the Subscriptions.Generate_Zero_CDRs option to “Yes” on the Configuration server web interface.

Benefit

Service providers can track promotional offers’ uptake while ensuring customers clearly see the value they receive.

SMS charging with Huawei MOne

Link copied to clipboard

PortaBilling is now integrated with Huawei MOne acting as a Short Message Service Center (SMSC) in mobile networks. This integration enables mobile operators to deliver SMS messages to their subscribers and charge for them in real time.

PortaBilling communicates with Huawei MOne via the Diameter (Ro) interface, enabling real-time authorization and charging (AAA) for outgoing SMS messages. For example, when a subscriber attempts to send an SMS, PortaBilling authenticates the subscriber, authorizes sending the SMS, charges the user’s account, and Huawei MOne SMSC routes the SMS for delivery to the recipient.

This integration is compatible with earlier release versions starting from MR107.
Benefit

MVNOs/MVNEs can charge for SMS services using Huawei MOne.

See the configuration details here.

×
Docs for
What's new
Admin manuals
Handbooks
UI help
Developers documentation