That's correct. When a trade goes through at the bid, it is the seller who initiated that trade (he met the bid price). Thus, that trade is recorded as a sell. When a trade goes through at the ask, it is the buyer who initiated the trade (he met the ask price). Thus, that trade is recorded as a buy.
Most programs record trades that go through in between the two as "unknown" volume.