Caller ID (in my niche of the world) is sent before the phone answers (usually between first and second ring). ISDN is a different case.
Although "call waiting" may show Caller ID also, this info bit is sent during a short break in the communication, not while you're talking.
There are several different implementations of Caller ID (for various countries), so I'm not sure if what I say here applies in your case.
But, I think it would not be possible to use an ordinary phone's caller id screen because, if that phone works correctly, it should NOT listen for the Caller ID string during off-hook. (If it did, wouldn't it be possible for someone to spoof the ID with another number?)
To do what you want, maybe you could use a voice chip (e.g. ISD) to have your application talk back to you.