                              ==Phrack Magazine==

                 Volume Six, Issue Forty-Seven, File 19 of 22

               A Guide To British Telecom's Caller ID Service

                                   By DrB0B
                         (DrB0b@grex.cyberspace.org)



Introduction:

Whilst caller ID services are old news to American readers, to UK phone-
phreaks they are a new and potentially exciting addition to British-
Telecom's network services. Many people will have already read articles
describing CNID, almost invariably these articles have been based on systems
utilizing Bellcore's CLASS signalling requirements, it should be
noted that while BT's Caller Display System is also based on CLASS there
are some significant technical differences. I have tried to make the
information in this article as comprehensible as possible, unfortunately the
telecommunications industry is one of the most jargon-infested industries in
the world so if you have any questions about anything in this article don't
hesitate to contact me at the above address, I'll do my best to help.
BT hope to have their Caller Display Service available by November 1994.

LATE NEWS: Today, Nov 1st 1994, BT announce that caller ID services would
be withheld for a while longer as the public are too stupid to understand
what it means, I swear I'm not making this up. According to BT newsline
(0800 500005) "The public failed to comprehend that caller display services
meant that caller number would be transmitted with every call, nor did they
understand that CDS could be blocked on a per call basis by using the 141
prefix, or on a per line basis by arrangement with BT. Go figure !
New date for service launch is towards the end of November.


(1) What is Calling Line Identification Presentation.

When BT introduce their Caller Display Service over the analogue local
access network the first service available will be Calling Line Identification
Presentation (CLIP), this provides for the delivery of the callers
number when a telephone call arrives, in the near future it will also
provide the callers name. When the callers name or number cannot be delivered
then one of two reasons for the failure will be displayed, (1) name or number
not available (the caller has an unlisted number), or, (2) name and number
withheld by customer (this is done by the caller dialling 141 before dialling
the called number, this results in the message "CLI Withheld" being displayed
on the recipients equipment). In addition to caller identification the CLIP
service can also deliver network messages, the time, date, and, (optionally),
some indication of call type.
As noted above callers can choose to withhold CLI information by using the
prefix 141, users should be aware that this has no effect on BT's ability
to trace a call, the 141 prefix is a service activation code whilst call
tracing is an operator function.


(2) Some Necessary Definitions

From here it gets a bit more complex, your mileage may vary. It's probably
best if I define some of the terms to be used before going any further.

Line Reversal
The potential difference between the two wires of the exchange line (A+B)
will always be equal to or greater than 15 volts. An incoming Caller
Display message will be preceded by a polarity reversal between the two wires.

Idle State Tone Alert Signal
Signals sent in the idle state will be preceded by a Tone Alert signal and
a Channel Seizure signal. Terminal equipment may recognize the Idle State
Tone Alert Signal by the detection of both frequencies together, or by
detection of a single (the lower) frequency. In the case of single
frequency detection the recognition time should be not less than 30ms,
if both frequencies are detected the recognition time can be reduced to not
less than 20ms.

Fig 1. The Idle State Tone Alert Signal
      --------------------------------------------------------------
      |Frequencies              | 2130 hz and 2750 hz +/- 1%       |
      --------------------------------------------------------------
      |Received Signal Level    | -2dBV to -40 dBV                 |
      --------------------------------------------------------------
      |AC and DC load impedance | AC load is high impedance as     |
      |                         | required by NET4                 |
      --------------------------------------------------------------
      |Unwanted Signals         | Total power of extraneous signals|
      |                         | in the voice band (300-3400hz) is|
      |                         | at least 20dB below the signal   |
      |                         | levels                           |
      --------------------------------------------------------------
      |Duration                 | 88 to 110 msec                   |
      --------------------------------------------------------------
Note: NET4 is European Telecommunications Standard ETS 300 001;
Attachments to PSTN; general technical requirements for equipment
connected to an analogue subscriber interface in the PSTN).

DC Load
NET4 requires that the total of terminal equipment on a line shall not
draw in excess of 120 microA in the idle state. The Caller Data Service
terminal equipment may, as an option, draw DC of up to 0.5 mA par device
at 50 V line voltage, but only during CDS idle state, otherwise the
conditions of NET4 apply.

DC Wetting Pulse
In order to improve reliability of idle state data reception (by reducing
noise), it is mandatory that the terminal equipment shall draw a short
pulse of current from the line by applying a resistive load for a
specified time.


(3) Signalling

For an understanding of the processes involve we need to have some under-
standing of the four layers used in Basic Mode communication. Basic Mode
communication covers transmission of data between network and terminal
equipment, either before ringing is applied or without any ringing,
transmission is either down-stream (network to terminal equipment), or
up-stream (terminal equipment to network).

Physical Layer: This defines data symbol encoding and modulation, and
                analogue line conditions.
Datalink Layer: This defines framing of messages for transmission and a
                simple error checking procedure.
Presentation Layer: This defines how application-related information is
                    assembled into a message.
Application Layer: This defines the application that uses the signalling.
                   In this case Calling Line Identity Presentation.

Now we'll go into a little more detail about each of these layers.


Physical Layer:

Signalling may occur in either the idle state or loop state. We won't
discuss loop state signalling here, as it's not pertinent at this stage.
An incoming CDS call is indicated by a polarity reversal on the A and B
wires, usually followed by ringing current applied to the B wire. The
Terminal Equipment responds to the Idle State Tone Alert by drawing a DC
wetting pulse and applying a DC load and an AC load. The DC wetting pulse
is applied during the idle period following the end of the Idle State
Tone Alert signal. The AC load is applied at the same time as the DC
wetting pulse. It is removed after the end of the V.23 signals. The DC load
is applied and removed at the same time as the AC load impedance. On removal
of the DC and AC loads the CPE reverts to the idle state. For some
applications the Channel Seizure may be delayed by up to 5 seconds,
either or both silent periods may be extended in this case.
If a terminal equipment loop state condition is detected the CDS message
is aborted and the call presented as a non-CDS call.  All data transmitted
by the physical layer consists of 8-bit characters transmitted asynchronously
preceded by one start-bit and followed by one stop bit. With the exception
of the mark signal immediately following channel seizure there should be
no more than 10 stop bits between characters.

Values for octets are given in the following format:

   S2 M B7 B6 B5 B4 B3 B2 L S1
(Order of bits S1 first S2 last)

where S1 = start bit
 S2 = stop bit
 M  = most significant bit
 L  = least significant bit
 B* = bit numbers 2 to 7

Octets are transmitted with most significant octet first.



Datalink Layer:

The datalink layer provides framing of data into packets that can be
distinguished from noise, and has error detection in the form of a check-
sum.

Fig 2. Datalink Packet Format

     -------------------------------------------------------------
     |Channel  |Mark    |Message   |Message   |Message   |Check- |
     |Seizure  |Signal  |Type      |Length    |          |sum    |                    |         |        |          |          |          |       |
     -------------------------------------------------------------
            ^^^^^^^^^^
           Presentation
        Layer


Analysis of the fields in a Datalink Packet:

Channel Seizure
The channel seizure consists of a continuous sequence of alternate 0 and 1
bits at 1200 bits/s. The purpose of channel seizure is to minimize the possibility of noise mimicking a genuine carrier. The length of channel
seizure as seen by terminal equipment is at least 96 bits (80 msec). It
may be longer, up to 315 bits (262 msec)

Mark Signal
The mark signal seen by terminal equipment is at least 55 bits (45 msec)
of continuous mark condition (equivalent to a series of stop bits, or no
data being transmitted).

Message Type
The message type is a single binary byte. The value depends on the
application.

Message Length
The message length is a single binary byte indicating the number of bytes in
the message, excluding the message type, message length, and checksum bytes.
This allows a message of between 0 and 255 bytes.

Message
The message consists of between 0 and 255 bytes, according to the message
length field. This is the presentation layer message (explained later).
Any 8-bit value may be sent, depending on the requirements of the
presentation layer and the application.

Checksum
The checksum consists of a single byte equal to the two's complement sum
of all bytes starting from the "message type" word up to the end of the
message block. Carry from the most significant bit is ignored. The
receiver must compute the 8-bit sum of all bytes starting from "message
type" and including the checksum. The result must be zero or the message
must be assumed to be corrupt.



Presentation Layer:


Fig 3. Presentation Layer Message format
     -------------------------------------------------------------------
     |Parameter|Parameter|Parameter| ... |Parameter|Parameter|Parameter|
     |Type     |Length   |Byte(s)  |     |Type     |Length   |Byte(s)  |
     -------------------------------------------------------------------

The fields Parameter Type, Length, and Byte, together describe one
presentation layer parameter, and may be repeated.
Parameter Type will be discussed more fully in the next section.
Parameter Length is a single binary byte of a value between 0 and 255. In
Basic Mode a complete message must be contained within a single datalink
packet, this means that the total length of presentation layer parameters
must not exceed 255 bytes.
Parameter Byte(s) contains zero or more bytes of application related
information. The information contained in this parameter should be en-
coded in BT ISDN Character Set IA5 format.


Parameter Type:

There are eight parameter types associated with CLIP




Fig 4. Parameter Type values
       -------------------------------------------------------------
       | Parameter Type Value  | Parameter Name                    |
       -------------------------------------------------------------
       | 00010001              | Call Type                         |
       -------------------------------------------------------------
       | 00000001              | Time & Date                       |
       -------------------------------------------------------------
       | 00000010              | Calling line directory number (DN)|
       -------------------------------------------------------------
       | 00000011              | Called directory number           |
       -------------------------------------------------------------
       | 00000100              | Reason for absence of DN          |
       -------------------------------------------------------------
       | 00000111              | Caller name/text                  |
       -------------------------------------------------------------
       | 00001000              | Reason for absence of name        |
       -------------------------------------------------------------
       | 00010011              | Network message system status     |
       -------------------------------------------------------------


The calling line directory number is the number of the line from which the
call was made, or a substitute presentation number. The called directory
number is the number that was called. This is of significance when the call
has been diverted.
There may be parameters of other types present. the call type parameter, if
present will always be sent first, other parameters may be sent in any
order. at least seven of these eight parameters must be recognized for the
CLIP service (Called directory number is not necessary). Parameters may be
sent with zero length. In such cases parameter length will be zero and the
checksum will be correct. Parameters are usually encoded in IA5. The
version used is a 7-bit code and is sent in 8-bit bytes with the most
significant bit set to zero. Non-displayable characters (codes 0-32
decimal) are not used. In the tables following byte number 1 is sent first
followed by byte number 2 and so on.


Call Type Parameter

 ------------------------------------------------------
 | Byte Number| Contents                              |
 ------------------------------------------------------
 | 1          | Call Type Parameter Type Code         |
 |            | (00010001)                            |
 | 2          | Parameter Length                      |
 | 3          | Call Type                             |
 ------------------------------------------------------



 ------------------------------------------------------
 | Call Type Encoding | Call Type                     |
 ------------------------------------------------------
 | 00000001           | Voice Call                    |
 | 00000010           | ring-back-when-free-call      |
 | 10000001           | message waiting call          |
 ------------------------------------------------------

If the call type parameter is omitted then the call type is "voice call".
Additional Call Types may be defined later. Other call types, ie FAX, will
be used when they are available. The "message waiting" call type is used
to give an indication of a new message from a specific caller.


Time and Date Parameter

The Time parameter indicates the date and time (+/- 1 minute) of the event
associated with the supplementary information message. Where the call type
has a value 127 (01111111) or less, then the time is the current time and
can be used to set internal terminal equipment clocks and calendars. For
a call of type "message waiting" the time and date refer to the time
message was left or recovered. For other call types with value 128
(10000000) or greater, the time and date may refer to some unspecified event
and not necessarily current time.



 --------------------------------------------------------
 | Byte Number | Contents                               |
 --------------------------------------------------------
 | 1           | Time & Date parameter type code        |
 |             | (00000001)                             |
 | 2           | Parameter length (8)                   |
 | 3           | Month                                  |
 | 4           | Month                                  |
 | 5           | Day                                    |
 | 6           | Day                                    |
 | 7           | Hours                                  |
 | 8           | Hours                                  |
 | 9           | Minutes                                |
 | 10          | Minutes                                |
 --------------------------------------------------------

Calling Line Directory Number Parameter

The maximum length of number sent is 18 characters. The first digit sent is
in byte 3. The Calling Line Directory Number is a number that may be used
to call back the caller, or the same service. It may not be the directory
number of the originating call, for example, an 0800 may be associated
with the caller. Where an alternative to the directory number of the caller
is sent this is known as a Presentation Number. There is no indication of
which type of number is sent, this may change.
If only a partial number is known then that partial number may be sent. This
will be followed by a "-". For instance, where a call comes from outside the
digital network the area code may still be sent and shown as:

     0171-250-

or, (under the new national code) for an international call from France;

     00 33-

assuming the new international access code of 00.


       ---------------------------------------------------------
       | Byte Number | Contents                                |
       ---------------------------------------------------------
       | 1           | Calling Line Directory Number           |
       |             | Parameter type code (00000010)          |
       | 2           | Parameter length (n)                    |
       | 3           | First digit                             |
       | 4           | Second digit                            |
       | .           | .                                       |
       | .           | .                                       |
       |n+2          | nth digit                               |
       ---------------------------------------------------------




Reason for Absence of Directory Number Parameter

      ------------------------------------------------------------
      | Byte Number | Contents                                   |
      ------------------------------------------------------------
      | 1           | Reason for Absence of DN parameter type    |
      |             | code (00000100)                            |
      | 2           | Parameter length (1)                       |
      | 3           | Reason                                     |
      ------------------------------------------------------------
The reason will be one of the following BT IA5-encoded values
    "P" = "Number Withheld"
    "O" = "Number Unavailable"


Called Directory Number Parameter

The Called Directory Number is the telephone number used by the caller when
making the call. The maximum length of characters sent is 18, the first digit
of the number is sent in byte 3, the second in byte 4 and so on.


       ---------------------------------------------------------
       | Byte Number | Contents                                |
       ---------------------------------------------------------
       | 1           | Called Directory Number Parameter       |
       |             | type code (00000011)                    |
       | 2           | Parameter length (n)                    |
       | 3           | First digit                             |
       | 4           | Second digit                            |
       | .           | .                                       |
       | .           | .                                       |
       | n+2         | nth digit                               |
       ---------------------------------------------------------



Caller Name/Text parameter

At the launch of the service the Caller Name will not be available, the
parameter will contain text only.
The Name/Text consists of between 1 and 20 BT-IA5 characters. The parameter
may be used for other information when no name is available.


       ---------------------------------------------------------
       | Byte Number | Contents                                |
       ---------------------------------------------------------
       | 1           | Caller Name/Text Parameter type code    |
       |             | (00000111)                              |
       | 2           | Parameter length (n)                    |
       | 3           | First digit                             |
       | 4           | Second digit                            |
       | .           | .                                       |
       | .           | .                                       |
       | n+2         | nth digit                               |
       ---------------------------------------------------------



Reason for Absence of Name Parameter

The reason will be one of the following;

   P "Name Withheld"; Caller has withheld delivery of name
   O "Name Unavailable"; The name is not available



       ---------------------------------------------------------
       | Byte Number | Contents                                |
       ---------------------------------------------------------
       | 1           | Reason for Absence of Name type         |
       |             | parameter (00001000)                    |
       | 2           | Parameter length (1)                    |
       | 3           | Reason                                  |
       ---------------------------------------------------------


Network Message System Status Parameter

The value of the Network Message System Status parameter is a binary
encoded value indicating the number of messages waiting in the message
system. 0 means no messages, 1 means one or an unspecified number, other
values, up to 255, indicate that number of messages waiting.
This parameter is not necessarily associated with a normal phone call, and
will probably be sent as a no ring call.


       ---------------------------------------------------------
       | Byte Number | Contents                                |
       ---------------------------------------------------------
       | 1           | Network System Message Status           |
       |             | Parameter (00010011)                    |
       | 2           | Parameter length (1)                    |
       | 3           | Network System Message Status           |
       ---------------------------------------------------------


Unless a Call Type parameter is also set, then any time parameter sent with
the Network System Status parameter will indicate current clock time. This
is to enable the terminal equipment to assume the time is current time and
to set it's internal clock where no Call Type parameter is sent.


(4) Message Length


The longest CLIP message, excluding datalink layer information is currently
64 bytes. This length is expected for call types "Voice", "Ring-back-when-
free", "Message Waiting". In future there may be additional parameters that
could extend message length, these will be sent after the parameters Call
Type, caller number, name/text, reason for absence of name or number, and
Network Message System Status.


(5)Fig 5. Received Characteristics of V.23 Signals
 ------------------------------------------------------------
 | Modulation              | FSK                            |
 ------------------------------------------------------------
 | Mark (Logic 1)          | 1300 Hz +/- 1.5%               |
 ------------------------------------------------------------
 | Space (Logic 0)         | 2100 Hz +/- 1.5%               |
 ------------------------------------------------------------
 | Received signal level   | -8dBV to -40dBV                |
 | for mark                |                                |
 ------------------------------------------------------------
 | Received signal level   | -8dBV to -40dBV                |
 | for space               |                                |
 ------------------------------------------------------------
 | Signal level            | The received signal levels may |
 | differential            | differ by up to 6 dB           |
 ------------------------------------------------------------
 | Unwanted signals        | Total power of extraneous      |
 |                         | signals in the voice band is at|
 |                         | least 20dB below the signal    |
 |                         | levels                         |
 ------------------------------------------------------------
 | AC & DC load impedance  | AC load impedance is Zss (see  |
 |                         | below)                         |
 |                         | DC load impedance has been de- |
 |                         | scribed above.                 |
 ------------------------------------------------------------
 | Transmission rate       | 1200 baud +/- 1%               |
 ------------------------------------------------------------
 | Data format             | Serial binary asynchronous (1  |
 |                         | start bit first, then 8 data   |
 |                         | bits with least significant    |
 |                         | bit first, followed by 1 stop  |
 |                         | bit minimum, up to 10 stop bits|
 |                         | maximum. Star bit 0, stop bit 0|
 ------------------------------------------------------------


(6)Fig 6. Zss
Zss: a complex impedance nominally represented by the following network;

       139 nF
    ----------------
    |              |
     ------               -------
     |     |              |     |      ------------
     |     ----------------     |      |          |
O-----                          --------          ----------O
     |                          |      |          |
     |     ---------------      |      ------------
     |     |              |     |         827 Ohms
     ------               -------
    |              |
    ----------------
       1386 Ohms


(7)Fig 7. BT IA5 alpha-numeric character set

   -----------------------------------------------------
   | B   | b7  | 0  | 0  | 0  | 1  | 1  | 1  | 1  | 1  |
   -----------------------------------------------------
   | I   |     |    |    |    |    |    |    |    |    |
   -----------------------------------------------------
   | T   | b6  | 0  | 0  | 1  | 1  | 0  | 0  | 1  | 1  |
   -----------------------------------------------------
   | S   |     |    |    |    |    |    |    |    |    |
   -----------------------------------------------------
   |     | b5  | 0  | 1  | 0  | 1  | 0  | 1  | 0  | 1  |
      ---------------------------------------------------------
      |  BITS  |     | 0   | 1  | 2  | 3  | 4  | 5  | 6  | 7  |
      |b b b b |     |     |    |    |    |    |    |    |    |
      |4 3 2 1 |     |     |    |    |    |    |    |    |    |
      ---------------------------------------------------------
      |0 0 0 0 | 0   |NUL  |TC7 |SP  | 0  | @  | P  | `  | p  |
      ---------------------------------------------------------
      |0 0 0 1 | 1   |TC1  |DC1 | !  | 1  | A  | Q  | a  | q  |
      ---------------------------------------------------------
      |0 0 1 0 | 2   |TC2  |DC2 | "  | 2  | B  | R  | b  | r  |
      ---------------------------------------------------------
      |0 0 1 1 | 3   |TC3  |DC3 | #  | 3  | C  | S  | c  | s  |
      ---------------------------------------------------------
      |0 1 0 0 | 4   |TC4  |DC4 |   | 4  | D  | T  | d  | t  |
      ---------------------------------------------------------
      |0 1 0 1 | 5   |TC5  |TC8 | %  | 5  | E  | U  | e  | u  |
      ---------------------------------------------------------
      |0 1 1 0 | 6   |TC6  |TC9 | &  | 6  | F  | V  | f  | v  |
      ---------------------------------------------------------
      |0 1 1 1 | 7   |BEL  |TC10| '  | 7  | G  | W  | g  | w  |
      ---------------------------------------------------------
      |1 0 0 0 | 8   |FE0  |CAN | (  | 8  | H  | X  | h  | x  |
      ---------------------------------------------------------
      |1 0 0 1 | 9   |FE1  |EM  | )  | 9  | I  | Y  | i  | y  |
      ---------------------------------------------------------
      |1 0 1 0 | 10  |FE2  |SUB | *  | :  | J  | Z  | j  | z  |
      ---------------------------------------------------------
      |1 0 1 1 | 11  |FE3  |ESC | +  | ;  | K  | [  | k  | {  |
      ---------------------------------------------------------
      |1 1 0 0 | 12  |FE4  |IS4 | ,  | <  | L  | \  | l  | |  |
      ---------------------------------------------------------
      |1 1 0 1 | 13  |FE5  |IS3 | -  | =  | M  | ]  | m  | }  |
      ---------------------------------------------------------
      |1 1 1 0 | 14  |SO   |IS2 | .  | >  | N  | ^  | n  | ~  |
      ---------------------------------------------------------
      |1 1 1 1 | 15  |SI   |IS1 | /  | ?  | O  | _  | o  |DEL |
      ---------------------------------------------------------

Where;

     BEL = Bell
     CAN = Cancel
     DC  = Device Control
     EM  = End of Medium
     ESC = Escape
     FE  = Format Effectors
     IS  = Information Separator
     NUL = Null
     SI  = Shift In
     SO  = Shift Out
     SP  = Space
     SUB = Substitute Character
     TC  = Transmission Control






Conclusion:

My head hurts, I've been in front of this screen for eight hours, I started
this because I was chucked out of the cinema for being drunk and disorderly
and I'd nothing else to do, I've got through 2 packs of Marlboros, 1 bottle
mad dog and a stack of telco manuals. Most of this has been lifted whole-
sale from those manuals (in the great tradition of all p/h g-philes). I'm
currently working on a round up of ISDN2 and ISDN30, a glossary for European
phone phreaks (almost ready), and a technical description of British and
Irish cellular communication systems. If anybody has any info to share on any
of these things, or any questions they'd like answered (stick to the subject
though, I don't know who killed Kennedy, #8^)), then get in touch with me at
the above address or at any of a variety of boards.
