For the case of billing, I think you have to configure RADIUS. Its also known as AAA, used in many ISPs. AAA stands fo Authtication, Authorizaion and Accounting. Large Telco ISPs Buy eniterprise solution from vendors like Juniper. If you have samll ISP than you can get help from this site:
RADIUS is a complete solution for allowing users which have correct login password. Its also used to save CDRs (calling data record) and these CDRs will help you to find out the usage of custumers and IP investigation for hacking and bad e-mails.
On the bases of CDRs you can easily make billng solution.
In my job i have to mange RADIUS of 0.4 million users and there is a dedicated team of Sys Admin and engrs to mange the system and its backup based on Cluster for 100% uptime.