Typically, SMPP 3.4 is used to connect to any carrier's SMSC. Version 3.4 added some extra features on top of 3.3 and it is backwards compatible. The specification can be found with a Google search of SMPP 3.4 or by clicking here:
In terms of clients, there is a free software product called Kannel that is very useful for doing this kind of work. It will connect to the SMSC and log all traffic. The main feature is providing a simple HTTP interface for sending any kind of text messages including 7-bit GSM and 8-bit binary. I use Kannel for everything I do at my job and you can find it at www.kannel.org. While it does take a little bit of reading to figure out, it is completely free and the user group is very active. Please read the user guide before posting questions to the user group. If you need a client for Windows, there are some non-free ones available, but I have never used any of them and cannot recommend anything.
I am not a device expert and can't recommend anything for implementing the should tap logic on the device.
What are the advantages of using an SMPP Bind client vs just using an API call or similar to send an SMS? Our mobile stations don't use a lot of SMS, so I'm not sure if I need one.
Is an SMPP Bind client more reliable? Is there more control over scheduling of SMS? Is there reporting?
I can't really comment on the strengths/weaknesses or features of the API you are using without knowing more about it. Each carrier would offer something different. Some also offer e-mail-to-text and text-to-e-mail for those customers using really low volumes. Using SMPP is the standard and there are plenty of open source libraries available. If SMS is critical to your application, I would recommend using a direct bind to the carrier SMSC.