After upgrading the firmware and installing the latest driver I found I was getting the same problem as before, i.e. "Unknown Response" was appearing in the modem log.
The solution was to use the sound advice at the Talking Caller Id site which basically says that the modem driver doesn't see the <cr><lf> being sent by the modem as purely infomational text. To tell the driver to ignore them I added a couple of lines to the [CallerID] section of the modem driver, e.g.
HKR, Responses, "<cr>", 1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<lf>", 1, 01, 00, 00,00,00,00, 00,00,00,00
HKR,Responses,"<cr><lf>DATE = ",1,93,00,00,00,00,00,00,00,00,00
HKR,Responses,"MESG = ",1,97,00,00,00,00,00,00,00,00,00
HKR,Responses,"NAME = ",1,96,00,00,00,00,00,00,00,00,00
HKR,Responses,"NMBR = ",1,95,00,00,00,00,00,00,00,00,00
HKR,Responses,"TIME = ",1,94,00,00,00,00,00,00,00,00,00
After reinstalling the modem driver the log file stopped complaining about Unknown Responses and YAC popped up giving the correct number.
(example popup from YAC)
Now that YAC can identify the call I've installed the YAC listener on other computers on my network / When a call is recieved, the YAC server sends Caller ID to all the registered listeners. Simple!
There's a Caller Id script for Xbox Media Center which can receive YAC broadcast messages so that they're overlayed on the TV screen as you watch a film. The only issue I have with the standard script is that it employs no image caching & will spin up the Xbox HD whenever a call comes in.
That's why I've started coding in Python! :-D Caching the images proved a little problematical, but the other scripts available for XBMC are a good resource (e.g. Poker Timer 2 has image caching for the clock).
The script is pretty much finished and I'll release it after some testing.