What’s new in MR101

Link copied to clipboard

Per-line tax calculation for SureTax plug-in

Link copied to clipboard

Service providers in the US have to assess certain taxes (e.g. E911 surcharge) based on the number of customer’s service lines (per-line taxes). Since the tax law does not refer to hosted PBX concepts, it is important to correctly translate the actual hosted PBX configuration (the type of the business/product; number of phone lines, allowed to make phone calls; the maximum number of allowed outgoing calls; etc.) into the number of lines used for taxation.

PortaBilling automatically calculates the number of lines to be passed to the taxation engine using either of 2 methods:

  • Count all customer accounts, enabled for making phone calls. This is good for a typical hosted PBX environment when each account represents a phone line, assigned to an individual and provisioned on a VoIP phone or mobile app. Certain accounts (e.g. auto-attendant) can be excluded from the calculations.
  • Use the maximum number of allowed outgoing calls for an account. This is useful for SIP trunking service when a single account represents a remote PBX with multiple users on it.

In case a customer has a complex configuration of the hosted PBX environment and it is not possible to correctly calculate the number of lines automatically – an administrator can manually assign the required value.


  • Service providers comply with the government regulation for calculating lines.
  • Correct per-line tax calculation with the tax cap which can result in reduced tax amounts for customers.

Note that for now, this feature is available for SureTax taxation plug-in only.

Scenario 1

Let’s say a US service provider has a customer “ABC” located in two offices. The Dallas office (ZIP code 75043) has 150 employees and 100 employees work in the Denver office (ZIP code 80022). The tax calculation depending on the users’ physical location (Texas or Colorado) is enabled for “ABC”. According to the tax jurisdiction, the following 911 per-line taxes are applied to “ABC”:

  • Dallas: $0.5 per line.
  • Denver: $1.2 per line but the tax cap is $100 in total per customer.

Since each employee uses a phone line (account) provisioned on an IP phone, the per-line taxation based on the number of accounts makes the most sense and so it is set in the customer settings. So when closing a billing period for the customer, PortaBilling sends a request to SureTax with the following information:

  • Dallas: ZIP code 75043 – 150 lines
  • Denver: ZIP code 80022 – 100 lines

SureTax calculates the corresponding amounts of E911 tax:

  • Dallas – $75 (150 lines*$0.5)
  • Denver – $100 (100 lines*$1.2=$120, but no more than $100 in total per customer)

Scenario 2

Let’s say a US service provider has a customer “XYZ” located in Dallas (ZIP code 75043). “XYZ” has their own PBX, so they use SIP trunking service to send/deliver calls from/to their PBX.

Since “XYZ” customer has a single account in PortaBilling which represents a remote PBX with multiple XYZ’s employees who can make calls, it makes sense to use the number of concurrent outgoing calls allowed for the remote PBX as a number of lines used for taxation. For the “XYZ” customer, this number is set to 20.

The tax calculation depending on the users’ physical location is disabled for this customer.

PortaBilling sends the request to SureTax with the following information:

  • Dallas: ZIP code 75043 – 20 lines

According to the tax jurisdiction (Dallas, Texas), $1.2 per-line 911 tax is applied, so SureTax calculates the corresponding amount of E911 tax:

  • Dallas – $24 (20 lines*$1.2=$24)
Per-line taxation based on the number of allowed outgoing calls is not recommended when the customer has users with different tax jurisdictions and a limit on the number of simultaneous calls.

For example, a customer has 10 users in different locations and the Tax jurisdiction per account option is enabled. Each account is allowed to make 4 simultaneous calls (on the product level); however, the number of allowed outgoing calls is also restricted to 8 calls (on the customer level).

As the number of lines is sent per each user location and checked against the customer limit, the final number of lines reported will be 40 (each account will be reported as 4 lines), though in reality, it will be possible to make only 8 simultaneous calls.

In all the above scenarios, when SureTax assesses the per-line tax and provides tax amounts, PortaBilling creates tax xDRs, adjusts customer balance, and generates the invoice at the end of the billing period which includes these tax amounts.

Thus, the service providers can collect per-line taxes from the customer properly and in accordance with the corresponding regulations.


If Tax jurisdiction per account option is enabled for the customer and the customer’s accounts have no ZIP code specified, the customer ZIP code is used instead to send the number of lines to the tax company, and the administrator receives the corresponding notification on email.

Find the PortaBilling configuration details here.

Route emergency calls passing user location data from MS Teams and other endpoints that support PIDF-LO

Link copied to clipboard

Presence Information Data Format Location Object (PIDF-LO) is a standardized format for representing location and presence information in communication systems. PIDF-LO plays an important role in Next Generation 911 (NG911) and Next Generation 112 (NG112) standards for conveying user location to emergency services. The format is used by MS Teams to deliver the current user’s location to the closest Public Safety Answering Point (PSAP). Service providers can now route emergency calls that are made from an MS Teams client and contain the user’s location data via PortaSwitch.

When a user calls an emergency number from an MS Teams client, MS Teams adds the user location. The information is sent in the PIDF-LO format as a multipart SDP message in an outgoing SIP INVITE.

Now, PortaSwitch can handle multipart SDP messages and, thus, relay the location data received from an MS Teams client or other endpoints that support PIDF-LO to the emergency service provider (such as Inteliquent in the US).

This means that service providers can deliver emergency calls from business customers that use MS Teams. For example, say a customer of Panda Telecom misconfigured the location settings in MS Teams, and their call was sent with the wrong address information. As a result, Panda Telecom is fined $60 by the 911 service provider. In this situation, Panda Telecom can trace which customer made this call and recoup the cost of the fine from the customer.


Service providers that have customers using MS Teams are able to track the emergency calls sent via their system and recoup costs when a call is sent with the wrong/invalid address.

Find the PortaSwitch configuration details here.

Web interface changes

Link copied to clipboard

Comprehensive session details in Trace session and Log viewer troubleshooting tools

Link copied to clipboard

Now, when the administrator uses the Trace session or Log viewer troubleshooting tools, they can check the additional details of a specific session right away, with no need to search for the customer/account record and corresponding xDRs.

To check the details for a specific session, the administrator opens the Trace session page and clicks View session details  in the Details column.

Trace session list

The Details column is displayed on the Trace session page by default. To add/remove this column, go to Settings Settings > Customize columns and select/clear the Details checkbox.

Adding Details column to route list

For example, the administrator opens the Trace session panel to investigate the call issue. The administrator finds the needed call and clicks View session details to open the dialog with the detailed information of each entity (account, reseller, and vendor).

The administrator can click Copy content copy to copy H323-conf-id and call_id to send it to the support team for deeper investigation. If the administrator needs further information, they can click H323-conf-id which is a link to Log viewer to check the call log.

Voice session details dialog

To check the session details using Log viewer, click Session details on the toolbar.

Session details


The administrators can save time on troubleshooting as they have the needed information one click away.

Batch operations with IP phones

Link copied to clipboard

With the Batch operations with phones/CPEs functionality, the administrator can modify multiple settings for selected IP phones at a time. For example, the administrator can assign selected IP phones to a specific customer, mark them as customer-owned, and assign CPE profiles to these phones – all this, at once, using the dedicated panel on the web interface.

Batch operations with IP phones/CPEs

To open the Batch operations with phones/CPEs panel, click the arrow in the top right corner of the page.

Open the batch operations panel

To make the batch operations available, filter IP phones by the entity they are Managed by on the Phones/CPE search panel. Until you apply this filter, the only available batch operation is deleting IP phones/CPEs.

Apply filters

To perform specific operations with the chosen IP phones, select the corresponding checkboxes (“Assign phones/CPEs to a customer”, “Mark CPEs as owned by customer”, or/and “Change profiles”) on the Batch operations with phones/CPEs panel. After making all the necessary changes, click Update.


The administrators can save time by managing multiple IP phones at a time via the dedicated panel.

Additional clarity for invoice payment terms configuration on customer class

Link copied to clipboard

Now, when the administrator configures payment terms (previously “grace period”) on the customer class, they can explicitly choose whether the customers’ invoices become due on the invoice generation date or within [N] days after invoice generation. For this, a radio button for payment terms has been added to the invoicing configuration on customer class for regular and out-of-turn invoices.

When the administrator chooses “Due upon receipt”, this means that the customers’ invoices become due upon generation. And to configure invoices to become due some days after the generation, the administrator can choose “Net” and specify the number of days between the invoice generation and the invoice due date. For example, if “Net” is selected and 10 is specified the invoice becomes due within 10 days after invoice generation. So if the invoice was generated on August 1st it becomes due on August 11th and overdue on August 12th if no payment is posted.

Payment terms on the customer class


Possibility for the administrator to quickly and easily set the “Due upon receipt” option for invoices when defining invoice payment terms on customer class.

On this page