We do a weekly rotation between the members of the group. There are only 4 of us on call, so it ends up being once a month. In your situation, with 8-12 devs, it would be even less often.
The way ours works is, the on-call person gets the shared cell phone (though we normally just forward it to our personal phones, so we don't have to carry two). Then, that person gets the first call when something needs immediate attention. They can either solve the problem or get in touch with someone who can.
As far as compensation, we don't get anything extra, but I've heard of companies doing several things, such as extra pay during the on-call period, extra time off to compensate for being on call, etc.
Oh also, we have weekly meetings where we hand off the phone and go over any issues encountered the last week, so people know what kinds of things were handled. This prepares them for their turn, and also gives us a chance to recommend any changes that may prevent further issues in the future.