[mythtv] Caller ID

Ken Bass kbass at kenbass.com
Wed Sep 17 02:37:40 EDT 2003


I have completed a patch for myth to add Caller ID notification capablity. I
am unsure of how to submit a patch (this is my first myth development
attempt). I created my patch from the official 0.11 tarball.

I tried to keep this interface flexible so that it is for more than just 
Caller ID. I call it 'UDPNotify' capability.

An XML structure is sent from a caller id program via UDP.
'mythtv' receives this UDP data, parses the XML structure, and puts the data
onto the OSD for a short time.

The XML over UDP packet looks as follows:

<mythnotify version="1">
  <container name="notify_cid_info">
    <textarea name="notify_line">
      <value>LINE #%CID_LINE%</value>
    </textarea>
    <textarea name="notify_name">
      <value>NAME: %CID_NAME%</value>
    </textarea>
    <textarea name="notify_num">
      <value>NUM : %CID_NUM%</value>
    </textarea>
    <textarea name="notify_dt">
      <value>DATE: %CID_DATE% TIME : %CID_TIME%</value>
    </textarea>
  </container>
</mythnotify>

 Note that this 'mythnotify' contains container, text area, and value
references. The container/text area names should match corresponding entries
within the 'osd.xml', as dictated by the Theme Designer. If a theme only
wishes to implement a subset of the text areas, no problem. Also, this
scheme supports multipler containers - for example, the Callers Name can be
placed in a container widget in the upper left, the Callers number in a
separate container widget in the the upper right. The possibilities are
unlimited. All changes to the look/feel can be done via XML. 

In my xml example above there are some keywords such as '%CID_NAME%'. These
values are replaced with actual caller id info by the program that generate
the caller id UDP - don't be confused that myth does anything with them.

This scheme could be used for email notification, alert messages, etc with
the appropriate UDP sender.

My patch includes a caller id broadcast utility (in the contrib directory)
that interfaces with a caller id capable modem and sends the UDP/XML packet
to myth. It reads from an 'XML' template file, replaces keywords with caller
id info before it sends via UDP. It also provides a 'simulate' option to
generate a dummy phone call for testing.

I have a few questions:
1) Where/how in the osd.xml (theme) can I allow configuration of the length
of time the notification will stay on the screen. Currently, I've got it
hardcoded. I'm not sure I want to use the 'fadeaway' value. We probably want
the notification popup to be a different time than other OSD elements,
right? Should we add a fadeaway tag at the container level?
2)  I added a gContext->GetNumSetting("UDPNotifyPort", 6948); My default
port is 6948, but we might want to allow this to be changed in the
database/setup screens. How/who? My caller id broadcaster allows this to be
override via the command line.
3) I'm not strong on the graphics side, it would be nice if someone could
help with the graphics box to hold the caller info. I'm using
'osd-small.png' as a background and it would be nice to come up with
something a little different (perhaps translucent) - perhaps with a little
telephone icon as part of the background.. 

While my application is currently for Caller ID, this patch would be useful
for a whole range of applications that can call an external program to
perform notification.


More information about the mythtv-dev mailing list