I'm not convinced about this approach, I think it would end up being complex and we'd continuously get request on tweaking it to support other providers.
Having a simple Java interface with something like (just a quick mock, not the suggested interface):
SMSProvider:
* Status sendMessage(String message, String phoneNumber)
Would be fairly easy for users to implement and would work for all services.