PortaBilling is a real-time converged B/OSS and OCS system and the range of services you can provide and bill for extends the world of VoIP. For example, you can integrate PortaBilling with an IPTV platform to provide IPTV services or with a mobile carrier’s HSS and PCRF servers to operate as an MVNO and provide LTE services for your users. No matter which external system PortaBilling integrates with, you must provision data (e.g., SIM card details for HSS) to it and keep all the data synchronized.
This is the job that the External System Provisioning Framework (ESPF) does. Changes in customers’ billing or service configuration that occur in PortaBilling are recorded as provisioning events. These events are queued in the system. The ESPF captures an event and sends it to the external system to update the data there (e.g., to update the channel package for the subscriber in the IPTV platform if the customer has purchased it via an add-on product in PortaBilling).
The ESPF simplifies the integration with the external systems that you deploy in your network infrastructure. PortaBilling provides a single location for data provisioning management.
You can provision data to external systems using:
Dedicated event handlers. An event handler is a special Perl module in PortaBilling that provisions a particular external system using this system’s API. There is a separate handler for each external system that PortaBilling is integrated with. If you need to integrate a new external system and provision data to it, you can either create your own event handler or request development from PortaOne.
Webhooks. A webhook is an automated notification of an external application about provisioning events that happen in PortaBilling. You develop an external application that communicates both with PortaBilling and the external system. When an event occurs (e.g., an account is assigned a SIM card), the ESPF sends the HTTP POST request to the application’s URL. The application reads it, retrieves the required information about the entity from PortaBilling via the API, and provisions the data to the external system.