Ok I've been a busy boy and grabbed a copy of the numbers of the website imported most of them into a table and coded up a proof of concept AGI script for asterisk.
This possibly won't make sense for most people but it does work, and I'll try to help everyone that wants help in testing/setting this up for themselves.
I've also set things so the priority and order is always "300 99" so other results people put into the system can be filtered. I haven't tested this dial plan, I have a much more complex one and there was no point me posting everything in there so I came up with this example one.
You need to put something like this in your dialplan, and you need the number to check against in CC+number format, so for australia it will be 6113xxxx:
[users]
exten => _13X.,1,Goto(special,61${EXTEN},1)
[hangup]
exten => 1,1,hangup
[special]
exten => _X.,1,AGI(cheaper.php|${EXTEN}|6191234567)
exten => _X.,n,GotoIf($[${EXTENCOUNT} > 0]?routes)
exten => _X.,n,Dial(SIP/${EXTEN:2}@VSP,120)
exten => _X.,n,Goto(hangup,1,1)
exten => _X.,n(routes),Set(count=0)
exten => _X.,n(top),Set(count=${count}+1)
exten => _X.,n,GotoIf($[${EXTENCOUNT} >= ${count}]?hangup,1,1)
exten => _X.,n,Dial(SIP/0${EXTEN${count}:2}@VSP,120)
exten => _X.,n,Goto(top)
www.e164.org/cheaper.phps