Query regarding call generated by sim900

Is their any way to detect whether call is answered or not?

EVERY AT command returns a value. I think it is safe to assume that the return code from an answered call would be different from that of an unanswered call.

So, what are you getting from the AT commands?