Search code examples
javavoipsipasterisk

How should I approach developing a system for logging calls from a VoIP phones?


I've just got a contract to develop a kind of billing application for internet cafe to monitor calls on their VoIP phones. Here's the main idea how the app should work.

Say that I borrow someone a phone #2, and he makes 10 calls to different places, with possibly different call rates, e.g. calling to different country. After he gives me the phone back, I need to see how much money does he need to pay in total, based on all the rates of all the calls he made.

The problem is, that I've never worked with VoIP, so I'm unable to estimate how difficult it would be to develop a system like that. From my point of view, the one problematic part is somehow getting to the data about all the calls that were made. Once I know incoming/outgoing number, length and other stuff for each call, it should be relatively simple to process and display the data in correct format.

I guess that for developing such an application, I'm going to have to set up VoIP gateway (Asterisk?) to just be able to test the application.

One thing I'm afraid of are some kind of hidden problems, like for example if I was to create some kind of proxy for all the calls, there would be probably very high performance requirements, etc.

What kind of problems can I expect to come up while developing such a system? I'd prefer any Java related solutions or suggestions if possible.


Solution

  • What you are looking for is called CDRs, Call Data Records.

    Each voip system has their own way of storing the records. Many systems can post them to a webserver (your own server).

    You should also know that there are many open source billing systems too which has ready to use integrations whith asterisk.