Have you looked at caller? In what ways does it fail to do what you want?
In reply to Re: Get first caller and its arguments by Corion in thread Get first caller and its arguments by OlegG