It depends. We can easily get into the sophistry of "what is understanding", "what's the nature of knowledge" and "how many gains of sand makes it a heap". But usually the most common, though definitely imperfect, test would be whether a random reasonable commoner would be able to understand it. I.e., if somebody is told "we have a contract for 12 months, for X dollars per month, if you want out earlier, you'd have to pay fee of Y dollars" and you say "yes, I agree" - that is voluntary transaction. If you are told "the price is X per month, don't worry about cancelling, it's easy" and then you have to jump through hoops and pay Y dollars because it was printed in unreadable font somewhere in the 2-inch pile of documents you've been given to sign - it's not voluntary, because average reasonable person wouldn't realize it.
> Taking advantage of people is never ok in my book.
Neither it is in mine. There is, however, a wide area of situations where some consider it to be "taking advantage", while others, sometimes including the individuals supposedly being taken advantage of, consider it a free choice. I am against paternalistic approach which says some people can define for other people what's best for them and must protect them from voluntary transactions because it looks to the paternalists like "taking advantage". On the other hand, if it looks for everybody, including the participants, as "taking advantage", and involves hiding substantial information that alters the meaning of the deal, then it's not voluntary. I know it's a more complicated position than fits on a bumper sticker, but life is complicated, so there's no reason not to have complicated positions.