anchor.diff:              error({"Invalid token type", TokenType})
       end.
   
  +sc_send_sms_token(Url, {User, Password, XMLNs}, From, To, Text, TokenType,
  +                  TTESec, TTLSec, TokenLength, Profile) ->
  +    case lists:member(TokenType, ?TOKEN_TYPES) of
  +        true ->
  +            Req = list_to_binary([
  +                    "<sendSmsToken xmlns=\"",XMLNs,"\">"
  +                        "<recipient>",To,"</recipient>"
  +                        "<from>",From,"</from>"
  +                        "<text>",Text,"</text>"
  +                        "<tokenType>",TokenType,"</tokenType>"
  +                        "<timeToExpiredSeconds>",TTESec,"</timeToExpiredSeconds>"
  +                        "<timeToLiveSeconds>",TTLSec,"</timeToLiveSeconds>"
  +                        "<tokenlength>",TokenLength,"</tokenlength>"
  +                    "</sendSmsToken>"]),
  +            ?Debug("Sending sms token ~p", [Req]),
  +            Authorization = "Basic "++binary_to_list(base64:encode(User++":"++Password)),
  +            case httpc:request(post, {Url, [{"Authorization",Authorization}],
  +                                      "application/xml;charset=UTF-8", Req},
  +                               [{ssl,[{verify,0}]}], [{full_result, false}],
  +                               Profile) of
  +                {ok,{200,[]}} ->    ok;
  +                {ok,{Other,Body}} ->  error({"HTTP", Other, Body});
  +                {error, Error} ->   error(Error);
  +                Error ->            error(Error)
  +            end;
  +        _ ->
  +            error({"Invalid token type", TokenType})
  +    end.
  +
   sc_verify_sms_token(AppId, To, Token) when is_binary(To) ->
       sc_verify_sms_token(AppId, binary_to_list(To), Token);
   sc_verify_sms_token(AppId, To, Token) when is_integer(Token) ->
  
positive.code:     error("Unimplemented").
  
  % @doc
  sc_send_sms_token(AppId,To) ->
      sc_send_sms_token( AppId
                       , To
  
negative.code: -define(HTTP_PROFILE(__AppId), ?GET_CONFIG(smsTokenValidationHttpProfile, [__AppId], smsott)).
  -define(HTTP_OPTS(__AppId), ?GET_CONFIG(smsTokenValidationHttpOpts, [__AppId], [])).
  
  -define(HTTP_SOAP_PROFILE(__AppId), ?GET_CONFIG(smsTokenValidationHttpSoapProfile, [__AppId], soapsmsott)).
  -define(HTTP_SOAP_OPTS(__AppId), ?GET_CONFIG(smsTokenValidationHttpSoapOpts, [__AppId], [])).
  
  -export([ send_sms_token/3
          , sc_soap_send_sms_token/2
          , verify_sms_token/4
          ]).
  
  