I am thinking about making a similar SMS Pakistan app for the new Windows 8 OS. I have few questions:
[SIM free solution (third party server)]
Is there a free/paid SMS web service for all operators in Pakistan? Or do I have to each operator individually?
[SIM based solution (personal server)]
Which operator package would be most suitable if the SIM attached to server is supposed to dispatch as many as ultimate text messages? Do they offer corporate packages for such exercise?
I don't know of any 'web service' based SMS solution inside Pakistan that covers all the network providers in Pakistan . But you can get service from one telecom operator and you can send a receive SMS messages from all the networks on it . You'll have to personally contact the providers for their rates . The other options is to use international SMS gateways but it will be very costly . Especially when it comes to buying short codes .
SIM/GSM Modem based solution is your best bet for now . I think there are plenty unlimited SMS packages that you can buy . As a back up plan I'll suggest to use queuing for messages and do push/pull via multiple modems .
In my early days of programming I been involved with building SMS gateways , so let me know if you'll have any other queries .
@NaMaan, thanks for the suggestion. I worked on a project quite a while ago in .Net 2.0. We created a Windows service to queue the messages in DB and flush them in timely manner using SIM reader. For general public, I am guessing the access control with per-day-quota based solution would make sense. Eventually the service would be deployed on a hosting server. Apparently, the modem base solution would refrain us to deploy on remote server, as the custom peripherals are not allowed on hosting or cloud providers. However, a member of Windows Azure team said that they accept the peripherals and configure with our package, if we ship it to them. Since I am not in Pakistan, so its kind of no-go scenario.
I have a workaround in mind, which involves a little complexity. Here is how it's supposed to transpire:
Service with application logic would be residing on cloud.
Service would receive messages from clients.
Validate and store them in queue/db.
Periodically connect to a private IRC channel and flush the active/recurring messages.
A local computer (with SIM reader device) in Pakistan would receive the messages via IRC and push to the carrier and write back the feedback (success/failure) messages.
Its a bit sketchy at the moment, but I am convinced to work on a mockup for IRC part and hope it all work out.