Caller ID

Last updated: Monday, September 25, 1995

INTRODUCTION

Caller ID (CID) is a service provided by the local phone company. It sends the date, time, number and name(optional) of the calling party to the called party. The information is sent between the first and second rings (first 4 second silent period).

Two types of Caller ID service are available:
1) Number only
2) Name and Number

Both types also include the date and time of the call.

CID is just now starting to work across area codes. Although I don't get many calls from people outside my area code, I have only gotten CID info on 1 call from outside my area code, so far.


Availability

CID is available in almost all areas of the United States. I'm not sure about other countries. Check with your local phone company to see if it is available in your area.


Cost

Cost varies from one city to another. The cost in my area is $6.50 per month for basic number only Caller ID service. For $2.50 more per month, you also get the name of the calling party.


Format

The following 2 formats are used to send the CID information:

SDMF supports a single data type and is used to send the phone number for number only service.

MDMF supports multiple data types and is used to send name and number information. It is structured so that new types of data can be added easily (address?, city?, state?, etc).

In my area, if you subscribe to number only service, the CID info is sent using SDMF. If you subscribe to both name and number then it is sent using MDMF. I suppose that number only service could use MDMF and just leave the name blank, but I'm not sure.

Both formats include a value to determine the type of data to follow (data type word), a value to indicate the length of the data (data length word), and a checksum. See below for an example of each format.


SDMF Example

Here is an example of a SDMF message. Each byte is in HEX.

04 12 30 39 33 30 31 32 32 34 36 30 39 35 35 35 31 32 31 32 51

  • 04 - message type word - 4 indicates SDMF
  • 12 - 18 decimal, number of bytes in date, time and phone number
  • 30,39 - 09, September (ASCII)
  • 33,30 - 30, 30th day (ASCII)
  • 31,32 - 12, 12 hour (ASCII)
  • 32,34 - 24, 24 minutes (12:24 PM) (ASCII)
  • 36,30,39 - 609, Area code (ASCII)
  • 35,35,35 - 555, prefix (ASCII)
  • 31,32,31,32 - 1212, sufix (ASCII)
  • 51h = Checksum Word

    Thus, the CID string can be summarized as follows:

    If the calling party's directory number is not available to the terminating central office, the phone number field contains an ASCII 'O'. If the calling party invokes the privacy capability (blocking), the phone number field contains an ASCII 'P'.

    The following SDMF string is an example of a call that was blocked. The 50 just before the checksum is the ASCII code for a 'P'.

    04 09 30 39 33 30 31 32 32 34 50 12


    MDMF Example

    Here is an example of a MDMF message. Each byte is in HEX.

    80 20 01 08 30 33 32 34 30 39 30 32 07 08 4A 4F 48 4E 20 44 4F 45 02 0A 38 30 30 35 35 35 31 32 31 32 7D

  • 80 - Message type word, 80 indicates MDMF
  • 20 - Length of data, 32 bytes in date,time,name and number
  • 01 - data type, 1 = date & time
  • 08 - length of date and time, 8 bytes
  • 30,33 - 03, March
  • 32,34 - 24, 24th day
  • 30,39 - 09, hour
  • 30,32 - 02, minutes (9:02am)
  • 07 - data type, 7 = name
  • 08 - length of name, 8 bytes
  • 4A - 'J'
  • 4F - 'O'
  • 48 - 'H'
  • 4E - 'N'
  • 20 - ' ' (space)
  • 44 - 'D'
  • 4F - 'O'
  • 45 - 'E'
  • 02 - data type, 2 = phone number
  • 0A - length of phone number, 10 bytes
  • 38 - 8
  • 30 - 0
  • 30 - 0
  • 35 - 5
  • 35 - 5
  • 35 - 5
  • 31 - 1
  • 32 - 2
  • 31 - 1
  • 32 - 2
  • 7D - Checksum

    The following is a list of possible data types:

  • 1 - date & time
  • 2 - phone number
  • 4 - number not present
  • 7 - name
  • 8 - name not present

    If the calling party's directory number is not available to the terminating central office, the phone number and name fields contain an ASCII 'O'. If the calling party invokes the privacy capability (blocking), the phone number and name fields contain an ASCII 'P'.

    From what I have seen, the types 4 and 8 are always followed by a length value of 1 and then either a 'P' or an 'O' to indicate unavailable or blocked, respectively.


    Checksum

    The checksum value contains the twos complement of the modulo 256 sum of the other words in the data message (i.e., message type, message length, and data words). The receiving equipment may calculate the modulo 256 sum of the received words and add this sum to the reveived checksum word. A result of zero generally indicates that the message was correctly received. Message retransmission is not supported.


    Back to Dan's Home Page

    dhoehnen@infinet.com