code: function Sinch(keys){
    if (!keys) return
    this.name = "sinch"
    this.keys = keys
  
    this.send = function(data, callback) {
      var context = this;
  
      // from number not allowed
      // Sinch docs : In order to be allowed to set a custom “From” number 
      //   or alphanumeric, please contact our sales team.
      request( getOptions(data.to, this.keys.application_key, this.keys.application_secret, data.message), function(err, result) {
        var sinchStat;
  
        if (err) {
          // Something went wrong
          sinchStat = new SinchErrorStatus(err);
          debug("-_-_ FAILED with sinch _-_-");
          debug(sinchStat);
          return callback(sinchStat);
  
        } else {
  
          if (result.body.errorCode) {
            // Rejected by Sinch
            sinchStat = new SinchErrorStatus(result.body);
            debug("-_-_ FAILED with sinch _-_-");
            debug(sinchStat);
            return callback(sinchStat);
  
          } else {
            // Success
            sinchStat = new SinchSuccessStatus(result.body);
            debug("-_-_ sent with sinch _-_-");
            result.service = context;
            result.status = sinchStat;
            debug(result);
            return callback(null, result);
          }
        }
      });
    }
  
  }
docs: /*=============================================================================
  
  Define Sinch Service Provider
  
  =============================================================================