Modern business involves diverse types of services, which require different types of billing. Calls made by prepaid cards are billed by PIN number, calls from a customer’s GW should be billed by IP address, some wholesale customers are identified only by the port they are connected to, and so on.
It is easy to find out that a billing event occurred (e.g., a call was made). The important thing is to correctly determine who made the call and, therefore, who should be charged for it. PortaBilling uses a simple and flexible yet powerful method to determine a call’s owner. Identification of the account (Account ID) is sent to the billing system in the User-Name attribute.
For example, in the case of prepaid calling cards, User-Name will contain the PIN, IP address for IP-based billing, and so on. Of course, an account with such an account ID must exist in the database. This way of utilizing the User-Name attribute is actually default behavior for Cisco call handling applications, and the latest firmware releases of Quintum should do the same.
Since PortaBilling supports account aliases, in some cases the value of the User-Name attribute will first be matched against the ID of an alias, which then will be used to retrieve the main account information. However, the principle remains the same.
Due to such an approach, logic in the billing is independent from service-specific issues. You are not limited to any pre-defined billing schemes in PortaBilling; rather, you can design your own. Today you can bill by PIN or IP address, and tomorrow you will additionally be able to bill by h323-id. All you need to do is pick the proper application to handle the call, so that a correct identification will be sent in the User-Name.
Unfortunately, for some types of service User-Name is not sent to the billing properly on Quintum gateways. In this case, it is possible to employ username replacement rules on the billing side to emulate this.