A Conundrum for you all

I’m doing this site delivering ringtones to mobile phones. Part of the requirements of this project are that I can’t send a billing message to the customer until the last byte of the ringtone has been downloaded from the site. Now, I know the size of the ringtone. The site is Cold Fusion driven, so to deliver the ringtone itself, I use <cfdocument> to deliver the ringtone – thusly I’m able to keep the ringtone file itself in a non web-accessible place. However, as far as I can tell, Cold Fusion doesn’t process anything that comes after a <cfdocument> tag.

So my question to you, the world at large, is can you think of a way that I can “count” the bytes being sent to the browser at any time to know if the customer has downloaded the entire ringtone, or has cancelled it (or lost connection) part way through? I haven’t been able to find a way to do this, but it must be doable, I reckon.