YAC RSS Feeds

After the success of getting YAC to distribute the phone number of incoming calls to devices on my network (including my Xbox via XMBC) I wondered how I could get notification on my desktop at work. YAC broadcasts on a port, and that doesn’t gel with corporate firewalls.. but it does create a log:

****************************************
YAC 0.16 Started: 25 June 2006 – 10:13:57
Running in Server mode.

***** INCOMING CALL: 25 June 2006 – 18:04:28 *****
NAME: YAC Test Call
NUMBER: (425) 555-1212

***** INCOMING CALL: 25 June 2006 – 18:07:58 *****
NAME: YAC Test Call
NUMBER: (425) 555-1212

Since I have a webserver running at home, putting this log into the public folder of the web server made it available wherever I was in the world. This still isn’t ideal; I’d rather not have to check whether I’ve missed any important calls.

RSS feeds seemed the logical progression. I have a few RSS readers installed, and they’ll poll at whatever duration you specify. YAC doesn’t output an RSS feed and I was pulling my hair out trying to compile the YAC source even without modifications!

Instead of modifying YAC, I simply wrote a small PHP script to parse the log file and strip out what I needed. Feed Creator can then be used to create a quick RSS feed from the data.

Here’s the finished script. Enjoy!! :-D

If you find it useful, a small donation via PayPal (no matter how small) would really make my day!

Make payments with PayPal - it's fast, free and secure!

Broadband; ‘Conflicting Product’ Problem

When I moved home a couple of weeks ago everything went really smoothly. Taking over and transferring the phone number from the old line went alright, although it did take 3-4 days for our old number to be transferred to the new address.

However when it came to ordering broadband, the ISP I chose phoned me a week and a half later to say there was a conflicting product on the line. It was likely that the previous owner had broadband, and it hadn't been cancelled & removed from the line. The ISP said BT would be able to sort this out.

It took a couple of hours to find someone at BT who knew what I was on about and could sort it out. The route they took me down was:

  • Initial call to 0800 500 150 – hopeless IVR system which I found terminated at various points with an unknown number error. Went through a different route a number of times (attempting to avoid these dead ends) and eventually spoke with someone who said that 151 would know what to do.
  • 0800 500 151 – routed to India. They hadn't a clue and kept me on hold a number of times whilst they talked to a supervisor. Eventually said to raise it with broadband technical help.
  • 0845 600 7030 – the broadband tech guy said there was little they could do since they didn't know which ISP the previous product was held with. He said to ring Ofcom who would tell me & could progress it further.
  • 0845 456 3000 (Ofcom) – After navigating through the IVR an automated message said that they have nothing to do with Conflicting Product / Marker problems. BT Wholesale are the people to speak to, and gave their number.
  • 0800 169 0934 – Despite waiting in a queue for 20 minutes BT Wholesale were actually helpful & could see the problem straight away. The order to remove the old product off the line was in progress and would take a few more days to be resolved.

So eventually I got the answer I was after. The thing that really bugs me is that it took me 5 different phone numbers to get to the right people. And that it was Ofcom who told me the right number to ring.. not BT.

Overall, I must have wasted a couple of hours chasing this problem up. Rubbish!

Modems & UK Caller Id – Part 2

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.

[CallerID]
HKR,,CallerIDOutSide,,O
HKR,,CallerIDPrivate,,P
HKR,,VariableTerminator,,<cr><lf>
HKR,EnableCallerID,1,,"AT#CID=1<cr>"
HKR, Responses, "<cr>", 1, 01, 00, 00,00,00,00, 00,00,00,00
;00
HKR, Responses, "<lf>", 1, 01, 00, 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.

Modems & UK Caller Id

To get caller id off the line & into the PC requires a modem that supports Caller Id. The one I singled out during my search for a compatible modem was the US Robotics 56K Faxmodem v.92 Model 5630B. I bought one off eBay for £5.50 (£11 if you include postage) which turned out to be brand new & still shrink wrapped.


Once hooked up & drivers from the accompanying CD-ROM were installed I gave the landline a call from my mobile. Unfortunately the caller id software (YAC) didn't identify the number.. so I tried again a few times without any luck. At first I thought it was a problem with YAC, but then I checked the modem log…

06-20-2006 19:05:01.252 – Waiting for a call.
06-20-2006 19:05:01.262 – Send: at#cid=1<cr>
06-20-2006 19:05:01.382 – Recv: <cr><lf>OK<cr><lf>
06-20-2006 19:05:01.382 – Interpreted response: OK
06-20-2006 19:05:01.392 – Send: ATS0=0<cr>
06-20-2006 19:05:01.512 – Recv: <cr><lf>OK<cr><lf>
06-20-2006 19:05:01.512 – Interpreted response: OK
06-20-2006 19:05:50.182 – Recv: R
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: ING<cr><lf><cr><lf>
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: D
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: ATE = 0
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: 6
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: 20<cr><lf>TIM
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: E
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: = 1905
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: <cr>
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: <lf>NMBR =
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv:
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: 0883933
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: 5
06-20-2006 19:05:50.182 – Unknown Response
06-20-2006 19:05:50.182 – Recv: 612<cr><lf>
06-20-2006 19:05:50.182 – Unknown Response
(note, mobile number in the log has been changed to 08839335612)

The important thing highlighted in the log are the lines saying 'Unknown Response'. This means that the incoming string (from the modem) isn't matching up with what the modem driver is expecting.

I found all this out by reading a really detailed page off the Talking Caller Id site. It goes through the steps you can take to correct the modem driver so that the incoming strings will be resolved correctly.

Before I started modifying the driver, I went over to the US Robotics support page for the 5630 and downloaded the latest driver & firmware which were more up-to-date than the ones shipped on the accompanying CD-ROM.

That was it for day 1… I'll see whether the latest driver & firmware solved the problem and post the results in the next few days.

If you have any questions, please feel free contact me (click on Contact at the top right). 

XMBC and Scripting in Python

Over the past couple of days I've been looking into scripting in Python. It's an interpreted language which is used for stacks of things, but for me, the main thing is that Xbox Media Center (XBMC) uses Python for it's extension scripts.

One extension in particular that has sparked my interest is the Caller Id script. This pops up the name of the person calling your landline on the TV when you're watching a movie in XBMC. In the full article I'll go through all the steps I went through to extend the basic Caller Id script & test it on a PC before porting it over to the Xbox.

The script looks pretty good, but I need a modem that actually supports UK caller id (very few actually do). The one that's now winging it's way to me from eBay auction is a US Robotics 56K Faxmodem v.92 Model 5630B. Fingers crossed it'll work alright! The place I used to find a UK caller id compatible modem was here.

As I set up the modem and modify the scripts & document everything and post it here.

Changing Site Layout using Platypus & Greasemonkey

One thing that was bugging me was how much of the screen some sites were taking up with banners and welcome messages that never change. It means that I have to page down to see whether there's any new content. A great way round this is to use the Firefox extensions Greasemonkey and Platypus.

Platypus gives you a new toolbar from which you can quickly streamline websites & save off the results for future visits. Here's a quick example:

Once you're happy with the changes you've made, hit Save…

Then hit Install. Next time you visit the site, your changes will be re-applied.

(before)

(after)