This plugin will enable your SageTV V7 system receive and display caller ID messages on screen (using the Y.A.C. caller ID software). Yes, this works for the HD Extenders!
This plug-in supports custom images for callers by name and number.
This plug-in also supports a simple message protocol that can enable other programmatic messaging for custom implementations if you need to display messages in the SageTV GUI.
Prerequsite
YAC (Yet Another Caller ID) can be installed on your SageTV server or on another computer in your local network. YAC can use a caller ID capable modem and listen for incoming caller ID information and relay this information to YAC listeners. SageInfoPopup is a plugin running inside the SageTV server that acts as a YAC listener and upon receiving caller ID messages from YAC, will display the information on screen.
Credits
This SageTV add-on must attribute significant credit to Nielm's InfoPopup SageTV plugin. Much of the logic and GUI implementation is borrowed from Nielm's project. So why create another InfoPopup plugin? Well, Nielm's InfoPopup was created a number of years ago and with the introduction of the HD extenders, there are some compatibility issues that prevent Nielm's InfoPopup from working properly on the new extenders. There is one significant difference between Nielm's InfoPopup and the shadeBlue SageInfoPopup. With Nielm's InfoPopup, each Sage UI context runs it own socket listener to receive YAC messages, this also means that each Sage UI must be added as a listener in the YAC software. This shadeBlue SageInfoPopup moves the YAC socket listener to the main SageTV server process and simply notifies all connected UI contexts. This means that if you are running multiple extenders, then you only need a single instance of shadeBlue SageInfoPopup and YAC need to only be configured for the single SageTV YAC listener. However, if you are running separate SageTV client instances, then each client instance will need an instance of shadeBlue SageInfoPopup and each client instance will need to be configured as a YAC listener in the YAC software (just as it does using Nielm's InfoPopup).
FAQ (Frequently Asked Questions)
Q: I am already using Nielm's InfoPopup, should I convert to this version?
A: If you are using Nielm's InfoPopup and it currently meets all your needs, then stay with it, don't fix what aint broke
Q: Why would I want to use this plugin versus Nielm's InfoPopup plug-in?
A: The primary reason would be to add caller ID support for the HD extenders.
Q: Can I run both: Nielm's InfoPopup and shadeBlue SageInfoPopup?
A: Yes, but I would suggest you only run one version on each client/server to avoid confusion and avoid overlapping messages. For example, you could run the shadeBlue SageInfoPopup on you SageTV server to facilitate caller ID messaging to your extenders and continue using Nielm's InfoPopup on your client instances.
Q: Does shadeBlue-SageInfoPopup support all the custom settings as Nielm's InfoPopup plug-in?
A: Yes, all of the same settings (and more) are supported. You will need to configure these custom settings under the new shadeBlue properties in the Sage.properties file. See below for a listing of all the supported configuration properties.
Q: Does shadeBlue-SageInfoPopup support custom caller images as does Nielm's InfoPopup plug-in?
A: Yes, custom caller images are supported exactly as they are in Nielm's InfoPopup plug-in using the caller name to resolve the image file. Both JPG and PNG images are supported. The shadeBlue-SageInfoPopup takes it one step further and if an image by the caller name cannot be found it will attempt to use an image named the same as the caller number. Lastly, if you are using a custom program or script to invoke the message prompts, the new protocol messages allows the program/script to specify which image file to load for any given caller ID message or generic message prompt.
Q: Can I include/exclude individual SageTV UI contexts / extenders from getting the message prompts?
A: Yes, you can define a comma separated list of UI contexts in the "shadeBlue/infopopup/ui_context_filter" property to define which specific UI contexts will receive messages. If this property is empty, then the messages are directed to all SageTV UI contexts.
Attention Version 6 Users!:
If you are upgrading SageTV from version 6 to version 7 and you were running the earlier V6 compatible SageInfoPopup plugin, you must manually uninstall the previous version before installing the new V7 InfoPopup plugin!.
Stop SageTV service/program.
Edit the Sage.properties / SageClient.properties files and remove the SageInfoPopup plugin from the startup property.
Open the JARs folder for SageTV, delete any jar files related to "mina", "infopopup", and "slf4j".
Repeat the steps above for all SageTV client installs.
Start SageTV and begin InfoPopup V7 installation.
Installation Instructions:
In the SageTV 7 user interface, select "Setup / SageTV Plugins / All Available Plugins".
Next, under the General Plugins listing, find "InfoPopup" and select the plugin to install it. After installation is complete, you may need to restart your SageTV Client/Extender before InfoPopup will start working properly.
Make sure to install the Infopopup Plugin listed under the General listing, not the one listed under UI Mod. (The one under UI Mod is just the STVi for this plugin, it is a dependency that gets installed automatically.)
If you have a question on any of these settings, please post it to the support thread.
Supported Message Protocol
If you are creating your own program or script and wish to invoke caller ID messages or generic messages and have then displayed in the SageTV UI, then you can use the following messaging protocol to create the desired message prompts. Your program or script will need to connect to the configured TCP/IP socket, send the ASCII message based on the supported protocol messages below and then disconnect the socket. On disconnect, shadeBlue-SageInfoPopup will process and render the message prompt.
Caller ID Message Protocol
1.) @call{caller_name}~{caller_number}~{description}~{image}~{ui_context}
EXAMPLE: Caller ID Message
@callJohn Doe~123-456-7890
EXAMPLE: Caller ID Message w/ additional descriptive text
@callJohn Doe~123-456-7890~Additional Description
EXAMPLE: Caller ID Message w/ additional descriptive text & specific image
@callJohn Doe~123-456-7890~Additional Description~mobile_phone.png
EXAMPLE: Caller ID Message w/ additional descriptive text, specific image, addressed to a specific UI instance
@callJohn Doe~123-456-7890~Additional Description~mobile_phone.png~SAGETV_PROCESS_LOCAL_UI