Our website is written using PHP and is powered by a hosted Linux web server. We want to allow our users to receive SMS messages when they've received intranet-site messages from fellow users - SMS Notification.
What is required to implement this functionality? Are there open source (free?) server applications that address this? Do we need to contract with wireless carriers to send messages to their networks? What, if any fees, must be paid to them?
There are a number of companies that have SMS service, allowing you to make an API call to their system and they then deliver the message. They take care of all of the relationships with the various service providers, which can be a very time consuming process especially if you're looking at delivering messages interationally.
We've worked with Twilio, Clickatell and BulkSMS for the past few years, their coverage and rates vary but they're all easy to integrate with, usually only a few lines of code is enough to get started with their APIs. The rates depend on what network you're sending to, but typically are between $0.02 and $0.15 per message.
I have several notification servers running with SMS Tools 3, attached directly (as in, via a cable) to GSM phones. One of them sends several hundred messages a day, and works pretty well, though for any more than that I'd probably look at a GSM modem rather than a GSM phone.
As for the phone, the Nokia 6310i (being the last Nokia to use a proper (RS232) serial cable, rather than a USB connection) is especially painless to get working.
SMS Tools 3 is free software (GPLv2 or later). Yes, there is a cost to sending the SMSes, and it will depend on what plan you get on the phone. Many GSM vendors in the UK now do a plan which includes several thousand SMS messages for a very reasonable monthly charge, and I'd probably look at that if I were paying the bills myself. If your application needs to send SMS messages outside your country, though, things could get expensive quite quickly.
Have a look at Zeep Mobile. I believe they have a free account that's paid with advertising (they append a small/unobtrusive context-sensitive advertisement in your SMS message). There might be a "Premium" account now with no advertising.
I was using it a couple of years ago for a short-run campaign site; worked great, ads weren't a big deal in my case, but YMMV.
Your other option could be to just send e-mails out. If you have the cell phone number and carrier of your users, each carrier (usually) has a gateway address where you can send an e-mail. Here's a list from Wikipedia. You'd basically just send an e-mail to [email protected] for a phone number of 555-555-5555 with the carrier of T-Mobile. You wouldn't need to worry about any charges other than your own Internet access. It would just be the cost to your users of receiving a text message.