It would be very kludgey since you only have ANI and 10 custom variable, plus 2 other fields to work with.
You could either catch the ANI coming in or ask for an account Number. Then push this via EntData on the ringing event.
Next you would need to write an http app on ccx that would take the ANI or Acct# in and do a lookup against ContactCallDetail (originatorDN or accountNumber respectively) and pull all past call records. I would limit the time frame to six months or a year for speed. Present this in the browser portion of CAD.
Now for the hard part. Whatever you want to capture and store from the caller has to fit into the 10 custom variable fields, and they are each only 40 chars in size. You would also have to code the http app to handle writing back to the CCD table.
For that kind of money, I would go with a custom 3rd party solution and get exactly what you want instead of trying to cram it into ccx.