We are making a physics based game using Ogre and Bullet. It has been great so far, and we have already the basic gameplay without much pain. All thanks to Ogre and Bullet teams

Now we face a problem we couldn't find anywhere, it is simple, but maybe not very common (or we don't know how to search for it, there a similar problem about spawning objects in this forum, but it doesn't answer the questions that follow).
We are using gContactAddedCallback to process the contacts in our game engine and do whatever necessary. But we find we need to ignore some contacts (and the consequences) depending on the state of the objects that take part.
So the first question is easy: Is there a way (inside the gContactAddedCallback if possible) to "remove" the contact point and avoid all the consecuences of the collision as if it had never happened?
And the next question, if that is not possible, is somewhat harder: What is the best way to know when a contact will happen and avoid it just in time to never see the results of the collision?
We can't use filters because the same collision can be valid or invalid depending on the state of the objects colliding. Ghost objects doesn't seem a solution neither because if collision is valid it must happen.
Hope you understand the problem

Thank you in advance