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.
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.
04 12 30 39 33 30 31 32 32 34 36 30 39 35 35 35 31 32 31 32 51
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
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
The following is a list of possible data types:
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.