From marc Tue Dec 23 07:37:26 1997
Received: (from uucp@localhost)
     by athene.oberbilk.de (8.8.5/8.8.5) with UUCP id HAA04618
     for marc; Tue, 23 Dec 1997 07:37:20 +0100
X-Authentication-Warning: athene.oberbilk.de: uucp set sender to marc using -f
Received: (from marc@localhost)
     by poseidon.thphy.uni-duesseldorf.de (8.8.5/8.8.5) id XAA16586
     for athene!marc; Mon, 22 Dec 1997 23:26:19 +0100
Received: from thphy.uni-duesseldorf.de (xerxes [134.99.64.10])
     by poseidon.thphy.uni-duesseldorf.de (8.8.5/8.8.5) with SMTP id XAA16580
     for <marc@poseidon>; Mon, 22 Dec 1997 23:26:17 +0100
Received: from sirene.rz.uni-duesseldorf.de by thphy.uni-duesseldorf.de (4.1/SMI-4.1)
     id AA16415; Mon, 22 Dec 97 23:28:14 +0100
Received: from zorro.bctel.ca by sirene.rz.uni-duesseldorf.de with SMTP (PP);
          Mon, 22 Dec 1997 23:25:37 +0100
Received: from banspam.cyberspace.ca (sp@vanc06m04-7.bctel.ca [207.194.25.7])
          by zorro.bctel.ca (8.8.7/8.7.1) with ESMTP id OAA06155
          for <marc.eberhard@uni-duesseldorf.de>;
          Mon, 22 Dec 1997 14:23:43 -0800 (PST)
Sender: sp@bc.sympatico.ca
Message-Id: <349EE78E.F3D739BD@banspam.cyberspace.ca>
Date: Mon, 22 Dec 1997 14:19:59 -0800
From: Steve Pershing <sgp@banspam.cyberspace.ca>
Reply-To: sgp@bc.sympatico.ca
Organization: Questor Technologies Inc.
X-Mailer: Mozilla 4.04 [en] (X11; I; Linux 2.1.59 i486)
Mime-Version: 1.0
To: marc.eberhard@uni-duesseldorf.de
Subject: Raw CallerID Info
Content-Type: multipart/mixed; boundary="------------C2F4108847AFFF546FCE3737"
Status: ROr

--------------C2F4108847AFFF546FCE3737
Content-type: text/plain; charset="iso-8859-2"
Content-transfer-encoding: 7bit

Marc:

Some time ago I started looking for the Raw Caller ID info, so that it
might
be used to do more interesting things by your vgetty program.

(As you are probably aware, he ZyXEL modem can be set to deliver the
CND message in "raw data format" by setting register S48 bit 0 to '1'.)

As I mentioned at the time, one of the things that it would be great to
do
would be to act upon the incoming Raw data to:  play a specific message
based on the  raw data.  For instance, if the "private" byte was
received, one
might play a "call refused" message; if a specific number was received,
a
message for that specific number could be played;  if a call came in
within a
certain time window, then a specific message relevant to that data could
be
played, and so on ad nauseam...     :-)

I have finally received some useful information from Kevin J. Brewer at
Delco Electronics, and am including it as a file-attachment.  I hope
that you
will find it of use.

Incidentally, I still find it impossible to get even the latest version
of vgetty to work with distinctive ringing.  (Rob Janssen's
"ZyXEL Control Program" *does* work, however.  -- see
http://www.pe1chl.demon.nl or write: pe1chl@amsat.org.)

Is there any hope of vgetty ever working with a ZyXEL U1496 series modem
in the distinctive-ring mode?  (Currently I am running version 1.1.11 of
mgetty/vgetty, and version 6.17 of the ZyXEL microcode.)

Thanks again for the work you are doing with vgetty, Marc!

Best regards from Vancouver, BC!  Froeliche Weinachten!  Happy New
Year!     :-)


--
  Steve Pershing



--------------C2F4108847AFFF546FCE3737
Content-type: text/plain; charset="iso-8859-2"; name="cidraw.txt"
Content-transfer-encoding: 7bit
Content-Disposition: inline; filename="cidraw.txt"

To: ptownson@massis.lcs.mit.edu, sgp@bc.sympatico.ca (Steve Pershing)
Date: Mon, 22 Dec 1997 13:37:32 -0500 (EST)
Cc: c2xkjb@eng.delcoelect.com (Kevin J. Brewer)
Return-Receipt-To: c2xkjb@eng.delcoelect.com (Kevin J. Brewer)
Sender: c2xkjb@eng.delcoelect.com (Kevin J. Brewer)
From: c2xkjb@eng.delcoelect.com (Kevin J. Brewer)

   The "message-waiting" ('Caller ID on Call Waiting' I assume you mean) and
"privacy" "bits" are described in that which follows, but it appears to me that
"long-distance" can only be determined by comparing the area code portion of the
phone number delivered by Caller ID against your own.

   A "complete list of available data" can possibly be found in the Bellcore et
al. documents listed in the bibliography of the referenced HTML document.


   The following Caller ID message format information is excerpted from "Caller
ID", http://testmark.com/callerid.html, by Michael W. Slawson of Intertek
Testing Services, TestMark Laboratories.


Caller IDentification or Calling Identity Delivery (CID) information is sent in
one of two formats between the 1st and 2nd rings.  For specific message
transmission timing, see the referenced HTML document.

The Single Data Message Format (SDMF) contains the Date, Time, and calling
Number.  The Multiple Data Message Format (MDMF) contains the Date, Time,
calling Number, and the Name associated with that Number.  Optionally, the
Number or Name field may contain data indicating that the information is
unavailable or has been blocked by the caller.  In such cases, these fields will
contain either an "O" or a "P" representing the strings "Out of area" and
"Private" respectively.

Caller ID is a term that encompasses more than one type of caller
identification.  Calling Number Delivery (CND) refers to the most basic type of
CID.  It is delivered in SDMF and includes the Date (mm/dd), Time (hh:mm in
24 hour format), and calling Number.  Calling Name Delivery (CNAM) is an
enhancement of Calling Number Delivery that adds the calling Name and is sent in
MDMF.

Thus, the content of the CID message depends on whether it is in SDMF or MDMF.
A message in SDMF includes a Message Type byte, a Message Length byte, the
actual Message bytes, and a Checksum byte.  A message in MDMF also includes a
Message Type byte, a Message Length byte, the actual Message bytes, and a
Checksum byte, but additionally includes Parameter Type bytes and Parameter
Length bytes.  Displayable character bytes in the message are coded in ASCII.
The Checksum byte is the 2s-complement negative of the modulo 256 sum of all of
the other bytes in the message including the Message Type and Message Length
bytes.

The Message Type byte defines whether the message is in SDMF or MDMF.  It will
be a binary 00000100 (decimal 4) for SDMF or a binary 10000000 (decimal 128) for
MDMF.  The Message Length byte indicates the number of bytes in the message
following it with the exception of the Checksum byte at the end.  For SDMF, the
minimum length will be 9 characters. The minimum length for MDMF will depend on
whether the customer has subscribed to CNAM service as well as CND.  In the case
of CND only, the minimum length will be 13 bytes.  If the customer also has
CNAM, then the minimum will be 16 bytes.  In all three of the minimums
mentioned, there is no actual calling Number or Name delivered and the fields
will contain either an "O" or a "P".


Character                    Decimal   ASCII   Actual
Description                  Value     Value   Bits      (LSB)
--------------------------   -------   -----   ---------------
Message Type (SDMF)              4             0 0 0 0 0 1 0 0
Message Length (18)             18             0 0 0 1 0 0 1 0
Date (12/25)                    49       1     0 0 1 1 0 0 0 1
                                50       2     0 0 1 1 0 0 1 0
                                50       2     0 0 1 1 0 0 1 0
                                53       5     0 0 1 1 0 1 0 1
Time (15:30)                    49       1     0 0 1 1 0 0 0 1
                                53       5     0 0 1 1 0 1 0 1
                                51       3     0 0 1 1 0 0 1 1
                                48       0     0 0 1 1 0 0 0 0
Number (606-213-4567)           54       6     0 0 1 1 0 1 1 0
                                48       0     0 0 1 1 0 0 0 0
                                54       6     0 0 1 1 0 1 1 0
                                50       2     0 0 1 1 0 0 1 0
                                49       1     0 0 1 1 0 0 0 1
                                51       3     0 0 1 1 0 0 1 1
                                52       4     0 0 1 1 0 1 0 0
                                53       5     0 0 1 1 0 1 0 1
                                54       6     0 0 1 1 0 1 1 0
                                55       7     0 0 1 1 0 1 1 1
Checksum                        79             0 1 0 0 1 1 1 1

                       Figure 2 - A Caller ID message in SDMF

The "/", ":", and "-" delimiters are not actually a part of the CID message, but
are included here for ease of understanding.


Figure 3 shows an example of a minimum message layout for SDMF.  The message
contains the Date, Time, and a "P" to indicate that calling Number delivery has
been blocked at the caller's request.

Character                    Decimal   ASCII   Actual
Description                  Value     Value   Bits      (LSB)
--------------------------   -------   -----   ---------------
Message Type (SDMF)              4             0 0 0 0 0 1 0 0
Message Length (9)               9             0 0 0 0 1 0 0 1
Date (12/25)                    49       1     0 0 1 1 0 0 0 1
                                50       2     0 0 1 1 0 0 1 0
                                50       2     0 0 1 1 0 0 1 0
                                53       5     0 0 1 1 0 1 0 1
Time (15:30)                    49       1     0 0 1 1 0 0 0 1
                                53       5     0 0 1 1 0 1 0 1
                                51       3     0 0 1 1 0 0 1 1
                                48       0     0 0 1 1 0 0 0 0
Private                         80       P     0 1 0 1 0 0 0 0
Checksum                        16             0 0 0 1 0 0 0 0

                       Figure 3 - A minimum message layout in SDMF


Figure 4 shows an example of a message in MDMF that contains both a number and a
name.

Character                    Decimal   ASCII   Actual
Description                  Value     Value   Bits      (LSB)
--------------------------   -------   -----   ---------------
Message Type (MDMF)            128             1 0 0 0 0 0 0 0
Message Length (33)             33             0 0 1 0 0 0 0 1
Parameter Type (Date/Time)       1             0 0 0 0 0 0 0 1
Parameter Length (8)             8             0 0 0 0 1 0 0 0
Date (11/28)                    49       1     0 0 1 1 0 0 0 1
                                49       1     0 0 1 1 0 0 0 1
                                50       2     0 0 1 1 0 0 1 0
                                56       8     0 0 1 1 1 0 0 0
Time (15:43)                    49       1     0 0 1 1 0 0 0 1
                                53       5     0 0 1 1 0 1 0 1
                                52       4     0 0 1 1 0 1 0 0
                                51       3     0 0 1 1 0 0 1 1
Parameter Type (Number)          2             0 0 0 0 0 0 1 0
Parameter Length (10)           10             0 0 0 0 1 0 1 0
Number (606-224-1359)           54       6     0 0 1 1 0 1 1 0
                                48       0     0 0 1 1 0 0 0 0
                                54       6     0 0 1 1 0 1 1 0
                                50       2     0 0 1 1 0 0 1 0
                                50       2     0 0 1 1 0 0 1 0
                                52       4     0 0 1 1 0 1 0 0
                                49       1     0 0 1 1 0 0 0 1
                                51       3     0 0 1 1 0 0 1 1
                                53       5     0 0 1 1 0 1 0 1
                                57       9     0 0 1 1 1 0 0 1
Parameter Type (Name)            7             0 0 0 0 0 1 1 1
Parameter Length (9)             9             0 0 0 0 1 0 0 1
Name (Joe Smith)                74       J     0 1 0 0 1 0 1 0
                               111       o     0 1 1 0 1 1 1 1
                               101       e     0 1 1 0 0 1 0 1
                                32             0 0 1 0 0 0 0 0
                                83       S     0 1 0 1 0 0 1 1
                               109       m     0 1 1 0 1 1 0 1
                               105       i     0 1 1 0 1 0 0 1
                               116       t     0 1 1 1 0 1 0 0
                               104       h     0 1 1 0 1 0 0 0
Checksum                        88             0 1 0 1 1 0 0 0

                       Figure 4 - A Caller ID message in MDMF

In Figure 4, if the Number or Name had not been included, then alternate
Parameter Types for those fields would have been used to signify that the data
contained in the field indicates the reason for the absence of the field's
expected content.

In such cases, the Parameter Type for the Number field is a binary 00000100
(decimal 4) and the Parameter Type for the Name field is a binary 00001000
(decimal 8).  When a Parameter Type signifies that the field data indicates the
reason for the absence, the Parameter Length is always 1.

If the reason for absence is that the calling party does not want their
Number/Name displayed, then the field will contain a "P".

If the reason for absence is that the information is simply unavailable, then
the field will contain an "O".  The Number/Name may not be available if the
calling party is not served by a central office capable of relaying the
information on through the network.


For information in regard to the location and timing of MDMF message
transmission for Caller ID on Call Waiting or Calling Identity Delivery on Call
Waiting (CIDCW), see the referenced HTML document.



                                 Sincerely,

                                 Kevin J. Brewer


--------------C2F4108847AFFF546FCE3737--

