Caller ID Technicalities
by Hyperborean Menace
The way Caller ID works internally is through Signaling System 7 (SS7) messages between telephone switches equipped to handle SS7. These messages pass all the call information (block/no block, calling number, etc.). The calling number is sent as part of the SS7 call setup data on all SS7 routed calls (i.e. all calls carried between switches that are SS7 connected).
The calling number is always sent between switches always, regardless of whether or not *67 (Caller ID Block) is dialed. It just sends along a privacy indicator if you dial *67, and then the final switch in the path will send a "P" instead of the calling number to the Caller ID box. (But the switch will still store the actual number - *67 will work whether or not the caller dialed *67). What the final switch along the path does with the calling number depends on how the switch is configured. If you are not paying for Caller ID service, the switch is configured so that it will not transmit the Caller ID data.
This is entirely separate from Automatic Number Identification (ANI), which is sent along SS7 where SS7 is available, but can also be sent using other methods, so that all switches (for many years now) have been able to send ANI (which is what long distance companies used to know who to bill). Enhanced 911 is not based on Caller ID, but on ANI, thus, it will work for anyone, not just people connected to SS7 capable switches. And, of course, *67 will have no effect on Enhanced 911 either.
It's also interesting is the effect call forwarding has on the various services. Say I have my home telephone forwarded to Lunatic Labs, and it has Caller ID. If you call me, the call will forward to Lunatic Labs, and its Caller ID box will show your number, not mine (since your line is the actual one making the call).
However, ANI is based on the Billing Number (who is paying for the call), not on who is actually making the call. Thus, if I forward my telephone to an 800 number that gets ANI (such as the cable pay-per-view order number), and you call me, they will get my number (since I would be the one paying for that portion of the call, except that 800 numbers are free), and you will end up ordering pay-per-view for me...
CNID (Caller ID) Technical Specifications
Parameters
The data signaling interface has the following characteristics:
Link Type: 2-wire, simplex Transmission Scheme: Analog, phase-coherent FSK Logical 1 (mark): 1200 +/- 12 Hz Logical 0 (space): 2200 +/- 22 Hz Transmission Rate: 1200 bps Transmission Level: -13.5 dBm into 900 ohm loadProtocol
The protocol uses 8-bit data words (bytes), each bounded by a start bit and a stop bit. The CND message uses the Single Data Message Format (SDMF) shown below:
Channel Carrier Message Message Data Checksum Seizure Signal Type Length Word(s) Word Signal Word WordChannel Seizure Signal
The channel seizure is 30 continuous bytes of 0x55 (01010101) providing a detectable alternating function to the CPE (i.e. the modem data pump).
(CPE = Customer-Premises Equipment - i.e. your Caller ID box.)
Carrier Signal
The carrier signal consists of 130 ms (+/- 25 ms) of mark (1200 Hz) to condition the receiver for data.
Message Type Word
The message type word indicates the service and capability associated with the data message. The message type word for CND is 0x04 (00000100).
Message Length Word
The message length word specifies the total number of data words to follow.
Data Words
The data words are encoded in ASCII and represent the following information:
- The first two words represent the month.
- The next two words represent the day of the month.
- The next two words represent the hour in local military time.
- The next two words represent the minute after the hour.
- The calling party's directory number is represented by the remaining words in the data word field.
If the calling party's directory number is not available to the terminating central office, the data word field contains an ASCII "O". If the calling party invokes the privacy capability, the data word field contains an ASCII "P".
(Note that "O" will generally result in the Caller ID box displaying "Out of Area" indicating that somewhere along the path the call took from its source to its destination, there was a connection that did not pass the Caller ID data. Generally, anything out of Southwestern Bell's area will certainly generate a "O", and some areas in SWB territory might also not have the SS7 connections required for Caller ID.)
Checksum Word
The Checksum Word 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 received checksum word. A result of zero generally indicates that the message was correctly received. Message re-transmission is not supported.
Example CND Single Data Message
An example of a received CND message, beginning with the message type word, follows:
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: Number of Bytes in Date, Time, and Directory Number (Decimal) 30,39: Month - 09 - September (ASCII) 33,30: Day - 30 (ASCII) 31,32: Hour - 12 (ASCII) 32,34: Minutes - 24 (12:24 PM) (ASCII) 36,30,39: Area Code - 609 (ASCII) 35,35,35: Prefix - 555 (ASCII) 31,32,31,32: Suffix - 1212 (ASCII) 51: Checksum WordThere is also a Caller Name service that will transmit the number and the name of the caller. The basic specs are the same as just numbers, but more data is transmitted. I don't have the details of the data stream for that.
Data Access Arrangement (DAA) Requirements
To receive CND information, the modem monitors the phone line between the first and second ring bursts without causing the DAA to go off hook in the conventional sense, which would inhibit the transmission of CND by the local central office. A simple modification to an existing DAA circuit easily accomplishes the task (i.e. the Caller ID device should present a high impedance to the line).
Modem Requirements
Although the data signaling interface parameters match those of a Bell 202 modem, the receiving CPE need not be a Bell 202 modem. A v.23 1200 bps modem receiver may be used to demodulate the Bell 202 signal. The Ring Indicate (RI) bit may be used on a modem to indicate when to monitor the phone line for CND information. After the RI bit sets, indicating the first ring burst, the host waits for the RI bit to reset. The host then configures the modem to monitor the phone line for CND information.
According to Bellcore specifications, CND signaling starts as early as 300 ms after the first ring burst and ends at least 475 ms before the second ring burst.