A Technical Overview of BT's CDS(tm) Calling Line Identity Presentation by Bill Jones BEng. Rev 1.0 23/11/94 DISCLAIMER ========== The information presented here is my own interpretation of the technical documents published by BT and I take no responsibility for any errors or omissions. Introduction ============ This document describes the new Calling Line Identification Service (Caller Display) that has just been introduced by British Telecom. It describes the technical details of the service from the subscriber's end. I have distilled this information from the technical documents supplied by BT to manufacturers intending to produce terminal equipment to make use of the Caller Display Service. I am informed by British Telecom that this information is in the public domain. Much of the information in the source documents concerns requirements for approval for connection to the telephone network. If it is your intention to use this information for the construction of Caller Display equipment, you should contact BT for the full documentation. In any event, please remember that it is an offence to connect directly or indirectly to the telephone network any equipment that has not been approved for the purpose. The Caller Display Service ========================== The Caller Display Service (CDS) is a signalling mechanism between the telephone network and CDS Terminal Equipment (TE). An example of TE is the BT Caller Display 50 unit, which stores and displays information about incoming calls, including the telephone number of the calling party, if available. CDS is designed to provide a range of facilities to customers. However, the only service available at present is Calling Line Identity Presentation (CLIP). This passes information about the current call to the subscriber. The CDS signalling mechanism is designed to be bi-directional, although so far, only downstream signalling (from network to customer) is in operation. The information is transmitted via a V.23 1200 bit/s carrier using Frequency Shift Keying (FSK). A single message packet has been devised to carry all types of service. The information carried by the packet will vary according to the service being provided. The format of this packet is as follows: +------------+ +---------+--------+------+--------+---------+----------+ | Tone Alert | | Channel | Mark | Msg | Msg | MESSAGE | Checksum | | Signal | | seizure | Signal | Type | Length | | | +------------+ +---------+--------+------+--------+---------+----------+ The Tone Alert signal consists of the two V.23 tones (1 and 0) together and alerts the TE that a Caller Display signal follows. this signal is 88 to 110 msec long. The Channel Seizure consists of a continuous sequence of alternate 0 and 1 bits at 1200 bits/s. This minimises the possibility of noise mimicking a genuine carrier. This signal lasts from 80 to 262 msec. The mark signal is at least 45 msec of continuous mark condition (stop bits, i.e. no data). The message type is a single 8-bit byte denoting the application. For CLIP (currently the only service), this is 128 decimal indicating "Supplementary Information Message". Other message types are expected to be used for future services. The message length is a single 8-bit byte indicating the number of bytes in the message, not including the message type, message length or checksum bytes. It follows that the longest allowable message is 255 bytes long. Message: This contains the information conveyed by the service. Any 8-bit value may be sent in the message bytes, depending on the application. The checksum consists of a single byte which is the 2's complement of the sum of all bytes from the message type up to the end of the message (not including the checksum itself). i.e. if you add up all the bytes including the checksum, it should result in zero. Any other result means the message is corrupt. Note that a simple checksum such as this cannot detect all possible errors. CLIP Message Format =================== Within the message packet, the CLIP message (contained in the Message field) is in the following format: +-----------+--------+---------+-------+-----------+--------+---------+ | Parameter | Length | Byte(s) | . . . | Parameter | Length | Byte(s) | | Type | | | | Type | | | +-----------+--------+---------+-------+-----------+--------+---------+ The three fields Parameter Type, Length and Byte(s) together form one parameter, and may be repeated. Parameter Type: This is a single 8-bit byte giving the type of the parameter. The value depends on the application, and for CLIP, the values are as follows: Parameter Type (binary) (Hex) Parameter Name -------------------------------------------------------------------------- 00010001 11 Call Type 00000001 01 Time and Date 00000010 02 CALLING line directory number 00000011 03 CALLED line directory number 00000100 04 Reason for absence of calling number 00000111 07 Caller name / text 00001000 08 Reason for absence of name 00010011 13 Network Message System Status Call Type: If this is 1, or if no type is specified, the call is a voice call. If 2, it is a ring-back-when-free call. If 129, it indicates a message-waiting call and the name & number specified may indicate the person who left the message, or the name and number of the message service. Time & Date: For call types of 127 or less, this indicates the current date and time at the time of the call and may be used to set a clock. It is accurate to within +/- 1 minute. For call types of 128 or more, this may not be the current time, e.g. the time a message was left or recovered. The parameter consists of 8 ASCII characters, 2 each specifying the Month, Day, Hours and Minutes. CALLING Line Directory Number: This consists of a variable number of ASCII characters, enough to encode the caller's number, up to a maximum of 18 characters. The number may be interspersed with '-' or space characters to make it more readable. If only an incomplete number is known (e.g. the country of origin of an international call or where a call comes from outside the digital network but the area code is still known), the number may be sent as (for example) 0171-250- or for an international call from France: 00 33- where the '-' at the end shows the number is incomplete. Note the use of the new area codes (with the extra '1') and the new international access code of '00'. Reason for Absence of Number: This is a single ASCII character. If a 'P', it indicates the caller has withheld the number. If an 'O', it indicates that the number is not available. This is not sent if the Calling Line number is sent. CALLED Line Directory number: This is in the same format as the CALLING Line Number and indicates the number the caller dialled. This may be significant if the call has been diverted. This parameter may not yet be available. Caller Name / Text: This is intended to carry either the name of the caller or a text message. It is a variable number of ASCII characters up to a maximum of 20. It may also be used for other information when the name is not available, for example "BT Payphone" or "International Call" or "Ring-Back Call". NOTE: At the time of writing the Caller Name is only being used in a trial area (Scotland) and in other parts of the country this parameter will contain TEXT only. Reason for Absence of Name: This is encoded as for the Reason for Absence of Number. It will not be sent if the Caller's name is sent or if the Caller-Name service is not available. Network Message Status: This is a single-byte binary encoded value indicating the number of messages waiting in the message system. The value zero means no messages, the value 1 means 1 message or an unspecified number of messages waiting. Other values (up to 255) indicate that number of messages waiting. This parameter is not necessarily associated with a phone call and will probably be sent as a no-ring call. NOTE: NOT ALL PARAMETERS MAY BE SENT ON ALL OCCASIONS. CLIP Message Timing =================== CLIP signalling will be sent once (and only once) prior to the first burst of ring current for a call. Additional messages may be sent before ringing. MESSAGE STRUCTURE EXAMPLE ========================= Msg type 10000000 CLIP Msg length 00010101 21 bytes Parameter 00000001 Time & Date Parameter length 00001000 8 bytes Parameters 00110000 '0' Parameters 00110011 '3' Parameters 00110001 '1' Parameters 00110101 '5' Parameters 00110001 '1' Parameters 00110000 '0' Parameters 00110011 '3' Parameters 00110000 '0' 15th March 10:30am Parameter 00000010 Number Parameter length 00001001 9 bytes Parameters 00110000 '0' Parameters 00110011 '3' Parameters 00110101 '5' Parameters 00110001 '1' Parameters 00101101 '-' Parameters 00110011 '3' Parameters 00110010 '2' Parameters 00110001 '1' Parameters 00110000 '0' Checksum 00001110 Number: 0351-3210