Search code examples
c#serial-portmodemhardware-interfacecaller-id

How to get Caller ID in C#?


I want to use 56K modem for getting telephone number of who calls the home phone. Is there a way to achieve this with C# ?


Solution

  • Not all modems support caller ID. And for those that do, the implementation varies between manufacturers.

    There caller ID is passed through the serial data so you will have to use the TAPI library (or Windows' HyperTerminal to test it). The caller ID number typically appears between the first and the second ring.

    You will need to issue a command to the modem to activate caller ID. Typically:

    AT#CID=1 (or AT+VCID=1)

    OK

    Check the documentation for your modem.

    When a call comes in, the modem will receive the a call string. Typically:

    RING

    Then the caller ID text will come in. If I am remembering correctly, it will be in the form:

    NMBR=XXXXXXXXXX

    [I am looking for a reference. I will post a link when I can find it]

    UPDATE: Ah, found one. Check out this page for the commands and connection strings for for various modems:

    How to Test a Modem for Caller ID Support