9/13/2003 Ken Bass (kbass@kenbass.com)

  History: 

  I thought it would be very useful if when the phone rings I could
  have 'Caller ID' information displayed on the mythTV "on screen
  display" (OSD) while watching live tv or viewing recordings.

  It would also be nice to provide other notifications to the screen.

  Solution: 

  I wrote three programs to address this problem and I
  modified the 'mythtv' package to support displaying notifications
  via the OSD.

  1) mythTV changes - I created a patch so that the mythtv task listens
  for a special XML formatted 'notification' packet on a UDP port
  (default 6948). Using UDP eliminates a lot of complex coding and allows
  the data to comes from any machine on the network. See mythtvosd below.

  2) mythtvosd - This program is a command line utility for displaying
  information on the OSD. It takes command line arguments, and XML
  file as a template, and send the data via UDP to mythtv. See the
  mythtvosd README file for details of usage and XML format.

  3) mythudprelay - This is a generic relay program. It receives XML
  packets via UDP. It then uses XSLT to transform the input XML to an
  output XML that myth requires. See the mythudprelay for details.

  4) cidbcast - This is a caller id monitoring program. It requires a
  caller id capable modem and that you subscribe to the caller ID
  service. When the phone rings, a caller ID capable modem decodes the
  caller ID information (which gets transmitted by the phone company
  between the 1st and 2nd ring). The modem then outputs this info to
  the serial port. The cidbcast program broadcasts an XML structure
  via UDP. All clients on your LAN can receive and process it. In the
  future, I plan to write some 'java' clients that will run under
  windows provide notification of caller id info. See the cidbcast
  README for details.
  

  Caller ID Uses:

  This package is pretty flexible and there are many ways to
  accomplish the same thing. 

  Scenario 1) If you have a caller ID capable modem in a linux box
  somewhere on your network and you want to dedicate it to caller ID:

   a) Run cidbcast on the machine with the caller ID capable modem.

   b) Run mythudprelay on any machine (the machine with the modem or
   even your mythfrontend)

  Scenario 2) If you want to use some external program to monitor your
  caller ID modem:

   a) Have your external program invoke cidbcast with the '--once'
   option and pass proper command line arguments (such as caller name
   / number, etc) as options. This will invoked cidbast in the 'single
   shot' mode. A single UDP packet will be sent - no modem interaction
   takes place. The program exits immediately after sending.

   b) Run
   mythudprelay on any machine (the machine with the modem or even
   your mythfrontend)


  Other Uses:

   You can use this package for more than just caller ID. Perhaps
   email notification, CPU temperature overheat warning, etc. Use the
   'mythtvosd' program to generate myth notification events. See
   mythtvosd README for details.


                                                      Enjoy!
                                                      ---Ken