User sms limits are now applied via a configurable SMSBucket.
Everytime the user sends a sms, a token is removed from the bucket and a timestamp is remembered for this token. On every subsequent attempt to get a token, all timestamps are checked if they could be refreshed.
If there are no more tokens an exception is thrown and shown to the user. In addition a warning is shown when the next to last sms is send. The SMSBucket is implemented as a distributed and configurable hazelcast map. Therefore the user sms limits are valid for the hole cluster.