Offer AI voice agents as a billable service
AI-powered services can act as virtual receptionists and handle customer inquiries. You can now offer these capabilities as a billable service alongside your existing voice services. Voice AI Agent (Apifonica) is a new Add-on Mart module that allows you to add AI-powered voice bots to your cloud PBX and SIP Trunking services.
Your business customers configure AI agents in Apifonica‘s platform, then assign them to any phone number or extension in the CloudPBX Self-Care Portal. When a call comes in, the AI agent responds to caller inquiries in real time based on the knowledge base and instructions configured for that agent.
With Voice AI Agent, you become a white-label provider of AI voice bots. You set your own markup on top of the wholesale price from the AI provider (Apifonica) and charge customers per minute or bundle the service into a subscription plan, adding a new revenue stream to your existing business.
See a more detailed module description here.
- Service providers add a new revenue stream alongside their existing voice services.
- Business customers save on handling incoming calls.
Owl Telecom provides Cloud PBX services to business customers. Alongside regular voice calls, Owl Telecom defines a separate charge of $0.20/min for calls to AI agents.
ABC Company, a dental clinic, is a Cloud PBX customer. They use an AI agent as a virtual assistant to answer questions about their services and pricing, and to schedule patient appointments. For this:
- ABC Company admin goes to the CloudPBX Self-Care Portal, creates a new extension, and enables an AI agent for it.
- The admin then goes to the AI provider’s platform and configures how the AI agent should handle incoming calls.
- The configured agent is assigned to the extension.
- The admin then modifies the auto-attendant for the main clinic DID (34639890397) to route calls to that extension when a caller dials 9 to hear the list of available services and schedule an appointment.
John Doe calls 34639890397 to reach ABC Company. John hears a greeting and the available options. He dials 9 to find out about teeth whitening services and scheduling a consultation. The AI agent answers his questions and books an appointment for him. After 3 minutes, John ends the call.
Owl Telecom charges ABC Company $0.60 for the AI agent call (3 min × $0.20/min).
Find the configuration details here.
- PortaSwitch MR120 or later.
- An active Apifonica subscription.
- An active subscription to the Voice AI Agent (Apifonica) module in the Add-on Mart.
To enable the AI agent feature for an account in the CloudPBX Self-Care Portal, the customer must have a country and email address defined.
Connect AI agents to PortaBilling without hosting infrastructure
Service providers can use AI agents to answer service-related questions and help customers and admins to perform routine tasks faster. Typically, integrating AI agents with billing and customer management systems requires deploying, configuring, and maintaining a local Model Context Protocol (MCP) server that connects AI tools to business system APIs.
With the PortaBilling MCP Server module, you can connect AI agents to PortaBilling. Subscribe to the PortaBilling MCP Server module on Add-On Mart, and PortaOne will provision, host, and maintain the MCP server for you. The MCP server ensures AI agents interact with PortaBilling securely, giving each user access only to the entities their permissions allow.
The MCP server exposes PortaBilling data as MCP tools, where each tool corresponds to a group of API methods, such as Customer, Product, or Service.
Service providers reduce the time and cost of setting up AI agents.
ABC Company is a new call center that has just signed up with Owl Telecom. Owl Telecom provides ABC Company with an AI agent, Kairo. John, the PBX admin at ABC Company, has access only to PBX management and needs to set up extensions for all call center agents.
Instead of using the CloudPBX portal, John opens Kairo and asks it to create extensions for the new agents. He provides the required details, including agent names, extension numbers to assign to each agent, and the products to use. After the extensions are created, Kairo also shows how many extensions can be created in the future under the service agreement.
John can continue in the same conversation: set up ring groups, adjust extension settings, and configure the auto-attendant.
In the background, Kairo performs the configuration via PortaBilling API methods exposed through the MCP server, within the permissions granted to John. So, if John asks the assistant to pull up the company’s invoice history, Kairo notifies John that he does not have access to the financial data and declines the request.
The MCP server module requires PortaSwitch MR105 or later.
Real-time text-to-speech for custom voice applications
You can now build custom voice applications that generate personalized voice messages in real time using the Text-to-Speech (ElevenLabs) Add-on Mart module. This text-to-speech (TTS) functionality is useful when pre-recorded voice prompts are not sufficient because the content depends on information available only at call time (such as the caller’s name, appointment details, service status updates, or a verification code).
Previously, all prompts used by a custom voice application had to be prepared and uploaded in advance.
The new module enables PortaSwitch to automatically handle speech synthesis, caching, and playback. A custom application only needs to look up the relevant data and send the text to PortaSwitch using a single CallControl/say API request. PortaSwitch then generates the speech using ElevenLabs and immediately plays it during the active call. If the same voice message is requested again, the previously generated audio is played from the cache instead of being synthesized again, reducing text-to-speech synthesis costs.
A solar panel company uses a custom voice application to handle incoming calls from existing customers. When a call comes in, the application looks up the caller’s phone number in the CRM, retrieves the customer’s name and their assigned account manager, and composes a greeting message.
The application passes the message text to PortaSwitch, which synthesizes the audio via ElevenLabs and plays the personalized message to the caller in real time: “Hello Mark Spencer. Connecting you to your account manager, Alex Brown.”
If Mark calls again within 30 days, PortaSwitch plays the cached version of that message instantly, without making a new synthesis request to ElevenLabs.
- Develop more competitive voice applications that provide a better caller experience.
- Reduce text-to-speech synthesis costs through automatic audio caching.
- PortaSwitch MR130 or later.
- An active ElevenLabs account (the free tier is available).
- An active subscription to the Text-to-Speech (ElevenLabs) module in the Add-on Mart.
- A custom voice application built using the PortaSwitch Call Control API.
Two-factor authentication for Configuration server users
You can now enable two-factor authentication (2FA) for Configuration server web interface users, making access to technical PortaSwitch configuration more secure. Previously, 2FA was already available for PortaBilling admins, resellers, customers, and other entities accessing their portals.
With 2FA enabled, a user can log in to the Configuration server web interface only after entering a valid one-time password (OTP) in addition to their login and regular password. The time-based OTP is generated by an authenticator app, such as Google Authenticator, installed on the user’s smartphone. So, even if the user’s credentials are compromised, an unauthorized person can’t access the Configuration server web interface without the OTP.
Owl Telecom is expanding its PortaSwitch installation with a new SIP cluster. The admin (Root user) creates a new user in the Configuration server web interface for Adam Smith, a network engineer who will be responsible for creating the new configuration. The admin enables 2FA for the user by checking Require one-time password in the User details dialog.
Adam opens the Configuration server web interface and enters his login and password. Since this is the first time he is logging in with 2FA enabled, he sees the 2FA setup window with a QR code.
Adam scans the QR code with the Google Authenticator app installed on his smartphone to save the 2FA key in the app. The app generates an OTP, which Adam enters and successfully logs in.
The next time he logs in, Adam enters his username and password, opens his authenticator app, and enters the current OTP.
If Adam loses access to his authenticator app (e.g., if he loses his smartphone), the admin can reset 2FA for him, so Adam can re-activate 2FA during his next login.
- More secure access to the Configuration server web interface for engineers.
- Compliance with security policies and the ability to pass security audits.
- Users need to install an authenticator app on their smartphone or PC to generate OTPs.
- For successful 2FA, the time on the Configuration server web interface and the user’s device should be synchronized with an internet time server.
Deliver one-time password (OTP) via branded emails
Many modern apps, including PortaPhone, allow users to sign in with a one-time password (OTP) delivered by SMS or email instead of a traditional password. PortaBilling generates and validates OTPs out of the box, but there was no way to brand the emails containing those OTPs. This enhancement enables integration with third-party email platforms, such as Brevo or custom in-house solutions, allowing you to brand emails for OTP verification with your own templates. A middleware application (e.g., a web application that gets EventSender notifications) receives the user details and OTP from PortaBilling and passes them to the email platform. The platform then uses your predefined template to generate and send a branded OTP email to the user.
Owl Telecom offers the PortaPhone app and wants OTP emails to match its brand. The admin creates a custom email template in the external platform, setting the company logo, brand colors, social media links, and other visual elements.
When a user opens PortaPhone and enters their phone number, they receive an email with an OTP that follows the Owl Telecom template. They enter the received code in the app and can use the softphone.
On the backend, PortaBilling generates the OTP and passes it to the external platform via ESPF, which applies the branded template and delivers the email to the user.
Service providers increase brand awareness.
- The account must have a valid email address or phone number configured. Otherwise, OTP delivery via email or SMS will not be possible.
- The IP address of the app requesting the OTP should be specified in the Security.AllowLoginByOTPFrom option on the Configuration web server.
Tax transaction codes for built-in services
Admins can now assign a tax transaction code to a predefined (built-in) service – such as Voice calls, Network access, or Messaging. Previously, predefined services did not support tax code assignment. To apply a tax code to a predefined service, admins had to create a custom service of the same type and assign the tax code to it.
The tax code is the only editable property on a predefined service.
Setting up taxation for predefined services takes less time and effort.
Current password confirmation on update and password expiry visibility
To improve security, resellers, distributors, and representatives must now enter their current password before setting a new one on their portals. This applies both to regular password changes and when updating an expired password, ensuring that only the actual owner can modify credentials and preventing account takeover.
Users can also see the exact date when their password will expire, making it easier to plan password updates instead of hitting an unexpected login block.
Partners are better protected against unauthorized password changes.
Web interface changes
More precise account status filtering
Admins can now filter accounts by two distinct status types: billing status and additional status. Previously, a single Status filter was available. It has been renamed to Billing status, and a new Additional status filter has been added.
Billing status indicates the account lifecycle: open, inactive, or closed.
Additional status reflects whether the account’s services are active or restricted – for example, blocked, suspended, or expired.
Both filters are available on the Find account page and on the customer’s Accounts tab.
Admins can find the required accounts more quickly.







