Is there a way i can make a program which monitors my phone line, and displays the details of a telephone call when recieving one.

I used to work ni a pizza place so i know its possible, what happens is when a customer phones up, the form is loaded with the details of where they are phoning from, their number, and the call type (ie international, national, local etc)

Any one know how to do this.
ilmv