BT CLID report by from -=RA\/EN=- of \/\/ARP THE ULTIMATE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BT sent me SIN227 (BT Analogue Caller Display Service) the day after I requested it. It's 25 or so pages long, so I thought readers of the TELECOM Digest might appreciate a summary. Notes for non-UK readers: * The protocol is *not* the same as the Bellcore one; I don't know why. * You can block your outgoing number by dialling 141 in front of any call. This prefixes any other code (like 131 or 132 for Mercury). * Where a line has blocking on all calls, a different code (not yet decided) is used to unblock. * Blocking does not affect operator services or the malicious call bureau. The basic protocol is intended for sending data from the exchange to customer's equipment, either before ringing starts, or without ringing the phone at all. The physical protocol is: - Polarity reversal occurs on the (idle) line. - The exchange is silent for >= 100ms. - The exchange puts an alert tone on the line for between 88ms and 110ms; this tone consists of 2130Hz and 2750Hz (both +/- 1.1%); the receiver should look for at least 20ms of both tones or 30ms of the lower tone. - The exchange goes silent. - Between 15ms and 25ms after the end of the alert tone, the receiver should put a DC load and an AC load on the line. The AC load is described as 827 ohms in series with {1386 ohms and 139nF in parallel}. The DC load should be no more than 0.5mA (and should be well over the 0.12 limit for an idle line). However, to clear the line of noise, the load should a plain resistance of between 240 to 350 ohms for the first 14ms to 16ms of the DC load. - At least 45ms after the end of the guard tone, between 96 and 315 bits of alternating 0s and 1s will be sent (see below for encoding). This will be followed by between 55 and 90 1s, and then the data. - At least 50ms, and no more than 150ms, after the end of the data, the receiver should remove the DC and AC loads from the line. - At least 200ms after the end of the data, the exchange will either cancel the polarity reversal, or will start to send the ringing tone. Data is transmitted using FSK at 1200 baud +/- 1%. A 0 is 2100Hz and a 1 is 1300Hz, both +/- 1.5%. The data is sent one octet at a time, in the standard serial format: start bit (0) least significant bit next 6 bits in order most significant bit 1 to 10 stop bits (all 1s) The message consists of between 3 and 258 octets. The message format is: Message type byte Length byte - gives number of parameter bytes 0 to 255 parameter bytes Checksum; the checksum has at least two stop bits The (normal addition) sum of all the bytes, including the checksum byte, is 0 mod 256. There is an implication that several messages may be sent, so long as the total is less than 2500ms (about 300 octets). The parameter bytes transmit zero or more parameter blocks. Each parameter block has the format: Parameter type byte Data length byte - gives number of data bytes 0 to 253 data bytes Type and length bytes are true binary numbers. Data bytes may be binary or ASCII characters (codes 32 to 127, except that dollar sign is replaced by pound sterling sign); I show the latter in double quotes. The only message type described is type 128. This has the following parameter types. - Call type (17); the data is 1 byte: * 1 = voice call (default if call type not sent) * 2 = ring-back-when-free call (this is a voice-like call) * 129 = message waiting call * future types with the top bit clear will be voice-like calls, such as fax; rules applying to voice calls will apply to them * future types with the top bit set will be other types of call - Time and date (1); the data is 8 characters, giving MMDDHHMM; for example, "09291452" means 14:52 on September 29th. For voice-like calls, or if no call type is sent, the time is correct to within 1 minute. For other types, the time is defined by the call type. - Calling line number (2); the data is a string (up to 18 bytes) giving the number of the caller, or an alternative presentation number (e.g. main number when calling from a PBX, or an associated 0800 number). Spaces and dashes may occur in the number; a trailing dash means that the number is incomplete. Examples given in the document are: "071 250 7587" "0171-250-" "00 33-" "0351-3210" - Called line number (3); same format. - Reason calling line number omitted (4), does not occur if parameter type 2 is provided; the data is a single byte: * "P" = number withheld (using 141) * "O" = number not available No explanation is given if parameter type 3 is omitted. - Name or text (7); the data is a string of up to 20 bytes. Examples given in the document are: "Simon Jones" "BT Payphone" "International call" "Ring-back call" This information might be related to the calling line number, or it might be related to the call type. It is not possible to tell, except for as below. - Reason for no name (8); an explanation of why there is no name provided. If parameter types 7 and 8 are both sent, then the former is text other than the caller's name. Data is 1 byte: * "P" = name withheld * "O" = name not available - Message system status (19); the data is 1 byte, giving the number of messages waiting in the message system (1 means either 1 or number not known). This is expected to be sent as a no-ring call. All types are optional. Type 17 will always be sent first, and the other seven types listed here will be sent before any types introduced in the future.