MythNotify

From MythTV Official Wiki
Jump to: navigation, search

Time.png Outdated: This utility uses the old mythtvosd protocol, and is not compatible with MythMessage used in 0.25 and later.

MythNotify is an add-on program which sends notifications, like caller-id information, to a running mythfrontend.

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.

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.


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

See the Setting up MythNotify article for installation details