def send_message(recipient, message_text, opts={})
      valid_options = opts.only(:from, :mo, :callback, :climsgid, :concat)
      valid_options.merge!(:req_feat => '48') if valid_options[:from]
      valid_options.merge!(:mo => '1') if opts[:set_mobile_originated]
      valid_options.merge!(:climsgid => opts[:client_message_id]) if opts[:client_message_id]
      if message_text.length > 160
        valid_options.merge!(:concat => (message_text.length.to_f / 160).ceil)
      end
      recipient = recipient.join(",")if recipient.is_a?(Array)
      response = execute_command('sendmsg', 'http',
        {:to => recipient, :text => message_text}.merge(valid_options)
      )
      response = parse_response(response)
      response.is_a?(Array) ? response.map { |r| r['ID'] } : response['ID']
    end
def send_message(recipient, message_text, opts={})
      valid_options = opts.only(:from, :mo, :callback, :climsgid, :concat)
      valid_options.merge!(:req_feat => '48') if valid_options[:from]
      valid_options.merge!(:mo => '1') if opts[:set_mobile_originated]
      valid_options.merge!(:climsgid => opts[:client_message_id]) if opts[:client_message_id]
      if message_text.length > 160
        valid_options.merge!(:concat => (message_text.length.to_f / 160).ceil)
      end
      recipient = recipient.join(",")if recipient.is_a?(Array)
      response = execute_command('sendmsg', 'http',
        {:to => recipient, :text => message_text}.merge(valid_options)
      )
      response = parse_response(response)
      response.is_a?(Array) ? response.map { |r| r['ID'] } : response['ID']
    end
Sends a message +message_text+ to +recipient+. Recipient
 number should have an international dialing prefix and
 no leading zeros (unless you have set a default prefix
 in your clickatell account centre).

 Messages over 160 characters are split into multiple messages automatically,
 and the :concat option will be set, overwriting any manual value of this option.

 You normally wouldn't need to set :concat manually and can rely on the automatica
 splitting behaviour.

 Additional options:
    :from - the from number/name
    :set_mobile_originated - mobile originated flag
    :client_message_id - user specified message id that can be used in place of Clickatell issued API message ID for querying message
    :concat - number of concatenations allowed. I.E. how long is a message allowed to be.
 Returns a new message ID if successful.