I've set up a SMS based application in the past; I've not sent ringtones however, but here is a partial answer at least.
It is not necessarily a web-service that is accomplishing this. You first need to have a SMS gateway of some sort. You can use a service like twilio (which can be used by calling their web service), buy a service contract through an SMS gateway provider (all of which have their own APIs), or create one yourself using a GMS modem that is attached to your server (and write some low level COM messaging to it). Each way has pros and cons depending on the volume you expect, and obviously has a different level of complexity to use. In any event way you'll have to pay money to send and receive text messages.
Whenever you send the SMS back, it is actually a multimedia text message with the sound attached to it. Multimedia sms messages are more expensive depending on your service contract.
I've not ever had to charge for the sent messages, but I can tell you 100% that these guys are not doing it for free. I am guessing that they have worked out the charging through their SMS gateway service provider. I am sure the service provider takes a cut as well as the mobile carrier.