def command(command, options = {}, &callback)
      uuid = SecureRandom.uuid
      @command_callbacks << (callback || lambda { |reply| signal uuid, reply })
      string = "#{command}\n"
      body_value = options.delete :command_body_value
      options.each_pair do |key, value|
        string << "#{key.to_s.gsub '_', '-'}: #{value}\n" if value
      end
      string << "\n" << body_value << "\n" if body_value
      string << "\n"
      send_data string
      wait uuid unless callback
    end
def command(command, options = {}, &callback)
      uuid = SecureRandom.uuid
      @command_callbacks << (callback || lambda { |reply| signal uuid, reply })
      string = "#{command}\n"
      body_value = options.delete :command_body_value
      options.each_pair do |key, value|
        string << "#{key.to_s.gsub '_', '-'}: #{value}\n" if value
      end
      string << "\n" << body_value << "\n" if body_value
      string << "\n"
      send_data string
      wait uuid unless callback
    end
Send a FreeSWITCH command with options and a callback for the response

 @param [#to_s] command the command to run
 @param [optional, Hash] options the command's options, where keys have _ substituted for -

 @return [RubyFS::Response] response the command's response object