You could have a look for TAPI (telephone application programmers interface). When working with modems, you could also send and receive Hayes commands over the serial port (COM1 for example). The .NET framework has no build in support for serial ports (outdated technology or something), but you could import the VB6 ActiveX MsComm32.ocx