using System.IO.Ports;
SerialPort serialPort = new SerialPort("COM1"); // change COM1 to your modem port
serialPort.Open();
serialPort.WriteLine("AT#CID=1" + System.Environment.NewLine); // enable caller ID
serialPort.DataReceived += (sender, e) =>
{
string data = serialPort.ReadExisting(); // read data from serial port
if (data.Contains("NMBR=")) // check if data contains caller ID number
{
string number = data.Substring(data.IndexOf("NMBR=") + 5); // extract number
label.Text = number; // print number to label
}
};